Pythonのお勉強 Part50
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2014/10/17(金) 00:41:32.40ID:Db3yDsQbhttp://www.python.org/
日本Pythonユーザ会 (※英語わかる人は上記のオフィシャルの方を見ることをお薦めします)
http://www.python.jp/
まとめWiki
http://python.rdy.jp/
関連スレ
http://find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python
Pythonのお勉強 Part49
http://peace.2ch.net/test/read.cgi/tech/1387528488/
日本語の扱いで戸惑ったらこちらをどうぞ(バッドノウハウ集で笑える)
ttp://speirs.blog17.fc2.com/blog-entry-4.html
ttp://atomic.jpn.ph/prog/etc/encode.html
ttp://d.hatena.ne.jp/kakurasan/20100330/p1
ttp://pc11.2ch.net/test/read.cgi/tech/1217836194/339
339 :デフォルトの名無しさん:2008/08/23(土) 08:36:00
PythonのUnicodeEncodeErrorを知る
ttp://lab.hde.co.jp/2008/08/pythonunicodeencodeerror.html
よくまとまってた。あとで読む
0488デフォルトの名無しさん
2015/03/09(月) 22:46:38.28ID:u+jQ0yjG0489デフォルトの名無しさん
2015/03/09(月) 23:34:00.66ID:bgN4+jDW馬鹿じゃないのか
0490デフォルトの名無しさん
2015/03/10(火) 06:09:14.15ID:XNSpCIllレベルが低すぎる。分からないなら黙ってろよ
0491デフォルトの名無しさん
2015/03/10(火) 08:21:57.92ID:3b2ZvRyg俺のプログラムをデバッグしてくれよ、というレベル。
しかもデータ。
初心者はXHTMLのページからやるべき。
0492デフォルトの名無しさん
2015/03/10(火) 08:46:34.14ID:XNSpCIlllxmlが失敗する原因は何?
答えられないのにデタラメの妄想を垂れ流した挙句に質問者を罵倒するとかヤフー知恵袋以下じゃないかね
>>487で答えになってると思ってるあたりがこのスレの限界だろうか
このスレの住人がこれをデバッグしない理由は何?そんなに難しいことなのか
たとえば5分あってもできないことなのか?上級者なら教えてくれよ
0493デフォルトの名無しさん
2015/03/10(火) 08:52:55.47ID:7NzT/F8x自分で試さない理由のほうがよっぽどわからない。
0494デフォルトの名無しさん
2015/03/10(火) 08:55:06.57ID:XNSpCIll試しても分からないから、初心者に説教垂れてる上級者に聞いてるんだろ
回答者は教えたがりなのに少しの労力すら惜しみ、そのくせ罵詈雑言を並べて優越感に浸ることだけは余念がない、ということ?
0495デフォルトの名無しさん
2015/03/10(火) 09:00:07.93ID:7NzT/F8x親切な人が現れるのを待っていてくれ。
0496デフォルトの名無しさん
2015/03/10(火) 09:02:33.19ID:XNSpCIllなんでこのスレを読んでるのかすら理解できない
0497デフォルトの名無しさん
2015/03/10(火) 09:03:01.09ID:XNSpCIll0498デフォルトの名無しさん
2015/03/10(火) 09:03:05.00ID:MNJ+TbI6正気かよ
0499デフォルトの名無しさん
2015/03/10(火) 09:03:41.65ID:GWDqHHzEマジレスしてやろうか?
StackOverflowに日本語版出来たからそっち逝くといい
0500デフォルトの名無しさん
2015/03/10(火) 09:04:15.13ID:XNSpCIllお前はデバッグせずにlxmlが動かない理由が分かるのか?
0501デフォルトの名無しさん
2015/03/10(火) 09:14:58.22ID:FIkaoC+g0502デフォルトの名無しさん
2015/03/10(火) 09:39:09.58ID:7NzT/F8x世の中いろんな奴がいるなあ、と考えさせられたぜ
0503デフォルトの名無しさん
2015/03/10(火) 09:48:58.16ID:6CfKdFZoいずれにせよ哀れでならない
0504デフォルトの名無しさん
2015/03/10(火) 09:49:01.35ID:3b2ZvRyg上級者なら教えてくれよ
○ 下僕なら代わりにやってくれよ
0505デフォルトの名無しさん
2015/03/10(火) 09:49:32.45ID:OpBf48bx0506デフォルトの名無しさん
2015/03/10(火) 09:57:35.09ID:XNSpCIllいつも実行もせずに妄想で答えてるのか
0507デフォルトの名無しさん
2015/03/10(火) 10:41:17.66ID:OpBf48bx0508デフォルトの名無しさん
2015/03/10(火) 10:45:47.21ID:wWdegVFtまあ落ち着け
Dive into python3 で似たようなことやってるから
じっくり読み込んでやってみ
0509デフォルトの名無しさん
2015/03/10(火) 10:59:57.76ID:wb2e65jI体よく追い払おうとしているようにしか見えない。
0510デフォルトの名無しさん
2015/03/10(火) 11:22:30.46ID:nkUqlG97誰がやってもやることは同じだよ
あと、こういうことを聞くときは問題が再現する最小コードを出すもんだ
0511デフォルトの名無しさん
2015/03/10(火) 11:27:03.22ID:wWdegVFt0512デフォルトの名無しさん
2015/03/10(火) 11:33:47.80ID:lRdZfHED0513デフォルトの名無しさん
2015/03/10(火) 11:37:23.31ID:XNSpCIllここの人らはソースをちらっとは見たけど、どこが問題なのかは特定できなかった、ということで良いのか?
スレの構造はどう考えても同じだろうに
0514デフォルトの名無しさん
2015/03/10(火) 11:46:31.67ID:wb2e65jI検証したか?していないだろう。
0515デフォルトの名無しさん
2015/03/10(火) 11:54:09.42ID:iQXYHRS4特に2chはscの件で敏感になってたしね。
0516デフォルトの名無しさん
2015/03/10(火) 12:01:08.59ID:wWdegVFtどうでもいいレスしなくていいから
早く調べて答えてやれよ
0517デフォルトの名無しさん
2015/03/10(火) 12:10:58.87ID:0x74jrgc0518デフォルトの名無しさん
2015/03/10(火) 12:57:58.73ID:3b2ZvRyg最小のコードというのは、最小のデータも含む。
もしかしたら、アクセス元によってデータが変わるかもしれないし、プログラムからアクセスしていいかの利用規約も確認しなきゃいけないので、全部やるのは面倒。
0519デフォルトの名無しさん
2015/03/10(火) 13:01:01.34ID:XNSpCIllparseが自動で見つける文字コード(shift_jis)とHTML内の機種依存文字(V)が矛盾しているのが原因っぽい
だからfromstring使ってunicodeにデコードした文字列を渡せば良いだけだったわ
from lxml.html import fromstring
from urllib.request import urlopen
url = 'http://wc2014.2ch.net/test/read.cgi/sci/1343188288/'
doc = fromstring(urlopen(url).read().decode('cp932'))
print(len(doc.text_content())) # 126937
0520デフォルトの名無しさん
2015/03/10(火) 13:45:49.10ID:3b2ZvRyg0521デフォルトの名無しさん
2015/03/10(火) 15:19:51.05ID:XNSpCIll0522デフォルトの名無しさん
2015/03/10(火) 15:20:58.32ID:MFu713zAこういう考え方する人プログラミング向いてないよ
0523デフォルトの名無しさん
2015/03/10(火) 15:21:32.81ID:XNSpCIll文字コードだと言うのならまだしも、データ?
そりゃデータだろ。馬鹿かよ
0524デフォルトの名無しさん
2015/03/10(火) 15:23:27.55ID:XNSpCIllこのスレの誰一人として、プログラミングに向いてると思える片鱗が一ミリも見えないんだけど
なぜか、俺はプログラミング上級者でございみたいな顔でレスしてる方が謎
0525デフォルトの名無しさん
2015/03/10(火) 15:26:30.88ID:XNSpCIll>>480からやっとレスが付いたのが3日後、しかも妄想回答
妄想であることを指摘してやると切れ始める。どうせ何の答えも出せないんだから最初から黙っていて欲しかったよ
次に誰か質問した時もそうだ。絶対お前らは口を出すなよ。どうせクソの役にも立たないんだから
0526デフォルトの名無しさん
2015/03/10(火) 15:26:50.50ID:MFu713zA0527デフォルトの名無しさん
2015/03/10(火) 15:29:08.32ID:XNSpCIll少しは役に立つレスをしろよ
0528デフォルトの名無しさん
2015/03/10(火) 15:41:47.67ID:GWDqHHzE適当に答えて正解だと楽しいよ
0529デフォルトの名無しさん
2015/03/10(火) 15:48:44.67ID:wWdegVFtどういうプロセスで凡ミスに気がついたのか書くことも
このスレにとって有益だと思うのですが書いていたたげませんか
お願いします
0530デフォルトの名無しさん
2015/03/10(火) 16:33:39.50ID:0x74jrgc0531デフォルトの名無しさん
2015/03/10(火) 16:49:45.10ID:GWDqHHzE0532デフォルトの名無しさん
2015/03/10(火) 19:05:33.59ID:XNSpCIllpythonはうまく行かなかったらエラーを吐いて止まるところが良いのに
parseは失敗しても読み込めた場所までのetreeを返しているように見える。これは嫌な仕様だ
何か値が返ってくるので一見成功しているように見えるから、なぜ中身が中途半端なのか分からない
パース前のデータを見ようとurlopen(url).read().decode('shift_jis')とすると、そこでエラーを吐いてやっと何が問題なのか分かる
htmlファイルをそのまま見比べ続けたりdiff取ったりしても無理だっただろう
decodeなら、errorsオプションを指定することでデコードできない文字に対してエラーを吐くか読み飛ばすかを選択できるけど
parseにはそういったオプションはなく、何をやってるのか分からない。失敗したくせになぜ停止しないんだ
というか結局どの文字コードでもエラーになるスレがあるけど
重要じゃない文字っぽいのでスルーすることにした
doc = fromstring(urlopen(url).read().decode('cp932', errors='ignore'))
文字コードは闇。おわり。正解があるならplz
しかしこの問題は少しでも経験がある人なら一瞬で気付けたと思うので
数日後に上級者ぶって的はずれな説教を始めるこのスレはやはり使い物にならないと言わざるを得ない
0533デフォルトの名無しさん
2015/03/10(火) 19:35:24.00ID:tNP8NWPbじゃあもう来るな
で終了
0534デフォルトの名無しさん
2015/03/10(火) 19:40:35.76ID:zHhbDfod優しくしてあげな
0535デフォルトの名無しさん
2015/03/10(火) 19:45:25.31ID:XNSpCIllプログラミング分からないなら黙ってたほうが良いのでは
0536デフォルトの名無しさん
2015/03/10(火) 20:01:31.71ID:sfYa099T今からでも遅くないよ
0537デフォルトの名無しさん
2015/03/10(火) 20:09:19.61ID:6CfKdFZoどうしようもなくならない限り例外出さないし2chのhtmlはもちろん腐ってるから他のパーサーだと面倒なはず
0538デフォルトの名無しさん
2015/03/10(火) 20:27:30.27ID:GWDqHHzEローカルproxy造るの流行ってるみたいだけど
スクレイピングは禁止というのが2ちゃんのスタンス
0539デフォルトの名無しさん
2015/03/10(火) 21:05:02.40ID:81PK0HaL0540デフォルトの名無しさん
2015/03/10(火) 23:24:20.49ID:XNSpCIllこの板全体の単語頻度(ただし'C'や'#'は簡単のためにノイズとして除去されてる)
大文字と小文字どちらかに統一すれば良かったとあとから思ったけどまあ良いや
なんと馬鹿 (1644)は65位でした!
何の生産性もない、貶し合うだけの板なんて、そろそろおいとましよう
1: 言語 (12722) 2: コード (8511) 3: 人 (7336) 4: 関数 (6599) 5: 問題 (6194)
6: スレ (5836) 7: ファイル (5710) 8: 必要 (5595) 9: 場合 (5434) 10: 自分 (5245)
11: 文字 (4289) 12: ソース (4235) 13: Java (4215) 14: 今 (3858) 15: データ (3804)
16: 方法 (3703) 17: クラス (3691) 18: 環境 (3574) 19: Windows (3405) 20: int (3402)
21: 変数 (3198) 22: ライブラリ (3168) 23: 仕様 (3125) 24: Ruby (3093) 25: アプリ (2969)
26: 前 (2800) 27: if (2780) 28: 情報 (2676) 29: 感じ (2675) 30: 可能 (2667)
31: for (2641) 32: 部分 (2626) 33: 普通 (2564) 34: オブジェクト (2424) 35: 他 (2391)
36: 日本語 (2346) 37: コンパイル (2317) 38: 簡単 (2292) 39: 本 (2288) 40: 結果 (2258)
41: 時間 (2234) 42: 名前 (2220) 43: 列 (2197) 44: hoge (2141) 45: レベル (2068)
46: メソッド (2036) 47: Python (1961) 48: 値 (1946) 49: メモリ (1896) 50: 型 (1890)
https://www.dropbox.com/s/omwbh5clw3hvb4a/word_frequency.csv?dl=0
0541デフォルトの名無しさん
2015/03/10(火) 23:37:16.18ID:uWF4ePWzA=array([[2, 1], [3, 4], [6, 5]])
で、A[i][0]>A[i][1]となる、行だけを取り出したい。
この場合は、
A=array([[2, 1], [6, 5]])
0542デフォルトの名無しさん
2015/03/11(水) 00:28:43.75ID:nZT0Sfh/かな
0543デフォルトの名無しさん
2015/03/11(水) 00:31:54.13ID:Qxpez3uG>>542
それはpython3だとfilterオブジェクトを返すので、一旦listにキャストしてからじゃないとarrayに戻せないから冗長になる
普通にリスト内包表記使ったほうが良い
0544デフォルトの名無しさん
2015/03/11(水) 02:07:45.91ID:y/rYbl4Z0545デフォルトの名無しさん
2015/03/11(水) 07:03:33.66ID:5EkQ77dJ野良猫みたいなもんだ
暇人から駆除すべき
0546デフォルトの名無しさん
2015/03/11(水) 07:15:56.16ID:ohxGoG6/0547デフォルトの名無しさん
2015/03/11(水) 07:30:36.51ID:YwNWS2C90548デフォルトの名無しさん
2015/03/11(水) 08:12:22.93ID:EDIhvA8qほんそれ
0549デフォルトの名無しさん
2015/03/11(水) 08:20:13.79ID:33mlLn1H↓
API導入で専ブラリストラ&移転騒ぎ
↓
人減り過ぎ
↓
運営あわててBBq規制ゆるめる
↓
IP変えてIDもいつでも変えられる人増える
↓
元の木阿弥
0550デフォルトの名無しさん
2015/03/11(水) 21:33:50.12ID:EX1qv/9I0551デフォルトの名無しさん
2015/03/12(木) 14:59:27.68ID:E0Zg3jRkfrom numpy import *
def func1(x):
return sum(arange(x))
def func2(x):
return 2*x
t = arange(10)
print(func1(t))
print(func2(t))
上のソースみたいにfunc1,2に配列を渡したらfunc2からは配列が返ってきて,func1に至ってはエラー。
func1 から [sum(arange(0),sum(arange(1),sum(arange(2),・・・)]
func2 から [0*2,1*2,2*2,・・・]
みたいに以前はどっちも配列が返ってきてた気がするんだが、なんか仕様変更あったのかな?
もしかしたら俺の記憶違いかもしれんが、そのソースを最後に走らせてからAnacondaをアップデートしたから少し仕様変更を疑ってる。
俺の意図してることはソースを少し修正すれば対応できるからさほど問題では無いのだが。
0552デフォルトの名無しさん
2015/03/12(木) 15:34:24.28ID:yQvULEjlreturn sum(x)
0553デフォルトの名無しさん
2015/03/31(火) 05:29:44.19ID:EnQqwSct2.xと3.xって文法が少し変わっただけでしょ?
初めてのPythonやっとけばいいかな?
0554デフォルトの名無しさん
2015/03/31(火) 07:55:51.96ID:7FvkJziV移行できないでいる連中は、技術的にではなくリソース的な問題だし
君がライブラリの移植を任されてるとか言わない限り、
トラブった時に都度覚えればいいんちゃう
0555デフォルトの名無しさん
2015/03/31(火) 12:12:23.68ID:XpnSzaSpここ読んどくと、2と3の違いがわかりやすいと思う。
Dive Into Python 3 日本語版
http://diveintopython3-ja.rdy.jp/index.html
>Dive Into Python 3 は、プログラミング経験者向けの
>Pythonの入門書であり、Python 3 および Python 3と
>Python 2の違いを扱う。本書の約20%は Dive Into Python
> を改訂したもので、残りの80%は新しく書き下ろしたものだ。
↓上記の英語原版
http://www.diveintopython3.net/
0556デフォルトの名無しさん
2015/03/31(火) 14:13:21.80ID:ee7JB1sWトンクス!
0557デフォルトの名無しさん
2015/04/06(月) 09:57:33.45ID:ZUUro5Bq0558デフォルトの名無しさん
2015/04/06(月) 19:32:18.00ID:kkAXpFQnインストーラーを起動して進めていくと
赤い文章で
This update will replace your existing Python34 installation.
と表示されいて
さらに進めていくとダイアログで
There is a problem with this Windows Installer package. A program required for this install to complete could not be run. Contact your support personnel or package vendor.
と表示されてインストールすることができません。
原因はなんですか?
0559デフォルトの名無しさん
2015/04/06(月) 19:44:34.83ID:MCC65dXP0560デフォルトの名無しさん
2015/04/06(月) 19:52:28.82ID:kkAXpFQnあと忘れました、OSはwindows7です
0561デフォルトの名無しさん
2015/04/06(月) 19:55:02.88ID:kkAXpFQn0562デフォルトの名無しさん
2015/04/06(月) 20:20:36.70ID:kkAXpFQn0563デフォルトの名無しさん
2015/04/13(月) 01:26:57.00ID:YWp6zYIRmodule_name
module-name
moduleName
でもなく
modulename
0564デフォルトの名無しさん
2015/04/13(月) 01:28:16.54ID:YWp6zYIRになってるのは何故?
import modulename
は _ や大文字小文字の区別がつかないの?
0565デフォルトの名無しさん
2015/04/13(月) 02:40:20.44ID:EwC15/onもう少し言うと
モジュールは識別子なので変数命名の規則に従う
大文字小文字を区別して長い名前を切り捨てるファイルシステムもある
Pythonの推奨スタイル(PEP8)は
全て小文字の短い名前、読みやすくするためならアンダースコアOKとなってる
0566デフォルトの名無しさん
2015/04/19(日) 10:02:17.65ID:GyRCwVyfPythonってpycにコンパイルするとバージョン互換性が無いんだな。
コンパイルしたPythonのバージョンとユーザーのバージョンが違うと動かない。
Javaのjarみたいにはいかない。pyファイルで配布するしかなくソースの隠蔽ができないんだな。
2系と3系の両立問題もある。2系と3系じゃ随分違うのに、いまだに2系も多く使われてる。
0567デフォルトの名無しさん
2015/04/19(日) 11:55:05.01ID:7F+ACK5y0568デフォルトの名無しさん
2015/04/19(日) 12:07:46.76ID:dhzBOV6W無視してくださいってとんでもねえ傲慢だよな
明日の世界が少しでも綺麗になるように、今日中に死ぬべき
0569デフォルトの名無しさん
2015/04/19(日) 17:11:13.62ID:SbUcGWLBつぶやきはツイッターでやれ
0570デフォルトの名無しさん
2015/04/19(日) 18:03:54.60ID:6qOkc1P6いろいろ説明した後「本書では「パターン1」の読者を想定し、Python2系を採用しています」って書いてある
3系への移行がなかなか進まないわけだ
なんだかんだ言いながら結局「Python2系を採用します」なんだもん
0571デフォルトの名無しさん
2015/04/19(日) 18:19:33.16ID:dhzBOV6WPython2を習得して問題ない
本当に技術的な理由で移行できないとしたらプログラムに向いてない
0572デフォルトの名無しさん
2015/04/19(日) 22:35:46.00ID:1OstB/kO0573デフォルトの名無しさん
2015/04/19(日) 23:50:13.83ID:htXDv9/70574デフォルトの名無しさん
2015/04/20(月) 00:07:17.19ID:Uaur58U53はなかったことにして2ベースの4を作るとかいう話も気になる
別に急ぐことはないとは思う
0575デフォルトの名無しさん
2015/04/28(火) 21:20:15.66ID:zvl7vZ5R異常が起きた時はFalseやエラー文字列を返したいってこと、よくあるよね
Pythonならば容易に実現できる機能だが、CやJavaなんかには不可能じゃないかなこれ
地味にPythonの凄さを実感してしまった
0576デフォルトの名無しさん
2015/04/28(火) 22:08:29.06ID:PZuvEHyA0577実は男
2015/04/28(火) 22:31:43.03ID:iGmhRd88フォロリクよろしく(^з^)-☆
ややちゃん♂
https://twitter.com/minwqgmg
#ややちゃんかわいい
ややちゃんよりかわいいMTFなどいない
http://i.imgur.com/L7IX75Q.png
http://i.imgur.com/lkujqEZ.png
https://pbs.twimg.com/profile_images/590714340384382977/3_IE5FW8.jpg
http://i.imgur.com/t1dy6yB.jpg
#百合原まこきもいしね
http://light.dotup.org/uploda/light.dotup.org175301.jpg
https://twitter.com/mako_yurigahara
0578デフォルトの名無しさん
2015/04/28(火) 22:51:31.00ID:KEYPGqIpそういう構造体やオブジェクト使えば、できなくはないが、
良くないので例外があるんだろ。
0579デフォルトの名無しさん
2015/04/29(水) 06:13:24.88ID:Q2Y0/S5thttp://docs.quantifiedcode.com/python-anti-patterns/
多少口出ししたくなる項目もある(setdefaultとか)が
だいたい同意できると思う
その中の以下に該当
# Returning more than one variable type from function call
(関数の戻り値型が複数ある)
理由は上で述べられているので省略
補足するなら
* 君がバグのないロボットでないかぎり
戻り値のチェックは必ず忘れられる・サボられる
* テンプレートから外れたエラー処理手段を使用することで
君のコードに「覚えておかなければならない特例」が増える
0580デフォルトの名無しさん
2015/04/29(水) 06:37:44.11ID:Q2Y0/S5t第二引数は辞書に追加しない場合でも必要なので
default値の生成コストが高いならsetdefaultでなくdefaultdictを使う
_dict.setdefault('hoge', LargeInitializationCostList()).append('huga')
こんなことやってると死ぬぞ
0581デフォルトの名無しさん
2015/04/29(水) 06:47:22.73ID:Q2Y0/S5tただでさえPythonが遅いのに、PurePythonモジュールなので目玉が飛び出るほど遅いぞ
多用するなら2.7以降標準となったsimplejsonを使う
0582デフォルトの名無しさん
2015/04/29(水) 07:24:17.12ID:UcmoOb8kいきなり処理が飛ぶからコードを追いづらいんだよなあ
やっぱ関数呼び出し→関数→呼び出し行の次に戻るっていう
一本道を崩しちゃいけないよなあ
0583デフォルトの名無しさん
2015/04/29(水) 08:02:24.77ID:el7FOBWI主シナリオに例外処理のif文が多数埋まっている方が可読性低い。
BASICでも書いてろよ。
0584デフォルトの名無しさん
2015/04/29(水) 08:13:52.24ID:Q2Y0/S5tエラー処理ブロック末尾までgotoするわけでさ
あまり違いがあるとは思えんね
どこが一本道なのかさっぱりだわ
0585デフォルトの名無しさん
2015/04/29(水) 12:28:53.10ID:MZTDlXbuttp://d.hatena.ne.jp/kmaebashi/20091227/p1
俺自身の意見は
「言わんとするところはわからなくはないが、個人的には全然賛同できません」
という訳者の前橋氏と同じだが。
0586デフォルトの名無しさん
2015/04/29(水) 15:48:30.00ID:BTL1OO/Ogoなんかそういう思想だろう
0587デフォルトの名無しさん
2015/04/30(木) 20:44:07.20ID:/CwpOFcE■ このスレッドは過去ログ倉庫に格納されています