[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 08/01 18:14 / Filesize : 164 KB / Number-of Response : 711
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれPython(超初心者用) その3



1 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 06:33:45 ]
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、
お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>980 辺りで

前スレ
くだすれPython(超初心者用) その2
pc11.2ch.net/test/read.cgi/tech/1218155094/

関連スレ
Pythonのお勉強 Part31
pc11.2ch.net/test/read.cgi/tech/1230821097/

348 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 21:56:00 ]
universal feed parser使ってる人いる?
パースした結果を普通のpythonオブジェクトに変換できないかな?
パース結果が<class 'feedparser.FeedParserDict'>で戻ってくるのでjsonにうまく変換できない。。。



349 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 23:16:11 ]
>>348
そのFeedParserDictとやらは新しいpythonならdictを継承してるから
「普通のpythonオブジェクト」として振舞うはず。
しかし、アイテムとして持ってるものの中でjsonでシリアライズできないものは
全て自前で変換コードを書く必要がある。
docs.python.org/library/json.html?highlight=JSONEncoder

350 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 23:43:33 ]
>>349
うん。dictを継承してるから普通にシリアライズできると思ったんだが出来なかったので
何かやり方があるんじゃないかと思って聞いてみた。
まあ現実に出来てないんだから変換コードを書くしかないんだろうな。
踏ん切りついた。ありがとう。
ちなみにPython2.5でjsonライブラリは
pypi.python.org/pypi/python-json/3.4 のを使った。


351 名前:350 mailto:sage [2009/02/08(日) 14:22:17 ]
解決したので自己レス。
どうやらjsonライブラリがよくなかったみたい。
deron.meranda.us/python/demjson/ をつかったら
特に変換コードを書かなくてもシリアライズできた。

352 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 15:22:19 ]
そういうことがあるだな。

353 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 15:40:58 ]
なるほど
ありがとうございました

354 名前:デフォルトの名無しさん [2009/02/08(日) 16:38:35 ]
a = {"123":"abc"}
str(a)

で出力される文字列が普通にjsonだったらいいのに・・・

355 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:01:22 ]
JSONって"でないとだめなの?
'でもいける?

356 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:02:52 ]
だめですよ



357 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 20:40:14 ]
SocketServerを使ってサーバーを作ったのですが今接続しているクライアント全てに同じメッセージを送る方法が分かりません。
ご教示のほどよろしくお願いします。

358 名前:デフォルトの名無しさん [2009/02/08(日) 22:30:20 ]
>>355-356

だよな。
読む方は下手にevalすると危ない気もするけど、
書く方はてがるに str() でJSONになればべんりなのにな。

359 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:42:36 ]
a = [{"123":"abc"}, 4, 5, {"hage":"fuga",'suka':'pontan',"piyo":[123,456]}]
str(a).replace("'",'"')

[{"123": "abc"}, 4, 5, {"suka": "pontan", "hage": "fuga", "piyo": [123, 456]}]


360 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:44:03 ]
>>> a = {"12'3":"ab'c"}
>>> str(a).replace("'",'"')
'{"12"3": "ab"c"}'

361 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:46:19 ]
>>> a = {"12'3":"ab'c"}
>>> str(a)
'{"12\'3": "ab\'c"}'

362 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:12:31 ]
おもしろいやつらだなお前らは

363 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:19:38 ]
でもこれだとTrue -> true, False - > false, None-> 'none'
ができてねえぞ

364 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:22:43 ]
俺のやることにいちいち口を出さないでほしい。
ここは初心者スレなのだから間違えたとしても許される。

365 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:23:44 ]
json.dumpsが標準になったんだから使えよ

366 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:32:55 ]
なぜ昔からあるstrを使わない?



367 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:40:16 ]
                             |
                             |
      ∩___∩             |
      | ノ  _,  ,_ ヽ        ((  | プラプラ
     /  ●   ● |         (=)
     |    ( _●_)  ミ _ (⌒)   J  ))
    彡、   |∪|  ノ
⊂⌒ヽ /    ヽノ  ヽ /⌒つ
  \ ヽ  /         ヽ /
   \_,,ノ      |、_ノ

368 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:29:59 ]
for i in range(1,101):print"Fizz"*(i%3<1)+"Buzz"*(i%5<1)or i

こういうふうに"*"をprintの中で使う場合について解説しているサイトを教えてください。
入門書を一冊読んだのですが、上記のような使い方については書かれていませんでした。たぶん。

369 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:32:41 ]
"Fizz"*1 表示
"Fizz"*0 非表示
になってるだけ。
"hoge"*2 -> hogehoge
たぶん。

370 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:37:18 ]
>>368
> "*"をprintの中で使う場合について

こういう条件付けはあまり意味がないな

print文の構文は
print 式,式...
または
print >>式 式,式...
だ(正確な定義はリファレンスマニュアル参照)

つまりprint文では任意の式が使えるから使っているだけのことで、
この場合は式 "Fizz"*(i%3<1)+"Buzz"*(i%5<1)or iを評価した値が印字される

371 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:39:10 ]
*での繰り返しについてってことならチュートリアルにもあるね

www.python.jp/doc/release/tut/node5.html#SECTION005120000000000000000

372 名前:368 mailto:sage [2009/02/09(月) 01:05:10 ]
>>369-371
ご教示ありがとうございます。

*が特別な意味を持っていて、たとえば
"Fizz" if i%3<1 else ""
のelse以降を省略したような意味で使われているのかと思ったのですが、
ただ掛けていただけだったんですね。

373 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 02:33:21 ]
そう思ってても問題ないよ今回の場合は

374 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 17:52:44 ]
amazonのHTMLを解析するプログラムを組んでいるんですが、
正規表現がうまくいきません。

re_word = re.compile(r'href.*?/dp/.*?>')

リンクに/dp/が含む行だけを抜き出しいのですが、
うまく抜き出せません。
正規表現はチェッカーを使ったところ正しいようです。

for m in re_word.finditer(htmlcontent):
                print m.group(0)

何か使い方が悪いでしょうか
python2.5

375 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:51:41 ]
何がやりたいのか、どんなエラーが出たかなどちゃんと書かないと分からないよ
コード例も断片じゃなくてちゃんと動くものを書こうね

こういう処理はちゃんとしたHTMLパーサを使うのが定石(ElementTree, lxmlなどで調べて)
ちゃんと動いてるみたいだけどどこがおかしいの

#!/usr/bin/python
import re, urllib
htmlcontent = urllib.urlopen("www.amazon.com").read()
re_word = re.compile(r'href.*?/dp/.*?>')
for m in re_word.finditer(htmlcontent):
    print m.group(0)

$ python test.py
href="www.amazon.com/Makita-BDF452HW-18-Volt-Compact-Lithium-Ion/dp/B000K6ILDW">
href="www.amazon.com/Milwaukee-2601-22-18-Volt-Li-ion-Compact/dp/B000WER5SE">
href="www.amazon.com/Makita-BDF452HW-18-Volt-Compact-Lithium-Ion/dp/B000K6ILDW">
href="www.amazon.com/Milwaukee-2601-22-18-Volt-Li-ion-Compact/dp/B000WER5SE">

376 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:54:55 ]
ElementTreeをHTMLパーサとか言うのは勘弁してください



377 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:56:17 ]
re.compile(r'href[^<>]*?/dp/[^<>]*?>')

378 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 19:08:43 ]
HTML -> HTMLParser(html.parser@3.0)
XML -> xml.parsers.expat, xml.dom, xml.sax, xml.etree.ElementTree, lxml(推奨)
lxmlはwell-formedでないXMLもうまく扱える。
これで合ってますかね。

379 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 23:10:38 ]
dictionaryのkeyに可変なインスタンスを登録することができないのですが、
同様な機能はどっかの標準パッケージにあるでしょうか。

例えば
class Nuclei(object):
 def __init__(self, A, Z):
  self.A = A
  self.Z = Z
というような、質量数と原子番号を保持するものがあるとします。
原子の周期表をdictionaryで作るとして、

d = {}
d[Nuclei(2, 1)] = 0.0015 # 例えば重水素の存在比を登録

のようにしたとき、再び

>>> d[Nuclei(2, 1)]
0.0015

と取り出せるようにしたいのですが。

380 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 23:45:25 ]
from collections import namedtuple # 2.6 feature
Nuclei = namedtuple("Nuclei", "A Z")

381 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 02:21:03 ]
>>380
ありがとうございます。
2.5までしか使えない環境なので、
__hash__を定義して解決しました。

382 名前:デフォルトの名無しさん [2009/02/10(火) 08:04:53 ]
そんな機能があったとは。
おまえら物知りだなぁ。

383 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 10:56:35 ]
モジュールが豊富にあるので
個々人で全てを把握しきれるとは思えないからな。
一応namedtupleについては追加するとか
一部(ML)で話題にあがったりしたが。

384 名前:374 mailto:sage [2009/02/10(火) 11:08:40 ]
>>375 >>376 >>377 >>378
テキストのエンコードとか変更して色々やってたら抜き出せました。
色々とご教授頂き、ありがとうございました

385 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 14:21:29 ]
BeautifulSoupを使っているんですが、
<div class="hoge">this soup is beautiful</div> (1)
とあった場合
this soup is beautiful
を抜き出すにはどうすればいいのでしょうか?
(1)まで抜きだしはできていてclassつきの場合のやり方がわかりません。
(1)を格納している変数はsoupsとすると
soups["div"]に近い形で抽出できると思うんですが、
よろしければ教えていただけませんか?


386 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 14:36:40 ]
>>385
Tagの子要素はcontentsで取れるんで、単に
soups.contents[0]
でいいんじゃないか
クラスはNavigableStringになる



387 名前:385 mailto:sage [2009/02/10(火) 15:30:50 ]
>>386
意図どおり、取れました。
ありがとうございます!。

388 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 20:11:59 ]
pythonをUSBメモリに入れてMsysで使いたいです

389 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:33:47 ]
pymixiって今配布されているバージョン動きますか?
BeautifulSoupのエラーなのか, Pymixiのエラーなのか, Mixiのタグが変わったのか切り分け中です。

390 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 17:06:54 ]
pycompleteを探していて、python-modeと一緒に入ってると聞いたのですが、
最新版らしき
ttps://launchpad.net/python-mode
には入ってませんでした

どっかにありませんか?

391 名前:390 mailto:sage [2009/02/12(木) 17:11:39 ]
自己解決しました

392 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:32:36 ]
pythonからwindowsのコマンドを実行することはできますか?
またできるのなら方法を教えてください

393 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:54:16 ]
>>392
import os

394 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:04:32 ]
どうしてpythonにはpopenがいっぱいあるのはなぜですか?

395 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:16:45 ]
>>394
そのとおりです


396 名前:デフォルトの名無しさん [2009/02/12(木) 20:22:10 ]
3=9-6



397 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:29:48 ]
愚民が権力握っても 不正や腐敗がはびこるだけよ♪

398 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 21:52:56 ]
>>394
そのうち消えるから安心しろ

399 名前: ◆UNKOVIP9RM [2009/02/12(木) 22:57:52 ]
>>394-395
ちょっとわからんかった。。。

400 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 16:53:11 ]
人生は後払い

401 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 02:42:21 ]
python3000ってpymacs使える?

402 名前:デフォルトの名無しさん [2009/02/14(土) 16:34:44 ]
無理 あきらめろ

403 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 18:40:42 ]
辞書のコピーってのは、やっぱりimport copy使うか、バラして自力でやるしかないでしょうかね?
d = {なんとか}で、
c = { d.items() }みたいな感じで簡単に書くのは無理でしょうか?

404 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 18:50:46 ]
dict(d)

405 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 19:21:37 ]
>>404
ありがとうございます!
もっと簡単な方法があったんですね。

406 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 21:43:20 ]
d.copy() でもいい



407 名前: ◆UNKOVIP9RM [2009/02/15(日) 20:57:05 ]
ttp://itpro.nikkeibp.co.jp/article/Research/20090214/324743/

日本は新興国だろ

408 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 13:50:58 ]
galprop.stanford.edu/web_galprop/galprop_home.html
に置いてある、
galprop.stanford.edu/codes/v50.1p.tgz
の中のpp_meson.fをf2pyにかけたいのですが、

$ f2py -c -m pp_meson pp_meson.f

をやると大量のエラーが出ます。

running build
running config_cc
unifing config_cc, config, build_clib, build_ext, build commands --compiler options
running config_fc
unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
running build_src
building extension "untitled" sources
f2py options: []
f2py:> /var/folders/wH/wHx7+EnOGj8QSwsYqxTqmE+++TI/-Tmp-/tmpYvDAdM/src.macosx-10.5-i386-2.5/untitledmodule.c
(略)
File "/Library/Python/2.5/site-packages/numpy-1.2.1-py2.5-macosx-10.5-i386.egg/numpy/f2py/crackfortran.py", line 2072, in analyzevars
for k in implicitrules[ln0].keys():
KeyError: '1'

どのような修正を加えて走らせ直せば良いのでしょうか。

OS X 10.5.6 + gfortran
Linux g77 3.3.5

のどちらでも同じ症状です。Python 2.5 + numpy 1.2.1を使っています。

409 名前:408 mailto:sage [2009/02/16(月) 18:23:29 ]
どうやらf2pyは継続行をうまく扱えないようで、
   1行目 !comment
  & 2行目
みたいに書いてあるところのコメントを取り除けばいいようです。

410 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 20:15:59 ]
site-packages/my_package
site-packages/my_package/__init__.py
site-packages/my_package/module1.py
site-packages/my_package/module2.so

のような構成でパッケージを作りました。
__init__.pyには、

from module1 import *
from module2 import *

とだけ書いてあります。しかし、

$ python
>>> import my_package
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "my_package/__init__.py", line 8, in <module>
from module2 import *
ImportError: No module named module2

となってしまいます。どこを直せば、module2.soを読みに行ってくれるのでしょうか。
python 2.5.1をOS X 10.5.6で使用しています。

411 名前:410 mailto:sage [2009/02/16(月) 20:16:54 ]
追記

$ cd site-packages/my_package
$ python
>>> import module2

とやると、ちゃんと動きます。

412 名前:410 mailto:sage [2009/02/16(月) 20:46:46 ]
あ、嘘。できた。

413 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 21:44:34 ]
例1)

>>>wordlist = ["H","K","L"]
>>>[word.lower() for word in wordlist]
['h', 'k', 'l']

例2)
>>> x = [1,2,3,4,]
>>>[x for x in x if x % 2 == 0]
[2, 4]

例1を
>>>[for word in wordlist word.lower()]
例2を
>>>[if x % 2 == 0 x for x in x]
とやると、動きませんでした。

forの部分を前に書く場合と後ろに書く場合があるような気がするのですが、
どういった決まりがあるのでしょうか。


414 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 21:58:36 ]
>>413
構文はリファレンスマニュアルに書いてある
ttp://docs.python.org/reference/expressions.html#list-displays
かな

まあ簡単に言うとyieldしたい式は必ず先頭(forの前)に
書かなければならないような構文になっている

415 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 06:03:47 ]
Python ではマルチスレッド化しても複数コアを使うことはなくて(なんかGILとか言うらしい)、
複数使うにはマルチプロセスにすれば可能
という理解であってます?

416 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 10:49:47 ]
まちがってるよ。Ruby使えば問題かいけつ。



417 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 11:24:05 ]
いい加減にしろRuby厨!
巣から出てくるな!
あんなパクリだらけで出来の悪い言語なんか信者以外使わないわ

418 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 11:53:08 ]
まぁまぁ

419 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 12:00:59 ]
こうしてみるとRubyって存在そのものが悪だな
まぁ作った奴からしてアレだしw
ひたすら他の言語をDisりまくりだもんな、そりゃ嫌われるわ

420 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 12:19:32 ]
だが、そこがいい

421 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 16:30:58 ]
>>415
おk
ja.wikipedia.org/wiki/CPython#.E4.B8.A6.E5.88.97.E6.80.A7.E3.81.AB.E9.96.A2.E3.81.99.E3.82.8B.E5.95.8F.E9.A1.8C

422 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 00:44:24 ]
>>421
ありがとう

423 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 20:09:31 ]
自分で作成したモジュールの同梱データファイルを使いたいときに、

mydata = pkg_resources.resource_filename("my_module", "data/data.txt")

としてパスを取得しています。
しかしこの方法だとpkg_resourcesを入れる必要があるため、
他の人のマシンにmy_moduleを入れた場合にすぐに動きません。
この他に、データファイルのパスを簡単に取得する方法があるのでしょうか。

424 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 20:18:09 ]
データファイルをモジュール化する。

425 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 21:53:18 ]
os.path.join(os.path.dirname(__import__("my_module").__file__), "data/data.txt")

426 名前:デフォルトの名無しさん [2009/02/19(木) 23:21:08 ]
ありがとうございました



427 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 03:34:21 ]
すごいくだらないんですけど
PyPy Pychinko以外になんか卑猥なのあります?

428 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 15:06:40 ]
え?どこが卑隈なの?

429 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 15:56:05 ]
o2.py

430 名前:デフォルトの名無しさん [2009/02/21(土) 19:26:29 ]
AutoComplete.elをwindowsのMeadowで使ってる人いません?
rope のインストールの仕方教えて臭い

431 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 19:37:13 ]
つttp://www.youtube.com/watch?v=y8SZnU5iG-4

432 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 04:02:27 ]
>>430
pythonユーザはMeadow率が低いみたい.
俺も以前,このスレでpdbがらみの質問したけど
まともなレスが無かったよ.
素直にeclipseを使うことをお勧めする.
emacsキーバインドもあるから,移行はそんなにつらくない・・・かもしれない.
とか言ってる俺自体,Meadowとの相性の悪さにウンザリして
Python触らなくなっちゃったけどね.
下手に高機能な分,動かないときは絶望的ってイメージ.

433 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 04:11:08 ]
つか,このスレでたまに出てくるRuby厨は
Python厨の騙りじゃねw
まぁ,どっちでもいいけどさ.

国内でのライブラリやツール類の開発者(成果物?)は
Ruby >>> Python
ですよね.

当然,世界レベルで見たら
Perlに変わってLinuxのシステムツールの地位を獲得している
Pythonの方が圧倒的だけど,やっぱり,国内じゃ弱い.

まぁ,何が言いたいかってぇと,ブログなんかに書き散らかすんじゃなくて
有用な情報が一元的に収集されてるといいなぁ・・・ってことです.


434 名前:430 mailto:sage [2009/02/22(日) 05:19:23 ]
自己解決しました
setup.pyを実行じゃだめで、easy_install入れたらできました。

>>432
まぁ私は困ってないのでこのままMeadowを使おうとおもいます
参考までになにが不満だったかお聞かせください

435 名前:デフォルトの名無しさん [2009/02/22(日) 05:58:36 ]
>>434
gdbインターフェースでpdbを使いたかったんですが
俺には無理でした。


436 名前:デフォルトの名無しさん [2009/02/22(日) 09:12:29 ]
>>432,434
Windows用のGNU Emacsを使うという手は?



437 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 11:24:38 ]
>>436
確かに、Win32 emacsでやりたいことはできるんですが
Meadowとの細かい差分が気になって…
せめてマウスカーソル消去に対応して欲しかった。

