くだすれPython(超初心者用) その23
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2014/05/19(月) 15:00:17.89ID:C9xN4CIoもしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。
エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで
前スレ
くだすれPython(超初心者用) その22
http://toro.2ch.net/test/read.cgi/tech/1394240091/
関連スレ
Pythonのお勉強 Part49
http://toro.2ch.net/test/read.cgi/tech/1387528488/
◆関連リンク Python の Home Page
ttp://www.python.org/
◆長いコードはこういうところにはってください
ttp://ideone.com/
ttp://codepad.org/
ttp://pastebin.com/
ttp://dpaste.com/
◆まとめwiki
ttp://python.rdy.jp/
0347デフォルトの名無しさん
2014/06/24(火) 12:49:31.51ID:KPD/KS2Lこのまま勉強続けるか他の言語やろうか悩んでます
0348デフォルトの名無しさん
2014/06/24(火) 13:14:49.01ID:NxIbYWBb他人の回答待たなくても python php ruby 速度 比較 でググれば済むでしょ
速度重視のことしかやる予定がないならばスクリプト言語は選ぶべきじゃないよ
0349デフォルトの名無しさん
2014/06/24(火) 14:14:42.89ID:pyM7CQ5E0350デフォルトの名無しさん
2014/06/24(火) 17:27:44.49ID:xvJ2AonvPHPが入ってるからweb利用だと思うんだけど、そうなるとフレームワークのスピードまで考えないといけないからどのフレームワークを使うかまで示さないと答えが出ないと思う。
Rubyは1.8まで鈍足だったけど1.9や2.0から爆速になったらしい。
0351デフォルトの名無しさん
2014/06/24(火) 18:28:54.23ID:Gaa8YGIE極限が抜けてるし
近似がどのくらいになるか実用でも大切なんで
もうちょっと頑張って欲しい
0352デフォルトの名無しさん
2014/06/24(火) 18:34:11.93ID:6pATSNEw0353デフォルトの名無しさん
2014/06/24(火) 18:50:13.54ID:7apUXXXH工夫出来ない人には遅いからやめたほうがいいと思うよ
0354デフォルトの名無しさん
2014/06/24(火) 19:13:27.85ID:/C23Uhbr0355デフォルトの名無しさん
2014/06/24(火) 21:19:31.95ID:UpeRHjTeさくっと入れられる
0356デフォルトの名無しさん
2014/06/25(水) 10:19:45.34ID:51nve3hM次の足し算の値をそれぞれ求めてください(「^」は冪乗)
S0 = Σ[n=1->∞](1/n)
S1 = Σ[n=1->∞](1/(n^2))
S2 = Σ[n=1->∞](1/(2^n))
S3 = Σ[n=1->∞](1/(n!))
S4 = Σ[n=1->∞](((-1)^n)/(n!))
0357デフォルトの名無しさん
2014/06/26(木) 21:47:05.20ID:B3uDjtHwこれを
a, b, c, d, e = 0
こんな感じにやる方法ありますか?
0358デフォルトの名無しさん
2014/06/26(木) 22:00:42.57ID:5KH0JI86a, b, c, d, e = (0, ) * 5
0359デフォルトの名無しさん
2014/06/26(木) 22:45:45.16ID:TI09kgf8a = 2
print(b) # 1
Why?
0360デフォルトの名無しさん
2014/06/26(木) 22:52:06.64ID:Sh8OHuSQaもbも1を指し示してるだけ
0361デフォルトの名無しさん
2014/06/27(金) 07:50:01.41ID:MP6UuGKea = b = 1
b = 2
print(a) # 1
Why?
って感じはする
0362デフォルトの名無しさん
2014/06/27(金) 08:27:18.33ID:th4oYuYPa = b = c = d = e = 0
0363デフォルトの名無しさん
2014/06/27(金) 11:06:52.02ID:VMxElTMe0364デフォルトの名無しさん
2014/06/27(金) 11:40:29.79ID:EIRXo2Ck0365デフォルトの名無しさん
2014/06/27(金) 11:59:29.04ID:wewJM3tia, b, c, d, e = (0 for i in xrange(5))
0366デフォルトの名無しさん
2014/06/27(金) 12:32:17.69ID:cE8RShgLa = 2
print(b) # 2
というふうにaに代入した値をbにも反映されるようにするのどうしたらいいのか教えて
参照渡しってできないの?
0367デフォルトの名無しさん
2014/06/27(金) 12:49:29.40ID:cYIjyZKJa = b = [1]
a[0] = 2
print b[0] # 2
参照渡しはないよ
0368デフォルトの名無しさん
2014/06/27(金) 13:20:59.77ID:h62Evzx/def func(n):
while n:
yield 0
n -= 1
a, b, c, d, e = reduce(lambda x, y: x + (y, ), func(5), ())
0369デフォルトの名無しさん
2014/06/27(金) 13:27:42.48ID:h62Evzx/import ctypes
x = ctypes.c_int(6)
print x.value
y = ctypes.pointer(x)
print y[0]
x.value = 9
print y[0]
0370デフォルトの名無しさん
2014/06/27(金) 13:35:02.60ID:h62Evzx/a, b, c, d, e = func(5)
だけでよかった
0371デフォルトの名無しさん
2014/06/27(金) 13:36:23.32ID:zWZLa2qva,b,c,d,e=O
でおk
0372デフォルトの名無しさん
2014/06/27(金) 13:41:33.48ID:h62Evzx/0373デフォルトの名無しさん
2014/06/27(金) 14:00:09.20ID:xRd+Z5nf少なくとも俺の3.3.5ではエラーになるぞ
>>> a,b,c,d,e = 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
0374デフォルトの名無しさん
2014/06/27(金) 14:37:01.03ID:anxy72bu>>> b = 257
>>> a is b
False
>>> a = b = 257
>>> a is b
True
>>> a, b = 257, 257
>>> a is b
True
>>> a = 257; b = 257
>>> a is b
True
>>> c = (257, 257)
>>> c[0] is c[1]
True
つまりはこういうことよ。後は>>375が説明してくれる
0375デフォルトの名無しさん
2014/06/27(金) 15:04:16.66ID:HV8S9cD10376デフォルトの名無しさん
2014/06/27(金) 15:20:07.76ID:x7mGf/cj>>> b = 257
>>> a is b
False
これだけFalseなのは何でだ?
二行に渡って書くと別のオブジェクトが生成されるのか?
0377デフォルトの名無しさん
2014/06/27(金) 15:31:15.87ID:anxy72bu>>> a = 256
>>> b = 256
>>> a is b
True
>-5 から 256 までの全ての整数に対する整数オブジェクトの配列を保持するようにしており、
>この範囲の数を生成すると、実際には既存のオブジェクトに対する参照が返るようになっています。
(http://docs.python.jp/3.3/c-api/long.html#PyLong_FromLong)
0378デフォルトの名無しさん
2014/06/27(金) 15:45:27.50ID:x7mGf/cjつまり既存の整数オブジェクトを指すときは二行に渡って書いてもどちらも勝手にそれを指してくれるが
それ以上の整数オブジェクトを指すときに二行以上に渡って書くと二つ目かそれ以上の同値のオブジェクトが生成されてしまうのか
0379デフォルトの名無しさん
2014/06/27(金) 15:45:58.06ID:xRd+Z5nf危険な香りのする仕様だなあ
動的言語は、ただでさえ変数とオブジェクトの結びつきが把握しづらいのに
0380デフォルトの名無しさん
2014/06/27(金) 15:52:28.40ID:IgBVKGCt0381デフォルトの名無しさん
2014/06/27(金) 17:40:39.37ID:h62Evzx/0382デフォルトの名無しさん
2014/06/27(金) 17:51:38.50ID:zWZLa2qvフォントを良く見るんだ
0383デフォルトの名無しさん
2014/06/27(金) 17:58:19.42ID:h62Evzx/0384デフォルトの名無しさん
2014/06/27(金) 18:13:19.31ID:h62Evzx/while True: yield 0
a,b,c,d,e=map(operator.itemgetter(0), zip(func(),'.....'))
0385デフォルトの名無しさん
2014/06/27(金) 19:15:58.43ID:uvqK3/Rnis は値が等しいかどうかを調べるための演算子じゃないんだよ。
0386デフォルトの名無しさん
2014/06/27(金) 22:53:28.40ID:/cFHuc2v「いまさらでもないような」とか陰湿なはてなコメントがつきますかね?
0387デフォルトの名無しさん
2014/06/27(金) 23:07:56.74ID:6sHTcygmos.walk('hogehoge').next()[2]
と書けばお目当てのリストが手に入るのですが
なんとも回りくどいというかダサいような気がしてて
「お前普通これはこう書くぜ」
ってのがありましたらご教授ください。
あと「こんなときはこう書く」といったセオリー集みたいなものがあれば
推薦いただけると助かります。
よろしくお願いします。
0388デフォルトの名無しさん
2014/06/27(金) 23:19:03.93ID:1upKDDHVpathlib.Path('hogehoge').glob('*')
0389デフォルトの名無しさん
2014/06/28(土) 00:04:46.24ID:7sxfa8vA[f for f in os.listdir("dir") if os.path.isfile(f)]
0390デフォルトの名無しさん
2014/06/28(土) 01:14:32.39ID:b1YNPAHo0391デフォルトの名無しさん
2014/06/28(土) 01:28:08.75ID:6GcPHMvtPython3.4が使えるならpathlibあるからいろんな環境で使いまわせる
>>> def get_files(target):
p = pathlib.Path(target)
for row in p.iterdir():
if row.is_file(): yield row
#windows
>>> list(get_files("../"))
[WindowsPath('../a.txt'), WindowsPath('../b.txt'), WindowsPath('../c.txt')]
#posix
>>> list(get_files("../"))
[PosixPath('../a.txt'), PosixPath('../b.txt'), PosixPath('../c.txt')]
0392デフォルトの名無しさん
2014/06/28(土) 02:40:28.64ID:WBXNiQjoclient = gdata.docs.service.DocsService()
client.ssh = True
client.ClientLogin('[email protected]', 'fuga')
for entry in client.Query(gdata.docs.service.DocumentQuery(categories=['folder|document|spreadsheet'], params={'showfolders': 'true'}).ToUri()).entry:
print entry.title.text.decode('utf-8')
0393デフォルトの名無しさん
2014/06/28(土) 02:46:32.92ID:N7FDbnGk>>> b = 257
>>> c = 257
>>> a is b
False
>>> b is c
False
>>> c is a
False
やっぱり複数行に渡って書くとそれだけ別のオブジェクト作ってるみたいね
0394デフォルトの名無しさん
2014/06/28(土) 08:36:33.28ID:IsiDlcAuかなり衝撃の仕様だな
これ知らない人多いんじゃね
0395387
2014/06/28(土) 08:45:53.61ID:pESjXYY5精進します。
0396デフォルトの名無しさん
2014/06/28(土) 08:54:24.83ID:2sHahEvaちがう
https://docs.python.org/3/reference/simple_stmts.html#assignment-statements
> assignment_stmt ::= (target_list "=")+ (expression_list | yield_expression)
>
> An assignment statement evaluates the expression list (remember that this can be
> a single expression or a comma-separated list, the latter yielding a tuple) and
> assigns the single resulting object to each of the target lists, from left to right.
a = b = 1 ってあったら a と b が target_list
でもってリテラル 1 を評価して得られたオブジェクトをまず a に代入し、続いて b に代入する
Python の代入が値を返さないことからくる仕様
0397デフォルトの名無しさん
2014/06/28(土) 09:18:30.76ID:IsiDlcAu結果が同じなのに違うという意味がわからない
a = 257;b = 257と書くと、内部的にa = b = 257と
同じ動作をする、と解釈するのが自然でしょ
0398デフォルトの名無しさん
2014/06/28(土) 09:30:34.64ID:2sHahEva結果は違うよ。副作用を持つ式を右辺に持ってくるとよくわかる
def foo(): print "foo"
a = b = foo()
c = foo(); d = foo()
0399デフォルトの名無しさん
2014/06/28(土) 09:40:08.15ID:9rt66hxz257が同じオブジェクトかどうかという話なのに何でそんな話が出てくるの
0400デフォルトの名無しさん
2014/06/28(土) 09:46:56.44ID:oeWdp7Lh> やっぱり複数行に渡って書くとそれだけ別のオブジェクト作ってるみたいね
ちょいとイヤーんな仕様だけど、同一行に書いてるのにいちいち別のオブジェクト作るのもどうかと思うし、まあ納得できなくもないな。
0401デフォルトの名無しさん
2014/06/28(土) 09:49:17.72ID:ANCf73I/>> a = 257
>> b = 257
>> a is b
がFalseを返すのは「複数行に渡って書いてるから」ではなく「REPLが一行ずつコンパイルしているから」だよ
通常のコーディングではモジュールや関数単位でリテラルを保存する領域が作られて、そこへの参照が代入されているためTrueを返す
REPL上でも
def function():
a = 257
b = 257
return a is b
はTrueを返すのが確認できるはず
0402デフォルトの名無しさん
2014/06/28(土) 09:58:00.73ID:IsiDlcAuなるほどね
会話モードで実行する場合とスクリプトファイルを書いて
実行する場合とでオブジェクト解釈動作が異なるとはな…
これは動的言語全般の弱点と言ってよいのだろうか
0403デフォルトの名無しさん
2014/06/28(土) 10:13:06.85ID:7CN7vrwxまぁ数値だろうが何だろうがコードに直接書いたもんでも計算の結果でも同じものなら同一単一のユニークなオブジェクトになっては欲しいが
実際にプログラム書くときはあんまり関係ないけど
0404デフォルトの名無しさん
2014/06/28(土) 10:37:48.78ID:ANCf73I/でもさすがに
a = "abcdef"
b = "abc"
c = "def"
a is b + c
はFalseが返ってくる模様
a is "abc" + "def"
ならTrueになるんだけどコンパイル時に文字列の連結だけは勝手にやってくれるんだっけか
0405デフォルトの名無しさん
2014/06/28(土) 10:52:23.41ID:IsiDlcAuオブジェクト同士の一致・不一致をよりどころにしたコーディングは
避けた方が無難という教訓は得られたな
0406デフォルトの名無しさん
2014/06/28(土) 11:06:36.46ID:nQi9MEXz数値型や文字列はキャッシュされるから例外的であって
その他の一般的なオブジェクトは個別にインスタンス持つから問題ない
0407デフォルトの名無しさん
2014/06/28(土) 11:12:48.87ID:b1YNPAHoそんなことはドキュメントに書いてあんだよ。
「オブジェクトが同じかどうか」 ≠ 「値が同じかどうか」
オブジェクトへの参照は実装依存だから is は「値が同じかどうか」でつかっては「いけない」演算子。
値が同じかどうかは == で評価する。
でもって「参照しているオブジェクト」が同じかどうかなんてことがプログラミング上重要なことなんてまずない。
だから is とか普通使わないの。
使うなら「オブジェクトがひとつしか存在しない」と規定されてる None に対してくらい。
0408デフォルトの名無しさん
2014/06/28(土) 11:53:50.13ID:nQi9MEXzC/C++での格納域の先頭ポインタ比較と一緒
ツリー構造や循環リスト構造みたいに、オブジェクトのリンクで構成さてれるものでは
同じオブジェクトを示してるのか比較する場面はよくある
プログラミング初心者には None との比較くらいだろうけど
0409デフォルトの名無しさん
2014/06/28(土) 13:09:24.49ID:T83bifQJ0410デフォルトの名無しさん
2014/06/28(土) 13:20:35.78ID:sKWOMnpi0411デフォルトの名無しさん
2014/06/28(土) 13:20:47.82ID:S0eBUWjq門前払いでごめんね
0412デフォルトの名無しさん
2014/06/28(土) 17:39:03.41ID:WBXNiQjo0413デフォルトの名無しさん
2014/06/28(土) 18:36:44.40ID:oazImjwz0414デフォルトの名無しさん
2014/06/29(日) 10:30:24.02ID:+YTZ+pnIフレームワークのフィロソフィーとか語られても意味わかんない
0415デフォルトの名無しさん
2014/06/29(日) 10:38:37.44ID:wFk5OUc50416デフォルトの名無しさん
2014/06/29(日) 10:39:32.63ID:+YTZ+pnI0417デフォルトの名無しさん
2014/06/29(日) 10:55:31.60ID:m6I1Uo3+言語は生活と表裏一体のものだから
日本に住みながら外国の言語を理解できるはずもない
だから日本独自のPythonコミュニティが必要なのだ
0418デフォルトの名無しさん
2014/06/29(日) 11:24:02.67ID:wFk5OUc5インド人が多い印象
Python なんか特に
彼らの英語(というか文化)は日本人になじみやすいと思う
0419デフォルトの名無しさん
2014/06/29(日) 11:48:58.24ID:EldRf64zすぐに最新ドキュメントの和訳を提供してくれる
0420デフォルトの名無しさん
2014/06/29(日) 11:53:35.54ID:/eiO291O外部ライブラリのリファレンスは訳されてなくとも実際のコードの記述例と
申し訳程度の英語コメントが書いてあったりで分かり易いんだけどね
0421デフォルトの名無しさん
2014/06/29(日) 12:16:24.89ID:EldRf64zpython.jpとかいらねえわ
0422デフォルトの名無しさん
2014/06/29(日) 13:10:34.65ID:tO69Jiz20423デフォルトの名無しさん
2014/06/29(日) 13:11:40.59ID:5HmND7Qcクスクス
0424デフォルトの名無しさん
2014/06/29(日) 13:12:56.49ID:RnZUsAyu助成してもらうとかの話じゃね?
ruby みたく
0425デフォルトの名無しさん
2014/06/29(日) 13:14:50.50ID:vvQOaiPqそれはNGO
0426デフォルトの名無しさん
2014/06/29(日) 13:20:15.61ID:+YTZ+pnI0427デフォルトの名無しさん
2014/06/29(日) 15:03:38.28ID:7Y08vl9J0428デフォルトの名無しさん
2014/06/29(日) 15:38:03.12ID:+YTZ+pnI0429デフォルトの名無しさん
2014/06/30(月) 02:51:03.61ID:DRQLq2tT最新版○○とあるのが半年近く前のとかいう状態だった
webmasters@非公開だから知らんが3月のに更新されたの大方今月じゃねーのか
0430デフォルトの名無しさん
2014/06/30(月) 02:57:02.38ID:3lwG7vbW0431デフォルトの名無しさん
2014/06/30(月) 04:44:07.29ID:FpyV2Xga0432デフォルトの名無しさん
2014/06/30(月) 06:09:46.13ID:srw1cYfa0433デフォルトの名無しさん
2014/06/30(月) 08:49:21.28ID:GPepSJhB0434デフォルトの名無しさん
2014/06/30(月) 08:50:31.23ID:KEqdBFcs0435デフォルトの名無しさん
2014/06/30(月) 09:35:50.47ID:qldQtFdW素早く転び
素早く立ち上がってまた
素早く走りだす
それでいいじゃないか
0436デフォルトの名無しさん
2014/06/30(月) 10:57:37.12ID:KEqdBFcs0437デフォルトの名無しさん
2014/06/30(月) 14:29:52.57ID:DRQLq2tT519 :名無しさん? [↓] :2013/09/19(木) 09:31:26.97 ID:???
じゃ、回そう。
520 :名無しさん? [↓] :2013/09/19(木) 10:51:13.14 ID:???
(゚д゚)ゞ
521 :名無しさん? [↓] :2013/09/19(木) 10:58:48.52 ID:???
━(゚Д゚)━( ゚Д)━( ゚)━( )━( )━(゚ )━(Д゚ )━(゚Д゚)━
522 : ◆etiOLKFoxvIO [] :2013/09/19(木) 23:31:09.65 ID:ARpBcEI7
お前が回れと誰が言った
0438デフォルトの名無しさん
2014/06/30(月) 17:43:40.75ID:8wubZZrmこれから遊ぶ。
0439デフォルトの名無しさん
2014/07/02(水) 12:24:49.02ID:y+2OU2YFvenvもvirtualenvもpythonの実行ファイルをコピーして仮想環境を構築するのは容量の無駄な気がするんですよ
0440デフォルトの名無しさん
2014/07/02(水) 12:37:19.17ID:7FYVqxhN普段軽んじられてるのかもしれないけど、もっと自信もって
0441デフォルトの名無しさん
2014/07/02(水) 15:42:05.91ID:My5/zu3x0442デフォルトの名無しさん
2014/07/02(水) 15:54:22.93ID:b/uG2DDf0443デフォルトの名無しさん
2014/07/02(水) 17:25:30.08ID:FTxr0vL30444デフォルトの名無しさん
2014/07/02(水) 17:35:25.92ID:/9F9rbZ20445デフォルトの名無しさん
2014/07/02(水) 17:52:20.43ID:jsnI70N8https://www.python.org/download/releases/2.7.8/
0446デフォルトの名無しさん
2014/07/02(水) 18:00:22.51ID:O2kLXD+K0447デフォルトの名無しさん
2014/07/02(水) 20:08:49.36ID:hP+eE/Fxいいものなら、あちこちで真似されててもいいと思うんだ
新しい言語はいっぱいあるけど
どれもこれも中カッコで囲ったり最後にEndってついたり
字下げ方式って何か致命的な欠陥があるのでは
■ このスレッドは過去ログ倉庫に格納されています