くだすれPython(超初心者用) その14
レス数が1000を超えています。これ以上書き込みはできません。
0001まぐろ ◆REDOsushik
2012/07/19(木) 10:10:31.45もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。
エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで
前スレ
くだすれPython(超初心者用) その13
http://toro.2ch.net/test/read.cgi/tech/1332304873/
関連スレ
Pythonのお勉強 Part47
http://toro.2ch.net/test/read.cgi/tech/1341819025/
【実験台】 Python 3.0 のお勉強 Part 1 【非互換】
http://toro.2ch.net/test/read.cgi/tech/1235050215/
◆関連リンク
Python の Home Page
ttp://www.python.org/
0002デフォルトの名無しさん
2012/07/19(木) 10:14:09.14|_::;; ~"'ヽ
| //^''ヽ,,)
| i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
|( ´∀`) < きのこ のこーのこ げんきのこ ♪
|(ノ |つ
| |
⊂ _ ノ
""U
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
(´∀` )| < エリンギ まいたけ ブナシメジ ♪
⊂| (ノ |
| |
ヽ _ ⊃
.U""
|
| ミ
| ミ サッ!
| ミ
|
0003デフォルトの名無しさん
2012/07/19(木) 10:14:59.07│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
0004デフォルトの名無しさん
2012/07/19(木) 10:15:48.61http://speirs.blog17.fc2.com/blog-entry-4.html
http://atomic.jpn.ph/prog/etc/encode.html
http://d.hatena.ne.jp/kakurasan/20100330/p1
http://pc11.2ch.net/test/read.cgi/tech/1217836194/339
339 :デフォルトの名無しさん:2008/08/23(土) 08:36:00
PythonのUnicodeEncodeErrorを知る
http://lab.hde.co.jp/2008/08/pythonunicodeencodeerror.html
よくまとまってた。あとで読む
0005デフォルトの名無しさん
2012/07/19(木) 10:35:30.14ttp://www.python.org/download/
Python のコーディングガイド PEP8
ttp://www.python.org/dev/peps/pep-0008/
Python のコーディングガイド PEP8 - 日本語訳
ttp://www.oldriver.org/python/pep-0008j.html
日本語文字列コード問題まとめ
ttp://python.matrix.jp/tips/string/encoding.html
インタラクティブモードのエンコード
ttp://python.matrix.jp/tips/compatibility/interact_encoding.html
SJISから卒業出来ないひとのための禁じ手
reload(sys); sys.setdefaultencoding('cp932')
Pythonの文字化け対策:sys.setdefaultencodingの謎
ttp://hain.jp/index.php/tech-j/2008/01/07/Python%E3%81%AE%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91
実行時にdefaultencodingを変更する
ttp://d.hatena.ne.jp/perezvon/20070715/1184469534
PEP-8とか
ttp://www.python.org/dev/peps/pep-0008/
ttp://oldriver.org/python/pep-0008j.html
Google Python Style Guideとか
ttp://google-styleguide.googlecode.com/svn/trunk/pyguide.html
ttp://works.surgo.jp/translation/pyguide.html
0006デフォルトの名無しさん
2012/07/19(木) 10:36:52.24言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
0007デフォルトの名無しさん
2012/07/19(木) 10:49:00.820008デフォルトの名無しさん
2012/07/19(木) 14:55:58.57乙py
0009デフォルトの名無しさん
2012/07/19(木) 17:42:43.340010デフォルトの名無しさん
2012/07/19(木) 17:44:33.400011デフォルトの名無しさん
2012/07/19(木) 17:44:44.500012デフォルトの名無しさん
2012/07/19(木) 17:57:45.61/ .\
\ / \ /
\ ___________ . /
\ ./ \ /
| \/ \/...|
| | | |
| | | |
.._ |_| |_|_..
| | さあ‥ 逝こうか‥‥ | |
| | | |
| | | |
| | | |
| |/ ..\| |
| | | |
.._|/| _ _ _ _ _ _ _ _ ...|\|_
/ ..| | _−_−_−_−_− _ | | \
| |/_/━ ━ ━ ━ ━ ━\_\| |
.._| /_/━ ━ ━ ━ ━ ━ ━ \_\.|_
/_/━ ━ ━ ━ ━ ━ ━ \_\
/ /━ ━ ━ ━ ━ ━ ━\ \
0013デフォルトの名無しさん
2012/07/19(木) 18:42:48.030014デフォルトの名無しさん
2012/07/19(木) 20:33:53.51│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
0015デフォルトの名無しさん
2012/07/20(金) 12:43:31.32開発者死んじゃったの?
0016デフォルトの名無しさん
2012/07/20(金) 13:09:49.65ある程度大きい辞書型のデータを保存しようとすると
memoryerrorになってしまうんですが、どうにか保存する方法ってありませんか?
辞書を3分割してもダメだったので他の方法を探しています。
957 名前:デフォルトの名無しさん [sage]: 2012/07/19(木) 17:51:43.51
保存しようとする前にmemoryerrorになると思うけど、
まずどうやってどこに保存しようとしているのか言おうか。
pickle
よく分からんけど、簡単にはこんな感じかな?
f = open('/tmp/dict.pickle', 'wb')
big_L = [None] * (1 << 20) # 書き込むためのbuffer領域を確保
big_dict = {}
try:
do_something()
except memoryerror:
del big_L # 書き込むためのbuffer領域を解放
f.write(big_dict)
del big_dict
big_dict = {}
big_L = [None] * (1 << 20) # buffer 領域を再確保
goto try
f.close()
0017デフォルトの名無しさん
2012/07/20(金) 13:40:45.00わかります
0018デフォルトの名無しさん
2012/07/20(金) 13:54:15.54そのコードの意図を把握できない初級者と中級者と上級者が混乱するからやめろ
0019デフォルトの名無しさん
2012/07/20(金) 14:35:38.67ある処理Aを行うときにmemoryerrorとなってmalloc()に失敗してしまう場合。
処理Aで必要とするmemory領域Bを予め確保しておき、
処理A実行時に領域Bを渡してやることで、
処理A内部でmalloc()を行わなくてよいようにする。
上記方法が>>前スレ951が遭遇した問題の解決方法の定石なの。
C言語の知識が必要になるから、Pythonだけで考える人にとっては反則かも。
# 巨大な辞書を作成する前に以下の行を挿入しておいて、
buffer_for_f_write = b'\0' * 4 * (1024 ** 2) # 4MB
d = {} # 後で辞書を作成する。
# write()時に必要となるであろうmemory領域を解放しておく。
del buffer_for_f_write # 4MB分memory領域に空きを用意する。
f.write() # 4MB空きができたのでmemoryerrorは発生しないはず。
# write()時に必要となるであろうmemory領域を再度確保しておく。
buffer_for_f_write = b'\0' * 4 * (1024 ** 2) # 4MB
# 私が同じ問題に遭遇したときは自分で思いついて解決したもんですが、
# Pythonする人たちはこんな簡単な方法も思いつかないもんですかね。
# 下手したらmalloc()?なんじゃそら?って感じなんですかね。。。。
# Pythonや最近のweb屋って基礎が分かってない気がして怖いんですよね。。。。
0020デフォルトの名無しさん
2012/07/20(金) 14:39:41.97みんな解答避けてただけだろ
0021デフォルトの名無しさん
2012/07/20(金) 14:51:24.14> memoryerrorになってしまうんですが、
無駄な部分を端折って十分に分わかったから曖昧とは思わなかったよ。
0022デフォルトの名無しさん
2012/07/20(金) 14:51:45.56del obj は free(obj) じゃないのよ
0023デフォルトの名無しさん
2012/07/20(金) 15:26:33.74del obj
が正しいよ。
だって、Pythonのcodeだもんよ。
C言語のcodeではないよ。
0024デフォルトの名無しさん
2012/07/21(土) 00:09:08.940025デフォルトの名無しさん
2012/07/21(土) 00:35:28.94巨大な辞書の保存だけど、
write一回で済ませるようなコードでは、一時的に巨大なデータがメモリ上に乗っかるので、memoryerror制限に引っ掛かっても仕方ない。
繰り返し文使って複数回に分けて書き込むと省メモリで済むはず。面倒だったら素直にDB使おう。
>>23
>>22は、del でメモリ開放を期待するようなコードを書くべきではない、って意図じゃないかな。
0026デフォルトの名無しさん
2012/07/21(土) 02:28:08.00>del でメモリ開放を期待するようなコードを書くべきではない、って意図じゃないかな。
下のような書き込みがあったから違うと思いましたですよ。
> free(obj)じゃないのかよ
memoryerror, malloc()という風にPython, C言語の用語を混ぜて書いたので、
それで混乱してしまったのかな?とも思いましたが。
巨大な辞書を保存する場合、どうするのが賢いんでしょ。
for k, v in big_dic.items():
print('{},{}'.format(k, v))
確実なのは↑もしくはsqlite3ぐらいですかね。
0027デフォルトの名無しさん
2012/07/21(土) 03:08:17.110028デフォルトの名無しさん
2012/07/21(土) 03:13:58.44aabaababの中から、bを削除してaaaaaにする感じです。
strip(b)だと前と後ろしか消えませんし...
0029デフォルトの名無しさん
2012/07/21(土) 03:43:56.75"aabaabab".replace("b", "")
0030デフォルトの名無しさん
2012/07/21(土) 03:45:03.580031デフォルトの名無しさん
2012/07/21(土) 04:04:34.3528です。ありがとうゴザイマス。
0032デフォルトの名無しさん
2012/07/21(土) 04:20:14.13辞書の保存なら RDBよりKVSの方が手軽だと思う。
規模にもよるけど、標準で済ませるならdbm系モジュール (pickleする必要があるなら shelve)
オブジェクトDBだったらZODBとかdurus辺り。
普通にpickleでファイルに書き込みでもいけると思うんだけど
dump 使ってる?dumps で一括でシリアライズしてから書き込みしてたりしたら多分アウト
# 前スレ読んでないので推測
0033デフォルトの名無しさん
2012/07/21(土) 04:34:12.00> dump 使ってる?dumps で一括でシリアライズしてから書き込み
> してたりしたら多分アウト
> # 前スレ読んでないので推測
私も分からない。
前スレ>>951の書き込みは、このスレにはないと思う。
0034デフォルトの名無しさん
2012/07/21(土) 06:22:37.90A. お金にならないことに時間を使っているからです。
0035デフォルトの名無しさん
2012/07/21(土) 19:16:18.05何で3系より2系の方が速いのですか?
0036デフォルトの名無しさん
2012/07/21(土) 21:24:27.680037デフォルトの名無しさん
2012/07/21(土) 21:30:00.080038デフォルトの名無しさん
2012/07/21(土) 21:53:05.11内部が簡単だから
0039デフォルトの名無しさん
2012/07/22(日) 14:18:12.03動的型付けの言語の変数は、オブジェクトへのポインタなんだね
行き詰まったら、色んな視野を持つって大切だね
0040デフォルトの名無しさん
2012/07/22(日) 16:28:21.64動的型付け言語の全部が全部そうじゃない
0041デフォルトの名無しさん
2012/07/22(日) 22:03:01.09という事は3系が2系よりも速くなる事はこれからも無いと考えて良いのですか?
0042デフォルトの名無しさん
2012/07/22(日) 23:21:44.280043デフォルトの名無しさん
2012/07/22(日) 23:49:33.13はい
速度を犠牲にして利便性を取りました
速度はハードの進化で補います
0044デフォルトの名無しさん
2012/07/23(月) 02:14:46.950045デフォルトの名無しさん
2012/07/23(月) 02:18:23.800046デフォルトの名無しさん
2012/07/23(月) 10:03:17.11リファレンスとポインタは別物だよ。
一部、同じような振る舞いというだけで。
0047デフォルトの名無しさん
2012/07/25(水) 10:28:16.560048デフォルトの名無しさん
2012/07/25(水) 10:31:11.35http://blog.explainmydata.com/2012/07/expensive-lessons-in-python-performance.html
0049デフォルトの名無しさん
2012/07/26(木) 13:40:06.41いや、そういう問題じゃなく別のもの。
リファレンスしか知らないとそういう理解になるかもね。
0050デフォルトの名無しさん
2012/07/26(木) 14:46:36.710051デフォルトの名無しさん
2012/07/26(木) 14:47:29.110052デフォルトの名無しさん
2012/07/26(木) 14:48:29.270053デフォルトの名無しさん
2012/07/26(木) 15:16:46.31どうみても煽ってんのはお前の方です
ほんとうにありがとうございました
0054デフォルトの名無しさん
2012/07/26(木) 15:19:57.73いや、そういう問題じゃなく別のもの。
煽りしか知らないとそういう理解になるかもね。
0055デフォルトの名無しさん
2012/07/26(木) 15:38:24.50日本語で桶
0056デフォルトの名無しさん
2012/07/26(木) 15:40:59.18日本語で桶
0057デフォルトの名無しさん
2012/07/26(木) 16:19:48.170058デフォルトの名無しさん
2012/07/26(木) 17:25:08.49ポインタを出席番号と考えると、リファレンスは名前。
あだ名みたいな別名で同一人物を参照できる。
0059デフォルトの名無しさん
2012/07/26(木) 17:40:38.00何か特定の言語においけるリファレンスという仕様の話をしてるのか?
0060デフォルトの名無しさん
2012/07/26(木) 17:52:17.73>>46が突然リファレンスと言い出した。これはポインタより抽象的な参照のことを言ってるのかと思ったら
どうやら違うみたいだ、Pythonで普通リファレンスとかデリファレンスとか言わないから具体的にPythonの参照がそれなのかは知らない
0061デフォルトの名無しさん
2012/07/26(木) 18:40:30.590062デフォルトの名無しさん
2012/07/26(木) 19:00:00.89え、Pythonの変数はリファレンスだよ?
0063デフォルトの名無しさん
2012/07/26(木) 19:16:45.49レファレンスは参照の一種じゃないの?
0064デフォルトの名無しさん
2012/07/26(木) 19:21:21.070065デフォルトの名無しさん
2012/07/26(木) 19:21:54.02大いに理解できる。誰も同一視してないよね。結局リファレンスに拘ってる奴が何を問題視して指摘してるのかよく分からない
特に>>58の言うリファレンスはポインタでも実現出来そうに聞こえるのだが
0066デフォルトの名無しさん
2012/07/26(木) 19:31:59.40これと同じようなものは Python の標準モジュールにありますか?
0067デフォルトの名無しさん
2012/07/26(木) 19:32:44.68リファレンスは全然だなあ。多分それがPerlのリファレンスのことで、
RubyやPythonではもはや意識しなくて良くなった概念らしいことは分かるけど
0068デフォルトの名無しさん
2012/07/26(木) 19:34:27.00Pythonのリファレンスという話はあまりないので
ちゃんと説明してもらいたい
0069デフォルトの名無しさん
2012/07/26(木) 19:36:25.47ConfigParser
0070デフォルトの名無しさん
2012/07/26(木) 19:40:43.990071デフォルトの名無しさん
2012/07/26(木) 19:53:22.20つttp://plaza.rakuten.co.jp/kugutsushi/diary/200712050000/
0072デフォルトの名無しさん
2012/07/26(木) 19:58:05.76(Cでいう)ポインタの機能=リファレンス+イテレーション
リファレンス:
何らかのオブジェクトにそのアドレス等の情報を使って間接的にアクセスすること
Cでいうと*やら->
イテレーション:
オブジェクトの集合を順に(もしくは特定の順番等で)扱う機能
Cでいうとポインタ演算 ++やら--を含む
っていう理解で,Pythonのオブジェクトは基本的にこのリファレンスで扱っている認識.
こうでない意味で使ってるなら説明がほしい
0073デフォルトの名無しさん
2012/07/26(木) 19:58:45.89プログラマの意識をアドレスから切り離したという意味で抽象化だと思うけど
そういう問題じゃないと言われたのは、どういう問題なの
Cのポインタで相対化するならば、「オブジェクトへのポインタ」というのは言い得て妙だと思うけど、どれくらい間違ってるの
0074デフォルトの名無しさん
2012/07/26(木) 20:00:25.89ポインタはリファレンスとは別物らしいよ
0075デフォルトの名無しさん
2012/07/26(木) 20:05:57.33ポインタは参照とは別物になってしまうから、ここではポインタを含むものを参照
それとは別の何かをリファレンスと呼んでいる
0076デフォルトの名無しさん
2012/07/26(木) 20:10:43.79>ポインタは参照とは別物になってしまうから
馬鹿じゃね?
0077デフォルトの名無しさん
2012/07/26(木) 20:12:40.36ポインタはもっとも基本的なリファレンス=参照だよ
でも別物だと主張してる人がいるから、リファレンスと参照を区別してるだけ
0078デフォルトの名無しさん
2012/07/26(木) 20:15:54.140079デフォルトの名無しさん
2012/07/26(木) 20:16:37.89ただオブジェクトは実際どっかのメモリ上にあるわけで、Pythonの参照をひとまずポインタとして説明してるのを見るけど
それがPythonの理解に対してどれくらい問題なのかを聞きたいだけ
0080デフォルトの名無しさん
2012/07/26(木) 20:17:09.24ポインタ⊂参照
であって決して
ポインタ=参照
ではない
0081デフォルトの名無しさん
2012/07/26(木) 20:18:07.07ポインタは参照とは別物だし
なんの問題も無い
0082デフォルトの名無しさん
2012/07/26(木) 20:18:31.38ポインタは参照の一種だよ
0083デフォルトの名無しさん
2012/07/26(木) 20:19:27.840084デフォルトの名無しさん
2012/07/26(木) 20:20:09.190085デフォルトの名無しさん
2012/07/26(木) 21:15:03.430086デフォルトの名無しさん
2012/07/26(木) 21:16:55.77リファレンスしか知らないとそういう理解になるかもね。
0087デフォルトの名無しさん
2012/07/26(木) 21:31:26.42だからといって糞は味噌ではない
0088デフォルトの名無しさん
2012/07/26(木) 21:33:39.560089デフォルトの名無しさん
2012/07/26(木) 21:36:40.61「等しくない」ことを指しているのか、
「無関係である」ことを指しているのか、
わざと混乱させて使っているひとがいる。
今回の場合、無関係ではないが等しくもない。なので別物。
ひょっとしたら関東人と東北人で「別物」のニュアンスが違うのかも知れない。
0090デフォルトの名無しさん
2012/07/26(木) 21:38:33.890091デフォルトの名無しさん
2012/07/26(木) 21:44:23.400092デフォルトの名無しさん
2012/07/26(木) 21:50:28.87コピペしてるだけなようだから無視すべき?
ほぼ>>85の捉え方で
そうすることで扱いに注意が必要なポインタ演算を隠蔽して
間接的にアクセスする機能だけを抽出したのが参照/リファレンスだと思うのだけど
多分大半の実装ではリファレンスの機能を実現するためにポインタ相当の機構を使ってるんだよな
だから>>89と
0093デフォルトの名無しさん
2012/07/26(木) 21:57:43.610094デフォルトの名無しさん
2012/07/26(木) 22:01:36.980095デフォルトの名無しさん
2012/07/26(木) 23:47:24.52pypcapとか2.7じゃアカンのか
0096デフォルトの名無しさん
2012/07/27(金) 00:31:37.050097デフォルトの名無しさん
2012/07/27(金) 00:36:17.630098デフォルトの名無しさん
2012/07/27(金) 09:21:05.490099デフォルトの名無しさん
2012/07/27(金) 17:29:20.12親クラスと子クラスは関連があるがイコールではない、
ということになるかな。
広義にはポインタも参照の一種だが、ポインタは加算減算が可能。
0100デフォルトの名無しさん
2012/07/27(金) 21:51:22.090101デフォルトの名無しさん
2012/07/27(金) 21:52:04.230102デフォルトの名無しさん
2012/07/27(金) 22:28:51.00よくわからないけど、指定したウィジェットを一番上(z-index)に表示だったら widget.lift()
0103デフォルトの名無しさん
2012/07/28(土) 05:04:20.42WindowsでPyX使ってみたけど、
最初のサンプルでエラー出て、
使い物にならなかったよ。
0104デフォルトの名無しさん
2012/07/28(土) 06:29:16.97pyのpyのpy
0105デフォルトの名無しさん
2012/07/28(土) 07:40:00.320106デフォルトの名無しさん
2012/07/28(土) 07:53:43.590107デフォルトの名無しさん
2012/07/28(土) 08:19:39.56Windows の場合は >>96 の PyX-0.11.1 じゃだめ
revision 3179-3181 で治ってるらしいので
http://pyx.svn.sourceforge.net/viewvc/pyx/
から採って来ると良いかも知れない
0108デフォルトの名無しさん
2012/07/28(土) 08:45:11.650109デフォルトの名無しさん
2012/07/28(土) 08:57:14.290110デフォルトの名無しさん
2012/07/28(土) 09:02:12.94出来ました。
ありがとうございます。
>revision 3179-3181 で治ってるらしいので
こんな情報どこから見つけてくるんですか?
0111デフォルトの名無しさん
2012/07/28(土) 09:05:57.750112デフォルトの名無しさん
2012/07/28(土) 09:12:24.010113デフォルトの名無しさん
2012/07/28(土) 09:19:53.77ggrks
ttp://comments.gmane.org/gmane.comp.python.pyx.users/1214
0114デフォルトの名無しさん
2012/07/28(土) 09:30:30.26確かにそれなんですけど、
どうやってそれを見つけたのかなって・・・。
0115デフォルトの名無しさん
2012/07/28(土) 09:34:23.85おまいが何をどうやってどうだめだったかくらい書くのが礼儀だろ馬鹿
0116デフォルトの名無しさん
2012/07/28(土) 09:36:53.22とか言い切るなら、それなりの根拠が必要だよな。
0117デフォルトの名無しさん
2012/07/28(土) 09:40:11.180118デフォルトの名無しさん
2012/07/28(土) 10:07:32.230119デフォルトの名無しさん
2012/07/28(土) 10:08:29.640120デフォルトの名無しさん
2012/07/28(土) 12:38:40.55何のguiか知らないけど、出来るよ。
0121デフォルトの名無しさん
2012/07/28(土) 14:14:39.77ウェジェットの配置ではなく自動スクロールの方です
説明が悪かったみたいです すみません
Tkinterのtextウィジェットで文字のピクセル数または文字単位の高さを返すメソッドはありますか
0122デフォルトの名無しさん
2012/07/28(土) 14:22:17.21日本語混ざりのテキストだと全然だめ。
0123デフォルトの名無しさん
2012/07/28(土) 15:47:34.080124デフォルトの名無しさん
2012/07/28(土) 17:12:27.68importについての質問です
dir/hoge.py
dir/sample.py
dir/hoge/foo.py
hoge.pyの中身
def func_hoge():
pass
例えばこうなっているとき、sample.pyは何の問題もなく
importできるのですが、hoge.pyがどうやってもエラーになってしまいます
import dir.hoge
dir.hoge.func_hoge()
エラー:AttributeError: 'module' object has no attribute 'func_hoge'
from dir import hoge
hoge.func_hoge()
エラー:AttributeError: 'module' object has no attribute 'func_hoge'
from dir.hoge import func_hoge
func_hoge()
エラー:ImportError: cannot import name func_hoge
名前を変える以外に対処方法はないでしょうか?
0125デフォルトの名無しさん
2012/07/28(土) 18:15:11.39名前を変えるしかない。
0126デフォルトの名無しさん
2012/07/28(土) 18:16:28.69文字以外を PyX で出力しておいて
最後に文字だけ PyPDF を使って
書き足すと良いかも知れません
0127デフォルトの名無しさん
2012/07/28(土) 20:32:01.32それがですね、
MiKTeXをTeXworks直接使って実行すると、
日本語混ざりでも大丈夫なんですよ。
PyXを経由したときだけおかしい。
0128デフォルトの名無しさん
2012/07/29(日) 01:40:40.68消えろ
何この糞スレ
0129デフォルトの名無しさん
2012/07/29(日) 03:30:49.20mv dir/hoge.py dir/hoge/__init__.py
./hoge/foo.py
def foo():
print('foo()')
./hoge/__init__.py
def func_init():
print('func_init()')
./sample.py
# .
# |-- hoge
# | |-- __init__.py
# | `-- foo.py
# `-- sample.py
from hoge import func_init
from hoge.foo import foo
func_init()
foo()
0130デフォルトの名無しさん
2012/07/29(日) 06:56:35.56from google.appengine.ext.webapp.util import run_wsgi_app
class MainPage(webapp.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Hello, webapp World!')
application = webapp.WSGIApplication(
[('/', MainPage)],
debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
上のソースの
このソースのapplication = webapp〜〜の位置ってdef mainの中じゃだめなの?
あと、2行目をコメントアウトしてwebapp.util.run_wsgi_appってしたらエラーがでたんだけど・・どうして?
0131デフォルトの名無しさん
2012/07/29(日) 07:30:27.81あと、2行目は気にすんな。
0132デフォルトの名無しさん
2012/07/29(日) 08:35:20.610133デフォルトの名無しさん
2012/07/29(日) 09:15:27.230134デフォルトの名無しさん
2012/07/29(日) 12:54:29.741行目のfrom google.appengine.ext import webappで
webappパッケージをインポートしてるんだから、
2行目はインポートしなくて、1行目でインポートしたwebapp
パッケージの中身って、webapp.util.run_wsgi_appで使うことが
できないのかな?
0135デフォルトの名無しさん
2012/07/29(日) 13:12:18.280136デフォルトの名無しさん
2012/07/29(日) 13:47:57.79に import util と書けばできるよ。
0137デフォルトの名無しさん
2012/07/29(日) 14:25:51.42バカにも理解できない文章しか書けない糞は黙ってろ能無しが。
0138デフォルトの名無しさん
2012/07/29(日) 14:26:39.700139デフォルトの名無しさん
2012/07/29(日) 14:36:45.17__init__.pyにimport文を書いておく必要がある
$ mkdir foo
$ touch foo/__init__.py foo/bar.py
$ python2.7 -c "import foo; print 'bar' in dir(foo)"
False
$ echo "import bar" >foo/__init__.py
$ python2.7 -c "import foo; print 'bar' in dir(foo)"
True
0140デフォルトの名無しさん
2012/07/29(日) 15:18:41.89過去スレ嫁
0141デフォルトの名無しさん
2012/07/29(日) 15:26:02.850142デフォルトの名無しさん
2012/07/29(日) 15:47:00.340143デフォルトの名無しさん
2012/07/29(日) 15:55:29.130144デフォルトの名無しさん
2012/07/29(日) 16:15:17.41多分理解できたthx!!
>>142
お前はいらない子。リアルでも話す相手いないんだろ?
ネットでもお前と話したい奴なんていねえんだよ。さっさと回線切れ
0145デフォルトの名無しさん
2012/07/29(日) 16:18:15.410146デフォルトの名無しさん
2012/07/29(日) 17:16:45.200147デフォルトの名無しさん
2012/07/29(日) 20:40:06.990148デフォルトの名無しさん
2012/07/29(日) 20:57:09.010149デフォルトの名無しさん
2012/07/29(日) 20:58:17.970150デフォルトの名無しさん
2012/07/29(日) 20:59:25.220151デフォルトの名無しさん
2012/07/29(日) 21:01:08.010152デフォルトの名無しさん
2012/07/29(日) 21:36:51.790153デフォルトの名無しさん
2012/07/29(日) 22:02:57.320154デフォルトの名無しさん
2012/07/31(火) 09:52:59.89pyfesとかですかね...
0155デフォルトの名無しさん
2012/07/31(火) 10:25:57.58既に書かれてるものを削除して書き込んだりできます?
例えば、aって書かれているtextファイルをbに書き換えたり。
0156デフォルトの名無しさん
2012/07/31(火) 10:37:01.22http://www.python.jp/doc/release/library/functions.html#open
0157デフォルトの名無しさん
2012/07/31(火) 11:05:43.67r+で開くということですか?
0158デフォルトの名無しさん
2012/07/31(火) 11:50:02.46テキスト中のaを全てbに置き換えるとか
そういうことをやりたいってこと?
0159デフォルトの名無しさん
2012/07/31(火) 12:07:03.24aを置き換えるというか、textの中の文をまるまる違う文に置き換えたい感じです。
0160デフォルトの名無しさん
2012/07/31(火) 13:47:22.400161デフォルトの名無しさん
2012/07/31(火) 14:32:17.00こんなのでどう?
import shutil
path = '/tmp/tech155.txt'
path2 = '/tmp/tech155.txt.tmp'
with open(path, 'w') as f:
# help(f)
# raise()
for i in range(26):
ch = ord('a') + i
s = chr(ch)
f.write(s + '\n')
with open(path, 'r') as f:
with open(path2, 'w') as f2:
for i, line in enumerate(f):
if i % 2 == 0:
line = line.strip() * (i + 1) + '\n'
else:
line = line.upper()
f2.write(line)
with open(path, 'r') as f:
print('{} is'.format(path))
print(f.read(), end='')
with open(path2, 'r') as f2:
print('{} is'.format(path2))
print(f2.read(), end='')
shutil.move(path2, path)
0162デフォルトの名無しさん
2012/07/31(火) 14:46:13.83threading.Thread で worker thread の中で sys.stdin.read() で
希望に近い動作にはなったのですが、
main thread が終了しても worker thread が終了してくれません。
setDaemon(True) は実行しています。
main thread は無事終了しても、結局 worker thread が
sys.stdin.read() で dead lock 状態になるようです。
worker thread を強制終了する方法はありますか?
0163デフォルトの名無しさん
2012/07/31(火) 14:48:27.810164デフォルトの名無しさん
2012/07/31(火) 14:53:08.28無理
>threading.Thread で worker thread の中で sys.stdin.read() で
それは正しい
>worker thread を強制終了する方法はありますか?
無理
0165デフォルトの名無しさん
2012/07/31(火) 15:05:49.840166デフォルトの名無しさん
2012/07/31(火) 15:12:18.20出来ました。
ありがとうございました。
ttp://docs.python.org/library/threading.html
とか、
ttp://www.python.jp/doc/release/library/threading.html
とか、
どこ読んでも書いてなかったんですが、
軽々しく使っても良いメソッドなんでしょうかね?
あまりにあっさり動いたので有難く使わせてもらいますが。
0167デフォルトの名無しさん
2012/07/31(火) 15:13:26.45x あまりにあっさり動いたので
o あまりにあっさり止まったので
0168デフォルトの名無しさん
2012/07/31(火) 15:30:42.24ttp://coding.derkeiler.com/Archive/Python/comp.lang.python/2011-08/msg00233.html
ttp://code.activestate.com/recipes/576780-timeout-for-nearly-any-callable/
Claims that a Python thread can be stopped by executing the private
method "Thread._Thread__stop". I don't think this is true, since
_Thread__stop doesn't really stop or kill the thread. In conformance
to theory, the "timelimited" method this recipe defines leaves a
thread running in the background if the function it's given is
long-running (or infinite). Is there something I'm missing?
0169デフォルトの名無しさん
2012/07/31(火) 15:59:06.34こんなのは無事に動いたんだけど、
あなたのsys.stdinに書き込む人が、
stdinを閉じていないだけとかって落ちじゃないの?
以下のようにしてみたら、うまく動作しない?
echo abc | python3 a.py
import threading
import time
import sys
class ThreadWorker(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
print("Worker Start.")
time.sleep(1)
while True:
r = sys.stdin.read()
if not len(r):
break
print('r = "{}"'.format(r))
print("Worker end.")
if __name__ == "__main__":
thread = ThreadWorker()
thread.start()
print('ThreadWorker is created.')
thread.join()
print('ThreadWorker is joined.')
0170デフォルトの名無しさん
2012/07/31(火) 16:40:17.78sys.stdin に書き込む人は、
書き込まれる側のプロセスが終了するのを待っているので、
勝手に閉じる訳にはいかないのです。
0171デフォルトの名無しさん
2012/07/31(火) 16:43:50.800172デフォルトの名無しさん
2012/07/31(火) 16:50:01.85a.py (>169 さんとほとんど同じ)
b.py (subprocess.Popen で引数に stdin=PIPE 指定して a.py を作っています。)
subprocess.Popen の戻り値を p とすると、
p.poll() で終了待ち判定している間に、同時に時々 p.stdin に書き込みます。
ただし b.py から強制終了させるのではなく、
あくまで a.py 自身が必要な作業が終わったら、自分で終了する形です。
b.py 側で p.stdin を close() してしまうと都合が悪いのです。
0173デフォルトの名無しさん
2012/07/31(火) 16:57:20.70p.poll() で a.py が終了したと判れば、 p.stdin を close() 出来るのですが、
a.py 側で worker thread が終わらない限り、
p.poll() で終了判定出来なかったということです。
0174デフォルトの名無しさん
2012/07/31(火) 17:48:26.80なら、a.pyのmain threadに以下のように書き込みをさせて、
sys.stdout.wite('a.py finalizing now...')
sys.stdout.wite('a.py finished.')
b.pyの方でstdout=PIPEも指定して、
if p.stdout.readline() == 'a.py finalizing now...':
pass
if p.stdout.readline() == 'a.py finished.':
pass
とでもしたら?
0175デフォルトの名無しさん
2012/07/31(火) 18:02:32.60関係ないものを出力出来ません。あしからず。
0176デフォルトの名無しさん
2012/07/31(火) 18:05:22.600177デフォルトの名無しさん
2012/07/31(火) 18:09:34.160178デフォルトの名無しさん
2012/07/31(火) 18:16:04.94a.pyが適当なfileを作成するか、
a.pyが親にsignalを送るか、
?
windowsだとsignal駄目だっけ?
0179デフォルトの名無しさん
2012/07/31(火) 19:01:29.40_Thread__stop()
で、
動作的にはとてもスッキリ解決しているのです。
心情的にマニュアル外の使い方がどうかという話な訳でして。
0180デフォルトの名無しさん
2012/07/31(火) 19:10:15.90嘘だろ
後からお前が書いてる内容だと
全然違うんじゃね?
0181デフォルトの名無しさん
2012/07/31(火) 19:12:42.80すみません。
確かにそういう意味ではそうですが、
プログラムの大まかな流れとか、
stdin.read() を worker thread に入れる方法に関しては、
>169 さんとほとんど同じです。
0182デフォルトの名無しさん
2012/07/31(火) 19:18:20.19解決したんなら気にすんな
あといちいち一言多い
うざい
0183デフォルトの名無しさん
2012/07/31(火) 19:37:44.14thread.join() の代わりに os.close(0) # fd:0 = stdin
を書いてみたりもしたのですが、
blocking read 中は close 出来ないらしく、
dead lock 状態の上にさらに dead lock を重ねるという、
最悪の状態になってしまいました。
0184デフォルトの名無しさん
2012/07/31(火) 19:39:30.23del thread
でも、thread は終了しませんでした。
0185デフォルトの名無しさん
2012/07/31(火) 19:52:13.080186デフォルトの名無しさん
2012/07/31(火) 20:39:25.500187デフォルトの名無しさん
2012/07/31(火) 21:52:07.75p.stdin.write('please finish.\n')
としたら?
a.pyでは
if sys.stdin.readline() == 'please finish.':
something()
break
でいいんじゃない?
これが駄目なら、もう知らん。
0188デフォルトの名無しさん
2012/07/31(火) 21:53:52.34もう知らんといいつつも、世話好きのお前らはレスを続けるのだ
0189デフォルトの名無しさん
2012/08/01(水) 00:33:23.10>あくまで a.py 自身が必要な作業が終わったら、自分で終了する形です。
0190デフォルトの名無しさん
2012/08/01(水) 00:53:45.51__doc__でクラスや関数のドキュメンテーション文字列を取得できますが
ある関数で__doc__が呼ばれたときにその関数内に書かれたドキュメンテーション文字列に
別の場所の文字列を連結して返すことってできるのでしょうか?
0191デフォルトの名無しさん
2012/08/01(水) 01:03:28.13# a.py
# in main thread.
sys.stderr.write('main thread done.\n')
thread.join()
# b.py
if p.stderr.readline() == 'main thread done.':
p.stdin.write('please finish.\n')
p.stdin.close()
# a.py
# in worker thread.
if sys.stdin.readline() == 'please finish.':
something()
break
# a.py
# in main thread.
logger('a.py done.')
0192デフォルトの名無しさん
2012/08/01(水) 01:04:20.14可能。
以上。
0193デフォルトの名無しさん
2012/08/01(水) 01:15:44.06pythonでjson整形をしたいのですが、わからない点があります。
御教授ください。
環境は cygwin の python 2.6.7 になります。
jsonが記述されたファイルを test.jsonとします。
中身は
{"Data":{"Path":"file:test_path1","Type":"General","value0":0.5,"value1":0.5,"value2":20,"str_list":["aaa","bbb","ccc","ddd","eee"]}}
だけです。
これを
コマンドラインにて、
pythosn -m json.tool test.json
とすることによって整形されるのを期待しています。
しかし、これを実行すると
No JSON object could be decoded
といわれてしまいます。
JSON objectとして認識されるにはテキスト先頭になにかプレフィックスとかがないとだめなのでしょうか?
ちなみに
echo '{"Data":{"Path":"file:test_path1","Type":"General","value0":0.5,"value1":0.5,"value2":20,"str_list":["aaa","bbb","ccc","ddd","eee"]}}' | | python -m json.tool
だと期待する結果になります。
0194193
2012/08/01(水) 01:17:23.49あ、最後、まちがいです
>echo '{"Data":{"Path":"file:test_path1","Type":"General","value0":0.5,"value1":0.5,"value2":20,"str_list":["aaa","bbb","ccc","ddd","eee"]}}' | | python -m json.tool
ではなく
echo '{"Data":{"Path":"file:test_path1","Type":"General","value0":0.5,"value1":0.5,"value2":20,"str_list":["aaa","bbb","ccc","ddd","eee"]}}' | python -m json.tool
です。
0195デフォルトの名無しさん
2012/08/01(水) 01:26:12.370196デフォルトの名無しさん
2012/08/01(水) 03:10:17.22> utf-8のBOMが付いててエラーになってるとか?
はい、なんかそれっぽいです。
保存したファイルがutf-8でした。
shift_jisにしてみたところ期待通りの結果になりました。
ありがとうございます。
ちなみにutf-8のまま行うにはどうしたらいいんでしょう?
入力されてくるファイルがデフォでutf-8なのでフォーマットをいじれないのです。
一度変換をかけるしかないのでしょうか?
0197デフォルトの名無しさん
2012/08/01(水) 03:18:38.28「名前を付けて保存」で保存したんじゃない?
echo '{}' > empty.json
としたのを読み込むとどうなる?
0198デフォルトの名無しさん
2012/08/01(水) 03:19:53.64python -m json.tool < empty.json
0199デフォルトの名無しさん
2012/08/01(水) 03:23:02.10{}
という結果になります。
>それって、何かに自分で書いたのを、
>「名前を付けて保存」で保存したんじゃない?
元データは C#のDynamicJsonを使って吐き出されています。
出力結果はutf-8。
0200デフォルトの名無しさん
2012/08/01(水) 05:14:28.00とした後に右足の靴下を脱いでみようか。
0201デフォルトの名無しさん
2012/08/01(水) 05:36:06.490202デフォルトの名無しさん
2012/08/01(水) 06:17:43.50>p.stderr.readline()
b.py の方が block してしまうので駄目です。
0203デフォルトの名無しさん
2012/08/01(水) 06:23:41.600205デフォルトの名無しさん
2012/08/01(水) 09:31:30.72ありがとうございます。
頑張って読んでみます。
0206デフォルトの名無しさん
2012/08/01(水) 10:35:27.34これってtech155.txt.tmpの内容をtech155.txtに書き込むプログラムですよね。
for i in range(26):とfor i, line in enumurate(f):の中身がちょっとわからないです...
0209デフォルトの名無しさん
2012/08/01(水) 14:44:34.25tech155.txt(=path)の
第0行目に'a', 第1行目に'b', 第2行目に'c', ....を書き込む。
都合、26文字(a-z)書き込むことになる。
tech155.txt を一行ずつ読んで(for i, line in enumerate(f):)
いって(一番上の行はi=0, line='a\n')、
0, 2, 4, ... 行目(i % 2 == 0)なら、
その行の内容(=line)から前後の空白改行を削って(=line.strip())から、
その内容を(行数+1) だけ連続させて、
tech155.txt.tmp(=path2) に出力(f2.write(line))。
1, 3, 5, ... 行目(else)なら、
その行の内容(=line) を 大文字に変更して、
tech155.txt.tmp に出力。
最後に、
tech155.txt.tmp で tech155.txt を上書き保存。
0210デフォルトの名無しさん
2012/08/01(水) 15:49:26.020212デフォルトの名無しさん
2012/08/01(水) 21:50:15.98os.path.abspath("./")
しかしこれをコールする際のカレントディレクトリによって、
/Usersから始まる場合と/Volumes/Macintosh\ HD/Usersと始まる場合があります。
原因がわかる方がいましたら教えてください。
よろしくお願いします。
0213デフォルトの名無しさん
2012/08/01(水) 22:04:28.06python -V
0214デフォルトの名無しさん
2012/08/02(木) 00:12:45.47"./" の意味分かってる?
0215デフォルトの名無しさん
2012/08/02(木) 00:46:48.680216デフォルトの名無しさん
2012/08/02(木) 00:48:17.520217デフォルトの名無しさん
2012/08/02(木) 05:14:00.140218デフォルトの名無しさん
2012/08/02(木) 10:34:38.40理解できました。ありがとうございます。
161のコードなんですが、パスでtextファイルを指定するのではなく、
このスクリプトと同じところにあるtxt,txt.tmpを指定するっていうことは可能でしょうか?
0219デフォルトの名無しさん
2012/08/02(木) 11:36:43.270220デフォルトの名無しさん
2012/08/02(木) 12:15:22.59path2 = path + '.tmp'
0221デフォルトの名無しさん
2012/08/02(木) 13:12:34.73教則本を読みながらBMI指数を判定するプログラムを書いてたのですが、エラーが起きてしまいます。
何度見返しても教則本と同じように書いてあります。
コードは。。。
#coding:utf-8
while True:
height = raw_input('身長(m)?:')
if len(height) == 0:
break
height = float(height)
weight = float(raw_input('体重(kg)?:'))
bmi = weight / pow(height,2)
print('BMI値は%0.1fです。' % bmi)
if bmi < 18.5:
print('少しやせすぎです。')
elif 18.5 <= bmi < 25.0:
print('標準的な体系です。')
elif 25.0 =< bmi < 30.0:
print('少し太っています。')
else 30.0 =< bmi:
print('高度の肥満です。')
です。
7行目の height = float(height) が間違っていると出ます。
ちなみにバージョンは2.71です。
お願いします。
0222デフォルトの名無しさん
2012/08/02(木) 13:34:36.39height = float(height)の直後に全角の空白文字があるのが原因だと考えられます
質問の際は重要なヒントであるエラーメッセージを必ず全文載せてください
あとバージョン2.x系はprint文を()でくくる必要が無いです
0223デフォルトの名無しさん
2012/08/02(木) 14:40:03.890224デフォルトの名無しさん
2012/08/02(木) 14:52:55.19ありがとうございます
無事完成しました
0225デフォルトの名無しさん
2012/08/02(木) 19:38:20.74dirで親のメソッドが表示されないようにするには、どうすればいいですか?
0226デフォルトの名無しさん
2012/08/02(木) 20:22:44.52class-privateは、Pythonの場合 アンダースコア2つのprefix付きで命名する
dir()での表示のみが重要なら、__dir__メソッドを実装してdirで返すメンバ一覧にフィルター掛ける
# クラス内で定義。充分なテストはしてないので例外的なケースはあるかもしれない。叩き台にどぞ。
def __dir__(self):
return self.__class__.__dict__.keys()
特に理由がなければ、クラス毎にdirの振舞を変えるよりも(副作用が心配)
親クラスのメンバを返さない版のdirに相当する関数作って使った方が楽。
0227デフォルトの名無しさん
2012/08/02(木) 21:05:22.12ありがとうです。
たまにdir使っても出てこないメソッドとかあるので、これどうやってるのかと疑問に思ってました。
叩き台から、以下のコードにしてみました。これなら副作用無いかも
>>> class A:
def __new__(cls):
def __dir__(self):
return cls.__dict__.keys()
cls.__dir__ = __dir__
return object.__new__(cls)
def hoge(self):
pass
>>> class B(A):
def fuga(self):
pass
>>> a = A()
>>> b = B()
>>> dir(a)
['__dict__', '__dir__', '__doc__', '__module__', '__new__', '__weakref__', 'hoge']
>>> dir(b)
['__dir__', '__doc__', '__module__', 'fuga']
>>> b.hoge()
>>>
0228デフォルトの名無しさん
2012/08/02(木) 21:54:10.35なので叩き台のとおり親クラスに以下のメソッドが追加されてるだけのようです。
def __dir__(self):
return self.__class__.__dict__.keys()
疑問解決しました。ありがとうございました。
0229デフォルトの名無しさん
2012/08/02(木) 22:55:53.160230デフォルトの名無しさん
2012/08/02(木) 23:10:35.54自分もpythonから始めました
0231デフォルトの名無しさん
2012/08/02(木) 23:12:09.470232デフォルトの名無しさん
2012/08/02(木) 23:14:35.460233デフォルトの名無しさん
2012/08/02(木) 23:17:25.780234229
2012/08/02(木) 23:18:03.85あと簡単なゲームなら作れますか?
質問ばかりですみません
0235デフォルトの名無しさん
2012/08/02(木) 23:38:55.74どんなゲームが作りたいですか?
0236デフォルトの名無しさん
2012/08/02(木) 23:44:36.580237229
2012/08/03(金) 00:00:26.09まず凄く簡単なゲームを作りたいです
それから、RPGのようなゲームを作れるといいです
>>236
英語も一緒に勉強した方が良さそうです・・・
0238デフォルトの名無しさん
2012/08/03(金) 00:03:15.31ここら辺見ればいいんじゃないかな
0239229
2012/08/03(金) 00:06:09.63ご丁寧にありがとうございます
それを元に勉強しようと思います
他の方々も無知な私のためにお時間を割いていただきありがとうございました
0240デフォルトの名無しさん
2012/08/03(金) 10:16:56.23ttp://live-fuji.jp/calender/
一年を通じて4:00から19:50までの画像限定で、
○快晴で山頂から麓まで全体が見えている画像
○雲は出ているが山頂は見えている画像
○曇りまたは雨で山頂が全く見えない画像
○撮影に失敗していると思われる画像
それぞれの枚数を数えて、
各時間ごと(10分単位)のそれぞれの日数を出力したいです。
Pythonではどのようにプログラムを書けばよいのでしょうか?
画像のURLはこちらです。
ttp://live-fuji.jp/hi-fuji/YYYYmmdd/HHMM.jpg
0241デフォルトの名無しさん
2012/08/03(金) 10:51:54.25じゃあとりあえずあんたの基準でこのへんの合否を判定してみて
http://live-fuji.jp/hi-fuji/20120802/1030.jpg
http://live-fuji.jp/hi-fuji/20120802/1040.jpg
http://live-fuji.jp/hi-fuji/20120803/0810.jpg
http://live-fuji.jp/hi-fuji/20120803/0820.jpg
http://live-fuji.jp/hi-fuji/20120803/0830.jpg
0242デフォルトの名無しさん
2012/08/03(金) 11:50:52.52どうすりゃいいの?
0243デフォルトの名無しさん
2012/08/03(金) 17:50:02.92画像を取得する部分、
どのような画像か判定する部分
に分けて頑張れ。
>>242
windows, linuxのどちらか、
またそのバージョン、どこからPythonを入手したか。
ぐらい言ってくれないと話にならない。
0244デフォルトの名無しさん
2012/08/03(金) 19:03:50.870245デフォルトの名無しさん
2012/08/03(金) 19:05:55.16同じアングルで撮ってて、
毎回同じ位置に頂上がある。
っていう条件はかなり恵まれてるぞ。
0246デフォルトの名無しさん
2012/08/05(日) 09:13:47.82頑張るぞ
0247デフォルトの名無しさん
2012/08/05(日) 15:04:30.610248デフォルトの名無しさん
2012/08/05(日) 15:33:19.21確かにもう半分ぐらい読み終わったわ
オブジェクト指向言語は初めてなので、本買っちゃった。まあいいか
0249デフォルトの名無しさん
2012/08/05(日) 15:59:23.52OOP向け機能が盛りだくさんのJavaやC#がイメージつかみやすい
0250デフォルトの名無しさん
2012/08/05(日) 16:30:45.34え、全くそうは思わないんだけど…
0251デフォルトの名無しさん
2012/08/05(日) 17:27:16.920252デフォルトの名無しさん
2012/08/05(日) 19:49:21.54結局、別に書籍を購入することになる
0253デフォルトの名無しさん
2012/08/06(月) 05:33:05.88まぁ、オブジェクト指向言語の便利な機能とかは知ることが出来ないけれど。
あ、スレチですね。
0254デフォルトの名無しさん
2012/08/06(月) 08:29:11.24この本で学んだことだけでどんな事ができるようになりますか?
0255デフォルトの名無しさん
2012/08/06(月) 08:42:07.630256デフォルトの名無しさん
2012/08/06(月) 12:51:45.570257デフォルトの名無しさん
2012/08/06(月) 13:37:01.670258デフォルトの名無しさん
2012/08/06(月) 17:29:24.57/ ノ ヽ ( ノ⊂ ̄))) ̄⊃
/|ヽ (_ノ ._ ̄ 0'ヽ 0'
/ |ノ .) (_) ヽ i ( むしゃむしゃしていた。
∋ノ | /――、__ ./(∩∩) 草なら何でもよかった。
/ /| ヽ__ノ | / ./ 今は反芻している。
| ( | ( ’’’ | ( /
|__ヽ. L_ヽ Lヽ_ヽ
''" ""''"" "'''''" ""''"" ''" ""''"" ''" ""''"" ''" ""''"" "''
0259デフォルトの名無しさん
2012/08/06(月) 19:08:53.20下のような構造になっている時にb.pyからa.pyをimportするにはどうすればいいのでしょうか?
folder
-folder1
--a.py
-folder2
--b.py
0260デフォルトの名無しさん
2012/08/06(月) 19:16:24.760261デフォルトの名無しさん
2012/08/06(月) 19:20:42.39from folder1 import a.py
http://docs.python.org/library/sys.html
sys.path
A list of strings that specifies the search path for modules.
Initialized from the environment variable PYTHONPATH,
plus an installation-dependent default.
As initialized upon program startup, the first item of this list,
path[0], is the directory containing the script that was used to invoke
the Python interpreter. If the script directory is not available
(e.g. if the interpreter is invoked interactively or if the script is
read from standard input), path[0] is the empty string, which directs
Python to search modules in the current directory first.
Notice that the script directory is inserted before the entries
inserted as a result of PYTHONPATH.
A program is free to modify this list for its own purposes.
Changed in version 2.3: Unicode strings are no longer ignored.
See also
Module site This describes how to use .pth files to extend sys.path.
0262デフォルトの名無しさん
2012/08/06(月) 19:20:49.37tp://d.hatena.ne.jp/chlere/20110618/1308369842
「python import 相対パス」で検索
0263デフォルトの名無しさん
2012/08/06(月) 21:58:38.930264デフォルトの名無しさん
2012/08/06(月) 22:54:48.18熱くなれよぉおおお!!
____
_/三三三ミ\
/ミ>―=≡ミミヽ
`|ミ/ ヽミ|
ヒイ ==ヽノ== |ミ|
||ィ・>ii<・ヽV)
`( || ソ
| ノヽノヽ /
∧ <二>i/|_
/ ∧  ̄ / / \
/\ ヽーイ / /\
T ̄ヽ / ̄T
| | / |
0265デフォルトの名無しさん
2012/08/07(火) 02:29:42.300266デフォルトの名無しさん
2012/08/07(火) 21:26:20.02from ..folder1 import a
という書き方もできるで
0267デフォルトの名無しさん
2012/08/07(火) 22:44:33.220268デフォルトの名無しさん
2012/08/08(水) 09:50:22.560269デフォルトの名無しさん
2012/08/08(水) 16:39:34.860270269の訂正
2012/08/08(水) 17:59:30.81○ folder2にa.py
0271デフォルトの名無しさん
2012/08/09(木) 02:29:04.65標準のtextwrapだといろいろ綺麗に行かない感じです
この手の処理でpythonの定番ライブラリがあれば教えてください
0272デフォルトの名無しさん
2012/08/09(木) 05:59:55.000273デフォルトの名無しさん
2012/08/09(木) 06:30:43.84搾取する階層が自らを「勝ち組」と称し他を「負け組」とさげすむ真の理由は、
「負け組」が生産しなければ「勝ち組」のための現在の体制を維持できなくなるところにあります。
「勝ち組」が提供する価値観は「勝ち組」の利益のため「負け組」に押し付けたものです。
こんな価値観は放棄するのが賢明ではないでしょうか。
・競争しません。負けるが勝ち。
・奢侈品・自家用車・住宅は取得を目指しません。これを目的にした貯蓄も行いません。
・性衝動はその目的を達成しない形で発散します。結婚を目指しません。自慰で性欲を封じ込めます。
・労働、消費、出産、育児など生産性を促す社会活動には極力参加しません。
・テレビ・雑誌などのマスメディアは、必要でないものを消費させるため私たちを扇動しています。彼らに耳を貸さないのが賢明でしょう。
・受け取る報酬以上の仕事はしません。真面目・努力・忍耐・無償の行為は勝ち組の捏造した価値観でしかありません。
・人生や行動に目標を作りません。無理をしません。頑張りません。夢はみません。希望はもちません。淡々と生きるだけです。
勝ち組だろうが負け組だろうが人生の最後に行き着くところは結局「死」です。結果は同じです。
(参考)吉田兼好(1283-1350) 徒然草 第38段
「名利に使はれて靜かなる暇なく、一生を苦しむるこそ愚かなれ。」
富が多いければ災いも多い。金は山に捨て、宝石は川に投げ込むべきだ。
知性と教養にこだわるとは人の評価にこだわることである。
それでも知性と教養を磨きたいという人には「知恵は嘘を生む」と言っておこう。
教養も結局は人間の欲望の積み重ねでしかなく、知ったこと、学んだことは本当の教養ではない。
本当の教養とは、善も悪も根本は同じであり、本当の善など存在しないと悟ることである。
真の人間にとっては、知性も教養も功績も名声もどうでもいい。これは教養を隠して愚か者のふりをすることではない。こういう人は元来、教養や損得勘定には無縁なのである。
迷妄にとらわれて富と名声を追い求めることは無意味なことであって、論ずるに値しないし望むに足らぬことなのである。
0274デフォルトの名無しさん
2012/08/09(木) 08:31:19.88誰か日本語対応版作っていたような気がするけど
0275デフォルトの名無しさん
2012/08/09(木) 11:31:51.360276デフォルトの名無しさん
2012/08/09(木) 11:45:14.48http://bazaar.launchpad.net/~bzr-pqm/bzr/bzr.dev/view/head:/bzrlib/utextwrap.py
bzrlib.osutilsを使っているところは適当に直してね
0277デフォルトの名無しさん
2012/08/09(木) 21:04:12.52どなたか解決方法を教えて下さい.環境はWindows 7 64bit + Python2.7 32bit + NLTK 2.0.2です
0278デフォルトの名無しさん
2012/08/09(木) 21:44:51.650279デフォルトの名無しさん
2012/08/10(金) 01:00:35.590280デフォルトの名無しさん
2012/08/10(金) 01:13:13.780281デフォルトの名無しさん
2012/08/10(金) 01:23:28.200282デフォルトの名無しさん
2012/08/10(金) 13:20:21.62皆さんはどんなOS上で実行されていますか?
私はWin7_64bitなのですがライブラリが対応していないことが多くて...なんでなんだろうと。
OS考えたほうがいいんですかね。
0283デフォルトの名無しさん
2012/08/10(金) 14:17:07.040284デフォルトの名無しさん
2012/08/10(金) 14:19:22.540285デフォルトの名無しさん
2012/08/10(金) 14:34:46.92x86版PythonをWin7-64bitで動かす分には対応してないライブラリなんてほとんどない
あ、Python3は無しね
あんなものユーザー数的にメインストリームじゃないし
0286デフォルトの名無しさん
2012/08/10(金) 14:43:13.45Python 2.7.3 Windows Installer (Windows binary -- does not include source)
Python 2.7.3 Windows X86-64 Installer (Windows AMD64 / Intel 64 / X86-64 binary [1] -- does not include source)
Python 3.2.3 Windows x86 MSI Installer (Windows binary -- does not include source)
Python 3.2.3 Windows X86-64 MSI Installer (Windows AMD64 / Intel 64 / X86-64 binary [1] -- does not include source)
どれ入れてます?
0287デフォルトの名無しさん
2012/08/10(金) 15:37:31.090288デフォルトの名無しさん
2012/08/10(金) 15:40:24.13Pythonはマルチスレッドよりマルチプロセスの方が有効だからアドレス空間無理に増やす必要性もない
0289デフォルトの名無しさん
2012/08/10(金) 22:15:36.6764bit用のバイナリが配布されてないだけって事はないかな?
ビルドできる環境があるかどうかでも、人によって使えるライブラリに差が出ると思う。
0290デフォルトの名無しさん
2012/08/10(金) 22:57:13.220291デフォルトの名無しさん
2012/08/10(金) 23:51:49.11使ったことないけど、ActivePython なら pypm もある ttp://code.activestate.com/pypm/search:/
※ windows 64bit はビジネス・ライセンスが必要らしい
... EPD もFree版は win/64 非対応だっけ。個人利用でwin/64は優しくなさそう。
ちょっと試したいだけなのに、MinGWだとビルド失敗したり、
コンパイルが必要な依存ライブラリが沢山あって、環境作るのが面倒な場合は、
非公式のバイナリ使わせてもらってる。
ttp://www.lfd.uci.edu/~gohlke/pythonlibs/
0292デフォルトの名無しさん
2012/08/11(土) 00:27:36.35Mercurialが必要だったりSVNの宣言削ったりちょこちょこ手を入れる必要があったけど
VCはC言語の皮を被っただけの言語だからパスだ
0293デフォルトの名無しさん
2012/08/11(土) 00:32:18.4864用も置いておいてくれると有難いよな
0294デフォルトの名無しさん
2012/08/11(土) 00:35:21.03lxml→libxslt→pthread for win32ってうっきょおおおおおおおおおお
↓
libxml2
0295デフォルトの名無しさん
2012/08/11(土) 01:01:41.73例えば「あいう」というunicode文字列があって,これをeuc-jpでエンコードすると
>>> u'あいう'.encode('euc-jp')
'\xa4\xa2\xa4\xa4\xa4\xa6'
となります.
ここでu'\xa4\xa2\xa4\xa4\xa4\xa6'というユニコード文字列があったときに
'\xa4\xa2\xa4\xa4\xa4\xa6'をstrとして取り出すことってできますか?
感じとしてはstr(u'\xa4\xa2\xa4\xa4\xa4\xa6')としいたいのですが
これだと
'\xc2\xa4\xc2\xa2\xc2\xa4\xc2\xa4\xc2\xa4\xc2\xa6'
となってしまいます.
0296デフォルトの名無しさん
2012/08/11(土) 01:15:03.71こうかな。
u'\xa4\xa2\xa4\xa4\xa4\xa6'.encode('raw_unicode_escape')
変なunicode文字列を作るコードが標準ライブラリにも入ってるから困る。
http://d.hatena.ne.jp/itasuke/20080703/p1
0297デフォルトの名無しさん
2012/08/11(土) 01:27:03.38できました!
ありがとうございます!
0298デフォルトの名無しさん
2012/08/11(土) 06:26:09.57最新って開発版?リリースの最新版なら >>291下のリンク先にバイナリのパッケージ有
ビルドの手順はどうしてる?
* ttp://lxml.de/build.html#static-linking-on-windows
* ttp://lxml.de/installation.html#ms-windows
> Only if you want to upgrade the libraries and/or compile lxml from sources,
> you should install a ***binary distribution*** of libxml2 and libxslt.
> You need both libxml2 and libxslt, as well as iconv and zlib.
依存含めて全部ソースからビルドしたい場合は、
コンパイラだけでなくsh等周辺ツール含めたビルド環境構築が必要になってくるので、
ある程度、POSIXに準拠したライブラリのビルドに慣れてないと難しい。
0299デフォルトの名無しさん
2012/08/11(土) 09:04:34.89「馬鹿には無理」
0300デフォルトの名無しさん
2012/08/11(土) 10:54:17.64暇だねー
0301デフォルトの名無しさん
2012/08/11(土) 18:11:03.250302デフォルトの名無しさん
2012/08/11(土) 19:36:10.96小学校の校門で「社会は厳しいんだぞ!!」と叫んでる感じ
0303デフォルトの名無しさん
2012/08/11(土) 19:58:02.430304デフォルトの名無しさん
2012/08/11(土) 20:40:34.080305デフォルトの名無しさん
2012/08/12(日) 09:10:33.420306デフォルトの名無しさん
2012/08/13(月) 07:19:06.28f = open("a.text", "w")
f.write(a)
f.close
だと上書きしてしまいます。
上書きせずに続きから書き込むにはどうすればいいでしょうか?
0307デフォルトの名無しさん
2012/08/13(月) 07:23:10.57>>156
0308デフォルトの名無しさん
2012/08/13(月) 13:00:12.30せ、切ないな…
0309デフォルトの名無しさん
2012/08/13(月) 13:05:50.830310デフォルトの名無しさん
2012/08/13(月) 14:32:30.230311デフォルトの名無しさん
2012/08/13(月) 15:22:08.140312デフォルトの名無しさん
2012/08/13(月) 15:41:31.430313デフォルトの名無しさん
2012/08/13(月) 16:34:00.53Deprecated since version 2.6: The dbhash module has been removed in Python 3.
って書いてあるんだけどさ
じゃあWindows版Python3のshelveは何使ってるの?
まさかdumbdbmだとしたら使うの躊躇っちゃうな
0314デフォルトの名無しさん
2012/08/13(月) 16:35:45.27という本を買ったのですが、
序盤のタートルグラフィックスというところでつまづいています。
具体的には、
import turtle
で
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named turtle
というエラーをはきます。
何故?
わかる方教えてください。
0315デフォルトの名無しさん
2012/08/13(月) 16:39:01.31> No module named turtle
これぐらいの英語もわからないと、ちょっと厳しいぞ。
0316デフォルトの名無しさん
2012/08/13(月) 16:40:47.91悪いけどそのまさかだよ
存分にためらうといいい
0317デフォルトの名無しさん
2012/08/13(月) 16:41:53.82OS, Pythonそれぞれのバージョンを書こうよ。
0318314
2012/08/13(月) 16:46:18.96Pythonのバージョンは2.7ですが・・・
超初心者だと思って多少は見逃してください(汗
0319デフォルトの名無しさん
2012/08/13(月) 16:47:15.48Ubuntuなんかでありがち
とりあえず質問者は>>317の最後の行を
0320314
2012/08/13(月) 16:50:23.65えっとopenSUSE 12.1
Python 2.7.2
でよろしいでしょうか?
0321デフォルトの名無しさん
2012/08/13(月) 16:56:39.53とりあえずはpython-tkを入れてみて
もしかしたら他のパッケージ(python-develとか?)も要るのかも
0322314
2012/08/13(月) 17:02:08.66先生!
python-tkを入れる、とはどういうことをいうのでしょうか?
常識でしたら申し訳ありません(超汗
0323デフォルトの名無しさん
2012/08/13(月) 17:06:57.70もしPythonを自前ビルドしたのなら自分にはお手あげなので詳しい人に助けてもらって
0324デフォルトの名無しさん
2012/08/13(月) 17:07:40.03> File "<stdin>", line 1, in <module>
>ImportError: No module named turtle
これがエラーの概要です
このエラーに心当たりが無いか探してください
まず,このエラーを日本語で理解しなおせますか
"""
標準入力、モジュール一行目のインポートエラー
”turtle”と言う名前のモジュールが見つかりません
"""
モジュールと言う単語の意味は把握できますか
インポートとは何か理解していますか
単語の意味を一つづつ把握できていますか
”turtle”はモジュール名であり、今からあなたがインポートしようとしているものです
0325314
2012/08/13(月) 17:09:27.27importすることでしょうか?
そうしましたら
File "<stdin>", line 1
import python-tk
と出まして、
タートルでまた同じエラーをはきます。
0326314
2012/08/13(月) 17:11:30.47みなさんありがとうございます。
今の情報でやってみます!
0328デフォルトの名無しさん
2012/08/13(月) 17:33:44.400329デフォルトの名無しさん
2012/08/13(月) 18:33:48.68from turtle import *
t = Turtle() # タートルオブジェクト作成(初めて作るときはウインドウも作成されます)
t.circle(50,180) # 反時計回り半径50で180度まで
t.circle(-50,180) # 時計回り半径50で180度まで
t.circle(-100) # 時計回り半径100で360度まで
exitonclick() # ウインドウクリックするまで待機
↑をturtle_example.pyで保存して、
↓を実行したら何かでない?
python3 turtle_example.py
失敗したら失敗理由全てを貼って。
0330デフォルトの名無しさん
2012/08/13(月) 18:51:01.12その本って3.x系の本をだよね?
0332314
2012/08/13(月) 19:07:56.10端末から一行づつ入力すると
中国の陰陽みたいなマークがでます。
保存するとエラーが・・・?
ちょっと待ってください。
見直します。
0333デフォルトの名無しさん
2012/08/14(火) 02:01:55.43) まで書いてくれればいい。
端末から一行ずつ入力ではなくて、
コピペして保存すればよろし。
0334314
2012/08/14(火) 05:17:24.21そうしているのですが・・・
とりあえずこんなエラーがでます。
File "turtle_example.py", line 2
SyntaxError: Non-ASCII character '\xe3' in file turtle_example.py on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
ファイルに保存してあることは、
一行ずつ入力のときと全く同じなのですが。
0335314
2012/08/14(火) 06:14:56.82YaSTからPython関連のパッケージをありったけインストールしたら
エラーがなくなり、正常に動作するようになりました。
0336デフォルトの名無しさん
2012/08/14(火) 06:37:58.42# 以降の日本語コメント削るとか
ソースファイル中にASCII以外(日本語等)の文字を含める場合は
文字エンコーディングを指定する必要がある
たとえばエンコーディングがUTF-8ならファイルの一行目に # coding: utf-8 などとする
ちなみに0xE3は「タ」をUTF-8で符号化した場合の1バイト目
0337314
2012/08/14(火) 06:45:38.36>パッケージ入れてる最中にソースファイルをいじったりしてないか
いえ、してないです。
後半の内容はこれから勉強させてもらいます。
(今の私には難しいです・・・)
0338314
2012/08/14(火) 06:50:32.97初心者お断りな部分が結構ありますか?
お行儀がよいとは聞いていたのですが・・・
0339デフォルトの名無しさん
2012/08/14(火) 07:02:07.42PGのまえに人とちゃんと会話する能力身に付けてから来い
0340デフォルトの名無しさん
2012/08/14(火) 07:17:19.89>>337
今の時点ではわからなくても問題ない
入門書相手に自分のペースで勉強してわからなくなったら質問すればいいよ
あとPythonは易しい部類に入る
0341デフォルトの名無しさん
2012/08/14(火) 07:40:28.52自己もクソも>>333でそもそも解決できるし
ちなみに言うと英語圏の人が英語で使う分には絶対に起きない問題ではあるが
基本的なPythonでのエラーの解消の仕方を身に付けようともしない、これじゃきりがないわ
0342デフォルトの名無しさん
2012/08/14(火) 08:00:43.500343デフォルトの名無しさん
2012/08/14(火) 08:15:19.55なぜならウザさは言語に依存せず普遍なものですから
0344デフォルトの名無しさん
2012/08/14(火) 09:28:35.12初心者という言葉は曖昧で回答に困る
具体的な経験を書いてもらうと回答の助けになる
Pythonはソースコードの書き方に慣例がある(PEP8でググれ)
PEP8と特徴的な構文が、お行儀がよいと言われる理由かもしれない
0345314
2012/08/14(火) 10:09:42.59参考にします。
あと、初心者を免罪符にしないように心がけます。
いずれにしても、問題は解決しましたので、
皆様、ありがとうございました。
0346デフォルトの名無しさん
2012/08/14(火) 14:00:53.700347デフォルトの名無しさん
2012/08/15(水) 18:57:19.56f=open()は何故fなんでしょうか?
それとfで読み込んだのをs=f.readline()
とする例があったのですが、sを使っています。
これらは何か基準があるのでしょうか?
0348デフォルトの名無しさん
2012/08/15(水) 19:06:14.35私だったらline=f.readline()と書く。
一文字のLはL=[]という風に、listの時のみ使う。
小文字のLは1やIと見分けがつかないfontがあるので使わないように。
ってPythonの何かの規格みたいなので読んだ。
0349デフォルトの名無しさん
2012/08/15(水) 19:06:31.72説明用のコードだといちいち名前を考えるのが面倒くさいので
型名の頭文字を使うのはありがちな行為
0350デフォルトの名無しさん
2012/08/15(水) 19:15:09.49俺が>>140に書いたけど、
not len(line.strip())
というように、line.strip()の結果を使って空行か判定しような。
line = 'a', line == ' ' or line == '\n'
も
len(line) == 1
だから、なんのこっちゃ分からないぞ。
空行判定は↓が分かりやすいのかな?
line.strip() == ''
0351デフォルトの名無しさん
2012/08/15(水) 19:21:09.700352デフォルトの名無しさん
2012/08/15(水) 20:14:33.99>>> print ">>348 >>349 ありがとうございます!"
File "<stdin>", line 1
print ">>348 >>349 ありがとうございます!"
^
SyntaxError: invalid syntax
0353デフォルトの名無しさん
2012/08/15(水) 21:02:37.26strip()すると、厳密には空白文字のみの行 (line = ' \t\n') の扱いが変わる。
0354デフォルトの名無しさん
2012/08/15(水) 21:14:38.69>>> ' \n'.strip()
'\xe3\x80\x80'
>>> ' \n'.decode('utf-8').strip().encode()
''
0355デフォルトの名無しさん
2012/08/16(木) 12:17:31.53一回でもプログラム走らせると色が無くなって味気ないテキストになるんですが
この現象の原因が分かる方はいませんか
0356デフォルトの名無しさん
2012/08/16(木) 12:56:34.700357デフォルトの名無しさん
2012/08/16(木) 12:57:06.800358デフォルトの名無しさん
2012/08/16(木) 12:58:29.64へ?
何言ってんの?
0359デフォルトの名無しさん
2012/08/16(木) 13:11:48.400360デフォルトの名無しさん
2012/08/16(木) 13:54:56.29ファイル保存した時に拡張子が .py .pyw 以外になってると Syntax Highlight がなくなる。
IDLE does not supply a default ext of .py on Windows or OS X for new file saves
http://bugs.python.org/issue4832
拡張子を含めたファイル名を入力することで回避可能。
0361デフォルトの名無しさん
2012/08/16(木) 14:21:19.18http://www.python.org/dev/peps/pep-0404/
0362デフォルトの名無しさん
2012/08/16(木) 14:36:17.72頭悪いよなあ
0363デフォルトの名無しさん
2012/08/16(木) 14:39:04.18自分らが主導みてえな勘違いも大概にしとけよ
0364デフォルトの名無しさん
2012/08/16(木) 15:18:54.68http://python3wos.appspot.com/
0365デフォルトの名無しさん
2012/08/16(木) 15:39:13.82何が下支えしてるんですか。
0366デフォルトの名無しさん
2012/08/16(木) 16:22:37.133は普及しないと予言してやる
0367デフォルトの名無しさん
2012/08/16(木) 23:28:23.06log = 'log.dat'
f = open(log, 'r+')
fcntl.flock(f.fileno(), fcntl.LOCK_EX)
count = f.read()
count = int(count) + 1
count = str(count)
f.seek(0)
f.write(count)
fcntl.flock(f.fileno(), fcntl.LOCK_UN)
f.close()
HTML内では、<img src="cgi/counter.cgi">で読み込み。
こんなアクセスカウンターなんですが、1アクセスで数字が2増えてしまいます。
何故なんでしょうか?
0368デフォルトの名無しさん
2012/08/16(木) 23:41:30.08とした上で、python3にて>>367を試してみたけど、
一ずつ増加したよ。
htmlもしくはwebserverに問題ありとみた。
0369デフォルトの名無しさん
2012/08/16(木) 23:46:48.310370デフォルトの名無しさん
2012/08/16(木) 23:52:30.84あと、cgiファイルなんですが、
f.close()の後にprintで何か表示するコードを書かないと、
500エラーになるのですが、これが原因でしょうか?
0371デフォルトの名無しさん
2012/08/17(金) 00:41:04.34fcntl.flock(f.fileno(), fcntl.LOCK_UN)
もしくは、
f.flush()
fcntl.flock(f.fileno(), fcntl.LOCK_UN)
f.close()
が正しい順序の気もするが。
それは違う気もするし。
とりあえず、実行環境が悪いと思うよ。
directory毎まとめて実行環境をどっかにupしてよ。
情報を小出しにするんなら、これ以上は無理だよ。
0372デフォルトの名無しさん
2012/08/17(金) 00:46:52.47そのページに <img src="cgi/counter.cgi"> 2回書いてるとか?
0373デフォルトの名無しさん
2012/08/17(金) 01:22:41.130374デフォルトの名無しさん
2012/08/17(金) 01:30:20.420375デフォルトの名無しさん
2012/08/17(金) 09:27:48.260376デフォルトの名無しさん
2012/08/17(金) 10:03:14.600377デフォルトの名無しさん
2012/08/17(金) 10:32:10.700378デフォルトの名無しさん
2012/08/17(金) 16:14:49.200379デフォルトの名無しさん
2012/08/17(金) 16:23:57.04何で俺はいつもガセを掴まされるの?
https://docs.djangoproject.com/en/dev/topics/install/
ゴガギーン
ドッカン
m ドッカン
=====) )) ☆
∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( )| |_____ ∧_∧ < おらっ!出てこい>>378
「 ⌒ ̄ | | || (´Д` ) \___________
| /  ̄ | |/ 「 \
| | | | || || /\\
| | | | | へ//| | | |
| | | ロ|ロ |/,へ \| | | |
| ∧ | | | |/ \ / ( )
| | | |〈 | | | |
/ / / / | / | 〈| | |
/ / / / | | || | |
/ / / / =-----=-------- | |
0380デフォルトの名無しさん
2012/08/17(金) 16:30:31.86プロの方のコードをpep8に通したところたくさん指摘されて驚いたのですが
現場ではPEP8はどの程度守って書かれるのでしょうか?
0381デフォルトの名無しさん
2012/08/17(金) 16:55:46.53https://docs.djangoproject.com/en/dev/topics/python3/
"Django 1.5 is the first version of Django to support Python 3. The same code runs both on Python 2 (≥ 2.6.5) and Python 3 (≥ 3.2), thanks to the six compatibility layer and unicode_literals."
http://myks.org/django-python3/
"The first Django site to run on Python 3!"
0382デフォルトの名無しさん
2012/08/17(金) 16:56:49.20プロの方のコードってなんだよ。
そもそも pep8 はマストじゃない。
0383デフォルトの名無しさん
2012/08/17(金) 16:58:19.00読んでくる。
thanks!
0384デフォルトの名無しさん
2012/08/17(金) 17:09:19.88何カリカリしてんだ?
>>380
速度が低下する書き方は当たり前だけど禁止
1列79越えは普通に見るな 極端に大きいのはないけど
スペースはルールあるけど結構手癖で意識せずに入ったりその逆はあるねw
0385デフォルトの名無しさん
2012/08/17(金) 18:01:35.56ttp://oldriver.org/python/pep-0008j.html
個人的には変数をコンマで区切るときのPEP8スタイルは好き
動的言語は何が変数なのかはっきりさせるとそれだけで読みやすいし
0386デフォルトの名無しさん
2012/08/17(金) 21:21:17.230387デフォルトの名無しさん
2012/08/18(土) 02:00:32.01「PEP8 ではこうなってるから……」と持ちだすときに役に立つ。
あと、他人が作った無茶苦茶なソースを整形するときには役に立つ。
それ以外では不要。
0388デフォルトの名無しさん
2012/08/18(土) 10:15:48.59/| |
||. |∧_∧|
||. (´・ω・| うわっ、クソスレに来てしまった。
||oと. U|
|| |(__)J|
||/ ̄ ̄
___
| |
| |
| o|
| |
| |
彡 ̄ ̄ パタン、
0389デフォルトの名無しさん
2012/08/19(日) 00:33:21.560390デフォルトの名無しさん
2012/08/19(日) 01:12:44.13http://jestermon.weebly.com/nehe-pyglet-tutorials.html
lesson1 がありません。
なぜでしょうか?
0391デフォルトの名無しさん
2012/08/19(日) 02:00:57.35Help -> Install New Software
の順番で
http://pydev.org/updates
を指定しているのに・・・・
ずっとPendingのまま、最後には接続が切れてしまう。
0392デフォルトの名無しさん
2012/08/19(日) 02:06:55.960393デフォルトの名無しさん
2012/08/19(日) 02:09:43.450394デフォルトの名無しさん
2012/08/19(日) 11:10:11.130395デフォルトの名無しさん
2012/08/19(日) 11:36:57.750396デフォルトの名無しさん
2012/08/21(火) 10:46:39.73メソッド名を取得する方法があれば教えて下さい。
0397デフォルトの名無しさん
2012/08/21(火) 11:09:46.130398デフォルトの名無しさん
2012/08/21(火) 11:17:59.29ありがとうございます。
オブジェクトではないので、
import traceback
traceback.extract_stack()[-1][2]
でいけました。
0399デフォルトの名無しさん
2012/08/21(火) 15:08:11.33sys._getframe(0).f_code.co_name
sys._getframe(1).f_code.co_name
0400デフォルトの名無しさん
2012/08/21(火) 15:13:55.820401デフォルトの名無しさん
2012/08/21(火) 15:37:19.16便乗。
log(__file__,traceback.extract_stack()[-1][2],self.__class__.__name__ )
みたいに使って、クラス名を入れたいんだけど、
class宣言していない場所で使うとエラーになるので、
そういった箇所でもエラーにならない方法があれば教えてください。
0402デフォルトの名無しさん
2012/08/21(火) 15:47:47.660403デフォルトの名無しさん
2012/08/21(火) 15:49:57.39log(__file__,traceback.extract_stack()[-1][2],self.__class__.__name__ if locals().has_key('self') else None)
0404デフォルトの名無しさん
2012/08/21(火) 15:59:51.63サンクス!
引数の中でifが使えるのね。
0405デフォルトの名無しさん
2012/08/21(火) 19:05:45.83log()を埋め込むメソッド毎にimport tracebackを入れないといけないようですが、
これを省略する方法がないでしょうか?
0406デフォルトの名無しさん
2012/08/21(火) 19:59:44.590407デフォルトの名無しさん
2012/08/21(火) 22:08:27.98loggingモジュールでもサポートされてないし。
基本的なクラス・メソッドでは期待通りでも、その他の細かな状況で期待通りにならない。
例えば、メソッド内で作った内部関数では期待しない表示になる。
http://ideone.com/j41yD
# 3.3だと qualname 導入で、ネストした場合の名前表示にも対応できるかもしれない。
0408デフォルトの名無しさん
2012/08/21(火) 22:08:30.17log()の中の方で
import traceback
traceback.extract_stack()[-2][2]
0409デフォルトの名無しさん
2012/08/21(火) 22:35:02.06流れを知りたいモジュールA〜K.pyと
log表示用モジュールZ.pyは別ファイルです。
なのでAのメソッドaaaに入れるには
import traceback
import Z
log(__file__,traceback.extract_stack()[-1][2],self.__class__.__name__ if dict().has_key('self') else None)
と3行必要ですよね。
その他のメソッドbbb等沢山あるので、これを一行にできないでしょうか?
0410デフォルトの名無しさん
2012/08/22(水) 01:31:46.900411デフォルトの名無しさん
2012/08/22(水) 02:10:08.70馬鹿には無理
0412デフォルトの名無しさん
2012/08/22(水) 03:27:20.19loggingモジュール使おう
>>410
多分下の方
ttp://wiki.cython.org/enhancements/inline
ttp://wiki.cython.org/DifferencesFromPyrex#cdefinline
0413デフォルトの名無しさん
2012/08/22(水) 14:51:34.97Pythonの前はPHPの勉強をしていたのですが、その時にPHPにあった便利な機能と同様なものがPythonにないか調べていたのですが、わからなかったので質問させて頂きます。
PHPではHTMLのformの値を受け取る際に、
<input type="text" name="ckdata[]">
のようにすると、ckdataを配列として受け取れるのですが、Pythonではそのようなことはできないでしょうか?
<input type="file" name="file[1]">
<input type="text" name="text[1]">
<input type="file" name="file[2]">
<input type="text" name="text[2]">
<input type="file" name="file[3]">
<input type="text" name="text[3]">
のように、ファイルとファイルの説明文をユーザが自由な数追加して送信できるようにしているのですが、それをどのように処理すればいいか悩んでおります。
宜しくおねがいします。
0414デフォルトの名無しさん
2012/08/22(水) 15:09:59.40now = datetime.now()
today = date.today()
now.year == today.year and now.month == today.month and now.day == today.day
やっぱりこんな方法しかない?
0415デフォルトの名無しさん
2012/08/22(水) 15:27:00.55log()の中の方で
^^^^^^^^
import traceback
traceback.extract_stack()[-2][2]
^^^^
0416デフォルトの名無しさん
2012/08/22(水) 15:32:09.00now.date() == today
0417デフォルトの名無しさん
2012/08/22(水) 15:46:38.32>>414
datetime型にdate()というメソッドがありました。
now.date() == today
これだけ。
0418デフォルトの名無しさん
2012/08/22(水) 15:47:43.35thx
0419デフォルトの名無しさん
2012/08/22(水) 18:57:32.37初心者は別の言語を習得することをオススメする
PHP辺りがオススメだ
今からパイソンやるのは時間を無駄にするようなもんだ
0420デフォルトの名無しさん
2012/08/22(水) 19:16:13.41リリース前にテストすらしてない馬鹿作者さん。
0421413
2012/08/23(木) 12:48:56.53import re
di = { "file_file[0]": "file0", "file_file[1]": "file1", "file_file[2]": "file2", "file_title[0]": "title0", "file_title[1]": "title1", "file_body[2]": "body2", "file_file[41]": "file41", "file_body[1]": "body1"}
file_property = {}
for key, value in di.items():
key_match = re.search( "file_([^\[]+)\[(\d+)\]", key)
if not file_property.has_key( int(key_match.group(2))):
file_property[int(key_match.group(2))] = {}
file_property[int(key_match.group(2))][key_match.group(1)] = value
print file_property
ディクショナリの値にディクショナリを持たせたい場合、上のように一々ディクショナリを代入する必要があるのでしょうか?
もっと効率のいい方法や、よく使うやり方などあれば教えていただけると助かります。
0422デフォルトの名無しさん
2012/08/23(木) 13:04:10.100423デフォルトの名無しさん
2012/08/23(木) 13:55:26.380424デフォルトの名無しさん
2012/08/23(木) 14:32:16.180425デフォルトの名無しさん
2012/08/23(木) 14:57:45.70Web系の話題なのでWebプログラミング板へどうぞ
CGIかなとは思うけど、どのフレームワーク/ライブラリ利用してるのか等、
環境を詳しく書かないとレス着き難いと思うよ。
>>421のケースでは、一般的には collections.defaultdict が使えるけど、
CGIの話題だとしたら、標準ライブラリの cgi モジュールでもパラメータをリストで受けるのはサポートしてる。
0426デフォルトの名無しさん
2012/08/23(木) 19:31:07.98collections.defaultdictをもうちょっと工夫するとお望みのものに。
from collections import defaultdict
def newdict(): return defaultdict(newdict)
d = newdict()
d['a']['b']['c'] = 1
print d['a']['b']['c']
0427デフォルトの名無しさん
2012/08/24(金) 02:26:52.300428デフォルトの名無しさん
2012/08/24(金) 03:30:33.60re.__doc__
0429デフォルトの名無しさん
2012/08/24(金) 03:41:34.150430デフォルトの名無しさん
2012/08/24(金) 10:22:14.870431デフォルトの名無しさん
2012/08/24(金) 13:52:16.61どのように考えていくと正しい解答に辿りつけるのでしょう?
私も興味があったのでhelp(help)で調べると
This is a wrapper around pydoc.help (with a twist).
とありpydoc.pyのhelpメソッドが出てくる箇所を読んでいたのですが、
見当外れだったようです。
help(pydoc)でFUNCTIONSを読んで関係ありそうなものを見る…??
ものの調べ方が分からないというアホな質問ですが、ご教示いただけると幸いです。
0432デフォルトの名無しさん
2012/08/24(金) 14:44:29.74コピペすれば日本語をEntryのテキストボックスに入れることが出来るのですが、
どうやってキーボードから日本語を入力するのでしょうか。
0433デフォルトの名無しさん
2012/08/24(金) 16:23:15.31text.txtというファイルがあり、その内容は以下のように単純なものです
abc
def
ghi
そこで、次のようなコードを書きました
testfile = open("test.txt", "r")
testdict1 = {}
for t in testfile:
print t
testdict1[t] = 1
print testdict1
すると、forループ内のprint結果は、それぞれabc, def, ghiと正しく出力されたのですが
print testdict1の出力結果が
{'def\n': 1, '\xef\xbb\xbfabc\n': 1, 'ghi': 1}
となり、abcの文字列の前に不要なものがついてしまいました。
これはなぜでしょうか。
0434433
2012/08/24(金) 16:24:24.72コード最終行の
print testdict1
はforループ外です
0435デフォルトの名無しさん
2012/08/24(金) 16:46:27.41エディタでBOMなしのUTF-8で保存するように設定して
UTF-8NとかUTF-8(BOMなし)みたいに名前が付いてると思う
なお"\xef\xbb\xbf" はこのファイルはUTF-8ですよっていう印(UTF-8 BOM)
でもこういう問題が起こるから大抵は使わないほうがいい
0436デフォルトの名無しさん
2012/08/24(金) 17:08:34.36ヘルプを読んでヘルプを読む
0437デフォルトの名無しさん
2012/08/24(金) 17:26:50.60馬鹿には使えない
0438デフォルトの名無しさん
2012/08/24(金) 19:16:04.090439デフォルトの名無しさん
2012/08/24(金) 19:18:40.78どこかの技術力が足りない毎月パッチ出してる企業の人間がやり始めたんで迷惑極まりない
0440デフォルトの名無しさん
2012/08/24(金) 19:19:17.54少し抜けた
0441デフォルトの名無しさん
2012/08/24(金) 19:47:12.720442デフォルトの名無しさん
2012/08/24(金) 20:18:08.60http://www.python.jp/doc/release/library/codecs.html#module-encodings.utf_8_sig
0443デフォルトの名無しさん
2012/08/25(土) 10:51:47.07Pythonの初心者向けの解説にdocumentをきちんと書きましょうね、
>>> re.search.__doc__
'Scan through string looking for a match to the pattern, returning
a match object, or None if no match was found.'
こんな感じでmethod毎のdocumentを参照することもできますよ。
みたいなことが初心者に示されてた。
Pythonはこういう便利なことに対してきちんと誘導しているよ。
初心者用の説明をきちんと読みましょう。
0444デフォルトの名無しさん
2012/08/25(土) 14:13:41.25> どこかの技術力が足りない毎月パッチ出してる企業
それなりのソフト売ってる大抵の企業に当てはまりそうだ (w
0445デフォルトの名無しさん
2012/08/25(土) 18:17:37.21ありがとうございました。無事取得できました。
0446デフォルトの名無しさん
2012/08/25(土) 23:44:46.18返事が遅くなり申し訳ありません
BOM無しで保存すると、正常に動作するようになりました。
文字コードや使われ方について再度勉強しなおします。有難うございました。
0447デフォルトの名無しさん
2012/08/26(日) 18:56:00.410448デフォルトの名無しさん
2012/08/29(水) 07:00:25.93''';;';'';';''';;'';;;,., おっぱい!おっぱい!
;;''';;';'';';';;;'';;'';;;
;;'';';';;'';;';'';';';;;'';;'';;;
_ vnm_yvwnym_vynmyn_vy、
_ ∩(゚∀゚)彡(゚∀゚)彡(゚∀゚)彡_ミ(゚∀゚)っ
⊂(゚∀゚ )彡と(゚∀゚ ) ⊂ミ (゚∀゚ )っ (゚∀゚ )つ
ゝ⊂彡(゚∀゚ )っ _ ∩ (゚∀゚ ) .(ミ⊃ r
し u ミ⊃ r⊂(゚∀゚ )彡 ⊂彡 i_ノ┘
. i_ノ┘ ヽ ⊂彡 しu
(⌒) .|
三`J
0449デフォルトの名無しさん
2012/08/29(水) 07:03:06.39二二二二l \ │ /
| | ∧ ∧ / ̄\ ∧∧
| | ( ゚∀゚ )つ─◎ ─( ゚ ∀ ゚ )─◎ ( ゚∀゚)つ─◎
| | /´ ̄し' ̄し' \ /// /´ ̄し' ̄し' \ ///. /´ ̄し' ̄し' \ ///
 ̄ ̄| 、_人_ / 彡 ◎  ̄ | 、_人_ / 彡 ◎ ̄ ̄ ̄| 、_人_ / 彡 ◎ ̄
| _) ◎彡| | バン | _) ◎彡.| | バン | _) ◎彡.| | パン
| ´`Y´ | | バン | ´`Y´ .| | バン | #`Y´ .| | パン
t______t,,ノ t_______t,ノ t_____#t,ノ
_______________________________
0450デフォルトの名無しさん
2012/08/29(水) 09:03:01.67おっぱい おっぱい! おっぱい!
おっぱい! ∩ ∩ ノ) おっぱい!
おっぱい! 川 ∩ 川彡'三つ おっぱい!
おっぱい! ⊂ミ∩、⊂ミ∩彡⊃ おっぱい!
おっぱい!⊂三ミ( ゚∀゚)彡三彡三⊃ おっぱい!
おっぱい! ⊂彡川⊂彡川ミ⊃ おっぱい!
おっぱい!⊂彡川∪⊃ U川彡⊃ おっぱい!
おっぱい! (ノ ∪ 川 ∪ミ) おっぱい!
おっぱい! ∪ おっぱい!
おっぱい! おっぱい! おっぱい!
おっぱい! おっぱい!
0451デフォルトの名無しさん
2012/08/29(水) 09:59:36.51__ i⌒i ┏┛┗┓ ┃┣┛┗┫□┣┓ ┃┃ ┏┛┗┓ ┃┣┛┗┫□┣┓ .┃┃
./ O Oヽ | ┗┓┏╋┳━━┫┣┓┏┻━┫┃ ┏┓┃┃ ┗┓┏╋┳━━┫┣┓┏┻━┫┃ ┏┓┃┃
〈 |―/ | ノノ┏┛┗┻╋━┓┃┣┛┗┓ ┃┃ ┃┃┗┛ ┏┛┗┻╋━┓┃┣┛┗┓ ┃┃ ┃┃┗┛
ヽ. V ノ ...┃┃┏┓┃┏┛┃┃□┏┛ ┃┗┓┗┛┏┓ ┃┃┏┓┃┏┛┃┃□┏┛ ┃┗┓┗┛┏┓
( ̄ ̄ ノノ ┗━┛┗┛┗━┻┻━┛ ┗━┛ ┗┛ ┗━┛┗┛┗━┻┻━┛ ...┗━┛ ┗┛
0452デフォルトの名無しさん
2012/08/31(金) 12:39:58.66managerで作ったオブジェクトを可変にすることってできますか?
例えば
l = manager.list([0])とつくってたものを
他のプロセスで、状況に応じて
l = [[1,1],[2,2]]
みたいにしたいのですが
0453デフォルトの名無しさん
2012/08/31(金) 22:08:46.26http://www.slideshare.net/ryanvan/wxpython-in-action
0454デフォルトの名無しさん
2012/08/31(金) 22:12:33.44中国語じゃねーか!
0455452
2012/09/01(土) 00:57:47.94from multiprocessing import Process, Manager
class TestClass(Process):
def __init__(self, l):
super(TestClass, self).__init__()
self.l = l
def run(self):
count = 0
while count < 20:
self.l = [2]
count += 1
if __name__ == '__main__':
manager = Manager()
l = manager.list([0])
ss = TestClass(l)
ss.start()
print l
ss.join()
print l
これで最後のlが[2]にならない理由がわからないのですが
どうすればいいのでしょうか
0456デフォルトの名無しさん
2012/09/01(土) 11:16:34.38pass
shape1 = Shape()
shape2 = Shape()
shape1.position = 1
shape2.position = 2
の状態で
shape1やshape2またpositionという名前を(一括)取得する方法はないのでしょうか?
あれば教えて下さい。
0457デフォルトの名無しさん
2012/09/01(土) 11:21:13.250458デフォルトの名無しさん
2012/09/01(土) 11:27:54.01while の所、 self.l[:] = [2] じゃない?
0459デフォルトの名無しさん
2012/09/01(土) 14:33:56.720460デフォルトの名無しさん
2012/09/01(土) 14:40:47.10x in sequenceは演算子
0461デフォルトの名無しさん
2012/09/01(土) 14:46:45.98ありがとうございます。
0462デフォルトの名無しさん
2012/09/02(日) 16:24:43.20smtplib.SMTP([host[, port[, local_hostname[, timeout]]]])
ってあった場合、hostとtimeoutを指定したい時はどう書くのですか?
server = smtplib.SMTP("localhost", 120)とかしたら120がポートかなにかわからないですよね?
0463デフォルトの名無しさん
2012/09/02(日) 16:29:40.790464デフォルトの名無しさん
2012/09/02(日) 16:48:24.45SMTP("localhost", 120) # hostは"localhost", portが120
SMTP("localhost", timeout=120) # hostは"localhost", timeoutが120
0465デフォルトの名無しさん
2012/09/02(日) 23:50:29.200466デフォルトの名無しさん
2012/09/03(月) 17:38:47.69list型の変数xでインデックスを取得する場合、
こうやって引数を二つ指定するとどうなるのでしょうか
0467デフォルトの名無しさん
2012/09/03(月) 17:45:30.74マニュアル読もう
index(...)
S.index(sub [,start [,end]]) -> int
というわけでstartが探索の開始位置でendが終了位置
例えば "abcabcabc".index("c", 3) は 5 を返す
0468デフォルトの名無しさん
2012/09/03(月) 18:17:29.87ありがとうございます!
l[:]にしたらできました
ところで
l =xとl[:]=xは何が違うんでしょうか?
0469デフォルトの名無しさん
2012/09/03(月) 18:31:10.46selenium
0470デフォルトの名無しさん
2012/09/03(月) 19:05:04.05それぞれのパターンでリストを変更してみれば分かる
0471デフォルトの名無しさん
2012/09/03(月) 19:11:42.45>>> l = [1,2,3]
>>> l[:] = [2]
>>> l
[2]
>>> l = [1,2,3]
>>> l = [2]
>>> l
[2]
で変わらないと思ったのですが
それともmultiprocessingでの話でしょうか
0472デフォルトの名無しさん
2012/09/03(月) 19:18:03.25これで分かる
http://people.csail.mit.edu/pgbovine/python/tutor.html#mode=edit
0473デフォルトの名無しさん
2012/09/03(月) 19:20:35.54>>> a = [1,2,3]
>>> b = a
>>> a[:] = [2]
>>> a, b
([2], [2])
>>> a = [1,2,3]
>>> b = [2]
>>> a
[1, 2, 3]
0474デフォルトの名無しさん
2012/09/03(月) 19:33:31.83>>473
ありがとうございます
l[:]だと同じアドレスを指してくれるんですね
勉強になりました
0475デフォルトの名無しさん
2012/09/05(水) 01:41:37.8664bit版Windows&PythonでNumyとかを使いたいって話
http://spyder-ide.blogspot.fr/2012/08/scientific-python-distribution-for.html
その後、ベータ版が完成したって話
http://spyder-ide.blogspot.jp/2012/08/following-my-recent-post-on-free-open.html
0476デフォルトの名無しさん
2012/09/06(木) 08:32:46.57現在日記帳のような、テキストを保存していくプログラムの制作をしています。
データの保存形式をSQLiteのようなRDBで行うか、ShelveやPickleのようなPythonオブジェクトで行うか、CSVのようなテキストで行うか悩んだ結果、現在はShelvで行うようにしました。
そこで疑問なのですが、現在は1日に1件追加するかどうかなので、Shelveのファイル容量も大きくないので気にならないのですが、ShelveやPickleのようなPythonオブジェクトとして保存する場合は、プログラムでのロード時に全てメモリに読み込まれるのでしょうか?
0477デフォルトの名無しさん
2012/09/06(木) 08:50:08.700478デフォルトの名無しさん
2012/09/06(木) 10:58:09.37pickleはその通り。
shelveでは、バックエンドで選択されるdbmとプログラムの組み方次第。
データ取り出しは1件毎だけど、一旦読み込まれたデータはキャッシュされるので、
例えば、常駐型のプログラムでshelve.openしたまま開きっぱなしの様な使い方をすると、利用メモリは増加するはず。
0479デフォルトの名無しさん
2012/09/07(金) 02:15:24.28xrcで作ったダイアログの、あるコントロールの前にpythonから画像を追加したいのですが、どうやればいいでしょうか?
xrcにあるtextCtrlやpanelは取得出来ています
sizerが取得出来なくて、panelにはAddが無いしで困っています
的外れな質問だったらすみません
0480デフォルトの名無しさん
2012/09/07(金) 03:06:00.010481デフォルトの名無しさん
2012/09/07(金) 03:12:01.120482デフォルトの名無しさん
2012/09/07(金) 08:42:36.950483デフォルトの名無しさん
2012/09/07(金) 23:22:07.33レスありがとうございます
まだ出来てません…
出来たらまた報告に来ます
ありがとうございました
0484デフォルトの名無しさん
2012/09/08(土) 18:26:26.14ありがとうございます
やってみましたが、残念なことに実行速度は変わらなかったというか、微妙に遅くなった気がします
0485デフォルトの名無しさん
2012/09/09(日) 16:59:24.49from test import pystone
print pystone.pystones()
という中身のhoge.pyをコマンドプロンプトで実行すると
>python hoge.py
(1.9339092849094406, 25854.36679484237)
Pydevで実行すると
(0.9808881658798508, 50974.210658511)
となります。ロースペックなのは置いといて、2倍くらい差が出るのはなぜでしょうか
0486デフォルトの名無しさん
2012/09/09(日) 18:48:14.500487デフォルトの名無しさん
2012/09/09(日) 20:40:36.860488デフォルトの名無しさん
2012/09/09(日) 20:45:35.28IDEは気の利いたオプション付けて実行してくれたりするんだよ
そこをまず確認しろ
0489デフォルトの名無しさん
2012/09/09(日) 20:46:35.390490デフォルトの名無しさん
2012/09/09(日) 20:47:15.270491デフォルトの名無しさん
2012/09/09(日) 20:48:29.870492デフォルトの名無しさん
2012/09/09(日) 20:49:24.20そのまま死ね
0493デフォルトの名無しさん
2012/09/09(日) 20:49:42.910494デフォルトの名無しさん
2012/09/09(日) 20:50:19.682倍くらい差が出るのはなぜですか?
0495デフォルトの名無しさん
2012/09/09(日) 20:52:20.57pdbのせいだったりしない?
0496デフォルトの名無しさん
2012/09/10(月) 00:46:43.00波になってあなたへ向かってく
私の歌がデムパになって
波になってあなたへ響いてく
私の愛がデムパになって
波になってあなたへ届いてく
私の電子回路が短絡する前に
Electric LOVE Electric LOVE
(∩ ゚д゚) アーアー
この気持ちあなたに届くかな
0497デフォルトの名無しさん
2012/09/10(月) 21:42:59.74アプリケーションを機能ごとに分割するのはわかる
アプリケーションのディレクトリ内にmodels.py views,pyとかがあるわけだが
例えばWebAPIのラッパークラスを作るとき、models.pyに書くのが正しいのか?新しい.pyファイルを作ってしまうのが正しい?
そもそもviews.pyなんて不要なんだからアプリケーションにするのが間違ってるのか
0498デフォルトの名無しさん
2012/09/11(火) 04:36:19.360499デフォルトの名無しさん
2012/09/11(火) 08:01:13.28| |
│ _ ∩ |
│ ( ゚∀゚)彡 おっぱい! |
│ ( ⊂彡 おっぱい! .|
│ | | |
│ し ⌒J |
│ |
│ Now Oppaing. .... .|
│ そのままおっぱいでお待ちください。 |
└──────────────────┘
0500デフォルトの名無しさん
2012/09/11(火) 22:55:53.732つのディレクトリにmy名前空間があるとして次のように読み込むもうとしています。
sys.path[:0] = ['mylib','mylib2']
from my.config import MyConfig
from my.log.parser import MyLogParser
しかし、例えばmylib2にmy/config.pyがある場合、
mylibを探索した時点でImportErrorになってしまいます(mylib以下にはmy/config.pyは存在しない)
名前空間の名前(my)を変えれば問題ないことは確認したのですが、この挙動は変更できるんでしょうか?
つまり、1つめのディレクトリにmy名前空間があってファイルが見つからなくとも
次のディレクトリのmy名前空間を探索するように。
0501デフォルトの名無しさん
2012/09/12(水) 02:58:23.04windows XPで python2.7.3を使っています。
SciPyをインストールしたのですが、ファイルにプログラムを書きだして、実行すると
from scipy import *
ImportError: No module named scipy
とエラーが出ます。
一方で、対話型インタプリタで from scipy import * をするとちゃんと通ります。
原因がわかる方がいましたら、教えてください。
0502デフォルトの名無しさん
2012/09/12(水) 07:25:24.95SciPyはよく分からないけど、
前者の「実行」と後者の「対話型インタプリタ」は、それぞれどう起動したの?
Pythonの環境が2つ入っているかも。
前者をファイルのダブルクリックで起動してるようなら、ファイルの関連付け確認。(CygwinやMinGWのシェルから起動してるなら、ファイル先頭行の#!の指定を確認)
後者を、単純にコマンドプロンプトからの>pythonで起動してるのでなければ、SciPyのインストール時に何か設定が入ったのかもしれない
0503デフォルトの名無しさん
2012/09/12(水) 07:32:57.380504500
2012/09/12(水) 10:32:41.37けどインポートディレクトリ直下のディレクトリ(>>500ではmy)が同名っていうのは
それほど特別ではないと思うけど、どうなんでしょうか。
Pythonではなく、こちらの配置かなにか問題があるのかな?
0505デフォルトの名無しさん
2012/09/12(水) 10:37:07.000506デフォルトの名無しさん
2012/09/12(水) 12:15:39.76>>> import sys
>>> print('\n'.join(sys.path))
>>> sys.modules['scipy']
とやって実行結果の違いを比べるよろし。
0507500
2012/09/12(水) 12:40:17.03ありがとうです。PATHをとおしているmylibディレクトリには__init__.pyは不要と思うのですが
それぞれのmy/__init__.pyに以下の記述をして解消できました(python2.7)
※>>500のケースではmylib/my/__init__.pyのみでも大丈夫
try: __import__('pkg_resources').declare_namespace(__name__)
except ImportError: __path__ = __import__('pkgutil').extend_path(__path__, __name__)
お決まりのイディオムのようなので、今はよくわからないまま放置してますが
何をしてるのか後で読み込んでみますm(_ _)m
0508501
2012/09/12(水) 16:23:42.20原因はPython2.7と3.2が入っていることでした。
>>502
ファイルをプログラムに書きだして実行するときは、コマンドプロンプトから、
cd "ファイルとあるディレクトリ"
python ファイル名.py
で実行するか、コマンドプロンプトにファイルをドラッグ&ドロップして実行していました。
対話型インタプリタはコマンドプロンプトから、pythonとうって起動していました。
おっしゃる通り、Pythonの環境が2つはいっており、Scipyを入れていないPython3.2が邪魔しているようでした。
Python3.2のフォルダを削除したら、エラーが無くなり、プログラムが通るようになりました。
ありがとうございます。
>>506
教えていただいた
>>> import sys
>>> print('\n'.join(sys.path))
>>> sys.modules['scipy']
をやって見たところ、
対話型インタプリタでは
C:\Python27
が出てきたのに対し、
コマンドプロンプトにファイルをドラッグ&ドロップで実行して場合は
C:\Python32
が出て、問題に気づけました。
ありがとうございます。
0509デフォルトの名無しさん
2012/09/12(水) 19:52:29.720510デフォルトの名無しさん
2012/09/12(水) 23:49:33.00分かりづらいかもしれないけど、下のような感じで。
th = thread(function=hoge)
th.start()
while not th.end():
time.sleep(1)
result = th.result()
0511デフォルトの名無しさん
2012/09/12(水) 23:55:38.550512デフォルトの名無しさん
2012/09/13(木) 00:00:55.820513デフォルトの名無しさん
2012/09/13(木) 00:13:20.26while not th.end():
time.sleep(1)
とか
あほやろ
0514デフォルトの名無しさん
2012/09/13(木) 00:18:05.540515デフォルトの名無しさん
2012/09/13(木) 00:55:24.34import threading
def hoge(result): result['foo'] = 123
result = {}
th = threading.Thread(target=hoge, args=(result,))
th.start()
th.join()
print result
戻り値はdictにしたけど、スカラー値じゃなければ単純にこれでいける。
どうしてもポーリングしたけりゃth.isAlive()がある。
0516デフォルトの名無しさん
2012/09/13(木) 05:09:51.940517デフォルトの名無しさん
2012/09/14(金) 03:07:57.440518デフォルトの名無しさん
2012/09/14(金) 16:08:23.96確かにQueueの話も出てきた気がするけど
0519デフォルトの名無しさん
2012/09/14(金) 20:11:08.930520デフォルトの名無しさん
2012/09/14(金) 20:34:23.02読まずにプログラムを書き始めたほうがいい
実際に書いてみてわからないことが出てきたら何読めばいいですかって質問して
0521デフォルトの名無しさん
2012/09/15(土) 11:46:38.42スタティックリンクした C のバイナリ見たくライブラリ全部くっついてる感じ
0522デフォルトの名無しさん
2012/09/15(土) 12:12:03.61できそうな感じ
0523デフォルトの名無しさん
2012/09/15(土) 12:25:28.43.pyc/.pyo の事だったら .zip や .egg に纏めることが出来るよ。
実行ファイルだとしたら、外部ツールの領分。もしくは自分で実行ファイル作ってリソースを埋め込む。
一応作れるけど、ライブラリの構成によっては簡単には出来ないものもある。
0524デフォルトの名無しさん
2012/09/15(土) 13:27:09.150525デフォルトの名無しさん
2012/09/15(土) 16:16:16.04ありがとう, 調べてみる
組み込み装置相手だと標準ライブラリ展開できないのが辛い
つか, 考えてみたら ldd みたく, 「このライブラリに依存しているよ」
情報を教えてくれるアプリでもいいのか
0526デフォルトの名無しさん
2012/09/15(土) 20:03:47.960527デフォルトの名無しさん
2012/09/16(日) 11:33:18.01スタンドアローン環境でとか言われると困る
0528デフォルトの名無しさん
2012/09/16(日) 11:39:15.100529デフォルトの名無しさん
2012/09/16(日) 12:01:38.41ライブラリ名.zipの中にpyc固められるし
0530デフォルトの名無しさん
2012/09/16(日) 15:11:27.65オプションで1個 (zipped) できる
0531デフォルトの名無しさん
2012/09/16(日) 17:46:21.410532デフォルトの名無しさん
2012/09/16(日) 18:15:28.600533デフォルトの名無しさん
2012/09/16(日) 19:59:05.08余った飯も貰って2人分食べた
講演はけっこう寝てましたすんまそんw
0534デフォルトの名無しさん
2012/09/16(日) 20:01:54.66断ってよかった
0535デフォルトの名無しさん
2012/09/16(日) 20:44:46.55Rubyみたいに松江とかでされてもコマル
0536デフォルトの名無しさん
2012/09/16(日) 20:44:54.260537デフォルトの名無しさん
2012/09/16(日) 20:47:59.350538デフォルトの名無しさん
2012/09/16(日) 20:51:07.48どうぞー。ちなみに自分は使ってないからたぶん答えられない
0539デフォルトの名無しさん
2012/09/16(日) 21:08:00.41で、
(7, 13)
を期待しているのですが、
(3, 9, 4, 4)
になってしまいます。
正しくはどう書けば良いですか?
0540デフォルトの名無しさん
2012/09/16(日) 21:19:31.27とは書けるけど、
そういう演算がいっぱいあるならNumPyつかった方がいい。
0541デフォルトの名無しさん
2012/09/16(日) 23:17:56.51こんなところまでダイエットするとかすげえな、と聞いた当時思った
0542デフォルトの名無しさん
2012/09/16(日) 23:21:37.240543デフォルトの名無しさん
2012/09/16(日) 23:43:12.87普通ならsetに追加していけばいいと思うのですが,numpyの配列はsetにいれることができませんでした.
listに追加していき, in listで評価していってもいいのですが,とても遅くなってしまいます.
なにかいい方法ありませんか?
0544デフォルトの名無しさん
2012/09/16(日) 23:56:30.100545544
2012/09/16(日) 23:57:52.09numpy クラスタって天才が多いイメージ
0546デフォルトの名無しさん
2012/09/17(月) 00:05:46.430547デフォルトの名無しさん
2012/09/17(月) 00:16:05.50質問の仕方が悪かったです.
やりたいことはこんな感じです
numpySet = set()
numpyList = []
while 1:
a = numpy.array([random.randint(1,999)])
if not(a in numpySet):
numpyList.append(a)
0548デフォルトの名無しさん
2012/09/17(月) 00:57:37.533.0からっすね
http://docs.python.org/dev/whatsnew/3.0.html#removed-syntax
0549デフォルトの名無しさん
2012/09/17(月) 00:59:43.91どう?
import random
d = {}
s = set()
for i in range(10):
r = random.randint(0, 10)
print(r)
d[r] = None
s.add(r)
print(d.keys())
print(s)
0550デフォルトの名無しさん
2012/09/17(月) 01:07:46.65import random
d = {}
s = set()
for i in range(10):
L = []
for j in range(2):
r = random.randint(0, 3)
L.append(r)
print(L)
t = tuple(L)
d[t] = None
s.add(t)
print(d.keys())
print(s)
nL = [list(x) for x in d.keys()]
print('nL =', nL)
print('len(nL) =', len(nL))
0551デフォルトの名無しさん
2012/09/17(月) 01:20:27.92____
/ \
/ _ノ ヽ、_ \
/ o゚⌒ ⌒゚o \ ごめんね、ごめんね、ごめんね
| (__人__) | いつもいつも迷惑かけて
\ ` ⌒´ / ごめんね、ごめんね、ごめんね。
____
/⌒ ⌒\
/( ●) (●)\
/::::::⌒(__人__)⌒::::: \ もう謝ったから気にしないお!
| |r┬-| |
\ `ー'´ /
sqlite3使うのかなー、と思ったり。
0552デフォルトの名無しさん
2012/09/17(月) 01:36:04.15ありがとうございます
numpyもtuple形式にするとsetとかdictに入れられたのですが
x in dicのように比較するとUse a.any() or a.all()と怒られます
== のような比較ならnumpy.all(x == a)でできますが,inのときはどうすればいいでしょう?
0553デフォルトの名無しさん
2012/09/17(月) 01:46:05.70全ての数字をシャッフルして、そこから必要数取れば処理も早くなるのでは?
>>> import random
>>> import numpy
>>> numList = range(1,999)
>>> random.shuffle(numList)
>>> numpyList = []
>>> for num in numList[:20]:
numpyList.append(numpy.array(num))
0554い
2012/09/17(月) 01:56:41.88説明ではrandom使ったのですが,実際はnumpyの配列がある処理によって生成されていき,
まだ出てきていない配列だけをtxtに保存したいと思ってます
0555デフォルトの名無しさん
2012/09/17(月) 04:49:28.24色々やってみたけど駄目だった。
根本的な問題は hash 化できないことだけど、
list()はしょうがないので、一旦tuple()で逃げることにした。
これでどう?
import numpy as np
import random
s = set()
for i in range(10):
L = []
for j in range(2):
r = random.randint(0, 3)
L.append(r)
print 'L =', L
na = np.array(L)
print 'na =', na
t = tuple(na)
print 't =', t
s.add(t)
na = None
print s
print 'len(s) =', len(s)
na2 = [np.array(x) for x in s]
print na2
print 'len(na2) =', len(na2)
0556デフォルトの名無しさん
2012/09/17(月) 08:37:06.660557デフォルトの名無しさん
2012/09/17(月) 13:35:35.68from pyglet.gl import *
としているものと
from OpenGL.GL import *
としているものがあり
特にその中でどちらのモジュールにも
glBitmap という関数が存在するのですが
7 番目の引数について
OpenGL.GL の場合は str を渡すと正常に動作します
ところが
pyglet.gl の方では str を渡すと「型が違う」エラーが出ます
PL_C_ubyte とか言う型が要求されているようです
元々 pyglet.gl の方を良く使っていて glBitmap 以外の関数
glTexImage2D なんかだと str 渡しても問題なかったので
pyglet.gl の glBitmap で正常に動作させる方法が知りたいです
ctypes で c_char_p とかに変換して渡してもだめでした
0558デフォルトの名無しさん
2012/09/17(月) 13:37:25.08LP_C_ubyte でした
すみません
0559デフォルトの名無しさん
2012/09/17(月) 13:50:06.220560デフォルトの名無しさん
2012/09/17(月) 13:57:10.850561デフォルトの名無しさん
2012/09/17(月) 14:00:29.04とか続けたくなる
0562デフォルトの名無しさん
2012/09/17(月) 14:07:02.13簡単だと思ったのが運の尽き。。。
0563デフォルトの名無しさん
2012/09/17(月) 14:17:17.45glBitmap(p1, p2, p3, p4, p5, p6, hoge)
で逝けるみたいだけど?
0564デフォルトの名無しさん
2012/09/17(月) 14:29:45.13bmplen = (width / 8) * height
bmpdata = (ctypes.c_ubyte * bmplen)(*([255] * bmplen))
glBitmap(w, h, w / 2, h / 2, 0.0, 0.0, bmpdata)
で上手く逝きました
ほんとうにありがとうございました
0565デフォルトの名無しさん
2012/09/17(月) 14:30:54.060566デフォルトの名無しさん
2012/09/17(月) 15:02:42.410567デフォルトの名無しさん
2012/09/17(月) 16:39:11.95ここが通らなくて詰んだわ。
def test_simple_rule(self):
self.assertEquals(str(SimpleBars(" i ").next()), " iTi ")
'i ' と 'i' の優先度は左が高いんだから、'T'に変換できないでしょ。
あとね、hintってhintじゃないし。
条件じゃない。知らなかったら絶対解けない。
条件を知っても解けない。出題者出てこい。
0568デフォルトの名無しさん
2012/09/17(月) 16:43:39.17付せんには next() での変更のルールの分析結果がメモされているみたい。
ええっと、上の付せんは、iTi という並びがあると真ん中の文字が i になる、ということを示しているのかな?
下の付せんについては、同じ行のルールは左のほうが優先度高いんだ、ってメモした本人が言ってた。
ここの読み解き方が分からんよ、分からん。
0569デフォルトの名無しさん
2012/09/17(月) 16:52:14.56人によって問題違うン?sys.argv[1] とか渡されないと分からん
print の結果を答えるんじゃないんかね
0570デフォルトの名無しさん
2012/09/17(月) 17:00:13.490571デフォルトの名無しさん
2012/09/17(月) 17:32:34.54def lets_take_tea_break(m, e, n, c):
if pow(m, e) % n == c:
return str(m)
return ""
lets_take_tea_break(*[int(i) for i in (sys.argv[1], 17, 3569, 915)])
こんなのでしょ?
同じだと思うよ。
0572デフォルトの名無しさん
2012/09/17(月) 17:53:36.96この文法わからんちん
どっか解説してるサイト無い?
for i in (sys.argv[1], 17, 3569, 915)
これはリストから変数iとして取り出す、分かる
forの前についてるint(i)ってなんぞ?
*[]はなんぞ?
0573デフォルトの名無しさん
2012/09/17(月) 17:56:50.14Python のチュートリアル見ればおk
二番mんd
0574デフォルトの名無しさん
2012/09/17(月) 18:03:44.96をややこしく書いただけってこと?
0575デフォルトの名無しさん
2012/09/17(月) 18:07:04.47X軸で-π/4回転してからY軸で-π/4回転した場合と
Y軸で-π/4回転してからX軸で-π/4回転した場合とで
同じ場所になりますか?
またこれらで与えられる角度が変わった場合でも
X-Y軸の回転順序が違っても常に同じことが期待出来ますか?
あとZ軸が加わった場合でも同じですか?
0576デフォルトの名無しさん
2012/09/17(月) 18:08:12.18関数の引数の数が可変の場合に役に立つ
0577デフォルトの名無しさん
2012/09/17(月) 18:09:39.61lets_take_tea_break(*map(int, (sys.argv[1], 17, 3569, 915)))
でいいんじゃないかな
0578デフォルトの名無しさん
2012/09/17(月) 18:15:07.55結果は一緒にはならないけど、python関係なくね?
0579デフォルトの名無しさん
2012/09/17(月) 18:16:37.35http://cp1.nintendo.co.jp/2012
http://cp1.nintendo.co.jp/2012_hint.html
↑に来て助けてくれぇぇぇ。
↓使ってくれていいから。
class SimpleBars(list):
def __str__(self):
return "".join(self)
def next(self):
pass
pow(m, e) % n
こんな表記がある時点で中の人は駄目そうって思ったけどさ。
pow(m, e, n)
だろjk
0580デフォルトの名無しさん
2012/09/17(月) 18:18:43.08ヒント1
付せんには next() での変更のルールの分析結果がメモされているみたい。
ええっと、上の付せんは、iTi という並びがあると真ん中の文字が i になる、ということを示しているのかな?
下の付せんについては、同じ行のルールは左のほうが優先度高いんだ、ってメモした本人が言ってた。
ヒント2
出力をよく見て! 途中で左端から出ていった文字が右端から回り込んでる……?
ヒント3
SimpleBars のソースコードはどこ?って聞いたら、代わりにテストコードをあげる、だって。
SimpleBarsTest.py
覚え書き:
・list を継承する→ class SimpleBars(list):
・list("abc") == ["a", "b", "c"]; "".join(["a", "b", "c"]) == "abc"
・str() のカスタマイズ→ def __str__(self):
ヒント4
SimpleBars を実装したら、あとは問題後半のコードを何も考えずに実行すれば答えが出そう。
このややこしいコードを読み解く必要はないみたい。
これ、ヒントじゃないから。
条件だから。この条件がないと絶対解けない。
この条件があっても解けない。
ヒント1が曲者で困ってござる。
0581デフォルトの名無しさん
2012/09/17(月) 18:21:14.67def __str__(self):
return "".join(self)
str(simplebarsTest)が文字列で帰ってこない・・・
わけわからん
0582デフォルトの名無しさん
2012/09/17(月) 18:23:53.210583デフォルトの名無しさん
2012/09/17(月) 18:29:54.00パズルを解けという依頼は他所でやった方が良い
アルゴリズムの実装においてpythonのことで分からないことがあればそこだけ質問しろ
0584デフォルトの名無しさん
2012/09/17(月) 18:46:03.06やってられるか
0585デフォルトの名無しさん
2012/09/17(月) 19:08:50.16どうやって解いたらいいんだお。。。
0586デフォルトの名無しさん
2012/09/17(月) 19:10:22.640587デフォルトの名無しさん
2012/09/17(月) 19:21:31.36お前が困っていようと、いまいと関係ない。
どうやって解いたらいいんだお。。。
0588デフォルトの名無しさん
2012/09/17(月) 19:23:24.250589デフォルトの名無しさん
2012/09/17(月) 19:29:55.410590デフォルトの名無しさん
2012/09/17(月) 20:03:14.97子供は帰れよ
自分のテストを他人の力で突破してなんになる
0591デフォルトの名無しさん
2012/09/17(月) 20:09:01.670592デフォルトの名無しさん
2012/09/17(月) 20:09:30.720593デフォルトの名無しさん
2012/09/17(月) 20:11:04.780594デフォルトの名無しさん
2012/09/17(月) 20:12:07.880595デフォルトの名無しさん
2012/09/17(月) 20:46:32.95いまいち盛り上がらないでやんの
0596デフォルトの名無しさん
2012/09/17(月) 21:58:28.220597デフォルトの名無しさん
2012/09/17(月) 23:58:06.29実はmapって遅いんですね
0598デフォルトの名無しさん
2012/09/18(火) 00:02:56.180599デフォルトの名無しさん
2012/09/18(火) 00:05:49.95“Code Puzzle”を解かれた方々に対して、景品をお渡ししたり採用におけるメリットを提供することはありません。
“Code Puzzle”を解かれた方々に対して、景品をお渡ししたり採用におけるメリットを提供することはありません。
“Code Puzzle”を解かれた方々に対して、景品をお渡ししたり採用におけるメリットを提供することはありません。
“Code Puzzle”を解かれた方々に対して、景品をお渡ししたり採用におけるメリットを提供することはありません。
“Code Puzzle”を解かれた方々に対して、景品をお渡ししたり採用におけるメリットを提供することはありません。
“Code Puzzle”を解かれた方々に対して、景品をお渡ししたり採用におけるメリットを提供することはありません。
“Code Puzzle”を解かれた方々に対して、景品をお渡ししたり採用におけるメリットを提供することはありません。
0600デフォルトの名無しさん
2012/09/18(火) 00:17:49.33なら解く必要ないじゃん
──終了──
0601デフォルトの名無しさん
2012/09/18(火) 01:30:06.070602デフォルトの名無しさん
2012/09/18(火) 01:35:07.31>>> print '%d,%d,%d' % (a[0], a[1], a[2])
2,3,1
>>> print '%d,%d,%d' % a
TypeError: int argument required
>>> print '%d,%d,%d' % (*a)
SyntaxError: invalid syntax
何がいけないんでしょう?><
0603デフォルトの名無しさん
2012/09/18(火) 01:39:36.910604デフォルトの名無しさん
2012/09/18(火) 01:42:18.500605デフォルトの名無しさん
2012/09/18(火) 06:35:30.70任天堂がPython使ったことに嫉妬して暴れ出した。
0606デフォルトの名無しさん
2012/09/18(火) 23:50:41.87を
L=[ 'val3', { '1e': 1, '1f': 3}, 'val2', { '1c': 1, '1d': 2}, 'val1', { '1a': 1, '1b': 1, '1g':0 } ]
のように{}内の値の合計(1+3,1+2,1+1+0)でsortする方法を教えて下さい。
0607デフォルトの名無しさん
2012/09/19(水) 00:00:39.98まだvalXと対応するdictが纏まってればいいけど
一緒にリストに突っ込んでるなんて醜い醜い醜い
プログラマに全角半角入り混じった文章を見せ続けると死ぬに近い不快感
0608デフォルトの名無しさん
2012/09/19(水) 00:03:56.210609デフォルトの名無しさん
2012/09/19(水) 00:16:40.99せめてこうだったらな
0610デフォルトの名無しさん
2012/09/19(水) 00:18:53.580611デフォルトの名無しさん
2012/09/19(水) 00:21:04.69L.sort(lambda x,y:sum(y[1].values())-sum(x[1].values()))
0612デフォルトの名無しさん
2012/09/19(水) 00:27:08.60>>606の1行目を>>609に変形して、>>611を実行して、さらに>>606の3行目に戻せばいい。
0613デフォルトの名無しさん
2012/09/19(水) 09:33:34.03全角半角入り混じった文章ではなくて
全角英数が入り混じった文章ではないのかな
0614デフォルトの名無しさん
2012/09/19(水) 09:36:16.53L={'val1': { '1a': 1, '1b': 1, '1g':0 }, 'val2': { '1c': 1, '1d': 2}, 'val3': { '1e': 1, '1f': 3}}
のつもりだったんじゃないのかな
0615デフォルトの名無しさん
2012/09/19(水) 09:44:05.91失敗したら他人のせいにするのが経営者
失敗しても安全と言い張るのが御用学者
失敗しても気にしないのが東電
失敗したらデータを捏造するのが韓国人
失敗したら隠すのが中国人
失敗したらもみ消すのが警察
失敗したら有耶無耶にするのが官僚
失敗したらルールを変えるのが政治家
失敗したら喜ぶのがマスゴミ
0616デフォルトの名無しさん
2012/09/19(水) 16:41:23.590617デフォルトの名無しさん
2012/09/19(水) 16:47:54.530618デフォルトの名無しさん
2012/09/19(水) 17:13:03.14Cython0.17
Visual Studio9.0 x86
Python3.1, 3.2 64bitは問題ないのに
3.3rc2 64bitだけエラーが起きる
Microsoft Visual C++ Runtime Library
Runtime Error!
Program: C\Python33\python.exe
R6034
An application has made an attempt to load the C runtime library incorrectly.
Please contact the application's support team for more information.
ImportError: DLL load failed: ダイナミック リンク ライブラリ (DLL) 初期化ルーチンの実行に失敗しました。
0619デフォルトの名無しさん
2012/09/19(水) 17:50:12.140620デフォルトの名無しさん
2012/09/19(水) 18:26:07.41> Visual Studio9.0 x86
0621デフォルトの名無しさん
2012/09/19(水) 18:48:08.920622デフォルトの名無しさん
2012/09/19(水) 18:52:12.21http://msdn.microsoft.com/ja-jp/library/ms235560%28v=vs.80%29.aspx
0623デフォルトの名無しさん
2012/09/19(水) 18:53:55.89今はまともになったの?
0624デフォルトの名無しさん
2012/09/19(水) 18:55:39.640625デフォルトの名無しさん
2012/09/19(水) 18:58:26.94PythonMagickでアニメーションGIFのフレーム毎の処理を行う場合、PILでいうseek()のようなのって無いんでしょうか?
0626デフォルトの名無しさん
2012/09/19(水) 18:59:32.40Pydevって言ってんだから文脈からvisual studioのpython開発プラグインって気づけよ
0627デフォルトの名無しさん
2012/09/19(水) 19:01:26.200628デフォルトの名無しさん
2012/09/19(水) 19:01:41.170629デフォルトの名無しさん
2012/09/19(水) 19:02:02.880630デフォルトの名無しさん
2012/09/19(水) 19:03:42.030631デフォルトの名無しさん
2012/09/19(水) 19:04:48.600632デフォルトの名無しさん
2012/09/19(水) 19:06:46.250633デフォルトの名無しさん
2012/09/19(水) 19:07:09.960634デフォルトの名無しさん
2012/09/19(水) 19:07:38.750635デフォルトの名無しさん
2012/09/19(水) 19:08:03.960636デフォルトの名無しさん
2012/09/19(水) 19:08:50.67狭い畑だからな
0637デフォルトの名無しさん
2012/09/19(水) 19:09:47.03ありがとう、自力で頑張るよ
0638デフォルトの名無しさん
2012/09/19(水) 19:10:01.23ごめんねー
0639デフォルトの名無しさん
2012/09/19(水) 19:13:40.85Python setup.py build_ext --inplace
でコンパイルすると
c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Bin\amd64\cl.exeとlink.exeが使われて
その後
C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\x64\mt.exeが行われます
これで完成した.pydをimportするとPython3.3だけエラーが起こります
0640デフォルトの名無しさん
2012/09/19(水) 19:30:58.40ありがとうございます
解決しました
Python3.3だけmt.exeが実行されずに終わってました
setup.pyは同じなのに…
とりあえず、手動で実行したら解決しました
0641デフォルトの名無しさん
2012/09/21(金) 20:23:15.35引数と環境変数と記録するようなwrapper書くとか、
Pythonスクリプトに一時停止するコードを追加してProcess Exploererで引数と環境変数を見るとか、
PyDevのソースコードを見るとか。
0642デフォルトの名無しさん
2012/09/21(金) 22:02:06.87名前が好きになれないし、FORTRAN95みたいにインデント
でブロック構成だなんて。PHPの方がまだましだわ。
0643デフォルトの名無しさん
2012/09/21(金) 22:04:48.090644デフォルトの名無しさん
2012/09/21(金) 22:07:00.24何か中国政府の高官発言みたい。
0645デフォルトの名無しさん
2012/09/21(金) 22:07:25.73紛らわしい…
0646デフォルトの名無しさん
2012/09/21(金) 22:09:25.94> pythonってニシキヘビだろ?
しばしばそのような指摘がなされますが、pythonの成り立ちと実在の蛇とはまったく関係がありません
0647デフォルトの名無しさん
2012/09/21(金) 22:10:53.130648デフォルトの名無しさん
2012/09/21(金) 22:34:01.190649デフォルトの名無しさん
2012/09/22(土) 01:52:32.710650デフォルトの名無しさん
2012/09/22(土) 04:59:37.770651デフォルトの名無しさん
2012/09/22(土) 07:25:59.350652デフォルトの名無しさん
2012/09/22(土) 15:38:37.13test()
を実行したところ以下のようなエラーになりました
Windowsではできたのですが、Ubuntu(Linux)ではできませんでした
>>> import SimpleHTTPServer
>>> SimpleHTTPServer.test()
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
SimpleHTTPServer.test()
File "/usr/lib/python2.7/SimpleHTTPServer.py", line 216, in test
BaseHTTPServer.test(HandlerClass, ServerClass)
File "/usr/lib/python2.7/BaseHTTPServer.py", line 589, in test
port = int(sys.argv[1])
ValueError: invalid literal for int() with base 10: '-n'
どなたか解決策、または原因のみでもわかる方いませんか
よろしくおねがいします
0653デフォルトの名無しさん
2012/09/22(土) 15:40:43.620654652
2012/09/22(土) 15:42:29.932.73(32bit)を使ってます
0655652
2012/09/22(土) 15:52:38.27ファイルを読み込んでから「run module」でやると実行はできるのですが
C+z C+cでも固まってしまって、×を押しても終了できなくなります
0656デフォルトの名無しさん
2012/09/22(土) 15:56:01.350658デフォルトの名無しさん
2012/09/22(土) 16:12:32.88Pythonを起動してる環境が多分悪さしてる
どんな環境から実行してるのか詳しく書いてくれれば原因がわかるかも
(IDLEとかEclipseとかPyScripterとか)
0659652
2012/09/22(土) 16:26:51.60IDLE(Python 2.7版)と書いてあります。
OSはUbuntu(Linux) 12.04です
Pythonのバージョンは2.73です
0660デフォルトの名無しさん
2012/09/22(土) 16:37:57.65idleの起動引数に"-n"が入ってるんじゃないか
idleを起動したら
>>> import sys
>>> sys.argv
ってやってみて
とりあえず今回はidle使わないのが手っ取り早いと思う
0661デフォルトの名無しさん
2012/09/22(土) 16:40:50.900662デフォルトの名無しさん
2012/09/22(土) 16:51:53.23!!
ほんとに-nが入ってました。
['/usr/bin/idle-python2.7', '-n']
これってどういう意味なんでしょうか
私は変な設定とかした覚えはないんですが
>>660 >>661
idleはあまりよくないんですね
わかりました
別のやつを探してみます
lpythonというのから調べてみます
0663652
2012/09/22(土) 17:02:52.24WindowsのIDLE(Python 2.7版)
Linuxの「端末」上
それぞれで import sys ///sys.argv をやってみたところ
両方共
['']
という結果でした
やはりUbunt上のIDLEだけ特殊な設定になっているみたいですね
0664652
2012/09/22(土) 17:04:07.14皆さん本当にありがとうございました
0665デフォルトの名無しさん
2012/09/22(土) 17:08:27.14less /usr/bin/idle-python2.7 とかして中身を見てみるといいよ
ライブラリ書く人はif __name__ == '__main__': _test() とかして
ユーザが直接 _test() を呼ばないようにしといたほうがいいのかもと思った
0666デフォルトの名無しさん
2012/09/22(土) 23:09:45.20しかし、どうも特定のページではキャッシュにアクセスしているようです。
そのページが更新されているのに、更新前のページソースが帰ってきます。
このような場合、どう対処すればよいのでしょうか。
よろしくお願いします
Pythonのコードは、単純に
urllib.urlopen(page_name)
としているだけです。
0667666
2012/09/22(土) 23:13:58.47追記となりましたが、Proxyサーバーを経由しています。
調べたところ、その影響があるかもしれません。
0668デフォルトの名無しさん
2012/09/23(日) 01:38:14.92http://hoge.fuga/hage.html
だとして
http://hoge.fuga/hage.html?t=2012092301371234
とかダミーのタイムスタンプ付けてアクセスしてみるとか
0669デフォルトの名無しさん
2012/09/23(日) 08:39:33.92http://okwave.jp/qa/q1923037.html
0670デフォルトの名無しさん
2012/09/23(日) 10:13:00.320671デフォルトの名無しさん
2012/09/24(月) 10:00:35.17>>> abc = {'alpha':u'α', 'beta':u'β', 'gamma':u'γ', 'delta':u'δ', 'epsilon':u'ε'}
>>> print repr([abc[k] for k in sorted(abc)]).decode('unicode-escape')
[u'α', u'β', u'δ', u'ε', u'γ']
これを、
[u'α', u'β', u'γ', u'δ', u'ε']
と表示されるようにしたいのですが、
どのような方法がスマートでしょうか?
例はεまでですが、それ以降のギリシャ文字もあると看做してください。
0672デフォルトの名無しさん
2012/09/24(月) 10:04:09.370673デフォルトの名無しさん
2012/09/24(月) 10:05:58.45>>> print repr([(k, abc[k]) for k in sorted(abc)]).decode('unicode-escape')
[('alpha', u'α'), ('beta', u'β'), ('delta', u'δ'), ('epsilon', u'ε'), ('gamma', u'γ')]
を
[('alpha', u'α'), ('beta', u'β'), ('gamma', u'γ'), ('delta', u'δ'), ('epsilon', u'ε')]
で、おながいします。
0674デフォルトの名無しさん
2012/09/24(月) 10:06:59.42行き違いになってしまいました。すみません。
>>673 で引き続きおながいします。
0675デフォルトの名無しさん
2012/09/24(月) 10:50:20.47>>> print repr([(k, abc[k]) for k in sorted(abc,
cmp=lambda a, b: -1 if abc[a] < abc[b] else 0 if abc[a] == abc[b] else 1)]).decode('unicode-escape')
[('alpha', u'α'), ('beta', u'β'), ('gamma', u'γ'), ('delta', u'δ'), ('epsilon', u'ε')]
0676デフォルトの名無しさん
2012/09/24(月) 11:03:22.95>>> abc = {'alpha':u'α', 'beta':u'β', 'gamma':u'γ', 'delta':u'δ', 'epsilon':u'ε'}
>>> print repr([(k, abc[k]) for k in sorted(abc, cmp=lambda a, b: cmp(abc[a], abc[b]))]).decode('unicode-escape')
[('alpha', u'α'), ('beta', u'β'), ('gamma', u'γ'), ('delta', u'δ'), ('epsilon', u'ε')]
0677デフォルトの名無しさん
2012/09/24(月) 11:12:41.610678デフォルトの名無しさん
2012/09/24(月) 11:52:32.49ありがとうございます!
0679デフォルトの名無しさん
2012/09/24(月) 21:19:47.86いろいろ調べているとBeautifulsoupというモジュールが良さそうなのですが、
他に良いモジュールなどありますでしょうか?
0680デフォルトの名無しさん
2012/09/24(月) 21:24:49.84lxml
0681デフォルトの名無しさん
2012/09/25(火) 02:29:25.54sort の key=に渡す関数は、operator モジュールの利用がお勧め
Cモジュールなので若干の速度upが期待できるし、
2項目ソートの時に key=itemgetter(1,2) みたいに書けます。
http://www.python.jp/doc/release/howto/sorting.html#operator
0682デフォルトの名無しさん
2012/09/25(火) 05:15:15.54それを読んだ人が何やってるか分からないからだろうな
0683デフォルトの名無しさん
2012/09/25(火) 21:46:04.730684デフォルトの名無しさん
2012/09/25(火) 22:05:58.540685デフォルトの名無しさん
2012/09/25(火) 22:14:28.72for val in list:
print val.decode('shift_jis')
みたいにしたら、時々文字化けするっていう
Aptana、Python2.7
0687デフォルトの名無しさん
2012/09/26(水) 01:05:49.74b = ''
for line in listA:
b += line + '\n'
というように取りだしてから保存しようとすると,40万件くらいのデータだとbに入れる時点ですごく遅くなってしまいます.
なにか他にいい方法ありませんか?
0688デフォルトの名無しさん
2012/09/26(水) 01:41:56.880689デフォルトの名無しさん
2012/09/26(水) 01:51:04.59f.writelines("\n".join(listA))
with open(..., "w") as f:
for line in listA:
f.write(line + "\n")
どっちが早いかな。下と予想してみる
0690デフォルトの名無しさん
2012/09/26(水) 02:13:29.79>>689
ありがとうございます!
下の方が2倍くらい早かったです
0691デフォルトの名無しさん
2012/09/26(水) 02:48:18.49いきなりdiskに書き込んでいった方が高速なのか。
そうかそうか、一度、長大な文字列作成する必要ないもんね。
勉強になった。ありがとう。
0692デフォルトの名無しさん
2012/09/26(水) 08:10:58.83errors='ignore'
0693デフォルトの名無しさん
2012/09/26(水) 09:48:13.72test.pyというCGIファイルがダウンロードされてしまいます
OSはLinuxで、chmod 0755 test.py はすでに実行済みです
test.pyをダブルクリックすると、「端末」で実行できるようになっており
test.pyの内部処理の結果が表示されます
サーバーはCGIHTTPServer.test()で実行しています。
特にエラーも出ておりません。
自分なりに調べてみたのですが、わかりませんでした。
どなたか原因が分かる方いたらご教授ください。
0694デフォルトの名無しさん
2012/09/26(水) 09:55:13.16test.pyというCGIファイルはindex.htmlと同じフォルダに作った
cgi-binというフォルダに入っています
0695デフォルトの名無しさん
2012/09/26(水) 10:23:29.80自己解決しました
知人にアクセスしてもらっところ、CGIが表示できました。
どうやら最初にミスした時のキャッシュファイル(?)がずっと残っていたみたいです
お騒がせしました
0696デフォルトの名無しさん
2012/09/26(水) 19:09:14.670697デフォルトの名無しさん
2012/09/27(木) 19:19:51.610698デフォルトの名無しさん
2012/09/27(木) 19:38:18.46むしろお前がpl2py作れ。
もちろんPython3に変換してくれるんだろうな。
0699デフォルトの名無しさん
2012/09/28(金) 00:57:07.65個人的には過去の豚真珠プログラムは蛇に置き換えたのでどうでもいい
0700デフォルトの名無しさん
2012/09/30(日) 12:19:51.60Javascriptなどのように、.lengthプロパティではない理由はあるのでしょうか?
スライスのことを考えると、内部的に数を持っているかと思うので.lengthのほうがスムーズかと思うのですが。
0701デフォルトの名無しさん
2012/09/30(日) 12:36:17.880702デフォルトの名無しさん
2012/09/30(日) 12:37:02.66歴史的経緯だとどこかに書いてあったはず
0703デフォルトの名無しさん
2012/09/30(日) 12:48:05.89A. きにしるな
0704デフォルトの名無しさん
2012/09/30(日) 14:00:37.58http://python.rdy.jp/wiki.cgi?page=FAQ#p10
0705デフォルトの名無しさん
2012/09/30(日) 14:06:51.46max(map(len, xs))
max(x.__len__() for x in xs)
0706デフォルトの名無しさん
2012/09/30(日) 16:11:41.750707デフォルトの名無しさん
2012/09/30(日) 22:58:26.34vectorizeではなく文字列用の関数があるのでしょうか?
import numpy as np
print np.vectorize(lambda x: x, otypes=[np.dtype('S24')])(np.array(['P'*20]))
出力:['PPPP']
期待する出力:['PPPPPPPPPPPPPPPPPPPP']
やりたいこと
listへのmapのように、np.arrayの各要素に対して処理をしたい
環境
python2.7.3
numpy1.6.2
0708デフォルトの名無しさん
2012/09/30(日) 23:05:38.930709デフォルトの名無しさん
2012/09/30(日) 23:43:20.21import numpy as np
print np.array(map(lambda x: x, np.array(['P'*20])))
出力:['PPPPPPPPPPPPPPPPPPPP']
こうしてみたら動作は期待通りなんですが、なんか釈然としないというか…numpyを使った意味が無いような…
0710デフォルトの名無しさん
2012/10/01(月) 00:24:27.51Cの構造体に相当する機能がないようですが
レコードをフィールドに区切って扱う概念がないと
つらくないですか?
0711デフォルトの名無しさん
2012/10/01(月) 00:34:01.830712デフォルトの名無しさん
2012/10/01(月) 05:00:08.030713デフォルトの名無しさん
2012/10/01(月) 05:06:01.06でnamedtuple使ったほうが良いと書いてある
0714デフォルトの名無しさん
2012/10/04(木) 01:07:31.28例えばiを何も定義せずに
print i
などとしたときに、実行するまで未定義なのかわからずに困っています
なにか設定が必要なのでしょうか?
0715デフォルトの名無しさん
2012/10/04(木) 01:33:51.40exec raw_input()
print i
みたいなコードがあったら
i が未定義かどうか実行するまでわからない。
0716デフォルトの名無しさん
2012/10/04(木) 01:36:22.37i = 0
print i
の方がわかりやすいかも
0717デフォルトの名無しさん
2012/10/04(木) 01:58:48.730718デフォルトの名無しさん
2012/10/04(木) 02:04:15.10VSが教えてくれないから困っているという話だろう
>>716はまた別の話。俺はVSのそれを使ったことがないから質問には答えられないが
0719デフォルトの名無しさん
2012/10/04(木) 02:19:51.85PYVS でサポートしてるかどうかは、使ってないので知らないけど、
調べてみたところ(codeplex内 DISCUSSION,ISSUE TRACKER で pylint を検索した程度)
要望は挙がってるもののパッチはないみたい。(2011 Oct)
ttp://pytools.codeplex.com/discussions/275963
0720デフォルトの名無しさん
2012/10/04(木) 08:35:12.55実行してみないと判らないことはいくらでもある
0721デフォルトの名無しさん
2012/10/04(木) 09:55:14.840722714
2012/10/04(木) 10:33:56.00pydevでは実行しなくても'Undefined variable'と警告してくれるので
Python Tools for Visual Studioでも教えてくれないのかなぁと思っていました
どうやらPTVSでは教えてくれなそうなので、しばらくはpydevの方を使っていようと思います
0723デフォルトの名無しさん
2012/10/04(木) 10:36:46.830724デフォルトの名無しさん
2012/10/04(木) 20:59:09.46ipアドレスのリストを読み込みwhoisを実行する。結果をhtmlファイルに書き出す。
というプログラムを書いています。
あらかたのアドレスは上手くいっているのですが、一部でUnicodeDecodeErrorがでて書きだせません。
結果自体はbytes.decode(subprocess.check_output(["whois", ip_address]))でとって、fp.writeで書いています
175.119.227.235あたりのアドレスでエラーがでます。
これを回避する方法はないでしょうか?
参考になるかわからないですが、試したことを書いておきます。
>>> bytes.decode(b'\xe3\x81\x82')
'あ'
>>> bytes.decode(b'\xc1\xb6\xc8\xb8\xc7\xcf\xbd\xc5')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc1 in position 0: invalid start byte
>>> locale.getpreferredencoding(False)
'UTF-8'
0725デフォルトの名無しさん
2012/10/04(木) 21:11:13.840726デフォルトの名無しさん
2012/10/05(金) 02:19:56.52としたらいけました。って書こうぜ。
encodingを指定してもよく分からんかった。
>>> bytes.decode(b'\xc1\xb6\xc8\xb8\xc7\xcf\xbd\xc5', encoding='sjis')
'チカネクヌマスナ'
>>> bytes.decode(b'\xc1\xb6\xc8\xb8\xc7\xcf\xbd\xc5', encoding='euc-jp')
'繕噺馬重'
0727デフォルトの名無しさん
2012/10/05(金) 06:17:25.570728デフォルトの名無しさん
2012/10/05(金) 06:21:49.95u'\uc870\ud68c\ud558\uc2e0'
0729デフォルトの名無しさん
2012/10/05(金) 06:23:48.820730デフォルトの名無しさん
2012/10/05(金) 06:27:14.300731デフォルトの名無しさん
2012/10/05(金) 11:53:48.88と書いてある。
0732デフォルトの名無しさん
2012/10/05(金) 12:51:43.92pip install chardet2 で python3用のchardetをインストール
>>> import chardet
>>> chardet.detect(b'\xc1\xb6\xc8\xb8\xc7\xcf\xbd\xc5')
{'encoding': 'EUC-KR', 'confidence': 0.99}
0733デフォルトの名無しさん
2012/10/06(土) 00:48:54.31feed() で読み込ませ、目的の文字列を取り出し終えたら、残りはもう見る必要ないので
そこで中断させたいのですが、どうしたらいいんでしょうか?
Python3.3です。
0734デフォルトの名無しさん
2012/10/06(土) 01:45:51.33feedの後に目的の文字が見付かったかどうかをチェックし、
見付かってたらfeedで読み込みしてるループを抜ける。
0735デフォルトの名無しさん
2012/10/06(土) 01:46:41.65iterparse()のあるlxmlを使ったほうが直感的でいいかも
0736733
2012/10/06(土) 09:21:43.01feed() を呼んだ時、HTMLParserインスタンスの処理が終わる前にfeed()の後のコードが
実行されるという事ですか?
>>735
大したスクリプトじゃないんで外部モジュール使うのもどうかなと思っていたのですが、
ちょっと勉強してみます。
レスありがとうございました。
0737デフォルトの名無しさん
2012/10/06(土) 14:26:36.890738デフォルトの名無しさん
2012/10/06(土) 14:29:36.17俺は733じゃないのであくまで想像だが
0739デフォルトの名無しさん
2012/10/06(土) 15:05:22.09パーサにparser.stop()みたいなメソッドがあればそっち使いたいのが一点
あとStopIterationみたいにfor文で暗黙的に例外が処理されるならともかく
今回のはパーサ作ってfeed()する側が明示的に例外を処理しなきゃいけないのがもう一点
0740デフォルトの名無しさん
2012/10/06(土) 15:46:49.80漏れは733じゃなくて735に聞いたのに何でおまえが答えてんの?
0741デフォルトの名無しさん
2012/10/06(土) 15:48:57.69>言語によってはフロー制御に例外使うのをアンチパターン
どの言語のことでしょう
0742デフォルトの名無しさん
2012/10/06(土) 15:50:00.380743デフォルトの名無しさん
2012/10/06(土) 15:51:23.20えっ
0744デフォルトの名無しさん
2012/10/06(土) 16:08:55.03C++/C#/Javaとか
理由としては、上記の言語では例外のコストが通常の制御に比べて高すぎるので
例外的状態にだけ例外を使用する(=予測可能なエラーに対して例外を使用しない)という了解がある
軽量言語でも例外のコストは通常の制御より高いが、
上記の言語に比べれば大したことがないので許される
まあ一言で言えば「Pythonには関係ない」よ
0745デフォルトの名無しさん
2012/10/06(土) 16:14:18.740746デフォルトの名無しさん
2012/10/06(土) 16:16:38.96いわゆる良書と言われる本には必ず(大抵ではない)書いてあることなので
興味があるなら読んでみてもいいかもね
0747デフォルトの名無しさん
2012/10/06(土) 16:17:39.53Java に parseInt() はあるが、isInt() が無い理由
http://d.hatena.ne.jp/kameid/20090320/1237545618
0748デフォルトの名無しさん
2012/10/06(土) 16:18:59.670749デフォルトの名無しさん
2012/10/06(土) 16:21:50.77その通りです
上記の本を読んだ人が真っ先に考えるのはそのメソッドの存在でしょう
EffectiveJavaの中でも無駄に例外を投げているJDKの設計について、一部苦言が呈されています
要するに、Javaの開発者がアホだったのです
0750デフォルトの名無しさん
2012/10/06(土) 16:23:14.70はいおしまい
0751デフォルトの名無しさん
2012/10/06(土) 16:25:10.420752デフォルトの名無しさん
2012/10/06(土) 16:26:00.910753デフォルトの名無しさん
2012/10/06(土) 16:33:43.080754デフォルトの名無しさん
2012/10/06(土) 16:36:34.760755デフォルトの名無しさん
2012/10/06(土) 18:36:57.62三項演算子みたいに1行でやることはできますか?
具体的には[{ 'foo': ? } for x in bar]の?の部分で, 例外が発生するかしないかでfooの値を変えたいです。
0756デフォルトの名無しさん
2012/10/07(日) 04:22:54.230757デフォルトの名無しさん
2012/10/07(日) 04:42:42.22ワンライナーはとてもSmaaaat!!!!!((c) MOTHER2・任天堂・糸井重里)だと思うんですぅぅぅぅ
0758デフォルトの名無しさん
2012/10/07(日) 04:45:25.440759デフォルトの名無しさん
2012/10/07(日) 04:52:15.29def proc(x):
try:
return hogehoge(x)
except (Hoge, Hage), e:
return fugafuga(x)
[setattr(jisho, 'foo', proc(x)) for x in bar]
0760デフォルトの名無しさん
2012/10/07(日) 09:26:10.89今までずっとCを利用してましたが、pythonでの初めてプログラムなので修正点などありましたら教えていただけると幸いです。
def get_historical_price_latest_from_yahoo_co_jp(stock_code):
import urllib2, lxml.html, pgdb
from time import strftime, strptime
url_header = "http://stocks.finance.yahoo.co.jp/stocks/history/?code="
get_url = url_header + stock_code + ".T"
html = urllib2.urlopen(get_url).read()
root = lxml.html.fromstring(html)
tr_elements = root.xpath("//tr")
connector = pgdb.connect(host="****", database="****", user="****", password="****")
cursor = connector.cursor()
for count1, tr_element in enumerate(tr_elements):
if count1 >= 2 and len(tr_element) == 7:
val = [stock_code]
for count2, price in enumerate(tr_element):
if count2 == 0:
price_date = strftime("%Y-%m-%d", strptime(price.text, u"%Y年%m月%d日"))
val.append(price_date)
else:
price_data = float(price.text.replace(",",""))
val.append(price_data)
sql = "insert into yahoo_jpn_price values" + str(tuple(val))
cursor.execute(sql)
connector.commit()
cursor.close()
connector.close()
0761デフォルトの名無しさん
2012/10/07(日) 09:35:10.790762デフォルトの名無しさん
2012/10/07(日) 09:44:27.670763デフォルトの名無しさん
2012/10/07(日) 09:50:57.86injectionですねわかります
0764デフォルトの名無しさん
2012/10/07(日) 09:56:12.64既存の変数を[]で囲むことにどういう意味があるんだろ。
まさかCと同じで配列の先頭アドレスへの参照を代入しているのか。
Pythonは変数に型がないので、代入データの型を右辺から
いちいち推測しないといけないのが面倒だね。
0765デフォルトの名無しさん
2012/10/07(日) 11:34:43.610766デフォルトの名無しさん
2012/10/07(日) 11:40:35.240767デフォルトの名無しさん
2012/10/07(日) 12:33:29.360768デフォルトの名無しさん
2012/10/07(日) 12:49:23.81でも見慣れない処理だよね。
既存のリストでない変数をカッコで囲んでリスト化するのは。
0769デフォルトの名無しさん
2012/10/07(日) 13:07:44.430770デフォルトの名無しさん
2012/10/07(日) 13:19:03.220771デフォルトの名無しさん
2012/10/07(日) 13:37:34.12読んでて疲れるから
0772デフォルトの名無しさん
2012/10/07(日) 13:53:15.59Python初心者なんだから好きなこと言わせてもらうよ。
嫌なら出て行け。
0773デフォルトの名無しさん
2012/10/07(日) 14:26:53.370774デフォルトの名無しさん
2012/10/07(日) 14:51:26.89初心者になれたつもりなんだー(棒
0775デフォルトの名無しさん
2012/10/07(日) 15:18:27.43例えばJavaのようなウンコ言語しか使った事が無いんだよ
馬鹿過ぎて簡単なPythonすら使いこなせないだろうけど、
生暖かく見守ってあげようじゃないか
0776デフォルトの名無しさん
2012/10/07(日) 15:20:37.25気になるなら
val = [stock_code, ]
で
0777デフォルトの名無しさん
2012/10/07(日) 15:21:16.83(777) はタプルにならない不思議
0778デフォルトの名無しさん
2012/10/07(日) 15:23:42.040779デフォルトの名無しさん
2012/10/07(日) 15:26:34.33実はタプルは括弧ではなくカンマで作られる(空タプル除く)
777,
0780デフォルトの名無しさん
2012/10/07(日) 15:27:28.53多言語習得者なのに超初心者ってのは認められますん
以下からお好きなのをどうぞ
http://www.python.jp/doc/release/tutorial/index.html
http://d.hatena.ne.jp/dplusplus/20100126/p1
http://www.swaroopch.org/notes/Python
http://learnpythonthehardway.org/
最速マスターはほんとよくまとまってる
0781デフォルトの名無しさん
2012/10/07(日) 15:32:39.060782デフォルトの名無しさん
2012/10/07(日) 15:33:15.70に改名すべきだな
0783デフォルトの名無しさん
2012/10/07(日) 15:40:36.81逆にいえば
pythonよりもはるかにムズい(もといめんどくさい)javaを
使えてたということか〜
0784デフォルトの名無しさん
2012/10/07(日) 15:42:12.460785デフォルトの名無しさん
2012/10/07(日) 15:45:18.95は?
0786デフォルトの名無しさん
2012/10/07(日) 15:57:02.930787デフォルトの名無しさん
2012/10/07(日) 16:12:15.35ttps://api.twitter.com/1/statuses/user_timeline.json?screen_name=yukihiro_matz&count=2
0788デフォルトの名無しさん
2012/10/07(日) 16:13:38.600789デフォルトの名無しさん
2012/10/07(日) 16:15:48.130790デフォルトの名無しさん
2012/10/07(日) 16:18:06.270791デフォルトの名無しさん
2012/10/07(日) 16:35:39.17>>784を>>783へのレスと考えるとたしかに日本語でおkになるわな
流れからすれば唐突にjsonなんてワードは出てこないはずだからな
jythonをjsonと間違えたと考えるのが妥当では?
0792デフォルトの名無しさん
2012/10/07(日) 16:46:50.07リスト(配列)リテラルがあって誰でも知ってるJSONだから意味が通る
0793デフォルトの名無しさん
2012/10/07(日) 16:52:38.510794デフォルトの名無しさん
2012/10/07(日) 16:56:55.980795デフォルトの名無しさん
2012/10/07(日) 17:00:15.220796デフォルトの名無しさん
2012/10/07(日) 17:00:37.15別に必死でもない。もともとヨタ話だし
0797デフォルトの名無しさん
2012/10/07(日) 17:03:22.21人小馬鹿にしといてよく言うよ
0798デフォルトの名無しさん
2012/10/07(日) 17:03:53.620799デフォルトの名無しさん
2012/10/07(日) 17:08:01.63おまいら結構繊細なんだな。気をつけるわ
0800デフォルトの名無しさん
2012/10/07(日) 17:09:51.090801760
2012/10/07(日) 17:14:47.35>>763
ありがとうございます。
SQLインジェクション攻撃に対してに脆弱になるんですね。
cursor.execute('insert into yahoo_jpn_price values(%s,%s,%s,%s,%s,%s,%s,%s)', val)
に変更したいと思います。
0802デフォルトの名無しさん
2012/10/07(日) 17:24:52.380803801
2012/10/07(日) 17:26:10.940804デフォルトの名無しさん
2012/10/07(日) 17:28:47.03なお間に合う模様
0805デフォルトの名無しさん
2012/10/07(日) 17:29:39.360806デフォルトの名無しさん
2012/10/07(日) 17:30:15.23お前さっきから暇だな
0807760
2012/10/07(日) 17:31:53.92すいません。正直SQLもあまり詳しくないので、
これでSQLインジェクションに対して堅牢になっているのかどうかよくわかりませんでした。
http://www.python.jp/doc/2.5/lib/module-sqlite3.html
このサイトにそう書いてあったので、このように対応したのですが。。。。
どう変更すればよいのでしょうか?
0809デフォルトの名無しさん
2012/10/07(日) 17:38:17.02さっきから粘着して下さっているのはあなたですか!?
0810デフォルトの名無しさん
2012/10/07(日) 17:40:59.26そのページに書いてあるとおり %s じゃなくて ? を使う
0812デフォルトの名無しさん
2012/10/07(日) 17:57:48.450813デフォルトの名無しさん
2012/10/07(日) 18:33:30.78ID表示の無い板はゴミ
0814デフォルトの名無しさん
2012/10/07(日) 23:00:25.300815デフォルトの名無しさん
2012/10/08(月) 01:13:16.710816デフォルトの名無しさん
2012/10/08(月) 01:26:12.960817デフォルトの名無しさん
2012/10/08(月) 06:38:21.93日本と韓国の関係悪化を受けて、宮崎県立日南高は2年生27人が12月に予定していた韓国への
修学旅行を国内に変更した。
日南高によると、同校の修学旅行は韓国と国内の二つから選べることになっており、今年は2年生
170人のうち、143人が東京や群馬などの国内を選択。27人が同校の姉妹校・冠陽高があるソウル
などへの旅行を希望していた。
竹島問題などを巡って、日韓関係が悪化していることから、韓国への修学旅行について慎重に検討した
結果、「韓国の情勢が不透明で、生徒の安全などを考慮した」として、行き先を国内に一本化したという。
県内の別の高校も来年3月に計画している韓国への修学旅行について、変更を検討しているという。
http://www.yomiuri.co.jp/kyoiku/news/20121006-OYT8T00695.htm
0818デフォルトの名無しさん
2012/10/08(月) 09:18:21.29* 文字列の連結は大抵 "".join や 書式付文字列 を使う。
* html = urllib2.urlopen(get_url).read()
書き捨てのコード以外では、推奨しない。404 の場合に エラーページのHTMLを所得してしまう。
* lxml.html.parse は引数にurlを取れる。404 の場合は IOError 例外が投げられます。
* xpathで所得する要素を指定できる。件数がそれ程多くなければ pythonのリストのスライスでもいい。
count1,count2 と enumerate はコードから全部排除できるはずです。
for tr_element in root.xpath("//tr[position() > 1]"):
if len(tr_element) != 7: # pythonに慣れてくると、内包表記やフィルターを使うようになる。
continue # インデントを深くしたくないので continue。
...
for price in tr_element[1:]:
...
* データベースへ入れる処理とデータの所得部分は分離する。
(混ざってると、エラー処理後の後始末が面倒になったりする。ネストが深くなる傾向がある)
データ所得部分はジェネレータにしておくと便利。
0819デフォルトの名無しさん
2012/10/08(月) 09:29:36.09http://engawa.2ch.net/test/read.cgi/poverty/1342751788/
シャープ製太陽光パネル、「出力低下なし」お墨付き−欧最大の研究機関が評価
シャープは同社製の太陽光パネルに「PID」と呼ばれる産業用太陽電池特有の出力低下現象が起きないと欧州最大の研究機関に認められた。
フラウンホーファー研究機構(本部=独ミュンヘン)が欧州、北米、中国、韓国メーカーなどの太陽電池モジュール13製品を評価した。
欧州ではPID現象による太陽光パネルの出力低下が相次ぎ、品質問題として注目されている。PID現象が発生しなかったのは4製品だけ。
これまでに京セラ、ドイツの最大手Qセルズも現象が起きなかったと公表している。
詳細 2012/7/20
http://www.asahi.com/digital/nikkanko/NKK201207200019.html
0820デフォルトの名無しさん
2012/10/08(月) 09:32:39.56* html = urllib2.urlopen(get_url).read()
書き捨てのコード以外では、推奨しない。404 の場合に エラーページのHTMLを所得してしまう。
* lxml.html.parse は引数にurlを取れる。404 の場合は IOError 例外が投げられます。
喫茶店のWiFiとかで繋ぐと、(そこのアカウントに)ログインする前は、
IPアドレスだけ振られて、404じゃなくてログイン画面が返ってくることがあるんだよね。
そういうの検出するにはどうすれば良い?
0821デフォルトの名無しさん
2012/10/08(月) 09:41:10.80/ / バカッ
//⌒)∩__∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ 馬鹿には無理
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
0822デフォルトの名無しさん
2012/10/08(月) 09:46:14.17他に判断要素ないんだし
0823デフォルトの名無しさん
2012/10/08(月) 09:48:44.06* html = urllib2.urlopen(get_url).read()
でも充分ですね
0824デフォルトの名無しさん
2012/10/08(月) 09:58:57.57好きにすればいいと思うよ。
0825デフォルトの名無しさん
2012/10/08(月) 10:14:08.860826818
2012/10/08(月) 11:46:36.95response = urlopen(url)
response.geturl() で目的のURLになってるかどうか確認する。
リダイレクトされてたらそのログインページのURLが入ってるはず。
0827デフォルトの名無しさん
2012/10/08(月) 12:42:49.58lxml.html.parse でも同じことは出来ますか?
0828デフォルトの名無しさん
2012/10/08(月) 12:52:34.76自分で調べたら?
http://lxml.de/lxmlhtml.html
0829デフォルトの名無しさん
2012/10/08(月) 13:12:49.050830デフォルトの名無しさん
2012/10/08(月) 13:15:30.850831818
2012/10/08(月) 13:31:45.41掛かる手間を考えると良いアプローチだとは思えないので、
たいして調べてないけど、出来たとしてもコード量が増えるのは確実だと思う。
代案:
res = urlopen(url)
if res.geturl() == url: # != login_url にすべきかな。その辺は状況に応じて
doc = lxml.html.parse(res)
0832デフォルトの名無しさん
2012/10/08(月) 15:02:15.800833デフォルトの名無しさん
2012/10/08(月) 16:30:53.53http://eow.alc.co.jp/search?q=Python+3
0834デフォルトの名無しさん
2012/10/08(月) 17:37:44.11ちょっと可愛いじゃないか
0835デフォルトの名無しさん
2012/10/08(月) 17:56:28.850836デフォルトの名無しさん
2012/10/08(月) 20:54:06.17importしたときに予め0から1000までのローマ数字を使えるように
モジュール内でインスタンス化させたいのですが
Z = MyClass(0)
I = MyClass(1)
II = MyClass(2)
…
と書いていくと1000行以上のコードになってしまうため
for i in range(1000):
インスタンス名 = MyClass[i]
というようにループなどで短くまとめたいのですが、何か方法はないでしょうか
インスタンス名は
>>> print(VII+III)
>>> X
というような処理をさせたいので、ローマ数字にしておく必要があります
0837デフォルトの名無しさん
2012/10/08(月) 21:07:00.33_module_self = sys.modules[__name__]
setattr(_module_self, 'ローマ数字文字列', 数字)
0838デフォルトの名無しさん
2012/10/08(月) 21:16:22.620839838
2012/10/08(月) 21:17:10.100840デフォルトの名無しさん
2012/10/08(月) 21:18:43.310841デフォルトの名無しさん
2012/10/08(月) 21:19:35.990842デフォルトの名無しさん
2012/10/08(月) 21:20:40.04globals()["I"] = MyClass(1) が多分一番手軽。(スコープに注意。top-levelなら locals() でも可。関数内なら globals())
他には {types.ModuleType でモジュールのインスタンスを作って 辞書を追加 (module.__dict__.update(mapping))という方法もある。
疑問があるのだけど I += II したりすると困らない?
0843デフォルトの名無しさん
2012/10/08(月) 21:20:50.06ありがとうございます
なんとかなりそうです
0844デフォルトの名無しさん
2012/10/08(月) 21:24:49.18すみません、リロードしていませんでした
単純な計算しかできないので
I+=IIというような処理はできないです
アドバイスありがとうございます
0845760
2012/10/08(月) 22:56:39.81遅くなりましたが、丁寧なアドバイスありがとうございます。
参考に修正させていただきます。
なかなか内包表記なんかは慣れませんが精進したいと思います。
0846デフォルトの名無しさん
2012/10/09(火) 16:08:07.07Python 3.2とFlaskをサーバーに入れています。
ウェブページのフォームから辞書にkeyとvalueを登録したいと思い、
以下のような関数を作ってみたのですが、うまく登録できません。
ウェブページのフォームからkey=hoge&value=piyoをPOSTします。
確認のため、関数の戻り値をreturn dictionary['hoge']とするのですが、
HTTP/1.1 500 INTERNAL SERVER ERROR
KeyError: 'hoge'
と、一連のエラーコードが返ってしまいます。
関数の戻り値をdictionary['shortcut']とするとpiyoが表示されるので
'hoge'が辞書にkeyとして登録できず、変数に使った'shortcut'が
そのまま辞書のkeyに登録されてしまっているようです。
どこを直せばよいのでしょうか。
それとも何か根本的に誤っているのでしょうか?
@app.route("/add_dictionary", methods=['PUT', 'POST'])
def add_dictionary():
shortcut = request.form.get('key')
dictionary['shortcut'] = request.form.get('value')
return dictionary['hoge']
0847デフォルトの名無しさん
2012/10/09(火) 16:12:08.93dictionary['shortcut'] = request.form.get('value')
0848デフォルトの名無しさん
2012/10/09(火) 16:27:09.88(とある3DソフトのAPIの設計がそんな感じでした)
0849846
2012/10/09(火) 17:12:22.44dictionary[str(shortcut)] = request.form.get('value')
ですね!わかりました!!ありがとうございます!!!
0850デフォルトの名無しさん
2012/10/09(火) 17:25:25.26【審議中】
♪ ∧,, ∧ ♪
♪ ∧,, ∧ ・ω・)
∧,, ∧ ・ω・) )
♪∧,, ∧ ・ω・) )っ__フ ♪ ∧,, ∧
∧,, ∧ ・ω・) )っ__フ(_/ 彡 .∧,, ∧ )
( ・ω・) )っ__フ(_/彡 ∧,, ∧ ) )
(っ )っ__フ(_/彡 .∧,, ∧ ) ) Οノ
( __フ(_/彡 ∧,, ∧ ) ) Οノ ヽ_)
(_/彡 ( ) ) Οノ 'ヽ_)
( ) Οノ 'ヽ_)
(ゝ. Οノ 'ヽ_) ♪
♪ ミ ヽ_
0851デフォルトの名無しさん
2012/10/09(火) 18:13:02.05CでもJavaでもそんなのはごく当たり前に行われてるだろ
副作用恐怖症の関数言語馬鹿なのか?
0852デフォルトの名無しさん
2012/10/09(火) 18:36:36.58定数にしたくなるんじゃないかなと思ったけど、杞憂だったみたいですね。
追記: 数字 -> 文字 を MyClass の __str__ に実装してれば、辞書内包で一括登録できそうです。
globals().update({str(x):x for x in map(MyClass,range(1000))})
# ※ モジュールのトップレベルで実行する場合、2.x では内包表記の一時変数が外に残ることに注意。
>>848
内部で使ってると思われるC言語のライブラリに合わせてるんじゃないかな。(予想)
成否判定を戻り値にしてデータは引数で与えたアドレスに渡して貰うという仕様のAPIは多い。
例外をサポートしてて多値も返せるPythonでは、メリットは思い当たらない。
0853デフォルトの名無しさん
2012/10/09(火) 19:27:04.610854デフォルトの名無しさん
2012/10/09(火) 23:55:18.89いいんじゃないかな。
そうやって成長していけば。
おかしいところがあればあなたが指摘してあげて。
そうすることであなたも成長できるのだから。
0855デフォルトの名無しさん
2012/10/10(水) 00:10:22.230856848
2012/10/10(水) 02:20:27.25その通りでした
C++のAPIに合わせようとして色々無理が生じてきているので
最新版でPythonらしいAPIを新たに作っているとありました
0857デフォルトの名無しさん
2012/10/10(水) 13:40:23.07怒らないで
そうすることであなたも成長できるのだから
0858デフォルトの名無しさん
2012/10/10(水) 15:15:28.020859デフォルトの名無しさん
2012/10/10(水) 19:01:43.160860デフォルトの名無しさん
2012/10/11(木) 01:46:38.650861デフォルトの名無しさん
2012/10/11(木) 01:51:15.410862デフォルトの名無しさん
2012/10/11(木) 15:58:38.610863デフォルトの名無しさん
2012/10/12(金) 02:55:44.17codecsモジュールを使うらしいまではわかったんですが。。。
Python2.7です。
0864デフォルトの名無しさん
2012/10/12(金) 04:37:29.27/ / バカッ
//⌒)∩__∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ 馬鹿には無理
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
0865デフォルトの名無しさん
2012/10/12(金) 05:03:41.79凝ったことする必要がなければ
cp932buf = u8buf.decode('utf-8').encode('cp932')
0866デフォルトの名無しさん
2012/10/12(金) 07:58:37.05unicodeやstrではなく、ストリームデータを扱っています。
0867デフォルトの名無しさん
2012/10/12(金) 08:22:11.79ストリームが file-like なオブジェクトだったら
new_stream = codecs.EncodedFile(stream, "utf-8", "cp932")
出力先もストリームの場合は、
入出力双方のストリームでそれぞれdecode,encodeするようにすると、Python内ではunicodeで文字列処理できる。
# Python 内で cp932 の文字列に対して処理をする必要がなければ、encode,decodeを一緒にせず別けた方がいい。=> 他のencodingに対応しやすい
input_stream = codecs.getreader("utf8")(utf8_stream)
output_stream = codecs.getwriter("cp932")(sys.stdout)
対象がイテレータ系のオブジェクトの場合は iterencode,iterdecode が使えそうだけど・・・
encodeとdecode両方を同時に行いたいなら、一手間かけてwrapper関数か新たなジェネレータを作った方が良いかもしれない。
ストリームに対して codecs を使う利点は、
文字列のencode,decodeメソッドだと毎回codecsのlookupが発生するのに対し(一応キャッシュはされてる)
予めlookupしたcodecからencode,decodeの関数を準備しておけるので、多少の効率upが期待できます。
0868867
2012/10/12(金) 08:32:44.98ん?ストリームデータって?具体的にはPythonでは、どんな型?
ストリームから utf-8文字を読み出して decode/encode って出来るはずだけど。
>865の方法が無理なら codecs も使えないよ。最終的には文字列に変換出来ないとだめ。
ソケットの事を言ってるなら、普通に読み出しすれば文字列を得られるし、
socketのmakefileメソッド で file オブジェクトを得られる。
0869デフォルトの名無しさん
2012/10/12(金) 09:08:37.32例えば、まだ2バイトしか届いていないときはどうしますか?
0870デフォルトの名無しさん
2012/10/12(金) 09:21:43.583バイト目が届くまで待つ
http://ja.wikipedia.org/wiki/UTF-8
0871デフォルトの名無しさん
2012/10/12(金) 10:02:28.39行読み込みやバッファ用意して処理する。
そういった理由だったら納得。何か特殊なデータ型かと思った。ストリームの中身のデータの型はstr だよね?
codecs 使えば、内部の IncrementalDecoder/Encoder がマルチバイト文字の境界を考慮したバッファ管理を行ってくれます。
0872デフォルトの名無しさん
2012/10/12(金) 12:00:57.570873デフォルトの名無しさん
2012/10/12(金) 12:06:14.18メモシステムのようなものを作っているのですが、メモの保存処理をしたあとにすぐにメモ一覧を出すと、直前に保存したメモが表示されないことがあります。
一覧の更新をすると表示されるようになるので、書き込みが完了する前に読み出しを行なってのかと思われます。
ですので、保存処理を行い、その保存処理の中で書き込みが完了するまで待ち、書き込みが完了すれば一覧に遷移するという処理ができないかと思っております。
現在はとりあえずsleep()で1秒待っているのですが、1秒で書き込まれる保証もないかと思うので、なにか確実な方法があればお教え頂ければと思います。
0874デフォルトの名無しさん
2012/10/12(金) 12:13:03.140875873
2012/10/12(金) 13:52:31.00はい。デフォルトの状態だと書き込みのされるタイミングが不定だったため、writebackをTrueにした状態で書き込み直後に意図的に.sync()をするようにしておりますが、同様の症状になります。
.close()は意図的には行なっていなかったのですが、意図的に.close()を試してみたのですが同様の症状でした。
0876デフォルトの名無しさん
2012/10/12(金) 17:10:05.44>865の方法が無理なら codecs も使えないよ。最終的には文字列に変換出来ないとだめ。
865のコードはこうなっているんだけど、
>cp932buf = u8buf.decode('utf-8').encode('cp932')
ここでu8bufやcp932bufは何オブジェクトなの?
ぱっと見で、両方ともstr (python2系) だとおもったので、>>866で
>unicodeやstrではなく、ストリームデータを扱っています。
と書いた。
#知りたいのはストリームのときにどうするかなのに、strでのやり方を書かれても。
0877デフォルトの名無しさん
2012/10/12(金) 19:36:00.05/ / バカッ
//⌒)∩__∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ 馬鹿には無理
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
0878デフォルトの名無しさん
2012/10/14(日) 11:22:00.17あとはお前さんが言う「ストリーム」をfile-likeオブジェクトとしてラップしれやればいいだけ。
0879デフォルトの名無しさん
2012/10/14(日) 14:46:23.990880デフォルトの名無しさん
2012/10/14(日) 18:42:24.41ロックを使わずに並列に読み出そうとしてない?
メモ一覧を読み出すのがマルチスレッドな場合(GUI等)だったら、
ロック(fctl.flock等, windoesの場合は知らない)を使って書き込みが完了するまで待たせるようにする。
スレッド間の同期のみでいいなら、mutexでも可。
>>875
プロセス内で単一のshelve のオブジェクトを使い回ししてるのと、
読み出される処理は別の関数で、別々にshelve.open して読み出されてるとで、状況が変わってきそう。
書き込み後、*その書き込みをしてる関数内で* 一覧を表示してみて、きちんと表示されてますか?
0881デフォルトの名無しさん
2012/10/14(日) 20:16:24.76ttp://code.activestate.com/recipes/65203-portalocker-cross-platform-posixnt-api-for-flock-s/
0882デフォルトの名無しさん
2012/10/15(月) 00:14:50.49単なるkey-valueの格納にSQLiteを使うのは嫌だし、効率も悪い。
0883デフォルトの名無しさん
2012/10/15(月) 00:28:04.390884デフォルトの名無しさん
2012/10/15(月) 05:35:10.680885デフォルトの名無しさん
2012/10/15(月) 05:47:52.190886デフォルトの名無しさん
2012/10/15(月) 06:49:02.420887デフォルトの名無しさん
2012/10/15(月) 09:00:25.79pickle
0888デフォルトの名無しさん
2012/10/15(月) 09:57:39.58pickleはオンメモリじゃないと使えないから大きなデータは格納できない。
0889デフォルトの名無しさん
2012/10/15(月) 10:24:12.930890デフォルトの名無しさん
2012/10/15(月) 10:35:49.140891デフォルトの名無しさん
2012/10/15(月) 11:51:27.66つhttp://www.gnu.org.ua/software/gdbm/
自分でmakeするよろし
0892デフォルトの名無しさん
2012/10/15(月) 12:07:51.23どれくらいの大きさのkey-valueになるの?
SQLiteで十分じゃないの?って思う
性能の要件とかあるの?
dict and pickleで良いとも思うし
memcachedもクラサバ両方を書き出せばいいし
0893デフォルトの名無しさん
2012/10/15(月) 12:29:31.030894デフォルトの名無しさん
2012/10/15(月) 13:18:47.870895デフォルトの名無しさん
2012/10/15(月) 14:42:59.812系ならbsddbがWindowsでもつかえたと思うけど
0896not 882
2012/10/16(火) 10:44:00.02> バージョン 2.6 で撤廃: bsddb モジュールは、 Python 3.0 では削除されるので、非推奨です。
との事。手元のActivePython(win32) 2.6.5/2.7.2 には既に入ってなかった。(公式、他は未確認)
2系のソース・レポジトリには残ってるけど、ビルドする手間や後々の事を考えると、
新規の場合は、他の保守されてる データベースのモジュールをインストールした方がいいと思う。
0897デフォルトの名無しさん
2012/10/16(火) 10:51:11.660898デフォルトの名無しさん
2012/10/17(水) 00:56:00.05ただしAPIの挙動によって「books自体が空」「booksは存在するがbooks.textは存在しない」といった事が起ります
その両方に対応するために以下のコードを書きました これをもっと短く書く方法は無いでしょうか?
try:
book_name = books.text
except:
pass
上記のようなコードが20箇所程度あって見た目も保守性も悲惨な事になってしまっています
0899デフォルトの名無しさん
2012/10/17(水) 03:48:55.66コンパクトに書くだけなら、getattr(books, "text", None) とも書ける。
コードの保守を考えるなら、関数にするかオブジェクトをwrapするクラスを作った方がいいね。
__getattribute__ 辺りで属性のカスタマイズ出来るけど、別名でメソッドかプロパティ作った方が楽。
例外を使う場合、例外を捕捉する所は except AttributeError: にしよう
0900デフォルトの名無しさん
2012/10/17(水) 03:55:04.72読み違えた。そのコードだと text属性が無いときは book_name は未定義?
0901デフォルトの名無しさん
2012/10/17(水) 09:21:15.32if isinstance(books, Book):
book_name = books.text
else:
book_name = ''
return book_name
0902デフォルトの名無しさん
2012/10/17(水) 10:35:17.920903デフォルトの名無しさん
2012/10/17(水) 11:32:23.250904デフォルトの名無しさん
2012/10/17(水) 11:52:12.870905デフォルトの名無しさん
2012/10/17(水) 11:56:40.02http://kohada.2ch.net/test/read.cgi/php/1302598469/
0906デフォルトの名無しさん
2012/10/17(水) 14:00:56.390907デフォルトの名無しさん
2012/10/17(水) 14:04:25.880908デフォルトの名無しさん
2012/10/17(水) 14:10:41.000909デフォルトの名無しさん
2012/10/17(水) 17:00:29.150910デフォルトの名無しさん
2012/10/18(木) 00:52:46.230911デフォルトの名無しさん
2012/10/18(木) 02:29:01.19>898より
a.「books自体が空」
b.「booksは存在するがbooks.textは存在しない」
b.1. Bookインスタンスを返すが text がない
b.2. Book以外のインスタンスを返すので textがない
c. books.text が存在する
isinstanceでの型チェックのみでは、(b.1)のケースで、属性が動的に設定されるといった場合を判別できない。
Pythonでは、こういった場合は大抵、アクセスしてみてAttributeErrorを捕まえるか、getattr/hasattr等で処理します。
def get_bookname(books):
return getattr(books,"text","") if books else ""
0912デフォルトの名無しさん
2012/10/18(木) 05:01:15.702つのリストに存在する共通の値を削除したいのですが
ループを使わずに共通の値を発見する方法はありますか?
例:
list1 = ["a", "b", "c", "d", "e"]
list2 = ["e", "f", "g", "h", "i"]
# 共通の値を発見して削除、 この場合は"e"
# 結果:
list1 = ["a", "b", "c", "d"]
list2 = ["f", "g", "h", "i"]
0913デフォルトの名無しさん
2012/10/18(木) 05:10:06.140914デフォルトの名無しさん
2012/10/18(木) 05:18:40.37ありがとうございます
0915デフォルトの名無しさん
2012/10/18(木) 13:38:36.44Fileオブジェクトの関数をさがしてるのですがみつけられません。
2.7だとhttp://docs.python.org/library/index.html の5.9にFile Objectとあるのですが
http://docs.python.org/py3k/library/index.html にはありません。
どこをどうみればいいんでしょうか?
0916デフォルトの名無しさん
2012/10/18(木) 13:55:09.380917デフォルトの名無しさん
2012/10/18(木) 14:05:00.48Python 3 では、I/O関係は ioモジュールにまとめられて、内部的にはJavaのI/O周りみたいになってます。
open() は io.open() のエイリアスで、ファイルを開くためのヘルパ関数。
open("hoge.txt", mode="r", encoding="utf-8") は
io.TextIOWrapper(io.BufferedReader(io.FileIO("hoge.txt")), encoding="utf-8") を作る。
open("hoge.bin", mode="rb") は
io.BufferedReader(io.FileIO("hoge.bin")) を作る。
0918デフォルトの名無しさん
2012/10/18(木) 14:06:13.90io moduleに移動した
0919デフォルトの名無しさん
2012/10/18(木) 14:18:56.090920デフォルトの名無しさん
2012/10/18(木) 14:57:57.100921デフォルトの名無しさん
2012/10/18(木) 15:21:47.480922デフォルトの名無しさん
2012/10/18(木) 15:32:12.17初心者用の解説に書いてあることだから、
そっちを先に読もうよ
ライブラリリファレンスを参照して目的の関数を探すのは、
ある程度上級者になってからでいいのでは?
初心者の勉強の仕方ではないと思うよ
0923デフォルトの名無しさん
2012/10/18(木) 19:39:18.83__ i⌒i ┏┛┗┓ ┃┣┛┗┫□┣┓ ┃┃ ┏┛┗┓ ┃┣┛┗┫□┣┓ .┃┃
./ O Oヽ | ┗┓┏╋┳━━┫┣┓┏┻━┫┃ ┏┓┃┃ ┗┓┏╋┳━━┫┣┓┏┻━┫┃ ┏┓┃┃
〈 |―/ | ノノ┏┛┗┻╋━┓┃┣┛┗┓ ┃┃ ┃┃┗┛ ┏┛┗┻╋━┓┃┣┛┗┓ ┃┃ ┃┃┗┛
ヽ. V ノ ...┃┃┏┓┃┏┛┃┃□┏┛ ┃┗┓┗┛┏┓ ┃┃┏┓┃┏┛┃┃□┏┛ ┃┗┓┗┛┏┓
( ̄ ̄ ノノ ┗━┛┗┛┗━┻┻━┛ ┗━┛ ┗┛ ┗━┛┗┛┗━┻┻━┛ ...┗━┛ ┗┛
0924デフォルトの名無しさん
2012/10/18(木) 19:41:23.060925デフォルトの名無しさん
2012/10/18(木) 20:10:51.200926デフォルトの名無しさん
2012/10/18(木) 22:07:23.890927デフォルトの名無しさん
2012/10/18(木) 22:58:02.170928デフォルトの名無しさん
2012/10/19(金) 08:06:03.990929デフォルトの名無しさん
2012/10/19(金) 10:06:28.60この文字列をconfigparserで読みたいんだけどどうエスケープして書けばいい??
0930デフォルトの名無しさん
2012/10/19(金) 10:16:58.56すまん自己解決
%%だったよ
0931デフォルトの名無しさん
2012/10/19(金) 22:25:45.053系(3.2以降?) だと configparser/loggingとも {} 表記の書式でも書ける様に設定できるみたい。
デフォルトではどちらも % 表記なので、移植性・手間的にはエスケープが安易。
configparserで辞書展開が不要なら以下のように、interpolationで振る舞いを変更出来る。
config = configparser.ConfigParser(interpolation=configparser.Interpolation())
loggingの方は、logging.Formatter や logging.basicConfig の style オプションで変更出来ます。
0932デフォルトの名無しさん
2012/10/20(土) 09:33:07.09for i in range(1,4)というふうに、わざわざtoの数字を
+1しないといけないのがどうにも性に合わないのですが
みなさんは気になりませんか?
0933デフォルトの名無しさん
2012/10/20(土) 10:06:36.58for i in range(3)
a = i + 1
というふうにするよ
0934デフォルトの名無しさん
2012/10/20(土) 10:39:50.03サンクスです。
+1は避けられないのですね。
rubyみたく、1..3という表記ができれば
直感的でよいのですが。
ちょっと作者に要望出してみます。
0935デフォルトの名無しさん
2012/10/20(土) 10:58:06.49作者だけど却下
0936デフォルトの名無しさん
2012/10/20(土) 11:02:34.050937デフォルトの名無しさん
2012/10/20(土) 11:07:15.83わぁMatzだ!サインください!
0938デフォルトの名無しさん
2012/10/20(土) 11:13:46.68汎用的にはシーケンスの開始は0からだし
n個、n回繰り返すということを踏まえ
for(int i = 0; i < n; i++)
から考えれば何ら不思議はない
どうしてもi<=n的にしたいのなら
好きなようにラッパー関数でも
イテレータでもwhileでも書いて
さもなくばRubyに帰ってください
0939デフォルトの名無しさん
2012/10/20(土) 11:36:41.04不思議とは言っていません。
直感的でないということです。
1,3の形式は残して構いませんから
1..3形式も追加してくれるよう頼んでみます。
気分次第で対応してくれるかも知れません。
何事も言ってみるものですよ。
0940デフォルトの名無しさん
2012/10/20(土) 11:40:27.23却下って言ってるだろハゲ
0941デフォルトの名無しさん
2012/10/20(土) 11:43:23.690942デフォルトの名無しさん
2012/10/20(土) 11:59:18.430943デフォルトの名無しさん
2012/10/20(土) 12:12:35.77なんでそっちの・・・
0944デフォルトの名無しさん
2012/10/20(土) 12:31:12.94直感的じゃないとか思ったけど
結局慣れの問題なんだよね
文字列分割するときに
abcdef -> abc def
s="abcdef"
s[:3]
s[3:]
と書けるのは直感的だよね
0945デフォルトの名無しさん
2012/10/20(土) 15:10:30.53これのどこが非直感的なのか分からない。数学苦手なのか?
0946デフォルトの名無しさん
2012/10/20(土) 15:11:05.650947デフォルトの名無しさん
2012/10/20(土) 15:26:40.75超初心者ですからそれは難しいです。
数値だけでなく、3のところが何かの変数であっても
対応できなければなりません。
おそらくPythonのソースレベルから改造が必要では?
>>945
fromとtoの両方を書かせていながら
fromは含んでtoは含まないっていうのは、そういうルールであるとは
理解しますが、直感的でないと思います。
VisualBasicのように、For i = 1 To 3と書けば3を含む言語もありますし。
…ちなみに数学は高校時代零点の常習犯でしたが
関係あるんですかね。
0948デフォルトの名無しさん
2012/10/20(土) 15:29:09.260949デフォルトの名無しさん
2012/10/20(土) 15:29:21.75a = b + 3
という表記も非直感的であって、
突き詰めればCOBOL流に行き着くわけですね。
ADD 3 TO b GIVING b
0950デフォルトの名無しさん
2012/10/20(土) 15:32:08.520951デフォルトの名無しさん
2012/10/20(土) 15:40:12.88算数知ってるだけでも直感的じゃないんでは?
= を代入って決めたのはFORTRANが最初?
0952デフォルトの名無しさん
2012/10/20(土) 16:31:42.98おおいに関係ある
0953デフォルトの名無しさん
2012/10/20(土) 16:36:03.52くだすれPython(超初心者用) その15
http://toro.2ch.net/test/read.cgi/tech/1350718465/
0954デフォルトの名無しさん
2012/10/20(土) 16:37:59.200955デフォルトの名無しさん
2012/10/20(土) 16:41:16.62難しくねーよ。何言ってんだ
0956デフォルトの名無しさん
2012/10/20(土) 18:40:01.49Rubyの
3...5 -> [3, 4]
3..5 -> [3, 4, 5]
みたいな記法は、一見便利そうに見えて、実際には
「えーっとこれはどっちだったっけ」って混乱するし、
おまけに視覚的にも判別しにくいし、最終的に精神病で死ぬ。
0957デフォルトの名無しさん
2012/10/20(土) 18:50:06.510958デフォルトの名無しさん
2012/10/20(土) 20:01:02.86[3:4]で文字の3つ目〜4つ目を切り出すのが直感的な動作と思います。
COBOLなんかはそうなっています。
なのにPythonでは、3つ目のみを取り出す動作となります。
これは[3:3]が空リストを返すという意味のない動作をすることから見ても
明らかにおかしな仕様と思われます。
これも一緒に要望出してきます。ではいろいろ教えてくれてありがとう。
0959デフォルトの名無しさん
2012/10/20(土) 20:04:23.720960デフォルトの名無しさん
2012/10/20(土) 20:10:58.000961デフォルトの名無しさん
2012/10/20(土) 20:12:58.11まあそこまでしなくても門前払いされるのがオチだと思うが.
0962デフォルトの名無しさん
2012/10/20(土) 20:14:01.211からやり直すレベル
0963デフォルトの名無しさん
2012/10/20(土) 20:15:04.120964デフォルトの名無しさん
2012/10/20(土) 20:16:15.09スライスの動作の説明はこれが有名
http://www.python.jp/doc/release/tutorial/introduction.html#tut-strings
0965デフォルトの名無しさん
2012/10/20(土) 20:22:17.91絶対に通らないから
0966デフォルトの名無しさん
2012/10/20(土) 20:31:52.760967デフォルトの名無しさん
2012/10/20(土) 21:11:39.610968デフォルトの名無しさん
2012/10/20(土) 21:40:45.430969デフォルトの名無しさん
2012/10/20(土) 22:37:15.020970デフォルトの名無しさん
2012/10/21(日) 06:29:46.45zero origin なので [2] が 3つ目 になります
0971デフォルトの名無しさん
2012/10/21(日) 07:51:07.08引数の個数を間違えて呼んだときの
エラーメッセージで出るアドバイスの
引数の個数がずれるのは慣れるまで
訳が判らなくて混乱したわ
しかも省略可能引数があったりして
必須パラメータの個数が変動してるので
エラーメッセージ見たために却って混乱するという
0972デフォルトの名無しさん
2012/10/21(日) 08:11:24.660973デフォルトの名無しさん
2012/10/21(日) 08:51:06.20n番目の引数の型は何何ってエラー出るけど
n+1番目だかn-1番目だかのことを言ってるのだと
気付くまでに数年掛かったぜ
0974デフォルトの名無しさん
2012/10/21(日) 11:27:23.860975デフォルトの名無しさん
2012/10/21(日) 12:52:32.14といったエラーメッセージは 3.3 で変更されてるよ
TypeError: foo() missing 1 required positional argument 'x'
と、具体的に教えてくれるようになった。
3.2 以前なら pylint で、ある程度は、同様のエラーメッセージで教えてくれます。
0976デフォルトの名無しさん
2012/10/21(日) 14:52:33.163になって良くなったことも少しはあるんですね(棒)
0977デフォルトの名無しさん
2012/10/21(日) 20:22:37.600978デフォルトの名無しさん
2012/10/21(日) 21:48:25.28Ruby もいい言語なのかもな…
0979デフォルトの名無しさん
2012/10/22(月) 03:00:57.07ただ彼は多分Ruby自体も全然勉強してないよね 他の言語もどうせ上っ面でしょ
Rubyの表面をちょこっと知っただけで「直感的最高!非直感的は駄目!」という短絡的思考
それは非直感的なのではなくて、ただ彼が理解できない概念っていうだけでしょ
なおかつ「頼めばなおしてくれるかも」なんていう子供みたいな発想に至るのはヤバ過ぎ
0980デフォルトの名無しさん
2012/10/22(月) 03:11:08.24コンピュータサイエンスの基本的な問題だよなあ
ダイクストラ先生のWhy numbering should start at zero
http://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html
とかwikipediaだと
http://en.wikipedia.org/wiki/Zero-based_numbering
0981デフォルトの名無しさん
2012/10/22(月) 03:47:09.07割り算でマッピングする (i / 5) のに便利
a + size * i と記述できて便利
空リストが記述しやすくて便利
ふーむ
0982デフォルトの名無しさん
2012/10/22(月) 05:08:29.12それとは別に、
添字として扱うことを想定された rangeの返す数列を
数値として扱うことのギャップかな?
意味的な事を考えると indexを積算する って処理にはなんか違和感があるね。
終端+1 に馴染めなければ [offset: offset+size] という考え方はどうだろう?
例えば、1から10個分の範囲 range(1, 1+10)
# 11ってマジックナンバーが出てくるのが嫌で、あえてそう記述したりする事はある。
0983デフォルトの名無しさん
2012/10/22(月) 05:59:59.26ループのカウンタに流用せざるを得ないPythonのfor文には
柔軟性が欠けていると言えなくもない。
だがそんなことは作者が初心者に指摘されるまでもなく
わかっているはずで、まずいと思ったらとっくに直しているだろう。
直さないということは、プログラミング上は些末な問題に過ぎないということだ。
あきらめて仕様に従うのが大人というものだ。
0984デフォルトの名無しさん
2012/10/22(月) 06:18:22.52リストを辿るからこそ一貫して柔軟な操作が出来るんだろ
0985デフォルトの名無しさん
2012/10/22(月) 06:22:23.170986デフォルトの名無しさん
2012/10/22(月) 06:22:51.240987デフォルトの名無しさん
2012/10/22(月) 06:29:37.66リストをスライスするとコピーが作成されるのは避けたいです
それともリストを変更するまでコピーを遅延するようなメカニズムがPythonのスライシングには組まれてるのでしょうか
0988デフォルトの名無しさん
2012/10/22(月) 06:32:02.76でも基本的にコピーオンライトなんてどれでも普通じゃなかったっけ
そもそもリスト自体要素への参照に過ぎなかった気がするが
0989デフォルトの名無しさん
2012/10/22(月) 06:46:58.820990デフォルトの名無しさん
2012/10/22(月) 06:48:13.270991デフォルトの名無しさん
2012/10/22(月) 07:08:11.26巨大なリストでコピーを作りたくないって意図なら itertools.islice
>>982 range(1, 1+10)
自己レスだけど、数値直書きだと
始点変えたいだけの場合、変更箇所が3箇所になるので保守性よくないね。
0992デフォルトの名無しさん
2012/10/22(月) 09:05:20.76>982
range(1, 1+10) →じゃなくて→ range(1, 10)
とか
range(2, 2+10) →じゃなくて→ range(2, 10)
とかいう仕様にしとけば良かったのにな
0993デフォルトの名無しさん
2012/10/22(月) 09:39:21.060994デフォルトの名無しさん
2012/10/22(月) 10:03:48.870995デフォルトの名無しさん
2012/10/22(月) 12:04:45.610996デフォルトの名無しさん
2012/10/22(月) 12:23:47.440997デフォルトの名無しさん
2012/10/22(月) 13:51:24.740998デフォルトの名無しさん
2012/10/22(月) 13:54:53.598 8 8 8 8 8
8 8 8 8 8 8
888 888 888
8 8 8 8
8 8 8 8
888 888 888
0999デフォルトの名無しさん
2012/10/22(月) 13:55:48.338 8 8 8 8 8
8 8 8 8 8 8
8888 8888 8888
8 8 8
8 8 8
888 888 888
1000デフォルトの名無しさん
2012/10/22(月) 13:57:07.678 8 8 8 8 8 88
8 8 8 8 8 8 8 8
8888 8888 8888 888 8
8 8 8 8 8
8 8 8 8
888 888 888 888
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。