【実験台】 Python 3.0 のお勉強 Part 1 【非互換】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/02/19(木) 22:30:15そもそもあれは実用で使うには時期が早すぎるわけで、ここで
普通に語られても困る。
--------
別に
--------
細分化する必要性が全く感じられない。
各自がレスの内容を収拾選択すればいいだけ。
0002デフォルトの名無しさん
2009/02/19(木) 22:31:44起てられないと思って
弄んでたら
勃っちゃった
0003デフォルトの名無しさん
2009/02/20(金) 02:28:12/ / パカッ
//⌒)∩__∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ まピョーん☆
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
0004デフォルトの名無しさん
2009/02/20(金) 12:34:21python厨は全員首吊って死ねよ。
ruby人口の方が多い。
rubyの方がいろいろできる。
言語的仕様は好みの問題。
議論の余地無し。
以上。
0005デフォルトの名無しさん
2009/02/20(金) 12:36:25他人のレスを盗作するしかないぐらいに悔しくなった 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が穏便かつ正論だと言わざるを得ないな
0006デフォルトの名無しさん
2009/02/20(金) 17:02:43そのレスを読んで悔しかったって事なんだろうなw
0007デフォルトの名無しさん
2009/02/20(金) 17:46:560008デフォルトの名無しさん
2009/02/20(金) 17:48:11俺たちで、流行らすんだよぉ!
0009デフォルトの名無しさん
2009/02/20(金) 20:03:410010デフォルトの名無しさん
2009/02/20(金) 20:06:03さくっと互換性なくすよな
0011デフォルトの名無しさん
2009/02/20(金) 20:37:000012デフォルトの名無しさん
2009/02/20(金) 21:17:15いや、どこが変換できないとかはいちおう調べたんだけど
実際どうなのかなと
0013デフォルトの名無しさん
2009/02/20(金) 21:28:56Pythonとは言えない言語に変わってしまった。
0014デフォルトの名無しさん
2009/02/21(土) 00:04:48アクロバチックなコード書いてないなら、全部自動で変換される(できる)んじゃない?
0015デフォルトの名無しさん
2009/02/21(土) 00:19:01print("Hello")と書かなければならない。
その関係でprint "Hello",len("Hello")の書き方もかわった。
print ("Hello",len("Hello"))と書かなければならない。
これはPython2系ではエラーになる書き方だったよね。
それからxrange()とrange()の統合。
旧range()がなくなってxrange()が新range()になった。
まぁそんな具合かな。あとよろ。
0016デフォルトの名無しさん
2009/02/21(土) 01:33:53http://pc11.2ch.net/test/read.cgi/tech/1234716330/
0017デフォルトの名無しさん
2009/02/21(土) 02:05:28あちらは2.x系のみ、話題に出してよい。
過去依存に付いては両方のスレにレスを付ける必要がある。
0018デフォルトの名無しさん
2009/02/21(土) 02:11:06出来る限りブランチ作らないで済むような配慮はあるみたい。
勿論、それぞれのバージョンでのテストは必要になるけど。
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
0019デフォルトの名無しさん
2009/02/21(土) 10:15:02式っていうなら昔からもこれからも式だろw
3.0で文から関数に変わったんだろ
0020デフォルトの名無しさん
2009/02/21(土) 12:13:49おお、こうしてまとめてみると移行プランがんばってるなー
なにより3k用ブランチを作らないようにするアプローチがありがたい
0021デフォルトの名無しさん
2009/02/21(土) 12:47:40ttp://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
0022デフォルトの名無しさん
2009/02/21(土) 12:58:41上記キーワードでググって検索結果を読み進めると、
Google エラー
申し訳ありません
... コンピュータ ウィルスやスパイウェア アプリケーションの自動リクエストと類似したクエリが送信されました。 ユーザーを保護するため、このリクエストをすぐに処理することはできません。
できるだけ早くアクセスを復旧しますので、しばらくしてからもう一度お試しください。
お使いのコンピュータやネットワークがウィルスの被害にあっていると思われる場合は、ウィルス チェッカーやスパイウェア削除ツールを実行して、システムからウィルスや不正ソフトウェアを駆除してください。
引き続きこのエラーが表示される場合は、Google の Cookie を削除してから、Google に再度アクセスすると問題が解決する場合があります。 ブラウザ固有の手順については、お使いのブラウザのオンライン サポート センターにお問い合わせください。
ネットワーク全体が影響を受けている場合は、Google ウェブ検索ヘルプ センターで詳細をご覧ください。
ご不便をおかけいたしますが、ご理解、ご対応のほどよろしくお願い申し上げます。
0023デフォルトの名無しさん
2009/02/21(土) 13:18:260024デフォルトの名無しさん
2009/02/21(土) 15:40:25それまで少々お待ちください(^^)v
0025デフォルトの名無しさん
2009/02/21(土) 15:51:36なんでも出来ると何でもやらされるパターンですねわかります
0026デフォルトの名無しさん
2009/02/21(土) 19:55:06なんでも中途半端にやって身につかなさそうな感じするよね。
0027デフォルトの名無しさん
2009/02/21(土) 23:10:460028デフォルトの名無しさん
2009/02/21(土) 23:14:410029デフォルトの名無しさん
2009/02/21(土) 23:58:51python
流行らすこと さんせーい^^
0030デフォルトの名無しさん
2009/02/22(日) 01:04:000031デフォルトの名無しさん
2009/02/22(日) 02:32:260032デフォルトの名無しさん
2009/02/25(水) 00:25:14文の途中でも abc = /* def; */ ghi; みたいに書けますね。
abc = # def # ghi
だとおかしくなっちゃうんですけど
こういうときはどうコメントすれば良いのでしょうか
0033デフォルトの名無しさん
2009/02/25(水) 00:27:330034デフォルトの名無しさん
2009/02/25(水) 01:09:44マルチ乙
0035デフォルトの名無しさん
2009/03/01(日) 12:58:19/ | 彡 ( _●_) ミ まピョーん☆
0036デフォルトの名無しさん
2009/03/03(火) 11:59:05笑えばいいと思うよ。
0037デフォルトの名無しさん
2009/03/04(水) 23:31:43同感。笑えばよい。
この場合の文法解釈としては、だね。
「行儀が悪い」=「頭が悪い」ということ。
見てくれる相手に何をしようとしているのか理解してもらえないのなら、
キチンと、正しいと思われるプログラムが「完成するまで」やり遂げること。
0038デフォルトの名無しさん
2009/03/20(金) 14:53:280039デフォルトの名無しさん
2009/03/24(火) 11:55:560040デフォルトの名無しさん
2009/03/24(火) 12:07:090041デフォルトの名無しさん
2009/03/27(金) 11:19:170042デフォルトの名無しさん
2009/03/29(日) 15:00:19言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
0043デフォルトの名無しさん
2009/04/11(土) 20:22:190044デフォルトの名無しさん
2009/04/16(木) 16:23:290045デフォルトの名無しさん
2009/05/10(日) 16:20:560046デフォルトの名無しさん
2009/09/29(火) 09:32:400047デフォルトの名無しさん
2009/10/06(火) 23:56:47まとまっていて良いね。
0048デフォルトの名無しさん
2009/10/07(水) 00:07:000049デフォルトの名無しさん
2009/10/07(水) 01:22:380050デフォルトの名無しさん
2009/10/07(水) 01:26:460051デフォルトの名無しさん
2009/10/07(水) 09:27:280052デフォルトの名無しさん
2009/10/07(水) 13:40:250053デフォルトの名無しさん
2009/10/07(水) 14:14:070054デフォルトの名無しさん
2009/10/07(水) 18:46:35ソースは日本語使えるしマニュアルも日本語があるだろ?
0055デフォルトの名無しさん
2009/10/07(水) 19:20:090056デフォルトの名無しさん
2009/10/09(金) 22:20:42オライリーのほうが内容充実してない?
0057デフォルトの名無しさん
2009/10/10(土) 01:36:55>>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/
0058デフォルトの名無しさん
2009/10/10(土) 09:34:01> 暇人の方は↓のグループに参加申請してくれれば、↑のメンバーに追加します。
> http://groups.google.co.jp/group/diveintopython3-trans-ja
暇人の方が世界中で一人しかいない件。
0059デフォルトの名無しさん
2009/10/10(土) 10:56:51いろいろ変わりすぎなのは残念だけど
0060デフォルトの名無しさん
2009/10/11(日) 00:00:240061デフォルトの名無しさん
2009/10/11(日) 00:08:02�A Python → 他言語
0062デフォルトの名無しさん
2009/10/11(日) 00:58:260063デフォルトの名無しさん
2009/10/11(日) 03:23:52やりはじめて何がどうしちまった、とそんな感覚を味わ(ry
0064デフォルトの名無しさん
2009/10/11(日) 03:41:35automake (GNU automake) 1.10.2
1.11 じゃないと…ぐぬぬ
0065デフォルトの名無しさん
2009/10/11(日) 17:58:43折衷案。デコレータの使い方が上手だと思う
0066デフォルトの名無しさん
2009/10/15(木) 18:35:12*stolen risk
*color display
*low price paperbook
i think that it's sold well in japan...
0067デフォルトの名無しさん
2009/10/16(金) 09:45:500068デフォルトの名無しさん
2009/10/16(金) 11:27:590069デフォルトの名無しさん
2009/10/16(金) 12:53:54Python To exe > Python 2 exe > py2exe
だからたぶんそのまま
0070デフォルトの名無しさん
2009/10/16(金) 13:13:570071デフォルトの名無しさん
2009/10/16(金) 14:48:290072デフォルトの名無しさん
2009/10/19(月) 17:58:12下のリンクが切れてるんだが、参加するにはどうしたらいいの?
0073デフォルトの名無しさん
2009/10/19(月) 18:03:050074デフォルトの名無しさん
2009/10/19(月) 22:17:26すみません。誰も参加しないだろうと思ってグループを消してました。
こちらへどうぞ。
http://groups.google.co.jp/group/diveintopython3-japanese
0075デフォルトの名無しさん
2009/10/19(月) 23:44:25どのように進んでるかが良く分からんので、おまけのPorting Code to Python 3 with 2to3から手をつけます。
0076デフォルトの名無しさん
2009/10/24(土) 12:45:16http://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 は(略
0077デフォルトの名無しさん
2009/11/09(月) 10:06:510078デフォルトの名無しさん
2009/11/21(土) 03:23:14BaseHTTPRequestHandler で受け取った post のデータを渡したら byte に str の操作しようとしたって言われて落ちちゃうわ
こんな場合どうしたらいいのよ
0079デフォルトの名無しさん
2009/11/21(土) 03:38:570080デフォルトの名無しさん
2009/11/21(土) 13:50:14が動かなかったので止めました。以上
0081デフォルトの名無しさん
2009/11/21(土) 15:30:34本当におめでとう。
おめでとうおめでとう。
0082デフォルトの名無しさん
2009/11/21(土) 15:35:540083デフォルトの名無しさん
2009/11/21(土) 16:10:20http://www.jcp.or.jp/akahata/aik09/2009-11-14/2009111401_04_1.html
2chとパチンコ屋が無くなれば日本の景気は上向くかもな
0084デフォルトの名無しさん
2009/11/21(土) 16:45:17止めてよかった。
本当にありがとう。
ありがとうありがとう。
0085デフォルトの名無しさん
2009/11/21(土) 16:55:34数年後
more-on-ubuntu@laptop:~$ python\t
python python2 python2.6 python3
デフォルトが3系列になったらどうしよう.....(´・ω・`)
0086>>78-79
2009/11/21(土) 17:02:580087デフォルトの名無しさん
2009/11/21(土) 17:25:28でもまぁ普段から、OSはOS、アプリはアプリだと思って
OSが使ってるものは別にインストールしてるから大丈夫だけど。
0088デフォルトの名無しさん
2009/11/21(土) 17:30:022to3つかってもなんか動かんし。
0089デフォルトの名無しさん
2009/11/27(金) 01:45:550090デフォルトの名無しさん
2009/11/27(金) 01:57:320091デフォルトの名無しさん
2009/11/27(金) 05:47:350092デフォルトの名無しさん
2009/11/27(金) 08:35:390093デフォルトの名無しさん
2009/11/27(金) 12:37:34必要だったり、区切り文字を指定できなかった。
関数になって、普通の関数の文法で全部できるようになった。
良い事づくめじゃないか。
0094デフォルトの名無しさん
2009/11/27(金) 12:41:01入れてくれれば十分って感じかなぁ
まあ別に print() でいいけどさ
0095デフォルトの名無しさん
2009/11/27(金) 16:17:560096デフォルトの名無しさん
2009/11/27(金) 16:28:10a = 3
sys.stdout.write(a) ってできない。
0097デフォルトの名無しさん
2009/11/27(金) 16:51:150098デフォルトの名無しさん
2009/12/05(土) 00:22:460099デフォルトの名無しさん
2009/12/09(水) 23:19:010100デフォルトの名無しさん
2009/12/16(水) 21:06:16まだ初めてのPython第3版読んでねーから、オレはパスだけど
0101デフォルトの名無しさん
2009/12/16(水) 21:14:140102デフォルトの名無しさん
2009/12/16(水) 22:50:490103デフォルトの名無しさん
2009/12/17(木) 07:20:060104デフォルトの名無しさん
2009/12/17(木) 13:19:400105デフォルトの名無しさん
2009/12/17(木) 14:13:130106デフォルトの名無しさん
2009/12/18(金) 08:01:520107デフォルトの名無しさん
2009/12/22(火) 11:44:47Python3.0に乗り換えたら、Tkinterパッケージの位置が変わったみたいで、
GUIの部分が作れねぇ!
調べても、出てくるのは2.x系統のサンプルコードばかり。
だれか、Python3.0で、ボタンを押してイベントが発生するTkinterのコード
を、ここに書いていただけませんか!?
0108デフォルトの名無しさん
2009/12/22(火) 13:35:310109デフォルトの名無しさん
2009/12/22(火) 14:06:49import 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
でした。困ります(´・ω・`)
0110デフォルトの名無しさん
2009/12/22(火) 14:17:400111デフォルトの名無しさん
2009/12/22(火) 15:04:501行目はTkinterとしてtkinterをimportしろという意味だ。
from使うならtkinterからimportしろ。
ドキュメントくらい読め。
http://docs.python.org/dev/3.0/library/tkinter.html
0112オオツカ
2009/12/22(火) 20:39:44神様ありがとう!!
0113デフォルトの名無しさん
2009/12/25(金) 20:39:100114デフォルトの名無しさん
2010/01/11(月) 15:05:45そろそろ移行時期か?
0115デフォルトの名無しさん
2010/01/11(月) 16:07:580116デフォルトの名無しさん
2010/01/11(月) 21:26:020117デフォルトの名無しさん
2010/01/12(火) 20:12:580118デフォルトの名無しさん
2010/02/17(水) 02:20:20やるとするとPython3になるけど。
0119デフォルトの名無しさん
2010/02/17(水) 02:56:10いまPythonをはじめるなら2.6にすべき。
0120デフォルトの名無しさん
2010/02/17(水) 22:27:530121デフォルトの名無しさん
2010/02/17(水) 23:01:10Pythonの勉強となるとサイトのサンプルプログラムとか
既存ライブラリ使ってみようとかあれこれやりたくなるでしょ。
そしてつまづいて「Pythonむずかしー」あるいは「Python糞だな」
ってなるでしょ。2.6ならそうならないでしょ。そういうことだよ。
0122デフォルトの名無しさん
2010/02/18(木) 00:06:040123デフォルトの名無しさん
2010/02/18(木) 00:20:00程度問題の話をしてるんだから
そういうコメントは野暮というもの
0124デフォルトの名無しさん
2010/02/18(木) 00:40:490125デフォルトの名無しさん
2010/02/18(木) 18:44:43激安販売中!
http://wwttww.hostrator.com
0126デフォルトの名無しさん
2010/02/18(木) 22:59:290127デフォルトの名無しさん
2010/02/18(木) 23:16:26どこが程度の話だよw
0128デフォルトの名無しさん
2010/02/18(木) 23:22:140129デフォルトの名無しさん
2010/02/19(金) 00:48:200130デフォルトの名無しさん
2010/02/19(金) 17:41:59for line in sys.stdin:
pass
と書いたのだけれど、普通に実行したときは問題ないのに、
hoge.rb < file.txt
と実行したら、sys.stdinがNoneになってるんだよね。
標準入力を読み込むにはどうしたらいいの?
0131デフォルトの名無しさん
2010/02/19(金) 19:19:57rbかよ!
python hoge.py < file.txt
ってしてみ?
0132デフォルトの名無しさん
2010/02/19(金) 20:15:24> rbかよ!
すまない。ついうっかり癖で、、、
ちゃんと標準入力読めました。ありがとう。
0133デフォルトの名無しさん
2010/02/19(金) 20:18:55hoge.py < file.txt
で読めないのかな
バグ?
0134デフォルトの名無しさん
2010/02/19(金) 21:04:57Windowsの有名なバグ。
なんか当てたら直ったと思う。
Vista以降だとなんも当てなくても直ってたかもしれない。
0135デフォルトの名無しさん
2010/02/19(金) 21:11:39STDIN/STDOUT リダイレクトは、ファイルの関連付けから起動すると動作しないことがある
http://support.microsoft.com/?scid=kb%3Bja%3B321788&x=21&y=13
0136デフォルトの名無しさん
2010/02/26(金) 12:24:12DjangoもGAEもいつかは3kがメインになるのかなぁ
0137デフォルトの名無しさん
2010/02/26(金) 13:07:31そうだよね。Python2のUnicodeはエッジケースが多すぎて、初心者じゃなくても
切り傷だらけになる。初心者なら脱落してもおかしくない。
print u"あいうえお" はできるのに raw_input(u"あいうえお") ができないとか、
os.listdir(u'.') しても filesystemencoding でデコードできないファイル名は
バイト列としてリストに入るとか。
0138デフォルトの名無しさん
2010/02/26(金) 14:54:40>>> 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)
0139デフォルトの名無しさん
2010/02/27(土) 01:29:010140デフォルトの名無しさん
2010/02/28(日) 18:37:24ライブラリの命名規則を統一してほしかった...orz
classmethod, assertEqual, set_autholizer
orzorzorz
0141デフォルトの名無しさん
2010/02/28(日) 22:46:100142140
2010/03/01(月) 00:51:302.x -> 3.xのタイミングでしかできないような変更だからまじで悲しい。
欧米人はあんまり気にしないのだろうか?
0143デフォルトの名無しさん
2010/03/01(月) 01:23:19だんだん慣れて来たしもうどうにでもなーれ
0144デフォルトの名無しさん
2010/03/03(水) 01:13:200145デフォルトの名無しさん
2010/03/09(火) 22:48:42>>144
これから書くなら、できるだけ区切らないorアンダースコア使えってPEPに書いてあった。
Javaとかから持ってきたライブラリだとhasKeyみたいに、大文字区切りになってる。
0146デフォルトの名無しさん
2010/03/09(火) 23:06:57標準から外れるとエディタ支援を受けれなくなるから、みんな同じような書き方になって見やすくなるはず。
0147デフォルトの名無しさん
2010/03/20(土) 00:09:04http://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
本体は大丈夫かもしれないけど
インストーラでコケルとか周辺ソフトとの連携とかでコケルいう
事例は、しばらく続くのだろうなぁ…
0148デフォルトの名無しさん
2010/04/05(月) 04:03:460149デフォルトの名無しさん
2010/04/05(月) 15:53:11少なくともまだ1年はかかると思う
0150デフォルトの名無しさん
2010/04/05(月) 16:34:01地デジと同じでズルズル先延ばしで、移行期間があっても移行しない。
0151デフォルトの名無しさん
2010/04/05(月) 16:36:542.6 は微妙
0152デフォルトの名無しさん
2010/04/05(月) 19:05:540153デフォルトの名無しさん
2010/04/16(金) 22:23:190154デフォルトの名無しさん
2010/04/16(金) 23:15:45http://diveintopython3-ja.rdy.jp/index.html
0155デフォルトの名無しさん
2010/04/17(土) 18:32:09無能かよ
0156デフォルトの名無しさん
2010/04/18(日) 00:34:25これで分からなかったら、何見ても分からん。
0157デフォルトの名無しさん
2010/04/18(日) 02:37:21ほれ、
http://www.python.jp/Zope/download/pythoncore
これだろ。
そのものだけど。
0158デフォルトの名無しさん
2010/05/01(土) 13:56:25while True: のループで代用しないとだめですかね。
0159デフォルトの名無しさん
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) で常にかければいいんだけど、書けないこともよくあるので。
0160デフォルトの名無しさん
2010/05/03(月) 01:35:57とかなかったっけ?
0161デフォルトの名無しさん
2010/05/03(月) 02:41:240162デフォルトの名無しさん
2010/05/03(月) 02:49:423では削除されたし、2でも多倍長整数の最大値はないよ。
大抵の場合はそれで十分だと思うし、なくても
HUGE_VAL = 2**31
とでもしとけば、大抵の用途では十分だと思うけど。
>>159
型が重要でないなら、
float('inf')
で、不動点小数型の無限大が得られる。
float('inf') > 2**10000000
---> True
整数型であることが重要なら、クラス継承して比較演算子を書き換えるか。
0163デフォルトの名無しさん
2010/05/03(月) 09:31:380164デフォルトの名無しさん
2010/05/03(月) 10:37:04使いたいライブラリが対応してるなら。
0165デフォルトの名無しさん
2010/05/03(月) 11:33:32Python2の標準ライブラリー相当品は3でもOKなんだよね?
その他の3rdPartyライブラリーは殆ど使わないんだ
0166デフォルトの名無しさん
2010/05/03(月) 12:23:41基本的にはそうだけど、いくつかは廃止・統合されてるから標準については公式行って確認するといいよ。
サードパーティーの使わないなら、対応状況はかなりいいはず。
0167デフォルトの名無しさん
2010/05/03(月) 12:37:49minv = func(seq[0])
0168デフォルトの名無しさん
2010/05/03(月) 12:47:21ありがとう!
ちょっとやる気が出た
0169デフォルトの名無しさん
2010/05/03(月) 14:01:21それ、seqがコピーしづらいイテレータだったとき面倒にならない?
0170デフォルトの名無しさん
2010/05/03(月) 15:12:44v = func(x)
if i == 0:
minv = v
elif v < minv:
minv = v
0171デフォルトの名無しさん
2010/05/03(月) 15:14:05こっちのが分かりやすいか
for i, x in enumerate(seq):
v = func(x)
if i == 0 or v < minv:
minv = v
0172デフォルトの名無しさん
2010/05/09(日) 18:01:530173デフォルトの名無しさん
2010/05/09(日) 21:38:50やっぱりgnuか?
0174デフォルトの名無しさん
2010/05/10(月) 15:17:240175デフォルトの名無しさん
2010/05/12(水) 00:07:010176デフォルトの名無しさん
2010/05/12(水) 23:35:010177デフォルトの名無しさん
2010/05/15(土) 01:12:03python2.6.2って・・・。
0178デフォルトの名無しさん
2010/05/15(土) 13:04:590179デフォルトの名無しさん
2010/05/18(火) 09:44:300180デフォルトの名無しさん
2010/05/19(水) 01:30:560181デフォルトの名無しさん
2010/05/19(水) 01:37:20のプログラムみたら、
やりたいことは値の設定なのであって、複文を実行することじゃないから、
minv = func(x) if i == 0 or func(x) < minv else minv
って書きたいけど、中でfunc(x)が2回出てるから、func(x)がすっごい重い処理だと
性能悪いなー
って思うのは正しい?
func(x)の値は内部的に保持され、2度実行されないよう最適化してくれるのかな?
0182デフォルトの名無しさん
2010/05/19(水) 02:40:260183デフォルトの名無しさん
2010/05/19(水) 06:55:06Rubyは一見その点では有利そうなんだが、実際にはバージョン間の互換性がさっぱりで、
単に同じこと(過去の微妙な仕様の切り捨て)を小分けに毎回やってるようなもんだから
ある意味余計に悪いし
まぁでも、俺は当分3kは使わないけど、いずれ移行するような気はするけどな
0184デフォルトの名無しさん
2010/05/19(水) 08:21:190185デフォルトの名無しさん
2010/05/19(水) 10:10:030186デフォルトの名無しさん
2010/05/19(水) 11:17:130187デフォルトの名無しさん
2010/05/19(水) 15:28:450188181
2010/05/20(木) 00:49:13やぱCでもgcc:O2でもfuncの中身までは解析しなかった
変数の出現が関数外ではありえない、みたいな
extern宣言が出来ると、イケチャウ雰囲気あるんだけどな〜
動的スコープだとほんと無理なのかな
誰か天才いないかーーーー
0189デフォルトの名無しさん
2010/05/20(木) 06:04:42else のときは
minv = minv
になるから
アホなコードだなぁ
と思う
0190デフォルトの名無しさん
2010/05/20(木) 13:53:03こういうコードはダメ。Ruby厨に惑わされるな。
0191デフォルトの名無しさん
2010/05/20(木) 15:27:14> min(func(x) for x in seq) で常にかければいいんだけど、
> 書けないこともよくあるので。
これってどんなとき?
0192デフォルトの名無しさん
2010/05/20(木) 18:17:37reduce使え
min(seq)は
reduce(min, seq)と同じ
その手のやつは大概適当なfを用意してやれば
reduce(f, seq)
に書き換えられる
0193デフォルトの名無しさん
2010/05/20(木) 18:19:04ファイルシステムを捜査しながら最大サイズのファイルを見つけるとか。
かな
0194デフォルトの名無しさん
2010/05/20(木) 18:21:20それminで何でだめなんだ?
min()はiterable受け取れるけど
0195デフォルトの名無しさん
2010/05/20(木) 21:12:500196デフォルトの名無しさん
2010/05/20(木) 22:55:28俺も同意だと思ったけど、内部的にはmin関数もまったく同じなんだよね。
趣味の問題かな?
0197デフォルトの名無しさん
2010/05/21(金) 08:11:23パフォーマンス考えたら避けるべき
0198デフォルトの名無しさん
2010/05/21(金) 10:58:04Pythonでは潔く2行にするのが良いんじゃないの
0199デフォルトの名無しさん
2010/05/23(日) 11:35:370200デフォルトの名無しさん
2010/05/23(日) 14:44:46パイソンってこういうコーディングルール統一されてると勝手に思ってたけど、汚いんだな
統一されてないのは書いてて気になるし、推測でメソッド名書けなくなるから、やっぱりそういうところちゃんとしてるルビーのほうが良さそうか
理路整然としてるイメージを勝手に持ってたけど、rubyのほうがそゆとこしっかりしてんのかな
0201デフォルトの名無しさん
2010/05/23(日) 15:12:390202デフォルトの名無しさん
2010/05/23(日) 15:36:16classmethod みたいな、1つの単語と呼べるものは、アンダースコアで区切らない。
set_autholizer みたいな、複数の語でなる句は、アンダースコアで区切る。
JUnit みたいに、別のリファレンスに従う設計になっているライブラリは、そのリファレンスの命名に従う。
理路整然としてるけど?
0203デフォルトの名無しさん
2010/05/23(日) 17:27:520204デフォルトの名無しさん
2010/06/02(水) 21:48:16いつになったら普及するのよ。
0205デフォルトの名無しさん
2010/06/02(水) 21:49:450206デフォルトの名無しさん
2010/06/03(木) 03:44:37本スレにカエレ
>>204
もうちょっとかかりそうだな。
このスレでも何度か出てきてるDive into Python3は、英語版なら書籍でも出てる。
書籍の形で欲しいのなら適さないけど、内容的に書籍レベルのものが欲しいのならWebの日本語訳がいいと思う。
ttp://diveintopython3-ja.rdy.jp/index.html
0207デフォルトの名無しさん
2010/06/03(木) 13:11:070208デフォルトの名無しさん
2010/06/05(土) 05:47:052.5じゃねーかハゲ
0209デフォルトの名無しさん
2010/06/05(土) 17:10:52> 理路整然としてるけど?
で、結果としてばらばらのネーミングルールになってると。
馬鹿か。
0210デフォルトの名無しさん
2010/06/05(土) 20:50:51馬鹿はお前だ
0211デフォルトの名無しさん
2010/06/05(土) 21:16:35統一されてないのは事実だし、おれも >>200 のようにいまいち汚いと思う。
0212デフォルトの名無しさん
2010/06/09(水) 05:54:430213デフォルトの名無しさん
2010/06/10(木) 00:42:281行じゃないけどこんなの見つけた
http://mail.python.org/pipermail/tutor/2004-April/029413.html
0214デフォルトの名無しさん
2010/06/10(木) 01:15:00レシピのpowerset
0215デフォルトの名無しさん
2010/06/10(木) 01:47:42t = 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])])
0216デフォルトの名無しさん
2010/06/10(木) 15:37:580217デフォルトの名無しさん
2010/06/10(木) 16:47:12Python3の本もたくさん出はじめてるよ。
どの本がPython3用になって欲しかった?
0218デフォルトの名無しさん
2010/06/18(金) 09:59:07もっと他に気を掛けることがあるだろうに。
0219デフォルトの名無しさん
2010/06/18(金) 14:14:050220デフォルトの名無しさん
2010/06/18(金) 14:29:00あの手の書籍は最新python3で出して欲しかったな。
初心者向けみたいだし、プログラミング入門者でも分かりやすい内容だったから。
仕事で使うのではなく、ただなんとなくPython始めたいような人は
最新環境で学ぶべきだと思うよ。
俺らが3の仕様変更を知らされたときに受けた失望感を
初心者にまで与えるのはあまりにも酷だろ。
それでも2.Xが優勢だということは、
おそらく3は当分普及しないってことだろうね。
たぶん日本ではGoogleのGo言語のほうがpython3よりも先に普及すると思う。
どうしてこうなった。
0221デフォルトの名無しさん
2010/06/18(金) 20:18:39encode/decodeのせい
python3に期待
0222デフォルトの名無しさん
2010/06/18(金) 20:22:05日本でGoが普及するか?まだC#の方がありうると思うぜ。
それ以前にGoとPythonの守備範囲も若干違う気がするし…
0223デフォルトの名無しさん
2010/06/19(土) 13:45:04特に国内ではPerlやPHPならともかく、Pythonとは比較にもならんだろ
0224デフォルトの名無しさん
2010/06/19(土) 18:25:04そんなに普及してんの? Pythonと似たり寄ったりだと思ってた。
LLスレにでも移動して語ってくれ。
0225デフォルトの名無しさん
2010/06/19(土) 18:37:33ワークポートとかいう会社の調べ
C#の求人件数は5位
ちなみにPythonは圏外ね
0226デフォルトの名無しさん
2010/06/19(土) 19:34:210227デフォルトの名無しさん
2010/06/19(土) 23:12:500228デフォルトの名無しさん
2010/06/19(土) 23:30:07Pythonがそれ以上に使われてないだけで
0229デフォルトの名無しさん
2010/06/21(月) 14:11:10時点で、ある程度のガラパゴス性をもってるよね>Ruby
0230デフォルトの名無しさん
2010/06/21(月) 14:26:260231デフォルトの名無しさん
2010/06/21(月) 14:51:35そうなん?スマン。
MLでオープンな議論もするけれど、重要なことはMatzを中心とする一部の日本人が
エイヤで決めるってどっかのインタビューで答えてたと思ったから。
0232デフォルトの名無しさん
2010/06/22(火) 00:28:530233デフォルトの名無しさん
2010/06/22(火) 00:39:20ところで、お前らpythonなにに使ってる?
0234デフォルトの名無しさん
2010/06/22(火) 01:30:20電卓代わり、CGI、C/C++で書くほどじゃないプログラム全般。
まともに使い方知ってる言語がC/C++とPythonしかないから、ある意味で楽。
0235デフォルトの名無しさん
2010/06/22(火) 02:25:43spamメールのフィルタ
0236デフォルトの名無しさん
2010/06/22(火) 02:34:24領土問題と同じで、少しくらいと譲歩してたら乗っ取られる。
0237デフォルトの名無しさん
2010/06/24(木) 21:36:260238デフォルトの名無しさん
2010/06/26(土) 08:50:39python2だと日本語が扱いづらいので、python3導入して
研究で最適化アルゴリズムとか強化学習のプログラム作ったけど
先輩のc言語で書かれた同じ最適化アルゴリズムで作った巡回セールスマン問題と
実行速度比較したら、10倍以上差があるんだが・・・先輩のが数分で、自分のが数時間
読みやすさ重視でプログラム書いたからループ内で不要な処理とかかなりしてる気もする
python3のコンパイラないかな
0239デフォルトの名無しさん
2010/06/26(土) 08:57:150240デフォルトの名無しさん
2010/06/26(土) 11:11:07あったとしても、多少マシになるくらいでCにはとてもかなわないと思うよ。
psycoって3.x対応してないよなぁ。
0241デフォルトの名無しさん
2010/06/26(土) 11:29:12ものによっては100倍ぐらい差がつく
0242デフォルトの名無しさん
2010/06/26(土) 11:29:38多少でもマシにしたいほど時間がかかる・・・
たしか対応してない
0243デフォルトの名無しさん
2010/06/26(土) 11:30:340244デフォルトの名無しさん
2010/06/26(土) 11:51:10今日 PyPy-1.3 がリリースされたし。
0245デフォルトの名無しさん
2010/06/26(土) 20:35:280246デフォルトの名無しさん
2010/06/26(土) 21:16:250247デフォルトの名無しさん
2010/06/26(土) 23:37:58pointerとbyrefってどう使い分けるんだ?
あとlistをそのまま配列としてcに渡したり出来ないのね。
内包表記でばーんと渡したりって訳にはいかないね。
0248デフォルトの名無しさん
2010/06/26(土) 23:45:14このオーソドックスな方法は素晴らしいっすよ
0249デフォルトの名無しさん
2010/06/27(日) 02:10:57ちゃんとPython3にも対応してるし。
0250デフォルトの名無しさん
2010/06/27(日) 15:23:06# -*- 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だとリスト内包表現って遅いの?
0251デフォルトの名無しさん
2010/06/27(日) 15:43:032.6でも3でもリスト内包の方が速い。
2.5以前は知らんが、たぶんリスト内包の方が速い。
http://dsas.blog.klab.org/archives/51742727.html
0252デフォルトの名無しさん
2010/06/27(日) 15:50:16def sample_comprehension(n):
L = []
return [L.append(i) for i in range(n)]
0253デフォルトの名無しさん
2010/06/27(日) 20:15:46>>250
sample_comprehensionとsample_loopの順番を入れ替えてみても結果変わらない?
32bit環境だと50000000要素だと、配列なら約200MB、双方向リストなら約600MBのメモリ確保が必要になって、
それに時間がかかったんじゃないかなぁ。
一旦確保したら、ひとつめのsample_comprehensionで作ったリストはGCの対象になるから、新たにメモリ確保の必要がない。
だから2つめのsample_loopは早かった、と予想してみる。
0254デフォルトの名無しさん
2010/06/27(日) 20:45:54適当なサイトのソースをコピペして実行しただけだから深く考えてなかった
それでやってみる
>>253
順番入れ替えても変わらなかった
0255デフォルトの名無しさん
2010/06/27(日) 20:48:28そうそうこのページのソースをコピペして実行した
人が居たから、かなり適当に書いた
だからtimeじゃなくdatetime使ってたり
0256デフォルトの名無しさん
2010/06/27(日) 21:03:11# -*- 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
0257デフォルトの名無しさん
2010/06/27(日) 21:30:30正直その糞コードで何をしたいのか全然わかんねえ
list.append()はNoneを返すから
それって結果は
[ None ] * n
になるよな
0258デフォルトの名無しさん
2010/06/27(日) 21:53:13# -*- 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 秒
0259デフォルトの名無しさん
2010/06/27(日) 23:05:530260デフォルトの名無しさん
2010/06/28(月) 03:36:29ほんとだ。すげー、ループはえー、と思ったらインデントを
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;
}
0261デフォルトの名無しさん
2010/06/28(月) 03:39:39L.append自体をすることが目的ならそうだけど、
L.appendの副作用でリスト作るか内包表記でループ作るかどっちが速いかを調べたいなら元々のであってる
0262デフォルトの名無しさん
2010/07/01(木) 06:54:38まだほとんど調べてないが、使い方がよくわからない
てかトイレ行きたくて集中出来ない
0263デフォルトの名無しさん
2010/07/01(木) 12:02:020264デフォルトの名無しさん
2010/07/07(水) 10:50:19cython全然わからんとです
超初心者スレで教えてもくれるかな
0265デフォルトの名無しさん
2010/07/07(水) 22:45:35http://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に媚びるような仕様。
0266デフォルトの名無しさん
2010/07/08(木) 00:21:03> This whole movement to condemn super because it's not "pure" strikes
> me as wasted energy. That's my last word.
0267265
2010/07/08(木) 01:08:18英語力不足で意味が掴みづらいんだけど、
super()への批判は聞き飽きた。もう知らん。by Guido
って感じ?なんかGuidoらしくないなあ。俺みたいに批判してる人は
なんで今までわざわざself書いてきたんだろう、って気持ちになるんだよ。
通常の関数定義には__class__は現れなくて、メソッド定義中では
それが現れるってええ?メソッドがただのclass内で定義された関数っていう
整合性のためにself書いてたんだよって。
もちろんそれ以外にもselfなければデコレータがこれ程強力に
使われることもなかっただろうし、他にも利点はあるから
selfは必要だけど、それでもselfが必要な重要な理由の一つ
が消えちゃったんだ。
0268デフォルトの名無しさん
2010/07/08(木) 01:47:540269デフォルトの名無しさん
2010/07/08(木) 03:33:46Python 我慢して使えよ
PHP 祈りなさい
Perl シラネ
0270デフォルトの名無しさん
2010/07/08(木) 07:23:15うーん。selfがキモくないと思うなら(俺はキモくないと思う)、
__class__はキモいと思えるはず。
__class__導入によって、selfが2.xに比べてキモくなったって話。
たぶんキモいのは多くのPythonistaが認めてる。さっきのサイトの書き込みとか見てると。
でも、それでもDRYなコードを書けるようにしたかったんだと思う。
あと、__class__って属性の方の__class__じゃないよ。ローカル変数の__class__ね。
属性の方は別にキモくないよ。
0271デフォルトの名無しさん
2010/07/08(木) 07:30:11def 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のオブジェクトシステムに興味ない人にとってはどうでも
いいかもね。俺はキモくてしかたないわ。
0272デフォルトの名無しさん
2010/07/08(木) 22:36:37ありがとう。意味が分かった。
確かにこれはキモい。
けど、キモくしてまで__class__を入れる理由ってあるの?
0273デフォルトの名無しさん
2010/07/08(木) 23:03:11Pythonには自分を呼び出した元の関数のローカル変数を参照する機能が、
CレベルでもPythonレベルでもある。
__class__があれば、super()内から、クラスとselfが参照できるから、
そのクラスの__bases__からスーパークラスを参照してそれとselfを結びつけられる。
無引数super()が必要な理由は、DRYのためだけだと思う。確かにLLなのにDRYの点で
Javaなんかに負けるのは許されないことだったのかもしれない。
言語仕様を汚すぐらいならキーワードにしちまえみたいな意見もあったみたいだけど、
多重継承のあるPythonでは引数有りsuper()もサポートしたいし互換性あるし
みないなところで、こうなった。
俺はこのsuper()は関数に見せかけたキーワードだと思うことにした。
そうすれば、x=superとかしたときにx()が動作しないのにまだ納得がいく。
さて、再びROMるか。
0274デフォルトの名無しさん
2010/07/08(木) 23:34:59なるほど。重ね重ねありがと。
self.super()だったらそんなにきもくないのに(・ω・`)
0275デフォルトの名無しさん
2010/07/23(金) 01:41:10誰か実験台になっておくれ。
0276デフォルトの名無しさん
2010/09/09(木) 23:10:09自分の作ったプログラムが終わるのに、後1年かかるとか待ってられない
0277デフォルトの名無しさん
2010/09/10(金) 06:07:320278デフォルトの名無しさん
2010/09/10(金) 06:27:43つ PyPy-c-jit
0279デフォルトの名無しさん
2010/09/13(月) 06:10:48常時してるよ
かと言っても、シミュレーション行わないといけないから
ある程度早くなった段階で、実行して、実行中に改善して、
次、実行するときに少し早くなったのつかって、ってのを繰り返してる
>>278
Cythonは使ってる
下のやつは初耳調べてみます
プログラムをオブジェクト指向みたいに書いちゃったおかけで、その部分をCythonに直すのがよくわからない
あと、Cythonの関数?を呼び出す回数が多いから、まだ時間がかかる
全体的に関数使いすぎだけど、拡張性を高くしときたいからこれをinline化するのも何かあれな気もする
速度を早くすることに時間を費やしてばかりいられないのと、
自分が低脳なせいで改良の余地はまだまだあるのに、大して出来てない・・・って状況です
0280デフォルトの名無しさん
2010/09/13(月) 08:06:20defをcdefに書き換えるとPythonの関数オブジェクトを作らず直接C言語の関数になる
から関数呼び出しも高速になる。
0281デフォルトの名無しさん
2010/09/13(月) 09:10:07cdefはpyxの中でしか呼べないから、
pyからpyxのdefを呼んで、pyx内で、cdefを呼んでる
うまく説明出来てないけど、今こうなってる。
全部pyxにしちゃえばいいんだけど、そうできないのがいくつかある
0282デフォルトの名無しさん
2010/09/13(月) 10:24:070283デフォルトの名無しさん
2010/09/14(火) 02:13:370284デフォルトの名無しさん
2010/09/16(木) 18:38:30まあ、しばらくはCythonしか手を出せないんですが…
Cythonのオブジェクトが良くわからん
cdef class abc:
def aaa(self,val):
aaa_f(self,val)
cdef aaa_f(self,val):
self.A = 0
self.B = []
self.C = val
aaa_f がありませんだってお
0285デフォルトの名無しさん
2010/09/16(木) 22:58:34CythonじゃなくてPythonでもそれはエラーになるだろ…
0286デフォルトの名無しさん
2010/09/16(木) 23:35:08Pythonだとこんな感じ
#abc.py
class abc:
def aaa(self,val):
self.A = 0
self.B = []
self.B = val
特に実行エラーとかもなく普通動いてる
#main.py
neko=abc.abc()
neko.aaa(val)
こんな感じかな
0287デフォルトの名無しさん
2010/09/16(木) 23:50:26aaa_f は誰の持ち物?
0288デフォルトの名無しさん
2010/09/16(木) 23:56:47nekoちゃん
0289デフォルトの名無しさん
2010/09/17(金) 00:03:00クラスabcです
0290デフォルトの名無しさん
2010/09/17(金) 00:04:07答えでてんじゃん
0291デフォルトの名無しさん
2010/09/17(金) 00:11:15よくわからないです…
#main.py
neko=abc.abc()
neko.aaa(val)
で、
#abc.pyx
のaaaを呼び出して
abc.pyxで、aaa_fを呼び出してる
cdef class abc:
cdef:
object A
とかも必要なのか…
0292デフォルトの名無しさん
2010/09/17(金) 00:45:44def aaa(self):
self.bbb(0)
def bbb(self,val):
self.x = val
class Foo2:
def aaa(self):
bbb(0)
def bbb(self,val):
self.x = val
class Foo3:
def aaa(self):
Foo3.bbb(self,0)
def bbb(self,val):
self.x = val
どれなら動くと思う?
0293デフォルトの名無しさん
2010/09/17(金) 01:27:04Foo1かな
Foo3もかな
0294デフォルトの名無しさん
2010/10/05(火) 07:02:42規制で雁字搦めになって身動きが取れなくなってたりしなくて
これからも、互換性気にせず、ドンドン変更して欲しい
その上で、変換するものがあってくれれば
0295デフォルトの名無しさん
2010/10/05(火) 12:30:450296デフォルトの名無しさん
2010/10/05(火) 14:34:31それPythonじゃなくね?
0297デフォルトの名無しさん
2010/10/05(火) 19:11:330298デフォルトの名無しさん
2010/10/05(火) 20:39:58あるよ
0299デフォルトの名無しさん
2010/10/09(土) 15:46:510300デフォルトの名無しさん
2010/10/10(日) 00:48:13潔癖(だと思い込んでる)Javaプログラマを取り込みやすくなる、とかw
ないな。JavaプログラマはJavaしか書こうとしないし、それしかできないw
0301デフォルトの名無しさん
2010/10/10(日) 01:22:35インテリセンスが賢くなる。
>>300
Javaプログラマにコンプレックスがあるの?
0302デフォルトの名無しさん
2010/10/10(日) 01:30:34コンプレックスというより、バカで使えない、というトラウマがあってw
0303デフォルトの名無しさん
2010/10/10(日) 09:19:370304デフォルトの名無しさん
2010/10/10(日) 10:22:070305デフォルトの名無しさん
2010/10/10(日) 11:53:580306デフォルトの名無しさん
2010/10/20(水) 04:03:55今日、Arch Linuxの/usr/bin/pythonがpython3になった。
0307デフォルトの名無しさん
2010/10/20(水) 10:30:470308デフォルトの名無しさん
2010/10/20(水) 13:26:330309デフォルトの名無しさん
2010/10/20(水) 13:54:180310デフォルトの名無しさん
2010/10/21(木) 00:22:520311デフォルトの名無しさん
2010/10/21(木) 08:31:200312デフォルトの名無しさん
2010/10/21(木) 10:35:49グイド先生の次回作、Python4にご期待ください。
0313デフォルトの名無しさん
2010/10/21(木) 13:57:520314デフォルトの名無しさん
2010/10/21(木) 15:13:32ユニコード文字列とかのややこしさがなくていいなと思って3.1をインストールしたんだが、
間に合ううちに2.7に切り替えるべきか? それともどうせ通る道と受け入れるべきか?
0315デフォルトの名無しさん
2010/10/21(木) 15:47:520316デフォルトの名無しさん
2010/10/21(木) 18:53:463rdパーティのライブラリが使いたくなったらPython2.xへ。
0317デフォルトの名無しさん
2010/10/21(木) 22:39:065年後ぐらいにはそうなるよきっと
0318デフォルトの名無しさん
2010/10/21(木) 23:15:303に対応したら必要性で周りのライブラリも加速するんじゃねぇかなーと思う
0319デフォルトの名無しさん
2010/10/21(木) 23:16:580320デフォルトの名無しさん
2010/10/22(金) 00:23:150321デフォルトの名無しさん
2010/10/22(金) 00:38:560322デフォルトの名無しさん
2010/10/22(金) 00:57:040323デフォルトの名無しさん
2010/10/22(金) 21:19:580324デフォルトの名無しさん
2010/10/23(土) 00:08:54UnicodeDecodeErrorは相変わらず出るぞ。
0325デフォルトの名無しさん
2010/10/23(土) 00:37:330326デフォルトの名無しさん
2010/10/23(土) 01:25:56現時点でのメリットはそれしかない。
0327デフォルトの名無しさん
2010/10/23(土) 09:11:21そりゃ、出るには出るよ。
0328デフォルトの名無しさん
2010/10/23(土) 20:45:30クククッ, ハタシテ ソウカナ となりそうで怖い
0329デフォルトの名無しさん
2010/10/24(日) 03:18:33ある程度の経験者でUnicodeDecodeErrorと格闘してるような奴は、
基礎を固めずに、行き当たりばったりでプログラムを書いてるんでしょ。
0330デフォルトの名無しさん
2010/10/24(日) 03:37:102.x の unicode = 3.x の string
2.x の string = 3.x の bytearray
っていう認識で桶?
0331デフォルトの名無しさん
2010/10/24(日) 03:48:050332デフォルトの名無しさん
2010/10/24(日) 09:25:20そういう基礎や定石的な対処法って何に書いてあるものなんだ?
0333デフォルトの名無しさん
2010/10/24(日) 10:00:24日本人以外にもそれ言える?
0334デフォルトの名無しさん
2010/10/24(日) 11:28:51PEP
0335デフォルトの名無しさん
2010/10/24(日) 12:46:11次のようなエラーが出て困ってます。
UnicodeEncodeError: 'ascii' codec can't encode characters in position 178-180:
インタープリターで実行すると出ないエラーです。
ブラウザから実行したときに出るエラーです。
処理としてはDBアクセスして検索SQL実行して結果セットをループで回してXML形式の文字列としてクライアント側に返すといった内容です。
原因がわかれば教えてください。
0336デフォルトの名無しさん
2010/10/24(日) 13:08:260337デフォルトの名無しさん
2010/10/24(日) 13:13:020338デフォルトの名無しさん
2010/10/24(日) 13:33:07文字コードは、省略してもいいって絶対の自信がない場合は面倒くさくても指定しろ。
0339デフォルトの名無しさん
2010/10/24(日) 13:54:27sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
のように、sys.stdoutを置き換えると良いよ(utf-8の部分は適宜置き換えて)
0340デフォルトの名無しさん
2010/10/24(日) 14:33:26基本的に、文字列を出力するときはエンコードしなきゃいけない。
にもかかわらず、コンソールで実行するときに問題が表面化しないのは、
Pythonが端末のエンコーディング(例えば'UTF-8')を sys.stdout.encoding に自動で設定してくれているおかげ。
これによって、print "うんこ" は、sys.stdout.write("うんこ".encoding("utf-8"))として実行される。
しかし、CGIで実行する場合はそんな支援はしれくれず、sys.stdout.encoding はNoneになっている)ので、
print "うんこ" は、sys.stdout.write("うんこ".encoding("ascii"))として実行
されてしまい、エラーとなる。
0341デフォルトの名無しさん
2010/10/24(日) 14:34:500342335
2010/10/24(日) 15:15:20修正前)testclass.filehandler.write(return_str + "\n")
修正後)testclass.filehandler.write(return_str.encode('UTF-8') + "\n")
コンソールで実行したら
次のエラーが出ました。
<class 'TypeError'>, TypeError("can't concat bytes to str",)
型変換処理が必要という内容だと思うんですが
bytes型→str型には、どうやって変換するのでしょうか?
0343デフォルトの名無しさん
2010/10/24(日) 15:18:470344デフォルトの名無しさん
2010/10/24(日) 15:21:54そういう変な(中途半端な)場所じゃなくて、I/Oの直前直後に
変換かけるようにしなよ
0345デフォルトの名無しさん
2010/10/24(日) 15:24:56Python3になっても苦労するだろうね
0346デフォルトの名無しさん
2010/10/24(日) 16:04:26文字列("\n")とバイト列(return_str.encode('UTF-8'))を結合しようとしてるからそうなるだけ。
最初に結合させてから変換すればいい:
return_str = return_str+"\n"
testclass.filehandler.write(return_str.encode('UTF-8'))
0347デフォルトの名無しさん
2010/10/24(日) 21:55:370348デフォルトの名無しさん
2010/10/24(日) 23:09:330349デフォルトの名無しさん
2010/10/24(日) 23:14:380350デフォルトの名無しさん
2010/10/25(月) 17:54:02ここがおすすめ
http://diveintopython3-ja.rdy.jp/strings.html
0351デフォルトの名無しさん
2010/10/25(月) 18:51:330352デフォルトの名無しさん
2010/10/25(月) 20:08:05自分に合ったやつを選べばいいんじゃない?
0353デフォルトの名無しさん
2010/10/26(火) 04:12:150354デフォルトの名無しさん
2010/10/26(火) 20:32:350355デフォルトの名無しさん
2010/10/27(水) 16:23:30その画像をメールで送りたいんだけど、
・ウインドウの列挙
・画像のキャプチャ
はどうすればいいですか?
ライブラリ有りますか?
0356デフォルトの名無しさん
2010/10/27(水) 17:10:010357デフォルトの名無しさん
2010/10/27(水) 17:14:550358デフォルトの名無しさん
2010/10/31(日) 11:56:05下記のコードで値が取れないのですが、問題があれば指摘ください。
import sys
import cgi
def application(environ, start_response):
form = cgi.FieldStorage()
user_name = form.getvalue('txt_username', 'Unknown')
(略)
この「txt_username」の入力値が拾えません。
0359デフォルトの名無しさん
2010/10/31(日) 12:37:220360デフォルトの名無しさん
2010/10/31(日) 13:33:50mod_python環境だったりしない?
0361デフォルトの名無しさん
2010/10/31(日) 14:37:330362デフォルトの名無しさん
2010/10/31(日) 15:06:190363デフォルトの名無しさん
2010/10/31(日) 23:22:59WebOb 波動?
0364デフォルトの名無しさん
2010/11/04(木) 14:58:240365デフォルトの名無しさん
2010/11/25(木) 15:44:300366デフォルトの名無しさん
2010/12/06(月) 22:41:57別に要らないけど。
0367デフォルトの名無しさん
2010/12/10(金) 12:43:360368デフォルトの名無しさん
2010/12/10(金) 14:04:110369デフォルトの名無しさん
2010/12/11(土) 09:30:050370デフォルトの名無しさん
2010/12/13(月) 03:18:1010年くらいで移行できたらいいなみたいな感じらしいけど
0371デフォルトの名無しさん
2010/12/13(月) 03:44:370372デフォルトの名無しさん
2010/12/13(月) 07:16:380373デフォルトの名無しさん
2010/12/13(月) 07:53:520374デフォルトの名無しさん
2010/12/13(月) 09:05:44もう自分でやるか
0375デフォルトの名無しさん
2010/12/13(月) 10:18:370376デフォルトの名無しさん
2010/12/14(火) 14:27:020377デフォルトの名無しさん
2010/12/15(水) 08:11:13from __ancient__ import print
0378デフォルトの名無しさん
2010/12/21(火) 20:27:31それとも政治的な理由(ようは作者が3系の流れに反抗しているとか)?
同じC++で作られているQtのほうが意外と早く対応したんで
この温度差にちょっと違和感を感じている。
単に「時間がないマンドクセ」ならまだいいんだけどさ。
0379デフォルトの名無しさん
2010/12/21(火) 20:55:42言うなればそれまでは3β版みたいなもんだし
0380デフォルトの名無しさん
2010/12/21(火) 22:23:46いや、単なるエンジンのバージョンアップ待ちなら
気長に待つんだけどさ。
Qtもそうだったんだけどコミュニティが分裂したりするんじゃ
嫌だなあなんて思ったんで、ちょっと聴いてみた
(あっちはGPL脱却が目的みたいだけど)
気に入らなけりゃフォークしちまえってハッカー文化も嫌いじゃないけど
俺はたんに使うだけの利用者なんで、あんまり分裂されてもうれしくないのだw
0381デフォルトの名無しさん
2010/12/21(火) 22:38:423.2はそんな感じのリリースだし、Pythonの開発者は分裂していない。
3.2がリリースされてから有名プロダクトの3系対応が一気に進むはず。
0382デフォルトの名無しさん
2010/12/21(火) 22:50:03そっか。トンクス。
いま公式見たら3.2βでたのが2010年の12月で2011年2月がファイナルリリースか。
それで本当に移行が進むんだったらうれしいな。
慣れてきたら、なんだかんだで3系のほうが使いやすいし。
0383デフォルトの名無しさん
2011/01/13(木) 23:33:02print >> log, x, y, z
print a, b, c
python3でこれはどう書けばいいのでしょうか?
0384デフォルトの名無しさん
2011/01/14(金) 02:58:53logging.basicConfig(filename='log.txt', level=logging.DEBUG)
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
ch.setFormatter(logging.Formatter('%(message)s'))
logger = logging.getLogger('root')
logger.addHandler(ch)
logger.debug('%s, %s, %s' % (x, y, z))
print(a, b, c)
0385デフォルトの名無しさん
2011/01/14(金) 03:11:35log = open('log.txt', 'a')
print(x, y, z, file=log)
print(a, b, c)
0386デフォルトの名無しさん
2011/01/14(金) 16:30:17ありがとう
0387デフォルトの名無しさん
2011/01/26(水) 15:51:400388デフォルトの名無しさん
2011/01/29(土) 21:43:510389デフォルトの名無しさん
2011/01/29(土) 23:02:030390デフォルトの名無しさん
2011/02/05(土) 16:36:480391デフォルトの名無しさん
2011/02/13(日) 19:27:120392デフォルトの名無しさん
2011/02/14(月) 19:01:58kwsk
0393デフォルトの名無しさん
2011/02/16(水) 02:52:59もうあまり覚えてないが、今出てる3.2rc2 と 3.13?で同じ簡単なコードを書いて実行速度計っただけ
リストへの代入かなんかだったような…
複数回実行して比較したり、n回試行の平均出したりしたら、9割の確率で3.2rc2のが遅かったってだけ
正式なベンチマーク使ったり、色々な処理で比較したりはしてない
3.2finalや、その次のバージョンとかで早くなる事に期待
0394デフォルトの名無しさん
2011/02/22(火) 13:44:59.530395デフォルトの名無しさん
2011/02/23(水) 10:37:49.25かってに、google に甘い期待をしているんだけど、
ttp://sourceforge.jp/magazine/11/02/22/104206
これとかを見ると、google 的には、
C++ は Web アプリみたいにして、
Android に持っていくつもりなのかな。
プログラマのヘマでセキュリティーホール作られるよりは、
制限あっても、sandbox 内で…って感じで。
Javaが選ばれた理由も、そんなんじゃなかったっけ?
0396デフォルトの名無しさん
2011/02/23(水) 12:21:38.640397デフォルトの名無しさん
2011/03/03(木) 22:45:39.90三項演算子といい、ところどころ書き方がきもいんだよな。
0398デフォルトの名無しさん
2011/03/18(金) 23:35:27.47> こんな記号列が出てくる言語をオレはまともなプログラミング言語だとは思わない
>
> f _ _ (_:_) [] = []
>
> C++ や Perl や BrainFcukと同レベル。 以上。
ってGuidoが言ってた。
0399デフォルトの名無しさん
2011/03/20(日) 07:33:53.82_が何でもいいって意味だってことはHaskellの序盤で習うことなので
それは読もうと思えば簡単に読める。書いた人が後から見て意味が分からないということもない。
しかもその文だけで関数fが定義されるわけじゃなく、下に具体的な記述が続く。
まあhaskellが読みやすいとは俺も思えんけど。記号列とかじゃなく、高階関数の多用で読みづらくなってる。
whatが分かるようにはなってるかもしれんけど、その関数に慣れてない人が見るとhowが分からない。
0400デフォルトの名無しさん
2011/04/01(金) 23:45:03.110401デフォルトの名無しさん
2011/04/01(金) 23:55:06.93[GCC 4.3.4 20090804 (release) 1] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> reduce
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'reduce' is not defined
>>> import functools
>>> functools.reduce
<built-in function reduce>
0402デフォルトの名無しさん
2011/04/13(水) 15:16:14.99計算量の多いシミュレーションを実行したら
Python 3.1.3 587.127000093s
Python 3.2 901.7620000839233s
両方ともCython-0.14.1を利用
1.5倍も遅い
全く同じプログラムで乱数のシードも同じにしてるのにシミュレーション結果異なるし
多分、Cythonの型変換とかで切り捨てられる精度が変わったんだろうが
0403デフォルトの名無しさん
2011/04/14(木) 09:00:06.71そうだけど、cygwin 使っている時点で遅いわな。
0404デフォルトの名無しさん
2011/04/14(木) 10:34:30.320405デフォルトの名無しさん
2011/04/26(火) 12:45:24.990406デフォルトの名無しさん
2011/05/23(月) 21:08:57.640407デフォルトの名無しさん
2011/05/24(火) 00:45:36.300408デフォルトの名無しさん
2011/05/25(水) 19:56:18.680409デフォルトの名無しさん
2011/05/28(土) 18:38:18.840410デフォルトの名無しさん
2011/05/28(土) 19:07:06.910411デフォルトの名無しさん
2011/05/29(日) 00:35:54.430412デフォルトの名無しさん
2011/05/29(日) 09:21:41.36pygame!!
0413デフォルトの名無しさん
2011/05/29(日) 13:42:31.430414デフォルトの名無しさん
2011/05/29(日) 16:04:32.38bin(ord('a'))
こうゆうこと?
0415デフォルトの名無しさん
2011/05/29(日) 16:24:26.20ありがとう
これを文字列に対して使いたいんだけど、一気に出来ない?
やっぱりforで1個ずつやるしかないかな?
0416デフォルトの名無しさん
2011/05/30(月) 12:20:37.51結局for文使うか
0417デフォルトの名無しさん
2011/06/01(水) 22:44:46.6504181
2011/07/03(日) 15:40:09.900419デフォルトの名無しさん
2011/08/26(金) 14:41:09.430420デフォルトの名無しさん
2011/08/27(土) 11:34:08.730421デフォルトの名無しさん
2011/08/27(土) 13:59:19.800422デフォルトの名無しさん
2011/09/02(金) 09:55:10.540423デフォルトの名無しさん
2011/09/02(金) 14:32:57.700424デフォルトの名無しさん
2011/09/12(月) 23:39:41.70サードパーティのライブラリはいつ充実するの?
0425デフォルトの名無しさん
2011/09/12(月) 23:40:49.850426デフォルトの名無しさん
2011/09/13(火) 00:29:53.680427デフォルトの名無しさん
2011/10/03(月) 17:17:09.78特定の事にのみ使うとかで、3.xでは対応してないとかならわかるけど
Pythonを勉強するとかの理由なら3.xやるべきだわ
>>423
ttp://www.lfd.ucl.edu/~gohlke/pythonlibs/
0428デフォルトの名無しさん
2011/10/03(月) 18:16:23.78http://www.lfd.uci.edu/~gohlke/pythonlibs/
0429418
2011/10/19(水) 23:14:47.300430デフォルトの名無しさん
2011/10/20(木) 21:56:02.91http://en.wikipedia.org/wiki/Comparison_of_Web_application_frameworks#Python_2
0431デフォルトの名無しさん
2011/10/21(金) 11:56:14.89どうたらこうたら
0432デフォルトの名無しさん
2011/10/21(金) 21:02:54.59ttp://lycopersin.blogspot.com/2011/04/64bit-windowscython.html
ttp://wiki.cython.org/64BitCythonExtensionsOnWindows
このあたりを参考にしてやった結果
C:\Program Files\Microsoft SDKs\Windows\v7.0>set DISTUTILS_USE_SDK=1
C:\Program Files\Microsoft SDKs\Windows\v7.0>Bin\setenv /x64 /release
>The x64 compilers are not currently installed.
>Please go to Add/Remove Programs to update your installation.
>.
>Setting SDK environment relative to C:\Program Files\Microsoft SDKs\Windows\v7.0.
>指定されたバッチ ラベルが見つかりません - Set_x64
>
>C:\Program Files\Microsoft SDKs\Windows\v7.0>
と怒られて、無視してcythonを利用しようとすると、
>cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\Python31\include -IC:\Python31\PC /TcC:\Python31\Sc
>ripts\Cython-0.15.1\Cython\Plex\Scanners.c /Fobuild\temp.win-amd64-3.1\Release\Python31\Scripts\Cyth
>on-0.15.1\Cython\Plex\Scanners.obj
>error: command 'cl.exe' failed: No such file or directory
でエラー
0433デフォルトの名無しさん
2011/10/21(金) 21:04:30.80ttp://social.msdn.microsoft.com/Forums/en/windowssdk/thread/29cccbf7-4d5f-4c8d-a075-972fb8e820ae ここより
C:\Windows\System32\cmd.exe /E:ON /V:ON /T:0E /K "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\Setenv.cmd" /x64 /release
で、Setenv.cmdを起動すればいいことがわかり、やっとできた
MinGW、distutils.cfgは、不要
結局最初のエラーの原因よくわからないし、MinGWに比べて、VisualStudioのコンパイルかなり遅いし
■ このスレッドは過去ログ倉庫に格納されています