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

Pythonのお勉強 Part50

レス数が900を超えています。1000を超えると表示できなくなるよ。
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

よくまとまってた。あとで読む
0819デフォルトの名無しさん2015/07/24(金) 19:10:31.92ID:esqV2AN3
オライリーの入門自然言語処理をやっているんだが、
nltkモジュールをIDLEで扱っていると処理がクッソ重い
何度かIDLEが落ちたし作業にならない・・・

IDLEって本家のやつより軽いのある?
0820デフォルトの名無しさん2015/07/24(金) 20:39:03.90ID:rM0nxH44
>>818
トンクス!
0821デフォルトの名無しさん2015/07/25(土) 22:33:04.86ID:vtz+ShjK
VisutalStudioからvirtualenv構築できて、pipもつかえるのな
0822デフォルトの名無しさん2015/07/25(土) 23:08:27.01ID:47K/058z
EmacsのPython 開発環境でお勧めってどんな感じでしょうか
0823デフォルトの名無しさん2015/07/25(土) 23:23:25.06ID:GojEbrFJ
jedi と anaconda を勧めてもらっただろ。
0824デフォルトの名無しさん2015/07/26(日) 04:48:33.76ID:qmRl3UZP
タイプ量をへらしたり工夫されてるスクリプト言語ビジュアル開発環境で開発するメリットって?
慣れてるエディタでいいじゃん
0825デフォルトの名無しさん2015/07/26(日) 07:26:04.34ID:yiD7zf2t
さらにタイプ量が減るんだからIDE使わない理由がむしろ見つからない
0826デフォルトの名無しさん2015/07/26(日) 11:00:34.21ID:N2oZlVgp
emacs/vim使えない低能力者が、何かしたり顔で語ってんよ
0827デフォルトの名無しさん2015/07/26(日) 14:40:06.52ID:yiD7zf2t
うわー原始人だ
0828デフォルトの名無しさん2015/07/26(日) 14:47:08.69ID:lKG+wP//
別に好きな方使えばいいんじゃね?

入力補完の恩恵受けられる環境って概して起動が遅かったりするからじゃ?
Pythonとかの編集をずっとやってるわけじゃないしなあ
0829デフォルトの名無しさん2015/07/26(日) 14:59:10.40ID:N2oZlVgp
>>827
原始人に体力で敵うと思ってんのか
現代っ子のアオビョータンが
0830デフォルトの名無しさん2015/07/26(日) 15:05:42.64ID:lKG+wP//
慣れているエディタも便利なプラグインとか入れればIDEとあまり変わらなくなるんだけど
それだと重さもIDEと変わらなくなっちゃうんだよねw

エディタはなるべくシンプルな状態がいい
0831デフォルトの名無しさん2015/07/26(日) 15:46:46.56ID:FKwBtDBV
emacs で補完を効かせてるし ipython と連動させているけどとくに重くはない。
0832デフォルトの名無しさん2015/07/26(日) 17:54:20.95ID:sjjuAaNb
こんにちわ、Pythonの超初心者です…
PYCファイルからPYファイルへのデコード(逆コンパイル)の方法をおしえてください
いくつかsetup.pyをダウンロードしてはcmdでやってみたんですがどうしても逆コンパイルでつまづいでしまいます…
お願いします助けてください
0833デフォルトの名無しさん2015/07/26(日) 19:39:03.51ID:M2aWmDlP
Emacsの環境にも重いのと軽いのあるね
単純にrepl使うだけが一番な気がするが
0834デフォルトの名無しさん2015/07/26(日) 19:41:37.18ID:lKG+wP//
俺はvimmerだぜ
がっつり書きたい時はVSやらNetBeansやら使うが
0835デフォルトの名無しさん2015/07/26(日) 19:48:55.69ID:M2aWmDlP
ガッツリ書きたい時はプリンターでソースコード印刷
0836デフォルトの名無しさん2015/07/26(日) 20:14:51.75ID:nDj/8w5z
vimにjedi
0837デフォルトの名無しさん2015/07/27(月) 08:53:50.98ID:rCgM2BeH
Pythonだと100%vimだけど、他の言語も含めるなら
Vim>VisualStudio>IntelliJ=Xcode
くらいの使用頻度。
VSのC++補完能力だけは特筆に値する、と思う。
0838デフォルトの名無しさん2015/07/27(月) 09:45:28.95ID:aS3mDPZB
pycharmのほうが最強
vimやemacsでjediとかおもちゃレベル
0839デフォルトの名無しさん2015/07/27(月) 11:05:29.81ID:sOFDnH/w
一人で数千数万行書こうとするとIDE無しだと間違いなく効率落ちるしバグ作り込む
特にデバッグ環境はもう比較にならないでしょ
0840デフォルトの名無しさん2015/07/27(月) 12:39:51.19ID:VxRPJBWp
デバッガなんていつ起動すんだよ
テスト網羅してない証拠だろ
ずさんな開発体制だと宣言して楽しいのか?
0841デフォルトの名無しさん2015/07/27(月) 14:51:46.80ID:sOFDnH/w
くすくす
0842デフォルトの名無しさん2015/07/27(月) 18:30:11.53ID:bH135odH
宗教論争は別スレでやってくれないか
0843デフォルトの名無しさん2015/07/27(月) 20:57:52.54ID:7QDu3mFv
pythonではそんなに長いコード書いた事ないなあ
使い捨てのユーティリティーぐらいだから
0844デフォルトの名無しさん2015/07/28(火) 00:09:13.09ID:2rANwPbi
使い捨てのコードなんてせいぜい数百万行だもんな、メモ帳で十分だよ。
0845デフォルトの名無しさん2015/07/28(火) 00:50:07.14ID:xcz5uEnx
ん?テスト通らないからデバッグするんだろ
0846デフォルトの名無しさん2015/07/28(火) 21:20:19.35ID:j22KrflS
テストは仕様でありデバッグだよな
0847デフォルトの名無しさん2015/07/28(火) 21:53:01.72ID:sPZOIAat
バグとデバッグの関係知ってるかい?

>>846
君はテストで見つかったバグを
放置してるのかい?
0848デフォルトの名無しさん2015/07/28(火) 21:59:57.87ID:j22KrflS
なんでそんな話になるの?
0849デフォルトの名無しさん2015/07/28(火) 22:01:41.96ID:sPZOIAat
>>848
それで見つかったバグをどうするの?

放置? それともデバッグ?
0850デフォルトの名無しさん2015/07/28(火) 22:03:15.26ID:j22KrflS
当然直すに決まってるじゃん

バグを洗い出すのがテストだろ?
0851デフォルトの名無しさん2015/07/28(火) 22:09:12.24ID:j22KrflS
で?
テストで発見したバグを直すのにデバッガ使ってはいけない理由って何?
0852デフォルトの名無しさん2015/07/28(火) 23:13:29.62ID:mfA66W0c
これ自演対立煽りに失敗しちゃったんですかね
0853デフォルトの名無しさん2015/07/29(水) 02:07:26.49ID:Y18JCN/5
Doc testはバグがどこにあるか分かるように書くものだよね
0854デフォルトの名無しさん2015/07/29(水) 05:46:49.24ID:qvSRsKX3
>>851
経験から言うとデバッガで治すと
別の場所でバグが増えることがある
0855デフォルトの名無しさん2015/07/29(水) 08:32:11.48ID:64kOJ8wr
は?
0856デフォルトの名無しさん2015/07/29(水) 09:31:02.51ID:HFbDonYp
稀有な経験をしてますね……
0857デフォルトの名無しさん2015/07/29(水) 11:56:03.64ID:tJkDR52p
デバッガでバグ増えたことはないな
エディタで全置換される方が怖い
0858デフォルトの名無しさん2015/07/29(水) 17:43:54.93ID:RzPhPosx
デバッグビルドでかなり生成コードが変化する環境ならまだしも
Pythonでデバッガの影響でバグが出たり出なかったりってのは
インタプリタの実装のバグを疑うかな〜
0859デフォルトの名無しさん2015/07/29(水) 21:32:21.52ID:yCCb5t3r
Pythonでデバッグビルドってなんやねんw
0860デフォルトの名無しさん2015/07/30(木) 08:15:08.11ID:FlYNnGzz
>>859
python の処理系の話だろ
0861デフォルトの名無しさん2015/07/30(木) 08:51:20.80ID:qgoNGP4Y
いや、他の言語の話(Cとか)をしたつもりだった
0862デフォルトの名無しさん2015/07/30(木) 19:33:11.79ID:iUTBW6s2
pythonで3オプション引数的な呼び方で下記ができると思いますが

def func(a,b) : return a+b
arg={"a":1,"b":2}
func(**arg)

argに組み込み型dictではなくカスタムdict?(たとえばdictを継承した
ようなクラスのインスタン)指定する方法有ります?
class Mydict(dict)・・・みたいにやったけどエラーになった
**argみたいにできるのは組み込み型のdictだけ?
最終的にはC言語でモジュール書いて__getitem__?とかを
独自定義したオブジェクトで**argとかしたい
0863デフォルトの名無しさん2015/07/30(木) 22:08:48.92ID:IdwK7M7e
千葉で習志野対どっかの応援対決やったらしいね
0864デフォルトの名無しさん2015/07/30(木) 22:23:13.26ID:IdwK7M7e
>>862
>class Mydict(dict)・・・みたいにやったけどエラーになった
どんなエラー

>>> arg = MyDict({"a": 1, "b": 2})
>>> print(func(**arg))
3
0865デフォルトの名無しさん2015/07/30(木) 23:02:11.09ID:iUTBW6s2
TypeError: func() takes exactly 2 arguments (0 given)

上のエラーです
MyDictに相当するクラスには __iter__/__getitem__/__len__とか
定義してます。(右も左もな感じなんで他人のコードのコピペ
ですが)
arg=MyDict()
arg["a"]=1
arg["b"]=2
func(**arg)
な感じで。(当然MyDict()のところを{}にするとうまくいく)
0866デフォルトの名無しさん2015/07/30(木) 23:21:09.27ID:IdwK7M7e
>>865
>当然MyDict()のところを{}にするとうまくいく
どうして?

>>> arg=MyDict()
>>> arg["a"]=1
>>> arg["b"]=2
>>> func(**arg)
3
0867デフォルトの名無しさん2015/07/30(木) 23:39:53.49ID:AExuluby
__iter__の中身がおかしいんじゃないの
0868デフォルトの名無しさん2015/07/31(金) 00:05:34.82ID:u6UInjxJ
>>854
> 別の場所でバグが増えることがある

具体的な事例をお願いします。

比較実験なので、IDE以外の条件を
全部同じにして、どういう時にバグが出るのでしょうか?
0869デフォルトの名無しさん2015/08/06(木) 21:50:41.36ID:L+5cLodL
pythonから使える日本語全文検索エンジンって
hyperestraier
以外にないのでしょうか
0870デフォルトの名無しさん2015/08/06(木) 23:55:07.51ID:B2QP2Cbg
むしろ全文検索エンジンって言語からは独立してるものじゃね
solrでもelasticsearchでもpythonインターフェースはあるだろ
0871デフォルトの名無しさん2015/08/07(金) 01:42:39.57ID:If3wNdo1
itertools.permutations
itertools.combinations

巨大な配列に対して実行した時に、生成した組み合わせの配列を
全部メモリーに持たないでiteratorのままにしとくことって出来ないのでしょうか
全部をメモリーに展開されるとメモリーが足りない
ついでに並列計算できるとさらにうれしいのだけど
0872デフォルトの名無しさん2015/08/07(金) 02:07:37.11ID:jxjR69S3
巨大な配列はすでにイテレータじゃないんだが?
0873デフォルトの名無しさん2015/08/07(金) 02:08:43.96ID:jxjR69S3
いや、イテレータか。
巨大な配列はメモリに全部載ってるイテレータなのだが。
0874デフォルトの名無しさん2015/08/07(金) 09:11:59.99ID:3jYJojYP
>>871
python3では出来ます。
>>> cmb = itertools.combinations([1, 2, 3], 2)
>>> cmb.__next__()
(1, 2)
>>> cmb.__next__()
(1, 3)
>>> cmb.__next__()
(2, 3)
>>> cmb.__next__()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration

for x in list(cmb):
 print(x)
とかしていませんか?
0875デフォルトの名無しさん2015/08/07(金) 13:09:07.02ID:eSh4n7lV
ちゃんと質問文読もうよ
組み合わせって書いてるでしょ
0876デフォルトの名無しさん2015/08/07(金) 14:22:06.07ID:wH8t7UWZ
リスト同士の引き算って出来ないのでsetに変換してから引き算しますよね
でもsetだとインデックスが崩れるのでインデックスを保ちたい時はsetに変換するわけにもいきません
こういう場合ってどうやって引き算したらいいですか?
0877デフォルトの名無しさん2015/08/07(金) 14:39:35.38ID:NNL5NoiN
下の計算はそれぞれどんな結果になってほしいの?
>>> [1, 2, 3] - [3, 2, 1]
>>> [1, 2, 0, 1, 2] - [1, 2]
>>> [1] - [1, 2]
0878デフォルトの名無しさん2015/08/07(金) 14:57:29.38ID:3jYJojYP
>>875
>>871
> 組み合わせの配列を全部メモリーに持たないで
> iteratorのままにしとくことって出来ないのでしょうか
に出来るよ。

>>> cmb = itertools.combinations([1, 2, 3], 2)
>>> cmb.__next__()
(1, 2)
...

と答えましたけど?
0879デフォルトの名無しさん2015/08/07(金) 14:59:34.48ID:3jYJojYP
__next__() 知りませんでした?

>>> cmb = itertools.combinations([1, 2, 3], 2)
>>> for x in cmb:
... print("x =", x)
...
x = (1, 2)
x = (1, 3)
x = (2, 3)
0880デフォルトの名無しさん2015/08/07(金) 15:06:26.19ID:WJjqalcF
next()で呼び出せる、yield (産出する)のことかい?

ruby yield vs python yield
0881デフォルトの名無しさん2015/08/07(金) 22:12:04.67ID:/SQ+qO6x
>>876
リストAからリストBの値を一個ずつ削除していくコードを組めばいいんじゃないか?
0882デフォルトの名無しさん2015/08/07(金) 22:29:57.81ID:3jYJojYP
>>876
>>> L0 = [2, 2, 1, 0]
>>> L1 = [2, 3, 4]
>>> st0 = set(L0)
>>> st1 = set(L1)
>>> st2 = st0 - st1
>>> st2
{0, 1}
>>> L2 = []
>>> for x0 in L0:
... if x0 in st2:
... L2.append(x0)
...
>>> L2
[1, 0]
0883デフォルトの名無しさん2015/08/07(金) 22:32:01.98ID:3jYJojYP
>>881
削除だと、要素が重複する時にどうするか?
で頭を抱えます。
>>> L4 = [4, 4]
>>> L4.remove(4)
>>> L4
[4]

なので、私は、>>882を勧めます。
0884デフォルトの名無しさん2015/08/07(金) 22:38:21.30ID:eSh4n7lV
>>878
いや>>873に言ったんだ
紛らわしくてゴメン
0885デフォルトの名無しさん2015/08/09(日) 19:26:03.16ID:XcPHqnDO
Python のプログラムをお手軽にwebから呼べるアプリケーションにしたい
自分でサーバ立てたりApache設定したりしたくない
Google app engine に間借りするのが一番楽なんでしょうか
どこかに設定済みレンタルサーバみたいのないものか
0886デフォルトの名無しさん2015/08/09(日) 19:36:57.68ID:Dm6GjXRm
普通にDjangoやflaskやBottleなどのフレームワークを使えば
ウェブサーバー使わなくていいじゃん。
0887デフォルトの名無しさん2015/08/10(月) 02:39:35.76ID:XH0nUbFR
Doubleの浮動小数を配列に(メモリに?)最大何個まで入るか調べるには動かしてみるしかないのでしょうか
パソコンのメモリの大きさから計算できないでしょうか
0888デフォルトの名無しさん2015/08/10(月) 10:34:27.46ID:AGT5HrH+
はいよ。

>>> f = 1.0
>>> f.__sizeof__()
24
>>> f10000 = 10.0 ** 10000
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: (34, 'Numerical result out of range')
>>> from decimal import Decimal as D
>>> df10000 = D("10.0") ** 10000
>>> df10000.__sizeof__()
104
>>> L = [None] * (2 ** 24)
>>> L.__sizeof__()
134217768
0889デフォルトの名無しさん2015/08/10(月) 11:06:00.54ID:7hnSrnGJ
リストの最大サイズを聞いてるんじゃないのか?
0890デフォルトの名無しさん2015/08/10(月) 11:30:47.99ID:AGT5HrH+
>>889
malloc() が失敗する時、浮動小数の小数点以下の最大桁数と、
listの要素の数は反比例の関係にあるでしょう?
また、質問者はlistもmemoryを使う前提に気づいていないようでした。

浮動小数一つの要素のmemory sizeを知る方法、
decimal module 使ったobjectの要素のmemory sizeを知る方法、
list の要素数によってPCの使用するmemory sizeが大きく変動する事を
示すために、>>888を書きました。
0891デフォルトの名無しさん2015/08/10(月) 14:39:29.91ID:AGT5HrH+
>>887
$ cat /proc/meminfo | grep Mem
MemTotal: 3867772 kB
MemFree: 2707672 kB
の環境で、

http://pastebin.ca/3096710
を実行すると、bit=26を実行できました。
bit=27は×。

よって、
list_elements =
134217727
list_elements_size_of =
1207959624
が限界付近っぽいので、

max_mem_size=1207959624
として
http://pastebin.ca/3096751
を実行して、
float_objects の最大数は、
37748737
と決定しました。

お試しあれ。
0892デフォルトの名無しさん2015/08/10(月) 22:19:22.15ID:dVO5O3ai
>>885
Heroku
0893デフォルトの名無しさん2015/08/11(火) 06:08:20.62ID:jgY2w2Ww
32bitなら、メモリ空間は4GBで、
その内、カーネルに1GBを使うから、アプリは3GB使える

一方、64bitなら、無限に近い。
仮に物理メモリが8GBだとしても、ページング機能があるので、
USBメモリやHDDを、メモリのように使える

つまり、設定次第
0894デフォルトの名無しさん2015/08/11(火) 10:44:33.16ID:VmWDUo2S
勝手にUSBやHDDにswapされてても良いんだけど
パフォーマンスは落ちるよなー
確実に物理メモリだけで使える範囲を知りたいところである
0895デフォルトの名無しさん2015/08/11(火) 11:21:09.67ID:3YusrhQW
>>885
google app engineはCで書かれたバイナリに依存するライブラリを使えない
なのでAmazaon AWSが良いらしい
https://gist.github.com/Gab-km/5660808
0896デフォルトの名無しさん2015/08/11(火) 11:49:48.12ID:z0IP5VKM
>>894
無駄な考えにこだわってる人って滑稽ですね
壁に体当たり続けてる壊れたチョロQみたいですわ
首の上に頭が載ってないんでしょうね
0897デフォルトの名無しさん2015/08/12(水) 02:51:19.51ID:09N1uJwi
http://qiita.com/icoxfog417/items/1343395a7c42da9426b7
heroku便利そうなんだけど無料の範囲内だと
NumpyもScipyも使えないってことでOK?
0898デフォルトの名無しさん2015/08/12(水) 09:30:33.91ID:+VWy6X24
xreaでもpython動いてるよ
0899デフォルトの名無しさん2015/08/18(火) 11:42:47.60ID:j5KExTo2
pythonからJavaを呼び出すときに
型を指定しないといけないのがjavabridge
型を推定してくれるのがJPype
ということでいいのかな?
そのかわりjavabridgeはpip install javabridgeだけで入る
0900デフォルトの名無しさん2015/09/04(金) 19:30:15.58ID:iUPB2bSH
今日からPython使ってみるわー
おまいらよろしくー
0901名無しさん@お腹いっぱい。2015/09/04(金) 19:38:43.16ID:AjIgKAQa
>>900
君にお薦めの学習サイトを教えてあげよう、ここはかなり良かったぞ
ttp://diveintopython3-ja.rdy.jp/table-of-contents.html
0902デフォルトの名無しさん2015/09/04(金) 19:40:47.54ID:iUPB2bSH
>>901

あんがっと
0903デフォルトの名無しさん2015/09/06(日) 08:00:13.90ID:/Fu+tBiS
Cpythonはどうですか
0904デフォルトの名無しさん2015/09/06(日) 08:04:46.13ID:2A7JkPdq
なにが?
0905デフォルトの名無しさん2015/09/06(日) 08:24:02.72ID:AeNVda8A
ええ、元気ですよ
0906デフォルトの名無しさん2015/09/06(日) 10:18:35.07ID:vnoZtrgz
checkioって後半になるとアルゴリズムとデータ構造と数学が必要になるらしいんですが、どんな本で予習しておくのがいいですか?
0907デフォルトの名無しさん2015/09/06(日) 13:40:47.47ID:AeNVda8A
試験じゃないから予習は必要ないと思うけど

プログラミングコンテスト向けの本とか?
0908デフォルトの名無しさん2015/09/06(日) 14:37:33.24ID:vnoZtrgz
>>907
ありがとうございます。蟻本ってやつで大丈夫ですかね?
0909デフォルトの名無しさん2015/09/06(日) 15:32:55.15ID:AeNVda8A
いいんじゃないかな

他言語で書かれていても参考になる

というか他言語を別のに書き換えるのが一番力が付く

足りない部分はwebで補完するしかないね
ttp://www.geocities.jp/m_hiroi/light/
0910デフォルトの名無しさん2015/09/06(日) 18:54:40.21ID:vnoZtrgz
>>909
>というか他言語を別のに書き換えるのが一番力が付く
そうなんですか。やってみます!どうもです!
0911デフォルトの名無しさん2015/09/15(火) 19:48:21.62ID:8qZta6q5
3.5出たけどやっぱりXPにはインスコできないな
インストーラ画面で次へボタンが出ない
0912デフォルトの名無しさん2015/09/15(火) 22:40:48.41ID:e0XDIV9e
XPってあーた・・・
0913デフォルトの名無しさん2015/09/15(火) 22:44:44.26ID:FPLJInGY
XPならPython2.1くらいが似合ってんじゃね?
0914デフォルトの名無しさん2015/09/15(火) 22:51:32.09ID:e0XDIV9e
つか、ZIP版解凍してパス通すだけなんじゃあ…
0915デフォルトの名無しさん2015/09/15(火) 22:57:31.57ID:FPLJInGY
windowsは結構前からインストーラ版しかないよ
たしか4年くらい前だったか?
まあインストーラでも展開できないことはないし
動けば儲け物だな
動けば
0916デフォルトの名無しさん2015/09/15(火) 23:03:23.17ID:e0XDIV9e
え?…あるけど…
https://www.python.org/downloads/release/python-350/
0917デフォルトの名無しさん2015/09/15(火) 23:14:28.01ID:FPLJInGY
あれ、本当だ
方針が変わったのか?

3.4まではこの通りzipがない
https://www.python.org/downloads/release/python-340/
0918デフォルトの名無しさん2015/09/15(火) 23:28:17.19ID:Jg6lDm0C
上の Notes on this release とそのリンク先に説明が書いてあるね
アプリケーションの一部として配布する用途を主に想定しているようだ
レス数が900を超えています。1000を超えると表示できなくなるよ。