くだすれPython(超初心者用) その16at TECH
くだすれPython(超初心者用) その16 - 暇つぶし2ch293:デフォルトの名無しさん
13/02/11 17:45:37.04
重複要素も維持したいんじゃないの?

294:デフォルトの名無しさん
13/02/11 17:50:02.50
>>285

list を表す時は小文字じゃなくて大文字のL使おうな

あと、こういう風に>>293とやって自分にレスアンカーを付けてやると良いよ

これでいいかい?

>>> La = [2, 4, 6, 7]
>>> Lb = [2, 3, 47, 7, 3, 4, 5, 1]
>>> sta = set(La)
>>> stb = set(Lb)
>>> sta & stb
{2, 4, 7}
>>> sta - stb
{6}
>>> stb - sta
{1, 3, 5, 47}
>>> sta | stb
{1, 2, 3, 4, 5, 6, 7, 47}

295:デフォルトの名無しさん
13/02/11 17:50:54.02
. .: : : : : : : : :: :::: :: :: : :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    . . : : : :: : : :: : ::: :: : :::: :: ::: ::: ::::::::::::::::::::::::::::::::::::::
   . . .... ..: : :: :: ::: :::::: :::::::::::: : :::::::::::::::::::::::::::::::::::::::::::::
        Λ_Λ . . . .: : : ::: : :: ::::::::: :::::::::::::::::::::::::::::
       /:彡ミ゛ヽ;)ー、 . . .: : : :::::: :::::::::::::::::::::::::::::::::
      / :::/:: ヽ、ヽ、 ::i . .:: :.: ::: . :::::::::::::::::::::::::::::::::::::::
      / :::/;;:   ヽ ヽ ::l . :. :. .:: : :: :: :::::::: : ::::::::::::::::::
 ̄ ̄ ̄(_,ノ  ̄ ̄ ̄ヽ、_ノ ̄ ̄ ̄ ̄

296:デフォルトの名無しさん
13/02/11 17:52:26.79
集合だと順番も維持されなけりゃ重複要素も削除されるけどええんか?

297:デフォルトの名無しさん
13/02/11 17:53:44.29
>>294
たいへん参考になりました
ありがとうございました

298:デフォルトの名無しさん
13/02/11 18:04:17.13
なんで大文字のLなの?
いまどきハンガリアン?
Python的には小文字アンスコ繋ぎだろ。
やるならa_list

299:デフォルトの名無しさん
13/02/11 18:10:07.75
list_a の方が
list_foo, list_foobar を縦に並べて書いた時に
list_ の部分が揃って好き

300:デフォルトの名無しさん
13/02/11 18:10:23.45
>>291,297
欲しかったのはLc?
>>293も満たしたつもりだけど。

>>> Lc = []
>>> for x in Lb:
... if x not in sta:
... Lc.append(x)
...
>>> Lc
[3, 47, 3, 5, 1]

301:デフォルトの名無しさん
13/02/11 18:10:27.45
>>298
URLリンク(www.python.org)

302:デフォルトの名無しさん
13/02/11 18:17:06.12
>>301
どこ?クラス名はCamelCaseと書いてあるのは見つけたけど

303:デフォルトの名無しさん
13/02/11 18:21:41.93
>>298
listって書くよりLの方が楽でしょ。
これってお試しでやれば良いだけだし、
4,5行の範囲内だから"list"って書かなくても
"L"でlistって分かるよ。
moduleとかの話とはまた違う話。
柔軟にいこう柔軟に。

PEP: 8
Title: Style Guide for Python Code
URLリンク(oldriver.org)
規範:命名規則

避けるべき名前

「l」 (小文字のエル)、「O」(大文字のオー)、「I」(大文字のアイ)
を1文字の変数名として使わない。

フォントによっては、これらの文字は数字の 1 や 0 と区別できない。
「l」 を使いたくなったら、代わりに「L」を使う。

304:デフォルトの名無しさん
13/02/11 18:26:00.40
4,5行の範囲ならaでもbでもいいだろ
リストを表したいなら複数形にすべきだよ
そもそも文頭に数字の1が来ることなんてないだろ
len()はLen()じゃねえし

305:デフォルトの名無しさん
13/02/11 18:27:08.95
>>300
Lcではないです。十分です。

306:デフォルトの名無しさん
13/02/11 18:32:50.56
>>303
>1文字の変数名として使わない
ここ超重要なんだけどね

2文字以上なら1aとかエラーになるから
気にしなくていい

307:デフォルトの名無しさん
13/02/11 18:36:31.22
"Never use the characters 'l' (lowercase letter el),
'O' (uppercase letter oh), or 'I' (uppercase letter eye) as
single character variable names."

ってあるけど、la(エルエー), Ia(アイエー)は区別付かないので、以下の方が良いと思う。

「l」 (小文字のエル)、「O」(大文字のオー)、「I」(大文字のアイ)
を数文字(2,3文字)の変数名の先頭に使わない。
or
を数文字(2,3文字)の変数名に含めない。

こいつは原文を修正すべきと思いました。
誰かお願い。
本家に申し立てて下さい。

308:デフォルトの名無しさん
13/02/11 18:37:57.93
lstが使えなくなるので激しく嫌です

309:デフォルトの名無しさん
13/02/11 18:38:57.59
とりあえず意味のあるワードにすればいいのでは
リーダブルコードをはじめ一般的にそう言われてるでしょ
listの頭文字を別の文字に読み間違える人がいるだろうか
それと、Lがリストを表すというのはどれくらい一般的なんだろう
nがnumber ofを表すってくらい有名なら使っていいと思うけど

310:デフォルトの名無しさん
13/02/11 18:45:40.37
標準ライブラリを見てみると頻繁ではないけどちょこちょこ使われてる
PEP8に書いてあるというのはよく知られていること

311:デフォルトの名無しさん
13/02/11 18:48:09.22
Lusersとかやるんだろうか…結構クソだと思うけど

312:デフォルトの名無しさん
13/02/11 18:48:53.88
>>308
1st と区別付きにくくない?
先頭が数字だから変数名には出来ないんだけどさ。
lstってlast, list, lostどれか分かりにくいから止めるべきでは?(`・ω・´)キリッ

Ia(アイエー)って電流の意味で書きたくなるので、
縦棒は大文字の愛さん専用ということで。

>>309
> 1文字の変数名として使わない。
> 数文字(2,3文字)の変数名の先頭に使わない。

勝手に変な話しているぞ
Pythonの話と他の話は分けてしましょう。

Pythonの中でならLがlistを表すのは、
「それくらい分かるだろ?予想付くだろ!」
って言って良いと思う。

313:デフォルトの名無しさん
13/02/11 18:52:58.58
>>312
エキスパートPythonプログラミングのPEP8をカバーした命名規則でもそういう話はなかった気がするなあ
別の話を勘違いしてるのはお前じゃないかな
Lがリストなんてどこに書いてある?

314:デフォルトの名無しさん
13/02/11 18:54:55.42
そもそも元のコードが、意味がなくて区別出来ればいいだけの変数なんだから
細かいこと気にすんなよ。

315:デフォルトの名無しさん
13/02/11 18:57:19.64
>>313
横からだけどPEP8には書いてないけどLっていったら普通はリストだね
listが組み込み名で使えないのが関係してるんじゃないかと
list_とか書くの面倒だし

>>311
やらない

316:デフォルトの名無しさん
13/02/11 18:58:43.44
>>313
どこにも書いてないよ。
だから、「それくらい分かるだろ?予想付くだろ!」って書いた。
書いてあるなら「書いてあるだろ!」って書いたけど?

Pythonの中でなら一文字変数Lがlistを表すのは
「それくらい分かるだろ?予想付くだろ!」っていうぐらい一般的だと思う。

当然に、文脈によっては、Lが別のclassのinstanceって事はあると思うよ。

317:デフォルトの名無しさん
13/02/11 19:02:15.05
>>315-316
お前らが言ってるのってメタ構文変数みたいな話ね
それは普通、推奨されないし、list_とかで変数を説明するのは普通のこと
laをLaに変えるべきとか言ってたからそういうルールがあるのかと思ったわ
この場合、別にlaでも問題ないわ

318:デフォルトの名無しさん
13/02/11 19:02:33.98
>>307
1文字のlと1は1文字だと
間違えても数字の1としてそのまま実行されてしまうが、
1文字でない場合は大体エラーになってすぐ分かるので気にしなくていい

ll とか IO とかは微妙かもしれないがね

319:デフォルトの名無しさん
13/02/11 19:09:41.76
>>317
リストって意味を通常含むからメタ構文変数って言っていいかはともかく
LaやLbはあまりやらない。せいぜいL, L1, L2

320:デフォルトの名無しさん
13/02/11 19:18:55.69
>>317
l, laではなくL, Laと書く癖を付けておいた方が良いよね。
だってPEP8で"~を1文字の変数名として使わない。"
と、非推奨であると名言しているもん。

PEP8の該当箇所を知った上で、
> この場合、別にlaでも問題ないわ
って書く人はPython使わない方が良いと思う。

>>319
l(小文字のエル)ではなくて、Lを使うことをPEP8で推奨しているよ。
>>285に説明したかっただけですので。

321:デフォルトの名無しさん
13/02/11 19:21:25.48
なんで>>294はaのセットをSaと表さないのか謎だよね
集合が大文字のSで、それに添字が付くのは数学では一般的なのに

>>320
だからー、一文字の無意味変数は文字に関わらず推奨されてないんだって
そんなゴミ文字を使うときは何を使おうがおなじことだよ
lではなくLを使うことによって生産性が上がることがある?
そもそもLだって何の意味もないコードでしか使えないのに

322:デフォルトの名無しさん
13/02/11 19:30:11.79
>>320
PEP8的には l = ... を使うぐらいだったら L を使えってだけだよ
La, Lbなんて変数を使う人は滅多にいない
la, lbを使う人は結構いる

323:デフォルトの名無しさん
13/02/11 19:32:09.26
1文字以外でlをLにするんだったら
listだってListにしなくちゃいけないし
consoleだってconsoLeにしなくちゃいけないよ

324:デフォルトの名無しさん
13/02/11 19:32:37.77
そんなことより>300で良いのか。
なんでわざわざappendなんてせにゃならんのだ。

325:デフォルトの名無しさん
13/02/11 19:35:20.26
>>324
・インデックスでループして、popで削除して、削除したらインデックスを進めない
・インデックスで逆順ループして、popで削除

新しいリストを作らないならこのどちらかだな

326:324
13/02/11 19:37:42.98
これで良いじゃないか。
Lc = [ e for e in Lb if e not in La ]

327:デフォルトの名無しさん
13/02/11 19:37:45.18
「俺が読みにくいから2chにソースコードを載せるときはLを使え」と言えばいいのでは

328:デフォルトの名無しさん
13/02/11 19:51:38.71
>>324
内包表記でif not inとか使うと読みにくいんで。
>>293の話もあって、本当は>>300のLcを結果として得たかったのかも。
と思って>>300書きました。

初心者の人に説明する時は、
>>326>>300では、>>300の方が分かりやすいと思いますが。
誰に説明するか考えた上での>>326ですか?

>>321
話がそれてきてますが。

>>285が発端なんだけど。
分かってる?

>>285に対する回答として>>294の説明をしたよね。
>>297で質問者は納得してくれたんだけど。

十分だと思うんだ。

ただ、la, lbを使っているところから、一文字の変数名として小文字のlは
非推奨と書いているPEP8の存在を知らないような気がした。
私自身も最初la, lb使ってましたんで。
でも、PEP8読んでLa, Lb使うようにしました。

よく分かんないから書いて欲しいんだけど、>>294にケチ付ける人は、
>>285に対する説明でどう書けば満足してた?
PEP8知らないだろうなーって思う初心者の方にPEP8の該当箇所黙ってた方が良かった?
どうせお前の意見言ってみろって言われたら黙るんでしょ?
自分の意見・考えは示さず批判する側で居続けたい人達ばかりでしょ?

┐(´д`)┌ヤレヤレ

329:デフォルトの名無しさん
13/02/11 19:55:06.41
la、lbは一文字の変数じゃねーじゃん。どういうこと?

330:デフォルトの名無しさん
13/02/11 19:57:07.35
>>328の流れは>>131-134あたりで一度やってる

331:デフォルトの名無しさん
13/02/11 20:04:17.51
>>328
いやだから、aとかbとか意味のない変数名はPEP8以前の話だって。

実用コードでそんな変数名使ってるなら絶対直した方が良いけど、
その場合「ちゃんと読み手に意味が分かる変数名使おうな」って話になる。
そこで単なる規約のPEP8持ちだしてLaだLbだ言ってもコードは読みやすく
ならない。

要は、>>285みたいな例ではla、lbで全く問題ないって事だ。

332:324
13/02/11 20:08:27.71
なんか意見言えって言われた気がしたから書く。

CはC, JavaはJavaにふさわしい書き方があるように、
PythonにはPythonにふさわしい書き方がある。
「直交性」という言葉の意味は俺は分からんし、
確かそれで揉めてた気がするけど、俺は>134と似た意見を持ってる。

そもそも>285は質問の仕方が下手で、
何を適切な結果として受け取りたかったのか分からんけど、
俺としてはそんなことはどうでもよくて、
>300が華麗にスルーされているように見えたのが気になっただけ。
Pythonでこんなまどろっこしいことやってたら疲れる。

変数名の命名規約は俺は結構どうでもいい。
やりたい人達でやって。

333:デフォルトの名無しさん
13/02/11 20:08:38.83
ただ、la, lbを使っているところから、一文字の変数名として小文字のlは
非推奨と書いているPEP8の存在を知らないような気がした。
私自身も最初la, lb使ってましたんで。

334:デフォルトの名無しさん
13/02/11 20:09:39.97
>333は>331宛て

335:デフォルトの名無しさん
13/02/11 20:12:44.07
「一文字の」をどれだけ無視すれば気が住むんだ

336:デフォルトの名無しさん
13/02/11 20:16:33.16
la(エルエー), Ia(アイエー)は区別付かないので、以下の方が良いと思う。

「l」 (小文字のエル)、「O」(大文字のオー)、「I」(大文字のアイ)
を数文字(2,3文字)の変数名の先頭に使わない。
or
を数文字(2,3文字)の変数名に含めない。

こいつは原文を修正すべきと思いました。
誰かお願い。
本家に申し立てて下さい。

337:デフォルトの名無しさん
13/02/11 20:17:56.85
# ここまで読み飛ばした

338:デフォルトの名無しさん
13/02/11 20:18:31.42
>>336
lenが抹殺されるからやっぱり嫌です

339:デフォルトの名無しさん
13/02/11 20:25:14.37
全レス君頑張ってるな

340:デフォルトの名無しさん
13/02/11 20:32:19.48
>>338
lenはlen()と被っているので、使わないようにしましょう(`・ω・´)キリッ
>>> s = 'abc'
>>> len(s)
3
>>> len = 100
>>> len(s)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable

341:デフォルトの名無しさん
13/02/11 20:32:51.59
何で先頭だけなんでしょうねえ

342:デフォルトの名無しさん
13/02/13 03:01:20.38
どうでもいい
何がキリッだ
てめえのゴミのような日常生活の心配してろ

343:デフォルトの名無しさん
13/02/13 04:23:24.48
hoge[n:m]でn~m-1がキモくて慣れんかった(キリッ

344:デフォルトの名無しさん
13/02/13 07:00:44.59
m - n が要素のサイズと一致しないのは不便

終端の添字の要素を含むと len(hoge[2:5]) が 4 になってしまう

345:デフォルトの名無しさん
13/02/13 07:24:57.82
要するに慣れの問題

346:デフォルトの名無しさん
13/02/13 07:39:04.90
先頭のlなんて間違えたらそもそもプログラムが動かないんだから
1になろうがどうだろうがどうでもいい

347:デフォルトの名無しさん
13/02/13 07:51:00.46
le234 = 123; foo(1e234) とか考えられなくはないけどキリがないね

348:デフォルトの名無しさん
13/02/13 08:43:01.05
or を変数にして悩んだことあるな

349:デフォルトの名無しさん
13/02/13 17:31:25.25
PyGTKとwxPythonって使い分けしてる人いるんでしょうか?
あるいはどちらかしか使わない派?

350:デフォルトの名無しさん
13/02/13 17:35:35.23
PySideとwxPythonを使い分けてる俺なら

351:デフォルトの名無しさん
13/02/13 17:52:44.19
>>350
ありが㌧
できればPyGTKを使わない理由、PySideを使うメリットも教えてちょ

352:デフォルトの名無しさん
13/02/13 18:44:51.68
>>351
> PyGTKを使わない理由
なんとなく
> PySideを使うメリット
ライセンス的に
> wxPython
windowsでちょっとしたツールを作るのにお手軽

自分で使ってみて必要な機能がありしっくりくるのを使えばいいんじゃないかな

353:デフォルトの名無しさん
13/02/13 19:03:13.39
GTKは糞
使えば判る

354:デフォルトの名無しさん
13/02/13 23:35:08.40
PyGTKがないとmatplotlibが不便になる

355:デフォルトの名無しさん
13/02/13 23:35:54.79
自分が使ってプログラミングするつもりはないけど

356:デフォルトの名無しさん
13/02/14 13:18:05.06
URLリンク(docs.python.jp)
これって将来削除されるってことですか?

357:デフォルトの名無しさん
13/02/14 14:40:41.62
strict引数がね

358:デフォルトの名無しさん
13/02/14 23:33:32.63
ありがとうございました

359:デフォルトの名無しさん
13/02/18 11:37:29.18
shelveを利用したデータ保存の勉強をしています
手元の環境はPythonが2.7.3で動作するプログラムを、さくらインターネットに持って行くと動かなくなります。
さくらインターネットのPythonも2.7.3なのですが、Shelveは環境により動作が変わるのでしょうか?

例えばさくらインターネットでは、shelve.open()で指定したファイル名の後ろに".db"がつけられます。
これは、ファイル名を変更することで修正を行えたのですが、DBにデータが保存されないという現象も起きています。

360:デフォルトの名無しさん
13/02/18 12:01:12.06
>Shelveは環境により動作が変わるのでしょうか?

変わる
以下の11..4.1を参照せよ
URLリンク(docs.python.jp)

361:デフォルトの名無しさん
13/02/18 12:21:34.76
jsonにしとけ

362:359
13/02/18 13:56:04.17
>>360
ありがとうございます。
そのマニュアルは読んでいたのですが、制限というものがわかっておらずshelveで操作
可能なことは共通で利用可能かと思っておりました。
問題は不具合があったコードを書きなおすことで解決できたのですが、今後もshelveを
利用しようと考えているため、shelveについて質問させて頂ければと思います。

まず、shelveのバックエンドが環境に寄って変わるという事ですが、今回のように同じ
バージョンのPythonでもバックエンドが変わるというのはShelveはどこで利用するバッ
クエンドを決めているのでしょうか?
利用するバックエンドはどのように知ることが出来るでしょうか?

363:359
13/02/18 13:57:10.20
また、拡張子が付加される場合があるようですが、こちらも条件としてはどのような条
件で付加される条件が決まるのでしょうか?
shelveファイルが存在しなければ初期データの投入する処理を指定ファイル名のファイ
ルが存在するかということで行なっていたのですが、今回は拡張子が付加されて常に初
期データに戻るという問題も起きておりました。

また、ローカルとリモートのDBファイルを見てみると、バックエンドによって形式が違
うようなのですが、これは互換性が無いと考えてよろしいでしょうか?
この場合ファイルを移動させる際は、pickleでファイルに落とし、リモートでpickleか
らshelveに落とすという手順が必要になるでしょうか?

バックエンドによる制限の違いを調べたのですが見つけることができませんでした。
こちらについても、記載のあるページなどございましたらご案内頂ければと思います。

364:デフォルトの名無しさん
13/02/18 14:16:20.60
>まず、shelveのバックエンドが環境に寄って変わるという事ですが、今回のように同じ
>バージョンのPythonでもバックエンドが変わるというのはShelveはどこで利用するバッ
>クエンドを決めているのでしょうか?

anydbm.openの優先順位に従う
具体的には['dbhash', 'gdbm', 'dbm', 'dumbdbm']の順

>利用するバックエンドはどのように知ることが出来るでしょうか?

print type(shelve.open('hogehuga.db').dict)
あるいは作成されたDBに対してwhichdbを使用する

>また、拡張子が付加される場合があるようですが、こちらも条件としてはどのような条
>件で付加される条件が決まるのでしょうか?
>shelveファイルが存在しなければ初期データの投入する処理を指定ファイル名のファイ
>ルが存在するかということで行なっていたのですが、今回は拡張子が付加されて常に初
>期データに戻るという問題も起きておりました。

BSD DBの場合サフィックス.dbが付与される

URLリンク(docs.python.jp)
>また、BSD DBは拡張子 .db がついたファイルが一つ作成されます。

>また、ローカルとリモートのDBファイルを見てみると、バックエンドによって形式が違
>うようなのですが、これは互換性が無いと考えてよろしいでしょうか?
>この場合ファイルを移動させる際は、pickleでファイルに落とし、リモートでpickleか
>らshelveに落とすという手順が必要になるでしょうか?

互換性が無いと考えてよい。考えるべき
そもそもshelveでなくdictのpickleで代替できないか考えた方がいいが

365:デフォルトの名無しさん
13/02/18 14:27:09.60
あるいはShelfクラスをそのまま使用する
shelve.openの中は以下のようになっている(模式的なものであり厳密には違う)

def open(filename, flag='c', protocol=None, writeback=False):
 Shelf.(anydbm.open(filename, flag), protocol, writeback)

すなわち、使いたいdbmを自分でオープンし、Shelfのコンストラクタに渡せばいい
dumbdbmは遅いけど可搬性が保障されている

366:デフォルトの名無しさん
13/02/18 17:47:38.35
最近みんなのpythonで勉強始めた初心者なんだけどすんごく難しい
これで初学者にはいい言語ってんだからプログラミングって茨の道なんだな

367:デフォルトの名無しさん
13/02/18 17:51:21.52
オブジェクト指向とかクラスとかよく分からんかったけど、
↓みたら少し分かった。

URLリンク(www.youtube.com)

368:デフォルトの名無しさん
13/02/18 18:12:04.72
URLリンク(dotinstall.com)
初心者はこれみりゃいい

369:デフォルトの名無しさん
13/02/18 18:13:01.21
URLリンク(www.codecademy.com)
これも中々良い

370:デフォルトの名無しさん
13/02/18 23:09:47.60
dive into pythonだろ

371:デフォルトの名無しさん
13/02/18 23:31:36.22
from turtle import *

def branch(length):
if length < 10:
return
forward(length)
left(30)
branch(length/2)
right(60)
branch(length/2)
left(30)
forward(-length)

branch(200)

input()

このbranchの中にbranchってのがよく分からないんで教えてくれませんか
200進んで、30曲がって、branch(100)だから、100進んで、30曲がって…branch(12.5)で12.5進んで、30曲がる
で次にlengthが6.75になるからreturn…でこのあとどうなるのかがさっぱり分かりません
実際の描画を見ると行ったり戻ったり奇妙な動きをするのですがどうなればそうなるのかちんぷんかんぷんで

>>370
ずぶの素人は内容以前に文中の用語がまず理解できないんですよあれ

372:デフォルトの名無しさん
13/02/18 23:46:00.52
失礼、6.25ですね

373:デフォルトの名無しさん
13/02/18 23:49:11.58
再帰関数でググれ

374:デフォルトの名無しさん
13/02/19 13:20:17.97
ゴッホ曲線だと思ってた

375:デフォルトの名無しさん
13/02/19 13:23:37.49
これも良かった
URLリンク(www.nicovideo.jp)

376:デフォルトの名無しさん
13/02/19 16:13:03.67
>>371

左の末端に到達の後は、右 60 の後 branch(6.25) を呼出
10以下なので直に return し、左 30 (左30右60左30 で元の向き) 後退 12.5 (分岐点まで戻る)
次に、右 60 の後 branch(12.5) ・・・と、右の枝を描画。先端に到達した後は分岐点まで戻る、を繰り返し。

tinyurl [dot] com [slash] aebgg6z
Visual Execution -> forward でステップ実行
return後、何処に戻ってるかわかると思う。

377:デフォルトの名無しさん
13/02/19 21:39:46.15
知識ゼロの私に何から手を付けていいか教えろください

378:デフォルトの名無しさん
13/02/19 21:47:10.38
まずニュー速VIPに行きます

379:デフォルトの名無しさん
13/02/19 21:51:12.79
>>378
はい

380:デフォルトの名無しさん
13/02/19 22:08:05.29
まず筐体に飛び乗り

381:デフォルトの名無しさん
13/02/19 22:10:18.82
Pythonを露出します

382:デフォルトの名無しさん
13/02/19 22:14:16.52
Aizu Online Judgeでもやれば? 暇つぶしにはなる.

383:デフォルトの名無しさん
13/02/19 23:34:41.51
>>377
URLリンク(www.codecademy.com)

384:デフォルトの名無しさん
13/02/20 00:35:57.32
>>376
あぁ~なんとなく分かって来ました
returnの後は次のright(60)に進んじゃうんですね

えーっとreturn文という物が今度はよく分かんなくなってきました
今までreturn文は関数の結果を関数外で使えるようにするためと理解してたんですけど、今回特に値は使ってないですよね
この場合のreturnは切り上げて次に移るみたいな使われ方というか…

今までの例題だとreturnで関数定義終わっちゃってたので、ここで描画終わっちゃうんじゃないかとか思ってたんですけど

385:デフォルトの名無しさん
13/02/20 05:05:48.42
Windowsのコマンドプロンプトから起動し、ユーザ入力を受け取るスクリプトを書いてるのですが
標準入力からの読み込みを終わらせることができません。
基本的な以下のコードでも、1行目で入力待ちを続けたまま2行目にいきません。

name = raw_input('input your name: ')
print name

本来の動作としては、enterキーで変数nameに入力が渡り、printが実行されると思います。
windowsなので改行コードの違いから、入力の終わりと認識されないのだろうと見込んでいるのですが
どうすればいいんでしょうか。
os.linesepに'\r\n'を代入するのはやってみたんですが、変化なしでした。

386:デフォルトの名無しさん
13/02/20 05:20:30.67
>>384
def foo():
  1

def foo():
  1
  return None

と同じ。またreturn文に値を指定しなかった場合もreturn Noneと同じ
例題の動作が難しければ一方のbranch(length/2)をコメントアウトしてみるのもいい

>>385
Win7+Python2.6.3にコマンドプロンプトで再現しないから
詳しい動作環境書いたほうがいいよ

387:デフォルトの名無しさん
13/02/20 05:38:13.75
>>386
申し訳ありません、入力をUTF-8で受け取ろうと考えて加えていたコードにより、
動作が変わっていました。
この部分をはずしたところ正常な動作を確認できたので、見直してみますm(_ _)m

388:デフォルトの名無しさん
13/02/20 05:44:38.69


389:デフォルトの名無しさん
13/02/20 06:21:26.70
てすと
 てすと
  てすと

390:デフォルトの名無しさん
13/02/20 07:03:59.48
pythonで ruby+railみたいな何かはあるんですか?

391:デフォルトの名無しさん
13/02/20 08:45:37.87
>>390
Django、Pyramid、Flask、Web2py、Bottle、etc…

392:デフォルトの名無しさん
13/02/20 10:28:14.59
werkzeug

393:359
13/02/21 10:34:19.92
>>364
ありがとうございます。非常に勉強になりました。

> BSD DBの場合サフィックス.dbが付与される
> URLリンク(docs.python.jp)
こちらについてなのですが、ローカルとさくらインターネットの環境で比べてみたのですが、
ローカル
<class 'bsddb._DBWithCursor'>
さくらインターネット
<type 'dbm.dbm'>

となり、さくらインターネットで".db"が付加されましたので、dbmモジュールが使われ、そのdbmモジュールでbsddbが使用される場合に、".db"が付加されるという事でよろしいでしょうか?

394:デフォルトの名無しさん
13/02/21 18:00:42.92
>>243
公開されたパーフェクトPythonのジャケもカッコイイ!
6人の著者も有名人?っぽいし期待していいかも

395:デフォルトの名無しさん
13/02/21 18:23:00.78
なんか目次が盛り沢山だけど
ページ数で割ると、それぞれの内容は深くなさそう
前半にページ数を割いて、後半は申し訳程度のオマケだろうが

396:デフォルトの名無しさん
13/02/22 01:18:23.02
本探してたらPython Cookbook 3版もうすぐ出るみたいね。
Early Releaseでもいいな買うか。

397:デフォルトの名無しさん
13/02/22 01:42:30.82
翻訳版が出るのは2年後かな? 2rdの翻訳は削られた章があって非常に残念だった。
3rdは1つも削らずに翻訳して欲しいぜよ

398:デフォルトの名無しさん
13/02/22 08:35:13.09
>>2rd

399:デフォルトの名無しさん
13/02/22 11:51:39.17
セキャードかな?
読みづらいw

400:デフォルトの名無しさん
13/02/22 12:08:53.36
ツァードって読んだけど

401:デフォルトの名無しさん
13/02/22 12:38:56.59
英語苦手なんだろやめてあげろよ

402:デフォルトの名無しさん
13/02/22 15:05:18.40
パイソン厨ってやっぱ阿呆なんだな

403:デフォルトの名無しさん
13/02/22 15:10:06.85
あの、MeCabをPythonバインディングで使いたいんですが、うまくいきません。

手順としては、

・MeCab0.993とmecab-pythonをダウンロードして、解凍&インストールする。
・mecab-pythonのsetup.pyをWindows用に書き換える。
・VC++をインストール、環境変数をいろいろ設定。
・Pythonにインストール
ていう感じです。OSはVista Homeです、

ビルドしてインストールできているようなのですが、(Python27\Lib\site-packagesにコピーされている)
EclipseからMeCabをimportしようとすると、UnSolvedとなってしまうし、
コマンドラインでimportしようとすると
MECAB_ANY_BOUNDARY = _MECAB.MECAB_ANY_BOUNDARY(MeCab.py 194行目)
でMECAB_ANY_BOUNDARYは’module’オブジェクトに含まれてないと怒られてしまいます。

また、なぜかわかりませんが、python.exeと同じフォルダにMeCab.pyがあるとimportできます。
どこか間違ったんでしょうか?

404:デフォルトの名無しさん
13/02/22 15:23:54.45
>>403
Eclipse の Preferences -> PyDev で MeCab のパス追加した?

405:デフォルトの名無しさん
13/02/22 16:40:31.58
1st
2nd
3rd
4th
5th
6th
7th
8th
9th
10th
11st
12nd
13rd
14th

406:デフォルトの名無しさん
13/02/22 18:30:58.44
い、いれぶんすと

>>396
Amazon.comは2013/05になってたけどまだまだ遅れそうな気がするな
なんでここまで難産なんだろ

407:デフォルトの名無しさん
13/02/22 18:35:05.90
11th
12th
13th
14th
...
20th
21st
22nd
23rd
24th

408:デフォルトの名無しさん
13/02/22 18:36:50.10
フランス語の数字や数詞も訳わからんな。

409:デフォルトの名無しさん
13/02/22 18:51:30.92
>>404
Eclipseの方は使えるようになりました。ありがとうございました。

pythonコマンドラインの方はやっぱりダメで
めんどくさいからエラーの3行をコメントにしました。
ちょっと心配だけど動くようになりました。

410:デフォルトの名無しさん
13/02/22 19:10:09.23
Pythonのアクセス修飾子private protectedはPHPとかJavaと同じですか?
Rubyみたいな詐欺ではないですか?

411:デフォルトの名無しさん
13/02/22 19:12:27.57
同じですか?の前にそんな修飾子ねえぞ
狐にでも化かされたんじゃないか

412:デフォルトの名無しさん
13/02/22 19:50:07.09
_
__
で始まるとprivateとか慣習はある
_ 1つだと protected
__ 2つだと private
だったかな
あくまで慣習なので破ることも可能

413:デフォルトの名無しさん
13/02/22 19:57:02.67
2個は名前修飾で何か起こるんじゃなかったっけ
衝突を避けるような云々

414:デフォルトの名無しさん
13/02/22 20:05:54.49
>>> class Hoge(object):
... def __init__(self):
... self.hogea = 1
... self._hogeb = 2
... self.__hogec = 3
...
>>> class Fuga(Hoge):
... def __init__(self):
... super(Fuga, self).__init__()
... print self.hogea
... print self._hogeb
... self.__hogec = 4
... print self.__hogec
... print self._Hoge__hogec
...
>>> Fuga()
1
2
4
3
<__main__.Fuga object at 0x020C17B0>

415:デフォルトの名無しさん
13/02/22 20:20:15.67
__がprotectedで_がprivateじゃね?

416:デフォルトの名無しさん
13/02/22 20:21:30.68
_hogeb は見えてるから protected だよ

417:デフォルトの名無しさん
13/02/22 20:23:21.62
__hogec は見えないから private なんだけど
無理やり _親__hogec でアクセスすることは可能

418:デフォルトの名無しさん
13/02/22 20:24:48.04
慣習と言ってもある程度強制力はある訳ですね。
ありがとうございました。

419:デフォルトの名無しさん
13/02/22 20:26:01.80
詳しくはこちら
URLリンク(docs.python.org)

420:デフォルトの名無しさん
13/02/22 20:31:29.66
ほげほげ ふがふが

421:デフォルトの名無しさん
13/02/22 20:33:08.93
>>411
これは恥ずかしいw

422:デフォルトの名無しさん
13/02/22 20:41:25.26
叩かれる前に自分で叩くと惨めさが軽減されますよね

大丈夫だよここは超初心者用だから

423:デフォルトの名無しさん
13/02/22 20:44:54.15
2rdで盛り上がっちゃうくらいですもんねw

424:デフォルトの名無しさん
13/02/22 20:47:03.57
まあね

425:デフォルトの名無しさん
13/02/22 20:50:19.43
>>413
class Foo(object):
def __init__(self):
self.ss = 'Foo.ss'
self.__name = 'Foo.__name'

class Bar(Foo):
def __init__(self):
super().__init__()
self.ss = 'Bar.ss'
self.__name = 'Bar.__name'

bar = Bar()
print('__dict__ =', bar.__dict__)
bar._Foo__name = 'changed'
print('__dict__ =', bar.__dict__)

__dict__ = {'ss': 'Bar.ss', '_Foo__name': 'Foo.__name', '_Bar__name': 'Bar.__name'}
__dict__ = {'ss': 'Bar.ss', '_Foo__name': 'changed', '_Bar__name': 'Bar.__name'}

426:デフォルトの名無しさん
13/02/22 20:59:24.45
初めてのPythonに書いてあるよ
そう言えばLearning Python 4ndの邦訳全然出てこないな
千ページ超えてるから楽しみなのに

427:デフォルトの名無しさん
13/02/22 21:34:36.86
pychecker, pylint, pyflakes
文法チェッカ、どれがオススメ?

428:デフォルトの名無しさん
13/02/22 22:36:42.16
pep8

429:デフォルトの名無しさん
13/02/22 22:37:13.89
pep8とpylintで良いよ。pep8は厳しすぎて従う気が失せるけど

430:デフォルトの名無しさん
13/02/23 01:25:12.80
>>406
実本はshop.oreilly.comでも2013年5月ってあるからなあ。

431:デフォルトの名無しさん
13/02/25 16:35:50.51
みんなのパイチンくんとポコチンくん

432:427
13/02/25 23:20:40.14
返事しようと思ったら規制された。

>>428,429
ありがとう、暫くPEP8つかってみる。

433:デフォルトの名無しさん
13/02/26 20:00:03.62
例えばこういう構造のものを表示するのに、
>>> obj
{u'1_C': {u'2_A': 300, u'2_B': 400}, u'1_B': 3000, u'1_A': {u'2_A': {u'3_A': 10, u'3_C': 1, u'3_B': 100}, u'2_B': {u'3_A': 10, u'3_C': 1000, u'3_B': 100}}}

こういうフォーマットでなく、
>>> pprint.pprint(obj)
{u'1_A': {u'2_A': {u'3_A': 10, u'3_B': 100, u'3_C': 1},
u'2_B': {u'3_A': 10, u'3_B': 100, u'3_C': 1000}},
u'1_B': 3000,
u'1_C': {u'2_A': 300, u'2_B': 400}}

こういうフォーマットで出すには、自分で構造体内をcrawlしてやる手続きを書かないとならないのでしょうか。
それとも何か使えそうなライブラリがあるでしょうか。
u'1_A': u'2_A': u'3_A': 10,
u'1_A': u'2_A': u'3_B': 100,
u'1_A': u'2_A': u'3_C': 1,
u'1_A': u'2_B': u'3_A': 10,
u'1_A': u'2_B': u'3_B': 100,
u'1_A': u'2_B': u'3_C': 1000,
u'1_B': 3000,
u'1_C': u'2_A': 300,
u'1_C': u'2_B': 400
こういうフォーマットとは、1行は var = val の型で、varの要素名は省略してはならない。

434:デフォルトの名無しさん
13/02/26 20:07:03.90
そのpprintが使えると思うけど正確にそれと一致させるのはできるかどうか

435:デフォルトの名無しさん
13/02/26 20:12:05.84
よく見ないでレスしてしまった。>>434はスルーで

436:デフォルトの名無しさん
13/02/26 20:26:56.28
普通にループで書けばいいんじゃないの

437:デフォルトの名無しさん
13/02/26 21:22:37.54
>>436
> 普通にループで書けば
とは、
> 自分で構造体内をcrawlしてやる手続き
と何が違いますか? 「普通にループ」についてここ読めとかあったらお願いします

438:デフォルトの名無しさん
13/02/26 22:35:45.35
木の全てのパスを列挙するのであれば再帰で書く
あともしobjが辞書であれば構造体と違って順序はないので注意

439:デフォルトの名無しさん
13/02/26 22:47:05.44
>>377
URLリンク(www.learnstreet.com)

440:433
13/02/27 07:21:43.70
>>438
> 木の全てのパスを列挙するのであれば再帰で書く
やはりそれしかないですか。ありがとうございました。
なおsortの必要はありません。お気遣いもありがとうございました。

441:デフォルトの名無しさん
13/02/27 08:14:44.21
ライブラリを探すほどのことか?

442:デフォルトの名無しさん
13/02/27 12:41:10.22
unittestのメソッドってなんでキャメルケースなの?
キモいんだけど

443:デフォルトの名無しさん
13/02/27 12:55:55.66
JUnit由来かと

444:デフォルトの名無しさん
13/02/27 17:43:39.36
だからといって flask のユニットテストみたいに書き直すのはどうかと思う

445:デフォルトの名無しさん
13/02/27 21:41:03.60
assert○○はともかくsetUpなんかsetupでいいだろと思う
これ作った奴Javaにコンプレクスでもあんのか

446:デフォルトの名無しさん
13/02/27 21:45:54.88
そうかもね
興味ないからMLで聞いてくるといいよ

447:デフォルトの名無しさん
13/02/27 21:57:21.29
>>441
> ライブラリを探すほどのことか?
標準的な仕組みがあればそれを使った方が何かとイイてのは言うまでもないことです。

448:デフォルトの名無しさん
13/03/02 15:22:36.57
logging, unittest のソース嫁
コメントに java へのリスペクトが書いてある
>>445 に java コンプレックスがあるのか知らんけど python は java をリスペクトして開発されたモジュールは結構多い
それをコンプレックスと思うなら python 使わなければ良い

449:デフォルトの名無しさん
13/03/02 21:15:58.62
なんかキモい

450:デフォルトの名無しさん
13/03/02 22:01:58.21
pass

451:デフォルトの名無しさん
13/03/02 22:34:08.83
なんでもコンプレックスに結びつけるのがユングフロイトゲガンゲン

452:デフォルトの名無しさん
13/03/03 14:19:44.21
pass

453:デフォルトの名無しさん
13/03/04 23:43:36.01
matplotlibで描いたグラフをwxPythonのパネルに表示して、
テキストボックスに入力した数字にたいして、ボタンを押して更新できるようにしたいんですが、
更新のところのやり方がよくわかりません。
plotを、再設定するだけじゃだめなんでしょうか
plotまでは流れているようですが更新されません。

454:デフォルトの名無しさん
13/03/06 00:32:28.27
canvasのdrawしてないだけでした
ごめんなさい。

455:デフォルトの名無しさん
13/03/06 09:19:42.74
>>451
っせえ
黙ってろ

456:デフォルトの名無しさん
13/03/06 14:54:29.20
pass

457:デフォルトの名無しさん
13/03/06 16:47:51.36
>>454
俺の言った通りだろう

458:デフォルトの名無しさん
13/03/06 22:43:49.62
やる気があればなんでもできる

459:デフォルトの名無しさん
13/03/06 23:46:17.93
pass

460:デフォルトの名無しさん
13/03/07 10:22:31.55
pythonに適したテキストエディタを教えて下さい

461:デフォルトの名無しさん
13/03/07 10:58:46.14
無料の中ではemacsいいよね。

462:デフォルトの名無しさん
13/03/07 12:26:18.69
よいよね、だろ

463:デフォルトの名無しさん
13/03/07 12:55:46.95
いいです
けっこうです

464:デフォルトの名無しさん
13/03/07 13:49:02.75
vimがもっとも優れています

465:デフォルトの名無しさん
13/03/07 15:59:40.78
>>461
>>464
ありがとうございます。

466:デフォルトの名無しさん
13/03/07 18:57:57.54
早まるな。

467:デフォルトの名無しさん
13/03/07 19:48:25.22
pass

468:デフォルトの名無しさん
13/03/07 21:22:27.02
『初めてのPython』ぶ厚すぎだろ
3冊くらいに分けて欲しかった

469:デフォルトの名無しさん
13/03/08 09:39:16.84
xlwt を使いたいんだけどどこからダウンロードできますか?
windowsです

470:デフォルトの名無しさん
13/03/08 09:43:15.02
>>469
ググれ

471:デフォルトの名無しさん
13/03/09 07:43:29.00
xlwt なら、ふつうに easy_install ではいる筈。

472:(;D)笑男 ◆LeBIz0ZWfs
13/03/09 09:19:58.83
URLリンク(livedoor.blogimg.jp)

473:(;D)笑男 ◆LeBIz0ZWfs
13/03/09 09:20:31.31
チョーゴバク (TдT)

474:デフォルトの名無しさん
13/03/09 10:07:12.28
質問です
可変長のリストの入力に対して固定長のリストを出力したいのですが
足りない部分を先頭の要素から0で埋めようと思います

例:出力が固定長 5 のとき
入力 [1, 3] 出力 [0, 0, 0, 1, 3]
入力 [2, 1, 3] 出力 [0, 0, 2, 1, 3]
入力 [5, 4, 2, 1, 3] 出力 [5, 4, 2, 1, 3]

一番シンプルに書く方法はどんなのがありますか?

475:デフォルトの名無しさん
13/03/09 10:08:11.10
URLリンク(i.imgur.com)

476:デフォルトの名無しさん
13/03/09 10:14:14.06
一番シンプルというのが怖いけど

>>> def pad_list(lst, pad, size): return [pad] * (size - len(lst)) + lst
>>> pad_list([2, 3], 0, 5)
[0, 0, 0, 2, 3]

477:デフォルトの名無しさん
13/03/09 10:14:49.11
[0]*(5-len(a))+a

478:デフォルトの名無しさん
13/03/09 10:19:30.12
size - len(lst) が 0 (または負) になってても問題ないんですね

479:デフォルトの名無しさん
13/03/09 10:49:44.30
>>476-477
とりあえずそれでいきます
ありがとうございました

480:デフォルトの名無しさん
13/03/09 12:37:35.13
windowsユーザーだけど、Pythonやろうと思ってます。
Ubuntu入れたほうがいいですか?
16GBのUSBメモリでインストールを検討してるのですが
どうでしょうか?

481:デフォルトの名無しさん
13/03/09 12:44:38.82
>>480
windowsでも問題なくできるよ

482:デフォルトの名無しさん
13/03/09 12:45:53.10
クローラとかフィードフィルタとかWindowsで開発してRaspiで動かしてる

483:デフォルトの名無しさん
13/03/09 13:23:16.14
Rubyと違ってPythonはWindowsでも問題なく使えて良いよね

484:480
13/03/09 13:35:20.01
ありがとうございます m(_ _)m
windowsでやります

485:デフォルトの名無しさん
13/03/09 19:23:07.59
perlのstrict機能を果たす
pythonのlibrary名教えて下さい。

486:デフォルトの名無しさん
13/03/09 19:37:55.20
デコレータってどんなときに使いますか?

487:デフォルトの名無しさん
13/03/09 19:40:20.26
一番よく見るのはメモ化(memoize)かな

488:デフォルトの名無しさん
13/03/09 19:55:06.91
へえ
なるほどね

489:デフォルトの名無しさん
13/03/10 00:40:19.38
再帰がわかりません。

def factorial(x):
if x <= 1:
return 1
return x * factorial(x - 1)

factorial(5)が1×2×3×4×5で120を返すとの事なのですが、計算の流れが理解出来ません。

factorial(x -1)はどんな動きをしているのでしょうか?

490:デフォルトの名無しさん
13/03/10 00:56:18.35
>>489
x*(x-1)*(x-1-1)*(x-1-1-1)...
x<=1を満たすまで自分を呼び出し続けるだけ

491:デフォルトの名無しさん
13/03/10 01:58:53.54
x*((((x-1)*(((x-1-1)*((x-1-1-1)...

492:デフォルトの名無しさん
13/03/10 03:43:40.69
>>490
>>491
ありがとうございます。
なんとなく理解出来たような気がします。

factorial(x)に5を代入すると
return 5 * factorial(4)
4をxとして1行目に戻して最終行で
return 4 * factorial(3)
以後同じように3 *, 2 *, 1 *と入れ子が深くなりつつ繰り返され、
条件が成立した時点では
return 5 * (4 *(3 *(2 *(1))))
となるので5×4×3×2×1で120という事ですよね?

これで先に進む事が出来ます。
本当にありがとうございました。

493:デフォルトの名無しさん
13/03/10 23:04:00.99
import sys, hashlib, hmac
from Crypto.Cipher import AES

def aes_encrypt(msg, key, iv):
encryptor = AES.new(key, AES.MODE_CBC, iv)
return encryptor.encrypt(msg)

aes_encrypt(encrypt.py)は、main.pyからインポートされて呼び出されます。
実行すると、ImportError: No module named Crypto.Cipherというエラーが出ます。
どうしたらいいのでしょうか?
Python 2.7.3 + python2-crypto 2.6

494:デフォルトの名無しさん
13/03/10 23:15:02.35
まずsys.path確認

495:デフォルトの名無しさん
13/03/11 09:27:30.77
linuxで自作のpython野良アプリを作ったとしてそのスクリプトと設定ファイルはどこに配置するのが一般的ですか?

496:デフォルトの名無しさん
13/03/11 11:20:55.12
python関係ない
linux板で聞け

497:デフォルトの名無しさん
13/03/11 13:05:02.67
linux 板の話だな









conf ディレクトリ内
conf を /etc/appname へシンボリックリンク

498:デフォルトの名無しさん
13/03/11 13:53:39.25
>>497
バッドノウハウ

499:デフォルトの名無しさん
13/03/11 14:08:18.05
conf ディレクトリってなんだ?

500:デフォルトの名無しさん
13/03/11 14:32:07.19
別にディレクトリにしなくても良い

501:デフォルトの名無しさん
13/03/11 18:27:02.85
conf = 設定ファイルだろ

502:デフォルトの名無しさん
13/03/11 19:49:58.52
そんな俺様ルール出されても

503: 忍法帖【Lv=4,xxxP】(2+0:5)
13/03/12 21:10:19.36
>>464
ちなみにプラギンは?
jedi-vim?

504:デフォルトの名無しさん
13/03/13 08:31:48.47
windowsで「デスクトップ」にpyファイルを置いて
importすると、日本語が通らなくてダメなの?

505:デフォルトの名無しさん
13/03/13 08:45:42.24
今の3.3はファイルシステムエンコーディングがutf-8以外のシステムで
非ascii文字がパスに含まれている場合
起動中に__main__の設定が失敗するバグがある
まだ公式の修正リリースはありません

506:デフォルトの名無しさん
13/03/13 08:50:07.74
ありがとうございます。

507:デフォルトの名無しさん
13/03/13 10:12:39.40
あほ毛

508:デフォルトの名無しさん
13/03/13 12:34:30.47
3.3.1が3/2リリースだと思ってたけど、まだ出てないってことは延期されたのか
家帰ったら探してみよう

509:デフォルトの名無しさん
13/03/13 14:29:27.58
ここはお前の日記帳じゃねえんだ
チラシの裏にでも書いてろ、なっ!

510:デフォルトの名無しさん
13/03/13 14:36:40.51
>>505
2からあるバグじゃないの。それ。

511:デフォルトの名無しさん
13/03/13 14:52:19.20
URLリンク(bugs.python.org)

512:デフォルトの名無しさん
13/03/13 15:09:45.65
何を根拠に2.7とか

513:デフォルトの名無しさん
13/03/13 16:50:14.17
x. 文字コードについて
PYTHONPATH\Lib\site-packages\sitecustomize.py(なければ作る)に

import sys
from codecs import getwriter
sys.setdefaultencoding('shift_jis')
sys.stdout = getwriter('shift_jis')(sys.stdout)

と書くと日本語のエンコード関係がマシになるかもしれません。

514:デフォルトの名無しさん
13/03/13 18:22:26.52
ああ全然そんな話じゃない

515:デフォルトの名無しさん
13/03/13 20:20:11.72
超初心者です
プログラムを身につけたいと思ったもののプログラムの種類が多すぎて何からやればいいか
わからなかったのでプログラミングが学べる英語動画サイトみてたら初心者向けはpythonが多いようでした

その後本屋にいくとpythonは日本ではマイナー言語のように書籍が少なかったのです

pythonは日本ではマイナーなのでしょうか?pythonの利点と欠点を教えて下さい
プログラムを学ぶ目的は株のシステムトレードをしたいからです

516:デフォルトの名無しさん
13/03/13 20:22:20.77
日本ではマイナーです
日本語しか読めない&読む気がないのなら他の言語にしましょう
利点と欠点より前に考えるべきことです

517:デフォルトの名無しさん
13/03/13 20:23:27.49
利点:簡単、書きやすい、読みやすい、なんでも出来る、ライブラリ多い
欠点:遅い

518:デフォルトの名無しさん
13/03/13 20:24:09.33
>>516
日本でマイナーな理由を教えてください
アメリカでメジャーってことは数年遅れで日本でもメジャーになるってことでしょ?

519:デフォルトの名無しさん
13/03/13 20:25:15.67
>>517
具体的にいうとpythonはどういう系のプログラムに向いててどういうのが向いてないの?

520:デフォルトの名無しさん
13/03/13 20:26:09.90
マイナーな理由はない。気になるなら使わないほうがいい

521:デフォルトの名無しさん
13/03/13 20:26:46.39
面倒くさそうな奴だから相手すんの止めます

522:デフォルトの名無しさん
13/03/13 20:27:20.40
そんな事言ってほんとはおじちゃんのパソコン遠隔操作する気だろ

523:デフォルトの名無しさん
13/03/13 20:29:25.58
>>520
使わないほうがいい理由をおしえて
>>521
教えてくれよ

524:デフォルトの名無しさん
13/03/13 20:29:41.39
>>521
こういうのって言質を取りたいだけでPythonを使う気は最初からさらさらないからな

525:デフォルトの名無しさん
13/03/13 20:30:33.53
>>519
ちょっとした処理の自動化には少々面倒なのでPerlとかの方が便利
各種のデータ処理に非常に強い
ループぶん回して計算しまくるようなのには全くもって不向き

526:デフォルトの名無しさん
13/03/13 20:31:31.56
いやあ、~でしょ?~ですよね?って同意を求めるための質問って嫌いなんですよ個人的に

527:デフォルトの名無しさん
13/03/13 20:33:01.82
やる気がないのは分かったよ。C言語やればいいよ

528:デフォルトの名無しさん
13/03/13 21:00:42.54
pass

529:デフォルトの名無しさん
13/03/13 21:04:01.72
TIOBE見ると流行りだしたのは2004年半ばになっている
数年でメジャーになるという説が正しいとすればあと1年だが・・・
だがしかし

530:デフォルトの名無しさん
13/03/13 21:05:43.16
だからTIOBE信者はJava使ってれば良いだろ

531:デフォルトの名無しさん
13/03/13 21:20:22.30
わたしPython信者ですよ?
何年で流行るとか意味不明な供述をしている方がいらっしゃいましたので
一例を提示差し上げただけですわ

532:デフォルトの名無しさん
13/03/13 21:23:36.27
他のLL使用者に感染する奇病でも流行らんことには

533:デフォルトの名無しさん
13/03/13 21:37:12.53
>>515
端金でプログラマをこき使い書かせるのが正解です
一からプログラムを学ぶのはあまりにも非生産的です

534:デフォルトの名無しさん
13/03/13 23:15:37.43
pass

535:デフォルトの名無しさん
13/03/13 23:32:04.69
本屋行ったらパーフェクトPythonと空飛ぶPythonが平積みになってたなあ
前者は一章がいい感じにすべってた

536:デフォルトの名無しさん
13/03/13 23:47:01.29
すいすいすぃ~っと

537:デフォルトの名無しさん
13/03/14 01:25:11.59
空飛ぶputhon
超初心者用
読む価値なし

パーフェクトPython
初心者用
内容が薄い

538:デフォルトの名無しさん
13/03/14 01:29:06.61
オライリーのPython本がいい

539:デフォルトの名無しさん
13/03/14 01:32:09.80
素養のある人間はそんな書籍に出来に関わらず上達するし、
素養のないやつにはいくら優しい入門書を書いても無駄。

540:デフォルトの名無しさん
13/03/14 01:40:41.66
超初心者用スレでいったい誰と戦ってるんだ

541:デフォルトの名無しさん
13/03/14 04:34:26.08
この書籍の日本語版はいつ頃発売されそうですか?まだ4thの日本語版が無いというのに…

Learning Python 5th

URLリンク(www.amazon.co.jp)

542:デフォルトの名無しさん
13/03/14 06:42:45.76
>>541
来週でると思うよ。

来週の何曜日に出るか知りたかったら、オライリー・ジャパンに直接聞いてみるといいよ。

543:デフォルトの名無しさん
13/03/14 08:16:25.14
ネズミ本第3版をこつこつやってます

544:デフォルトの名無しさん
13/03/14 08:19:22.33
Pythonで、Amazonの自分のアカウントにログインして
購入ボタンを押すプログラムが書きたいのですが
Pythonでも出来ますか?

545:デフォルトの名無しさん
13/03/14 08:49:43.62
>>544
出来る

546:デフォルトの名無しさん
13/03/14 10:51:35.26
pythonで特定のサイト専用ブラウザ作れますか?
にちゃんみたいにリクエストやレスポンスなどの仕様が公開されてません

547:デフォルトの名無しさん
13/03/14 10:54:14.41
>546
気合いと根性があれば可能だけれども,言語の選定は重要.

548:デフォルトの名無しさん
13/03/14 12:28:05.00
基本的にブラウザのリクエストとレスポンスをトレースすれば何でもできるわ
初心者にできるとは言ってないことに注意しろ

549:デフォルトの名無しさん
13/03/14 12:36:26.73
Pythonそのものに加えてHTTP、場合によってはAjaxを含むjavascriptまで

本当の本当に言語一個もやったことがない初心者だと1年コースだと思え

550:デフォルトの名無しさん
13/03/14 14:23:44.13
pythonを勉強したいと思った超初心者です><
ネットブックをpython勉強専用機にしたいと思っています
そう自分は形から入る性格です

まずarchlinuxを入れました
pythonだけ出来ればいいのでX環境は入れないで良かったのですが
consoleで日本語が使えません>< そこでjfbtermを入れてみました
w3mも見れるしそこで問題は解決したのですがやっぱり物足りない感
そこでWMでタイル型なんて入れたら良いのかな?と思ったのですが
調べるとpythonで書かれたWMがありました→qlite

じゃあいっそpython関係のアプリだけを今後インストールしたいと思いました
X環境とqlite以外入っていない状態です
何かpythonアプリで良いものを教えてくださいm(._.*)m

551:デフォルトの名無しさん
13/03/14 14:27:23.72
Selenium があるね。

552:デフォルトの名無しさん
13/03/14 14:34:29.20
>>550
誰が見ても超初心者ですね

uzblやwmiiがPython(というか任意の言語)で拡張できて楽しいよ
qtileならpython-xlibが依存関係で入ってるからそれで遊べる

553:デフォルトの名無しさん
13/03/14 15:56:45.73
うわー超初心者に教えてもらっちゃったよ
qliteなんてもんがあるんだーうわー
俺はsqlite3の書き間違いだと思ってたよ、うわー恥ずかしー

って思ったけど良く良く>>552を見てみれば、qtileって書いてあるじゃないか

初心者に試された!

554:デフォルトの名無しさん
13/03/14 16:39:14.07
Python()

開発効率的にも実行速度的にもPHPのほうが有利なのに

555:デフォルトの名無しさん
13/03/14 17:02:53.55
pass

556:デフォルトの名無しさん
13/03/14 18:27:40.55
>>545
ありがとうございます
アマゾンのページのhtmlのソースとかを読んで
ボタン名とかを把握して、クリックする感じになるんですかね?
Python以外の言語の方がやりやすかったりしますでしょうか

557:デフォルトの名無しさん
13/03/14 18:40:42.47
Mechanizeみたいなのが他の言語にあるかどうかじゃね。

558:デフォルトの名無しさん
13/03/14 18:43:39.96
>>556
> アマゾンのページのhtmlのソースとかを読んで
> ボタン名とかを把握して、クリックする感じになるんですかね?
基本的にはそう、mechanizeとかね
webkitを使えばログイン画面をそのまま表示して入力させたりajaxサイトにも対応出来る
> Python以外の言語の方がやりやすかったりしますでしょうか
どの言語もやり易さは大体同じだけど、シンプルなpythonが一番わかりやすいよ

559:デフォルトの名無しさん
13/03/14 19:01:55.35
>>556
そりゃパイソンスレで聞けばパイソンが一番やりやすいって答えるよ
実際はPHPが一番楽

560:デフォルトの名無しさん
13/03/14 19:12:41.98
生きてて恥ずかしくないんだろうか

561:デフォルトの名無しさん
13/03/14 19:13:55.18
一言でプログラマって言っても色々だからね
MSで働いてるような凄腕プログラマもいれば
林檎で働いてるゴミグラマもいる

562:デフォルトの名無しさん
13/03/14 19:36:43.20
pythonファンだけど
実は >>556 の質問には
node.js が最適と答えざるを得ない

563:デフォルトの名無しさん
13/03/14 19:44:00.77
Microsoftの社員はどちらかというと秀才タイプ
Appleみたいな強烈なセンスある天才やジョブスみたいなカリスマは残念だけどあまり居ないね

564:デフォルトの名無しさん
13/03/14 19:53:04.78
ジョブズは、悪人

565:デフォルトの名無しさん
13/03/14 19:55:12.14
アポーには居るのか?

566:デフォルトの名無しさん
13/03/14 20:10:38.19
pass

567:デフォルトの名無しさん
13/03/14 21:16:36.55
MSはヘルスバーグがいるじゃないか
神扱いされてるプログラマの一人だけどまあ地味なのは否めないな

568:デフォルトの名無しさん
13/03/14 22:11:20.01
;

569:デフォルトの名無しさん
13/03/15 03:53:02.23
pythonのアンスコ乱用が気持ち悪い
作者には美的感覚が無かったのか

570:デフォルトの名無しさん
13/03/15 04:16:14.95
easyなんとかとかで入れたパッケージを
アンインストールする方法はありますか?

571:デフォルトの名無しさん
13/03/15 06:35:35.82
>>570
ファイルを削除するだけ

572:デフォルトの名無しさん
13/03/15 09:53:47.34
アンインストールコマンドがあるPyPIの方が良いね

573:デフォルトの名無しさん
13/03/15 10:52:21.45
>>569
個人的にはlowerCamelCaseの方が気持ち悪い
PascalCaseとアンスコだけでいい

574:デフォルトの名無しさん
13/03/15 13:49:16.94
pass

575:デフォルトの名無しさん
13/03/15 20:26:15.74
pythonのインストールから実行環境を整えるまで
アホのオレには一苦労だったわ
他の言語で慣れてる人には、楽勝なんだろうな~

576:デフォルトの名無しさん
13/03/15 20:40:02.01
pass

577:デフォルトの名無しさん
13/03/15 22:05:42.21
今更なんだけどなんで互換性無くしたの?

578:デフォルトの名無しさん
13/03/15 22:30:48.52
互換性を保ったままにできなかったから

579:デフォルトの名無しさん
13/03/15 22:49:00.85
3.xがマルチコアマルチプロセッサ対応だったら今すぐ2.7から乗り換える

580:デフォルトの名無しさん
13/03/16 00:07:35.32
一生2.7でいいじゃねえか
何か不満か

たぶん2.7の期限が来ても誰かがサポートつづけんだろ

581:デフォルトの名無しさん
13/03/16 00:24:51.52
2.7は文字コード周りがウンコ

582:デフォルトの名無しさん
13/03/16 00:26:23.40
せめて拡張子変えてくれれば使うのに

583:デフォルトの名無しさん
13/03/16 01:12:27.47
windowsはシェバン使えないから不便だな
まあ3系にはシェバンを理解するランチャが付いてるんですが

584:デフォルトの名無しさん
13/03/16 01:16:27.61
>>581
馬鹿には無理

585:デフォルトの名無しさん
13/03/16 01:21:01.67
拡張子なんてもともと大した意味ないだろ
pyである必要性すらない

586:デフォルトの名無しさん
13/03/16 01:38:09.21
>>584
現実が見えてない馬鹿はお前な

587:デフォルトの名無しさん
13/03/16 07:28:18.97
wxPython のエラーが表示されるwxPython: stdout/stderr ウィンドウが
応答なしになってデバッグしづらいです。
応答なしにならないようにする、または出力先を idle に変えるような方法はありますか?

環境は win7 64 bit, python 2.7.3, wxPython2.8-win32-unicode-2.8.12.1-py27 で idle から実行しています。
例えばフレームのタイトルに "日本語文字列" などを unicode にしていない場合のエラーでも
wxPython: stdout/stderr ウィンドウが応答無しになりエラーメッセージがスクロールすらできません。

588:デフォルトの名無しさん
13/03/16 09:41:17.49
>>587
pyscripterならwxのエラーも出てるけど

589:デフォルトの名無しさん
13/03/16 09:56:25.70
>>855
PyScripter-v2.5.3-Setup.exe からインストールしてやってみました。
こちらだと例外ダイアログは正常に閉じれますが、別に表示される wxPython: stdout/stderr は
マウスを近づけただけで応答なしになってしまいます。

590:デフォルトの名無しさん
13/03/16 09:58:39.00
コマンドプロンプトからスクリプトを実行したらどうなるの?

591:デフォルトの名無しさん
13/03/16 10:54:35.03
>>590
python test.py として実行したら、 wxPython: stdout/stderr ダイアログは表示されませんでした。
エラーメッセージがコマンドプロンプトに表示されましたが、ダイアログに表示されたものではありません。
もしかしたらダイアログに表示される最初のメッセージなのかもしれません。

>>588
バグの原因は文字コードではなく未定義の配列要素へのアクセスが原因でした。
修正したあと別のエラーによってダイアログが表示されましたが、固まらずにエラーログが表示されました。
バグの内容によって応答なしにはならないので、このまま PyScripter を使おうと思います。ありがとうございました。

592:デフォルトの名無しさん
13/03/16 11:03:53.24
>>591
URLリンク(www.wxpython.org)
redirectをFalseにするとウインドウが出なくなる

593: 忍法帖【Lv=5,xxxP】(1+0:5)
13/03/16 11:59:06.25
みんな何で書いてる?Eclipse?

594:デフォルトの名無しさん
13/03/16 12:01:57.36
>>593
Eclipse + PyDev + CVS

595:デフォルトの名無しさん
13/03/16 12:07:11.46
xyzzy

596:デフォルトの名無しさん
13/03/16 12:09:19.21
>>581
3.xは文字コード周りが「枯れてない」ので
どっちも面倒くさいことになるのはいっしょ。
まだ対処可能なケースの多い2.xの方がマシ。
3.3でかなり改善はされたけど、
おかげでバグが激しくて3.3.1待ちの状態。

597:デフォルトの名無しさん
13/03/16 12:11:50.28
2.7でも3.2でも文字コード廻りで対処できなかったケースないわ
3.3はまだ地雷だけど

598:デフォルトの名無しさん
13/03/16 12:13:40.34
馬鹿には無理

599:デフォルトの名無しさん
13/03/16 12:23:02.03
と馬鹿が申しております

600:デフォルトの名無しさん
13/03/16 12:39:23.24
あららー?

601:デフォルトの名無しさん
13/03/16 13:00:05.50
間もなく6ヶ月なのに、まだrcの気配もないよ>3.3.1

602:デフォルトの名無しさん
13/03/16 13:07:24.38
2.xの文字コード周りが明らかに糞仕様だと認めない人が何を言いたいのか殆ど理解できない

603:デフォルトの名無しさん
13/03/16 13:07:26.72
>>593
emacs + auto-complete

604:デフォルトの名無しさん
13/03/16 13:09:30.05
枯れてる枯れてないの議論をすれば、確かに2.xの文字コードは腐りきってるけど、糞仕様には変わりないんだよ

605:デフォルトの名無しさん
13/03/16 13:26:56.28
自分が扱えるから糞仕様じゃないって事じゃね
100回まわさないと水が出てこない蛇口でも使えるから糞仕様ではないって言うよ、たぶん

606:デフォルトの名無しさん
13/03/16 13:52:22.79
初心者なのでPyScripterでやってます・・・

607:デフォルトの名無しさん
13/03/16 13:53:47.76
PyScripterはWin限定だからスルーされがちなだけで無茶苦茶優秀なエディタ

608:デフォルトの名無しさん
13/03/16 14:19:20.83
>>593
Notepad++ プラグインのPython Scriptを入れて

609:デフォルトの名無しさん
13/03/16 15:50:27.76
NppExecプラグインは便利

610:デフォルトの名無しさん
13/03/16 16:04:07.24
F6
python $(FULL_CURRENT_PATH)
Enter

611:デフォルトの名無しさん
13/03/16 16:08:55.25
一行目に NPP_SAVE を加えれば Ctrl+S の手間も省けるしね

612:デフォルトの名無しさん
13/03/16 16:54:14.17
>>609 >>610 それも使っています。ほんと便利です。
>>611 知らなかった。やらせてもらいます。

613:デフォルトの名無しさん
13/03/16 19:16:55.47
PythonはWindowsもちゃんとサポートしている言語ですか?
RubyみたいにWindowsは中途半端にサポートしてますか?

614:デフォルトの名無しさん
13/03/16 19:18:30.89
今からURLリンク(docs.python.jp)みて勉強します

615:デフォルトの名無しさん
13/03/16 19:18:50.74
Rubyよりは相対的にマシだけどそれでも開発者からは嫌われてる

616:デフォルトの名無しさん
13/03/16 19:55:49.76
URLリンク(docs.python.jp)

617:デフォルトの名無しさん
13/03/16 20:02:20.03
Windowsベッタリで行くならIronPythonもあり
2.7ベースだけど

618:デフォルトの名無しさん
13/03/16 20:29:54.24
IronPythonでimport zlib, sqlite3とかできるの?

619:デフォルトの名無しさん
13/03/16 21:21:18.30
Linuxでpythonを勉強しはじめました。
ncursesを使った簡単なプログラムを作りたいと思ったのですが
その簡単なサンプルみたいなものも情報も少なく感じています。
何かおすすめみたいのがあれば教えてください m(_ _"m)

620:デフォルトの名無しさん
13/03/16 21:25:06.62
馬鹿には無理

621:デフォルトの名無しさん
13/03/16 21:38:22.66
そんなひどい

622:デフォルトの名無しさん
13/03/16 21:41:30.46
>>618
一応Cのライブラリには対応してたはず
最悪.NETのライブラリも使える

623:デフォルトの名無しさん
13/03/16 21:48:20.04
所詮インタプリタの再実装なのになぜ対応しないと思ったのかよく分からない
URLリンク(pastebin.com)

624:デフォルトの名無しさん
13/03/16 22:55:41.89
たしかtkinterはデフォルトで無かったけど、
GUIは.NETの使えば良いかなーって感じ

625:デフォルトの名無しさん
13/03/16 23:01:20.06
>>619
プログラミング初心者の俺でもそのくらい分かる

626:デフォルトの名無しさん
13/03/16 23:21:57.85
3系の質問です。

L = []

for i in range(10):
L[i] = "abc" + str(i)
print(L)

上記を実行して以下のようなリストを作りたいのですがうまくいきません。

["abc0","abc1","abc2",…,"abc9"]

どうすれば意図する事が出来るでしょうか?

627:デフォルトの名無しさん
13/03/16 23:22:59.57
L = ["abc" + i for i in range(10)]

628:デフォルトの名無しさん
13/03/16 23:37:04.33
方法は3つ
(1) L = [] → L = [None]*10
(2) L[i] = "abc" + str(i) → L.append("abc"+str(i))
(3) >>627 ( i をキャストしてないけど)

(3)のリスト内包表記がベスト
あと、文字列の結合は ''.join(list) を使ったほうが良い

629:デフォルトの名無しさん
13/03/17 15:23:33.27
つかバージョン関係ねえ

630:デフォルトの名無しさん
13/03/17 15:50:48.92
pass

631:デフォルトの名無しさん
13/03/17 16:31:44.16
L = [''.join(['abc',str(i)]) for i in range(10)]

632:デフォルトの名無しさん
13/03/17 16:36:21.58
map(lambda x:'abc%02d'%x, range(20))

633:デフォルトの名無しさん
13/03/17 16:42:13.81
joinは汚ない。10回程度なら書きやすさ読みやすさを考えて + でも全然いいよ

634:デフォルトの名無しさん
13/03/17 16:53:45.11
何回程度ならダメなんだよ

635:デフォルトの名無しさん
13/03/17 16:54:22.83
女陰は汚い。

636:デフォルトの名無しさん
13/03/17 17:18:07.66
pass

637:デフォルトの名無しさん
13/03/17 17:31:54.49
>>626
L = ["abc%d" % i for i in range(10)]

638:デフォルトの名無しさん
13/03/17 17:41:28.13
なぜ人が書いてることをまた書くのか

639:デフォルトの名無しさん
13/03/17 17:42:34.32
脳が腐敗してるから

640:デフォルトの名無しさん
13/03/17 17:54:17.19
L = map(lambda x:'abc%d'%x,range(10))

641:デフォルトの名無しさん
13/03/17 17:57:47.03
["abc{}".format(i) for i in range(10)]
list(map("abc{}".format, range(10)))

642:デフォルトの名無しさん
13/03/17 17:58:56.75
もういいぞクズ

643:デフォルトの名無しさん
13/03/17 18:00:48.44
TIMTOWTDIですね。わかります

644:デフォルトの名無しさん
13/03/17 18:03:20.59
同じこと連呼してドヤ顔とか…
データ構造やアルゴリズムを変えてみてから言えよ

645:デフォルトの名無しさん
13/03/17 18:04:30.87
文字列リテラルにメソッド呼び出しするの気持ち悪い

646:デフォルトの名無しさん
13/03/17 18:06:27.65
オブジェクトがメソッドを持つのは当然のこと

647:デフォルトの名無しさん
13/03/17 18:17:59.54
手続き脳にオブジェクト指向やらすと起こる定番の拒否反応

648: 忍法帖【Lv=6,xxxP】(1+0:5)
13/03/17 18:26:55.10
ファイル一覧に対して何か処理するメソッドを作成したいです。

URLリンク(cl.ly)

サブディレクトリ含む場合は出来るのですが、サブディレクトリなしの場合が出来ません。

こんなエラー
URLリンク(cl.ly)

どこがダメでしょうか。

649:デフォルトの名無しさん
13/03/17 18:33:40.26
map関数は気持ち悪いなあ
どこがどうと言えないのだけど

650:デフォルトの名無しさん
13/03/17 18:37:08.01
オブジェクト脳に関数型やらすと起こる定番の拒否反応

651:デフォルトの名無しさん
13/03/17 18:39:01.59
>>648
os.path.joinの第二引数がリストになってるよ

652:デフォルトの名無しさん
13/03/17 18:39:13.06
map, filter, reduceに慣れてないだけw

653:デフォルトの名無しさん
13/03/17 18:39:25.63
論理的には文字列にメソッドは気にならないんだけど
コードの見た目が壊滅的に気持ち悪い
記号の演算子乱用する言語と同じくらい気持ち悪い

654:デフォルトの名無しさん
13/03/17 18:40:55.64
なぜ気持ち悪いのか、どう気持ち悪いのか言えよ。ただの馬鹿じゃん

655:デフォルトの名無しさん
13/03/17 18:44:06.71
mapは文字通り集合から集合への写像なのに何が気持ち悪いのか理解不能

656:デフォルトの名無しさん
13/03/17 18:45:38.30
生理的嫌悪感を感じるんだ
これは不細工が嫌いとかそういうレベルの感情だからどうしようもない

657:デフォルトの名無しさん
13/03/17 18:46:29.71
それならpythonを使うべきではないね。仕事なら別だが

658:デフォルトの名無しさん
13/03/17 18:50:46.49
mapは気持ちわるくないけど
map("abc{}".format, range(10)) ともなると
"abc{}".format のアリティが文字列リテラルの中の {} の数によって決められるのがあれかも

659:デフォルトの名無しさん
13/03/17 18:51:18.44
map()が気持ち悪いってプログラミングセンス皆無だぞ

660:デフォルトの名無しさん
13/03/17 18:52:44.49
append とか join はぜんぶ関数にしてほしい。

append(lst, elem)

join(lst1, lst2)

とかしたい。

661:デフォルトの名無しさん
13/03/17 18:59:41.74
>>660
joinを呼ぶ文字列は区切り文字であってリストじゃない
つまりlst1とlst2を連結するメソッドではない

662:デフォルトの名無しさん
13/03/17 19:00:51.44
アホか
むしろシーケンスがlenメソッド持つべきだろ
頭湧いてんのか

663:デフォルトの名無しさん
13/03/17 19:03:18.84
>>661
文字列の連結は + にしてほしい。

str1 + str2

664:デフォルトの名無しさん
13/03/17 19:04:40.22
えっ?

665:デフォルトの名無しさん
13/03/17 19:05:45.15
えぇ

666:デフォルトの名無しさん
13/03/17 19:06:21.59
もともとそうだったか。

667:デフォルトの名無しさん
13/03/17 19:06:27.70
>>663
だからそれは出来るだろ。処理系によって滅茶苦茶おそくなるが
というか、お前はPythonやオブジェクト指向言語を使わないほうが良いと思う
まあ、オブジェクト指向だからこそ演算子のオーバーロードができるわけだから
もうプログラミング辞めたほうがいいと思う

668:デフォルトの名無しさん
13/03/17 19:06:40.09
この程度の頭で喋ってるのかい。

669:デフォルトの名無しさん
13/03/17 19:08:02.96
呆れたからご飯のし支度でもするわ

670:デフォルトの名無しさん
13/03/17 19:08:50.54
# unko.py
def append(a, e):
a.append(e)
def join(s, a):
s.join(a)
def map(*a, **b):
raise Exception('Hey motherfucker! Do NOT use "map" function.')

from unko import *

671:デフォルトの名無しさん
13/03/17 19:12:08.76
>>627
>>628

ありがとうございます。

リスト末尾への追加はappend()を使うんですね。すっかり頭から抜けていました。

(1)のL = [None]*10
を使って最初のループに当てはめてみてもうまくいきました。

メソッドを使わずに代入だけでリスト内の構成を変えようとした事が失敗の原因だったんですね。

まだ内包表記まで進んでいないので内包表記は後日見直してみます。

本当にありがとうございました。

672:デフォルトの名無しさん
13/03/17 19:21:35.26
>>670
append([1, 2, 3], 4) の結果はどこに行くの。

673:デフォルトの名無しさん
13/03/17 19:28:36.77
どっか行くの?

674:デフォルトの名無しさん
13/03/17 19:37:07.83
>>659
何で?
こんな変な動作をする関数は
Cなどの従来一般的な開発言語にはないでしょ。

675:デフォルトの名無しさん
13/03/17 19:38:17.94
append(a, e)のaやreturnを書き忘れるあたりおそらくRuby初心者スレじゃないかと思う

676:デフォルトの名無しさん
13/03/17 19:40:54.31
>>674
残念ながらC言語以前からありますw

677:デフォルトの名無しさん
13/03/17 19:42:12.69
list.sort()とsorted(list)の違い

678:デフォルトの名無しさん
13/03/17 19:44:26.62
lispってCより15年近く古いよね

679:デフォルトの名無しさん
13/03/17 19:49:47.71
>>673
append([1, 2, 3], 4) に返して欲しいのは [1, 2, 3, 4] だよ。
implicit に a を書き換えるんじゃなくて。
関数定義するならこんな感じ。

def append(a, e):
 return a + [e]

680:デフォルトの名無しさん
13/03/17 19:51:13.44
map関数がやってることもこれとほぼ同じなんだけど何故かしっくりこないらしい
人間の脳味噌って不可思議だね

681:デフォルトの名無しさん
13/03/17 19:52:03.61
>>679
その関数に何の意味があるんだ…

682:デフォルトの名無しさん
13/03/17 19:58:51.65
>>681
じゃあ、a.append(e) に何の意味があるんだ?

683:デフォルトの名無しさん
13/03/17 19:59:22.36
>>680の言う「これ」ってどれ?

684:デフォルトの名無しさん
13/03/17 20:02:16.89
>>682
aのメソッドであることに意味がある
>>660みたいな馬鹿には一生わからないだろうが

685:デフォルトの名無しさん
13/03/17 20:02:38.43
とりあえずうるさいから全員黙れ
嫌なら使うのやめろ
士ね

686:デフォルトの名無しさん
13/03/17 20:04:33.84
>>684
a のメソッドであることにどんな意味があるの?

687:デフォルトの名無しさん
13/03/17 20:14:47.84
>>680の「これ」が>>679だとしたら
mapにたいして深刻な勘違いをしていると言わざるを得ない

>>686
リストしか使わない処理だから。読むときも書くときも他のことを考えなくて済む
リストを継承したクラスでも同じことが出来る
>>660みたいな馬鹿には一生わからないだろうが

688:デフォルトの名無しさん
13/03/17 20:16:32.91
>>685
レス乞食にはpassを食わせろ

689:デフォルトの名無しさん
13/03/17 20:20:25.32
pass

690:デフォルトの名無しさん
13/03/17 20:21:09.87
とりあえずうるさいから全員黙れ
嫌なら使うのやめろ
士ね

691:デフォルトの名無しさん
13/03/17 20:29:58.32
pass

692:デフォルトの名無しさん
13/03/17 20:31:44.87
盲人の手を引く盲人

693:デフォルトの名無しさん
13/03/17 20:39:19.17
ここまで俺様の自演w

694:デフォルトの名無しさん
13/03/17 20:40:48.49
while 1:
pass

695:デフォルトの名無しさん
13/03/17 21:35:45.40
>>697
じゃあなんで len は lst.len() みたいにならないんだ?

ぜんぶメソッドに統一すればいいじゃないか。

696:デフォルトの名無しさん
13/03/17 21:38:57.07
str.len()も無くて最初探しまくったのは悪い思い出

697:デフォルトの名無しさん
13/03/17 21:40:50.78
Ruby のせいですね
わかります

698:デフォルトの名無しさん
13/03/17 21:49:21.13
.NETやJavaもそうじゃないか。まあどっちでもすぐ慣れるのだけど

699:デフォルトの名無しさん
13/03/17 22:01:14.57
.NET や Java がそうだから Pythonも、ってのは理由にはならないだろ。

700:デフォルトの名無しさん
13/03/17 22:09:50.79
>>699
>>698>>697へのレス。あと >>698 != >>695

701:デフォルトの名無しさん
13/03/17 22:33:10.94
>>695
URLリンク(mail.python.org)

702:デフォルトの名無しさん
13/03/17 23:37:17.23
L = map(lambda x:'abc%d'%x,range(10))

703:デフォルトの名無しさん
13/03/18 02:34:54.80
うるせえ死ね

704:デフォルトの名無しさん
13/03/18 07:02:15.51
>>701
それ読むとグイドは x.len() キモイって言ってるけど、
同じ理由で lst.append(elem) もキモイんだけど。

それと、lst.append(elem) が lst の内容を陰に書き換えるのもキモイ。

705:デフォルトの名無しさん
13/03/18 07:15:09.54
ヴァンホーテンさんはBDFLとして何かおもしろいこと言わなきゃいけないんだから
発言に多少齟齬があっても気にしないのが大人としての優しさ

706:デフォルトの名無しさん
13/03/18 07:26:54.20
Pythonのメソッドをぜんぶ関数にしたらカッコのないLISPになっちゃう。

707:デフォルトの名無しさん
13/03/18 07:38:38.92
lst += [elem]

708: 忍法帖【Lv=7,xxxP】(1+0:5)
13/03/18 08:36:15.99
>>651
サンクス!!

709:デフォルトの名無しさん
13/03/18 08:49:49.68
>>704
副作用があるときメソッド、副作用がないとき関数。
例:lst.sort() と sorted(lst)

710:デフォルトの名無しさん
13/03/18 09:02:53.93
str.unicode() は?

711:デフォルトの名無しさん
13/03/18 09:13:25.39
>>710
そんなメソッドstrにあったか?

712:デフォルトの名無しさん
13/03/18 09:33:26.81
unicode(str)は副作用がないが
str.decode()も副作用がない

713:デフォルトの名無しさん
13/03/18 09:50:27.45
下らないこと書いてないで働けよ社畜ども

714:デフォルトの名無しさん
13/03/18 11:43:53.37
フリーランスですが何か

715:デフォルトの名無しさん
13/03/18 12:10:08.57
最近はフリーのニートとかあるんだね
僕?お昼休みですけど

ところでお前ら死ね

716:デフォルトの名無しさん
13/03/18 13:31:48.40
len()やmax()はリスト以外にも同じように使える
appendはリストだけの操作だから全体に使えるようにする意味がない
全て関数にすべきとか、もうクラスを一度も書いたことがないC言語しか知らない人間の言うことだから
どんな議論も無意味だけど

こんな瑣末なことが気持ち悪いと思うのならPythonは使うべきではない
ま、そんな奴は全ての言語について何かしら本質でないことに対して気持ち悪いと言うのだろうが
それをハッカーがよくやる真っ当な言語ディスだと勘違いしてるのならご愁傷様

717:デフォルトの名無しさん
13/03/18 13:55:19.27
Guido脂肪w

718:デフォルトの名無しさん
13/03/18 14:07:59.13
そもそも le nが string にも list にも同じように使えるのがおかしい。

719:デフォルトの名無しさん
13/03/18 14:16:59.92
どこが?

720:デフォルトの名無しさん
13/03/18 14:35:17.36
string ならリストに変換してリストの len を取れば足りるだろ。

"abc" → ["a", "b", "c"] → len(["a", "b", "c"]) → 3

みたいに。len が string の長さを測る必要ない。

721:デフォルトの名無しさん
13/03/18 14:36:38.18
string[i]でアクセス出来るのになんでリストに変換しなきゃいけないのかとw
stringに対して酷い誤解をしてるよ

722:デフォルトの名無しさん
13/03/18 14:39:42.39
i が分かるのは string の長さが分かってるからでしょ。

723:デフォルトの名無しさん
13/03/18 14:42:28.81
だから
for i in range(len(list)): list[i]
は出来るのに
for i in range(len(string)): string[i]
がダメな理由は何?

馬鹿すぎてお話にならないが

724:デフォルトの名無しさん
13/03/18 14:45:58.72
最低限与えられるファンダメンタルな機能としては不要だってこと。

725:デフォルトの名無しさん
13/03/18 14:48:20.48
そう思うのならPythonを使うべきではないね、残念ながら。

726:デフォルトの名無しさん
13/03/18 14:49:45.49
それはおまいが決めることではない。

727:デフォルトの名無しさん
13/03/18 14:50:29.97
>>724こそお前が決めることではない
そう決めるのならPythonを使うべきではない。それだけ

728:デフォルトの名無しさん
13/03/18 14:59:18.39
今回の議論でいろいろ Python の問題点が見えてきたよ。
それらはすべて自分のライブラリにフィードバックしてるから。

ありがとう!

729:デフォルトの名無しさん
13/03/18 15:00:41.17
プロフェッショナルが作った洗練された組み込み関数を
全て台無しにする糞ライブラリの完成だなw

730:デフォルトの名無しさん
13/03/18 15:03:24.35
組み込み関数に対して自分用のラッパ書くとかもはやなんでその言語使ってるのか分からないレベル

731:デフォルトの名無しさん
13/03/18 15:11:17.51
結果が同じでも色んな書き方あるようだけど
やっぱ速度も違ってくるのかな?

732:デフォルトの名無しさん
13/03/18 15:21:03.70
糖衣構文でもないかぎり速度は変わるに決まってる

733:デフォルトの名無しさん
13/03/18 15:21:39.54
もちろん

>>> from timeit import timeit
>>> timeit(' ["abc" + str(i) for i in range(10)] ')
12.046442985534668
>>> timeit(' ["".join(("abc", str(i))) for i in range(10)] ')
16.259288787841797
>>> timeit(' ["".join(["abc", str(i)]) for i in range(10)] ')
19.62903094291687

734:デフォルトの名無しさん
13/03/18 15:26:57.04
>>733
ありがと。
けっこう差が出るもんだね

735:デフォルトの名無しさん
13/03/18 15:29:25.29
ソースコードは Python の実装(PyPy、Jython、IronPython、Pyrex、
Psyco など)ごとの欠点を引き出さないように書くべきである。たとえば、
CPython が a+=b や a=a+b などの文字列連結をインプレイス処理して、効
率よく動作する実装に依存してはならない。これでは Jython での動作が遅く
なってしまう。パフォーマンスに敏感な部分では、''.join() を使うべき
である。こう書いておけば、様々な実装において、連結処理は線形時間で
処理できる。

736:デフォルトの名無しさん
13/03/18 15:32:21.69
使いもしない処理系のことを考えてプログラミングするの?やだー

737:デフォルトの名無しさん
13/03/18 15:32:55.58
俺は使うけど?

738:デフォルトの名無しさん
13/03/18 15:35:07.76
>>737
じゃあその使ってる処理系でベンチやってくれ。

739:デフォルトの名無しさん
13/03/18 15:40:09.04
>>738
はい
URLリンク(matsulib.hatenablog.jp)

740:デフォルトの名無しさん
13/03/18 15:46:23.49
>>739
文字列にがんがん文字列追加してく例じゃん
そりゃjoinのほうが早いよ

741:デフォルトの名無しさん
13/03/18 16:05:45.10
2ちゃんねるのダメ系の板にしばらくいたことがありますが、ダメになる傾向って確かにあって一つしかないですね
何もしないことです 怠惰や失敗への恐れや他人への迷惑への懸念、大元の理由は様々ですが
あそこにいる人たちの共通点は何もしてこなかった事に尽きます

742:デフォルトの名無しさん
13/03/18 18:35:27.74
書き捨てのコードで実装依存がどうたらと真面目に考えてるのか?
仕事しろチンカス

743:デフォルトの名無しさん
13/03/18 18:45:41.48
主にライブラリ作者が気をつけてればいい話だ罠
自称意識高い系で、有名プログラマとか本の受け売りばっかり頭に叩き込んでる奴が
皺のなくなった頭とドヤ顔でこういうことを喋ってる
たまに勉強会で見かける

744:デフォルトの名無しさん
13/03/18 18:53:03.47
レベル低い奴の言い訳は見苦しいなあ

745:デフォルトの名無しさん
13/03/18 18:54:05.90
馬鹿の一つ覚えって言っておけばすべて解決

746:デフォルトの名無しさん
13/03/18 18:55:54.16
受け売りで自分で喋れない蛇口君よりは大層ましだと思うぜ

747:デフォルトの名無しさん
13/03/18 18:56:32.22
俺「PEP8に書かれてますよー」
馬鹿「受け売りはやめろ」

748:デフォルトの名無しさん
13/03/18 18:58:15.20
俺と馬鹿が逆ですよ

749:デフォルトの名無しさん
13/03/18 18:59:49.10
これぞ思考停止

750:デフォルトの名無しさん
13/03/18 19:01:09.38
ここにいるカスどもからはPythonコミュニティには絶対にコミットしないという強い意思が見える
そのくせ開発者には文句たらたら(しかもそれは自分の無能さが原因)。死んだほうがいい

751:デフォルトの名無しさん
13/03/18 19:01:56.35
使ってやってるんだからありがたく思え。禿げ上がれ。

752:デフォルトの名無しさん
13/03/18 19:02:40.23
するわけないじゃん。
お前工具の開発元にいちいちフィードバック送ってんの?
へーすごいね。えらいね。帰っていいよ。

753:デフォルトの名無しさん
13/03/18 19:05:01.83
フィードバック送るのは当然ですしおすし

754:デフォルトの名無しさん
13/03/18 19:06:06.49
ふーん
そのコミュニティとやらはお前に何か尽くしてくれんの?
葬式に来てくれるとか?
そうでないなら労力を吸い取られてるだけの単なる物好きだね
大したものだ

755:デフォルトの名無しさん
13/03/18 19:08:31.66
で、その経験はお前の中に何を形成したの?
何か強みになりましたか?

756:デフォルトの名無しさん
13/03/18 19:14:52.08
おまいらPythonに関係のない話続けるならまとめてどっかいってくれませんかね

757:デフォルトの名無しさん
13/03/18 19:16:01.07
全員葬式の準備をしろ
お前らは強制的にあの世行きだ

758:デフォルトの名無しさん
13/03/18 19:17:18.37
>>751-752,754-755
頭大丈夫?

759:デフォルトの名無しさん
13/03/18 19:17:19.01
コミュニティへの貢献が関係ない話のわけがないだろ。
ユーザーの意識が今後の発展にかかわるんだ。

760:デフォルトの名無しさん
13/03/18 19:19:02.18
>>758
罵倒する語彙も不足してるらしいな。よく分かるぜ。

761:デフォルトの名無しさん
13/03/18 19:19:25.72
まあフィードバックと称したクレームはこのスレにも要らないけどね

762:デフォルトの名無しさん
13/03/18 19:21:25.63
ここイシュートラッカじゃないんで、文句言われても困るわ
言語仕様についてならコミュニティで大いに語って来いよコミュニティバカ

763:デフォルトの名無しさん
13/03/18 19:21:49.00
>>760
罵倒じゃなくて>>751-752,754-755みたいなレスをしちゃう人間の脳みそを本気で心配しているのだが
Python関連の何かに親でも殺されたのか?怖いよ

764:デフォルトの名無しさん
13/03/18 19:26:06.21
俺もなんのメリットもなく貢献貢献と自慰できる人間の脳味噌に本気で興味を抱いてるよ
一週間前にも居たよな
公開オナニー馬鹿が全国に

765:デフォルトの名無しさん
13/03/18 19:28:26.10
次から>>1にバグや文句はここに書けって貼っとこうぜ
URLリンク(bugs.python.org)

本当に書きに行く度胸のある奴はいないだろうから迷惑にはなるまい

766:デフォルトの名無しさん
13/03/18 19:30:03.16
>>764
フィードバックのデメリットって何?
自分が使おうとしてるプログラムやソースコードのことで気づいたことでしょ?
わざわざ自分と関係のない問題を見つけ出すわけじゃないよ
なぜフィードバックにブチギレてるのか理解不能w

767:デフォルトの名無しさん
13/03/18 19:31:51.92
誰かデメリットの話をしたか?
誰だ?出てこい

768:デフォルトの名無しさん
13/03/18 19:32:35.04
>>754
>そうでないなら労力を吸い取られてるだけ

769:デフォルトの名無しさん
13/03/18 19:36:35.83
そりゃ尤もなデメリットだな
労力を削く以上に根本的なデメリットは無いよね
否定していいぞ、できるなら

770:デフォルトの名無しさん
13/03/18 19:37:05.48
何の労力?

771:デフォルトの名無しさん
13/03/18 19:37:15.96
いつまで続くん

772:デフォルトの名無しさん
13/03/18 19:40:38.35
どちらかの賢さが1上がるまでだな

773:デフォルトの名無しさん
13/03/18 19:43:02.67
フィードバック=デバッグ作業だと思ってるキチガイが死ぬまでだな

774:デフォルトの名無しさん
13/03/18 19:45:03.45
PEP8の話の方がまだ面白い

775:デフォルトの名無しさん
13/03/18 19:46:34.40
>>750
無能な働き者がコミットしまくるよりいいんじゃないの

776:デフォルトの名無しさん
13/03/18 19:48:26.18
それ以前に無能は死ねよ
このスレ存続の危機だろうけどな

777:デフォルトの名無しさん
13/03/18 19:50:34.61
>>775
うん、このスレに上がってるような不満や問題点の指摘は的外れすぎて絶対にコミッターにはなれないし
なんでPythonを使ってるかも分からないレベル
それくらい言語への理解が至ってないのに、何故か偉そうで意味が分からない
質問者ではないようだし、自分では初心者だと思ってないらしいから質が悪い

778:デフォルトの名無しさん
13/03/18 19:55:52.07
2chに書き込む「労力」が無駄

779:デフォルトの名無しさん
13/03/18 19:56:03.11
こんなスノビー臭い言語使ってる理由なんて推して知るべしだろ
考えるより自分の胸に手を当てた方が早いんじゃないか

780:デフォルトの名無しさん
13/03/18 19:59:19.43
>>779
お前がお前の胸に手を当てて分かることなんて俺は知らんよ

781:デフォルトの名無しさん
13/03/18 20:01:18.94
このスレにコミッターなんておらんだろうに、偉そうなモブ1号が何事かほざきおるな
ぐらいにしか聞こえない

782:デフォルトの名無しさん
13/03/18 20:03:11.83
コミッターでなくても>>751-752,754-755がアホだということは分かる

783:デフォルトの名無しさん
13/03/18 20:05:46.42
コミッターになれないって
あれなりたくてなってるものだったの?
罰ゲームだと思ってた

784:デフォルトの名無しさん
13/03/18 20:05:56.52
葬式に来てくれない相手にレスするなんて、モノ好きだねえ

785:デフォルトの名無しさん
13/03/18 20:07:05.57
>>783
よく何も知らないことに対して自信満々に嘘八百が並べられるな
生きてて恥ずかしくないんだろうか

786:デフォルトの名無しさん
13/03/18 20:07:45.96
何の罰だよ意味わかんねえ

787:デフォルトの名無しさん
13/03/18 20:11:26.75
>>779
昔は人生の落伍者でも使える言語との評判でした

788:デフォルトの名無しさん
13/03/18 20:12:01.89
葬式なんて遠い未来のことなんぞより今ここだろ
今でしょ!の先生も言ってるだろ



まあ、今何かする暇があるってことは
今の作業を事前にスケジュールできていなかったわけで
アレ見た社会人がネタじゃなくマジ感銘受けてられると
いろんな意味で参る

789:デフォルトの名無しさん
13/03/18 20:14:54.95
落伍者どころかクソ袋でも使えるようになったし
時代の進歩を感じるね

790:731
13/03/18 20:15:06.34
速度の話しから変な方向に広がってしまったな
すまんの

791:デフォルトの名無しさん
13/03/18 20:15:25.51
ええんやで

792:デフォルトの名無しさん
13/03/19 21:21:47.33
ソーシャルなんとかの流行で有象無象が流入してきてんのかな
移住するか

793:デフォルトの名無しさん
13/03/19 21:23:57.65
移住も何も昔からここが最果て、いちばんカスの集まる場所だよ

794:デフォルトの名無しさん
13/03/19 21:27:07.74
ここに地終わりゴミの海が始まる

795:デフォルトの名無しさん
13/03/19 21:27:20.58
騒がしいのが苦手なんで
Haskelでも見てくるか

796:デフォルトの名無しさん
13/03/19 21:28:56.27
lispでいいんじゃないの

797:デフォルトの名無しさん
13/03/19 21:31:08.06
>>794
ポルトガルの詩だっけ?

798:デフォルトの名無しさん
13/03/19 21:33:41.60
オランダじゃないのは確かだ

799:デフォルトの名無しさん
13/03/19 23:51:32.10
ソーシャルなんとかってなんだ。

800:デフォルトの名無しさん
13/03/20 08:11:14.15
1.2 + 1.8 の小数同士の計算が
こんなに難しいとは・・・

801:デフォルトの名無しさん
13/03/20 08:35:23.17
前後が無いと何が難しいのかわからない

802:デフォルトの名無しさん
13/03/20 08:52:10.19
これ

14. 浮動小数点演算、その問題と制限
URLリンク(docs.python.jp)

803:デフォルトの名無しさん
13/03/20 08:54:39.95
>>> 1.2 + 1.8
3.0

804:デフォルトの名無しさん
13/03/20 08:56:15.77
階乗進数(n桁目がn!)を使うと浮動小数点数の変換誤差は無くなるらしい

805:デフォルトの名無しさん
13/03/20 09:00:11.41
>>803
馬鹿には無理

806:デフォルトの名無しさん
13/03/20 10:38:11.50
pythonではイテレートの終了を示すために特殊な例外を投げますが
なぜこのような奇妙な仕様になったのでしょうか

807:デフォルトの名無しさん
13/03/20 10:47:57.03
戻り値やプロパティを使って判断するのに比べて実装が楽だし綺麗だから
C#やJavaなんかは戻り値やプロパティを使ってるが、
それらに比べてもともとクソ遅いので例外のパフォーマンスヒットを無視できるから

808:デフォルトの名無しさん
13/03/20 10:59:32.97
Rubyは内部イテレータだから例外使わないと実装しづらいんだけど
Pythonは外部イテレータ(C#やJavaと同じ方式)なので実はそうでもなかったりする
next()一つで済むという一点だけだな


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch