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

■ このスレッドは過去ログ倉庫に格納されています
2009/02/19(木) 22:30:15
Python 3.0 は隔離スレを作るべきだと思うのは俺だけかな?
そもそもあれは実用で使うには時期が早すぎるわけで、ここで
普通に語られても困る。
--------
別に
--------
細分化する必要性が全く感じられない。
各自がレスの内容を収拾選択すればいいだけ。
2010/10/10(日) 01:22:35
>>299
インテリセンスが賢くなる。

>>300
Javaプログラマにコンプレックスがあるの?
2010/10/10(日) 01:30:34
>>301
コンプレックスというより、バカで使えない、というトラウマがあってw
2010/10/10(日) 09:19:37
一山いくらのドカタとハッカーを一緒にするな!
2010/10/10(日) 10:22:07
このスレ見てるとPythonももう終わったなって感じだな
2010/10/10(日) 11:53:58
__class__きもいんだけど。
2010/10/20(水) 04:03:55
どうでもいいニュース:
今日、Arch Linuxの/usr/bin/pythonがpython3になった。
2010/10/20(水) 10:30:47
Arch使ってるような変態じゃなくて玄人連中は別に困りそうも無いから問題無い
2010/10/20(水) 13:26:33
debianは未だに(ry
2010/10/20(水) 13:54:18
OSが勝手に3採用するのは困る
2010/10/21(木) 00:22:52
どうせ2もpython2とかいう名前で入れられるんだろ?
2010/10/21(木) 08:31:20
さっさと3に移行しろよクズども
2010/10/21(木) 10:35:49
Python3の旅はこれからだ!
グイド先生の次回作、Python4にご期待ください。
2010/10/21(木) 13:57:52
Djangoが使えるようになったら移行する > 3
2010/10/21(木) 15:13:32
Python素人だけれども、
ユニコード文字列とかのややこしさがなくていいなと思って3.1をインストールしたんだが、
間に合ううちに2.7に切り替えるべきか? それともどうせ通る道と受け入れるべきか?
2010/10/21(木) 15:47:52
必要になったら2.xをいれればいいさ
2010/10/21(木) 18:53:46
>>314
3rdパーティのライブラリが使いたくなったらPython2.xへ。
2010/10/21(木) 22:39:06
必要になったら3.xをいれればいいさ
5年後ぐらいにはそうなるよきっと
2010/10/21(木) 23:15:30
Google App Engine(とWSGI準拠のアプリケーション)が
3に対応したら必要性で周りのライブラリも加速するんじゃねぇかなーと思う
2010/10/21(木) 23:16:58
3.2から一気に加速するよ。
2010/10/22(金) 00:23:15
2から3に引っ越すメリットってなに?
2010/10/22(金) 00:38:56
自己満足
2010/10/22(金) 00:57:04
俺ってすごい感
2010/10/22(金) 21:19:58
文字コード関連のエラーを見ないで済む
2010/10/23(土) 00:08:54
嘘つくな。
UnicodeDecodeErrorは相変わらず出るぞ。
2010/10/23(土) 00:37:33
ということはつまり2から3に引っ越すメリットってなに?
2010/10/23(土) 01:25:56
将来にわたって比較的安心につかえる。
現時点でのメリットはそれしかない。
2010/10/23(土) 09:11:21
>>324
そりゃ、出るには出るよ。
2010/10/23(土) 20:45:30
>>326
クククッ, ハタシテ ソウカナ となりそうで怖い
2010/10/24(日) 03:18:33
初心者ならいいけど、
ある程度の経験者でUnicodeDecodeErrorと格闘してるような奴は、
基礎を固めずに、行き当たりばったりでプログラムを書いてるんでしょ。
2010/10/24(日) 03:37:10
いちいち u'' を書かなくて良くなったんだってね
2.x の unicode = 3.x の string
2.x の string = 3.x の bytearray
っていう認識で桶?
2010/10/24(日) 03:48:05
俺はその認識。
332デフォルトの名無しさん
垢版 |
2010/10/24(日) 09:25:20
>>329
そういう基礎や定石的な対処法って何に書いてあるものなんだ?
2010/10/24(日) 10:00:24
>>329
日本人以外にもそれ言える?
2010/10/24(日) 11:28:51
>>332
PEP
2010/10/24(日) 12:46:11
Python3.1使ったWEBを作ってるんですが
次のようなエラーが出て困ってます。
UnicodeEncodeError: 'ascii' codec can't encode characters in position 178-180:

インタープリターで実行すると出ないエラーです。
ブラウザから実行したときに出るエラーです。
処理としてはDBアクセスして検索SQL実行して結果セットをループで回してXML形式の文字列としてクライアント側に返すといった内容です。

原因がわかれば教えてください。
2010/10/24(日) 13:08:26
原因はおつむの悪さ
2010/10/24(日) 13:13:02
馬鹿には無理
2010/10/24(日) 13:33:07
>>335
文字コードは、省略してもいいって絶対の自信がない場合は面倒くさくても指定しろ。
2010/10/24(日) 13:54:27
>>335
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
のように、sys.stdoutを置き換えると良いよ(utf-8の部分は適宜置き換えて)
2010/10/24(日) 14:33:26
>>335
基本的に、文字列を出力するときはエンコードしなきゃいけない。

にもかかわらず、コンソールで実行するときに問題が表面化しないのは、
Pythonが端末のエンコーディング(例えば'UTF-8')を sys.stdout.encoding に自動で設定してくれているおかげ。
これによって、print "うんこ" は、sys.stdout.write("うんこ".encoding("utf-8"))として実行される。

しかし、CGIで実行する場合はそんな支援はしれくれず、sys.stdout.encoding はNoneになっている)ので、
print "うんこ" は、sys.stdout.write("うんこ".encoding("ascii"))として実行
されてしまい、エラーとなる。
2010/10/24(日) 14:34:50
まちがえ。encodingじゃなくてencodeね。
342335
垢版 |
2010/10/24(日) 15:15:20
encoding('UTF-8')を付加してみたんですが、今度は違ったエラーが出てきました。

修正前)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型には、どうやって変換するのでしょうか?
2010/10/24(日) 15:18:47
ggrks
2010/10/24(日) 15:21:54
>>342
そういう変な(中途半端な)場所じゃなくて、I/Oの直前直後に
変換かけるようにしなよ
2010/10/24(日) 15:24:56
文字コードについて知らない・知ろうとしない人は
Python3になっても苦労するだろうね
2010/10/24(日) 16:04:26
>>342
文字列("\n")とバイト列(return_str.encode('UTF-8'))を結合しようとしてるからそうなるだけ。

最初に結合させてから変換すればいい:
return_str = return_str+"\n"
testclass.filehandler.write(return_str.encode('UTF-8'))
2010/10/24(日) 21:55:37
文字コードって何?
2010/10/24(日) 23:09:33
ggrks
2010/10/24(日) 23:14:38
2ch は心の荒んだ人の溜り場だな
350デフォルトの名無しさん
垢版 |
2010/10/25(月) 17:54:02
>>347
ここがおすすめ
http://diveintopython3-ja.rdy.jp/strings.html
2010/10/25(月) 18:51:33
dive intoはいろいろ問題があるから非推奨だって話を読んだことがあるけど。
2010/10/25(月) 20:08:05
英語の文献まで手を広げれば色々あるから
自分に合ったやつを選べばいいんじゃない?
2010/10/26(火) 04:12:15
主要モジコードのISOの番号を全部暗記していた時代が僕にもありました。
2010/10/26(火) 20:32:35
iso-2022-jpなら知ってる
2010/10/27(水) 16:23:30
Windowsでウインドウ列挙して指定のウインドウをキャプチャして
その画像をメールで送りたいんだけど、
・ウインドウの列挙
・画像のキャプチャ
はどうすればいいですか?
ライブラリ有りますか?
2010/10/27(水) 17:10:01
ctypes
2010/10/27(水) 17:14:55
pywin32
2010/10/31(日) 11:56:05
Python3.1でPOSTデータの取得の仕方で質問です。

下記のコードで値が取れないのですが、問題があれば指摘ください。
import sys
import cgi
def application(environ, start_response):
form = cgi.FieldStorage()
user_name = form.getvalue('txt_username', 'Unknown')
(略)

この「txt_username」の入力値が拾えません。
2010/10/31(日) 12:37:22
http://wsgi.org/wsgi/Specifications/handling_post_forms
2010/10/31(日) 13:33:50
>>358
mod_python環境だったりしない?
2010/10/31(日) 14:37:33
>def application(environ, start_response):
2010/10/31(日) 15:06:19
CGIとWSGIは別物だぜ
2010/10/31(日) 23:22:59
>>358
WebOb 波動?
2010/11/04(木) 14:58:24
numpy-1.5.1rc1.win32-py3.1-mkl.exe たまたま見てたら今日出たのか
2010/11/25(木) 15:44:30
matplotlibがないとなぁ
2010/12/06(月) 22:41:57
3.xのリファレンスは翻訳してないのかえ?
別に要らないけど。
2010/12/10(金) 12:43:36
死にたい。
2010/12/10(金) 14:04:11
逝くならクリスマス前にな。
2010/12/11(土) 09:30:05
訳を聞こうか
2010/12/13(月) 03:18:10
流行る気配すら無いんだが大丈夫なんかな
10年くらいで移行できたらいいなみたいな感じらしいけど
2010/12/13(月) 03:44:37
Python2.8が出るに1ユーロ賭ける
2010/12/13(月) 07:16:38
Python2.10が出るに1ジンバブエドル賭ける
2010/12/13(月) 07:53:52
py2exeとwxPythonが3系に対応してくれれば乗り換えるんだが。
2010/12/13(月) 09:05:44
Py2exeって対応する予定ないのかな
もう自分でやるか
2010/12/13(月) 10:18:37
Python3.2から本格的に移行が始まるよ。
2010/12/14(火) 14:27:02
python 3.-1 とかが出そう
2010/12/15(水) 08:11:13
Python3に、Python2互換モードを導入すればよろし。

from __ancient__ import print
2010/12/21(火) 20:27:31
wxPythonが3系に移行しないのは、何か技術的に難しかったりするの?
それとも政治的な理由(ようは作者が3系の流れに反抗しているとか)?

同じC++で作られているQtのほうが意外と早く対応したんで
この温度差にちょっと違和感を感じている。

単に「時間がないマンドクセ」ならまだいいんだけどさ。
2010/12/21(火) 20:55:42
3.2がでるまでは様子見じゃない?
言うなればそれまでは3β版みたいなもんだし
2010/12/21(火) 22:23:46
3.2ってそんな感じのリリースなん?

いや、単なるエンジンのバージョンアップ待ちなら
気長に待つんだけどさ。

Qtもそうだったんだけどコミュニティが分裂したりするんじゃ
嫌だなあなんて思ったんで、ちょっと聴いてみた
(あっちはGPL脱却が目的みたいだけど)

気に入らなけりゃフォークしちまえってハッカー文化も嫌いじゃないけど
俺はたんに使うだけの利用者なんで、あんまり分裂されてもうれしくないのだw
2010/12/21(火) 22:38:42
>>380
3.2はそんな感じのリリースだし、Pythonの開発者は分裂していない。
3.2がリリースされてから有名プロダクトの3系対応が一気に進むはず。
2010/12/21(火) 22:50:03
>>381
そっか。トンクス。
いま公式見たら3.2βでたのが2010年の12月で2011年2月がファイナルリリースか。
それで本当に移行が進むんだったらうれしいな。
慣れてきたら、なんだかんだで3系のほうが使いやすいし。
2011/01/13(木) 23:33:02
log = open('log.txt', 'a')
print >> log, x, y, z
print a, b, c

python3でこれはどう書けばいいのでしょうか?
2011/01/14(金) 02:58:53
import logging
logging.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)
2011/01/14(金) 03:11:35
>>383
log = open('log.txt', 'a')
print(x, y, z, file=log)
print(a, b, c)
2011/01/14(金) 16:30:17
>>385
ありがとう
2011/01/26(水) 15:51:40
早くコンパイラ出来ないかな〜
2011/01/29(土) 21:43:51
Python3.2 rc2が明日だな
2011/01/29(土) 23:02:03
明日は SaaSes 回線増強の日
2011/02/05(土) 16:36:48
python3.2実効速度遅いな
2011/02/13(日) 19:27:12
3.2マダァ?(・∀・ )っ/凵⌒☆チンチン?
2011/02/14(月) 19:01:58
>>390
kwsk
2011/02/16(水) 02:52:59
>>392
もうあまり覚えてないが、今出てる3.2rc2 と 3.13?で同じ簡単なコードを書いて実行速度計っただけ
リストへの代入かなんかだったような…
複数回実行して比較したり、n回試行の平均出したりしたら、9割の確率で3.2rc2のが遅かったってだけ
正式なベンチマーク使ったり、色々な処理で比較したりはしてない
3.2finalや、その次のバージョンとかで早くなる事に期待
2011/02/22(火) 13:44:59.53
3.2
2011/02/23(水) 10:37:49.25
206 デフォルトの名無しさん [sage] 2011/02/23(水) 00:30:05.97 ID: Be:
    かってに、google に甘い期待をしているんだけど、

    ttp://sourceforge.jp/magazine/11/02/22/104206

    これとかを見ると、google 的には、
    C++ は Web アプリみたいにして、
    Android に持っていくつもりなのかな。

    プログラマのヘマでセキュリティーホール作られるよりは、
    制限あっても、sandbox 内で…って感じで。

    Javaが選ばれた理由も、そんなんじゃなかったっけ?
2011/02/23(水) 12:21:38.64
C++は好きだけど、あのビルド時間には耐えられないものがある
2011/03/03(木) 22:45:39.90
pythonの内包表記をHaskellみたいにしてくれないかなぁ
三項演算子といい、ところどころ書き方がきもいんだよな。
2011/03/18(金) 23:35:27.47
> Haskell について一言いわせてもらう。
> こんな記号列が出てくる言語をオレはまともなプログラミング言語だとは思わない
>
> f _ _ (_:_) [] = []
>
> C++ や Perl や BrainFcukと同レベル。 以上。

ってGuidoが言ってた。
2011/03/20(日) 07:33:53.82
>>398
_が何でもいいって意味だってことはHaskellの序盤で習うことなので
それは読もうと思えば簡単に読める。書いた人が後から見て意味が分からないということもない。
しかもその文だけで関数fが定義されるわけじゃなく、下に具体的な記述が続く。

まあhaskellが読みやすいとは俺も思えんけど。記号列とかじゃなく、高階関数の多用で読みづらくなってる。
whatが分かるようにはなってるかもしれんけど、その関数に慣れてない人が見るとhowが分からない。
2011/04/01(金) 23:45:03.11
reduce()が死んでmap()filter()が生きるってマジなん?
■ このスレッドは過去ログ倉庫に格納されています