438 名前:デフォルトの名無しさん [2009/02/22(日) 14:05:35 ]
boost.pythonスキだぁ

439 名前:デフォルトの名無しさん [2009/02/23(月) 15:46:55 ]
質問です。
osはwindowsxp、Pythonは2.6.1を使っています。

PyAudioというモジュールをインストールして
waveファイルをいじろうとしているのですが、
waveファイルを再生しようとしてPyAudio配布元の
Exampleソースのように書いて動かしてみると
普通に動きました(waveファイルが再生された)
●PyAudio配布元people.csail.mit.edu/hubert/pyaudio/
●wave再生のexampleソースpeople.csail.mit.edu/hubert/pyaudio/#examples

今度は再生のときの音量をいじってみようと
モジュールの説明をつらつらと見てみたのですが
どのようにいじれば音量をコントロールできるかわからないです。
どなたかわかる方いらっしゃいませんか?。。。。。
●PyAudioモジュールドキュメント
people.csail.mit.edu/hubert/pyaudio/docs/pyaudio-module.html

440 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:37:35 ]
>>439
以前やろうとしtけど、なかった気がする

他の方法でOSの音量をいじるか、
code.google.com/p/pygalaxy/wiki/SWMixer
こんなのがみつかったけど、どうだろうか?

441 名前:デフォルトの名無しさん [2009/02/24(火) 19:47:36 ]
なんかMeadowの話があったみたいですが、NTEmacsでの質問をさせてください。
VistaにNTEmacs、Python2.5.4、PyQt-Py2.5-gpl-4.4.3、matplotlib-0.98.5.2、python-modeを入れてNTEmacsからpy-shellを使えるようにしました。
ところがmatplotlibで図を表示してみようと思っても、imshowで止まってしまって何も表示されません。
同じ事をIDLEからやるとちゃんと表示されます。
理由と対処法分かりませんか?
実行しようとしているのはネットで拾ったサンプルの一部で

from pylab import *
A = rand(5, 5)
figure(1)
imshow(A, interpolation='nearest')
grid(True)
show()

です。NTEmacsの*Python*バッファからだとimshow()で止まってしまいます。


442 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 04:19:00 ]
>>> a = {1 : []}
>>> b = dict(a)
>>> b[1].append(2)
>>> b
{1: [2]}
>>> a
{1: [2]}

中のリストが参照渡しになってしまうようなのですが、これを回避する方法はありますか?
ちなみに
a.copy()
copy.copy(a)
もだめでした。

よろしくお願いします

443 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 04:26:17 ]
copy.deepcopy(a)

444 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 07:38:42 ]
Pytohnシェルでタブ補完出来るようにしたら便利すぎ!! "python 補完"でぐぐって、
Linuxの場合:
ttp://d.hatena.ne.jp/maedana/20070813/1186992559

Windowsの場合:
ttp://72.14.235.132/search?q=cache:oiU4zQsZDZkJ:www.gikogeek.net/wd/2008/09/25/41/+python+%E8%A3%9C%E5%AE%8C&hl=ja&ct=clnk&cd=3&gl=jp&client=firefox-a

上記の方法以外に、より高機能なPytohnシェル(IPython)を使うという手も良さそう。
ttp://python.matrix.jp/modules/ipython.html

445 名前:442 mailto:sage [2009/02/25(水) 13:08:05 ]
>>443
ありがとうございます!

446 名前:デフォルトの名無しさん [2009/02/25(水) 15:19:34 ]
>>444
ありがとうございます!



447 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 22:10:52 ]
>>444
パイトーンワロタ

448 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 07:17:14 ]
pythonで[0x78, 0x56, 0x34, 0x12]みたいな配列を0x12345678のような数値にしたいのですが何か良い方法ありますか?

449 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 07:40:20 ]
たたき台として

>>> from struct import *
>>> buf = pack('4B', *[0x78, 0x56, 0x34, 0x12])
>>> buf
'xV4\x12'
>>> unpack('<I', buf)[0]
305419896
>>> hex(_)
'0x12345678'

450 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 11:51:37 ]
a = [0x78, 0x56, 0x34, 0x12]
"0x%02x%02x%02x%02x" % (a[3],a[2],a[1],a[0])

451 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 12:21:48 ]
>>> a = [0x78, 0x56, 0x34, 0x12]
>>> reduce(lambda x, y: (x << 8) + y, reversed(a), 0)
305419896
>>> sum(i * 2**j for i, j in zip(a, (0, 8, 16, 24)))
305419896

452 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:02:32 ]
reduce(lambda x, y: x + '%02x'%y, reversed(a), '0x')

453 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:07:36 ]
「数値にしたい」と言ってるのに文字列化してるのは何故なんだぜ

454 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:39:55 ]
0x12345678のような数値にはならないから。

455 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:47:10 ]
0x12345678は数値?

456 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:48:26 ]
'0x12345678'になってりゃ
int('0x12345678',16)で医院で内科脳



457 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:51:33 ]
>>> int('0x%s'%''.join(map(lambda x: '%02x'%x,reversed(a))),16)
305419896

458 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:53:02 ]
とりあえず reversed() は禁止した方が良いと思う

459 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:55:55 ]
言い出しっぺが「数値にしたい」と言ってるのに文字列化してる

460 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:59:25 ]
問題文の日本語が正しいとは限らない。

461 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 16:04:37 ]
初心者スレだからな
素直に
>>449
でいいと思う

462 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 16:06:42 ]
bytes([0x78, 0x56, 0x34, 0x12]).long()


463 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 20:47:36 ]
class A(object):
 def f(self):
  """
  document
  """
class B(A):
 def f(self):
  pass

という2つのclassを作ったとします。このとき、
help(A)やhelp(B)でAとBの説明を見ると、
当然かもしれませんがB.fの説明は空欄になってしまいます。
Bのような継承が何個もあり、その関数fの説明は全て同じにしたいのですが、
全部の継承classに対して同じ説明書きをしないといけないのでしょうか。
説明が変わるたびに全てのclassを修正する必要があるので面倒です。

何か良い方法があるでしょうか。教えて下さい。


464 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 23:26:41 ]
>>463
class B(A):
  def __init__(self):
    

465 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 23:30:42 ]
misutta

まぁコードはいいや。
Bでfを再定義しなければAのfが実行されるで。

466 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 23:53:51 ]
fを再定義するってことは、少なくとも内容に変更があるってことだからな。



467 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 00:17:12 ]
>>462
なにその便利関数、って思ったら3.Xか

468 名前:463 mailto:sage [2009/02/27(金) 00:49:43 ]
ありがちな例で申し訳ないですが、
class Animal(object):
 def naku(self):
  """
  動物が鳴くお
  """
  raise NotImplementedError

class Cat(Animal):
 def naku(self):
  printf "にゃー"

class Dog(Animal):
 def naku(self):
  printf "わんわん"

ってときに、いちいち"猫が鳴く"とか"犬が鳴く"っての書きたくなくない?と。

469 名前:463 mailto:sage [2009/02/27(金) 00:50:14 ]
>>468
癖でprintfとしてしまった。printです。

470 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 06:10:47 ]
>>463
class B(A):
  def __init__(self):

471 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 06:36:18 ]
Python 3.0 だとこんな感じでいけるっぽい。エラーチェック等は省略。

def docstring(cls):
    for name in dir(cls):
        if not name.startswith("_"):
            f = getattr(cls, name)
            super_f = getattr(cls.__base__, name)
            f.__doc__ = super_f.__doc__
    return cls

class A:
    def f(self):
        "docstring"
        pass

@docstring
class B(A):
    def f(self):
        pass

print(A.f.__doc__)
print(B.f.__doc__)

472 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 07:20:48 ]
>>471
スレチかもしれないけど、471のPythonコードのスペースがつぶれていないのは、どうやってるんでしょうか?
自分がコードを貼り付けると、
def docstring(cls):
for name in dir(cls):
def f(self):
こんな風になる。

473 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 07:32:26 ]
>>472
ギコナビの特殊文字変換を使ってます。
書き込み時にスペースを&nbsp;に置換してくれます。
書き込み後にどう見えるかをプレビューでチェックできたりして便利です。
変換自体は手作業でやっても大した手間じゃないですよ。
エディタでスペース4個を&nbsp;&nbsp;&nbsp;&nbsp;に置換とかすればOKです。

474 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 07:35:41 ]
全角スペースでもいい。そのままコピペには使えないけど。

475 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 08:21:38 ]
>>472
もスペースなくなってる訳じゃないからね
ブラウザが消してるだけで
httpで送られてくるデータには含まれてるから
ソース見れば復元可能

476 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 08:22:36 ]
全角スペースが一番迷惑



477 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 09:22:12 ]
ラベルごとに集合を作って、その集合に関数を適用する良い方法があったら教えてください。
たとえば、下の表のように、a,b,c3チーム(ラベル)それぞれの平均スコアを出したい。
team score
a 10
b 2
a 9
c 8
b 3
c 6

計算結果
a b c
9.5 2.5 7.0

ラベルにもう一次元足して、クロス表を作れるともっとうれしいです。

想定している機能は、エクセルのピボットテーブルのような感じです。
Rでいうと、tapply(score, team, mean)みたいな感じです。

よろしくおねがいします。

478 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 11:02:19 ]
>>477
標準ではお手軽な方法はないような気がする
なんかライブラリはあるのかもしらんけど
標準でやるならこんな感じです

from itertools import groupby
from operator import itemgetter
data = """
a 10
b 2
a 9
c 8
b 3
c 6
"""
records = [(x, int(y))
              for (x, y) in
                 (line.split()
                     for line in data.strip().splitlines())]
