5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【実験台】 Python 3.0 のお勉強 Part 1 【非互換】

1 :デフォルトの名無しさん:2009/02/19(木) 22:30:15
Python 3.0 は隔離スレを作るべきだと思うのは俺だけかな?
そもそもあれは実用で使うには時期が早すぎるわけで、ここで
普通に語られても困る。
--------
別に
--------
細分化する必要性が全く感じられない。
各自がレスの内容を収拾選択すればいいだけ。

2 :デフォルトの名無しさん:2009/02/19(木) 22:31:44
やべ
起てられないと思って
弄んでたら
勃っちゃった

3 :デフォルトの名無しさん:2009/02/20(金) 02:28:12
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ  まピョーん☆
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ


4 :デフォルトの名無しさん:2009/02/20(金) 12:34:21
つうかまじでpython厨うざい。
python厨は全員首吊って死ねよ。

ruby人口の方が多い。
rubyの方がいろいろできる。
言語的仕様は好みの問題。
議論の余地無し。
以上。

5 :デフォルトの名無しさん:2009/02/20(金) 12:36:25
>>3 は別スレの >>979 に対して python ⇔ ruby 変換をしてコピペしたもの。
他人のレスを盗作するしかないぐらいに悔しくなった ruby 厨の仕業。
以前からpythonスレを荒しまくり、自分でrubyコミュニティーのアホさ加減を露呈している人間。
俺がrubyを使うのを止めて、python使いになるきっかけをになってくれた張本人でもある。

完全無視推奨。
以下、オリジナルのソース:

http://pc11.2ch.net/test/read.cgi/tech/1230821097/
| From: [979] デフォルトの名無しさん <sage>
| Date: 2009/02/17(火) 14:18:58
|
| つうかまじでruby厨うざい。
| ruby厨は全員首吊って死ねよ。
|
| python人口の方が多い。
| pythonの方がいろいろできる。
| 言語的仕様は好みの問題。
| 議論の余地無し。
| 以上。
|
| From: [985] デフォルトの名無しさん <sage>
| Date: 2009/02/17(火) 17:21:04
|
| 結局のところ>>979が穏便かつ正論だと言わざるを得ないな

6 :デフォルトの名無しさん:2009/02/20(金) 17:02:43
わざわざ改変レスで返すって事は
そのレスを読んで悔しかったって事なんだろうなw

7 :デフォルトの名無しさん:2009/02/20(金) 17:46:56
Python3.0って流行るの?

8 :デフォルトの名無しさん:2009/02/20(金) 17:48:11
流行るんじゃあない。
俺たちで、流行らすんだよぉ!

9 :デフォルトの名無しさん:2009/02/20(金) 20:03:41
だが断る

10 :デフォルトの名無しさん:2009/02/20(金) 20:06:03
PythonもRubyもPerlも
さくっと互換性なくすよな

11 :デフォルトの名無しさん:2009/02/20(金) 20:37:00
Pythonは2.5→2.6→3.0すればいいから他よりまし

12 :デフォルトの名無しさん:2009/02/20(金) 21:17:15
2.6 → 3.0の変換と移行ってどのくらい大変?
いや、どこが変換できないとかはいちおう調べたんだけど
実際どうなのかなと

13 :デフォルトの名無しさん:2009/02/20(金) 21:28:56
まったくの別の言語になってしまった。
Pythonとは言えない言語に変わってしまった。

14 :デフォルトの名無しさん:2009/02/21(土) 00:04:48
>>12
アクロバチックなコード書いてないなら、全部自動で変換される(できる)んじゃない?

15 :デフォルトの名無しさん:2009/02/21(土) 00:19:01
まず print "Hello" が使えなくなった。
print("Hello")と書かなければならない。
その関係でprint "Hello",len("Hello")の書き方もかわった。
print ("Hello",len("Hello"))と書かなければならない。
これはPython2系ではエラーになる書き方だったよね。
それからxrange()とrange()の統合。
旧range()がなくなってxrange()が新range()になった。
まぁそんな具合かな。あとよろ。

16 :デフォルトの名無しさん:2009/02/21(土) 01:33:53
こっちが本スレ?
http://pc11.2ch.net/test/read.cgi/tech/1234716330/


17 :デフォルトの名無しさん:2009/02/21(土) 02:05:28
いや、3.0の話題は完全にこっちにかかなければならなくなった。
あちらは2.x系のみ、話題に出してよい。
過去依存に付いては両方のスレにレスを付ける必要がある。

18 :デフォルトの名無しさん:2009/02/21(土) 02:11:06
3.0のdisutilsが2to3に対応してるので、
出来る限りブランチ作らないで済むような配慮はあるみたい。
勿論、それぞれのバージョンでのテストは必要になるけど。

3.0の紹介にあるような変更は自動変換で殆ど2to3で自動変換される。
でも、流石に全部とは言い切れない。細かいところは手作業による修正が必要。
特に面倒だと思った所は文字列周り(repr, encoding)かな。
大きな変更は不要なはずなので、テストさえしっかりと書いてれば(大前提)それほど大変な作業にはならない。

python2.6 -3警告オプションでも、2to3でも補足されない変更は python-porting(ML)にも幾つか挙がってる。
* file -> io.FileIO
* doctest内等での文字列の表現。 'foo' -> b'foo'
* os.path.walk
* etc...

後方互換を残し && 読みやすいコードを心掛けたいなら、多少工夫が必要なケースもあるけど、
リファクタリングする丁度良い機会にもなる。


# 3.0対応ライブラリ一覧 @pypi
ttp://pypi.python.org/pypi?:action=browse&c=533&show=all
他のプロジェクトでもtrackerやレポジトリのbranches覗いてみると、patchや3.0移植作業中のものが結構ある。

# djangoの3.0移植の過程のまとめ
ttp://wiki.python.org/moin/PortingDjangoTo3k

19 :デフォルトの名無しさん:2009/02/21(土) 10:15:02
>>15
式っていうなら昔からもこれからも式だろw

3.0で文から関数に変わったんだろ

20 :デフォルトの名無しさん:2009/02/21(土) 12:13:49
>>18
おお、こうしてまとめてみると移行プランがんばってるなー
なにより3k用ブランチを作らないようにするアプローチがありがたい

21 :デフォルトの名無しさん:2009/02/21(土) 12:47:40
>>4-5
ttp://www.atmarkit.co.jp/news/200902/13/wp.html
Pythonの方が多いと思ってたけど求人数ではPythonは15位にも入ってないんだな。
まあ国内の話だから世界的には分からないけど
求人上位から
Java
C
C++
PHP
C#
VisualBasic
Perl
JavaScript
COBOL
VisualBASIC.net
ruby
ActionScript
ASP.net
PL/SQL
VBA


すごいのみっけた
要求はすごいけどレベルは低そう・・・
ttps://www.netdepon.jp/b2c/app/j_search_d.action;jsessionid=3EA1DC5D9629508E19861A8BD0B85661?jobItemId=16062
雇用形態 1 .正社員
言 語 ■ C(必須) ■ Delphi(必須) ■ Javascript(必須) ■ JSP(必須)
■ pro*C(必須) ■ VB(必須) ■ XML(必須) ■ SQL(必須)
■ シェルスクリプト(必須) ■ PHP(必須) ■ COBOL(必須) ■ ASP(必須)
■ C#(必須) ■ PL/SQL(必須) ■ Java(必須) ■ C++(必須)
■ Perl(必須) ■ VC(必須) ■ VBA(必須)
ttp://www.oisys.co.jp

22 :デフォルトの名無しさん:2009/02/21(土) 12:58:41
Java C C++ PHP C# VisualBasic Perl JavaScript COBOL VisualBASIC.net ruby ActionScript ASP.net PL/SQL VBA python ranking
上記キーワードでググって検索結果を読み進めると、

