X



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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2009/02/19(木) 22:30:15
Python 3.0 は隔離スレを作るべきだと思うのは俺だけかな?
そもそもあれは実用で使うには時期が早すぎるわけで、ここで
普通に語られても困る。
--------
別に
--------
細分化する必要性が全く感じられない。
各自がレスの内容を収拾選択すればいいだけ。
0107デフォルトの名無しさん
垢版 |
2009/12/22(火) 11:44:47
みんなの力をオラに貸してくれ!
Python3.0に乗り換えたら、Tkinterパッケージの位置が変わったみたいで、
GUIの部分が作れねぇ!
調べても、出てくるのは2.x系統のサンプルコードばかり。
だれか、Python3.0で、ボタンを押してイベントが発生するTkinterのコード
を、ここに書いていただけませんか!?
0109デフォルトの名無しさん
垢版 |
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
でした。困ります(´・ω・`)
0112オオツカ
垢版 |
2009/12/22(火) 20:39:44
できました\(^o^)/
神様ありがとう!!
0118デフォルトの名無しさん
垢版 |
2010/02/17(水) 02:20:20
いまPython始めるべき?
やるとするとPython3になるけど。
0121デフォルトの名無しさん
垢版 |
2010/02/17(水) 23:01:10
プログラムの勉強ったってPythonの勉強を兼ねるんだろからな。
Pythonの勉強となるとサイトのサンプルプログラムとか
既存ライブラリ使ってみようとかあれこれやりたくなるでしょ。

そしてつまづいて「Pythonむずかしー」あるいは「Python糞だな」
ってなるでしょ。2.6ならそうならないでしょ。そういうことだよ。
0125デフォルトの名無しさん
垢版 |
2010/02/18(木) 18:44:43
最新ビジネスソフト入荷!
激安販売中!
  http://wwttww.hostrator.com
0130デフォルトの名無しさん
垢版 |
2010/02/19(金) 17:41:59
3だけなのか知らないけど、Windowsでリダイレクトからの標準入力が欲しくて、
for line in sys.stdin:
 pass
と書いたのだけれど、普通に実行したときは問題ないのに、
hoge.rb < file.txt
と実行したら、sys.stdinがNoneになってるんだよね。
標準入力を読み込むにはどうしたらいいの?
0134デフォルトの名無しさん
垢版 |
2010/02/19(金) 21:04:57
>>133
Windowsの有名なバグ。
なんか当てたら直ったと思う。
Vista以降だとなんも当てなくても直ってたかもしれない。
0137デフォルトの名無しさん
垢版 |
2010/02/26(金) 13:07:31
>>136
そうだよね。Python2のUnicodeはエッジケースが多すぎて、初心者じゃなくても
切り傷だらけになる。初心者なら脱落してもおかしくない。

print u"あいうえお" はできるのに raw_input(u"あいうえお") ができないとか、
os.listdir(u'.') しても filesystemencoding でデコードできないファイル名は
バイト列としてリストに入るとか。
0138デフォルトの名無しさん
垢版 |
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)
0140デフォルトの名無しさん
垢版 |
2010/02/28(日) 18:37:24
Python3.xで俺が期待したこと

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

classmethod, assertEqual, set_autholizer

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

欧米人はあんまり気にしないのだろうか?
0143デフォルトの名無しさん
垢版 |
2010/03/01(月) 01:23:19
非標準なライブラリ使えばすぐに汚染される程度だからな
だんだん慣れて来たしもうどうにでもなーれ
0145デフォルトの名無しさん
垢版 |
2010/03/09(火) 22:48:42
過疎ってるな。

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

Javaとかから持ってきたライブラリだとhasKeyみたいに、大文字区切りになってる。
0146デフォルトの名無しさん
垢版 |
2010/03/09(火) 23:06:57
命名規則を標準でがっちり決めてくれれば、それをエディタの機能強化に回せるんだろうけどな。
標準から外れるとエディタ支援を受けれなくなるから、みんな同じような書き方になって見やすくなるはず。
0147デフォルトの名無しさん
垢版 |
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

本体は大丈夫かもしれないけど
インストーラでコケルとか周辺ソフトとの連携とかでコケルいう
事例は、しばらく続くのだろうなぁ…
0148デフォルトの名無しさん
垢版 |
2010/04/05(月) 04:03:46
一体いつになったら主流になるのか・・・
0150デフォルトの名無しさん
垢版 |
2010/04/05(月) 16:34:01
2.5,2.6とか出さないほうが良かったのかな。
地デジと同じでズルズル先延ばしで、移行期間があっても移行しない。
0152デフォルトの名無しさん
垢版 |
2010/04/05(月) 19:05:54
3.xの日本語リファレンスが欲しいのに入門書ばっかだ
0158デフォルトの名無しさん
垢版 |
2010/05/01(土) 13:56:25
Rubyでいうところのredoが欲しんだけどないかな。
while 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) で常にかければいいんだけど、書けないこともよくあるので。
0162デフォルトの名無しさん
垢版 |
2010/05/03(月) 02:49:42
>>160
3では削除されたし、2でも多倍長整数の最大値はないよ。
大抵の場合はそれで十分だと思うし、なくても
HUGE_VAL = 2**31
とでもしとけば、大抵の用途では十分だと思うけど。

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

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

整数型であることが重要なら、クラス継承して比較演算子を書き換えるか。
0165デフォルトの名無しさん
垢版 |
2010/05/03(月) 11:33:32
>>164
Python2の標準ライブラリー相当品は3でもOKなんだよね?
その他の3rdPartyライブラリーは殆ど使わないんだ
0166デフォルトの名無しさん
垢版 |
2010/05/03(月) 12:23:41
>>165
基本的にはそうだけど、いくつかは廃止・統合されてるから標準については公式行って確認するといいよ。
サードパーティーの使わないなら、対応状況はかなりいいはず。
0171デフォルトの名無しさん
垢版 |
2010/05/03(月) 15:14:05
なんか違和感あるなw

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

for i, x in enumerate(seq):
  v = func(x)
  if i == 0 or v < minv:
    minv = v
0175デフォルトの名無しさん
垢版 |
2010/05/12(水) 00:07:01
3.xのライブラリが2.x並になるのって、あと何年かかるんだろうか
0179デフォルトの名無しさん
垢版 |
2010/05/18(火) 09:44:30
なんで俺たち3.xなんか始めちゃったんだろう……
0181デフォルトの名無しさん
垢版 |
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度実行されないよう最適化してくれるのかな?
0183デフォルトの名無しさん
垢版 |
2010/05/19(水) 06:55:06
どうもスクリプト言語は互換性を一度ぶった切りたくなるものみたいだなぁ
Rubyは一見その点では有利そうなんだが、実際にはバージョン間の互換性がさっぱりで、
単に同じこと(過去の微妙な仕様の切り捨て)を小分けに毎回やってるようなもんだから
ある意味余計に悪いし
まぁでも、俺は当分3kは使わないけど、いずれ移行するような気はするけどな
0188181
垢版 |
2010/05/20(木) 00:49:13
>>182
やぱCでもgcc:O2でもfuncの中身までは解析しなかった
変数の出現が関数外ではありえない、みたいな
extern宣言が出来ると、イケチャウ雰囲気あるんだけどな〜
動的スコープだとほんと無理なのかな

誰か天才いないかーーーー
0191デフォルトの名無しさん
垢版 |
2010/05/20(木) 15:27:14
>>159
> min(func(x) for x in seq) で常にかければいいんだけど、
> 書けないこともよくあるので。
これってどんなとき?
0192デフォルトの名無しさん
垢版 |
2010/05/20(木) 18:17:37
>>159
reduce使え
min(seq)は
reduce(min, seq)と同じ

その手のやつは大概適当なfを用意してやれば
reduce(f, seq)
に書き換えられる
0193デフォルトの名無しさん
垢版 |
2010/05/20(木) 18:19:04
ストリームデータから最小値を見つけるとか。
ファイルシステムを捜査しながら最大サイズのファイルを見つけるとか。
かな
0197デフォルトの名無しさん
垢版 |
2010/05/21(金) 08:11:23
初心者のお試しレベルなら問題ない
パフォーマンス考えたら避けるべき
0200デフォルトの名無しさん
垢版 |
2010/05/23(日) 14:44:46
>>140
パイソンってこういうコーディングルール統一されてると勝手に思ってたけど、汚いんだな

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

理路整然としてるイメージを勝手に持ってたけど、rubyのほうがそゆとこしっかりしてんのかな
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況