- 1 名前:デフォルトの名無しさん [2009/04/26(日) 01:48:01 ]
- Pythonオフィシャルサイト
www.python.org/ 日本Pythonユーザ会 www.python.jp/Zope/ まとめWiki python.rdy.jp/ 関連スレ find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python 前スレ pc12.2ch.net/test/read.cgi/tech/1234716330/
- 171 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 09:20:31 ]
- ここで聞くと参考になる答えは返ってこないかと・・・
- 172 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 12:18:24 ]
- pythonのコードをreadableなcに変換する方法はないのでしょうか
readableなら完全な変換でなくて、多少の手で書きなおす部分があってもいいです
- 173 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 16:36:48 ]
- readableの定義は?
- 174 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 16:50:52 ]
- めんどくせw
- 175 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 20:54:21 ]
- ちょっとまって、ヒープは一意に決まるのかな?
- 176 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 21:08:09 ]
- >>171
もちろん参考にはしませんので教えれ
- 177 名前:デフォルトの名無しさん [2009/05/14(木) 22:53:53 ]
- >172 pythonのコードをreadableなcに変換する方法はないのでしょうか
無理だ
- 178 名前:デフォルトの名無しさん [2009/05/14(木) 23:20:24 ]
- lambdaが使われているソースがキモすぎて理解できません
誰か親切丁寧かつほのかなエロさで教えろ
- 179 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 23:27:54 ]
- ラムダ計算を勉強してこい
- 180 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 23:35:45 ]
- pythonのlambdaを使うだけならλ計算の勉強はしなくていいです。
lambda a, b: a + b ってのは、 def foo(a, b): return a + b という関数定義がその場にあって、 その場で foo と参照するのと同じ。 以上。難しくないでしょ?
- 181 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 23:39:43 ]
- >>180
簡潔。俺のような低能の長年の疑問が…。
- 182 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 03:27:15 ]
- >>178
死ね
- 183 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 03:49:17 ]
- f = lambda: f()
f()
- 184 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 06:36:46 ]
- lambdaの中で使う変数のnamespaceってどうなってんの?
- 185 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 22:35:09 ]
- クロージャの話をしろということだろうか
- 186 名前:デフォルトの名無しさん mailto:sage [2009/05/16(土) 00:16:34 ]
- n = []
foo = lambda: n.append("unko") bar = lambda: n bar() foo() bar() n = 123 bar()
- 187 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 11:23:38 ]
- 各オブジェクトのメモリ使用量とか分かるモジュールありますか?
- 188 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 12:30:28 ]
- >>187
guppy の heapy でも、もし手元にある Python プログラムがメモリを食っているのなら、 d.hatena.ne.jp/methane/20090517/1242531011
- 189 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 13:03:14 ]
- 2009-05-17
■[Python] Pythonプログラムがメモリを大量に使っているとき もし想定以上のメモリを Python プログラムが消費しているのであれば、ループの中で循環参照が生まれていることや、回収不能オブジェクト(循環参照なうえに __del__ メソッドが存在するためにgcがどこから循環を切っていいのか判らないオブジェクト)が存在しないかを疑う。 import gc gc.set_debug(gc.DEBUG_LEAK) gc.disable() # 問題の処理 gc.collect() # 回収された循環参照や回収不能オブジェクトが表示される
- 190 名前:188 mailto:sage [2009/05/17(日) 20:09:57 ]
- ありがとう。heapy試して見ます。
- 191 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 00:52:35 ]
- Python3.0 changes に
> dict methods dict.keys(), dict.items() and dict.values() return "views" instead of lists. とあるんですけど、views とはなんですか。iteratorとはまた違うんでしょうか。
- 192 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 01:11:26 ]
- >>> d = {"abc":2, "def": 0}
>>> d.keys() == {"abc", "def"} True >>> "abc" in d.keys() True >>> len(d.keys()) 2
- 193 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 03:59:30 ]
- >>192
データベース用語じゃないかな。 デリヘルだったのが業態変更で覗き部屋に変わりました みたいな感じ。
- 194 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 20:08:13 ]
- docs.python.org/3.0/library/stdtypes.html#dictionary-view-objects
- 195 名前:デフォルトの名無しさん [2009/05/22(金) 19:20:38 ]
- プログラミング初心者です。
ちっちゃいツールを作れたら…と勉強開始しました。 最初のうちって数字を抜き出したり、表示させたりばっかりですが なんかプログラミングって感じないんですよね。 最終的にはそれなりなツールが作れるといいんですが… ちなみにスライスとかインデックスを指定とかって実際のプログラミングで使ったりするんですか?
- 196 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 19:22:43 ]
- つRails
- 197 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 19:45:51 ]
- windowsな人はブビでもやるよろし
- 198 名前:デフォルトの名無しさん [2009/05/22(金) 20:53:42 ]
- linuxも勉強中ですので、頑張って続けてみます。
ありがとうございました。失礼します。。。
- 199 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 21:06:59 ]
- ひでw
お勉強スレでなんで違う言語に誘導すんだよw
- 200 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 22:12:27 ]
- 質問には答えようぜ
>195 > ちなみにスライスとかインデックスを指定とかって実際のプログラミングで > 使ったりするんですか? 超使います。例えば掲示板ソフトを作ったとして、メッセージの195番っつた ら、 messages[195] とか書けるように作るのが単純なやりかた。 (もちろん、凝ろうと思えばいくらでも凝れます)
- 201 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 22:16:40 ]
- messages[194]がいいです
- 202 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 22:18:02 ]
- >>200
- 203 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 22:22:01 ]
- >メッセージの195番っつた
>ら、 messages[195] とか書けるように ちょうウケる(WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
- 204 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 22:28:51 ]
- ”とか”って書いてるからいいじゃん
民主党みたいなことすんなや
- 205 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 22:34:20 ]
- ,..--‐‐‐‐‐‐‐‐---..
/::::ヽ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;) |::::::::::/ ヽヽ .|::::::::::ヽ ........ ..... |:| |::::::::/ ) (. .|| i⌒ヽ;;|. -=・=‐ .‐・=-.| 党首辞任”とか”してみたりなんかしちゃったりして |.( 'ー-‐' ヽ. ー' | ヽ. /(_,、_,)ヽ | ._|. / ___ .| _/:|ヽ ノエェェエ> | :::::::::::::ヽヽ ー--‐ / ::::::::::::::::ヽ \ ___/
- 206 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 22:35:41 ]
- うわー
ところでmessages[0]はNone?空文字?
- 207 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 22:38:28 ]
- 好きな人の名前に決まっているだろ!
- 208 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 22:43:08 ]
- messages[0]は0番だろ
- 209 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 22:47:40 ]
- thebbsはたしか0番から始まってた…と思ったらthebbs閉鎖したのね。
- 210 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 23:52:03 ]
- こうして今日もPythonの話題から脱線していくのだったとさ・・・
- 211 名前:デフォルトの名無しさん [2009/05/22(金) 23:59:16 ]
- >>200
すごくわかり易かったです! ありがとうございます。 基礎は重要ってことですね! しっかり学びます。(みんなのPython改訂版使用) 図々しいですが、わからない事がありましたらまたお願いします。
- 212 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 02:27:13 ]
- もしかしてPythonが初めてのプログラミングなのかしら・・・
- 213 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 07:42:04 ]
- プログラミングに向いてない
別のことに時間使え
- 214 名前:200 mailto:sage [2009/05/23(土) 14:12:12 ]
- こんなにウケるとは思わなかったwwww
>201 わかってんならいいよ。でもoff-by-oneバグには気をつけて。 >203 そんな面白い?テヘ(´▽`) >205 鳩山って一応工学部出てんだけど、なんであんなにデムパなのかね‥‥‥ >206 Noneでも空文字でもいいけど、俺が作るならスレッドタイトル入れとくかなぁ。 >207 おかーちゃんの名前を入れておけ! >211 がんばれ。
- 215 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 14:36:27 ]
- >>212
俺、Pythonは2番目 最初に覚えたのはbashプログラミング
- 216 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 18:13:46 ]
- Perlから鞍替え組しかいなかったころがなつかしい
- 217 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 21:27:53 ]
- 順番
Ruby->Pythonと Python->Rubyのひとは どっちが多いですか
- 218 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 21:34:02 ]
- Ruby->Pythonの方が多そうな気がする。主に実行速度の面で。
- 219 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 00:08:33 ]
- >>218
実行速度もそうですが Rubyのプログラムの書き方が合わないっていう人はいないんですかね。 自分は関数定義(def)の時のブロックにbeginをつけない所と、 lambda式の記述の仕方がどうも合わなかったんですが…自分だけか…
- 220 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 00:45:43 ]
- perlのせいでLLを毛嫌いしてたけど、
pythonが出てきてからは何にでも使うようになった。
- 221 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 01:07:55 ]
- Perlを知ってからは何にでも使うようになったら
後で酷いことになった。
- 222 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 01:19:16 ]
- >>219
俺は end が嫌だったのと、関数が名前空間違う部分が無理だったな。 Rubistにしては書くときに楽しいのかもしれんが、読みやすさは圧倒的に Pythonの方が上。Pythonを知らない人にも読める executable pseudocode
- 223 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 04:16:30 ]
- まじで!?
基本的にpython大好きだけど ブロック終端記号がないのだけは好きになれない。
- 224 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 06:17:22 ]
- Pascalのcase-endですらいらついたしRubyもbeginなしendだし
うっとうしいだけ
- 225 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 06:18:24 ]
- インデント守ってないコードで終端記号なかったら訳分からんけど
Pythonの場合無くても問題にならないだろ
- 226 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 07:46:08 ]
- Pythonで唯一面倒なのは、テストで途中でブロック追加したり取ったりする場合だな。
まぁ、エディタでブロックごとインデント付けたり消したりできればいいだけなんだけど。
- 227 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 07:49:30 ]
- >>226
それはEmacsで楽に出来るから問題ないな。
- 228 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 07:53:11 ]
- Emacsで、ある範囲を指定してインデントを増やす/減らすのはどうしたらいいの?
いまは C-x r t としてスペースを4つ指定しているんだけど、かっこわるすぎる
- 229 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 07:56:13 ]
- >>228
リージョンを指定して、C-c > で右 C-c < で左インデント
- 230 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 09:50:00 ]
- >>227
それvimでも簡単だよ!
- 231 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 10:25:48 ]
- Pythonは読みやすいけどインデントが嫌だ
- 232 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 10:28:59 ]
- >>231
読みやすさ > 個人の趣味
- 233 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 10:31:59 ]
- >>232
書きやすさ>読みやすさ>個人の趣味
- 234 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 11:11:44 ]
- Pythonは基本読みやすいですが、
書籍に載ってるプログラムで次のページにまたいでるとき、 インデントがどうなったのか分かりにくい時があるのがたまにきずですかね。
- 235 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 11:19:39 ]
- >>233
読む方が多いからそれはないわ
- 236 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 11:30:08 ]
- ぶっちゃけ、インデントは慣れればそれほど問題じゃないって感じだな。
おまえインデントブロック初めてか?みたいな人にはインパクトはかなりあるがw 結局俺の場合、何で書いてもだいたい同じような見た目になるしw 構造自体が全然違うってのは、関数系言語だな。
- 237 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 11:39:43 ]
- 頼むからインデントに最低スペース4つは使ってくれ
- 238 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 12:03:23 ]
- GoogleAppEngineでは2つが標準みたいだよ
- 239 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 12:11:22 ]
- そういう議論はこっちで
Pythonに見られるインデントによる制御構造の是非 pc12.2ch.net/test/read.cgi/tech/1169473442/l50
- 240 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 12:59:48 ]
- ブロックのインデント表現は流行らないと思うわ
括弧とか改行とか、もっと積極的な表現の方が人間が認識しやすいもの
- 241 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 13:13:20 ]
- >>237
それにこだわるひといるみたいだけど なんか意味あるのか?
- 242 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 13:17:36 ]
- >>240
気のせいです
- 243 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 13:24:52 ]
- >>241
インデントが深くなったときパッと見で判別しづらいからとか?
- 244 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 13:36:09 ]
- dict1 = {'a':1}
dict2 = {'b':2} とあったときに、2つをマージした新しい辞書dict3を一発でつくるにはどうしたらいいですか。 dict3 = dict1.copy() dict3.update(dict2) とするしかないのでしょうか。 dict3 = dict1 + dict2 とかできませんか?
- 245 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 13:39:47 ]
- >>244
D1.update(D2)
- 246 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 14:00:03 ]
- >>241
それにこだわる人と同じ理由ではないと思うけど、個人的には読み難いし、綺麗じゃない まぁおれがいつも4つ使ってるから慣れてないだけなのかもしれんけど。
- 247 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 14:34:01 ]
- ところで皆さんインデントはスペース派?タブ派?
作者はスペースを推しているけど。
- 248 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 15:00:17 ]
- タブ4。
- 249 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 15:18:22 ]
- vimでSpace4
- 250 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 15:45:22 ]
- スペース4だな
- 251 名前:デフォルトの名無しさん [2009/05/24(日) 16:03:13 ]
- pythonだけでも十分?
- 252 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 16:04:21 ]
- タブ2だな
みんなけっこう違うんだな
- 253 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 16:11:55 ]
- スペース2にきまっとる
- 254 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 16:15:05 ]
- pep8 では4スペースだから、新規に標準ライブラリにはいるコードは全部4スペース。
- 255 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 17:54:26 ]
- 1段目:Space6
2段目:Space5 3段目:Space4 4段目:Space3 5段目:Space2
- 256 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 19:39:22 ]
- 途中で改行したばあいの2行目以降の字下げも推奨値あるの?
- 257 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 20:40:31 ]
- >>256
それ気になる。配列や辞書を途中で改行している場合、かっこを閉じる位置をどこにするか迷う。
- 258 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 20:47:58 ]
- >>249
同じく
- 259 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 21:00:23 ]
- 辞書や配列の閉じカッコって、使ってるテキストエディタによって
微妙に位置が違ってなんか痒いところだよな。
- 260 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 22:09:09 ]
- >>245
>D1.update(D2) これだと D1 が変更されますよね。 やりたいのはD1もD2も変更せずに、かつD1とD2をマージした辞書を一発で新たに作りたいということなんですけど。
- 261 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 23:06:14 ]
- むりぽ
- 262 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 23:09:38 ]
- >>257
突然Cみたいになっちゃう俺。
- 263 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 23:19:11 ]
- dict1 = {'a':1}
dict2 = {'b':2} >>> dict([(k, dict1[k]) for k in dict1] + [(k, dict2[k]) for k in dict2]) {'a': 1, 'b': 2} 普通すぎてスマソ
- 264 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 23:25:14 ]
- >>> dict(list(dict1.iteritems()) + list(dict2.iteritems()))
{'a': 1, 'b': 2} あんまり変わらんか orz
- 265 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 23:34:48 ]
- eval(",".join((str(dict1)[:-1],str(dict2)[1:])))
気持ち悪い
- 266 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 23:37:08 ]
- >>264
その方式ならこうじゃね? >>> d1 = {'a':1} >>> d2 = {'b':2} >>> dict(d1.items() + d2.items()) {'a': 1, 'b': 2}
- 267 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 23:47:42 ]
- >>256
PEP8では「適切にインデントすること」としか書かれていないけど、サンプルコードを見ると 改行前の要素に合わせてるな。 foo(bar, baz)
- 268 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 00:05:27 ]
- どっちかというとそういう関数作った方がキレイだな。
- 269 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 00:19:23 ]
- setと違って+演算子を割り当てなかったのは、足す前の辞書の要素のうち足す辞書に
重複するキーがあった場合値を上書きしてしまうと言う動作が、+演算子の 「追加する」というイメージに合わなかったからだろうな。 あくまでも更新(update)であって、追加(add)じゃない。 clone() して update() するのが正解だと思うよ。別に面倒でも汚くもないし。
- 270 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 00:43:34 ]
- d3 = d1 || d2
- 271 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 00:52:22 ]
- >>270
Pythonにそんな演算子ねーよw それに、 d3 = d1 | d2 にしても、やっぱりd1にある要素が「消える」ということを考えると bitwise or とは違うよね。set ならそれでも意味通るけど。
|

|