Google エラー
申し訳ありません
... コンピュータ ウィルスやスパイウェア アプリケーションの自動リクエストと類似したクエリが送信されました。 ユーザーを保護するため、このリクエストをすぐに処理することはできません。
できるだけ早くアクセスを復旧しますので、しばらくしてからもう一度お試しください。
お使いのコンピュータやネットワークがウィルスの被害にあっていると思われる場合は、ウィルス チェッカーやスパイウェア削除ツールを実行して、システムからウィルスや不正ソフトウェアを駆除してください。
引き続きこのエラーが表示される場合は、Google の Cookie を削除してから、Google に再度アクセスすると問題が解決する場合があります。 ブラウザ固有の手順については、お使いのブラウザのオンライン サポート センターにお問い合わせください。
ネットワーク全体が影響を受けている場合は、Google ウェブ検索ヘルプ センターで詳細をご覧ください。
ご不便をおかけいたしますが、ご理解、ご対応のほどよろしくお願い申し上げます。

23 :デフォルトの名無しさん:2009/02/21(土) 13:18:26
python厨だが、このスレはさすがにいらねーだろ。。。

24 :デフォルトの名無しさん:2009/02/21(土) 15:40:25
Ruby厨が、Python3.0をいじくりまわして、重箱の隅をつつきまくるスレになりますので、
それまで少々お待ちください(^^)v

25 :デフォルトの名無しさん:2009/02/21(土) 15:51:36
>>21
なんでも出来ると何でもやらされるパターンですねわかります

26 :デフォルトの名無しさん:2009/02/21(土) 19:55:06
>>25
なんでも中途半端にやって身につかなさそうな感じするよね。

27 :デフォルトの名無しさん:2009/02/21(土) 23:10:46
今日はさむいね

28 :デフォルトの名無しさん:2009/02/21(土) 23:14:41
つttp://www.youtube.com/watch?v=y8SZnU5iG-4

29 :デフォルトの名無しさん:2009/02/21(土) 23:58:51
いきなりだが
python
流行らすこと さんせーい^^

30 :デフォルトの名無しさん:2009/02/22(日) 01:04:00
さむいね

31 :デフォルトの名無しさん:2009/02/22(日) 02:32:26
   o... rz

32 :デフォルトの名無しさん:2009/02/25(水) 00:25:14
CとかJavaScriptとかのコメントで /* ... */ というのがありますが、
文の途中でも abc = /* def; */ ghi; みたいに書けますね。
abc = # def # ghi
だとおかしくなっちゃうんですけど
こういうときはどうコメントすれば良いのでしょうか

33 :デフォルトの名無しさん:2009/02/25(水) 00:27:33
http://pc11.2ch.net/test/read.cgi/tech/1233686068/428

34 :デフォルトの名無しさん:2009/02/25(水) 01:09:44
>>32
マルチ乙

35 :デフォルトの名無しさん:2009/03/01(日) 12:58:19
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ  まピョーん☆

36 :デフォルトの名無しさん:2009/03/03(火) 11:59:05
>>32
笑えばいいと思うよ。

37 :デフォルトの名無しさん:2009/03/04(水) 23:31:43
>>32
同感。笑えばよい。

この場合の文法解釈としては、だね。
「行儀が悪い」=「頭が悪い」ということ。

見てくれる相手に何をしようとしているのか理解してもらえないのなら、

キチンと、正しいと思われるプログラムが「完成するまで」やり遂げること。


38 :デフォルトの名無しさん:2009/03/20(金) 14:53:28
さすがに実験台はないだろ

39 :デフォルトの名無しさん:2009/03/24(火) 11:55:56
ag

40 :デフォルトの名無しさん:2009/03/24(火) 12:07:09
********終了********

41 :デフォルトの名無しさん:2009/03/27(金) 11:19:17
開始

42 :デフォルトの名無しさん:2009/03/29(日) 15:00:19
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所


43 :デフォルトの名無しさん:2009/04/11(土) 20:22:19
がんばれ。Python3.0


44 :デフォルトの名無しさん:2009/04/16(木) 16:23:29
ほしゅ

45 :デフォルトの名無しさん:2009/05/10(日) 16:20:56
あるある

46 :デフォルトの名無しさん:2009/09/29(火) 09:32:40
.

47 :デフォルトの名無しさん:2009/10/06(火) 23:56:47
PythonはRubyよりもリファレンスがきちんと
まとまっていて良いね。

48 :デフォルトの名無しさん:2009/10/07(水) 00:07:00
Perlだってそうだろ

49 :デフォルトの名無しさん:2009/10/07(水) 01:22:38
perlはsourceが酷い

50 :デフォルトの名無しさん:2009/10/07(水) 01:26:46
Javaもリファレンスはしっかりしてる

51 :デフォルトの名無しさん:2009/10/07(水) 09:27:28
JavaはLLじゃないし

52 :デフォルトの名無しさん:2009/10/07(水) 13:40:25
Python始めたけど英語読めないからキツイ

53 :デフォルトの名無しさん:2009/10/07(水) 14:14:07
ゆとりはRubyでもやってろよ。

54 :デフォルトの名無しさん:2009/10/07(水) 18:46:35
>>52
ソースは日本語使えるしマニュアルも日本語があるだろ?

55 :デフォルトの名無しさん:2009/10/07(水) 19:20:09
ここはPython3.0のスレなので、日本語マニュアルは無いんじゃないのかな

56 :デフォルトの名無しさん:2009/10/09(金) 22:20:42
マニュアル一度も読んだことないんだけど、だめかな。
オライリーのほうが内容充実してない?

57 :デフォルトの名無しさん:2009/10/10(土) 01:36:55
99 デフォルトの名無しさん [sage] Date:2009/10/09(金) 02:19:29  ID: Be:
    >>93
    翻訳用のファイルを作ってコミットしておいた。
    http://code.google.com/p/diveintopython3-ja/

    暇人の方は↓のグループに参加申請してくれれば、↑のメンバーに追加します。
    http://groups.google.co.jp/group/diveintopython3-trans-ja

100 デフォルトの名無しさん [] Date:2009/10/09(金) 12:11:29  ID: Be:
    思ったほど大した量じゃないね
    これはいけるかも

101 デフォルトの名無しさん [sage] Date:2009/10/09(金) 12:24:03  ID: Be:
    >>99-100
    ここに移動した方がいい

    【実験台】 Python 3.0 のお勉強 Part 1 【非互換】
    http://pc12.2ch.net/test/read.cgi/tech/1235050215/

58 :デフォルトの名無しさん:2009/10/10(土) 09:34:01
>>57
>  暇人の方は↓のグループに参加申請してくれれば、↑のメンバーに追加します。
>    http://groups.google.co.jp/group/diveintopython3-trans-ja

暇人の方が世界中で一人しかいない件。

59 :デフォルトの名無しさん:2009/10/10(土) 10:56:51
処理中にStringの文字コードを気にしなくていいってのは大きなアドバンテージだと思うけどな
いろいろ変わりすぎなのは残念だけど

60 :デフォルトの名無しさん:2009/10/11(日) 00:00:24
Linuxのシステムで使われてるPythonはあと何年したら入れ替わるかなー

61 :デフォルトの名無しさん:2009/10/11(日) 00:08:02
@ 2系列 → 3系列
A Python → 他言語


62 :デフォルトの名無しさん:2009/10/11(日) 00:58:26
かなしー

63 :デフォルトの名無しさん:2009/10/11(日) 03:23:52
iconv を落としてきて入れようとした git clone ~ とか
やりはじめて何がどうしちまった、とそんな感覚を味わ(ry

64 :デフォルトの名無しさん:2009/10/11(日) 03:41:35
$ automake --version
automake (GNU automake) 1.10.2

1.11 じゃないと…ぐぬぬ

65 :デフォルトの名無しさん:2009/10/11(日) 17:58:43
http://www.manatlan.com/page/grun

折衷案。デコレータの使い方が上手だと思う

66 :デフォルトの名無しさん:2009/10/15(木) 18:35:12
http://www.jmuk.org/diary/index.php/2009/10/07/kindle-in-japan/

*stolen risk
*color display
*low price paperbook

i think that it's sold well in japan...

67 :デフォルトの名無しさん:2009/10/16(金) 09:45:50
早く3.x系対応のpy2exeが出て欲しいものだ

68 :デフォルトの名無しさん:2009/10/16(金) 11:27:59
py3exeになるのか?

69 :デフォルトの名無しさん:2009/10/16(金) 12:53:54
>>68
Python To exe > Python 2 exe > py2exe
だからたぶんそのまま

70 :デフォルトの名無しさん:2009/10/16(金) 13:13:57
まぎらわしいから py32exe で

71 :デフォルトの名無しさん:2009/10/16(金) 14:48:29
今時32はないだろ。py64exeで

72 :デフォルトの名無しさん:2009/10/19(月) 17:58:12
>>57
下のリンクが切れてるんだが、参加するにはどうしたらいいの?

73 :デフォルトの名無しさん:2009/10/19(月) 18:03:05
にっちゃんねるでまーけってぃんぐをしようとして失敗した数限りない例のうちの一つ。

74 :デフォルトの名無しさん:2009/10/19(月) 22:17:26
>>72
すみません。誰も参加しないだろうと思ってグループを消してました。

こちらへどうぞ。
http://groups.google.co.jp/group/diveintopython3-japanese

75 :デフォルトの名無しさん:2009/10/19(月) 23:44:25
>>74
どのように進んでるかが良く分からんので、おまけのPorting Code to Python 3 with 2to3から手をつけます。

76 :デフォルトの名無しさん:2009/10/24(土) 12:45:16
http://pcod.no-ip.org/yats/search?query=cmake&lang=ja
http://gnuwin32.sourceforge.net/packages/libintl.htm
http://stackoverflow.com/questions/600274/alternatives-to-autoconf-autotools
http://d.hatena.ne.jp/niitsuma/20080311/1205244052
http://svn.python.org/view/python/trunk/Modules/itertoolsmodule.c

cmake, waf, make, autoconf&automake がいいのか
ccgcc がいいのか pythonce はどうなったとか rubyce は(略

77 :デフォルトの名無しさん:2009/11/09(月) 10:06:51
Fedora 13で2, 3並列インストールになるようだ。EL6でテクニカルプレビューとして入るかもね。

78 :デフォルトの名無しさん:2009/11/21(土) 03:23:14
cgi.FieldStorage のコンストラクタの引数の fp って使えてる?
BaseHTTPRequestHandler で受け取った post のデータを渡したら byte に str の操作しようとしたって言われて落ちちゃうわ
こんな場合どうしたらいいのよ

79 :デフォルトの名無しさん:2009/11/21(土) 03:38:57
multipart/form-data も application/x-www-form-urlencoded もどっちも同じ理由で使えないっぽい

80 :デフォルトの名無しさん:2009/11/21(土) 13:50:14
print "Hello world!"
が動かなかったので止めました。以上

81 :デフォルトの名無しさん:2009/11/21(土) 15:30:34
やめて正解。
本当におめでとう。
おめでとうおめでとう。

82 :デフォルトの名無しさん:2009/11/21(土) 15:35:54
みんなで使わなければ恐くない

83 :デフォルトの名無しさん:2009/11/21(土) 16:10:20
パチンコ店 ATM8000台 IIJ社 今後4、5年で全国に
http://www.jcp.or.jp/akahata/aik09/2009-11-14/2009111401_04_1.html
2chとパチンコ屋が無くなれば日本の景気は上向くかもな

84 :デフォルトの名無しさん:2009/11/21(土) 16:45:17
>>81
止めてよかった。
本当にありがとう。
ありがとうありがとう。

85 :デフォルトの名無しさん:2009/11/21(土) 16:55:34
>>60
数年後
more-on-ubuntu@laptop:~$ python\t
python python2 python2.6 python3

デフォルトが3系列になったらどうしよう.....(´・ω・`)

86 :>>78-79:2009/11/21(土) 17:02:58
お勉強スレなのに誰も使ってないとか悲惨すぎる

87 :デフォルトの名無しさん:2009/11/21(土) 17:25:28
ubuntuだとやりかねないから困る。

でもまぁ普段から、OSはOS、アプリはアプリだと思って
OSが使ってるものは別にインストールしてるから大丈夫だけど。


88 :デフォルトの名無しさん:2009/11/21(土) 17:30:02
SymPyが使えないよ〜。
2to3つかってもなんか動かんし。

89 :デフォルトの名無しさん:2009/11/27(金) 01:45:55
printはprint文じゃなくて、関数になってるっていうマジレスしてみる

90 :デフォルトの名無しさん:2009/11/27(金) 01:57:32
何で関数にしちゃったんだろうな

91 :デフォルトの名無しさん:2009/11/27(金) 05:47:35
言語としての正しさを追求しても使いやすくなるとは限らんのにな。

92 :デフォルトの名無しさん:2009/11/27(金) 08:35:39
Rubyの悪口はよせよ

93 :デフォルトの名無しさん:2009/11/27(金) 12:37:34
print文で出力ストリームを切り替えたり、末尾文字を入れないようにしたりするのに独特の文法が
必要だったり、区切り文字を指定できなかった。
関数になって、普通の関数の文法で全部できるようになった。
良い事づくめじゃないか。

94 :デフォルトの名無しさん:2009/11/27(金) 12:41:01
従来風の print みたいな機能は ipython レベルで
入れてくれれば十分って感じかなぁ

まあ別に print() でいいけどさ

95 :デフォルトの名無しさん:2009/11/27(金) 16:17:56
関数が必要なケースでは sys.stdout.write() で良かったんじゃね?

96 :デフォルトの名無しさん:2009/11/27(金) 16:28:10
writeとprintは違うから・・・
a = 3
sys.stdout.write(a) ってできない。

97 :デフォルトの名無しさん:2009/11/27(金) 16:51:15
でも今までも sys.stdout.write() って書いてたなー

98 :デフォルトの名無しさん:2009/12/05(土) 00:22:46
numpyは対応する気ないの?

99 :デフォルトの名無しさん:2009/12/09(水) 23:19:01
python3でcgi作るのは文字コード関連で苦労しそうな気がした

100 :デフォルトの名無しさん:2009/12/16(水) 21:06:16
「Python 3 プログラミング徹底入門」発売されてるよー
まだ初めてのPython第3版読んでねーから、オレはパスだけど

101 :デフォルトの名無しさん:2009/12/16(水) 21:14:14
Python本にありがちなしょぼい内容なんだろうな

102 :デフォルトの名無しさん:2009/12/16(水) 22:50:49
ぶっちゃけ文法と思想のお勉強本はもう飽きたお……

103 :デフォルトの名無しさん:2009/12/17(木) 07:20:06
http://www.mobypicture.com/user/ats/view/5751167 — あまり悪いことはいいたくないんだけど、ピクルスはないわ...orz...。ドキュメント翻訳ちゃんと見てくれ。。。


104 :デフォルトの名無しさん:2009/12/17(木) 13:19:40
本人乙

105 :デフォルトの名無しさん:2009/12/17(木) 14:13:13
>>103>>100の本なの?

106 :デフォルトの名無しさん:2009/12/18(金) 08:01:52
僕のピクルスもロードされそうです...

107 :デフォルトの名無しさん:2009/12/22(火) 11:44:47
みんなの力をオラに貸してくれ!
Python3.0に乗り換えたら、Tkinterパッケージの位置が変わったみたいで、
GUIの部分が作れねぇ!
調べても、出てくるのは2.x系統のサンプルコードばかり。
だれか、Python3.0で、ボタンを押してイベントが発生するTkinterのコード
を、ここに書いていただけませんか!?

108 :デフォルトの名無しさん:2009/12/22(火) 13:35:31
import tkinter as Tkinter

109 :デフォルトの名無しさん:2009/12/22(火) 14:06:49
>>108
import tkinter as Tkinter
from Tkinter import *
で、
File "C:\Users\ootuka\Desktop\search\tktest.py", line 2, in <module>
from Tkinter import *
ImportError: No module named Tkinter
でした。困ります(´・ω・`)

110 :デフォルトの名無しさん:2009/12/22(火) 14:17:40
オオツカさんよゼロから勉強し直せや

111 :デフォルトの名無しさん:2009/12/22(火) 15:04:50
>>109
1行目はTkinterとしてtkinterをimportしろという意味だ。
from使うならtkinterからimportしろ。
ドキュメントくらい読め。
http://docs.python.org/dev/3.0/library/tkinter.html

112 :オオツカ:2009/12/22(火) 20:39:44
できました\(^o^)/
神様ありがとう!!

113 :デフォルトの名無しさん:2009/12/25(金) 20:39:10
圧倒的なセンスの無さを垣間見た

114 :デフォルトの名無しさん:2010/01/11(月) 15:05:45
3.0への移行は、新しもの好き以外は時期尚早とみていいのか?
そろそろ移行時期か?

115 :デフォルトの名無しさん:2010/01/11(月) 16:07:58
今は移行するな時期が早い

116 :デフォルトの名無しさん:2010/01/11(月) 21:26:02
日本人はイカレてるよ。あいつら未来に生きてんな

117 :デフォルトの名無しさん:2010/01/12(火) 20:12:58
両方やって好きな方を取ればいいのでは…?

118 :デフォルトの名無しさん:2010/02/17(水) 02:20:20
いまPython始めるべき?
やるとするとPython3になるけど。

119 :デフォルトの名無しさん:2010/02/17(水) 02:56:10
3しか念頭にないならやめといた方がいい。
いまPythonをはじめるなら2.6にすべき。

120 :デフォルトの名無しさん:2010/02/17(水) 22:27:53
別にただプログラムのお勉強がしたいなら3でもいいんじゃね

121 :デフォルトの名無しさん:2010/02/17(水) 23:01:10
プログラムの勉強ったってPythonの勉強を兼ねるんだろからな。
Pythonの勉強となるとサイトのサンプルプログラムとか
既存ライブラリ使ってみようとかあれこれやりたくなるでしょ。

そしてつまづいて「Pythonむずかしー」あるいは「Python糞だな」
ってなるでしょ。2.6ならそうならないでしょ。そういうことだよ。

122 :デフォルトの名無しさん:2010/02/18(木) 00:06:04
2.6でもなる奴はなるけどな!

123 :デフォルトの名無しさん:2010/02/18(木) 00:20:00
>>122
程度問題の話をしてるんだから
そういうコメントは野暮というもの

124 :デフォルトの名無しさん:2010/02/18(木) 00:40:49
122はかわいそうなお莫迦さん。

125 :デフォルトの名無しさん:2010/02/18(木) 18:44:43
最新ビジネスソフト入荷!
激安販売中!
  http://wwttww.hostrator.com

126 :デフォルトの名無しさん:2010/02/18(木) 22:59:29
2.6と3ってそんなに違うのか。


127 :デフォルトの名無しさん:2010/02/18(木) 23:16:26
>2.6ならそうならないでしょ。

どこが程度の話だよw

128 :デフォルトの名無しさん:2010/02/18(木) 23:22:14
122はかわいそうなお莫迦さん。

129 :デフォルトの名無しさん:2010/02/19(金) 00:48:20
うん、どう読んでも程度の話だな。

130 :デフォルトの名無しさん:2010/02/19(金) 17:41:59
3だけなのか知らないけど、Windowsでリダイレクトからの標準入力が欲しくて、
for line in sys.stdin:
 pass
と書いたのだけれど、普通に実行したときは問題ないのに、
hoge.rb < file.txt
と実行したら、sys.stdinがNoneになってるんだよね。
標準入力を読み込むにはどうしたらいいの?

131 :デフォルトの名無しさん:2010/02/19(金) 19:19:57
>>130
rbかよ!
python hoge.py < file.txt
ってしてみ?

132 :デフォルトの名無しさん:2010/02/19(金) 20:15:24
>>131
> rbかよ!
すまない。ついうっかり癖で、、、

ちゃんと標準入力読めました。ありがとう。

133 :デフォルトの名無しさん:2010/02/19(金) 20:18:55
なんで
hoge.py < file.txt
で読めないのかな
バグ?

134 :デフォルトの名無しさん:2010/02/19(金) 21:04:57
>>133
Windowsの有名なバグ。
なんか当てたら直ったと思う。
Vista以降だとなんも当てなくても直ってたかもしれない。

135 :デフォルトの名無しさん:2010/02/19(金) 21:11:39
これだな

STDIN/STDOUT リダイレクトは、ファイルの関連付けから起動すると動作しないことがある
http://support.microsoft.com/?scid=kb%3Bja%3B321788&x=21&y=13

136 :デフォルトの名無しさん:2010/02/26(金) 12:24:12
Python3kの教えやすさは異常。

DjangoもGAEもいつかは3kがメインになるのかなぁ

137 :デフォルトの名無しさん:2010/02/26(金) 13:07:31
>>136
そうだよね。Python2のUnicodeはエッジケースが多すぎて、初心者じゃなくても
切り傷だらけになる。初心者なら脱落してもおかしくない。

print u"あいうえお" はできるのに raw_input(u"あいうえお") ができないとか、
os.listdir(u'.') しても filesystemencoding でデコードできないファイル名は
バイト列としてリストに入るとか。

138 :デフォルトの名無しさん:2010/02/26(金) 14:54:40
# Python 2.6.4
>>> os.listdir('.')
['a', '\xff']
>>> os.listdir(u'.')
[u'a', '\xff']

# Python3.1.1
>>> os.listdir('.')
['a', '\udcff']
>>> os.listdir(b'.')
[b'a', b'\xff']

U+DCxx に置換されるんだね(PEP383)

139 :デフォルトの名無しさん:2010/02/27(土) 01:29:01
は?

140 :デフォルトの名無しさん:2010/02/28(日) 18:37:24
Python3.xで俺が期待したこと

ライブラリの命名規則を統一してほしかった...orz

classmethod, assertEqual, set_autholizer

orzorzorz

141 :デフォルトの名無しさん:2010/02/28(日) 22:46:10
標準に関してはしたと思ってたのだが……

142 :140:2010/03/01(月) 00:51:30
Rubyがここら辺が完璧なだけに痛い。
2.x -> 3.xのタイミングでしかできないような変更だからまじで悲しい。

欧米人はあんまり気にしないのだろうか?

143 :デフォルトの名無しさん:2010/03/01(月) 01:23:19
非標準なライブラリ使えばすぐに汚染される程度だからな
だんだん慣れて来たしもうどうにでもなーれ

144 :デフォルトの名無しさん:2010/03/03(水) 01:13:20
コーディング規則で一応決まっていたりしないの?

145 :デフォルトの名無しさん:2010/03/09(火) 22:48:42
過疎ってるな。

>>144
これから書くなら、できるだけ区切らないorアンダースコア使えってPEPに書いてあった。

Javaとかから持ってきたライブラリだとhasKeyみたいに、大文字区切りになってる。

146 :デフォルトの名無しさん:2010/03/09(火) 23:06:57
命名規則を標準でがっちり決めてくれれば、それをエディタの機能強化に回せるんだろうけどな。
標準から外れるとエディタ支援を受けれなくなるから、みんな同じような書き方になって見やすくなるはず。

147 :デフォルトの名無しさん:2010/03/20(土) 00:09:04
http://www.nomadjourney.com/2009/08/windows-7-64-bit-python-and-easy_install/
http://groups.google.co.jp/group/modwsgi/browse_thread/thread/213a778dff791a98
http://gasser.blog114.fc2.com/blog-entry-391.html
http://ozsys.cocolog-nifty.com/blog/2010/03/pythonpyserial-.html
http://twistedmatrix.com/trac/ticket/3352

本体は大丈夫かもしれないけど
インストーラでコケルとか周辺ソフトとの連携とかでコケルいう
事例は、しばらく続くのだろうなぁ…

148 :デフォルトの名無しさん:2010/04/05(月) 04:03:46
一体いつになったら主流になるのか・・・

149 :デフォルトの名無しさん:2010/04/05(月) 15:53:11
まだ2.7も出てないし
少なくともまだ1年はかかると思う

150 :デフォルトの名無しさん:2010/04/05(月) 16:34:01
2.5,2.6とか出さないほうが良かったのかな。
地デジと同じでズルズル先延ばしで、移行期間があっても移行しない。

151 :デフォルトの名無しさん:2010/04/05(月) 16:36:54
2.4 は糞だから 2.5 出したのは正解だと思う
2.6 は微妙

152 :デフォルトの名無しさん:2010/04/05(月) 19:05:54
3.xの日本語リファレンスが欲しいのに入門書ばっかだ

153 :デフォルトの名無しさん:2010/04/16(金) 22:23:19
日本語の解説サイト教えろよゴミども

154 :デフォルトの名無しさん:2010/04/16(金) 23:15:45
ほれ
http://diveintopython3-ja.rdy.jp/index.html

155 :デフォルトの名無しさん:2010/04/17(土) 18:32:09
もっと簡単なの出せよ
無能かよ

156 :デフォルトの名無しさん:2010/04/18(日) 00:34:25
>>155
これで分からなかったら、何見ても分からん。

157 :デフォルトの名無しさん:2010/04/18(日) 02:37:21
いやいや、そういう意味じゃなくて。
ほれ、
http://www.python.jp/Zope/download/pythoncore
これだろ。
そのものだけど。

158 :デフォルトの名無しさん:2010/05/01(土) 13:56:25
Rubyでいうところのredoが欲しんだけどないかな。
while True: のループで代用しないとだめですかね。

159 :デフォルトの名無しさん:2010/05/03(月) 01:13:26
任意の数より大きい数を表す定数みたいなのない?

なにかの最小値を求めるときに下のような処理はよくあるとおもうんだけどminvの初期値に設定したいんだ。

minv = すごくでかい数
for x in seq:
 v = func(x)
 if v < minv:
  minv = v

min(func(x) for x in seq) で常にかければいいんだけど、書けないこともよくあるので。

160 :デフォルトの名無しさん:2010/05/03(月) 01:35:57
sys.maxint
とかなかったっけ?

161 :デフォルトの名無しさん:2010/05/03(月) 02:41:24
float("inf") ?

162 :デフォルトの名無しさん:2010/05/03(月) 02:49:42
>>160
3では削除されたし、2でも多倍長整数の最大値はないよ。
大抵の場合はそれで十分だと思うし、なくても
HUGE_VAL = 2**31
とでもしとけば、大抵の用途では十分だと思うけど。

>>159
型が重要でないなら、
float('inf')
で、不動点小数型の無限大が得られる。

float('inf') > 2**10000000
---> True

整数型であることが重要なら、クラス継承して比較演算子を書き換えるか。

163 :デフォルトの名無しさん:2010/05/03(月) 09:31:38
Python3ってもう使っても大丈夫?


164 :デフォルトの名無しさん:2010/05/03(月) 10:37:04
>>163
使いたいライブラリが対応してるなら。

165 :デフォルトの名無しさん:2010/05/03(月) 11:33:32
>>164
Python2の標準ライブラリー相当品は3でもOKなんだよね?
その他の3rdPartyライブラリーは殆ど使わないんだ

166 :デフォルトの名無しさん:2010/05/03(月) 12:23:41
>>165
基本的にはそうだけど、いくつかは廃止・統合されてるから標準については公式行って確認するといいよ。
サードパーティーの使わないなら、対応状況はかなりいいはず。

167 :デフォルトの名無しさん:2010/05/03(月) 12:37:49
>>159
minv = func(seq[0])

168 :デフォルトの名無しさん:2010/05/03(月) 12:47:21
>>166
ありがとう!
ちょっとやる気が出た

169 :デフォルトの名無しさん:2010/05/03(月) 14:01:21
>>167
それ、seqがコピーしづらいイテレータだったとき面倒にならない?

170 :デフォルトの名無しさん:2010/05/03(月) 15:12:44
for i, x in enumerate(seq):
  v = func(x)
  if i == 0:
    minv = v
  elif v < minv:
    minv = v

171 :デフォルトの名無しさん:2010/05/03(月) 15:14:05
なんか違和感あるなw

こっちのが分かりやすいか

for i, x in enumerate(seq):
  v = func(x)
  if i == 0 or v < minv:
    minv = v


172 :デフォルトの名無しさん:2010/05/09(日) 18:01:53
Keep it simple, stupid!

173 :デフォルトの名無しさん:2010/05/09(日) 21:38:50
python3でグラフ書くのに何使ってる?
やっぱりgnuか?

174 :デフォルトの名無しさん:2010/05/10(月) 15:17:24
python2.xでmatplotlib

175 :デフォルトの名無しさん:2010/05/12(水) 00:07:01
3.xのライブラリが2.x並になるのって、あと何年かかるんだろうか

176 :デフォルトの名無しさん:2010/05/12(水) 23:35:01
googleで対応してほしい

177 :デフォルトの名無しさん:2010/05/15(土) 01:12:03
最近python関係の書籍が色々と出てるね。
python2.6.2って・・・。

178 :デフォルトの名無しさん:2010/05/15(土) 13:04:59
う、うん……(´・ω・`)

179 :デフォルトの名無しさん:2010/05/18(火) 09:44:30
なんで俺たち3.xなんか始めちゃったんだろう……

180 :デフォルトの名無しさん:2010/05/19(水) 01:30:56
しかし今更後戻りなど…

181 :デフォルトの名無しさん:2010/05/19(水) 01:37:20
>>171
のプログラムみたら、
やりたいことは値の設定なのであって、複文を実行することじゃないから、
minv = func(x) if i == 0 or func(x) < minv else minv
って書きたいけど、中でfunc(x)が2回出てるから、func(x)がすっごい重い処理だと
性能悪いなー

って思うのは正しい?
func(x)の値は内部的に保持され、2度実行されないよう最適化してくれるのかな?

182 :デフォルトの名無しさん:2010/05/19(水) 02:40:26
そんな最適化してくれるコンパイラはCでもないと思うぞ

183 :デフォルトの名無しさん:2010/05/19(水) 06:55:06
どうもスクリプト言語は互換性を一度ぶった切りたくなるものみたいだなぁ
Rubyは一見その点では有利そうなんだが、実際にはバージョン間の互換性がさっぱりで、
単に同じこと(過去の微妙な仕様の切り捨て)を小分けに毎回やってるようなもんだから
ある意味余計に悪いし
まぁでも、俺は当分3kは使わないけど、いずれ移行するような気はするけどな

184 :デフォルトの名無しさん:2010/05/19(水) 08:21:19
いつまでも保守的ではいられないのさ

185 :デフォルトの名無しさん:2010/05/19(水) 10:10:03
CやC++も最初のころは仕様がコロコロ変わっていたような覚えがあるのだが

186 :デフォルトの名無しさん:2010/05/19(水) 11:17:13
いまでもコロコロ変わってますが

187 :デフォルトの名無しさん:2010/05/19(水) 15:28:45
せめてnumpyがないと移行できないなー


188 :181:2010/05/20(木) 00:49:13
>>182
やぱCでもgcc:O2でもfuncの中身までは解析しなかった
変数の出現が関数外ではありえない、みたいな
extern宣言が出来ると、イケチャウ雰囲気あるんだけどな〜
動的スコープだとほんと無理なのかな

誰か天才いないかーーーー

189 :デフォルトの名無しさん:2010/05/20(木) 06:04:42
>>181
else のときは
minv = minv
になるから
アホなコードだなぁ
と思う

190 :デフォルトの名無しさん:2010/05/20(木) 13:53:03
>>181
こういうコードはダメ。Ruby厨に惑わされるな。

191 :デフォルトの名無しさん:2010/05/20(木) 15:27:14
>>159
> min(func(x) for x in seq) で常にかければいいんだけど、
> 書けないこともよくあるので。
これってどんなとき?

192 :デフォルトの名無しさん:2010/05/20(木) 18:17:37
>>159
reduce使え
min(seq)は
reduce(min, seq)と同じ

その手のやつは大概適当なfを用意してやれば
reduce(f, seq)
に書き換えられる

193 :デフォルトの名無しさん:2010/05/20(木) 18:19:04
ストリームデータから最小値を見つけるとか。
ファイルシステムを捜査しながら最大サイズのファイルを見つけるとか。
かな

194 :デフォルトの名無しさん:2010/05/20(木) 18:21:20
>>193
それminで何でだめなんだ?
min()はiterable受け取れるけど

195 :デフォルトの名無しさん:2010/05/20(木) 21:12:50
うーむ

196 :デフォルトの名無しさん:2010/05/20(木) 22:55:28
>>189 >>190
俺も同意だと思ったけど、内部的にはmin関数もまったく同じなんだよね。
趣味の問題かな?

197 :デフォルトの名無しさん:2010/05/21(金) 08:11:23
初心者のお試しレベルなら問題ない
パフォーマンス考えたら避けるべき

198 :デフォルトの名無しさん:2010/05/21(金) 10:58:04
関数型言語ならletする場面だから、
Pythonでは潔く2行にするのが良いんじゃないの

199 :デフォルトの名無しさん:2010/05/23(日) 11:35:37
unko

200 :デフォルトの名無しさん:2010/05/23(日) 14:44:46
>>140
パイソンってこういうコーディングルール統一されてると勝手に思ってたけど、汚いんだな

統一されてないのは書いてて気になるし、推測でメソッド名書けなくなるから、やっぱりそういうところちゃんとしてるルビーのほうが良さそうか

理路整然としてるイメージを勝手に持ってたけど、rubyのほうがそゆとこしっかりしてんのかな

201 :デフォルトの名無しさん:2010/05/23(日) 15:12:39
ああ、Ruby最高だよ

202 :デフォルトの名無しさん:2010/05/23(日) 15:36:16
>>200
classmethod みたいな、1つの単語と呼べるものは、アンダースコアで区切らない。
set_autholizer みたいな、複数の語でなる句は、アンダースコアで区切る。
JUnit みたいに、別のリファレンスに従う設計になっているライブラリは、そのリファレンスの命名に従う。

理路整然としてるけど?

203 :デフォルトの名無しさん:2010/05/23(日) 17:27:52
なるへそ

204 :デフォルトの名無しさん:2010/06/02(水) 21:48:16
なんかpython3始めたいのにまともな書籍が売ってない。
いつになったら普及するのよ。

205 :デフォルトの名無しさん:2010/06/02(水) 21:49:45
java-jaの人が執筆したJython本で我慢しろよ

206 :デフォルトの名無しさん:2010/06/03(木) 03:44:37
>>205
本スレにカエレ

>>204
もうちょっとかかりそうだな。
このスレでも何度か出てきてるDive into Python3は、英語版なら書籍でも出てる。
書籍の形で欲しいのなら適さないけど、内容的に書籍レベルのものが欲しいのならWebの日本語訳がいいと思う。
ttp://diveintopython3-ja.rdy.jp/index.html

207 :デフォルトの名無しさん:2010/06/03(木) 13:11:07
http://www.amazon.co.jp/dp/4873114489

208 :デフォルトの名無しさん:2010/06/05(土) 05:47:05
>>207
2.5じゃねーかハゲ

209 :デフォルトの名無しさん:2010/06/05(土) 17:10:52
>>202
> 理路整然としてるけど?

で、結果としてばらばらのネーミングルールになってると。

馬鹿か。

210 :デフォルトの名無しさん:2010/06/05(土) 20:50:51
>>209
馬鹿はお前だ

211 :デフォルトの名無しさん:2010/06/05(土) 21:16:35
まあ、馬鹿は言い過ぎと思うが、>>202 の理由が正しいとしても結果として
統一されてないのは事実だし、おれも >>200 のようにいまいち汚いと思う。

212 :デフォルトの名無しさん:2010/06/09(水) 05:54:43
べき集合をスマートな一行で書く方法ないかね

213 :デフォルトの名無しさん:2010/06/10(木) 00:42:28
>>212
1行じゃないけどこんなの見つけた
http://mail.python.org/pipermail/tutor/2004-April/029413.html

214 :デフォルトの名無しさん:2010/06/10(木) 01:15:00
ttp://docs.python.org/py3k/library/itertools.html
レシピのpowerset

215 :デフォルトの名無しさん:2010/06/10(木) 01:47:42
できたと思ったらまともなのが出てた。
t = set(range(3))
(lambda st: (lambda ls: set(frozenset(ls[j] for j in range(len(st)) if (i >> j) & 1) for i in range(2**len(st))))(list(st)))(t)

# ==>set([frozenset([0]), frozenset([1, 2]), frozenset([]), frozenset([0, 2]), frozenset([1]), frozenset([0, 1, 2]),
# frozenset([2]), frozenset([0, 1])])

216 :デフォルトの名無しさん:2010/06/10(木) 15:37:58
今年出たpaython本が2.6対応なのにはワラタ。

217 :デフォルトの名無しさん:2010/06/10(木) 16:47:12
>>216
Python3の本もたくさん出はじめてるよ。
どの本がPython3用になって欲しかった?

218 :デフォルトの名無しさん:2010/06/18(金) 09:59:07
ぶっちゃけ入門レベルで、2.6も3.0もたいした違いはないし、
もっと他に気を掛けることがあるだろうに。

219 :デフォルトの名無しさん:2010/06/18(金) 14:14:05
なにごとも初心者は、自分の進め方が正しいかどうかで迷ってしまうからねぇ。

220 :デフォルトの名無しさん:2010/06/18(金) 14:29:00
そういえば、Pythonスタートブックっていう書籍が出たけど、
あの手の書籍は最新python3で出して欲しかったな。
初心者向けみたいだし、プログラミング入門者でも分かりやすい内容だったから。
仕事で使うのではなく、ただなんとなくPython始めたいような人は
最新環境で学ぶべきだと思うよ。
俺らが3の仕様変更を知らされたときに受けた失望感を
初心者にまで与えるのはあまりにも酷だろ。

それでも2.Xが優勢だということは、
おそらく3は当分普及しないってことだろうね。
たぶん日本ではGoogleのGo言語のほうがpython3よりも先に普及すると思う。
どうしてこうなった。


221 :デフォルトの名無しさん:2010/06/18(金) 20:18:39
>どうしてこうなった
encode/decodeのせい
python3に期待

222 :デフォルトの名無しさん:2010/06/18(金) 20:22:05
>>220
日本でGoが普及するか?まだC#の方がありうると思うぜ。
それ以前にGoとPythonの守備範囲も若干違う気がするし…

223 :デフォルトの名無しさん:2010/06/19(土) 13:45:04
あるうるも何も、C#はとっくに普及しとるがな
特に国内ではPerlやPHPならともかく、Pythonとは比較にもならんだろ

224 :デフォルトの名無しさん:2010/06/19(土) 18:25:04
>>223
そんなに普及してんの? Pythonと似たり寄ったりだと思ってた。
LLスレにでも移動して語ってくれ。

225 :デフォルトの名無しさん:2010/06/19(土) 18:37:33
ttp://www.atmarkit.co.jp/news/200902/13/wp.html
ワークポートとかいう会社の調べ
C#の求人件数は5位
ちなみにPythonは圏外ね

226 :デフォルトの名無しさん:2010/06/19(土) 19:34:21
日本の不幸はRubyっつーガラパゴス言語が作者が日本人だってだけで国内で(ry

227 :デフォルトの名無しさん:2010/06/19(土) 23:12:50
ガラパゴスではないだろ

228 :デフォルトの名無しさん:2010/06/19(土) 23:30:07
つーか国内で別にそんなにRuby使われてないだろ
Pythonがそれ以上に使われてないだけで

229 :デフォルトの名無しさん:2010/06/21(月) 14:11:10
コアの開発に関する議論が日本語で行われていて世界からはブラックボックスに見えるという
時点で、ある程度のガラパゴス性をもってるよね>Ruby

230 :デフォルトの名無しさん:2010/06/21(月) 14:26:26
ruby-coreの開発に関する議論は英語だが?

231 :デフォルトの名無しさん:2010/06/21(月) 14:51:35
>>230
そうなん?スマン。
MLでオープンな議論もするけれど、重要なことはMatzを中心とする一部の日本人が
エイヤで決めるってどっかのインタビューで答えてたと思ったから。

232 :デフォルトの名無しさん:2010/06/22(火) 00:28:53
Pythonの話しろ!

233 :デフォルトの名無しさん:2010/06/22(火) 00:39:20
pythonから発展した話題だし、少しくらいいいんじゃね?
ところで、お前らpythonなにに使ってる?

234 :デフォルトの名無しさん:2010/06/22(火) 01:30:20
>>233
電卓代わり、CGI、C/C++で書くほどじゃないプログラム全般。
まともに使い方知ってる言語がC/C++とPythonしかないから、ある意味で楽。

235 :デフォルトの名無しさん:2010/06/22(火) 02:25:43
>>233
spamメールのフィルタ

236 :デフォルトの名無しさん:2010/06/22(火) 02:34:24
>>233
領土問題と同じで、少しくらいと譲歩してたら乗っ取られる。

237 :デフォルトの名無しさん:2010/06/24(木) 21:36:26
領民あっての領土だから大丈夫

238 :デフォルトの名無しさん:2010/06/26(土) 08:50:39
pythonだと作るのが非常に楽なので、python常用して
python2だと日本語が扱いづらいので、python3導入して
研究で最適化アルゴリズムとか強化学習のプログラム作ったけど
先輩のc言語で書かれた同じ最適化アルゴリズムで作った巡回セールスマン問題と
実行速度比較したら、10倍以上差があるんだが・・・先輩のが数分で、自分のが数時間
読みやすさ重視でプログラム書いたからループ内で不要な処理とかかなりしてる気もする
python3のコンパイラないかな


239 :デフォルトの名無しさん:2010/06/26(土) 08:57:15
python3にしか対応してない素晴らしいモジュールを作れば移行が早くなるかも!!

240 :デフォルトの名無しさん:2010/06/26(土) 11:11:07
>>238
あったとしても、多少マシになるくらいでCにはとてもかなわないと思うよ。
psycoって3.x対応してないよなぁ。

241 :デフォルトの名無しさん:2010/06/26(土) 11:29:12
10倍ですむならマシだな
ものによっては100倍ぐらい差がつく

242 :デフォルトの名無しさん:2010/06/26(土) 11:29:38
>>240
多少でもマシにしたいほど時間がかかる・・・
たしか対応してない

243 :デフォルトの名無しさん:2010/06/26(土) 11:30:34
先輩が数十分、自分のだと1日とかそんな感じ

244 :デフォルトの名無しさん:2010/06/26(土) 11:51:10
Python2 にもどして、 PyPy 使うと良いよ。
今日 PyPy-1.3 がリリースされたし。

245 :デフォルトの名無しさん:2010/06/26(土) 20:35:28
python3ってctypes使えますか?

246 :デフォルトの名無しさん:2010/06/26(土) 21:16:25
使える

247 :デフォルトの名無しさん:2010/06/26(土) 23:37:58
ctypesいじくり中。
pointerとbyrefってどう使い分けるんだ?
あとlistをそのまま配列としてcに渡したり出来ないのね。
内包表記でばーんと渡したりって訳にはいかないね。

248 :デフォルトの名無しさん:2010/06/26(土) 23:45:14
とりあえず全部PythonでつくってProfilerかけて時間のかかる処理だけSWIG+Cで書いてるけど
このオーソドックスな方法は素晴らしいっすよ

249 :デフォルトの名無しさん:2010/06/27(日) 02:10:57
Cythonも素晴らしいよ。
ちゃんとPython3にも対応してるし。

250 :デフォルトの名無しさん:2010/06/27(日) 15:23:06
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import datetime

def sample_loop(n):
L = []
for i in range(n):
L.append(i)
return L

def sample_comprehension(n):
return [i for i in range(n)]

d = datetime.datetime.today()
print (":",d.strftime("%Y-%m-%d %H:%M:%S") )

sample_comprehension(50000000)
d = datetime.datetime.today()
print (":",d.strftime("%Y-%m-%d %H:%M:%S") )

sample_loop(50000000)
d = datetime.datetime.today()
print (":",d.strftime("%Y-%m-%d %H:%M:%S") )

実行結果
2010-06-27 15:19:23
2010-06-27 15:19:46
2010-06-27 15:19:46

Python3だとリスト内包表現って遅いの?

251 :デフォルトの名無しさん:2010/06/27(日) 15:43:03
>>250
2.6でも3でもリスト内包の方が速い。
2.5以前は知らんが、たぶんリスト内包の方が速い。
http://dsas.blog.klab.org/archives/51742727.html

252 :デフォルトの名無しさん:2010/06/27(日) 15:50:16
こうしないと同じ条件にならないんじゃ?

def sample_comprehension(n):
    L = []
    return [L.append(i) for i in range(n)]

253 :デフォルトの名無しさん:2010/06/27(日) 20:15:46
CPythonって、リストの実装って配列だっけ?双方向リストだっけ?

>>250
sample_comprehensionとsample_loopの順番を入れ替えてみても結果変わらない?

32bit環境だと50000000要素だと、配列なら約200MB、双方向リストなら約600MBのメモリ確保が必要になって、
それに時間がかかったんじゃないかなぁ。
一旦確保したら、ひとつめのsample_comprehensionで作ったリストはGCの対象になるから、新たにメモリ確保の必要がない。
だから2つめのsample_loopは早かった、と予想してみる。

254 :デフォルトの名無しさん:2010/06/27(日) 20:45:54
>>252
適当なサイトのソースをコピペして実行しただけだから深く考えてなかった
それでやってみる
>>253
順番入れ替えても変わらなかった

255 :デフォルトの名無しさん:2010/06/27(日) 20:48:28
>>251
そうそうこのページのソースをコピペして実行した
人が居たから、かなり適当に書いた
だからtimeじゃなくdatetime使ってたり

256 :デフォルトの名無しさん:2010/06/27(日) 21:03:11
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import datetime

def sample_loop(n):
L = []
for i in range(n):
L.append(i)
return L
def sample_comprehension(n):
L = []
return [L.append(i) for i in range(n)]

d = datetime.datetime.today()
print (":",d.strftime("%Y-%m-%d %H:%M:%S") )

sample_comprehension(50000000)
d = datetime.datetime.today()
print (":",d.strftime("%Y-%m-%d %H:%M:%S") )

sample_loop(50000000)
d = datetime.datetime.today()
print (":",d.strftime("%Y-%m-%d %H:%M:%S") )

結果
2010-06-27 21:01:04
2010-06-27 21:02:11
2010-06-27 21:02:12

257 :デフォルトの名無しさん:2010/06/27(日) 21:30:30
>>252
正直その糞コードで何をしたいのか全然わかんねえ
list.append()はNoneを返すから
それって結果は
[ None ] * n
になるよな

258 :デフォルトの名無しさん:2010/06/27(日) 21:53:13
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import datetime

n = 50000000

d = datetime.datetime.today()
print ("for文リスト作成開始:",d.minute,"分",d.second,".",d.microsecond,"秒")
L = []
for i in range(n):
L.append(i)

d = datetime.datetime.today()
print ("リスト内包     :",d.minute,"分",d.second,".",d.microsecond,"秒")
L = []
L = [i for i in range(n)]

d = datetime.datetime.today()
print ("終了        :",d.minute,"分",d.second,".",d.microsecond,"秒")

for文リスト作成開始: 51 分 11 . 930000 秒
リスト内包     : 51 分 53 . 554000 秒
終了        : 52 分 9 . 919000 秒

259 :デフォルトの名無しさん:2010/06/27(日) 23:05:53
糞コード貼り禁止

260 :デフォルトの名無しさん:2010/06/28(月) 03:36:29
>>256
ほんとだ。すげー、ループはえー、と思ったらインデントを
def sample_loop(n):
    L = []
    for i in range(n):
        L.append(i)
        return L
にしてた(・ω・`)
2.5で動かしたからrange()がイテレータじゃなくてリスト返すおかげで数字的にリアルだった。

にしても、今時のCPU速いな。Pen4だとC++で同じような処理書いても2秒かかったぞ。
#include <vector>
#include <iostream>
class Range{
private:
int end;
int now;
public:
Range(int n) : end(n), now(0){}
int next(){return now == end ? -1 : now++;}
};
int main(){
Range range(50000000);
std::vector<int> l;
int i;

while((i = range.next()) != -1) l.push_back(i);
return 0;
}

261 :デフォルトの名無しさん:2010/06/28(月) 03:39:39
>>252
L.append自体をすることが目的ならそうだけど、
L.appendの副作用でリスト作るか内包表記でループ作るかどっちが速いかを調べたいなら元々のであってる

262 :デフォルトの名無しさん:2010/07/01(木) 06:54:38
Cyhonの使い方を勉強しよう
まだほとんど調べてないが、使い方がよくわからない
てかトイレ行きたくて集中出来ない

263 :デフォルトの名無しさん:2010/07/01(木) 12:02:02
先に下痢を治せ

264 :デフォルトの名無しさん:2010/07/07(水) 10:50:19
結局ある程度調べたつもりだが
cython全然わからんとです
超初心者スレで教えてもくれるかな

265 :デフォルトの名無しさん:2010/07/07(水) 22:45:35
Python3について調べてたらsuper()がキモくなってて吹いた。

http://lucumr.pocoo.org/2008/4/30/how-super-in-python3-works-and-why-its-retarded
↑にも書いてあるけど、関数定義中の__class__って何なん?第一引数をスタックフレームから取るっておいおい。

以下のクラス定義でFoo()foo()すると

class Foo:
 def foo(self):
  print(locals()) #=> {'self': <__main__.Foo object> at ...>} # __class__いません
class Foo:
 def foo(self):
  print(__class__) #=> <super: <class 'Foo'>, <Foo object>> # ちょww
_super = super
class Foo:
 def foo(self):
  _super() #=> エラー # ちょww

いくらなんでもこの挙動はキモすぎだろ。たかがsuper()のためだけに。
最後のとか原因わかったとしても、難すぎる。
全くPythonicじゃない。こんなJavaに媚びるような仕様。

266 :デフォルトの名無しさん:2010/07/08(木) 00:21:03
Guidoパパ曰く:
> This whole movement to condemn super because it's not "pure" strikes
> me as wasted energy. That's my last word.

267 :265:2010/07/08(木) 01:08:18
>>266
英語力不足で意味が掴みづらいんだけど、

super()への批判は聞き飽きた。もう知らん。by Guido

って感じ?なんかGuidoらしくないなあ。俺みたいに批判してる人は
なんで今までわざわざself書いてきたんだろう、って気持ちになるんだよ。

通常の関数定義には__class__は現れなくて、メソッド定義中では
それが現れるってええ?メソッドがただのclass内で定義された関数っていう
整合性のためにself書いてたんだよって。

もちろんそれ以外にもselfなければデコレータがこれ程強力に
使われることもなかっただろうし、他にも利点はあるから
selfは必要だけど、それでもselfが必要な重要な理由の一つ
が消えちゃったんだ。

268 :デフォルトの名無しさん:2010/07/08(木) 01:47:54
メソッドの最初の引数にself付けるのも__class__が導入されたのも何が嫌なのか全く分からん

269 :デフォルトの名無しさん:2010/07/08(木) 03:33:46
Ruby そんなに嫌なら自分で新しい言語作れば良いのに
Python 我慢して使えよ
PHP 祈りなさい
Perl シラネ

270 :デフォルトの名無しさん:2010/07/08(木) 07:23:15
>>268
うーん。selfがキモくないと思うなら(俺はキモくないと思う)、
__class__はキモいと思えるはず。

__class__導入によって、selfが2.xに比べてキモくなったって話。
たぶんキモいのは多くのPythonistaが認めてる。さっきのサイトの書き込みとか見てると。
でも、それでもDRYなコードを書けるようにしたかったんだと思う。

あと、__class__って属性の方の__class__じゃないよ。ローカル変数の__class__ね。
属性の方は別にキモくないよ。

271 :デフォルトの名無しさん:2010/07/08(木) 07:30:11
一応コードで説明する
def foo(self):
 pass
class Foo:
 def foo(self):
  pass
このとき、fooとFoo.fooが全く同じだったのが今までのPython。
Foo.fooはFoo名前空間の中にある「関数」に過ぎない。
Fooがインスタンス化されて、次みたいに呼び出される瞬間だけメソッドになるのが、
Pythonの実装方法
x = Foo()
x.foo # これはメソッドになる。(xが第一引数になる)

でも、Python3では、fooのローカルには存在しない変数__class__がFoo.fooの中に勝ってに
入ってる。

まあ、それだけの話だから、Pythonのオブジェクトシステムに興味ない人にとってはどうでも
いいかもね。俺はキモくてしかたないわ。

272 :デフォルトの名無しさん:2010/07/08(木) 22:36:37
>>270-271
ありがとう。意味が分かった。
確かにこれはキモい。

けど、キモくしてまで__class__を入れる理由ってあるの?

273 :デフォルトの名無しさん:2010/07/08(木) 23:03:11
無引数super()の実装に__class__が必要。
Pythonには自分を呼び出した元の関数のローカル変数を参照する機能が、
CレベルでもPythonレベルでもある。

__class__があれば、super()内から、クラスとselfが参照できるから、
そのクラスの__bases__からスーパークラスを参照してそれとselfを結びつけられる。

無引数super()が必要な理由は、DRYのためだけだと思う。確かにLLなのにDRYの点で
Javaなんかに負けるのは許されないことだったのかもしれない。

言語仕様を汚すぐらいならキーワードにしちまえみたいな意見もあったみたいだけど、
多重継承のあるPythonでは引数有りsuper()もサポートしたいし互換性あるし
みないなところで、こうなった。

俺はこのsuper()は関数に見せかけたキーワードだと思うことにした。
そうすれば、x=superとかしたときにx()が動作しないのにまだ納得がいく。

さて、再びROMるか。

274 :デフォルトの名無しさん:2010/07/08(木) 23:34:59
>>273
なるほど。重ね重ねありがと。

self.super()だったらそんなにきもくないのに(・ω・`)

275 :デフォルトの名無しさん:2010/07/23(金) 01:41:10
http://github.com/methane/ipython
誰か実験台になっておくれ。

60 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)