# -> [('a', 10), ('b', 2), ('a', 9), ('c', 8), ('b', 3), ('c', 6)]
grouped = [(k, map(itemgetter(1), g))
             for k, g in
                groupby(sorted(records, key=itemgetter(0)),
                        key=itemgetter(0))]
# -> [('a', [10, 9]), ('b', [2, 3]), ('c', [8, 6])]
result = [(x, float(sum(ys))/len(ys)) for x, ys in grouped]
# -> [('a', 9.5), ('b', 2.5), ('c', 7.0)]


479 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 14:58:04 ]
import collections

def main():
    h = collections.defaultdict(list)
    for line in open("a.txt"):
        team, score = line.split()
        h[team].append(int(score))
    for team, scores in sorted(h.iteritems()):
        print team, float(sum(scores)) / len(scores)

if __name__ == '__main__':
    main()


480 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 18:26:51 ]
>>478, 479
ありがとうございます。
itertools, operator, collections....
よくわからない奴らがたくさん出てきたぜ・・・・(汗)
試してみます。

ぱっと見、478の方が汎用性がありそうかな・・・。


481 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 07:23:08 ]
data = """
a 10
b 2
a 9
c 8
b 3
c 6
"""
h={}
[h.setdefault(x,[]).append(int(y)) for (x,y) in (line.split() for line in data.strip().splitlines())]
r={}
[r.setdefault(x,float(sum(y))/len(y)) for (x,y) in h.iteritems()]
r


482 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 07:44:58 ]
[1, 3, 5, 2, 5, 2, 1, 4, 1, 1, 2, 4, 3, 2]

[4, 8, 7, 7, 7, 3, 5, 5, 2, 3, 6, 7, 5]
のように隣の数同士を足して新しいリストを作る操作を
一行でさくっと書きたいのですがどんな書き方をすればよいでしょうか?

483 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 08:07:06 ]
リストの内包表記

これでググレばおk

484 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 08:14:02 ]
[e + L[i + 1] for i, e in enumerate(L) if i < len(L) - 1]

485 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 08:17:57 ]
[e + L[i] for i, e in enumerate(L[1:])

486 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 08:33:01 ]
[a[i] + a[i+1] for i in xrange(len(a)-1)]



487 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 08:36:12 ]
>>486
それが一番まっとうだよな

488 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 09:31:05 ]
一旦 a とか e に入れないといけないのですね
[e + [1, 3, 5, 2, 5, 2, 1, 4, 1, 1, 2, 4, 3, 2][i] for i, e in enumerate([1, 3, 5, 2, 5, 2, 1, 4, 1, 1, 2, 4, 3, 2][1:])]

489 名前:デフォルトの名無しさん [2009/02/28(土) 09:50:52 ]
Mercurial って Python で書かれていたのか・・・・
俺みたいな Subversion儲かつ Python儲
はどうすればいいの?死ぬの?

490 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 09:54:48 ]
>>489
1.バージョン管理は枯れてないとだめだよとか言っとけばおk
2.ファイル名に日本語混じったのを扱うようにして、subversionじゃないとだめなんだと言い出す
3.死ね

491 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 10:18:03 ]
fooってなんですか?

492 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 10:20:17 ]
hogeってなんですか?

493 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 10:52:12 ]
>>482

>>> [4, 8, 7, 7, 7, 3, 5, 5, 2, 3, 6, 7, 5]
[4, 8, 7, 7, 7, 3, 5, 5, 2, 3, 6, 7, 5]
>>> map(lambda(x,y):x+y,zip(_,_[1:]))
[12, 15, 14, 14, 10, 8, 10, 7, 5, 9, 13, 12]
>>> map(lambda(x,y):x+y,zip(_,_[1:]))
[27, 29, 28, 24, 18, 18, 17, 12, 14, 22, 25]
・・・・・・・・・・・・・・
[9856, 8802]
>>> map(lambda(x,y):x+y,zip(_,_[1:]))
[18658]

494 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 11:01:33 ]
>>> a = [1, 3, 5, 2, 5, 2, 1, 4, 1, 1, 2, 4, 3, 2]
>>> [i+j for i, j in zip(a, a[1:])]
[4, 8, 7, 7, 7, 3, 5, 5, 2, 3, 6, 7, 5]
>>> from operator import add
>>> map(add, a[:-1], a[1:])
[4, 8, 7, 7, 7, 3, 5, 5, 2, 3, 6, 7, 5]

495 名前:スルー力が足りない! mailto:sage [2009/02/28(土) 14:29:33 ]
本人を装った荒らし乙

496 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 19:14:27 ]
bzrもPythonだけどな。



497 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 19:41:03 ]
Python 2.5 で sqlite3 を使ってるのですが
date 型ってないのですか?
integer に time.time() を代入したりして
使えってことなんでしょうか?

498 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 19:46:47 ]
よくしらんけどSQLiteってデータ全部テキスト型なんじゃなかったっけ

499 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:04:34 ]
>>497
ライブラリリファレンスの「13.13.4 SQLite と Python の型」

500 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:30:09 ]
図星だったwww

501 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:45:36 ]
>>499
ありがとうございます

sqlite3 モジュールには二つの Python 標準型 datetime.date と
datetime.datetime に対するデフォルト適合関数があります。
いま datetime.datetime オブジェクトを ISO 表現でなく
Unix タイムスタンプとして格納したいとしましょう。

import sqlite3
import datetime, time
def adapt_datetime(ts):
  return time.mktime(ts.timetuple())
sqlite3.register_adapter(datetime.datetime, adapt_datetime)
con = sqlite3.connect(":memory:")
cur = con.cursor()
now = datetime.datetime.now()
cur.execute("select ?", (now,))
print cur.fetchone()[0]
これは sqlite3 の real になっているということですね

502 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:48:50 ]
sqlite3.register_adapter(datetime.datetime, lambda s: int(time.mktime(s.timetuple()) * 1000))
これでいいのかな

503 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 23:30:11 ]
PythonでCGIを作りたいんですけど
質問とかはこのスレでいいんですか?

504 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 23:33:58 ]
pc11.2ch.net/test/read.cgi/php/1163513344/
こういうスレがある

505 名前:デフォルトの名無しさん [2009/03/01(日) 00:31:15 ]
>>504
ここじゃダメなのか
thx! 逝ってくる

506 名前:デフォルトの名無しさん [2009/03/01(日) 10:49:52 ]
# -*- coding: utf-8 -*-
print u'ABな'.isalnum()

というのなんですが、Emacsのpy-execute-***で実行するとはUnicodeDecodeErrorがでて、
シェルで実行するとTrueになってしまいます。
なにがまずいんでしょうか?



507 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 15:32:27 ]
coding.derkeiler.com/Archive/Python/comp.lang.python/2008-04/msg02501.html
codepad.org/MVV0u4pQ

py-execute-*** 使ったことないからよくわからんけど
ユニコードに対応してないような…少なくともIDLEは対応してない…

508 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 17:14:55 ]
>>507
ありがとうございます
ですが、そのページは見たところユニコード文字列の表示の件な気がします
IDLEの場合は対応してないというより、
ユニコードをデフォルトの文字コードでエンコードしようとするから文字化けするという話のはずです


>>506
は別にユニコード文字列の表示はしないですし、たぶん関係ないでしょう
一応print len(u'そうだね')なんかだとはちゃんと動くようでしたし


509 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 20:22:33 ]
UnicodeDecodeErrorはバイト列(str)から文字列(unicode)への変換時のエラーだから、
coding: utf-8 としてるけど実は utf-8 になってない、とか
実際に utf-8 だけど別の文字コードでデコード(str→unicode変換)しようとしている、とか
その手の問題だと思われ。

表示のときに起こるのはエンコード(unicode→str変換)のエラー。


510 名前:デフォルトの名無しさん [2009/03/01(日) 21:26:31 ]
蕃爽麗茶

511 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 22:04:21 ]
さげ

512 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 23:35:58 ]
PyScripter で、日本語が文字化けするのですが対処法はありますか?

UTF−8に設定しているのでu"ほげ"は正常にほげと出力されますが、
”ほげ”は文字化けしてしまいます。

開発環境は
pyscripterの1.9.9.3
Python2.6
です。よろしくおねがいします

513 名前:デフォルトの名無しさん [2009/03/01(日) 23:37:03 ]
'ほげ'.decode('utf-8')

514 名前:デフォルトの名無しさん [2009/03/02(月) 22:49:21 ]
pythonのRADツールってなにがありますか?

あと、「みんなのpython」を読んである程度、オンラインリファレンスを呼みながら、pythonプロ倉ミンgうができるようになったのですが
頭の中で言語仕様どうもまとまっていません、ある程度pythonのわかるものが言語仕様をコンパクトに確かめられる本はありませんか?




515 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 22:53:10 ]
オンラインリファレンスじゃだめなんか

516 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 23:11:02 ]
オンラインリファレンスの日本語はどうしても、肌に合わなくて。
あとできればアナログ媒体で読みたいのです。




517 名前:デフォルトの名無しさん [2009/03/02(月) 23:24:35 ]
英語のオンラインリファレンスじゃだめなんか

518 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 00:15:47 ]
すいません英語はみょめないんです

519 名前:517 mailto:sage [2009/03/03(火) 00:30:32 ]
>>518
は僕じゃないですけど。
同じく英語が読めないんです。クイックリファレンス目的だったら、通読するようなものでもないので英語でがんばって読むというのもありなんですが。
どうしても、通読することを考えた場合、日本語の方が良いですね。

「Pythonチュートリアル」略してパイチューはその目的としてはどうなんでしょうか?

520 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 00:48:00 ]
英語のオンラインリファレンスを印刷したものじゃ(ry

521 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 00:52:28 ]
日本語の場合‥はオライリーの邦訳が一番マトモな本なので買っておいて、
不足している場合はpython.orgの2.6 or 3.0のドキュメントを見る様にしてる。

あとはGoogleGroupのlang.pythonグループの記事を読む様にする、
日本国内のMLを購読する様にするとか‥色々あるよ

522 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 01:14:19 ]
あそこのWikiに書き込んでいけばみんなHappy

523 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 10:00:16 ]
あそこのWikiに書き込んでいけばみんなHappy
あそこのWikiに書き込んでいけばみんなHappy
あそこのWikiに書き込んでいけばみんなHappy
あそこのWikiに書き込んでいけばみんなHappy
あそこのWikiに書き込んでいけばみんなHappy
あそこのWikiに書き込んでいけばみんなHappy
あそこのWikiに書き込んでいけばみんなHappy

524 名前:デフォルトの名無しさん [2009/03/04(水) 16:03:53 ]
したらばの掲示板にurllib2をつかってつなごうとしています。
最初に試したときは、まともな結果が返ってきたのですが
二回目以降は以下のようなエラーが返ってきます。
どうにかして二回目以降もつなげるようにしたいのですが、どうすればいいでしょうか?
Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib2
>>> url = "jbbs.livedoor.jp/sports/35590/"
>>> r = urllib2.urlopen(url)
>>> r.code,r.msg
(200, 'OK')
>>> print r.info()
Date: Wed, 04 Mar 2009 06:53:41 GMT
Server: Apache/1.3.41 (Unix) mod_perl/1.30
Content-Type: text/html
Connection: close
Transfer-Encoding: chunked
>>> print r.read()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python25\lib\socket.py", line 291, in read
data = self._sock.recv(recv_size)
File "C:\Python25\lib\httplib.py", line 509, in read
return self._read_chunked(amt)
File "C:\Python25\lib\httplib.py", line 544, in _read_chunked
line = self.fp.readline()
File "C:\Python25\lib\socket.py", line 331, in readline
data = recv(1)
socket.error: (10054, 'Connection reset by peer')

525 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 17:47:35 ]
>>524
>>> import urllib2
>>> urllib2.open('jbbs.livedoor.jp/sports/35590/').read()
(省略)
>>> urllib2.open('jbbs.livedoor.jp/sports/35590/').read()
(省略)

何回かやってみたが普通に受信できてるみたいだけど

単にopen()とread()の間がある程度開くと、タイムアウト扱いで
切られるんような設定になってんじゃないの鯖側が

526 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 19:58:59 ]
>>525
本当にありがとうございましm(_ _)m
なんとかなりました。



527 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 00:26:07 ]
やっぱりだめでした、連続投稿しようとしたら制限かけられてしまいました。

528 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 10:31:05 ]
連続投稿って掲示板側で制限かけられてるんじゃないのか

529 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 11:36:28 ]
PyScripterで開発していますが、
コードの横に行数を表示させる設定はどこでできますか?

530 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 13:46:34 ]
ツール->オプション->エディタオプション->「表示」タブの「行番号の表示」

531 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 14:11:49 ]
>>530 できましたありがとー☆

532 名前:デフォルトの名無しさん [2009/03/05(木) 15:43:51 ]
>>522
喧嘩売ってんのかテメエ!

533 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 15:47:14 ]
def foo():
print 何かの方法

で、自身の関数名(この場合はfoo)を取得する方法ってありますか?

534 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 16:08:17 ]
>>> import sys
>>> def foo():
...      print sys._getframe().f_code.co_name
...
>>> foo()
foo

535 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 16:33:05 ]
>>534
すごい、こんなにさっくり返答いただけるとは。。。
sys._getframe().f_code.co_name
・・・恐らくここで聞かなければ一生知る機会もなかったと思います。

ありがとうございました。

ググってもリファレンスを見ても不明で、どう調べるかの段階から悩んでいたところです。
(少なくとも↓のリファレンスや逆引きPythonからはどう見ても解を得られませんでした)

www.python.jp/doc/2.4/lib/module-sys.html
cuttingbear.qee.jp/python/

このようなかゆい所に手の届く情報源が、ありましたらご教授頂けますと幸いです。


536 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 17:23:56 ]
クックブックとか
ttp://code.activestate.com/recipes/langs/python/



537 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 17:43:20 ]
>>535
ググり方を工夫するといいかも。
www.google.co.jp/search?q=python+getting+function+name+within+function

538 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 21:04:34 ]
>>536
>>537
拝見しました、なるほど、Python情報はまだまだ英語サイトの参照が
欠かせないんですね。

今後の日本での普及に期待&何らかの形で貢献できればと思います。
ありがとうございました。

539 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 22:29:37 ]
自分自身の型はどうすれば分かりますか?

540 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 22:34:10 ]
type

541 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 23:34:29 ]
ありがとうございます
っていうか
やりたかったことはちょっと違ってたんです
yaml で型情報を含めて出力出来ないかと思ったのですが
pickle で出来ることが分かりました


542 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 06:09:31 ]
zipfileでzipを作れると思いますが
パスワード付きにすることは出来ますか?

543 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 06:40:28 ]
MeCabのPythonバインディングのインストール方法を教えてください。
>setup.py install
running install
running build
running build_py
running build_ext
building '_MeCab' extension
c:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:unrecognized /LIBPATH:option /LIBPATH:`--libs-only-L` /LIBPAT
H:C:\Python26\libs /LIBPATH:C:\Python26\PCbuild unrecognized.lib option.lib `--libs-only-l`.lib /EXPORT:init_MeCab build\temp.win32-2.6\Release\MeCab_wrap.obj /
OUT:build\lib.win32-2.6\_MeCab.pyd /IMPLIB:build\temp.win32-2.6\Release\_MeCab.lib /MANIFESTFILE:build\temp.win32-2.6\Release\_MeCab.pyd.manifest
LINK : fatal error LNK1181: 入力ファイル 'unrecognized.lib' を開けません。
error: command '"c:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\link.exe"'
failed with exit status 1181

と出ます。

544 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 10:02:23 ]
Rubyを使いなさい。

545 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 21:30:40 ]
ruby厨は他の言語もいっぱい使ってみなさい

546 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 22:16:54 ]
SQLiteの文文字コードでつまずいています。
変数を経由すると満足に書き込めなくて困っています。
どなたかたすけてくだちぃ。

# -*- coding: utf-8 -*-

import sqlite3

db = sqlite3.connect('hogehoge.db')
db.execute('create table tablehoge(val1, val2)')

db.execute("insert into tablehoge values ('ふが1', 'おっぱ1')")
v = (u'ふが2'.encode('utf-8'), u'おっぱ2'.encode('utf-8'))
db.execute("insert into tablehoge values " + str(v))
db.commit()

a = db.execute('select * from tablehoge')
for i in a:
print i

db.close()

とすると、
>>> (u'\u3075\u304c1', u'\u304a\u3063\u30711')
(u'\\xe3\\x81\\xb5\\xe3\\x81\\x8c2', u'\\xe3\\x81\\x8a\\xe3\\x81\\xa3\\xe3\\x81\\xb12')
と表示されます。

どうすれば、変数を解した(しかも一旦ユニコード化した)文字列を
SqLiteに書き込めるのでしょうか。



547 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 23:11:47 ]
db.execute("insert into tablehoge values (?,?)", v)

548 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 23:16:57 ]
>>547
ありがとう。
その使い方が正当だったのですね!

549 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 23:37:14 ]
恥ぱいは文字コード変換についてまったく書いていないクソ本ですね。

550 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 23:47:39 ]
db.execute("insert into tablehoge values (%s)" % ','.join("'%s'" % s for s in v))
すげー無駄

551 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 00:15:15 ]
教えてください。Google App Engine上で簡単な採番を実現したいと考えています。
Oracleのsequenceのような自動採番の仕組みを見つけられなかったので、以下のようなコードを書いて採番することにしたのですが、コードをsyncronizedにする方法がわかりません。
ぶっちゃけJavaのように
syncronized{
   hoge()
}
とか、C#のように
lock(){
   hoge()
}
とか書きたいんですけど、Pythonでこれを実現するにはどうしたらいいんでしょうか?

from google.appengine.ext import db
class IdGenerator():
    def generate(self):            
        cursor = db.GqlQuery("SELECT * FROM IdModel")
        id = None
        if cursor.count() < 1:
            id = 0.0
            idModel = IdModel()
        else:
            idModel = cursor[0]
            id = idModel.id            
        id = id + 1.0
        idModel.id = id
        idModel.put()
        return id
class IdModel(db.Model):
    id = db.FloatProperty()

552 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 00:25:03 ]
db.run_in_transaction

553 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 00:26:55 ]
はやくしてください。

554 名前:551 mailto:sage [2009/03/07(土) 00:35:19 ]
>>552

ありがとうございます、まさに求めていたものでした!


555 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 00:47:20 ]
>>551
つttp://code.google.com/intl/ja/appengine/docs/python/datastore/functions.html#run_in_transaction
もう解決したみたいだけど
↓こっちも見ておいた方が良いです
ttp://sites.google.com/site/io/building-scalable-web-applications-with-google-app-engine


556 名前:551 mailto:sage [2009/03/07(土) 00:54:26 ]
>>555

ありがとうございます、ビデオも見せていただきます!
Pythonはじめてな上に慣れないDatastoreなので
悪戦苦闘してますw



557 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 01:06:21 ]
>>556
つttp://docs.google.com/Present?docid=dc3xqd3t_11g3pdqk3v

今は楽しい時期かもしれないけど
そのうちGAEに失望することになるよw

558 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 01:07:51 ]
>id = db.FloatProperty()
>id = id + 1.0
だれかここに突っ込めよ

559 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 02:09:37 ]
ディレクトリの名前が FooDir だとすると
内部の app.py (エントリーポイント) で

import FooDir とすると __init__.py が呼び出されますか?
FooDir.py とか見当たりませんでした…

560 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 06:56:14 ]
ttp://sites.google.com/site/docjpgaeo/tutorials/developing-and-installing-a-plugin
ttp://doc.gaeo.org/tutorials/developing-and-installing-plugins

561 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 09:48:13 ]
すみません…意味がわかりません

562 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 14:27:32 ]
普通は教えてもらってそれほど感動したなら、今度は自分が教える側に回ろうとか思うもんだけどな

1年半経って未だに質問するだけか

猿だな

答えて貰えなきゃ感謝してるはずのスレで罵詈雑言撒き散らして荒らすあたりが本当に猿

563 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 14:29:43 ]
www.boduch.ca/search/label/boduch
packages.python.org/boduch/module-boduch.type.html
apydia.ematia.de/

名前空間があるからこそ
ドキュメントの自動生成を範疇として自らの内に
捕らえられるのでしょうか?

でも __init__.py いうのが
いまいちよく理解できない…pythonムズイ…orz

564 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 16:24:51 ]
>>265-268

565 名前:デフォルトの名無しさん [2009/03/07(土) 16:29:26 ]
sys.path.append(os.path.dirname(__file__))
sys.path.append(os.path.join(os.path.dirname(__file__), 'application'))
plugins_root = os.path.join(os.path.dirname(__file__), 'plugins')
if os.path.exists(plugins_root):
plugins = os.listdir(plugins_root)
for plugin in plugins:
if not re.match('^__', plugin):
exec('from plugins import %s' % plugin)


566 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 19:16:47 ]
気象予報士って13歳でも受かるんだな



567 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 20:47:25 ]
確かにPythonの綺麗なインデント、コードスタイルには興味があるけどー
Rubyと比べると正直価値は無いと思うがなぁ。

ていうかSmalltalkと同じ発想でしかも低レベルなのが物凄く悲しい
俺みたいな凡人には推し量れない意味があると信じたい

568 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 21:11:25 ]
俺みたいな凡人には推し量れない意味があると信じたい

569 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 22:33:09 ]
インデント、コードスタイルで Python 選んだ訳じゃないからなぁ

570 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 00:44:19 ]
ぶっちゃけ、俺の書くコードの見た目はだいたい全部同じになる。(関数系は除いて)
ただ、モンティパイソン精神でこれ使ってる。

571 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 18:18:39 ]
Rubyと比べると正直価値は無いと思うがなぁ。
Rubyと比べると正直価値は無いと思うがなぁ。
Rubyと比べると正直価値は無いと思うがなぁ。

572 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 20:36:18 ]
ドキュメンテーションが半端なライブラリ等はプロジェクトに
持ち込むべきじゃないし、ドキュメンテーション活動が活発なところ
からチョイスした方が楽が出来る

573 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 22:18:32 ]
Python で抽象クラスを定義するにはどのように書けばよいでしょうか?

574 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 16:01:05 ]
import ImageTk as Itk とすると
ImportError: No module named ImageTk となるのですが、どうすればいいですか?

575 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 16:16:03 ]
PIL入れろ

576 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 16:25:38 ]
>>575 いけた!サンクス



577 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 20:57:03 ]
>>573
ttp://d.hatena.ne.jp/chrono-meter/20080327/p1
ttp://d.hatena.ne.jp/chrono-meter/20080327/p2

578 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:08:30 ]
タプルとかのコレクションを可変個引数に上手く渡すにはどうしたらいいです?
perlでふつうに&func(@array)みたいに。

579 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:09:50 ]
func(*array) かな

580 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:18:56 ]
func(**hash) かな

581 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:26:35 ]
普通に渡すならそれで良いんですけど、可変個引数を取る関数にタプルを上手く渡せないものかと。

(a, b, c) = get_tuple()
want_varg(a, b, c) # 可変個引数な関数

この時に一時変数 a, b, c を介さずに引数を渡せないものですかね?

582 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:28:50 ]
want_varg(*get_tuple())

583 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:34:18 ]
>582
それです!
ありがとうございます。

584 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 06:45:13 ]
目の前にあっても見えないことってあるんだな

585 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:39:53 ]
先生!教えてください。
WindowsでPython使う場合、ActivePythonのPythonどちらを使えばいいですか?
あと、2.6.1と3.0.1のどちらが良いですか?
初心者です。
よろしくお願いします。

586 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:43:42 ]
>>585
JythonかIronPythonのほうがいいよ



587 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:51:00 ]
>>585
公式の2.5.4オススメ
WindowsAPIやCOMを使うつもりがあるならActivePython
自ら進んで苦労したい物好きなら3.0

588 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:53:40 ]
なんで2.5系薦めるんだよ・・・・・・

>>586
はふざけてるんだろうけど

589 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:57:56 ]
まだ2.6に対応してないライブラリが多いから

590 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:27:12 ]
すんません、教えてください。Win32 python2.6.1です。

リストの要素をCSVに落としたいんだけど。

こんなデータ(リスト)を
["a1", "b2", "c3", "d4", "e5"]



こんな文字列(CSV形式)に変換
"a1,b2,c3,d4,e5"

にしたいんですけど、一発でできる関数ってありますか?

いや、forでまわして末尾にカンマつけてって、
そんで最後までやったら末尾のカンマを取るってのは、流石にちょっと野暮ったいと思ったので。

591 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:28:49 ]
L = ["a1", "b2", "c3", "d4", "e5"]
','.join(L)

592 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:29:48 ]
joinじゃだめ?

593 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:30:58 ]
>>591
>>592

おー、できた。トンクス。
やっぱ聞いてみるもんだ。半日悩んだよw

594 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 23:05:10 ]
CSVは読み書きできるモジュールがあるよ
ttp://www.python.jp/doc/release/lib/csv-examples.html

595 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 09:54:39 ]
>>594
トン。ダイレクトにCSVに書き込む奴もあるのか。
流石というか、誰もが使うようなものは標準としてあるもんなんだな。
車輪の再発明(しかも超低脳)してばっかだわ、俺。

596 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 04:52:34 ]
バイトコードってどうやって、つくるの?
python -O foo.pyでは、ダメなの?



597 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 12:37:00 ]
compileall, py_compile

598 名前:デフォルトの名無しさん [2009/03/13(金) 18:41:39 ]
>>> 'ほげ'.decode('cp932')
u'\u307b\u3052'
>>> ('%s' % 'ほげ').decode('cp932')
u'\u307b\u3052'
>>> (u'%s' % 'ほげ').decode('cp932')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0x82 in position 0: ordinal not in range(128)
>>> (u'%s' % 'ほげ'.decode('cp932'))
u'\u307b\u3052'
>>> ('%s' % 'ほげ'.decode('cp932'))
u'\u307b\u3052'
>>> ('%s' % u'ほげ').decode('cp932')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
>>> ('%s' % u'ほげ').encode('cp932')
'\x82\xd9\x82\xb0'
>>> (u'%s' % 'ほげ').encode('cp932')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0x82 in position 0: ordinal not in range(128)
>>> (u'%s' % u'ほげ').encode('cp932')
'\x82\xd9\x82\xb0'
>>> ('%s' % u'ほげ'.encode('cp932'))
'\x82\xd9\x82\xb0'
>>> ('%s' % u'ほげ')
u'\u307b\u3052'
>>> type('%s' % u'ほげ')
<type 'unicode'>
>>>

599 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 19:51:26 ]
py2exeで実行ファイルをつくってみたんですが、別のWindows 2000マシンで実行したらmsvcr90.dllを要求されました。
再配布パッケージを入れればよいようですが、そもそもこのDLLを要求されないようにすることはできないんでしょうか?

600 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 20:59:29 ]
python26.dllを/MTでビルドすれば可能かも知れないけど
拡張モジュールとFILE*でやりとりしてるとことかあるから多分無理じゃね

601 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 22:04:55 ]
ありがとうございます。
やっぱりダメですか。配布先にDLLのインストール要求できるならそもそもPythonインストールして貰えばいいし、py2exeって何なんでしょうね。
Vistaだと最初からDLL入ってるのかな。

602 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 00:09:47 ]
>>601
インストールしないまでもexeとセットでdll配るんじゃダメなんだっけ?
同一フォルダにあれば動きそうだけど。

603 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 00:20:36 ]
同一フォルダでOKな気が。

604 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 00:52:26 ]
漏れは setup.py の data_files に書き足してる
最近の atom の net book とかだと msvcpXX.dll
なんかも持っていかないと動かないみたいだし

605 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 07:14:24 ]
msvcpってC++ランタイムだからいらないと思うよ
どっちにしろmsvcのランタイムは配布条件が面倒くさい

606 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 09:17:20 ]
Microsoft.VC90.CRT.manifestを添付するのだけ気をつけて
exeと同一ファイルに配置するのはOKだから別に面倒くさくはないよ。



607 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 09:33:57 ]
ファイル->フォルダ

608 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 09:57:33 ]
>>605が言ってるのは方法じゃなくて条件(ライセンス)でしょ
詳しいこと忘れたけど

609 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 12:00:27 ]
>>605
無いと動かなかった
そのファイル一個だけ追加したら動いた
importしてるmoduleが要求してたの鴨試練

610 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 18:15:44 ]
調べてみたけどmsvcr90.dllをコピーして再配布していいかどうかわかりませんでした。
ユーザにMSのサイトからパッケージをダウンロードしてもらうなら問題なさそうですが、手間ですよね。残念。

611 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 18:15:52 ]
>>609
もし面倒じゃなければ依存関係調べてみれば?

612 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 18:19:34 ]
>>910
Microsoft Visual C++ 2008 Express Editionのredist.txtには
C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT
を手を加えずにディレクトリ名も変更しないでそのまま再頒布しろって書いてあると思う

613 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 19:05:10 ]
>>610
py2exeにsetupツールも入れてexe化して
MSのサイトからパッケージをダウンロードするように作っておけば?

614 名前:606 mailto:sage [2009/03/15(日) 01:19:17 ]
貴様らワシの言うことが信じられんと申すか……

615 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 02:48:09 ]
>>614
素直にRuby使った方がよろしいのではないでしょうか。

616 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 03:31:43 ]
Windows上でRubyとかまたご冗談を



617 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 06:14:42 ]
rubyのexerbで実行ファイルつくるとDLLなしで動作するよ。
しかもどうやってるのかLinux上でつくれたりする。

618 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 08:09:23 ]
>>617
あれは実行ファイルじゃないから
自己解凍圧縮ファイルみたいな発想

619 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 11:27:21 ]
>>618

620 名前:デフォルトの名無しさん [2009/03/16(月) 18:36:56 ]
pythonでTkinterを使用しGUIを勉強しています。
タブブラウザのようなインターフェイスにするにはどうすればいいでしょうか?

少しググったらmaya.cmdsをimportしてtablayoutうんぬん・・・というページがあったのですが、
mayaとか持ってませんし・・・

621 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:04:28 ]
www.not-enough.org/abe/manual/maya-python-aa07/layout2.html

このページにある画像みたいなインターフェイスを作りたいです

622 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:11:57 ]
>>621
tkinter.unpythonic.net/wiki/NoteBook

623 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:46:17 ]
>>622
ありがとうございます。
BWidgetはTcl/Tkの拡張用のようなのですが、Tcl/Tkも導入しなければなりませんか?
DLしたのはBWidget1.7.0でした

624 名前:デフォルトの名無しさん [2009/03/16(月) 21:17:35 ]
www.wxpython.org/screenshots.php

625 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 21:27:53 ]
>>623
つttp://tkinter.unpythonic.net/bwidget/

626 名前:>>620 >>621 >>623 mailto:sage [2009/03/17(火) 10:37:54 ]
解決というか>>622さんのおっしゃられた
tkinter.unpythonic.net/wiki/NoteBook
のサンプルが表示されるようになりました。

原因はBWidget1.7を入れるフォルダを間違えていました。
bwidgetフォルダとsetup.py tabdemo.py test.pyはpythonのLibフォルダへ
BWidget-1.7.0はpythonのtclフォルダに入れればよかったのですね。

レスくださったみなさまありがとうございました。



627 名前:>>626 mailto:sage [2009/03/17(火) 18:29:42 ]
連続で質問ばかりしてしまいすみません。

タブを選択(クリック)すると、そのGUIのページを表示するのにはどうすればいいでしょうか?
以下現在のコード(サンプルを修正したもの)です。

# -*- coding:UTF-8 -*-
import bwidget, Tkinter, sys, os

app = Tkinter.Tk(); app.wm_title("Tabs")
notebook = bwidget.NoteBook(app, arcradius=2); notebook.pack()

Tabs = ['a','b','c']

for i, f in enumerate(Tabs):

page = notebook.insert(Tkinter.END, i, text=f)
sw = bwidget.ScrolledWindow(page)
text = Tkinter.Text(sw)
#text.insert(Tkinter.END,f)
sw.setwidget(text)
sw.pack(side=Tkinter.TOP, fill=Tkinter.BOTH, expand=True)
notebook.compute_size()

app.mainloop()

aタブを選択したら、Frameを表示して、ボタンを配置して、といういつものGUI作成
(または、それをすでに定義してある関数)
を表示させたいのですが、bwidget.ScrolledWindow(page)ではもちろん表示されることはありません。

簡単なサンプルコードがのっているページや方法があれば教えてください。よろしくおねがいします。

628 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 00:14:29 ]
つttp://tkinter.unpythonic.net/wiki/BWidgets

629 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 00:39:57 ]
tabs = ['a', 'b', 'c']
for i, f in enumerate(tabs):
page = notebook.insert(Tkinter.END, i, text=f)
p = Tkinter.PanedWindow(page)
p.pack(fill='both', expand='yes')
b1 = Tkinter.Button(app, relief=Tkinter.SUNKEN,
text='Quit-' + str(i), command=app.destroy)
b1.pack()
p.add(b1)
b2 = Tkinter.Button(app, relief=Tkinter.SUNKEN,
text='Quit-' + f, command=app.destroy)
b2.pack()
p.add(b2)


630 名前:>>627 mailto:sage [2009/03/18(水) 12:31:55 ]
>>629
コードまでありがとうございます。
一応カタチにはなりました。ありがとうございました

631 名前:デフォルトの名無しさん [2009/03/18(水) 18:51:19 ]
質問です。
osはwindowsxp、
PythonのversionはPython 2.5.2を使っています。
subprocessモジュールを使ってコマンドプロンプトでの以下のような二行を実行したいと思っています。

C:\Python25>doskey mpc = "C:\Program Files\mplayerc_20080104_jpn_r3\mplayerc.exe" $*
C:\Python25>mpc test.wav

一行目は
subprocess.Popen('doskey mpc = \"C:\Program Files\mplayerc_20080104_jpn_r3\mplayerc.exe\" $*',shell = True)
で解決できるのですが
続けて実行するように二行目(mpc test.wav)をどう書けばいいのかがわかりません。
どなたかわかる方お願いしますm(_ _)m

632 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 18:55:43 ]
よくわからんがos.system()を使ってはどうかに?

633 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 12:12:49 ]
>>631
目的は、単にmplayerc.exeで音楽を鳴らしたいの?
ならdoskeyはいらんのじゃないか

import subprocess
mpc = 'C:/Program Files/mplayerc_20080104_jpn_r3/mplaeyrc.exe'
subprocess.call([mpc, 'test.wav'])

でできると思うが

634 名前:633 mailto:sage [2009/03/19(木) 12:24:38 ]
- mpc = 'C:/Program Files/mplayerc_20080104_jpn_r3/mplaeyrc.exe'
+ mpc = 'C:/Program Files/mplayerc_20080104_jpn_r3/mplayerc.exe'

typoってた
後は、test.wavのフルパスを指定していないので、そこがカレントディレクトリに
なっていることを確認汁


635 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 16:55:34 ]
popen2.popen3 使うのと subprocess 使うのはどっちがどのくらいいいの?

636 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 16:57:55 ]
今はsubprocess推奨で、他はレガシー扱いのはず



637 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 16:59:43 ]
subprocessでいいんじゃない?
キッチンシンク的だが、何かに不足することはない。

他の何かだと、ちょっとした設計変更で別の何かに書き換える必要が
あったりしていろいろ面倒なことが多い。

638 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 17:09:41 ]
ありがとう勉強になりました
ちょっとためしてみたけど subprocess.Popen のあと
stdout.read() すると非同期で動くんですね


639 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 23:35:23 ]
tupleを戻す関数を呼ぶとき
hoge, fuga = hage()
と書くのか
(hoge, fuga) = hage()
と書くので何か違いはありますか?
また
return hage, fuga
return (hage, fuga)
でも違いはありますか?

640 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 00:44:27 ]
まったく同じ。dis.disで調べろ

641 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 04:14:32 ]
ありがとうございます

642 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:48:50 ]
itertools.teeの使い道がいまいちよくわからないのですが
どういった際に有用なのでしょうか?

643 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 22:06:11 ]
>>642
俺も使ったことねー
_1, _2 = tee(xs)
_1の処理
_2の処理

みたいに逐次的に2-pass処理するんなら
結局リストと同様に全要素メモリに持っておかないといかんし、それならリストでいい
なんかもう少し高級な場合に必要なのだろうと思った

644 名前:643 mailto:sage [2009/03/20(金) 22:10:54 ]
あー多分あれだ、前後の要素みながらやる仕事にいいんじゃないか
全部は要素を持っておく必要が無いが、近傍のN個程度の要素が欲しい、という場合
tee使わんでも書けるけど使ったほうが綺麗に書けるのかもしれない

645 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 01:05:47 ]
>>643-644
回答ありがとうございました。

具体的な例が今のところ思いつきませんが、そういうような処理を要する時に使ってみたいと思います。

646 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:28:10 ]
python の正規表現で、以下のような条件をすべて満たす文字列はど
のように表現すればいいのでしょうか。

o 英小文字を一字以上含む
o 英大文字を一字以上含む
o 数字を一字以上含む
o ngword(case無視)をふくまない
o 全体で6文字以上である

ruby とか perl だと以下の正規表現でうまく動くみたいなのですが、
python の場合、どのように書けばいいのかがわかりません...

/(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?i)(?!.*ngword)^[ -~]{6,}$/



647 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:34:51 ]
一つの正規表現でやらなきゃならない理由は?

648 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:39:14 ]
自己解決しました。(?i) が正規表現全体に効いてしまうのですね。

>>> re.compile(r'(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?i)(?!.*ngword)^[ -~]{6,}$').search("eka2d______")
<_sre.SRE_Match object at 0xb7ef6870>

# 英大文字が含まれていないのにマッチ

ちょっと面倒ですが、以下のようにする事でうまく動くようになりました。

>>> re.compile(r'(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*[nN][gG][wW][oO][rR][dD])^[ -~]{6,}$').search("eka2d______")
>>> re.compile(r'(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*[nN][gG][wW][oO][rR][dD])^[ -~]{6,}$').search("eka2dA______")
<_sre.SRE_Match object at 0xb7f0cd78>


649 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:41:27 ]
>>647
レスありがとうございます。正規表現で書ければ、コード本体をいじらなくて
も済むという事情があったからです。

650 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 17:40:07 ]
Pygameのインストールが上手くいかないので教えてください
WindowsにPython2.5.4をいれ、pygame-1.8.1.win32-py2.5.msiでインストールして
>>> import pygame
と呼び出しているんですが、何度やっても
Trackback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named pygame
と出ます。
解決方法があれば教えてください

651 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 18:13:02 ]
>>650
site-packageはみたか?

652 名前:デフォルトの名無しさん [2009/03/22(日) 20:08:25 ]
>>651
site-packageを足がかりに調べてみたところ
TracLight入れたときに環境変数が色々と書き換えられてたのが原因でした
元に戻したところ無事に動きました
ありがとうございました

653 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:17:02 ]
質問させてください。
Pythonでsubstring(文字列の切り出し)
を実装するには、どのような方法で実装するのが一般的
なのでしょうか?

普通にstrNew = strVal.substring(1,5)
とかできるのかと思ってたらできなくてびっくりしてます。

654 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:20:54 ]
strVal[1:5+1]

655 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:44:04 ]
>>654

ありがとうございます。
末尾を指定せずに切り出すのもこれでいけるんですね。
助かりました。

656 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:15:59 ]
こういうの知ってないとググり様がない気がする



657 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:16:41 ]
と言っても .substring() が良いっていう意味じゃないからね

658 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:23:23 ]
>>655
このページが結構役に立つ
0xcc.net/blog/archives/000137.html

659 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:59:58 ]
>>656
Python 文字列 切り出し
でぐぐればいい

660 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 01:11:05 ]
>>659
おまい頭ええのう

661 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 02:32:02 ]
リファレンス読めば書いてあるじゃない

662 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 03:48:30 ]
リファレンスのどこにあるかを問題にしている訳で

663 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 10:59:15 ]
>>662
シーケンス型と文字列型のところみたら乗ってるだろ。
最近のヤツは検索以外の方法で情報を探す能力無いのか。

664 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 11:09:40 ]
Python初めて使うんなら、タダで読めて和訳もされてるチュートリアルぐらいは
ざっと読んどくといいぞ
序盤の「形式ばらないPythonの紹介」って所に文字列スライスの例も
出てくる
基本中の基本だからな

665 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 11:57:44 ]
もう少し読みやすくなってるといいよね
次のバージョンの日本語に期待

666 名前:デフォルトの名無しさん [2009/03/25(水) 14:08:40 ]
プロセスは動かしっぱなしで定期的にメモリを食う処理をしているんですが
Pythonで使わなくなったメモリはOSに返されて居るんでしょうか?
インタプリタがヒーブとして握ったままとか無いですか?
OSはWindows XPとLinuxです。インタプリタのバージョンは2.6です。



667 名前:デフォルトの名無しさん [2009/03/25(水) 23:59:16 ]
enthoughtのETS-3.2.0使えてる人いますか?
Enable-3.2.0のインストールで
/private/tmp/easy_install-OkiW1r/Enable-3.1.0/build/docs/html/.doctrees/index.doctree
が無いっておこられる…

668 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 20:51:49 ]
>>666
pure Python で、不必要なオブジェクトの参照を掴んだままだったらメモリは解放されない。
Javaとかと一緒。

669 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 00:37:36 ]
>>668 えーとdelすればいいのかな?

670 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 00:41:51 ]
>>669
それはやめといたほうがいい、やりたいというならよく調べてからだな

Noneでも入れとけばいい

671 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 01:00:34 ]
オブジェクトがGCで解放されるかどうかと「OSに返され」るかどうかは
イコールじゃないよ

Pythonは最終的にはlibcのmalloc()/free()を使っているから、どういう
戦略を採っているかはlibcの実装によるが、普通はOSにはいちいち返さないはずだ
解放された領域は、再確保時に使いまわせるようにプールされる

672 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 01:25:17 ]
バッファとかキャッシュみたいなもんだね
いちいちOSに伺い立ててたら遅いから
借りたものは死ぬまで返さない方針の方が速い

673 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 01:31:34 ]
Rubyかどっかのスレで似たこと聞いてたひといたけど
同じひとかな

674 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 17:06:48 ]
>>671
うん、ある程度はプールされる。
でも大幅にメモリが空いたらOSに返される。

675 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 18:40:09 ]
Windows上ではCPythonとIronPythonがあるけどどっちがいいんだ?
やれることに違いはあまりなさそうだが。

676 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 20:35:54 ]
普通はCPythonじゃねーか?

漏れの場合は仕事でJavaとかJythonもやるのでEclipse上であれこれソースをいじるし、
サーバーサイドも書くので互換性を意識してCPython使っている。

IronPythonはプライベートのお遊び用ってスタンスだけど。
普段の生活でWindowsしか触らないなら、どっちも違いはないかな。



677 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 23:10:38 ]
なるほど。Ironの方でないと実現できないってケースにぶち当たるまではCPythonをやっとくか。
日本語資料の豊富さでもCPythonが上手のようだし。

678 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 23:10:54 ]
IronPythonはお遊び専用

679 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 00:53:33 ]
IronPythonかなり遊べるけど、やっぱ遊び専用だな。
使えないという意味ではまったくない。

680 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 05:56:17 ]
遊びには使えるが
仕事には使えない

681 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 00:06:03 ]
620 :nobodyさん:2009/03/27(金) 23:54:31 ID:KMOu2qJC
「pygameでろくでなしブルース」
www.freepe.com/i.cgi?rokublues

プログラマーはあなたでお願いします。
あと、BGM(効果音はくにおから取ってほしい)製作出来る方を募集します。

参加は俺のドット絵のセンスを認めて頂いた場合だけで構いません。
誰も乗らないならそれまでだと受け止めます。

ただ、やるなら夢はでっかく、
最終的に、ネット経由の多人数プレイで、
学園対抗の乱闘騒ぎが出来るゲームにしたいなあ。

682 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 05:31:42 ]
>>681
死ね

683 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 05:42:18 ]
>>681
とりあえずサーバー用意してくれよ

684 名前:デフォルトの名無しさん [2009/03/29(日) 06:37:34 ]
pc11.2ch.net/test/read.cgi/php/1156612854/620
扇子無いから協力しない

685 名前:デフォルトの名無しさん [2009/03/29(日) 19:08:38 ]
Pythonしか知らないのですがメンバ変数とかのメンバとはどういうものでしょうか?

686 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 23:58:20 ]
ここいくとおしえてもらえるよ
pc12.2ch.net/test/read.cgi/tech/1235727504



687 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 10:35:18 ]
C/C++用語だろ

688 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 03:28:13 ]
win上で走らせるスクリプトで、ファイルを削除じゃなくてゴミ箱に
入れるようにしたいんだけどどうすればいい?

689 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 04:07:09 ]
>>688
Pythonのことは知らないが、Win32APIならSHFileOperation

690 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 18:10:05 ]
>>689
なるほど、Pythonでやるなら拡張モジュール用意しなくちゃだめか。
さんくす。

691 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 19:59:11 ]
>>690
標準ライブラリにある ctypes でできない?

692 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 04:37:22 ]
できるよ

693 名前:デフォルトの名無しさん [2009/04/02(木) 08:27:09 ]
おはようございます。
春からpythonで開発していくことになりましたが、全て英語で書いてるので全く理解できません。

日本語のマニュアルとか、本とかは出ていますか?

694 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 08:30:49 ]
>>693
若干バージョンが古いけど
www.python.jp/Zope/links/python_documents

ちなみに本はたくさんある

695 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 08:32:58 ]
>全て英語で書いてるので

理解してないのに良くかけるな

696 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 10:00:25 ]
ttp://www.amazon.co.jp/dp/4797353953




697 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 10:30:24 ]
英語の勉強も並行したほうがいいのでは。
喋れないのは仕方ないが、ドキュメントも読めないレベルだと
転職も難しいぞ。

698 名前:デフォルトの名無しさん [2009/04/02(木) 10:50:23 ]
ありがとうございます!

699 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 16:23:57 ]
日本語からやり直した方がいい

700 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 22:28:22 ]
>>693
Python やめた方がいい。職業も変えたほうがいい。
もっと自分の能力にあった仕事を選んだ方が幸せだぞ。

701 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 22:44:45 ]
>>700
ありがとうございます!


702 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 01:35:31 ]
>>701
僕を師匠と呼びなさい

703 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 06:17:37 ]
>>702
し、ししょおおおおおおおッ!

704 名前:デフォルトの名無しさん mailto:  [2009/04/03(金) 18:06:18 ]
whileを使って、足し算をするソース教えて。
<条件>
・inputで計算の回数を入力する。

〜例〜
Input any number :3 //計算回数
Input any number :5 //1つ目
Input any number :6 //2つ目
Input any number :4 //3つ目
15

ってなヤツ。

705 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 18:13:04 ]
a=int(raw_input('Input any number :'))
b = 0
for i in xrange(a):
b+=int(raw_input('Input any number :'))
print(b)

706 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 18:15:45 ]
ごめんwhile使ってなかったわ



707 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 20:04:22 ]
a = int(raw_input('Input any number :'))
b = 0
i = 0
while i != a:
b += int(raw_input('Input any number :'))
i += 1
print b


708 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 23:59:29 ]
while i < a: の方が自然。


709 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 00:29:07 ]
a = []
while True:
  a.append(int(raw_input('Input any number:')))
  if len(a[1:]) == a[0]:
    break
print sum(a[1:])


710 名前:デフォルトの名無しさん mailto:  [2009/04/04(土) 16:08:43 ]
>>709
出来た。ありがとう。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<164KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef