トップページtech
1002コメント300KB

Pythonのお勉強 Part50

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2014/10/17(金) 00:41:32.40ID:Db3yDsQb
Pythonオフィシャルサイト
http://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

よくまとまってた。あとで読む
0422デフォルトの名無しさん2015/02/05(木) 12:55:32.06ID:amkou/MB
>>421
素直に、

「python3+scipy のWindowsバイナリインストーラを作って、日本語の解説サイトに無職ニートでもインストールできる形で上げて、このスレにそのURLを書き込む。私にはそんな簡単なこともできません。」

と言う勇気を持とう
0423デフォルトの名無しさん2015/02/05(木) 12:57:32.07ID:n4xiMRvz
糞袋という言葉がよく似合う。
0424デフォルトの名無しさん2015/02/05(木) 12:59:36.89ID:h/22sgcW
社畜衆はそろそろ仕事に戻りたまえ
時間だぞ
0425デフォルトの名無しさん2015/02/05(木) 15:26:50.82ID:Sp9gxh87
はいやめやめ。
amkou/MB自身が私はscipyもインストールできない無職ニートだって認めたんだから。

無職ニートが何故scipy使ってんのかがよくわかんないけど。
0426デフォルトの名無しさん2015/02/05(木) 18:10:59.64ID:O89CqFtN
両班気取りだろうな、
0427デフォルトの名無しさん2015/02/05(木) 19:38:28.88ID:Wisgh0P5
日本人に生まれ変わったら公務員になりたい
0428デフォルトの名無しさん2015/02/08(日) 14:50:40.24ID:rmuNBtf+
pythonの文字列処理でsubstrをしたくて調べたところ、string[3]とかで取るようですが、
string.substr(3)のような書き方は用意されてないのですか?
文字列処理の一部だけ特殊な書き方を用意してるのはいいのですが、
書き方がそれだけだと統一性がなくて気持ち悪いです。
0429デフォルトの名無しさん2015/02/08(日) 15:00:59.07ID:wE3SiY9C
文字列だけでなくタプルやリストなどのシーケンス一般に使える
0430デフォルトの名無しさん2015/02/08(日) 17:04:00.22ID:tUjKNEQ0
string.len()もないよ
0431デフォルトの名無しさん2015/02/08(日) 17:11:13.89ID:i1ECf4Ro
むしろ文字列がシーケンス型の特化型なんだよお坊ちゃん
0432デフォルトの名無しさん2015/02/08(日) 17:21:48.39ID:FWcW0dY3
len()もそうだね
Javaなどに慣れた人がPythonに来ると
オブジェクト名.length()という書き方がないことに違和感を感じるらしい
Pythonのオブジェクト指向機能は後から追加されたものだという
話を聞いたことがあるんだが、それが関係してるのかな?
0433デフォルトの名無しさん2015/02/08(日) 17:33:45.61ID:THb7phv9
python 4ではlength(オブジェクト)が廃止されて
オブジェクト名.length()に統一される予定
文字列のsubstrも同様
0434デフォルトの名無しさん2015/02/08(日) 18:18:57.25ID:YB+HnYhC
.__len__()
数値型にキャストしてるとでも思えばいい
真のオブジェクト思考とか糞食らえなんだよ死ねアホ
0435デフォルトの名無しさん2015/02/08(日) 18:19:51.41ID:tUjKNEQ0
.__substr__()
なるほど
0436デフォルトの名無しさん2015/02/08(日) 18:36:10.10ID:JoJrjcfQ
トレンドに食いついてPythonに期待を膨らませて始めるとガッカリ感が半端ない
0437デフォルトの名無しさん2015/02/08(日) 18:58:41.56ID:yAnR3shi
>>432
http://python.rdy.jp/wiki.cgi?page=FAQ#p10
0438デフォルトの名無しさん2015/02/08(日) 19:25:18.48ID:tUjKNEQ0
>>436
Pythonはまだマシだったが
Dのときのがっかり感は超はんぱなかった
0439デフォルトの名無しさん2015/02/08(日) 22:45:34.20ID:FWcW0dY3
>>437
サンクス
オブジェクト指向的な書き方もできるが、あえて別の書き方を用意しているのか
そうすると自分がかつてどこかのサイトで見たのはデマだったんだな
Pythonは当初オブジェクト指向言語ではなく、後から改造されたのだと
0440デフォルトの名無しさん2015/02/08(日) 22:49:38.32ID:lw0YQSqg
それPHPやで
0441デフォルトの名無しさん2015/02/08(日) 23:37:37.85ID:EuzDi2AT
Perlちゃう?
0442デフォルトの名無しさん2015/02/09(月) 16:20:55.99ID:GbaaAyg0
誰かEmacs の python-mode.el 使ってる人いないかな?
24.4 にしてpython-modeにして
シバン書こうと # を押すとEmacsが落ちちゃうんだけど
0443デフォルトの名無しさん2015/02/09(月) 16:55:16.59ID:q8MzHi62
24.3.1
落ちないな

24.4か...
0444デフォルトの名無しさん2015/02/10(火) 01:35:04.42ID:gdSRWTu2
24.4.1でも落ちないね。
0445デフォルトの名無しさん2015/02/19(木) 08:21:31.29ID:YLyFJjqR
AmazonでPythonプロフェッショナルプログラミング 第2版の予約が始まったので表紙画像を拡大してみたら2.xでした。3.xを使ってても参考になるでしょうか?

せっかく良さげな情報があっても3.xで使えない事が多いので購入を迷ってます。
0446デフォルトの名無しさん2015/02/19(木) 13:31:24.92ID:JmVCCOCE
未だにPython 2.xの本が出るのか・・・
0447デフォルトの名無しさん2015/02/19(木) 15:32:45.22ID:H7SJp56w
俺も3.x系の本欲しいわ
みんぱいぐらいしかないっしょ3.x系で使える本って
0448デフォルトの名無しさん2015/02/19(木) 16:05:26.71ID:Q7B3YZ4l
この手の本買わないから良し悪しが分からぬ
0449デフォルトの名無しさん2015/02/19(木) 17:09:54.79ID:JGIMF6qD
なぜ本が必要なのかわからない
0450デフォルトの名無しさん2015/02/19(木) 17:30:58.37ID:gsoDS5fN
勉強するときは、ネットがつながってない孤島の別荘に行くから
0451デフォルトの名無しさん2015/02/19(木) 17:39:39.11ID:06K6cuzM
単に離れでそw
プロコンで優勝した子がそうだったらしいな
0452デフォルトの名無しさん2015/02/19(木) 22:00:27.11ID:y5R3CYgp
パーフェクトPython良かったよ。でも初心者にはおすすめできないかな?
パーフェクトJavascriptのほうが良かったけど。
どちらもネットではあんまり書かれてないことが書いてある。

ベテランさんには今更な情報ばっかりかもしれないけど。
0453デフォルトの名無しさん2015/02/19(木) 22:53:53.98ID:T36LNGVr
>>449
分からないってことはアホってことではないですよ
0454デフォルトの名無しさん2015/02/19(木) 23:03:01.64ID:06K6cuzM
紙の本もいいよね

そりゃかさばるって意見もわかるけどさ
0455デフォルトの名無しさん2015/02/20(金) 00:43:27.58ID:toTo43a3
「使える」っていうのが具体的に何を意味するかにもよるが
少なくとも以下の本は3.x系を前提に書かれている

『Python3プログラミング徹底入門』(2009)
『Pythonチュートリアル第2版』(2010)
『みんなのPython第3版』(2012)
『空飛ぶPython即時開発指南書』(2013)
『パーフェクトPython』(2013)
『たのしいプログラミング Pythonではじめよう!』(2014)
『Python文法詳解』(2014)
0456デフォルトの名無しさん2015/02/20(金) 06:36:44.34ID:FLhZEkIh
>>455
画像処理(Pillow?)とかDB関連(Sqlalchemy?)とかスクレイピング(Beautifulsoup?)とかを3.xで詳しく解説してる本って無いですよね。

言語仕様だけで終わる本ばかりなので悲しいです。
0457デフォルトの名無しさん2015/02/20(金) 07:52:27.64ID:fEal40kx
需要ないんだよ理解しろ
いつまでも旧時代の学習スタイルにしがみつくなロートル
まだ若いだろうにロートル
これいかに
0458デフォルトの名無しさん2015/02/20(金) 08:17:21.90ID:pk2QnuVc
>>456
公式のドキュメント読むのが一番
英語も食らいついてればそのうちなんとなく読めるようにはなる
0459デフォルトの名無しさん2015/02/20(金) 09:14:46.17ID:SdYWKWEv
>詳しく解説

ロートルならソース嫁
0460デフォルトの名無しさん2015/02/20(金) 11:57:34.92ID:fEal40kx
Use the sourse, Luke
0461デフォルトの名無しさん2015/02/20(金) 12:04:00.28ID:/Q8x0Kfy
may the source with you...
0462デフォルトの名無しさん2015/02/20(金) 12:13:36.25ID:IrmHPKvS
まあ紙媒体はアップデートが効かないってのがネックだな
ウェブ上の情報でもすぐに古くなるし

だが書店の占有面積が狭くなっていくと
「ひょっとして誰も使ってない?」って気にもなるw
0463デフォルトの名無しさん2015/02/20(金) 14:39:39.42ID:XfKuwL2S
>書店の占有面積

広かったことは一度もない
0464デフォルトの名無しさん2015/02/20(金) 14:41:21.06ID:fEal40kx
広がったことが一度もないなら陳列されたこともないはずだ
そうかもね
0465デフォルトの名無しさん2015/02/20(金) 21:43:06.42ID:yYdjrihu
オライリー系の統計関係のプログラミングの本はほとんどPython
0466デフォルトの名無しさん2015/02/20(金) 21:52:35.17ID:IrmHPKvS
確かにタイトルでPythonを謳って無くてもPythonのコードで
説明してる例が多くなってる気がする

JavaやCの次ぐらいに多いかな?
0467デフォルトの名無しさん2015/02/20(金) 22:14:33.79ID:h4oRuNjd
ジャグ配列内の最長要素数を得るにはどう書けばいい?
$ python -V
Python 2.7.8

rubyで書くと
$ irb
> [[11],[21,22,23],[31,32]].max_by(&:size).size
=> 3
0468デフォルトの名無しさん2015/02/20(金) 22:19:03.90ID:pk2QnuVc
>>467
len(max(L, key=len))
0469デフォルトの名無しさん2015/02/20(金) 22:28:05.44ID:i04X22Pv
>>467
max(len(elem) for elem in L)
0470デフォルトの名無しさん2015/02/20(金) 22:29:06.64ID:UfbH1iWM
print max(map(len,a))
0471デフォルトの名無しさん2015/02/20(金) 22:55:29.51ID:h4oRuNjd
>>468
まさにそのものだなw

>>468-470
みなさんあざっす
0472デフォルトの名無しさん2015/02/20(金) 23:11:51.52ID:ag8XbHIR
Djangoのチュートリアルをやってます。テストのトコで躓いてるんですが、
part5の The Django test client

response = client.get(reverse('polls:index'))

コマンドを入力するところで以下のエラーメッセージが出ます。何がいけないんでしょうか?

django.core.urlresolvers.NoReverseMatch: Reverse for 'detail' with arguments '('',)' and keyword
arguments '{}' not found. 1 pattern(s) tried: ['polls/(?P<pk>\\d+)/$']


Djangoチュートリアル→ https://docs.djangoproject.com/en/1.7/intro/tutorial05/
情報が少なすぎて申し訳ないです。ゆっくりサイトを精査できる方がいたら、助けてくれると有り難いです。
スルーでも構いません。
0473デフォルトの名無しさん2015/02/21(土) 11:11:14.13ID:+xlkhew9
urls.pyのurlpatternsに該当するURLパターンがない
チュートリアルやってるならinclude('polls.urls')忘れてるとか
0474デフォルトの名無しさん2015/02/21(土) 11:43:39.83ID:+xlkhew9
見返すと
> 1 pattern(s) tried: ['polls/(?P<pk>\\d+)/$']
だから
> url(r'^$', views.IndexView.as_view(), name='index'),
のパターンを消してしまってる可能性の方が高いか
0475デフォルトの名無しさん2015/02/21(土) 20:21:15.50ID:ykwJF3WT
>473
includeがよくわからないので、もしかしてCとかJavaを使われる方で、
勘違いでimportのことを言っているのかと思ってやってみたところ
disc I/O error だかのエラーメッセージが出ました。
その後スリープにして出かけたところ、復帰時に再起動を求められたので、
追って再現させてまたアップします。

外付けドライブにDjangoのprojectファイルたちをおいていることに問題があるのでしょうか?
includeという命令があるなら、どこに置くかも教えていただけると嬉しいです。

>474
>> url(r'^$', views.IndexView.as_view(), name='index'),
の部分をurls.pyに書いていないのではということでしたら、そんなことはありません。

直前まで動いていたので、おかしいとしたら

response = client.get(reverse('polls:index')) の (reverse('polls:index'))

の部分になってくるとは思うのですが、、、
0476デフォルトの名無しさん2015/02/22(日) 01:28:38.34ID:HUCDa8OG
qtile使ってる人いる?
公式ドキュメントに乗っていない設定がいくつかあるみたいなんだけどそういう時ってどこ見ればいいの?
0477デフォルトの名無しさん2015/02/22(日) 01:39:00.36ID:E5S/oWCJ
ソース読むしかないかも
Arch LinuxのBBSにもスレ見当たらないし
0478デフォルトの名無しさん2015/02/22(日) 01:42:05.95ID:E5S/oWCJ
具体的に書いたら誰か答えてくれるかも
0479デフォルトの名無しさん2015/02/22(日) 01:50:45.26ID:uJK2QFdc
>>475
板違いにつき誘導
http://kanae.2ch.net/test/read.cgi/php/1323960422/
http://kanae.2ch.net/test/read.cgi/php/1329996601/
0480デフォルトの名無しさん2015/03/05(木) 21:19:47.79ID:1cGbuMXW
Python3とlxmlで2chスレをスクレイピングしようとしてるのですが
同じ板、同じくらいの書き込み数でも成功する時と失敗するときがあります
どうしてでしょうか

from lxml.html import parse
from urllib.request import urlopen

url = 'http://wc2014.2ch.net/test/read.cgi/sci/1292341218/'
doc = parse(urlopen(url)).getroot()
print(len(doc.text_content())) # 47498

url = 'http://wc2014.2ch.net/test/read.cgi/sci/1343188288/'
doc = parse(urlopen(url)).getroot()
print(len(doc.text_content())) # 15
0481デフォルトの名無しさん2015/03/08(日) 21:18:49.28ID:XsTEmwvq
もうずっと人大杉かクラウドフレアーがビジー返してんだろ
そもそもdocを貰ってるんだからそれを読めよ糞ダラズ
0482デフォルトの名無しさん2015/03/09(月) 20:28:46.62ID:JEFz1YQq
糞ダラズ
0483デフォルトの名無しさん2015/03/09(月) 20:31:30.96ID:lt6c7hOw
そんな田舎でもネット使えるんだね
文明ってすごいなあ
0484デフォルトの名無しさん2015/03/09(月) 21:30:43.76ID:u+jQ0yjG
>>481
違うよ。コード晒してるんだから自分で実行しろよ
0485デフォルトの名無しさん2015/03/09(月) 22:13:16.27ID:lt6c7hOw
docにはなんて書いてあるの?
実行は面倒だからしない
再現しなかったら骨折りだしね
0486デフォルトの名無しさん2015/03/09(月) 22:27:31.79ID:u+jQ0yjG
なんて書いてあるとは?どこに書いてあることを聞いているのか分からない
というか面倒ならいいです
ただurlopen(url).read()とすれば、どちらもhtmlソースそのままが表示されるので
おそらくparseが失敗しているので、その理由を知りたいのです
ちなみに手元のWindows、Linuxどちらでも同じことが起きます
0487デフォルトの名無しさん2015/03/09(月) 22:39:45.38ID:lt6c7hOw
パースに失敗してる原因はパース対象のソースにあるに決まってんだろーが
頭沸いてるのか?
成功したときと失敗したときのdiff取って電車に飛び込んで死ね
0488デフォルトの名無しさん2015/03/09(月) 22:46:38.28ID:u+jQ0yjG
だからなんで失敗するのか聞いてるんだが
0489デフォルトの名無しさん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:XNSpCIll
>>491
lxmlが失敗する原因は何?
答えられないのにデタラメの妄想を垂れ流した挙句に質問者を罵倒するとかヤフー知恵袋以下じゃないかね
>>487で答えになってると思ってるあたりがこのスレの限界だろうか
このスレの住人がこれをデバッグしない理由は何?そんなに難しいことなのか
たとえば5分あってもできないことなのか?上級者なら教えてくれよ
0493デフォルトの名無しさん2015/03/10(火) 08:52:55.47ID:7NzT/F8x
最近あまり見ない釣りだな。
自分で試さない理由のほうがよっぽどわからない。
0494デフォルトの名無しさん2015/03/10(火) 08:55:06.57ID:XNSpCIll
>>493
試しても分からないから、初心者に説教垂れてる上級者に聞いてるんだろ
回答者は教えたがりなのに少しの労力すら惜しみ、そのくせ罵詈雑言を並べて優越感に浸ることだけは余念がない、ということ?
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:XNSpCIll
というか、答えられない言い訳は聞き飽きた
0498デフォルトの名無しさん2015/03/10(火) 09:03:05.00ID:MNJ+TbI6
>このスレの住人がこれをデバッグしない理由は何?
正気かよ
0499デフォルトの名無しさん2015/03/10(火) 09:03:41.65ID:GWDqHHzE
>>492
マジレスしてやろうか?
StackOverflowに日本語版出来たからそっち逝くといい
0500デフォルトの名無しさん2015/03/10(火) 09:04:15.13ID:XNSpCIll
>>498
お前はデバッグせずにlxmlが動かない理由が分かるのか?
0501デフォルトの名無しさん2015/03/10(火) 09:14:58.22ID:FIkaoC+g
検索したらstackoverflowがやたらヒットして迷惑だからgoogleは対策すべき。
0502デフォルトの名無しさん2015/03/10(火) 09:39:09.58ID:7NzT/F8x
>>500はなかなか面白い返しだ
世の中いろんな奴がいるなあ、と考えさせられたぜ
0503デフォルトの名無しさん2015/03/10(火) 09:48:58.16ID:6CfKdFZo
釣りじゃないなら煽ったり知ったかぶれば答えてもらえるって本気で信じちゃった純真な奴か
いずれにせよ哀れでならない
0504デフォルトの名無しさん2015/03/10(火) 09:49:01.35ID:3b2ZvRyg
>>492
上級者なら教えてくれよ
○ 下僕なら代わりにやってくれよ
0505デフォルトの名無しさん2015/03/10(火) 09:49:32.45ID:OpBf48bx
アメーバの方が優秀だな
0506デフォルトの名無しさん2015/03/10(火) 09:57:35.09ID:XNSpCIll
自称回答者がこのスレを見てる意味がよく分からん
いつも実行もせずに妄想で答えてるのか
0507デフォルトの名無しさん2015/03/10(火) 10:41:17.66ID:OpBf48bx
原形質流動の観察って授業があってぇ…
0508デフォルトの名無しさん2015/03/10(火) 10:45:47.21ID:wWdegVFt
>>506
まあ落ち着け
Dive into python3 で似たようなことやってるから
じっくり読み込んでやってみ
0509デフォルトの名無しさん2015/03/10(火) 10:59:57.76ID:wb2e65jI
原因を聞いているのに似たようなことやってるから〜とか、端から見ても珍回答だな。
体よく追い払おうとしているようにしか見えない。
0510デフォルトの名無しさん2015/03/10(火) 11:22:30.46ID:nkUqlG97
自分で「おそらくparse失敗している」って思うんなら、lxmlのドキュメントを読みながら成功した時と失敗した時の入力をよく見てみろとしか言えない
誰がやってもやることは同じだよ

あと、こういうことを聞くときは問題が再現する最小コードを出すもんだ
0511デフォルトの名無しさん2015/03/10(火) 11:27:03.22ID:wWdegVFt
>>509さんが懇切丁寧に答えてくれるそうですよ
0512デフォルトの名無しさん2015/03/10(火) 11:33:47.80ID:lRdZfHED
本人だろw
0513デフォルトの名無しさん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
>>514
どうでもいいレスしなくていいから
早く調べて答えてやれよ
0517デフォルトの名無しさん2015/03/10(火) 12:10:58.87ID:0x74jrgc
キンタマ弄って遊ぶのはその辺にしとけ
0518デフォルトの名無しさん2015/03/10(火) 12:57:58.73ID:3b2ZvRyg
問題はデータにありそう。
最小のコードというのは、最小のデータも含む。
もしかしたら、アクセス元によってデータが変わるかもしれないし、プログラムからアクセスしていいかの利用規約も確認しなきゃいけないので、全部やるのは面倒。
0519デフォルトの名無しさん2015/03/10(火) 13:01:01.34ID:XNSpCIll
できた。やっぱりスクレイピング対策とかHTMLの構造は関係なかった
parseが自動で見つける文字コード(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:3b2ZvRyg
やっぱりデータじゃねえか。
0521デフォルトの名無しさん2015/03/10(火) 15:19:51.05ID:XNSpCIll
は?
■ このスレッドは過去ログ倉庫に格納されています