Pythonのお勉強 Part20
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2007/08/17(金) 11:28:08http://pc11.2ch.net/test/read.cgi/tech/1181064980/
日本Pythonユーザ会
http://www.python.jp/
Python オフィシャルサイト
http://www.python.org/
FrontPage - Pythonのお勉強
http://python.rdy.jp/
<関連スレ>
Microsoft IronPython 1.0
http://pc11.2ch.net/test/read.cgi/tech/1157686822/
Python の宿題ここで答えます Part 1
http://pc11.2ch.net/test/read.cgi/tech/1153585095/
2ch検索: [python]
http://find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python
<参考サイト>
Python ドキュメント
http://www.python.jp/doc/release/
Dive Into Python
http://diveintopython.org/toc/
PEP(Python Enhancement Proposal
http://www.python.org/dev/peps/
0002デフォルトの名無しさん
2007/08/17(金) 11:28:39まだPythonに深入りしてない人向けの紹介記事。
Python 調査報告
http://cydn.cybozu.co.jp/files/python_survey_at_cydn.html
On Python
http://www.shido.info/py/
Python 講習会 資料
http://www.unixuser.org/~euske/doc/python/tutorial0917.html
<応用、コードサンプルなど>
プログラミング言語 Python のページ
http://ymasuda.jp/python/
以下、英語のサイト
Python snippets
http://sebsauvage.net/python/snyppets/
Python 201 -- (Slightly) Advanced Python Topics
http://www.rexx.com/~dkuhlman/python_201/python_201.html
ASPN Python Cookbook
http://aspn.activestate.com/ASPN/Cookbook/Python/
以上
0003デフォルトの名無しさん
2007/08/17(金) 14:24:12乙です。
0004デフォルトの名無しさん
2007/08/17(金) 16:02:44print unichr(reduce(lambda x,y: x|y, [1<<n for n in [0,3,4,6,9,10,11,14]]))
0005デフォルトの名無しさん
2007/08/17(金) 16:10:230006デフォルトの名無しさん
2007/08/17(金) 16:36:440007デフォルトの名無しさん
2007/08/17(金) 16:37:300008デフォルトの名無しさん
2007/08/18(土) 08:10:04ユニコードで(最下位桁を0桁目として)0, 3, 4, 6, 9, 10, 11, 14桁目のビットが立ってる文字
つまり0b0100111001011001 = 0x4E59が「乙」の文字。
0009デフォルトの名無しさん
2007/08/18(土) 14:21:26Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
0010デフォルトの名無しさん
2007/08/18(土) 17:47:35を再定義したい場合はどう書けばいいですか?
mmm.fff()で使うので、from mmm import fffでは
書き直しが面倒なんです。
0011デフォルトの名無しさん
2007/08/18(土) 17:49:52print "fff¥n"
mmm.fff = fff
でどうでしょう
0012デフォルトの名無しさん
2007/08/18(土) 17:51:04モジュールもクラスもインスタンスもこんな感じで上書きして動作変更できるけどuglyなのでやんない方がいいだろうね
0014デフォルトの名無しさん
2007/08/18(土) 20:26:22uglyって専門用語っぽくてかっこいいな
0015デフォルトの名無しさん
2007/08/19(日) 10:58:27Tkinter使ってウィンドウ出していて、Tkinterのmainloopでウィンドウ処理をさせている。
同時に別スレッドでソケット通信を行っており、handle_requestを行ってメッセージ受け取り待ちになっている。
ウィンドウが閉じられたときに別スレッドの通信待ちも同時に殺して、プログラムを終了させたい。
sys.exit()を試したが、これは自分自身のスレッドを殺すだけで、他のスレッドを殺すことは出来なかった。
001615
2007/08/19(日) 11:02:21タイムアウトの間隔で別スレッドが生存しているかフラグチェックあ出来るんですが。
0017デフォルトの名無しさん
2007/08/19(日) 12:41:50デーモンスレッドにすれば子スレッドを終了させることはできる。しかし、
タイミングによって終了時に例外が出たりするので、タイムアウトでフラグ
チェックなどの方法が取れるならその方がいいとは思う。
001815
2007/08/19(日) 13:06:11通信途中で強制的にスレッドが落とされたらどうなるかはこれから実験してみます。
0019デフォルトの名無しさん
2007/08/19(日) 15:12:13python3000はいつごろ出るんだい?
0020デフォルトの名無しさん
2007/08/19(日) 15:34:390021デフォルトの名無しさん
2007/08/19(日) 17:09:42「現在2007年。僕は君の何世代も前のおじいちゃんなんだけど、ちょっと頼みごとがあるよ。
今すぐネットで「python3000」ってググってみて。それらしきサイトを発見したら、pythonのマニュアル探して、
2007年8月19日の僕にメールで教えてくれないかな?そしたら、僕のPCに保存してある×××動画とか、
モザイク無しの○○○エロアニメを送るからさ!!じゃヨロシク!!」
お爺ちゃんまじウゼェ。993年も前にどうやってメウエルで超光化学分子デプレサー送信しなきゃなんないんだよ。
0022デフォルトの名無しさん
2007/08/19(日) 18:59:130023デフォルトの名無しさん
2007/08/19(日) 19:42:32よければソース見せてください
0024デフォルトの名無しさん
2007/08/19(日) 20:00:33つ http://www.shido.info/py/tkinter9.html
0025デフォルトの名無しさん
2007/08/19(日) 20:07:22キモオタやデブはPythonを使うな、ということか。。。orz。。。
0026デフォルトの名無しさん
2007/08/19(日) 20:08:530027デフォルトの名無しさん
2007/08/20(月) 02:43:19αが今月の終わりか来月の頭に出るらしい。
http://mail.python.org/pipermail/python-3000/2007-August/009416.html
予定によれば、正式版リリースはさらにその1年後、・・・
http://www.python.org/dev/peps/pep-3000/
ただその最中にpy2.6が出るので結構忙しそうな気もする、・・・
0028デフォルトの名無しさん
2007/08/20(月) 19:10:280029デフォルトの名無しさん
2007/08/20(月) 19:14:14>まだPythonに深入りしてない人向けの紹介記事。
ry
>On Python
>http://www.shido.info/py/
正直ねえよwwwwwwwwwwwwww
0030デフォルトの名無しさん
2007/08/21(火) 02:05:20たとえば、cmd_
003130
2007/08/21(火) 02:06:58親クラスの任意のメソッドをデコレートするbeautifulな書き方ってない?
たとえば、"cmd_"で始まるメソッドを全てとか。
今試しているのは、getattrとsetattrだけど。
class B(A):
0032デフォルトの名無しさん
2007/08/21(火) 03:54:55>>> def deco(f):
... def wrap(*v,**d):
... print 'decorated'
... return f(*v,**d)
... return wrap
...
>>> class A(object):
... def cmd_a(self):
... print 666
... def cmd_b(self):
... print 777
...
>>> def mytype(a,b,c):
... for cls in b:
... for attr in cls.__dict__:
... if attr.startswith('cmd_'):
... c[attr] = deco(cls.__dict__[attr])
... return type(a,b,c)
...
>>> class B(A):
... __metaclass__ = mytype
...
>>> B().cmd_a
<bound method B.wrap of <__main__.B object at 0x00CF9810>>
>>> B().cmd_a()
decorated
666
>>> B().cmd_b()
decorated
777
0033デフォルトの名無しさん
2007/08/21(火) 05:58:24003432
2007/08/21(火) 06:11:38__metaclass__に設定したものがcallableだと、
class文が終了した時点で、__metaclass__が3引数で呼ばれる。
最初の引数aがクラス名で、2番目bが親クラスのリスト、3番目cが関数の名前がキーで関数そのものが値になってる辞書。
で、普段はそれがtype(a,b,c)で呼ばれて、子クラスの名前に代入される。
で、そこでtypeをラップするような関数(上のmytype)をかいて、a,b,cを弄ると、普通の継承の過程を弄ることが出来る。
上の例でやってるのは、b(親クラスのリスト)のなか要素の属性attrについてイテレーションして、
attrが"cmd_"で始まってたらそれを用意しておいたデコレータでデコレートしたものをcに挿入するという操作。
(こうすることで、deco(A.__dict__[attr])という関数がBのクラス文の中で定義されたのと同等になる)
で、そのように変換したcを使ってtype(a,b,c)を呼ぶので、Aの"cmd_"で始まるメソッドがdecoでデコレートされたような
クラスが生成される。
>>33
自演ではない。
クソオタは否定できないかも知れない・・・
占拠はしていない。
0035デフォルトの名無しさん
2007/08/21(火) 07:17:590036デフォルトの名無しさん
2007/08/21(火) 08:57:13apt で psycopg インストールしてみたんだけど 2.4 用みたいで、同じエラーがでた。
環境は debian etch で python 2.5 でやろうとしてるんだけど 2.4 使うしかないんだろうか?
0037デフォルトの名無しさん
2007/08/21(火) 15:33:50簡易ランチャを作ろうとしているんですが
sys.popen等で起動すると、スクリプト自身が
終了待ちしてしまいます。
スレッドで走らせるのも、何か違うと思いますし
何か良い手立てはないですか?
0038デフォルトの名無しさん
2007/08/21(火) 16:08:15subprocess.Popenかos.spawn*
0040デフォルトの名無しさん
2007/08/21(火) 22:01:02aptじゃなく、手動で入れてみたら?
0041デフォルトの名無しさん
2007/08/22(水) 18:05:40http://groups.google.com/group/turbogears/browse_thread/thread/d1d2e416023e7033
0042デフォルトの名無しさん
2007/08/22(水) 18:27:55そんな1ヶ月以上前のネタを繰り返さなくても
0043デフォルトの名無しさん
2007/08/23(木) 03:54:260044デフォルトの名無しさん
2007/08/23(木) 07:47:34>>> def a():
... yield 1
... return
... yield 2
...
>>> for x in a():print x
...
1
>>>
0045デフォルトの名無しさん
2007/08/23(木) 08:02:14ならSyntax Error起こさないならOK
それとも標準記法のことかい?
なら到達不能コードがあるからNG
0046デフォルトの名無しさん
2007/08/23(木) 08:03:160047デフォルトの名無しさん
2007/08/23(木) 10:03:01その関数がが実行元のプログラムの関数を使うことはできますか?
Cからpython、pythonからCで作られた関数の呼び出しは載ってるのですが
往復してきたのはどうするのか載って無いんです
0048デフォルトの名無しさん
2007/08/23(木) 12:10:47Cで作った実行バイナリ単体の関数は他から利用することはできません。
その関数を切り出してライブラリ化すればPythonと実行元のプログラム
両方から使うようにすることができます。
こういう意味?
0049デフォルトの名無しさん
2007/08/23(木) 12:41:26http://catrice.blog92.fc2.com/blog-entry-1289.html
噂ページのサンプル
http://download777.blog92.fc2.com/blog-entry-583.html
0050デフォルトの名無しさん
2007/08/23(木) 12:59:41そんな感じです。ライブラリ化だとマルチプラットフォーに影響あるからpythonを呼ぶしかないんですね・・・
gameのスクリプトを作れるかなーと思ったのですが
0051デフォルトの名無しさん
2007/08/23(木) 16:29:06こういうことじゃないの?
http://www.python.jp/doc/nightly/ext/extending-with-embedding.html
0052デフォルトの名無しさん
2007/08/23(木) 18:32:55あーこれはできそうですね・・・ありがとうございます
0053デフォルトの名無しさん
2007/08/25(土) 14:16:09PILのマニュアルにはそのような記述がなかったので、皆様のお智慧を拝借したいです
0054デフォルトの名無しさん
2007/08/25(土) 19:10:46PNG はわからないけど、JPEG ならこれで
from PIL import Image
img = Image.open(JPEG_FILE)
print img.app['COM']
コメントは参照できる。ただ書き込みはできない(と思う)。
可能ならばプラグインを書いてみては?
0055デフォルトの名無しさん
2007/08/25(土) 21:19:36ありますか。
以下のような仕様のものが(あれば)欲しいです。
・元となる文字列はunicodeとする
・&や< > や引用符のようなヤバげなものは当然置き換える
・目的エンコーディングでカバーできない文字はなるべく実体参照で
置換える。実体参照が未定義の場合は数値文字参照で置き換える
0056デフォルトの名無しさん
2007/08/25(土) 22:19:46実体参照のテーブルは用意されてるので、後は自前で実装するのがよさげ。
import htmlentitydefs
def replace(s):
def f(n):
h = htmlentitydefs.codepoint2name
if n in h:
return "&%s;" % h[n]
elif n < 256:
return unichr(n)
else:
return "&%d;" % n
return "".join(f(ord(c)) for c in s)
0057デフォルトの名無しさん
2007/08/25(土) 22:23:20トンクス
考えてみるとフェールバックじみた処理になるのでえらい面倒かなと
思えてきました
UTF-8にするんなら無用な仕事ですし、ASCIIならまだ簡単ですが……
ちょっとどうするか考えて見ます
0058デフォルトの名無しさん
2007/08/25(土) 23:14:500059デフォルトの名無しさん
2007/08/25(土) 23:27:52すごい!!
じゃあ逆さにして地面に叩きつけたらどうなるんだろう!!!
知りたい!!!知りたい!!!
0060デフォルトの名無しさん
2007/08/25(土) 23:28:45ゆでたまご先生もびっくり!
0061デフォルトの名無しさん
2007/08/26(日) 00:02:550062デフォルトの名無しさん
2007/08/26(日) 01:53:040063デフォルトの名無しさん
2007/08/26(日) 06:39:280064デフォルトの名無しさん
2007/08/26(日) 07:41:430066デフォルトの名無しさん
2007/08/26(日) 12:13:52チャンスだぜえ
0067デフォルトの名無しさん
2007/08/26(日) 12:57:26( ・∀・) ワクワク
oノ∧つ⊂)
( ( ・∀・) ドキドキ
∪( ∪ ∪
と__)__)
0068デフォルトの名無しさん
2007/08/26(日) 21:34:580069デフォルトの名無しさん
2007/08/26(日) 21:40:040070デフォルトの名無しさん
2007/08/26(日) 21:53:21swigっていうの使えばいいんでしょうか?
0071デフォルトの名無しさん
2007/08/26(日) 22:01:47手書きでもswigでもboost.pythonでも好きに汁
0072デフォルトの名無しさん
2007/08/26(日) 22:22:14実行プライオリティが勝手に下げられてて困っています。
どうしたら良いのでしょうか? Pythonの話題じゃ無い気もしますが…
0073デフォルトの名無しさん
2007/08/26(日) 22:30:580074デフォルトの名無しさん
2007/08/26(日) 23:46:44pygameのタイマを使って一定時間間隔(1秒)である処理を実行させてます。
しばらく(数時間くらいだった気が)ほおって置くと、時間間隔が
バラバラと変動するようになってしまいます。
異常に気付いてウィンドウを前面に出すと、また正常に戻るんですが…
0075デフォルトの名無しさん
2007/08/26(日) 23:51:240076デフォルトの名無しさん
2007/08/27(月) 22:42:37プライオリティは見ていませんでした(爆
74の現象から、プライオリティが下がったに違いないと
推測していました(ええ加減ですいません。再現確認をする
機会が中々つくれないもので)。
Windowsのプロセス管理の基礎知識等を勉強してから
出直してきます…
0077デフォルトの名無しさん
2007/08/27(月) 23:17:540078デフォルトの名無しさん
2007/08/27(月) 23:38:540079デフォルトの名無しさん
2007/08/29(水) 16:44:19http://journal.mycom.co.jp/articles/2007/08/29/Python_habu/index.html
0080デフォルトの名無しさん
2007/08/29(水) 21:24:520081デフォルトの名無しさん
2007/08/30(木) 00:06:30http://www.liris.org/tech/program/habu/
python の人たちに言いたい。
いくらpythonだからといって気持ち悪い蛇の写真をトップページに載せないで。。。
開いた瞬間にキモくて閉じた。
マスコット重要。
0082デフォルトの名無しさん
2007/08/30(木) 00:20:30IronPython本の表紙の鉄の蛇っぽいのも駄目な人多いかね?
後は蛇関係ないけど初めてのPythonの表紙のねずみとか
0083デフォルトの名無しさん
2007/08/30(木) 00:31:20どうも蛇に食われる動物を載せるらしい。
0084デフォルトの名無しさん
2007/08/30(木) 00:34:14RubyとPerlは何か宝石っぽい。Shellは海っぽい。
Firefoxは可愛らしくて、Thunderbirdは何か人形っぽい。
うん。重要だ。Pythonも可愛いイメージキャラ作ればいいのに。
いや、可愛いとまでいかなくてもdaemon君とかopenbsdのトゲ野郎くらいの愛嬌を・・・
0085デフォルトの名無しさん
2007/08/30(木) 00:35:040086デフォルトの名無しさん
2007/08/30(木) 00:39:47これか。キモイなw
http://www.amazon.co.jp/dp/479733939X
みんPyは結構普通だったよなーと思って見返してみたら・・・蛇がいるんだね。
ぶどう(マスカット)だと思ってた。。。
0087デフォルトの名無しさん
2007/08/30(木) 00:41:00玄人志向っぽく
0088デフォルトの名無しさん
2007/08/30(木) 00:45:300089デフォルトの名無しさん
2007/08/30(木) 01:16:360090デフォルトの名無しさん
2007/08/30(木) 01:33:190091デフォルトの名無しさん
2007/08/30(木) 03:01:39蛇かわいいじゃん
0092デフォルトの名無しさん
2007/08/30(木) 09:12:25本人乙。
0093デフォルトの名無しさん
2007/08/30(木) 09:32:070094デフォルトの名無しさん
2007/08/30(木) 12:25:000095デフォルトの名無しさん
2007/08/30(木) 13:36:570096デフォルトの名無しさん
2007/08/30(木) 14:00:09Zope関係者ウザい.
0097デフォルトの名無しさん
2007/08/30(木) 17:01:02いろいろ便利なのはわかった.
だけど順々にピクセルを見て,その平均値をとったり,
そういうことをやりたいんだけど,
ピクセルごとの色情報(?)を受け取る関数はどれですか?
0098デフォルトの名無しさん
2007/08/30(木) 17:06:17009997
2007/08/30(木) 17:09:34試してみたらできました
0100デフォルトの名無しさん
2007/08/30(木) 17:14:24ニヤニヤwwwwww
0101デフォルトの名無しさん
2007/08/30(木) 19:26:09どれどれ、まぁ、蛇くらい大丈夫だろう、と思って見たが、
これはキモイwww
トグロ巻きすぎw
0102デフォルトの名無しさん
2007/08/30(木) 19:40:13一見してかっけえええええええと思っちゃった俺はマイノリティだったのかも知れん
そして>>81のサイト画像小さくなってるね
0103デフォルトの名無しさん
2007/08/30(木) 19:59:300104デフォルトの名無しさん
2007/08/30(木) 20:30:07蛇というより、寄生虫にみえた…
0105デフォルトの名無しさん
2007/08/30(木) 20:43:55http://www.amazon.co.jp/s?ie=UTF8&search-type=ss&index=books-us&_encoding=UTF8&field-author=Francesco%20Tehrani&page=1
イメージキャラは、もうコイツでいいじゃね。
愛称は「デコスケ」な。
0106デフォルトの名無しさん
2007/08/30(木) 21:02:31もうPythonたんでいいんじゃね?
0107デフォルトの名無しさん
2007/08/30(木) 21:04:52No Starch Press Home Page
http://nostarch.com/frameset.php?startat=python
コレか…目次を見る限りだと悪くはなさそうだけど、
このページだと発売が2008年の2月になってるな…
0108デフォルトの名無しさん
2007/08/30(木) 21:05:350109デフォルトの名無しさん
2007/08/30(木) 21:46:220110デフォルトの名無しさん
2007/08/30(木) 23:34:590111デフォルトの名無しさん
2007/08/30(木) 23:44:35あーやっぱpythonから連想するのはキッチリしてそうなメガネ女子かー。
0112デフォルトの名無しさん
2007/08/31(金) 00:13:270113デフォルトの名無しさん
2007/08/31(金) 02:35:210114デフォルトの名無しさん
2007/08/31(金) 17:06:12あの頃に戻りたいよ
0115デフォルトの名無しさん
2007/08/31(金) 17:34:28おまえは相変わらずうだつが上がらないな(´;ω;`)
0116デフォルトの名無しさん
2007/08/31(金) 20:07:38何、この糞スレ?
0117デフォルトの名無しさん
2007/08/31(金) 20:11:210118デフォルトの名無しさん
2007/08/31(金) 22:17:54while b:はどういう意味?
なんでwhile b==0:じゃないの?
0119デフォルトの名無しさん
2007/08/31(金) 22:33:05b が真と評価される間は、そのブロックを実行する。
b が 0 になると偽と評価される。
0120デフォルトの名無しさん
2007/08/31(金) 23:08:02while b==0:じゃ何も起こらないのか。バカだな俺。
リファレンスマニュアル7.2と5.10に書いてありました。
読み方から勉強します。ありがとう。
0121デフォルトの名無しさん
2007/09/01(土) 02:09:28http://python.org/download/releases/3.0/
0122デフォルトの名無しさん
2007/09/01(土) 08:31:170123デフォルトの名無しさん
2007/09/01(土) 11:49:070124デフォルトの名無しさん
2007/09/01(土) 12:25:21C#みたいだけど
0125デフォルトの名無しさん
2007/09/01(土) 13:05:25落ち着け。
b==0がTrueならwhileは無限ループになる。
b==0がFalseなら何も起きない。
リファレンスよりチュートリアルを先に読め。
0126デフォルトの名無しさん
2007/09/01(土) 13:33:13他の言語の経験があるならともかく
0127118
2007/09/01(土) 14:19:22if a<b:
a,b=b,a
while not b==0:
a,b = b,a % b
return a
print euclid(39,260)
当たり前なんですがnotをつけるとうまくいきました。でもb:のほうが分かりやすいですね。
チュートリアルはインスタント・ハッキング終わってから読むことにします。
0128デフォルトの名無しさん
2007/09/01(土) 14:23:140129デフォルトの名無しさん
2007/09/01(土) 19:54:310130デフォルトの名無しさん
2007/09/01(土) 20:12:430131デフォルトの名無しさん
2007/09/01(土) 22:51:590132デフォルトの名無しさん
2007/09/01(土) 22:56:410133デフォルトの名無しさん
2007/09/01(土) 23:39:14http://japan.zdnet.com/news/sec/story/0,2000056194,20355532,00.htm
0134デフォルトの名無しさん
2007/09/02(日) 00:39:140135デフォルトの名無しさん
2007/09/02(日) 03:27:41質問なんですが、
環境はpython2.5/Windows Vista/eclipse3.3 pydev1.3.8です。
以下のコードを実行するとeclipseではエラーになって、
コマンドプロンプトで実行するとエラーなしにチャント表示されるのですが、
何がおかしいでしょうか??
print u"あいうえお"
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)
#--*- encoding: shift-jis -*--
print "あいうえお"
print u"あいうえお"
0136デフォルトの名無しさん
2007/09/02(日) 13:04:21Python に慣れるまで Eclipse は使わないほうがいいよ。
本質と関係ない余計なところでハマる。
で、print, str(), write() などに Unicode 文字列を指定すると
暗黙的に 8 ビット文字列への変換が行われるんだけど、
Eclipse コンソールへは 'ascii' コーデックを使って Unicode 文字列を
変換しようとするので、そういうエラーが発生する。
(標準出力へは 'cp932' コーデックが使われるので「あいうえお」なら問題なし)
どうしても Eclipse を使いたければ、Lib/site-packages/sitecustomize.py に
import sys
sys.setdefaultencoding('cp932')
とか書けば動くんじゃないかと。
0137デフォルトの名無しさん
2007/09/02(日) 20:34:44すごい!初めて気づいた
はじパイはねずみだったな
0138デフォルトの名無しさん
2007/09/02(日) 21:56:50俺も初めて気がついた!
0139デフォルトの名無しさん
2007/09/02(日) 22:02:250140デフォルトの名無しさん
2007/09/02(日) 22:05:31パイソンは人間も食べるから、少なくとも
人間より小さい生き物なら何でも食べるから、
人間より小さい生き物がが表紙になってもおかしくないのに
小型動物のねずみとウサギだけが餌になってるっていうのは
人間が主に蛇にやる餌がねずみとかウサギだからだとおもう。
0141デフォルトの名無しさん
2007/09/02(日) 22:17:280142デフォルトの名無しさん
2007/09/02(日) 22:42:33レスありがとうございます。暗黙変換の考え方がわかりました。
sys.setdefaultencoding('cp932')をすると動くようになりました。
pyscripterとか色々IDEを試した結果、最後にeclipseに落ち着きました。
ただ、コマンドプロンプトで、
print sys.stdout.encoding, sys.getdefaultencoding()
を実行すると、
(cp932, ascii)
になって、eclipseで実行すると、
(None, None)
になるんですよね。これから考えると、stdoutのエンコーディングが違うのが
根本的な原因のような気もします(ディフォルトを上書きしてる?)。
この差はどこから生まれるんでしょうか。
0143デフォルトの名無しさん
2007/09/02(日) 22:55:59あと、pydevのフォルダにある、pydevd.pyで、
class EclipseStdout:
def __init__(self, args):
self._redirectTo = args
def write(self, s):
if type(s) is StringType:
self._redirectTo.write(s)
else:
self._redirectTo.write(s.encode('shift_jis'))
というのを書いて、下の方にあるexecfileの前で、stdoutを上書きすると
eclipseデバッグ時には上手く表示されるようになりました。
stdout=EclipseStdout()
execfile(file, globals, locals) #execute the script
eclipseの実行ボタンを押した時は、依然(ディフォルトエンコード設定しないと)きちんと
表示されません。javaから直接実行している感じがしてます。
0144デフォルトの名無しさん
2007/09/02(日) 23:15:57標準入出力が端末である場合(isatty()が真である場合)に限って
sys.stdin.encodingやらsys.stdout.encodingやらを設定している。
そうでなければ無設定(None)のままだ。
つまり、リダイレクトされていたりパイプに接続されていたりすればアウトだ。
eclipseから実行した場合も、端末であるとは見なされないのだろうよ。
0145デフォルトの名無しさん
2007/09/03(月) 00:05:19http://journal.mycom.co.jp/news/2007/09/02/002/index.html
0146デフォルトの名無しさん
2007/09/03(月) 01:07:10なるほどぉ。そういう作りなんですね。
ということは、eclipseのコンソールがキャラクタデバイスと
見なされていないからなんですね。
きれいに解決するには、eclipseコンソールがisatty()に真を
返すような実装になれば良いと。
0147デフォルトの名無しさん
2007/09/03(月) 01:11:39Eclipseのことはよくしらんが
Unixの場合はptyなどを用いて実現可能かもしらんが、
Winの場合は難しいだろう
そういう機構が無いしな
それに、Consoleのコードページを取得するのに、GetConsoleACP()のように
モロにWin32 ConsoleベッタリなAPIを用いているから
まあ無理だろう
0148デフォルトの名無しさん
2007/09/03(月) 13:21:56ここの住人のレベルまで達するには、やっぱり専門書買って勉強するんですかね。
それとも他の言語に慣れ親しんでいるので付属のhelpでも理解できるのかな。
0149デフォルトの名無しさん
2007/09/03(月) 13:42:21英語版の help だけで全て理解してしまう奴まで色々
0150デフォルトの名無しさん
2007/09/03(月) 14:56:04入門書も読まないで分かった気になっている厨房から
英語版のhelpを読んで分かった気になっている中に病まで色々
0151デフォルトの名無しさん
2007/09/03(月) 14:58:490152デフォルトの名無しさん
2007/09/03(月) 15:00:020153デフォルトの名無しさん
2007/09/03(月) 15:14:030154デフォルトの名無しさん
2007/09/03(月) 16:17:020155デフォルトの名無しさん
2007/09/03(月) 16:22:16それから、おっぱいは絶対出すなよ↓
0156デフォルトの名無しさん
2007/09/03(月) 16:35:31高に病乙.
0157デフォルトの名無しさん
2007/09/03(月) 16:50:22( ゚∀゚)
し J
| |
し ⌒J
_ _
( ゚∀゚ ) !
し J
| |
し ⌒J
0158デフォルトの名無しさん
2007/09/03(月) 17:07:26そうなのか?
そうなのか???
0159デフォルトの名無しさん
2007/09/03(月) 17:42:070160デフォルトの名無しさん
2007/09/03(月) 17:54:23もしくはうなぎ犬
0161デフォルトの名無しさん
2007/09/03(月) 18:28:370162デフォルトの名無しさん
2007/09/03(月) 19:31:07オヤジにとっては面白いぶんマシ
0163デフォルトの名無しさん
2007/09/03(月) 20:37:150164デフォルトの名無しさん
2007/09/03(月) 21:19:120165デフォルトの名無しさん
2007/09/03(月) 22:40:12お前らスルーですかそうですか。
0166デフォルトの名無しさん
2007/09/03(月) 22:42:420167デフォルトの名無しさん
2007/09/03(月) 22:54:24Mercurial は動いているような感じ・・・くらいです。
0168デフォルトの名無しさん
2007/09/03(月) 22:55:57実用に使うにはまだ早いし
0169デフォルトの名無しさん
2007/09/03(月) 23:42:02「パイチョン」なら間違いなく流行していたって教授が逝ってたし。
0170デフォルトの名無しさん
2007/09/03(月) 23:52:30その記事微妙だな。もうちょっと頑張って調べて書けよ、という感じだ。
0171デフォルトの名無しさん
2007/09/03(月) 23:52:370172デフォルトの名無しさん
2007/09/04(火) 00:06:430173デフォルトの名無しさん
2007/09/04(火) 00:15:560174デフォルトの名無しさん
2007/09/04(火) 00:23:33アセンブラを見習え。
0175デフォルトの名無しさん
2007/09/04(火) 00:36:020176デフォルトの名無しさん
2007/09/04(火) 02:16:19>>> map(ord, '12345')
<itertools.imap object at 0x7fee930c>
>>> list(map(ord, '12345'))
[49, 50, 51, 52, 53]
0177デフォルトの名無しさん
2007/09/04(火) 02:54:051ピクセル単位でインデントできるエディタとかあれば、深さ数百にもできるな。
しかもAAも作りやすいというおまけつきw
0178デフォルトの名無しさん
2007/09/04(火) 05:31:490179デフォルトの名無しさん
2007/09/04(火) 07:50:090180デフォルトの名無しさん
2007/09/04(火) 10:51:06そこまでいくと単にエディタのフォントをプロポーショナルに指定すれば済む気がするw
0181デフォルトの名無しさん
2007/09/04(火) 20:40:50>>> help(なんか)
がエラーになるので厳しい
うちのXPのせいじゃないよね?
0182デフォルトの名無しさん
2007/09/05(水) 06:26:580183デフォルトの名無しさん
2007/09/05(水) 15:03:41XPですが。
Python 3.0a1 (py3k:57844, Aug 31 2007, 16:54:27) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> help(print)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python30\lib\site.py", line 349, in __call__
import pydoc
File "C:\Python30\lib\pydoc.py", line 1849, in <module>
help = Helper(sys.stdin, sys.stdout)
File "C:\Python30\lib\pydoc.py", line 1670, in __init__
if dir and os.path.isdir(join(dir, 'lib')):
File "C:\Python30\lib\genericpath.py", line 41, in isdir
st = os.stat(s)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x8e in position 0: unexpected code byte
>>>
0184デフォルトの名無しさん
2007/09/05(水) 18:22:18output_fileに書き出したいのですが、改行が削除されないまま
(=input_fileと同じもの)が書き出されます。
Perlの場合はchompした各行をprintするだけでいいのですが、
うまくいきません。
よろしくお願いします。
#!/usr/bin/env/ python
# coding:utf-8
input_file = open("test.txt","r")
output_file = open("test_out.txt","w")
for line in input_file:
line.rstrip("n")
print line,
print >>output_file, line,
input_file.close()
output_file.close()
0185デフォルトの名無しさん
2007/09/05(水) 18:27:260186デフォルトの名無しさん
2007/09/05(水) 18:27:510187デフォルトの名無しさん
2007/09/05(水) 18:29:43Python 3.0a1 (py3k, Aug 31 2007, 20:36:26)
[GCC 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> help(print)
Help on built-in function print in module __builtin__:
print(...)
print(value, ..., file=None, sep=' ', end='\n')
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
0188デフォルトの名無しさん
2007/09/05(水) 18:31:53>>> map(print, [1,2,3,4,5])
<itertools.imap object at 0x7fe2148c>
>>> list(map(print, [1,2,3,4,5]))
1
2
3
4
5
[None, None, None, None, None]
0189デフォルトの名無しさん
2007/09/05(水) 18:33:28あと print >>output_file, line, だと間にホワイトスペースが挟まるから、
output_file.write(line) のほうがいい (意図してたことならすまん)
0190デフォルトの名無しさん
2007/09/05(水) 18:36:25普通じゃね?
0191デフォルトの名無しさん
2007/09/05(水) 18:36:57スペース、0、nを右トリムしてんの?
0192デフォルトの名無しさん
2007/09/05(水) 18:39:12ありがとう。本当に助かったよ。
こんな超基本的なミスに何時間も気付かなかったのが恥ずかしい。
>>189
丁寧なフォローありがとう。
output_file.write(line)の方に変更するよ。
PerlからPythonに変えたばかりなので、いろいろ世話になるかも
しれないけどよろしく。
0193デフォルトの名無しさん
2007/09/05(水) 18:54:480194デフォルトの名無しさん
2007/09/06(木) 02:19:08たしかに、第一引数の副作用を期待した書き方だと、mapと書いた時点ではmapされてない
みたいになって多少気持ち悪いかも・・・
しかしまあ、何でもイテレータ化するのが、今回の流行だからしょうがないかも・・・
0195デフォルトの名無しさん
2007/09/06(木) 09:07:40imap object を生のまま返されても分からねーよ、
対話モードなら気をきかせろ ウワァァァンヽ(`Д´)ノ
って意味だと思うのだが。
そもそも map に副作用を期待する(さらに値を返さない)のを渡すのは、
C++ クラスオブジェクトのポインタからアドレスを計算して
vtbl とパディングを暗黙に決め付けてアクセスするのと同じくらい悪いことだぞ。
0196デフォルトの名無しさん
2007/09/06(木) 10:24:45本質的でないところでアホな質問ばかりされ、時間を無駄につぶされそうwww
0197デフォルトの名無しさん
2007/09/06(木) 12:32:370198デフォルトの名無しさん
2007/09/06(木) 18:49:41このスレの空気です。
0199デフォルトの名無しさん
2007/09/06(木) 19:11:11C++でやってる人のほうが多そうだけど、
C++のコード、ポインタがいっぱいでこわいんだよなぁ・・・
でもPythonよりは速いだろうし。
0200デフォルトの名無しさん
2007/09/06(木) 19:13:580201デフォルトの名無しさん
2007/09/06(木) 21:58:530202デフォルトの名無しさん
2007/09/06(木) 22:31:590203デフォルトの名無しさん
2007/09/07(金) 00:49:230204デフォルトの名無しさん
2007/09/07(金) 00:49:43選ばなきゃな。
0205デフォルトの名無しさん
2007/09/07(金) 01:44:14意味的にというか使い方はおんなじ気がする・・・
作り方が違うのかな・・・
0206デフォルトの名無しさん
2007/09/07(金) 02:49:450207デフォルトの名無しさん
2007/09/07(金) 02:52:11チュートリアルの和訳か・・・
0208デフォルトの名無しさん
2007/09/07(金) 03:13:46あいかわらずキモイ表紙だな。
買う気沖ねー
0209デフォルトの名無しさん
2007/09/07(金) 03:42:12他にもっと売れそうなのあるんじゃねえかと思うわ
0210デフォルトの名無しさん
2007/09/07(金) 05:49:22ほー、これは結構売れるんジャマイカ。
パソコンの画面でえ読むのは願い下げだけど印刷するのはメンドウ、
紙媒体の薄い(=さっと読める)入門編があるならそれを買いたい、
という客層は相当数居る希ガス。
0211デフォルトの名無しさん
2007/09/07(金) 06:48:480212デフォルトの名無しさん
2007/09/07(金) 09:56:03本人乙w
タダで読める文章を書籍にして売れるのかねwwwwwwwwwwww
0213デフォルトの名無しさん
2007/09/07(金) 10:42:30早く宿題しろ
って言われたくなかったら、せめてCCとかDRM論争とか最近の話題は
理解しておこうよ
0214デフォルトの名無しさん
2007/09/07(金) 10:45:22>せめてCCとかDRM論争とか最近の話題
コモンズとか著作権管理に関係なく売れないだろww
だって無料で読めるんだからwww
0215デフォルトの名無しさん
2007/09/07(金) 10:49:49本人涙目(wwww
0216デフォルトの名無しさん
2007/09/07(金) 11:45:19これ以上不要。
いまさらチュートリアルの和訳本なんて何考えてるんだか。
そして1200という価格。著者タソの印税はどんだけ低いんだ。
ワーキングプアかよ(藁。
0217デフォルトの名無しさん
2007/09/07(金) 11:50:410218デフォルトの名無しさん
2007/09/07(金) 12:53:470219デフォルトの名無しさん
2007/09/07(金) 13:06:09CCとか言うなら翻訳したのをWebで公開しろよボケがWWWWW
0220デフォルトの名無しさん
2007/09/07(金) 13:16:24飽和とは言えないような・・・
言語作者のチュートリアルってことで喜ぶ人はいるのかもしれない
そりゃ既にこのスレ見てるような人は買わないだろうがw
0221デフォルトの名無しさん
2007/09/07(金) 13:23:12ここから先は有料です
いや有料でいいから出てくれると嬉しいな…
0222デフォルトの名無しさん
2007/09/07(金) 13:29:58>入門書で売れてたっぽいのってみんpyくらいじゃないか?
みんぱい以降売れた本がない、という事実を指して飽和と言わずになんと言おう?
>言語作者のチュートリアルってことで喜ぶ人はいるのかもしれない
これはそかも.
Webでも読める内容を金を払ってまで読みたいと思うかは分からないけど.
0223デフォルトの名無しさん
2007/09/07(金) 14:23:220224デフォルトの名無しさん
2007/09/07(金) 14:26:20> Webでも読める内容を金を払ってまで読みたいと思うかは分からないけど.
電車の中で読めるから、無料で読めるものでも買うことはあるよ。
この本に関しては自分はもういらないけど。
自分は「初めてのPython」は本を買ったよ。Webの内容とかなりかぶってたけど。
0225デフォルトの名無しさん
2007/09/07(金) 14:33:13付録も面白そうだから出たら立ち読みしてくるよ
この次はProgrammingPythonに期待。できれば夏目さん訳で
「ち」に濁点で「ぢ」とかちょっと引いた
0226デフォルトの名無しさん
2007/09/07(金) 15:25:44イカくさい...orz...
0227デフォルトの名無しさん
2007/09/07(金) 18:05:22本として売ってる内容をWebで公開するなんてありえないし。
個人的には残念だけど、まぁ仕方ないかなぁ、と。
0228デフォルトの名無しさん
2007/09/07(金) 18:16:57もう夏休みは終わったよ
0229デフォルトの名無しさん
2007/09/07(金) 18:17:37何か勘違いしているみたいだけれども
Webにあるやつとは別の訳者による新訳
ちなみに英語版の同様の書籍も出ているけれども
それで Python の本体にチュートリアルが付かなくなった
なんて事にはなっていない
0230デフォルトの名無しさん
2007/09/07(金) 18:22:130231デフォルトの名無しさん
2007/09/07(金) 19:06:42ウェブブラウザ(urlを指定してHPが表示するIEの原型みたいなもの)をpythonで作れますか?
もしできるなら、参考になるソースなどあるサイトを教えてくれませんか。
0232デフォルトの名無しさん
2007/09/07(金) 19:31:23wxPythonにwx.html.HtmlWindowとかいうクラスがあるよ
ttp://www.daniweb.com/code/snippet490.html
wxPythonについては自分でぐぐってね
0233デフォルトの名無しさん
2007/09/07(金) 19:54:37http://grail.sourceforge.net/
Grail is an extensible Internet browser.
Pythonでappletが作れるぞ…と夢見てた98年頃のオレ
0234デフォルトの名無しさん
2007/09/07(金) 20:00:10ごめんなさい自己レスです。Linux上で使うpythonでLinux上で動くプログラム。を書き落としました。
0235デフォルトの名無しさん
2007/09/07(金) 20:19:410236デフォルトの名無しさん
2007/09/07(金) 20:30:22目標ができました。助かります。
0237デフォルトの名無しさん
2007/09/07(金) 20:33:030238デフォルトの名無しさん
2007/09/07(金) 22:24:460239デフォルトの名無しさん
2007/09/07(金) 22:33:21FirefoxがPython乗せるので、他のメジャーブラウザがそれに追従すれば、、、
誰かがpython-pluginを各ブラウザ向けに作れば、、、
Jythonがもっと使えるようになれば、、、
0240デフォルトの名無しさん
2007/09/08(土) 03:53:54ライブラリ側で保存しておきたいデータってどこに保存しておけばいいんでしょか?
適当に Lib\site-packages 以下に保存しておいて大丈夫?
0241デフォルトの名無しさん
2007/09/08(土) 10:16:550242デフォルトの名無しさん
2007/09/08(土) 10:59:33モジュールでなくクラスとして実装して、データを保存するメソッドを作るべき。
0243デフォルトの名無しさん
2007/09/08(土) 13:24:150244デフォルトの名無しさん
2007/09/08(土) 14:02:29何でライブラリ側で保存したいデータが出てくるんだ?
0245デフォルトの名無しさん
2007/09/08(土) 14:49:33WindowsでのVBやDelhpiでは、ベテランの好意により入門者向けに解説した「メモ帳を作ってみよう」や「WebBrawserの初めの一歩」などのサイトをよく見かけますが、
Linuxのそれもpythonの日本語のページを探してもなかなか見つかりません。
英語ページは数行翻訳するうちにめまいがして頭痛がしてきます。
まだ、「変数」「配列」「マップ」「スライス」・・・基礎の基礎が重要なことは分かりますが、なにかプログラムの形が見えて保存したり読み込んだりしないと正直眠くなります。
Linuxといえば、サーバーをいじくるベテランの方々が大半だと思いますが、私のようにWindows Vistaに見切りをつけてLinuxに流れ込んでくるド素人が増えるかもしれません。
そうすると、当然デスクトップユースです。
正直Linuxのデスクトップ環境はこれからだと思います。
プログラム関係はpythonがとっつきやすいような気がしました。
ところで、Linux環境でのpython使いの皆さんは、どのようなIDEをお使いですか?
Linux環境では、優れたエディタがたくさんあるような気がしました。
私は、Kataを使ってみましたが、いいのかわるいのかまだ分かりません。
0246デフォルトの名無しさん
2007/09/08(土) 14:59:460247デフォルトの名無しさん
2007/09/08(土) 18:51:05VI/VIMの紹介ページを読みました。
上級者の使うエディタみたいですね。
pythonのお勉強レベルのド素人には敷居が高いと感じました。
有難うございました。
0248デフォルトの名無しさん
2007/09/08(土) 19:22:01エディタKateでpythonのプログラムを記述して
Kateの画面下半分にあるターミナルにソースを表示させたままファイルに保存したうえで実行させてみるのに毎回
$ python [ファイル名.py] と入力して実行させていますが
手入力しないで実行させることはできませんか。
ツールの「コンソールへ送る」ではないかとヘルプを読んでもうまくいきません。
0249デフォルトの名無しさん
2007/09/08(土) 19:45:01KDEスレ Part6
http://pc11.2ch.net/test/read.cgi/linux/1126775147/
0250240
2007/09/08(土) 19:57:17消えるからだめじゃん…と思ったけれども
保存しておきたいのは息の長いキャッシュだから大丈夫か…な
>>242
やっぱりそれが一番妥当かのう
>>244
ライブラリを利用するプログラム側で個別に作成すると重いので、
中央でまとめてキャッシュしておきたいデータがあるのです。
そもそも Linux だと Lib\site-packages に保存するのは、
パーミッションでダメじゃんと気付いた。
$HOME や %APPDATA% に保存する手もあるな。
というわけで、ありがとうございました。参考になりました。
0251デフォルトの名無しさん
2007/09/09(日) 01:17:07上級者とか素人とかくくる時点で向いてないよ
0252デフォルトの名無しさん
2007/09/09(日) 01:26:56ttp://www.manning.com/foord/
アーリーアクセス版。漏れはタダの第一章だけ読んでくるよ!
0253デフォルトの名無しさん
2007/09/09(日) 08:06:10いくらGUIやインストーラが良くなって簡単になったとは言え
Linux(PC-UNIX)の魅力は充実したCUIにあるしCUIを知った上でGUIを使えば
両方の良いところを使い分けることが出来、一層便利になるはず。
OS上でプログラミングするわけだから先ずはオペレーティング……あ!?
どうでもいっかw
0254デフォルトの名無しさん
2007/09/09(日) 08:36:25どちらも使ってないが
0255デフォルトの名無しさん
2007/09/09(日) 09:05:43>>254
そうnano?
0256デフォルトの名無しさん
2007/09/09(日) 10:02:11In[1]:= For[(m = 0; c=0), m <= 60*24, n = x /. FindRoot[x*360/(60*12) == Mod[x, 60]*360/60, {x, m, 0, 60*12}];
m = If[n >= m, (Print[IntegerPart[Round[n]/60], ":", Mod[Round[n], 60]]; n + 1), m + 1]]; c
0257デフォルトの名無しさん
2007/09/09(日) 11:15:17test.pyをDocumentsに作成し、
# -*- coding:utf-8 -*-
b="月のたまご"
print len(b)
と書き $ python test.py を実行すると 15と表示されます。
一文字減らすと3バイトずつ減ります。????
解説には2バイト文字だから 10になると書いてあります。
エディタを変えても、GNOMEでも同じ結果です。
何か設定が悪いのですか?
0258デフォルトの名無しさん
2007/09/09(日) 14:30:44UTF-8 は可変長の文字コードで、
ほとんどの日本語は1文字3バイトを使用する。
0259デフォルトの名無しさん
2007/09/09(日) 16:07:41ascii以外の文字列はプログラム内部ではunicodeで扱ったほうが良いと思う。
0260デフォルトの名無しさん
2007/09/09(日) 16:39:27× b="月のたまご"
○ b=u"月のたまご"
それじゃせっかく coding:utf-8 しても意味なし
また、u"" の付かないただの文字列に ascii 以外の文字を入れたいのなら
文字を直接入れずに \xhh 形式のエスケープシーケンスで入れた方が
ソースのエンコーディングに影響されないので良
ttp://www.python.jp/doc/release/ref/strings.html
0261デフォルトの名無しさん
2007/09/09(日) 16:55:15これで二日悶々としました。今夜は眠れます。
0262デフォルトの名無しさん
2007/09/09(日) 16:56:35cStringIOだと8bitに変換されてしまうんだねえ
こういうのってソース見るしかない?
0263デフォルトの名無しさん
2007/09/09(日) 16:58:170264デフォルトの名無しさん
2007/09/09(日) 17:38:29coding: utf-8する意味大有りじゃない?
もし宣言しなかったら、print '月のたまご' ってUTF-8で書けないし。
>>262
2.5のドキュメントに書いてあるよ。2.4にも似たようなこと書いてある。
> Unlike the memory files implemented by the StringIO module,
> those provided by this module are not able to accept Unicode
> strings that cannot be encoded as plain ASCII strings.
0265デフォルトの名無しさん
2007/09/09(日) 18:12:212バイト文字を入れたいんだろ?
utf-8 指定してどうするんだよ
b=u"月のたまご".encode("shift-jis")
とでもするか、260の言うように\xhh 形式のエスケープシーケンスで入れるか
行頭のソース・エンコード指定を shift-jis にでもしないと駄目だろ
0266デフォルトの名無しさん
2007/09/09(日) 21:21:06α1なら出たよ
finalはあと一年くらいかかる予定らしいよ
0267デフォルトの名無しさん
2007/09/10(月) 05:18:15一週間……。
0268デフォルトの名無しさん
2007/09/10(月) 12:46:180269デフォルトの名無しさん
2007/09/10(月) 17:50:57でもここは古典的な「Weblog」なので
リンクがあるだけでそこ自体に内容は無いけれど
0270デフォルトの名無しさん
2007/09/11(火) 06:11:28ユニコード文字列の長さも合いません。OSXだからでしょうか・・・orz
>>> ustr=u"日本語"
>>> print ustr
Traceback (most recent call last):
File "<stdin>", line 1, in ?
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-8: ordinal not in range(128)
>>> ustr=u"abcあいう"
>>> len(ustr)
12 ←本では12ではなく6になってる
0271デフォルトの名無しさん
2007/09/11(火) 11:55:12ありがとうございます
0272デフォルトの名無しさん
2007/09/11(火) 12:27:48teminal のシェルは何?
スクリプトをファイルに保存して実行したらどうなる?
0273デフォルトの名無しさん
2007/09/11(火) 12:37:13まず、pythonのバージョンは?
0274デフォルトの名無しさん
2007/09/11(火) 12:47:39http://www.ruby-lang.org/ja/
0275デフォルトの名無しさん
2007/09/11(火) 15:20:27コンソールでそれやると環境によってまちまちな結果になる
それを注記していないその本が入門書として不親切
気にするな
0276デフォルトの名無しさん
2007/09/11(火) 15:40:58http://dis.4chan.org/read/prog/1180084983/
あなたはどの段階?
0277デフォルトの名無しさん
2007/09/11(火) 15:49:130278デフォルトの名無しさん
2007/09/11(火) 16:23:31なんという予定調和!!!
0279デフォルトの名無しさん
2007/09/11(火) 18:18:50>それを注記していないその本が入門書として不親切
ちゃんと書いてあるよ
275の頭がおかしいだけ
気にするな
0280デフォルトの名無しさん
2007/09/11(火) 19:03:00とりあえず186ページまで読んでみるんだ
おもいっきり書いてあるから
0281デフォルトの名無しさん
2007/09/11(火) 19:06:48何でだろうね?>>作者様
0282デフォルトの名無しさん
2007/09/11(火) 19:08:39MacOSXなどの一部の環境では〜
とこれでもかっていうぐらいハッキリと書いてあるよな
何の確認も無しで 不親切扱いされた本は可哀想だなw
0283デフォルトの名無しさん
2007/09/11(火) 19:09:22楽しいからじゃね?
0284デフォルトの名無しさん
2007/09/11(火) 19:36:5822nd August 2007: Jython-2.2
http://jython.org/Project/news.html
Jython 2.2, the first production release of Jython in nearly six years, is now available
まずはめでたい。しかし、今どき2.2相当だもんなあ…。最低でも2.3がほしい。
0285デフォルトの名無しさん
2007/09/11(火) 19:47:400286270
2007/09/11(火) 20:14:29私のせいで荒れてしまったようで申しわけない
p168〜p188まで読んでネット漁りはしたのですが
encode()で解決しなくて環境変数いじるの躊躇して書き込みました
bash python2.44 OSX10.4.9でしたごめんなさい
>>272>>275
ファイルに保存して実行したら本の通りインデックス6になりました
コンソールでやるのと保存して実行するので変わるんですね、これから頭に入れておきます
printの方はやはり環境変数弄るしかないようですね
無知な質問にレス下さってありがとうございました
0287270
2007/09/11(火) 20:49:27print ユニコード文字列.encode("utf-8")でいけました
encode()してからprintしてた・・・どこまでアホなんだ・・・
これですっきりいきました。皆さん感謝
0288デフォルトの名無しさん
2007/09/11(火) 23:26:08批判じゃないな
あからさまに書いてあることも読めないで本を不当に評価しているだけだ
そういうことをするやつのことを
「頭がおかしい」と正しく状況を説明してやるのは親切というものだぜ
不快に感じるのはオマエの頭がおかしいからだよwwwwwwwww
0289デフォルトの名無しさん
2007/09/11(火) 23:42:410290デフォルトの名無しさん
2007/09/11(火) 23:51:14どんだけ狭い世界に住んでいるんですか?
0291デフォルトの名無しさん
2007/09/12(水) 00:05:19みんぱいを批判する人を基地外扱いするのが地球上に作者しかいないことが
ダイジョーブ博士によって証明されているから。
0292デフォルトの名無しさん
2007/09/12(水) 00:05:380293デフォルトの名無しさん
2007/09/12(水) 00:13:560294デフォルトの名無しさん
2007/09/12(水) 00:27:020295デフォルトの名無しさん
2007/09/12(水) 00:27:04みんPy読んで一番ひどいと思ったのは、424ページ
> ElmeentTreeを使うと、XMLやHTML文書の構造をElementと呼ばれるオブジェクトに
> 変換することができます。既存のXMLやHTMLを読み込んでPythonに取り込むだけ
> でなく、新しく作ったElementオブジェクトを使ってXMLやHTMLを書き出すこともできます
ElementTree使ったことないんだったら本に載せるなと
0296デフォルトの名無しさん
2007/09/12(水) 00:30:040297デフォルトの名無しさん
2007/09/12(水) 00:33:030298デフォルトの名無しさん
2007/09/12(水) 00:37:54|\
┌──────────┘- \
│ 気の触れた方が \
│ /
└──────────┐- /
ヽ(´ー`).ノ |/
( へ)
く
- = ≡三 |\
- = ≡三 ┌──────────┘- \
_ = ≡三 │ \
 ̄ = ≡三 │ いらっしゃいます /
- = ≡三 └──────────┐- /
(´ー`) - = ≡三 |/
( ヽ ヽ)
/ >
0299デフォルトの名無しさん
2007/09/12(水) 03:36:04Python2.5.1 を Win にインストールしたところ、
タスクバー右端に Python2.5 という文字と小さい
ボタンが表示されるようになったのですが、非表示に
する方法はありますか?
「ここを読め」とかで構いません。
0300299
2007/09/12(水) 05:45:58単にタスクバー右クリックから消せました。
0301デフォルトの名無しさん
2007/09/12(水) 09:51:36--module2.py--
from module1 import *
def func1
print ....
のように書いたのですが、module1.pyの中のfunc1が呼ばれる場合
があるのです。これは何故でしょうか?
--module2.py--
from module1 import *
def func2
print ....
func1=func2
と書いても同じでした。
0302301
2007/09/12(水) 09:53:56急いで書きすぎた。
0303デフォルトの名無しさん
2007/09/12(水) 10:17:220304301
2007/09/12(水) 10:25:03$ cat mod.py
def func1():
print "mod.func1"
def main():
func1()
$ cat mod1.py
import mod
def func1():
print "mod1.func1"
mod.func1=func1
$ python -c "from mod1 import *;mod.main()"
mod1.func1 #<=mod1で再定義されている。
で、ここまでは>>10で教えてもらったことなんですけど。
$ cat mod2.py
from mod import *
def func1():
print "mod2.func1"
$ python -c "import mod2;mod2.main()"
mod.func1 #<=再定義されてない。
これはmod2.pyの書き方では再定義にならないということでしょうか?
どう書けばいいですか?
0305デフォルトの名無しさん
2007/09/12(水) 11:02:32入門書嫁。
0306デフォルトの名無しさん
2007/09/12(水) 11:08:1650倍以上の高速化を達成したRuby1.9が年内に登場
http://itpro.nikkeibp.co.jp/article/NEWS/20070909/281502/
0307デフォルトの名無しさん
2007/09/12(水) 11:11:490308デフォルトの名無しさん
2007/09/12(水) 11:12:58こっちでどうぞ。
明確な仕様のない言語で、VMを入れ替えて何が起こるか見物だな。
大勢にとってはRoRが動けばいいんだろうけど、果たして動くまでどのくらいかかるのかな。
0309デフォルトの名無しさん
2007/09/12(水) 11:12:580310デフォルトの名無しさん
2007/09/12(水) 12:08:05こんなくだらないものに税金を使いすぎ
0311デフォルトの名無しさん
2007/09/12(水) 17:12:47おじさんまぶしいわぁ
0312デフォルトの名無しさん
2007/09/12(水) 17:42:570313デフォルトの名無しさん
2007/09/12(水) 17:52:090314デフォルトの名無しさん
2007/09/12(水) 18:05:04ひどすぎ
0315デフォルトの名無しさん
2007/09/12(水) 18:13:18初心者だから分からないんだけど、これ読んだらタメになるの?それともダメになるの?
0316デフォルトの名無しさん
2007/09/12(水) 18:20:220317デフォルトの名無しさん
2007/09/12(水) 18:26:540318デフォルトの名無しさん
2007/09/12(水) 18:48:060319デフォルトの名無しさん
2007/09/12(水) 18:49:01ずっとfile使ってたなあ
0320デフォルトの名無しさん
2007/09/12(水) 18:50:54> インデントでブロックを表すというのは不便な仕様です。
10年プログラマをやってて Emacs が何かをまだ理解していないらしい。
0321デフォルトの名無しさん
2007/09/12(水) 18:59:38初心者にはこれっぽっちも役に立たん
チュートリアルを細切れにして8割捨てて残りを適当に並び替えた感じ
0322デフォルトの名無しさん
2007/09/12(水) 19:04:02ここまで適当の文章をよく公開してるなwwwww
0323デフォルトの名無しさん
2007/09/12(水) 19:13:52>もしかすると本当のPythonistaからお叱りを受けるような内容も含まれるかもしれませんが、その点はTBやコメントでご教授頂けると幸いです。
>もしかすると本当のPythonistaからお叱りを受けるような内容も含まれるかもしれませんが、その点はTBやコメントでご教授頂けると幸いです。
0324デフォルトの名無しさん
2007/09/12(水) 19:44:22○ Pythonを使うからには、この強力なドキュメント機能を使わない手はありません。
0325デフォルトの名無しさん
2007/09/12(水) 21:05:30つか、この人Perlの記事も書いてるな。
いや、何を書こうが使おうが自由なんだけどさ。
0326デフォルトの名無しさん
2007/09/12(水) 21:16:16for i in range(6):
print cities[i],
#やっとこれだけ出来た
0327デフォルトの名無しさん
2007/09/12(水) 21:22:02で出来ちゃうんだけどな
0328デフォルトの名無しさん
2007/09/12(水) 23:01:24setattr(mod,'func1',func2)
0329デフォルトの名無しさん
2007/09/12(水) 23:16:42それをやりたくないんだろ
0330デフォルトの名無しさん
2007/09/12(水) 23:26:400331デフォルトの名無しさん
2007/09/13(木) 00:09:54それは無理じゃね
0332デフォルトの名無しさん
2007/09/13(木) 01:00:01その方針なら、
print '\n'.join(((x % 15 == 0) and 'FizzBuzz') or ((x % 3 == 0) and 'Fizz') or ((x % 5 == 0) and 'Buzz') or str(x) for x in range(1,101))
0333デフォルトの名無しさん
2007/09/13(木) 13:17:43obsolute 扱いで3000では消えるんだと思ってた。
0334デフォルトの名無しさん
2007/09/13(木) 13:51:25obj = module_name.open(name, ...)
0335デフォルトの名無しさん
2007/09/13(木) 14:16:57同じアーカイバ系でもtarやgzipにはopenエイリアスがあり
zipやbzip2にはないなど、てんでバラバラ
StringIOやsocketのように、file-like objectを作るけれどもopen()で
作成するのが自然とは思えない(し、そうなっていない)ものもあるし
0336デフォルトの名無しさん
2007/09/13(木) 14:58:38英語あんまり読めないんだけど、openはファクトリ関数であって
必ずしもfileのインスタンスを返すとは限らない(ようにしたい)ってことか?
open = fileだったのは今までの当座の実装であったと。
本当にfileクラスのインスタンスを作成したいなら今まで通り
fileコンストラクタが使えるということ?
0337デフォルトの名無しさん
2007/09/13(木) 15:39:42>file is more suited to type testing (for example, writing "isinstance(f, file)").
コンストラクタとして使うべきじゃない?
0338デフォルトの名無しさん
2007/09/13(木) 17:52:49data = '---'.join(data.split("\n"))
と書くと、空行以外の行にも、区切り線'---'が入ってしまいます orz
0339デフォルトの名無しさん
2007/09/13(木) 17:58:130340デフォルトの名無しさん
2007/09/13(木) 17:59:53こう?
0341338
2007/09/13(木) 18:21:50data = '\n---\n'.join(data.split('\r\n\r\n'))
でうまくできました。改行コードのとこで splitに失敗してたのね orz
0342デフォルトの名無しさん
2007/09/13(木) 20:07:540343デフォルトの名無しさん
2007/09/13(木) 20:10:08$ /usr/local/entity/python-3.0a/bin/python
Python 3.0a1 (py3k, Aug 31 2007, 20:36:26)
[GCC 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> open("/tmp/test1", "r")
<io.TextIOWrapper object at 0x7fee77ac>
>>> open("/tmp/test2", "rb")
<io.BufferedReader object at 0x7fee772c>
>>> file("/tmp/test3", "r")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'file' is not defined
0344デフォルトの名無しさん
2007/09/13(木) 20:13:12>>> file=open
オレが復活の儀式を行ってやったよ。
0345デフォルトの名無しさん
2007/09/13(木) 20:35:580346デフォルトの名無しさん
2007/09/13(木) 23:21:59内容をチェックしたいんでど、どんな方法があるでしょうか?
dictのサブクラスを作ったんですがそれだとアイテムのlist自体が
置き換えられたときは__setitem__でチェックできるんですが、
listのapped()とかinsert()とかもチェックの対象にしたいんです。
list自体もサブクラスにするのも考えたんですが、
それ以外にも方法がありませんか?
__getitem__になんか、「貸し出し終了」みたいなcode blockを書けたらいいなと
思ってるんですが。
allowed = ['onaka','suita','yo']
class mydict(dict):
def __setitem__(self,k,v):
assert(len(filter(lambda x: x in allowed, v)))
dict.__setitem__(self,k,v)
def __getitem__(self,k):
#???
def __owattayo__(self,v):
check = filter(lambda x: x in allowed, v))
if len(check) > 0:
raise ValueError("だめだよ〜ん: %s", check)
0347デフォルトの名無しさん
2007/09/14(金) 07:32:50はdictionary['key']を評価し終わってから(つまり__getitem__が終了してから)、その返り値のリストに対して、.append('out')を呼び出すので、
__getitem__を弄ってもチェックは出来ない。
リストもmylistで定義するのが一番簡単だと思われる。
0348デフォルトの名無しさん
2007/09/14(金) 07:36:23assert(len(filter(lambda x: x in allowed, v)))
なんていうことは書かない。
普通だったら、
for x in v:
assert x in allowed
0349デフォルトの名無しさん
2007/09/14(金) 07:37:590350デフォルトの名無しさん
2007/09/14(金) 10:13:350351デフォルトの名無しさん
2007/09/14(金) 11:06:370352346
2007/09/14(金) 11:51:26ありがとうございました。
0353デフォルトの名無しさん
2007/09/14(金) 11:57:51L がリストとして
L = a[:len(L)]
とか書けるようにじゃないかな
あるいは a[:] と a[0:len(a)] が一致するように、という説明でもいいけど
0354デフォルトの名無しさん
2007/09/14(金) 17:47:390355新人
2007/09/14(金) 18:02:37http://ymasuda.jp/python/wxpython/simplesample.html で勉強しています。
-----------------
#!/usr/bin/python
import wx
def myKeyHandler(evt):
if evt.GetKeyCode() in [ord('q'), ord('Q')]:
wx.Exit()
app = wx.PySimpleApp(0)
frame = wx.Frame(None, -1, 'Hello wxPython World!')
frame.Bind(wx.EVT_KEY_DOWN, myKeyHandler)
app.SetTopWindow(frame)
frame.Show(True)
frame.Fit()
app.MainLoop()
---------------------
を実行すると
Traceback (most recent call last):
File "wxpython02.py", line 11, in <module>
frame.Bind(wx.EVT_KEY_DOWN, myKeyHandler)
AttributeError: wxFrame instance has no attribute 'Bind'
と表示します。
解決方法が分かりません。なにかインストールモジュールが不足しているのでしょうか??
お願いします。
0356デフォルトの名無しさん
2007/09/14(金) 18:02:370357デフォルトの名無しさん
2007/09/14(金) 18:28:06ググってみたら、こんなのがあった。
ttp://coding.derkeiler.com/Archive/Python/comp.lang.python/2006-10/msg05634.html
FedoraCore 5 だと動くけど FedoraCore 6 じゃ動かないらしい・・
0358新人
2007/09/14(金) 21:04:53ありがとうございます。
6で動かないなら7でも動かないのでしょうね。
BindのAttributeErrorの件はGoogleでもたくさん引っかかるのですがどれも理解できませんでした。
引き続き勉強しますが新人では荷が重いです。
では。
0359デフォルトの名無しさん
2007/09/14(金) 21:06:570360デフォルトの名無しさん
2007/09/16(日) 03:26:55@って何に使うんでしょう?
記号をなるべく排除した文ベースの言語だって聞いたけど・・・
0361デフォルトの名無しさん
2007/09/16(日) 04:23:30ttp://www.python.org/doc/2.4.4/whatsnew/node6.html
0362デフォルトの名無しさん
2007/09/16(日) 07:46:22pass
foo = synchronized(lock)(foo)
foo = classmethod(foo)
コレが、
@classmethod
@synchronized(lock)
def foo(cls):
pass
こう書ける。
0363デフォルトの名無しさん
2007/09/16(日) 08:12:59PEP-318を読むと、導入に至った経緯が分かる。
0364デフォルトの名無しさん
2007/09/16(日) 20:36:21[ s for s in L if re.match(r'ba', s) ]
をもっと手軽にする方法はありますか。
Perlのgrepみたいなのを考えています。
0365デフォルトの名無しさん
2007/09/16(日) 21:10:15perlと違って、
・正規表現(を囲む部分?)を短く書けない
・リストの要素を関数に適用する場合の「一時的な仮変数名」を省略できない
だから。
0366デフォルトの名無しさん
2007/09/17(月) 06:49:33みたいなのがないかなと思ってました。
なさそうということなので、自分で作ることにします。
ありがとうございました。
0367デフォルトの名無しさん
2007/09/17(月) 10:22:19aobj = A()
bobj = B()
cobj = C()
lst = [aobj, bobj, cobj]
という状況で
lst[1]がクラスBのオブジェクトかどうか判定したいときはどのように書けばよいのでしょうか?
Javaの
if (lst[1] instanceof B) {...}
と同じことがしたいのです。アドバイスお願いします。
0368デフォルトの名無しさん
2007/09/17(月) 10:28:480369デフォルトの名無しさん
2007/09/17(月) 11:27:59ありがとうございます。できました。
0370デフォルトの名無しさん
2007/09/17(月) 16:52:49一応、Perl の grep みたいなのは、filter って関数があるけど、短く書けるわけじゃない。
ついでにいうと、Perl の grep も正規表現限定じゃないんだけどね。
0371デフォルトの名無しさん
2007/09/17(月) 17:01:24モジュールaがimport bとするとbがロードされると思いますが、bでimport aとなってaをロードしようとして・・・以下繰り返しになってしまいますか?
0372デフォルトの名無しさん
2007/09/17(月) 18:23:530373デフォルトの名無しさん
2007/09/17(月) 18:53:24モジュールbでaの関数呼ぼうとしたところで定義されてませんエラー
設計が悪いのかも・・・
0374デフォルトの名無しさん
2007/09/17(月) 19:12:05import b
def a():print 'a'
print dir(b)
---b.py
import a
def b():print 'b'
で、
$python a.py
と実行すると、dir(b)の内容が2回表示されるみたい、(しかも微妙に異なる
なんかこの辺の話題どっかに在った気がするけど、忘れた、・・・
0375デフォルトの名無しさん
2007/09/17(月) 20:23:47実験的な興味の質問じゃなくて、実際に何かプログラム作ってるんだったら
設計を見直すべきだと思う。
0376デフォルトの名無しさん
2007/09/17(月) 22:10:28tkinterでウィンドウ表示するくらいまで勉強したんだけど、
次どんなのを勉強したらいいですか?
0377デフォルトの名無しさん
2007/09/17(月) 22:16:060378デフォルトの名無しさん
2007/09/17(月) 22:37:540379デフォルトの名無しさん
2007/09/18(火) 01:03:34まったく役に立たないものを勉強したんだねwww
0380デフォルトの名無しさん
2007/09/18(火) 01:13:330381デフォルトの名無しさん
2007/09/18(火) 02:01:550382デフォルトの名無しさん
2007/09/18(火) 02:06:22wxPython
decorator
pysco
追加キボン
0383デフォルトの名無しさん
2007/09/18(火) 02:07:450384デフォルトの名無しさん
2007/09/18(火) 02:11:360385デフォルトの名無しさん
2007/09/18(火) 02:14:060386デフォルトの名無しさん
2007/09/18(火) 02:19:230388デフォルトの名無しさん
2007/09/18(火) 04:14:51Python3.0ではrangeがxrange相当になってxrangeは消えるとさ。
ttp://www.artima.com/weblogs/viewpost.jsp?thread=208549
0389デフォルトの名無しさん
2007/09/18(火) 04:16:140390デフォルトの名無しさん
2007/09/18(火) 09:34:110391デフォルトの名無しさん
2007/09/18(火) 09:38:500392デフォルトの名無しさん
2007/09/18(火) 09:40:22>>> xrange = range
0393デフォルトの名無しさん
2007/09/18(火) 10:02:01>>> def range(*v): return list(xrange(*v))
0394デフォルトの名無しさん
2007/09/18(火) 10:08:09でも 0b00110000_01000000 みたいな記法が出来ないと見づらいがな(´・ω・`)
というか、デバドラ書いたりするC/C++で却下されまくりこそ問題だけど。
8進数の仕様変更は妥当かな。
0435 こんなの8進数だと気づかないで流し読みしちゃうし(0o0)
0395デフォルトの名無しさん
2007/09/18(火) 12:10:198進は大昔のCからそういう表記だったけど。
0396デフォルトの名無しさん
2007/09/18(火) 12:18:200397デフォルトの名無しさん
2007/09/18(火) 12:47:190398デフォルトの名無しさん
2007/09/18(火) 12:52:230399デフォルトの名無しさん
2007/09/18(火) 13:06:000400デフォルトの名無しさん
2007/09/18(火) 13:07:020401394
2007/09/18(火) 13:37:17大昔からそうだったってgccコンパイル通らん。
どのコンパイラ?
0402デフォルトの名無しさん
2007/09/18(火) 13:43:55人を異次元生物にしないでくれ。
俺は善良な触手なんだから。
0403デフォルトの名無しさん
2007/09/18(火) 13:55:44>デバドラ書いたりするC/C++で
C++でデバドラ書く能無しどこにいるんだよ。実例を挙げてみなさい。
0404デフォルトの名無しさん
2007/09/18(火) 14:03:090405デフォルトの名無しさん
2007/09/18(火) 14:29:280406デフォルトの名無しさん
2007/09/18(火) 14:33:050407デフォルトの名無しさん
2007/09/18(火) 14:34:06そんなツールキットに存在価値はない
0408デフォルトの名無しさん
2007/09/18(火) 14:36:17客に使わせるわけではないようなラッバーGUIとかなら手軽な方がいいし。
おまえ友達いないだろwwww
0409デフォルトの名無しさん
2007/09/18(火) 14:38:190410デフォルトの名無しさん
2007/09/18(火) 15:07:44Symbianとか。
あと2進数使えるとうれしいのはSystemCだな。
0411デフォルトの名無しさん
2007/09/18(火) 17:59:490412デフォルトの名無しさん
2007/09/18(火) 18:10:570413デフォルトの名無しさん
2007/09/18(火) 18:15:33ところでthreadモジュールのスレッドを終了させるにはどうすればいい?
ファイルをダウンロードするスレッドを走らせたあとで、GUIフォームの
URLの欄を間違ったことに気づいたり何かしたときに、スレッドを停止さ
せられる仕様にしたいんだが・・・
0414デフォルトの名無しさん
2007/09/18(火) 18:30:59日本語は問題無いと思います。
0415デフォルトの名無しさん
2007/09/18(火) 18:58:17はいはいSymbianね。他にもC++でデバドラ書いてる実例があれば
挙げても構いませんよ。
0416デフォルトの名無しさん
2007/09/18(火) 19:00:050417デフォルトの名無しさん
2007/09/18(火) 19:01:03結局ただの荒らしかwwwwwwwwwww
0418デフォルトの名無しさん
2007/09/18(火) 19:23:08ダウンロードスレッドに対して「ダウンロードを中止して終了せよ」と通知する仕組みを設ければよい。
排他制御を施したキューでメッセージを授受するのが定石だと思われ。
0419デフォルトの名無しさん
2007/09/18(火) 19:33:15やってみる。・・・もとは簡単なCUIアプリだったのにGUIのフロントエンドを
作ろうした途端にスレッドやら排他制御やら。大変だ〜。
0420デフォルトの名無しさん
2007/09/18(火) 19:53:510421デフォルトの名無しさん
2007/09/18(火) 19:54:480422デフォルトの名無しさん
2007/09/18(火) 20:28:040423デフォルトの名無しさん
2007/09/18(火) 20:51:45空前の馬鹿発見。
>>403を良く読め。俺は「どこにいるのか」と訊いているんだ。
なのに能無しの>>410は、日本語もろくに読めないせいで、ブツのほうを書いて自己満足してやがる。
Symbianを生み出した人間達が今どこにいるのか、を書かなきゃ、回答したことにならないんだよ。
だから>>415でテキトーにあしらってやったんだ。教育的指導としてな。わかったかカス。
0424デフォルトの名無しさん
2007/09/18(火) 20:55:36えらいね
がんばったね
じんせいもおなじくらいがんばろうね
0425デフォルトの名無しさん
2007/09/18(火) 20:56:040426デフォルトの名無しさん
2007/09/18(火) 20:57:09つかWindowsでもC++でデバイスドライバ書けないことはないらしいぞ
話に聞いたことがあるって程度だが
あとUMDFというのがあってだな
0427デフォルトの名無しさん
2007/09/18(火) 20:58:43「ネットに書き込むこと」と「人生」が排他の関係にあると思ってる間抜けだからって、ハブしちゃいけない。
0428デフォルトの名無しさん
2007/09/18(火) 21:03:460429デフォルトの名無しさん
2007/09/18(火) 21:06:26「くだらない妄想を垂れ流すことと」と「人生を頑張る」ことは
排他関係にあると思うけどなあ(プゲラw
0430デフォルトの名無しさん
2007/09/18(火) 21:08:480431デフォルトの名無しさん
2007/09/18(火) 21:09:020432デフォルトの名無しさん
2007/09/18(火) 21:09:54|\
┌──────────┘- \
│ 気の触れた方が \
│ /
└──────────┐- /
ヽ(´ー`).ノ |/
( へ)
く
- = ≡三 |\
- = ≡三 ┌──────────┘- \
_ = ≡三 │ \
 ̄ = ≡三 │ いらっしゃいます /
- = ≡三 └──────────┐- /
(´ー`) - = ≡三 |/
( ヽ ヽ)
/ >
0433デフォルトの名無しさん
2007/09/18(火) 21:10:380434デフォルトの名無しさん
2007/09/18(火) 21:20:03Iron
0435デフォルトの名無しさん
2007/09/18(火) 22:01:01そもそもコア開発者達がデバッガを必要としてないんだと思う。
0436デフォルトの名無しさん
2007/09/18(火) 22:29:32個人的な印象だけど、やっかいなバグに何日も悩んだ経験がCではあるのにPythonではない。
なんでだろう。
どちらもエディタで書いてコマンドラインで実行するスタイル。
Cの場合、デバッガはほとんど使わずprintfの大量挿入でバグ取りしている。
思うにPythonのトレースバックが(例えば)gdbのwhereコマンドに相当していて、
あとはprint文の大量挿入で用が足りるからデバッガの出る幕がないという感じ。
大方そんなところなんでは。
0437デフォルトの名無しさん
2007/09/18(火) 22:32:07あと、マルチスレッドプログラミングしてるとたまに困る。
0438デフォルトの名無しさん
2007/09/18(火) 22:38:13pythonは例外やらreprやらが便利なので、確かにデバッガなくても
あんまり困らないかも
0439デフォルトの名無しさん
2007/09/18(火) 22:53:18こととと?
そんな興奮すんなよ。
お前の書き込みがくだらないのはわかってるから大丈夫だよ。
俺の簡潔な質問の意味さえ正しく理解できなかったのは確かに馬鹿丸出しだし、
それを指摘しただけで意味不明の興奮状態に突入するのは痛すぎるけど、匿名なんだから
お前がこの過ちから何かを学び取れれば、お前の生活には大したダメージは無いし、結果オーライだよ。
0440デフォルトの名無しさん
2007/09/18(火) 23:01:590441デフォルトの名無しさん
2007/09/18(火) 23:03:270442デフォルトの名無しさん
2007/09/18(火) 23:05:000443デフォルトの名無しさん
2007/09/18(火) 23:11:44基地外の質問の意味は残念ながら理解不能だぜww
0444デフォルトの名無しさん
2007/09/18(火) 23:45:19言い訳する前に日本語を勉強し直したほうがいい。
>>441
かもしれないなぁ。こいつ大丈夫だろうか。
0445デフォルトの名無しさん
2007/09/19(水) 00:04:01Ruby,C,PHP,JAVAはあったけど 金が無いんで立ち読みしたかった
[ 田舎]
0446デフォルトの名無しさん
2007/09/19(水) 00:05:580447デフォルトの名無しさん
2007/09/19(水) 00:14:34キチガイの頭の中にある不具合はなおせないんだぜwwwwwwww
0448デフォルトの名無しさん
2007/09/19(水) 00:52:06>あとUMDFというのがあって
ユーザーモードドライバね。それはありかも。
実はそれをPythonまたはPython+Cで書くのが有望でないかと思う
今日このごろ。
それもC++で書くと、この能無し!と罵る人もいるので気をつけると
いいかもしれません。
0449デフォルトの名無しさん
2007/09/19(水) 01:07:34フラグのためのクラス変数を追加して、さらにCUIバージョンで定義していた
クラスのメソッドをちょっと変更して、"停止"に対応するボタンが押されたら
例外を送出するようにした。結局、キューとかは使わなかった。でも
教えてくれた人ありがと
0450デフォルトの名無しさん
2007/09/19(水) 01:58:26の簡単なサンプル ファイルの表示
#
# "someTextFile"という名前のテキストファイルを読んで表示する
# fileオブジェクトのreadlines()メソッドは一度にテキストすべてを読み込みリストで返す.
# もちろん一行ごとに読むことも出来る.その場合はreadline()メソッドを使う.
#
fi=open("someTextFile")
lines=fi.readlines()
for line in lines:
print line,
fi.close()
を、実行しても下記のエラーが出てしまいます どこを修正すればすればいいのでしょうか?
Traceback (most recent call last):
File "E:/Python25/自作/hiyouji18.py", line 1, in <module>
fi=open("someTextFile")
IOError: [Errno 2] No such file or directory: 'someTextFile'
0451デフォルトの名無しさん
2007/09/19(水) 02:03:57和訳:someTextFileというファイルまたはディレクトリは存在しません
someTextFileを実際にあるファイルのパスに置き換えれば動くよ。
0452デフォルトの名無しさん
2007/09/19(水) 03:30:20fi=open("someTextFile")
↓
fi=open("hiyouji18.py")
0453デフォルトの名無しさん
2007/09/19(水) 07:24:56for line in fi::
print line
これでいい
0454デフォルトの名無しさん
2007/09/19(水) 07:43:500455デフォルトの名無しさん
2007/09/19(水) 14:38:19...
class FooClass:
@deco
def bar_method():
...
obj が bar_method の時に、deco 内部で、
文字列 'FooClass' を得る方法はないでしょうか?
1. bar_method の内容が解析される
2. 解析された(1)が 'bar_method' として登録される
3. deco が呼び出される。(←この時点で知りたい)
4. 解析された(1)-(3)が 'FooClass' として登録される
0456デフォルトの名無しさん
2007/09/19(水) 15:48:430457デフォルトの名無しさん
2007/09/19(水) 16:10:22ありがとうございます。
望むものが得られました。
0458デフォルトの名無しさん
2007/09/19(水) 17:05:580459デフォルトの名無しさん
2007/09/19(水) 19:19:210460デフォルトの名無しさん
2007/09/19(水) 19:30:53http://journal.mycom.co.jp/news/2007/09/02/002/index.html
0461デフォルトの名無しさん
2007/09/19(水) 19:37:58ValueError: invalid literal for int() with base 10: '-'
なんてエラーが急にでるようになったんだけどどうしたらいいですか?
0462デフォルトの名無しさん
2007/09/19(水) 19:41:370463デフォルトの名無しさん
2007/09/19(水) 19:43:330464デフォルトの名無しさん
2007/09/19(水) 19:47:390465デフォルトの名無しさん
2007/09/19(水) 19:58:560466デフォルトの名無しさん
2007/09/19(水) 20:29:13ただcall/ccが何かのきっかけでついかされることはなくもなくもない、と思う。
0467デフォルトの名無しさん
2007/09/19(水) 20:43:35シェルスクリプト的な書き捨てコードであると便利なのにな。
gotoあれば一発なのにわざわざ無様なフラグ追加してwhileとかでインデントさせられると
敗北感に苛まれてしょうがない
0468デフォルトの名無しさん
2007/09/19(水) 20:56:13たぶんgotoが必要だと感じた時点でコードの構成を変えてるんだろうなあ。
関数/メソッドに細分化してgoto→returnにしたりcallableオブジェクトを辞書の値にして分岐したり。
0469デフォルトの名無しさん
2007/09/19(水) 20:57:04ローカル関数やジェネレータ使うし。
0470デフォルトの名無しさん
2007/09/19(水) 21:41:49ヽ(´Д`)人(´Д`)ノ
俺もエラー処理のためにgoto欲しいよ。
堅くすればするほど見にくくなって保守性が落ちていく。
いらない云う人はどーやって書いてるん?
0471デフォルトの名無しさん
2007/09/19(水) 21:51:340472デフォルトの名無しさん
2007/09/19(水) 22:21:080473デフォルトの名無しさん
2007/09/19(水) 22:34:23その記事は微妙www
0474デフォルトの名無しさん
2007/09/19(水) 22:52:31互換性なくなっちゃうのか…
折角python覚え始めたけど別の言語にするかな…
0475デフォルトの名無しさん
2007/09/19(水) 22:59:32finallyでちゃんとリソース解放を保障しようとすると、無駄に多段になるな
デストラクタが存在しない言語の宿命という気がするが
try:
input = open("foo", "r")
try:
output = open("bar", "w")
try:
for line in input:
output.write(process(line))
finally:
output.close()
finally:
input.close()
except Exception, e:
print e
0476デフォルトの名無しさん
2007/09/19(水) 23:11:350477デフォルトの名無しさん
2007/09/19(水) 23:13:01こういう勘違い君が現れるくらい微妙な記事ってことか.
0478デフォルトの名無しさん
2007/09/19(水) 23:15:310479デフォルトの名無しさん
2007/09/19(水) 23:16:49GC系の言語はデストラクタが仮に存在しても、それが呼び出されるかどうか
なんて普通は保障されてないでしょ
だからJavaも全く似たようなコードになる
C#はusingが使えるから多少マシだが
0480デフォルトの名無しさん
2007/09/19(水) 23:17:05C++は有って、Javaは無いんだっけ。
それとも仕様変わった?
0481デフォルトの名無しさん
2007/09/19(水) 23:18:15from __future__ import with_statement
from contextlib import closing
with closing(open("test.txt")) as fp:
print fp.read()
とできる
0482デフォルトの名無しさん
2007/09/19(水) 23:21:43def proc_exc(req):
res0 = req0_from_req(req)
try:
res0 = proc0(req0)
except Exception, e:
raise e
req1 = req1_from_res0(res0)
try:
res1 = proc1(req1)
except Exception, e:
release0()
raise e
req2 = req2_from_res1(res1)
try:
res2 = proc2(req2)
except Exception, e:
release1()
release0()
raise e
res = res_from_res2(res2)
release2()
release1()
release0()
return res
0483デフォルトの名無しさん
2007/09/19(水) 23:36:23GCがある言語のデストラクタは何時よばれるかわからないのであまり使われていない。
0484デフォルトの名無しさん
2007/09/19(水) 23:40:28それ用のメソッドを大抵もっているので呼べばいい。ディストラクタに期待するのは間違い。
メモリのことはあんま気にすることはないなあ。
メモリを使い切ることが予想される場合には省エネ設計をする。
0485デフォルトの名無しさん
2007/09/19(水) 23:51:40例外をポンポン投げられても困る。
IndexErrorやStopIterationとかは例外でいいと思うんだけど。
0486186
2007/09/19(水) 23:54:19def proc_goto(req):
res = err = None
req0 = req0_from_req(req)
(res0,err) = proc0(req0)
if err:
goto err0p
req1 = req1_from_res0(res0)
(res1,err) = proc1(req1)
if err:
goto err1p
req2 = req2_from_res1(res1)
(res2,err) = proc2(req2)
if err:
goto err2p
res = res_from_res2(res2)
release2()
err2p:
release1()
err1p:
release0()
err0p:
return (res, err)
0487デフォルトの名無しさん
2007/09/19(水) 23:54:38>呼べばいい
んなのは当たり前の話で、それが呼ばれることを保障しようとすると
面倒くさいって話でしょ
上のパターンのコードはこう書けば多少はマシになるが、
close()が例外を送出する可能性を考慮すると、また別の問題が出てくる
input = None
output = None
try:
    input  = open("foo", "r")
    output = open("bar", "w")
    for line in input:
        output.write(line)
except Exception, e:
    print e
finally:
    if input  is not None: input.close()
    if output is not None: output.close()
0488487
2007/09/19(水) 23:55:43input = None
output = None
try:
input = open("foo", "r")
output = open("bar", "w")
for line in input:
output.write(line)
except Exception, e:
print e
finally:
if input is not None: input.close()
if output is not None: output.close()
0489デフォルトの名無しさん
2007/09/20(木) 00:00:41他の実装は良く知らないけど
0490デフォルトの名無しさん
2007/09/20(木) 00:05:07?(゚∀゚≡゚∀゚)?
0491デフォルトの名無しさん
2007/09/20(木) 00:06:42デコレータやメタクラスが保持してるかもよ
0492デフォルトの名無しさん
2007/09/20(木) 00:14:310493デフォルトの名無しさん
2007/09/20(木) 00:29:300494デフォルトの名無しさん
2007/09/20(木) 00:41:300495デフォルトの名無しさん
2007/09/20(木) 00:49:24ありがとうございました 何とが実行出来ました
メモ帳はトラブルの発生原因となる問題が多いそうで、Collmintを使用しました
作成したプログラムを単独で作動するアプリケーション形式にするにはどうしたらいいのでしょうか?
0496デフォルトの名無しさん
2007/09/20(木) 00:51:500497デフォルトの名無しさん
2007/09/20(木) 04:38:52>>482はリソース解放時(release0(), release1(), release2())にエラーが発生すると正しく動かない。
release2() # ←これがエラーになるとrelease1()とrelease0()が実行されない
release1()
release0()
>>486と>>488も同じバグを持ってる。
リリース解放時にはエラーが発生しないと仮定してかまわないなら、>>488の書き方が単純でよろしい。
ただこれはtry except finally が一続きだから、python2.5以降じゃないとシンタックスエラーになる。
0498デフォルトの名無しさん
2007/09/20(木) 04:47:18(2.4以前でもうごくようにしてみた。)
try:
input = output = None
try:
input = open("foo", "r")
output = open("bar", "w")
for line in input:
output.write(line)
finally:
if input:
try: input.close()
finally: pass
if output:
try: output.close()
finally: pass
except Exception, e:
print e
これは、gogoがサボートされても簡潔に書けるようにはならない。
つまり>>470は勘違い。
ただ、エラー発生時のリトライはgotoがあると簡単になるけど、それはほかの方法でもできるんだから、わざわざ危険なgotoをほしがる必要はないと思う。
0499デフォルトの名無しさん
2007/09/20(木) 05:35:180500デフォルトの名無しさん
2007/09/20(木) 06:16:51自動的に捨てる関数にやらせればok
0501デフォルトの名無しさん
2007/09/20(木) 07:30:33開いたファイルを逐次リストにappend()して
finallyでは、その時点でリストに入ってるファイル全てにclose()をかける
という風に書いたことはある
0502デフォルトの名無しさん
2007/09/20(木) 07:33:35filelist = []
try:
input = open("foo", "r")
filelist.append(input)
output = open("bar", "w")
filelist.append(output)
# 処理
finally:
for f in filelist:
f.close()
という感じだが、closeの例外も補足した方がいいかな?
0503デフォルトの名無しさん
2007/09/20(木) 08:06:180504デフォルトの名無しさん
2007/09/20(木) 08:10:40文字列を
"asdf" + (i == 0)? "" : "zxcv"
みたいにしたいんですが
0505デフォルトの名無しさん
2007/09/20(木) 08:24:16Python2.5以降なら
'asdf' + ('' if i==0 else 'zxcv')
0506デフォルトの名無しさん
2007/09/20(木) 08:39:35この場合closeでエラーが出たらどうなるの?
握りつぶし?一番下のexcept?
0507デフォルトの名無しさん
2007/09/20(木) 08:46:060508デフォルトの名無しさん
2007/09/20(木) 09:03:37二回 close() すれば判るやん。
0509デフォルトの名無しさん
2007/09/20(木) 09:05:180510デフォルトの名無しさん
2007/09/20(木) 09:23:28'asdf' + ((i != 0) and 'zxcv' or '')
0511デフォルトの名無しさん
2007/09/20(木) 09:36:46def release0():
print 'release0: success'
res = err = None
return (res,err)
def release1():
print 'release1: success'
res = err = None
return (res,err)
def release2():
print 'release2: error'
res = None
err = "error_oppai"
return (res,err)
release2() # ←これがエラーになるとrelease1()とrelease0()が実行されない
release1()
release0()
>実行されますが何か?
>release2: error
>release1: success
>release0: success
0512デフォルトの名無しさん
2007/09/20(木) 09:37:35○>>497
0513490
2007/09/20(木) 10:01:080514デフォルトの名無しさん
2007/09/20(木) 10:03:16ひたすらサンプルがずらずら並んでて
コメントでコードの説明してるような
入門サイトってないですか?
0515デフォルトの名無しさん
2007/09/20(木) 10:54:24標準ライブラリのソースがあるだろ。大抵のものは揃ってる。
0516デフォルトの名無しさん
2007/09/20(木) 11:09:57そうそう、
標準ライブラリのソースはクックブックよりよっぽど実用的でためになるお。
0517デフォルトの名無しさん
2007/09/20(木) 12:30:140518デフォルトの名無しさん
2007/09/20(木) 12:47:27ここでいう「エラーが発生する」というのは「例外が発生する」ということ。
(try except finally 使って話してるんだからそのくらいわかれよ。)
511のコードは error と表示してるだけで、実際にはなんのエラーにもなってない。
0519デフォルトの名無しさん
2007/09/20(木) 13:12:23気持ち悪い
0520デフォルトの名無しさん
2007/09/20(木) 13:19:12「open,write,closeが例外を一切飛ばさずに
グローバル変数errnoに書き込んでたらtry〜は意味ない」
って云ったら馬鹿だと思わないのか?
0521デフォルトの名無しさん
2007/09/20(木) 13:20:39頭が悪い人の話し方の典型ですよ。
0522デフォルトの名無しさん
2007/09/20(木) 13:54:260523デフォルトの名無しさん
2007/09/20(木) 14:45:42可哀想に。
0524デフォルトの名無しさん
2007/09/20(木) 15:00:320525デフォルトの名無しさん
2007/09/20(木) 15:06:080526デフォルトの名無しさん
2007/09/20(木) 15:12:30Twistedばっかり出てくる。
みんなこれで満足できるっていうものなの?
0527デフォルトの名無しさん
2007/09/20(木) 15:20:32すぐ死んで終わるプログラムならどうでもいいのはCでも同じ
っつかそれなら、よほど大量のメモリを使わない限りはGCすら要らん
一方長いあいだ張り付いているプログラムなら、どんな言語だろうが
リソースリークは避けるべきだろ
つまり言語は関係ない
0528デフォルトの名無しさん
2007/09/20(木) 15:25:20バッファリングされてるデータをフラッシュするとか
(Cのstdioではそういうことはatexit()でやってくれるが)
こういう場合はすぐ死ぬプログラムでもちゃんとclose()せなあかん
0529デフォルトの名無しさん
2007/09/20(木) 16:02:37ファイルオブジェクトは"__enter__"と"__exit__"が宣言されているから
closingは必要ない
from __future__ import with_statement
with open("test.txt") as fp:
print fp.read()
0530デフォルトの名無しさん
2007/09/20(木) 16:21:59そしてprintデバッグ・機能下調べがやりづらい時代がやってくる訳だな
]λ.....
0531デフォルトの名無しさん
2007/09/20(木) 17:23:07自分で判断できないレベルなら手を出さないのが吉
0532デフォルトの名無しさん
2007/09/20(木) 17:49:07StackLessPython
0533デフォルトの名無しさん
2007/09/20(木) 17:50:46ほかの比較する対象物が検索に引っかからなくて
0534デフォルトの名無しさん
2007/09/20(木) 18:07:12おおう、存在を完全に忘れてたよ、
消えてなくなると思ってたのに。
よく考えればこっちのほうが目的に近いかもthx
0535デフォルトの名無しさん
2007/09/20(木) 18:42:43下の co-operative thread パッケージがある。Twisted のような differed による関数の遅延実行ではない。タスクらしい記述ができる。シミュレーションでの並列実行を目的として作られている。
SymPy;;http://simpy.sourceforge.net/index.html
Context switch が co-operative なので test and set の狭間でのデータ化けを心配する必要がないので楽だ。もっと使われても良いと思う。
0536デフォルトの名無しさん
2007/09/20(木) 20:56:36逆だろ。
みんな、エラーが起きたら例外が発生することを前提で話してる。
>>511だけが、例外を発生させてない。
気持ち悪いのは511==519だけ。
0537デフォルトの名無しさん
2007/09/20(木) 21:46:16これも便利そう。
大学もFortranなんかの講義はやめて
こういうやつを教えればいいのに。
0538デフォルトの名無しさん
2007/09/20(木) 21:57:11というか、結局どれがいいやら私が分からなかった。
0539デフォルトの名無しさん
2007/09/20(木) 23:45:270540デフォルトの名無しさん
2007/09/21(金) 00:16:370541デフォルトの名無しさん
2007/09/21(金) 00:55:49( ゚∀゚)彡 おっぱい!おっぱい!
⊂彡
0542デフォルトの名無しさん
2007/09/21(金) 01:10:56同感。結局 f2py を使いたいので numpy を使ってる
0543デフォルトの名無しさん
2007/09/21(金) 02:14:42なにが逆なのかまったく分かんね
例外を発生させないのが気持ち悪いっつってんだが
>>511はこういうことが言いたいんだと俺は思った
def release1():
err = None
try:
hoge.close()
except:
print 'hoge.close() failed'
err = 'oppai'
else:
print 'release1: success'
return err
def release2():
# do something
print 'release2: success'
release1()
release2()
>hoge.close() failed
>release2: success
んで、
"処理は中断しない代わり、失敗したか知りたきゃ返り値を見ろ"
的な C みたいなやりかたはキモい、と
0544デフォルトの名無しさん
2007/09/21(金) 02:38:19_ ∩
( ゚∀゚)彡 おっぱい!おっぱい!
( ⊂彡
| |
し ⌒J
0545455
2007/09/21(金) 08:30:40Pythonにとって class は syntax sugar にしか過ぎないのでしょうか?
0546デフォルトの名無しさん
2007/09/21(金) 08:32:46ありがとうございます
0547デフォルトの名無しさん
2007/09/21(金) 08:54:48じゃあおまえのもともとの発言>>519がおかしいんだろ。
エラーのときは例外を発生させることを前提で話してるときに、>>511がおかしなことを言い出したから>>518でそれを正した。
そしたら
>>519
>エラーが起きたら例外を raise せずに返り値で渡すような関数にしろってこと?
だれもそんなことを言ってないのに、またおかしなことをいいだした。
話の流れでは、エラー時には例外を発生させることが前提。その逆のことをいってるのは>>511と>>519(と>>543)だけ。
同一人物かどうかは知らん。
なにが逆なのか分かった?
0548デフォルトの名無しさん
2007/09/21(金) 08:59:012.1まではそうだったかも知れないけど、2.2からは違う。
0549455
2007/09/21(金) 09:47:33ttp://www.python.org/dev/peps/pep-0252/
ttp://www.python.org/dev/peps/pep-0253/
2.1->2.2の変更点はこの辺みたいですね。
読んでみることにします。
0550デフォルトの名無しさん
2007/09/21(金) 09:51:13いや本当に逆の意味が分からん
俺も「エラー時には例外を発生させることが前提」であって、
「その逆のことをいってる」>>511気持ち悪い、と言ったんだが
俺はこう推測した:
511は疑似コードで、実際には releaseX() 内でなにか例外が発生する処理をしているが、
それを握り潰して (try: 〜 except: pass か何か) 失敗の情報は err に乗せて返す
んで、518がそれを分かってないと思ったから、511の意味(の推測)
>エラーが起きたら例外を raise せずに返り値で渡すような関数にしろってこと?
を書いた
そのうえで、
例外を発生させるのが前提の話のときに、
その前提にそぐわない、例外を隠蔽するような511のやりかたは気持ち悪い
と思った
0551デフォルトの名無しさん
2007/09/21(金) 09:58:45その推測でいくと、>>511は本質的には、3つの try 文を 3つの releaseX() に切り分けただけか?
まあいいや
俺の推測が飛躍しすぎだったかもしれん
0552デフォルトの名無しさん
2007/09/21(金) 10:17:580553デフォルトの名無しさん
2007/09/21(金) 10:55:280554デフォルトの名無しさん
2007/09/21(金) 11:12:210555デフォルトの名無しさん
2007/09/21(金) 12:01:100556デフォルトの名無しさん
2007/09/21(金) 12:02:13フゥー
0557デフォルトの名無しさん
2007/09/21(金) 21:20:34じゃあ>>519は>>511へのレスだということ?>>518じゃなくて?
わかるかよそんなこと。>>519だけみれば、直前の>>518へのレスかと思うだろ。だから519がとんちんかんなことをいってるようにみえた。
直前へのレスじゃないなら相手先をちゃんと書けや。話をかき乱すだけじゃぼけ。
0558デフォルトの名無しさん
2007/09/21(金) 21:47:200559デフォルトの名無しさん
2007/09/21(金) 22:43:120560デフォルトの名無しさん
2007/09/21(金) 22:56:200561デフォルトの名無しさん
2007/09/21(金) 23:00:580562デフォルトの名無しさん
2007/09/21(金) 23:37:221:今日の日付を取得して、
2:そこから年数を1926年分引く
という処理で
today = datetime.date.today()
で1は出来るのですが
年数を引くにはどうすれば良いのでしょう
年だけ計算したい点がわからないです
よろしくお願いします
0563デフォルトの名無しさん
2007/09/21(金) 23:48:470564デフォルトの名無しさん
2007/09/22(土) 00:33:31ありがとうございます!
これでいつばあちゃんに今年は昭和何年か
聞かれても大丈夫
0565デフォルトの名無しさん
2007/09/22(土) 01:15:480566デフォルトの名無しさん
2007/09/22(土) 07:18:53>>374
>>375
あたりの話題で同じ問題かかえてるんですが、もしモジュールaからモジュールbの機能使いたくて逆にモジュールbでもモジュールaの機能使いたいってときPythonでどう書くんでしょう?
Cだとただ単にincludeすればすむはなしですが、pythonのimportはモジュール読み込むとき実行までしてしまうので問題が起きてしまいます。
aもbも一つのモジュールに含めてしまえば問題ないと思うんですが巨大なファイルができてしまいます。
あと大規模なpythonプログラムってクラスごとにモジュールファイルを作るってのは一般的なのでしょうか?
0567デフォルトの名無しさん
2007/09/22(土) 09:24:53include guard があるから
0568デフォルトの名無しさん
2007/09/22(土) 10:12:30import時に実行して欲しくないコードは
if __name__=='__main__':
ブロックに押し込めばいいんじゃね?
ていうか入門書嫁
0569デフォルトの名無しさん
2007/09/22(土) 17:44:10野良ビルドだからか?
cygwinの死ぬほど遅いラッパーシステムコールを使うようなコードなら
流石にネイティブのが速いだろうけど、なんかStringIOとかが普通に遅い。
VC++のmalloc()が遅いのかな……
0570デフォルトの名無しさん
2007/09/22(土) 20:17:280571デフォルトの名無しさん
2007/09/22(土) 20:19:41hotshotでプロファイルを取った結果、StringIOのread()やらwrite()やら
seek()やらで有意な差がついていた。
たまたま今回はそうだが、結局は文字列処理、リスト処理のような
プリミティブな処理において速度差があるんだと思う。
それ以下には潜ってない。
デフォルトの配布では最適化オプションが-O2だったのを-Oxに変更してみたが
有意な差は得られなかった。
0572デフォルトの名無しさん
2007/09/23(日) 02:28:10file pointer が吹っ飛ぶ現象が
おきてるのですが、win32 + python2.5.1 とかではあたりまえなんでしょうか?
0573デフォルトの名無しさん
2007/09/23(日) 02:37:220574デフォルトの名無しさん
2007/09/23(日) 02:45:25スレ汚しごめなさい....
0575デフォルトの名無しさん
2007/09/23(日) 16:32:310576デフォルトの名無しさん
2007/09/23(日) 16:40:01やっちゃった系実装。
0577デフォルトの名無しさん
2007/09/23(日) 19:13:16ターミナルがフォーカス奪われてしまいこまってます
奪われず起動する方法ってありますか?うしえてください
0578デフォルトの名無しさん
2007/09/24(月) 03:39:50import urllib;
print urllib.quote( "日本語" );
この文を、pythonのコマンドラインから実行した場合と、
モジュール(test.py)に書き出して、python test.pyとで実行した場合に
違う文字列がアウトプットされます。原因が全くわかりません。
なぜでしょうか?
0579デフォルトの名無しさん
2007/09/24(月) 03:56:18test.py の文字コードが違うからじゃね?
(全然関係ないけど行末の ; は不要だよん)
0580578
2007/09/24(月) 05:12:17具体的にはどのように解決すればいいのでしょうか?
0581デフォルトの名無しさん
2007/09/24(月) 05:39:390582デフォルトの名無しさん
2007/09/24(月) 05:49:070583578
2007/09/24(月) 06:15:48なんかいろいろ調べてたんですが、
print repr( "あ" );
とした場合、
pythonのコマンドライン(pythonのインタープリタ)のアウトプットは
'\xe3\x81\x82'
モジュールから実行した場合は
'\x1b$B$"\x1b(B'
とアウトプットされます。urllib.quoteの結果の違いもこれかと思います。
モジュールから実行した場合も前者の用にアウトプットさせたいです。
0584デフォルトの名無しさん
2007/09/24(月) 10:52:43コンソールの文字コードがUTF-8なのはわかるけど
そのモジュールはどんな文字コードで書いたの?
("あ" が '\x1b$B$"\x1b(B' になるというのが謎)
coding 宣言はしてないの?
0585デフォルトの名無しさん
2007/09/24(月) 12:25:510586デフォルトの名無しさん
2007/09/24(月) 12:43:16で、モジュールとして
# coding: iso2022jp
print repr('あ')
みたいに書いた場合、'あ'はiso2022jpの8ビット文字列'\x1b$B$"\x1b(B'が入ってる
UTF-8のコンソールから
>>>print repr('あ')
としたら、'あ'にはUTF-8の8ビット文字列'\xe3\x81\x82'が入ってる
なのでモジュールを
# coding: utf-8
print repr('あ')
としてソースコードとコンソールの文字コードを一致させるか
# coding: iso2022jp
print repr(u'あ')
として8ビット文字列ではなくUnicode文字列を作成し、
コンソール出力時にUTF-8の8ビット文字列に変換してもらえばOK
0587デフォルトの名無しさん
2007/09/24(月) 13:40:46お勧めの入門本は何ですか?
すみません、すみません
0588デフォルトの名無しさん
2007/09/24(月) 13:41:300589デフォルトの名無しさん
2007/09/24(月) 14:57:14パイソンのクラスの作り方について詳しいホームページをおねがいします。
0590デフォルトの名無しさん
2007/09/24(月) 14:59:19すみません、すみません
みんなのぱいぱい注文しました
すみません、すみません
0591デフォルトの名無しさん
2007/09/24(月) 15:26:130592デフォルトの名無しさん
2007/09/24(月) 15:35:290593デフォルトの名無しさん
2007/09/24(月) 15:57:020594デフォルトの名無しさん
2007/09/24(月) 16:02:21応用編なら ttp://aspn.activestate.com/ASPN/Python/Cookbook/ とか。
あとは、気になるモジュールでぐぐれば、何か出るだろ。
0595デフォルトの名無しさん
2007/09/24(月) 20:25:14そこにサンプルコードがあるんですか?
0596デフォルトの名無しさん
2007/09/24(月) 20:53:34「標準ライブラリ」っていうのは、 sys とか os とか、Pythonをインストールするとすぐに使えるようになる同
梱ライブラリ集のことだよ。
ライブラリ自身のコードもPythonで記述されてるから、どうやって実装されてるか中身を除くと勉強になる。
windowsなら、 c:\Python24\Lib あたりを探せば入ってる。
Linuxなら、たぶん /usr/lib/python だろう。
ドキュメントはここ
http://www.python.jp/doc/nightly/lib/
0597デフォルトの名無しさん
2007/09/25(火) 00:21:28http://shibapuki.shibaok.net/index.php?Works
Python tips
http://shibapuki.shibaok.net/index.php?%A5%D7%A5%ED%A5%B0%A5%E9%A5%E0%BC%FE%A4%EA
0598デフォルトの名無しさん
2007/09/25(火) 01:02:08ありがとうございます。
できました。
0599577
2007/09/25(火) 20:54:55GUI窓を開いて入力をそっちに移すことで強引に解決しますた
0600デフォルトの名無しさん
2007/09/26(水) 12:46:030601デフォルトの名無しさん
2007/09/26(水) 19:40:070602デフォルトの名無しさん
2007/09/26(水) 20:14:12while y:
print unichr(x),
x += y.pop(0)
0603デフォルトの名無しさん
2007/09/26(水) 22:20:56み っ く み く に し て あ げ る ♪
0604デフォルトの名無しさん
2007/09/26(水) 23:21:340605デフォルトの名無しさん
2007/09/27(木) 00:21:19def foo(a, b):
print unichr(a),
return a + b
reduce(foo, y, x)
0606デフォルトの名無しさん
2007/09/27(木) 00:50:280607デフォルトの名無しさん
2007/09/27(木) 02:00:480608デフォルトの名無しさん
2007/09/27(木) 07:02:53たとえば
class Foo(object):
def __init__(self):
self.x = 0
self.y = 0
foo = Foo()
foo.x = 10
foo.y = 20
とあるときに、
foo.z = 30
がエラーとなってほしいなーと。
0609デフォルトの名無しさん
2007/09/27(木) 08:30:510610デフォルトの名無しさん
2007/09/27(木) 09:46:36reduceは3000で消える。
代わりにfoldlとfoldrになる。
といいなと思った。
0611デフォルトの名無しさん
2007/09/27(木) 22:36:58def a():
print 'abc',
raw_input('')#ここで何か入力してBackspace
print 'abc',
raw_input(' ')#空文字でなければ大丈夫
0612デフォルトの名無しさん
2007/09/27(木) 22:54:29s = f.read()
でコマンドを実行し、その結果を取得できますが、stdout だけしかとってこれないようです。
stdout と stderr の両方を取ってくるにはどうしたらいいですか。
なお stdout と stderr を別々に取ってくるのではなく、両方を区別せずに、コマンドの結果を取ってきたいです。
0613デフォルトの名無しさん
2007/09/27(木) 23:08:01subprocess か os.popen4 ?
0614デフォルトの名無しさん
2007/09/27(木) 23:38:59Unixなら
os.popen('ls -l 2>&1')
とかでおk
0615デフォルトの名無しさん
2007/09/27(木) 23:39:04os.popen4() がまさに欲しいものでした。どうもありがとうございます。
あと別の質問なのですが、あるクラスの親クラスを調べるにはどうしたらいいでしょうか。
例えばValueErrorの親クラスを知りたいとき、ValueError.__class__ は違いますし、ValueError.__parent__ とかそういうのもなさそうだし、困ってます。
0616デフォルトの名無しさん
2007/09/27(木) 23:48:440617デフォルトの名無しさん
2007/09/28(金) 00:15:00ValueError.__bases__
で親クラスの一覧がとってこれるみたいです。ありがとうございます。
しかし dir(ValueError) しても __bases__ は見当たらないのですが、どういうことでしょうか。
0618デフォルトの名無しさん
2007/09/28(金) 06:57:370619デフォルトの名無しさん
2007/09/28(金) 07:03:070620デフォルトの名無しさん
2007/09/28(金) 12:35:11class Foo(object):
__slots__ = ('x', 'y')
def __init__(self):
self.x = 0
self.y = 0
0621デフォルトの名無しさん
2007/09/28(金) 18:25:41<script>タグのようにに内部がCDATAと解釈されるものを与えた場合、
パースツリーのelementのtext要素には元のタグの内容がそのまま入るのですが、
tostring()やtounicode()を用いてシリアライズすると、そのようなタグの中身
であっても、エンティティ参照などでエスケープされてしまうようです。
そういうことをされては困るのですが、何か良い方法はあるでしょうか。
ちょっと調べただけでは良く分からなかったので、treeをwalkしつつtext部分を
リストにぶっこ抜きして、elementのtext要素を一旦ダミーデータに置換して
シリアライズ、その後で保存していたリストを用いてダミーと再置換、
という手で逃げることは出来ましたが、いかにもadhocで汚いように思います。
0622デフォルトの名無しさん
2007/09/28(金) 21:35:36Python上で得られたJavascriptコードを動作させることは可能でしょうか。
ちなみに以前、必要に迫られて既に存在したPython表記のスクリプトに手を入れて
正常に動作する物を作ったことはあります。一応アセンブラ、Cとかは一通り趣味レベルで勉強済みです。
0623デフォルトの名無しさん
2007/09/28(金) 22:06:100624デフォルトの名無しさん
2007/09/28(金) 23:00:13>Python上で得られたJavascriptコードを動作させることは可能でしょうか。
悪いが、JavaScriptコードがどこで得られたのか、
また、そのコードどこで動作させるのか文意から読み取れない。
>ちなみに以前、必要に迫られて既に存在したPython表記のスクリプトに手を入れて
>正常に動作する物を作ったことはあります。
「Python表記のスクリプト」とは何を表すのかよくわからない。
「Pythonで書かれたJavaScriptインタプリタ」の意味にも取れるが
第1文と矛盾しているように感じる。
0625デフォルトの名無しさん
2007/09/28(金) 23:09:410626デフォルトの名無しさん
2007/09/29(土) 00:06:59>>> import lxml.etree as ET
>>> html = ET.HTML('<script>alert("&");</script>')
>>> ET.tostring(html)
'<html><head><script>alert("&");</script></head></html>'
こういうことですよね。XMLならともかくHTMLのときにまでこうされると不便な気も。
tostring()の返り値をxml.sax.saxutils.unescape()に渡してみたらとか
思ったけれど、なんか落とし穴がありそうで・・・
0627デフォルトの名無しさん
2007/09/29(土) 00:23:20> こういうことですよね。
ちがうと思われ。
0628デフォルトの名無しさん
2007/09/29(土) 05:22:22DOMForm?
0629デフォルトの名無しさん
2007/09/29(土) 08:59:24エンティティ参照程度なら、reでなんとかなるだろ。
0630デフォルトの名無しさん
2007/09/29(土) 09:23:37意図は汲み取っていただいたようですが、
あなたの貼り付けたものはどちらも & に見えます。自分の環境では。
後者は & という意味でしょうか。
>>629
おっしゃる意味が分かりませんが、>>621で述べたように
私はエレメントツリーのトラバーサルをわざわざ
行って(ここはXPathでもいいでしょうが)、__REPLACED_CDATA__のような
データに置換え(もとのデータはリストに保存しておく)、
tostring()やtounicode()でシリアライズ後、その文字列に対して
reで置換しました。
出来ればそういういかにも実装依存の汚い仕事はやりたくない、という話です。
DOMやElementTreeにしてくれるツリーパーサが要らないのならHTMLParserで
いいのですが、このケースでは、ツリーパーサが欲しかったのです。
他に良いツリーパーサ(XPathが使えるものが望ましい)があるのなら、
そちらに乗り換えますが。
0631デフォルトの名無しさん
2007/09/29(土) 10:33:23tostringをラップすればいいと思ったんだが。それでだめなの?
あと、この場合reよりstringの方がいいかも。
0632626
2007/09/29(土) 10:40:48> 後者は & という意味でしょうか。
です。エスケープ処理してから貼り付けるの忘れてました。
HTMLパーサならBeautifulSoupか、
ElementTreeAPIの使えるElementSoupを試してみるとか。
ただ両者ともXPathは使えないです。
ほんとはlxmlで一本化できればいいんですけど・・・。
0633デフォルトの名無しさん
2007/09/29(土) 11:29:03自分はPythonに関してはほぼ素人ですので、
そういうことが出来るのなら、やり方を教えていただけませんか。
lxmlのエレメントオブジェクトはCモジュールで実装されている実装詳細で、
__str__や__repr__は単にクラス名とアドレスを返すだけです。
個々のエレメントにはtostring()というメソッドは実装されていません。
シリアライズはlxml.etreeがやる仕事で、これは与えられたエレメント
以下のサブツリーを再帰的にシリアライズします。
>>632
なるほど。ツリーパーサでXPathが使えないのは正直痛いですねぇ。
0634デフォルトの名無しさん
2007/09/29(土) 11:57:230635デフォルトの名無しさん
2007/09/29(土) 12:09:56画像ファイルサポートといえば PIL が有名ですが、
これらのライセンスを詳しく日本語訳したサイトはありませんか?
こちらのソース非公開で商用利用できるかどうかが知りたいのですが。
0636デフォルトの名無しさん
2007/09/29(土) 12:18:43http://www.geocities.co.jp/SiliconValley-Cupertino/8526/wxWindows/license.html
に解説があるけど、これが最新版の wxWidgets についても当てはまるのかと、
PILについては
http://www.pythonware.com/products/pil/license.htm
の日本語訳が。。。。
0637デフォルトの名無しさん
2007/09/29(土) 14:59:050638デフォルトの名無しさん
2007/09/29(土) 16:07:44どうすればいいですか?
0639デフォルトの名無しさん
2007/09/29(土) 16:33:43>>> print struct.unpack("b", struct.pack("B", 0xff))[0]
-1
0640デフォルトの名無しさん
2007/09/29(土) 17:17:59一般論として、ライセンスの条項は原文で理解するべきだと思うよ。
和訳はあくまで参考。間違いがあってライセンス違反になっても言い訳できない。
読んで分からなければ、分かる人に頼るべき。
0641デフォルトの名無しさん
2007/09/29(土) 17:59:34スクリプト内に os.getcwd() を書き、IDLEで開き、実行すると、
スクリプトファイルのあるディレクトリが返りますが、
タスク(スケジューラ)でスクリプトファイルを指定して、自動起動したとき、
os.getcwd() で返るのは、 c:\windows\ になってしまいます
この時に、スクリプトファイル自身があるディレクトリを取得する方法はありますでしょうか?
0642デフォルトの名無しさん
2007/09/29(土) 18:18:330643デフォルトの名無しさん
2007/09/29(土) 18:23:03sys.argv[0]で取得できないかな?
0644デフォルトの名無しさん
2007/09/29(土) 18:40:450645デフォルトの名無しさん
2007/09/29(土) 19:09:390646デフォルトの名無しさん
2007/09/29(土) 19:24:59a=0xff; ~255 ^ a
0648622
2007/09/30(日) 08:22:09>悪いが、JavaScriptコードがどこで得られたのか、
Pythonの処理で外部より得られたテキストコードを前提にしてます
>また、そのコードどこで動作させるのか文意から読み取れない。
PythonにJavaScriptを動作させるライブラリかなにかがどこかにないかと思いまして。
外部に渡すとか、
最悪自前でPython上で動くJavaScriptサブセットインタプリタを書こうかとも考えてます。
もっとも根本的に別の手段を使うことも考えてはいますです。
>「Python表記のスクリプト」とは何を表すのかよくわからない。
>「Pythonで書かれたJavaScriptインタプリタ」の意味にも取れるが
>第1文と矛盾しているように感じる。
ぶっちゃけiriaのスクリプトだったり…
0649デフォルトの名無しさん
2007/09/30(日) 08:48:43放置されてて使えるかわからないけど、python-spidermonkeyってあるね。
自分でCとかを使って、SpiderMonkey使うモジュール作るなら、
ttp://module.jp/blog/techtalk5.html
とか参考になる。
ttp://www.adaptive-enterprises.com.au/~d/software/see/
はアプリ埋め込み用JavaScriptの実装
See Alsoみると、他のオープンな実装のリンクがあるよ
0650デフォルトの名無しさん
2007/09/30(日) 21:49:45正直探したけど見つかりません
0651デフォルトの名無しさん
2007/09/30(日) 21:52:44にありました!正直ごめんなさい!
でもリンク辿ってても一向に見つからなかったのは何でだろう・・・
(python jp chmでググったらchmファイルへのURLが直接あった)
0652デフォルトの名無しさん
2007/09/30(日) 23:07:54d = {'a':10, 'b':20}
d.pop('x') #=> KeyError
d.pop('x', None) #=> 第2引数が返される
このように、任意の値を取ることができる省略可能な引数がある場合に、引数が指定されたかどうかを調べるにはどうしたらいいですか。
例えば次のような定義だと、引数にNoneを指定した場合に例外が発生してしまいます。こうではなくて、引数が指定されなかった場合のみ例外が発生するようにしたいです。
(例が恣意的なのは突っ込み禁止)
def f(arg=None):
if arg is None: raise Exception()
else: return None
あとは *args とする方法も考えられますが、間違った数の引数を渡してもエラーにならないので、あまりいい方法ではないです。
def f(*args):
if len(args) == 0: raise Exception()
else: return args[0]
0653デフォルトの名無しさん
2007/09/30(日) 23:19:150654デフォルトの名無しさん
2007/09/30(日) 23:21:22*argsで間違った数の引数を全部エラーにすればいい。
0655デフォルトの名無しさん
2007/10/01(月) 06:37:520656デフォルトの名無しさん
2007/10/01(月) 21:13:48>>655で十分なんじゃないの?と言う気もする。
class MyNullObject:
pass
def mypop(firstArg, secondArg=MyNullObject()):
if isinstance(secondArg, MyNullObject):
print "mypop(firstArg)"
else:
print "mypop(firstArg, secondArg)"
>>> mypop(1)
mypop(firstArg)
>>> mypop(1, 2)
mypop(firstArg, secondArg)
>>> mypop(1, 2, 3)
Traceback (most recent call last):
File "<pyshell#24>", line 1, in <module>
mypop(1, 2, 3)
TypeError: mypop() takes at most 2 arguments (3 given)
0658デフォルトの名無しさん
2007/10/02(火) 08:57:490659652
2007/10/02(火) 10:41:04ありがとうございます。
言語機能として直接サポートしているわけではないようですので、656の方法を改良して使うことにしました。
_nullobject = object()
def f(arg1, arg2=_nullobject):
if arg2 is _nullobject:
print 'f(arg1)'
else:
print 'f(arg1, arg2)'
0660デフォルトの名無しさん
2007/10/02(火) 16:55:36TypeError: text must be set to a wide string.
こういうエラーが出るのですが、何が原因でしょうか?
分かる方お願いします。
0661デフォルトの名無しさん
2007/10/02(火) 17:46:19書いてあるじゃんw
0662デフォルトの名無しさん
2007/10/02(火) 18:57:36|
∩___∩ |
| ノ _, ,_ ヽ (( | プラプラ
/ ● ● | (=)
| ( _●_) ミ _ (⌒) J ))
彡、 |∪| ノ
⊂⌒ヽ / ヽノ ヽ /⌒つ
\ ヽ / ヽ /
\_,,ノ |、_ノ
0663デフォルトの名無しさん
2007/10/02(火) 20:06:110664デフォルトの名無しさん
2007/10/02(火) 20:06:55split()とかpop()とかread()とかの招待ってclass:で作れる奴と同じですか???
それでそれをインポートして使えるようにしているだけですか??
0665デフォルトの名無しさん
2007/10/02(火) 20:21:450666デフォルトの名無しさん
2007/10/02(火) 20:24:46考えがすっきりしましたありがとう
0667デフォルトの名無しさん
2007/10/02(火) 21:54:020668656
2007/10/02(火) 22:56:33それもいいですね。
IDLEを使ってるから、補完されるときにNullObjectって表示されるように
>>656みたいにしてたんですけども。
0669デフォルトの名無しさん
2007/10/03(水) 22:53:37[[1,2], [4,5], [7,8]] を得たいんです。
forを使えば出来ますが、1行で記述可能であれば
教えてください。
0670デフォルトの名無しさん
2007/10/03(水) 22:57:33b = [0,1]
[ [ t[i] for i in b ] for t in a ]
0671デフォルトの名無しさん
2007/10/03(水) 23:04:360672デフォルトの名無しさん
2007/10/03(水) 23:09:23>>> [i[:2] for i in a]
[[1, 2], [4, 5], [7, 8]]
0673デフォルトの名無しさん
2007/10/03(水) 23:11:55>>> a = numpy.array([[1,2,3],[4,5,6],[7,8,9]])
>>> a[:,:2]
array([[1, 2],
[4, 5],
[7, 8]])
0674デフォルトの名無しさん
2007/10/03(水) 23:14:03どっちにしてもfor使ってるけど。
[i[:-1] for i in a]
0675デフォルトの名無しさん
2007/10/03(水) 23:46:49forを使わないって普通にこれじゃダメなのか?
>>> a=[[1,2,3],[4,5,6],[7,8,9]]
>>> b=[a[0][:2],a[1][:2],a[2][:2]]
>>> print b
[[1, 2], [4, 5], [7, 8]]
0676デフォルトの名無しさん
2007/10/03(水) 23:55:53参考になります。有難うございました。スライス記法とか何か便利な関数があるのかと思いまして質問しました
>675
aの個数が固定ではないんです。
0677デフォルトの名無しさん
2007/10/04(木) 00:17:10例の出し方がいまいちだったな。
各要素の始めの2個を取り出したいのか、最後以外を取り出したいのかで
>>672や>>674のような違いがでてくるからな。
0678デフォルトの名無しさん
2007/10/04(木) 00:30:51a = [[1,2,3],[4,5,6],[7,8,9]]
b = map( lambda x: x[:2], a )
print b
0679デフォルトの名無しさん
2007/10/04(木) 01:18:07関数表記なmapでいい
と思っていたが、
最近は内包表記に慣らされてきたw
0680デフォルトの名無しさん
2007/10/04(木) 02:11:210681デフォルトの名無しさん
2007/10/04(木) 02:31:060682デフォルトの名無しさん
2007/10/04(木) 03:30:20delだと、keyがないときにKeyErrorが発生します。
keyかないときは例外を発生されるではなく、単にNoneを返すようにしてくれたほうがよかった気も質す。
0683デフォルトの名無しさん
2007/10/04(木) 05:53:05マップはPython3000にはない
0684デフォルトの名無しさん
2007/10/04(木) 07:01:540685デフォルトの名無しさん
2007/10/04(木) 07:34:46そうなのか
0686デフォルトの名無しさん
2007/10/04(木) 11:04:260687デフォルトの名無しさん
2007/10/04(木) 11:41:02mapもfilterもlist内包で普通に代用できるが
reduceは(少なくとも簡単には)代用できんように思える
0688デフォルトの名無しさん
2007/10/04(木) 11:45:530689デフォルトの名無しさん
2007/10/04(木) 12:12:320690デフォルトの名無しさん
2007/10/04(木) 12:18:27代替物がないので残ることになった
というのが経緯。
0691デフォルトの名無しさん
2007/10/04(木) 12:40:270692デフォルトの名無しさん
2007/10/04(木) 12:58:42それを代替案としてうけいれられない方々もいるってことか。
0693デフォルトの名無しさん
2007/10/04(木) 13:33:33ドキュメントの引数の名前と実際の名前が違ってて調べるのマンドイ時だけど
あとは)の連続になるのが嫌なときとか
0694デフォルトの名無しさん
2007/10/04(木) 17:09:34スコープが違うから難しいんじゃない
0695デフォルトの名無しさん
2007/10/04(木) 18:57:43でもこういう発想はどちらかと言えばPerl的かもな……
lambdaの中で副作用の無い式しか書けないことも、クロージャから
レキシカル変数を参照はできても変更できないことも、なんだか中途半端だ
そういう場合は関数オブジェクトを作れ、がPythonの解かもしらんが、それを
推し進めると、Javaのようになってしまう気がする
0696デフォルトの名無しさん
2007/10/04(木) 21:19:23そういうときに使うlambdaの代替手段がない,ということじゃないのかなあ。
0697デフォルトの名無しさん
2007/10/04(木) 21:36:130698610
2007/10/05(金) 01:38:43右からか左からか分からない
0699デフォルトの名無しさん
2007/10/05(金) 02:52:23http://www.artima.com/weblogs/viewpost.jsp?thread=211200
でこういっとるよ。
because almost all code using reduce() is less readable than the same thing
written out using a for loop and an accumulator variable.
読みやすさの問題らしい。
0700デフォルトの名無しさん
2007/10/05(金) 07:10:58まあ消すと言っても、importすれば同等の機能は使えるみたいだし、いいんじゃない?
0701デフォルトの名無しさん
2007/10/05(金) 08:11:58その検索ワードの特徴を示す単語を抽出し、出現単語とその頻度を
txtまたはcsvファイルに出力するプログラムを作りたいんですけど
どうすればいいでしょうか?何かアドバイスお願いします。
0702デフォルトの名無しさん
2007/10/05(金) 08:48:22UNICODEファイル名を拾って来る訳じゃ無いんだね.
非日本語なWindowsで日本語ファイル名のファイルが扱えなくて困ってしまった.
結局他のスクリプト言語使ったけど.
v3.xxでは改善されてますか?
0703デフォルトの名無しさん
2007/10/05(金) 09:28:37unicodeでファイル名を拾ってくるように指示すればいいじゃん
0704デフォルトの名無しさん
2007/10/05(金) 09:43:040705702
2007/10/05(金) 09:57:38レスどうも.
へぇ,出来たんだ. ヘルプを斜め読みしてすいません.
os.listdir(u"C:/")
こんな感じかな. いま試せないので今度やってみる.
0706デフォルトの名無しさん
2007/10/05(金) 10:39:23> その検索ワードの特徴を示す単語
の定義がわからん。
0707デフォルトの名無しさん
2007/10/05(金) 22:24:12constみたいなやつ。もし無いとしたら、その理由はなんか
あるんですか。あった方が圧倒的に便利だと思うんだけど。
0708デフォルトの名無しさん
2007/10/05(金) 22:29:220709707
2007/10/05(金) 22:43:45すいません。ググったらすぐに答えらしきものがでてきました。
なぜ定数が無いのかはイマイチよく解りませんでしたが。
0710デフォルトの名無しさん
2007/10/05(金) 23:12:53Pythonは高速化する予定とかあるの?
0711デフォルトの名無しさん
2007/10/05(金) 23:26:47あと、IronPythonはCPythonより高速とか、JythonはJVMのパワーアップのおかげで
CPythonより高速とかいう話はあるが、殆どの人はCPythonで十分と思ってるんじゃない?
つか、ベンチで○○より遅いよ!という人はいるけど、
CPythonが遅くて本当に困っている人ってあんまり見かけた事無い。
ML見てると、時々出て来るけど、Guideもあまり興味はなさそう。
いつかParrotが実用に耐える代物になれば、動作速度の問題はそっちで解決するんじゃね?
0712デフォルトの名無しさん
2007/10/06(土) 00:10:42Twitterの遅さを見るとRubyは使いたくないなあと思うます。
0713デフォルトの名無しさん
2007/10/06(土) 00:36:510714デフォルトの名無しさん
2007/10/06(土) 01:16:05都市伝説を信じてしまう騙されやすい人ハッケソwwww
0715デフォルトの名無しさん
2007/10/06(土) 01:36:56psyco使うと数倍速くなることがある
pypyはどうなってんだろ?
0716デフォルトの名無しさん
2007/10/06(土) 01:37:00JAVA並みに早くなってほしいな。
0717デフォルトの名無しさん
2007/10/06(土) 02:07:08pypyは高速化のためのプロジェクトなのか?
0718デフォルトの名無しさん
2007/10/06(土) 03:54:470719デフォルトの名無しさん
2007/10/06(土) 08:36:01知ったかぶりハズいwwwwwwwwwwwwwwww
0720デフォルトの名無しさん
2007/10/06(土) 10:04:34スループットを要求される類のプログラムなら問題だろうが、最初から
そんなもんはPythonで書かんだろ。
今時のプログラムの多くはどうせネットワークだのI/Oだのがボトルネックなん
だしな。
IronPythonはアセンブリをngenしといてもまだ起動がのろすぎると思った。
ちっとばかり実行時間が速いのかもしれないが、俺にはそっちのが問題だ。
0721デフォルトの名無しさん
2007/10/06(土) 10:22:46Matzにっき(2007-06-28)
http://www.rubyist.net/~matz/20070628.html
これ見て思うに速度と可読性はトレードオフだと
思う俺がいる
0722デフォルトの名無しさん
2007/10/06(土) 10:33:25認定試験とかはじめたから・・・
0723デフォルトの名無しさん
2007/10/06(土) 10:41:41考えそうな事だ。
0724デフォルトの名無しさん
2007/10/06(土) 12:23:120725デフォルトの名無しさん
2007/10/06(土) 12:29:32いわゆるハーフクローズを扱うにはどうすればいいのかな。
サンプルのechoserver.pyを試してみたんだが、
クライアント側がshutdownによってハーフクローズを行い、その結果として
FINを受け取ると、送信すべきデータが残っていてもそれを破棄して
クローズしてしまう。
0726デフォルトの名無しさん
2007/10/06(土) 12:34:01そうかなあ。高級言語である関数型言語にもコンパイル型のはあるし、
コンパイルすればインタプリタよりは全然速いし。
OCamlなんかはJavaより速いようだけれども。
0727デフォルトの名無しさん
2007/10/06(土) 13:23:53Matzはすこし自分に引き寄せて語りすぎだな
ある言語に「どんなことが可能か」と「どんなことが簡単にできるか」というのは
違うし、ある言語であることが簡単に出来たからといって
あらゆることが簡単にできるわけでもない
見方によっては、XMLはLispのS式の劣化再発明だろう
プログラムの構文木だのデータだのを実行に組み立てたり書き換えたり
読み込んだりする能力を云々するのなら、Lispにまさるものはないということになる
そういう面だけを言えばな
0728デフォルトの名無しさん
2007/10/06(土) 14:37:23昔、
http://www.python.org/pycon/dc2004/papers/27/
と書いてあったんで、そのうち速くなるのかな…と
でもまだCPythonより遅いみたいだね
0729725
2007/10/06(土) 14:59:30ハーフクローズに対応したechoserv.pyは以下のようになるが、何しろ今日
弄りだしたばかりなので、これで良いかどうかは分からない
(一応動いているように見えるけど)。
#!/usr/bin/python
from twisted.internet.protocol import Protocol, Factory
from twisted.internet import reactor
from zope.interface import implements
from twisted.internet.interfaces import IHalfCloseableProtocol
class Echo(Protocol):
implements(IHalfCloseableProtocol)
def dataReceived(self, data):
self.transport.write(data)
def readConnectionLost(self):
self.transport.loseWriteConnection()
def writeConnectionLost(self):
self.transport.loseConnection()
def main():
f = Factory()
f.protocol = Echo
reactor.listenTCP(8000, f)
reactor.run()
if __name__ == '__main__':
main()
0730デフォルトの名無しさん
2007/10/06(土) 22:46:50それって処理系に依存しないところで
早さが決まってないか?
0731デフォルトの名無しさん
2007/10/06(土) 23:10:05( ゚∀゚)!
0732デフォルトの名無しさん
2007/10/07(日) 04:13:34def func(seed):
if seed ==[]:
yield []
else:
for n in seed[0]:
for x in func(seed[1:]):
yield [n] + x
# f([[1,2,3],[4,5,6],[7,8,9]])
ド低脳の俺には再帰で書くのが精一杯。でもこの関数の再帰のオーバーヘッドが無視できないプログラムを書いているので
助けてスーパーハカー
0733デフォルトの名無しさん
2007/10/07(日) 05:36:40Stackless Python
0734デフォルトの名無しさん
2007/10/07(日) 10:26:23単にリストをコピーしまくってるから遅いんじゃないのって気もするけど。
def f(seed):
def i2val(lst):
result = [ 0 ] * len(lst)
for i in range(len(lst)):
result[i] = seed[i][lst[i]]
return result
cur = [ 0 ] * len(seed)
end = cur[:]
for i in range(len(seed)):
end[i] = len(seed[i])
yield i2val(cur)
pos = right = len(seed) - 1
while pos >= 0:
cur[pos] += 1
if cur[pos] < end[pos]:
pos = right
yield i2val(cur)
else:
cur[pos] = 0
pos -= 1
0735デフォルトの名無しさん
2007/10/07(日) 12:48:12で受け取った引数を
def setcolor_rgba(self, r, g, b, a)
に渡したいんだけど、素直に
setcolor_rgba(rgb[0], rgb[1], rgb[2], a)
ってやるしかない?気分的には
setcolor_rgba(*rgb, a)
ってやれるとすっきりするけど、これだと構文エラーだし。
0736デフォルトの名無しさん
2007/10/07(日) 13:10:36func([[[0, 1, 0, 1], [1, 0, 1, 0]], [[0, 0, 0, 0]], [[0, 0, 0, 1], [0, 0, 1, 0], [0, 1, 0, 0], [1, 0, 0, 0]])
=>全ての組み合わせ
0737デフォルトの名無しさん
2007/10/07(日) 13:14:29def setcolor_rgba(self, a, *args)
setcolor_rgba(a, *rgb)
0738デフォルトの名無しさん
2007/10/07(日) 13:54:36後は自分でやれよ
0739デフォルトの名無しさん
2007/10/07(日) 16:46:410740デフォルトの名無しさん
2007/10/07(日) 18:10:18確かに原因の半分以上は処理系以外の部分で起こってるだろう。
でも、取り巻いてる環境が悪いことに違いないんじゃないかな。
0741デフォルトの名無しさん
2007/10/07(日) 19:01:47>>> round(2.55, 1)
2.6000000000000001
>>> round(3.33333, 1)
3.2999999999999998
となってしまいます。上の例の場合、それぞれ「2.6」、「3.3」を出したいのだけど、どうすればいいのでしょうか?
round()関数はこういう用途ではない?
0742デフォルトの名無しさん
2007/10/07(日) 19:22:31いや、そもそも小数点型がそういう用途ではない。
外面を整えればいいだけなら文字列に変換すればいいが、
厳密に計算させる必要があるならdecimalでも使え。
0743デフォルトの名無しさん
2007/10/07(日) 19:38:47表示が問題なだけなら
"%.1f" % round(2.55,1)
とかでいいだろ
文字列になっちまうが
0744デフォルトの名無しさん
2007/10/07(日) 23:33:27copy2だとプロパティはコピーされませんよね。
0745デフォルトの名無しさん
2007/10/07(日) 23:40:17その前に、「出来るWindows」って本を買ってきたほうが良いぞ。
0746デフォルトの名無しさん
2007/10/08(月) 00:24:540747デフォルトの名無しさん
2007/10/08(月) 00:29:340748デフォルトの名無しさん
2007/10/08(月) 07:15:54>>> round(2.55, 1)==2.6
True
>>> round(3.33333, 1)==3.3
True
>>> 2.6
2.6000000000000001
>>> 3.3
3.2999999999999998
0749デフォルトの名無しさん
2007/10/08(月) 07:21:07素直にやるなら
def setcolor_rgba(self, rgb, a)じゃないのか?
*arg は「可変」引数であって、rgbの長さは明らかに可変じゃない
0750デフォルトの名無しさん
2007/10/08(月) 16:13:30> setcolor_rgba(rgb[0], rgb[1], rgb[2], a)
> ってやるしかない?
俺だったら気にせずそう書くか、あるいは
r, g, b = rgb
setcolor_rgba(r, g, b, a)
かな。
0751デフォルトの名無しさん
2007/10/08(月) 16:52:51return setcolor_rgba(self, r, g, b, a)
とでもしといて
setcolor_argb(a, *rgb)
でいいんじゃね
0752デフォルトの名無しさん
2007/10/08(月) 17:02:40return self.setcolor_rgba(r, g, b, a)
の間違い
多分returnいらんのだろうけど
0753デフォルトの名無しさん
2007/10/09(火) 00:04:29PyDev が Python2.5の構文に対応するのはいつなんだろうか。
a = b if c else d
がエディタ上で構文エラー扱いになってうざい
0754デフォルトの名無しさん
2007/10/09(火) 00:16:32エラーにならない
0755デフォルトの名無しさん
2007/10/09(火) 02:15:41Eclipse 3.2.2
PyDev 1.2.9
0756デフォルトの名無しさん
2007/10/09(火) 03:22:35>>751
引数リストの長さが毎回変わる可能性のあるところ以外で可変引数を使うべきではない
*rgbって言いたいだけにしか見えない。
0757PILに入ってる気もするけど
2007/10/09(火) 13:17:57〜
0758デフォルトの名無しさん
2007/10/09(火) 14:38:010759デフォルトの名無しさん
2007/10/09(火) 14:46:460760デフォルトの名無しさん
2007/10/09(火) 15:29:57実験を許してる所は無いんじゃないかな…
自分は Windows + Apache + Python の自宅環境で実験してからアップロードするけど
0761デフォルトの名無しさん
2007/10/09(火) 16:06:550762デフォルトの名無しさん
2007/10/09(火) 17:15:47Pydev Package Explorerから
Properties -> PyDev - project type
0763デフォルトの名無しさん
2007/10/09(火) 19:13:03land.toってのが無料でpython(2.4らしい)が使用可能らしい
xreaは無料でpython可能みたいだけど今募集してない
実験内容がもう決まってるなら、有料サービスの無料お試し期間で実験という手も・・・、
0764758
2007/10/09(火) 22:52:57でも、とてもアマちゃんな考え方だと、だんだん自覚してきたので、海外の有料鯖を本気で探してみます。
0765デフォルトの名無しさん
2007/10/09(火) 22:54:420766デフォルトの名無しさん
2007/10/10(水) 02:27:51ひろこちゃんは後ろから8人目。たかし君とひろこちゃんの間に
いる生徒の人数は何人か?
とかいう問題をやってたのだけどpythonで解くとどうなりますか?
番組だとひろこちゃんが前から12番目だから len([5:12]) みたい
に解いてました。小学2年生の問題で悩んでる俺�d
0767デフォルトの名無しさん
2007/10/10(水) 02:46:330768デフォルトの名無しさん
2007/10/10(水) 02:46:380769デフォルトの名無しさん
2007/10/10(水) 07:39:56len(c[5:-8])
でいいんじゃね
0770デフォルトの名無しさん
2007/10/10(水) 09:39:01でいいんじゃね
0771デフォルトの名無しさん
2007/10/10(水) 11:54:31どちらかでビルトインオブジェクトやクラスの引数とドキュメンテーション文字列のみの
一覧をモジュール単位で(エディター部と確か専用ペインにアイコン付で)表示出来たんですがどうやったのか忘れてしまいました
どちらのソフトでどうやったら表示出来るんでしょう
pyscripterのtools->source code views->documentationではありません
属性やクラスのアイコンの記憶からはpyscripterの方だったと思うんですが
0772デフォルトの名無しさん
2007/10/10(水) 16:26:45だよなあ。たかし君ごと前を、ひろこちゃんごと後ろをブチ殺せば、二人の間の奴らだけ生き残る。
0773最近のニュースを見てると笑えない
2007/10/10(水) 18:37:460774デフォルトの名無しさん
2007/10/10(水) 21:38:050775デフォルトの名無しさん
2007/10/10(水) 22:15:17やりたいこといまいちよくわからないけど、Code Exploreで
左側のペインにClass一覧とか関数一覧は表示される > PyScripter
0776デフォルトの名無しさん
2007/10/11(木) 00:48:37「あ_い___うえ____お」→「あ_い_うえ_お」
こんな感じで。
一度、スペースで切り分けて、スペースを除去してからスペースを一つつけてつなぎ合わせるしかないのかな???
0777デフォルトの名無しさん
2007/10/11(木) 00:56:14import re
re_space = re.compile(u"_+")
s, n = re_space.subn(u"_", u"あ_い___うえ____お")
print s
print n, u"回\u75f4\u6f22しますた(ぉぃ"
0778デフォルトの名無しさん
2007/10/11(木) 01:02:59正規表現を使うのか。ありがとう!
0779デフォルトの名無しさん
2007/10/11(木) 04:45:36だれか使えた人はいますか?
0780デフォルトの名無しさん
2007/10/11(木) 05:07:41っていうシーケンスから
(x0, x1, x2, ...) と (y0, y1, y2, ...) の二つのシーケンスを生成するような
関数が標準ライブラリにあったような気がするんだけど、、なんだっけ?
与えられた座標の組から、最小のX、最大のX、
最小のY、最大のYをみつけだしたいんだけど
どうもエレガントに書けないんだ
0781デフォルトの名無しさん
2007/10/11(木) 06:45:28スレッドの実行を、CPUのコアを指定して実行することはできないのでしょうか?
0782デフォルトの名無しさん
2007/10/11(木) 07:15:52zip()かな?
>>781
CPythonでは出来ない。
0783デフォルトの名無しさん
2007/10/11(木) 07:18:11リスト内包じゃ駄目なのけ?
0784デフォルトの名無しさん
2007/10/11(木) 08:54:310785デフォルトの名無しさん
2007/10/11(木) 10:50:43print min(a, key=lambda p: p[0])
print max(a, key=lambda p: p[0])
print min(a, key=lambda p: p[1])
print max(a, key=lambda p: p[1])
0786デフォルトの名無しさん
2007/10/11(木) 13:24:22import operator
def f(scanfunc, i, seq): return scanfunc(seq, key=operator.itemgetter(i))[i]
f(min, 0, a)
f(max, 0, a)
f(min, 1, a)
f(max, 1, a)
0787786
2007/10/11(木) 21:52:34a = [(0,1), (8,4), (4,0), (5,9)]
zip(*a)
0788デフォルトの名無しさん
2007/10/11(木) 23:11:07地道に
for k, v in dict2.items():
dict1[k] = v
ってやるしかない?
0789デフォルトの名無しさん
2007/10/11(木) 23:18:39dict1.update(dict2)
0790デフォルトの名無しさん
2007/10/11(木) 23:18:490791デフォルトの名無しさん
2007/10/11(木) 23:22:59>>790
0792デフォルトの名無しさん
2007/10/11(木) 23:23:32ケコ━━━━(・∀・)人(・∀・)━━━━ン
0793デフォルトの名無しさん
2007/10/11(木) 23:42:470794デフォルトの名無しさん
2007/10/12(金) 00:00:24type
0795793
2007/10/12(金) 01:37:33できました。どうもありがとう!
>>> s = 'hoge'
>>> isinstance(s, str)
1
>>> isinstance(s, list)
0
>>> l = ['foo', 'bar']
>>> isinstance(l, str)
0
>>> isinstance(l, list)
1
0796デフォルトの名無しさん
2007/10/12(金) 03:54:50hoge()は、「u."ほげほげ"」のように、テキスト以外に文字コードの情報が返ってきます。
print hoge()
のように使う分には「ほげほげ」と表示されて便利なのですが、foo[]のようなものに対し、
while 1
foo = foo + hoge()
このようなことをしていくと、[u."ほげほげ".u."ほげほげ".u."ほげほげ".u."ほげほげ"・・・・]となります。
(蛇足ですが、print fooをすると「u."ほげほげ"」が並びます。)
もし、[ほげほげ,ほげほげ,ほげほげ,ほげほげ・・・・]という配列を得たい場合、元のhoge()に手を加えずに対処するとしたらどうすればよいのでしょうか?
0797デフォルトの名無しさん
2007/10/12(金) 04:52:32u"ほげほげ"みたいな文字列はprintすると
出力先にあった変換が適宜されて"ほげほげ"となるけど
配列(list)ではそうならないだけです。
出力のちがいだけなのでちゃんと配列としては取得できています。
要素ごとに
for e in foo: print e
なんてすると"ほげほげ"……と出ますから。
どうしてもprint fooで期待している出力がほしいなら
標準の配列(list)を拡張したクラスをつくって
その__str__()メソッドを変更すればいいはずです。
foo.__str__()を行えばなんとなくわかると思います。
0798デフォルトの名無しさん
2007/10/12(金) 11:22:590799デフォルトの名無しさん
2007/10/12(金) 11:59:39なんて書いてあるかよく見えてないんじゃね?
0800デフォルトの名無しさん
2007/10/12(金) 12:12:15ちゃんと動くコード例と実際の出力例をコピペして質問し直す方がよい希ガス。
0801デフォルトの名無しさん
2007/10/12(金) 18:08:33基本的にリストの中身は元のオブジェクトの山椒で元のオブジェクトに変更
を加えるとリストの内容も変わってしまうとはっきり赤太字で書いてほしいよ
以前pythonを習得するのに超絶クールなテトリスゲームを作ってみたんだが
ブロックの配列がめちゃくちゃになって原因が分からず苦労したのよ
とりあえずリストをタプルに変換したりすると解決したからもういいけど
あれ不要な混乱もたらしてるからマジでさ勝手に山椒になるのは便利だと思うけど
そこんとこはっきりさせておいてよな?????????????????
0802デフォルトの名無しさん
2007/10/12(金) 18:14:04>元のオブジェクトの山椒で
山椒だったとは知りませんでした!
ありがとうございました!!!
0803デフォルトの名無しさん
2007/10/12(金) 18:24:20>801
何書いても誰かどっかでハマって、結局赤太字だらけになると思うよ。
0804デフォルトの名無しさん
2007/10/12(金) 18:29:390805デフォルトの名無しさん
2007/10/12(金) 18:38:47(言語仕様だけなら小さい方なのかな)
0806デフォルトの名無しさん
2007/10/12(金) 18:59:29俺も、4年ほど前の研究日誌というかメモ書きみたいなのを読みかえしてみると、
「パイソンが便利そうなので使ってみた。」とあり、次の日、
「意図せぬうごき。何時間も無駄にした。配列の複製がまずい?言語のバグか?」とある。
さらにその次の日に「指しているアドレスが同じだ。コピーのしかたがわからない。まさかforループ?」と。
その後へこたれてしばらくPythonを使わなかった記憶がある。
0807デフォルトの名無しさん
2007/10/12(金) 19:01:140808デフォルトの名無しさん
2007/10/12(金) 19:21:13import httplib2
help(httplib2)
IndexError: list index out of range
0809デフォルトの名無しさん
2007/10/12(金) 19:30:01Python2.5.1(Win32) + httplib2-0.3.0
だと問題なくヘルプでた。
0810デフォルトの名無しさん
2007/10/12(金) 19:49:52これから勉強したいんだけど。
0811デフォルトの名無しさん
2007/10/12(金) 20:17:0732Bitだよね。32Bitならpython2.5 + wxpython エディタは
PyScripterで動かしてるよ。インスコも簡単だったよ。
0812デフォルトの名無しさん
2007/10/12(金) 21:43:05ActivePython 2.5.1 + httplib2-0.3.0なんだけど何でだろ。
ActivePythonとPythonで動作が変わるとも思えんし。
0813デフォルトの名無しさん
2007/10/12(金) 21:43:56Vista+Pyscripterはすぐ落ちるんで使ってないな。
0814810
2007/10/12(金) 21:47:53そうです!
できるんだー。ネットで検索したら「PythonはVista未対応」みたいな
掲示板がひっかかったものですから。
ありがとうございます!
0816デフォルトの名無しさん
2007/10/12(金) 22:06:46bit.って…
0817デフォルトの名無しさん
2007/10/12(金) 22:24:19Crash on Exit - PyScripter | Google グループ
http://groups.google.com/group/PyScripter/browse_thread/thread/cf3d0a1858449e19/9bf95335abf3239e?lnk=gst&q=vista#9bf95335abf3239e
これだね。IDE上でコードを実行すると落ちるらしい。
俺Pyscripterはエディタというか簡易SourceCode Viewer代わりに
しか使ってないから気がつかなかったよ。できればDoxygenのほうで
Sourceの管理はやりたいんだがDoxygenのPython Parserの精度が
いまいちで('A`)
0818デフォルトの名無しさん
2007/10/12(金) 23:06:43Vista+XP+ubuntu
0819デフォルトの名無しさん
2007/10/13(土) 08:35:56スタンドアロンでも動くように、
python.dll, opengl.dll, glut.dll, と Python 環境をまるごと
ひとつにまとめてみたら 40MB 以上もするのでびっくり。
プログラムが動く範囲ででいる限りファイル削って行ったら
それでも20MBもあるんだけど、こんなもんなのか???
ちなみに wxPyhton(wxWidgets) 部分だけで10MB以上あるんだけど。。。。
こうなったら Python + wxPython をインストール
してもらった方がよっぽど楽なのかなあ
そうすればPyOpenGLとPILのランタイムを同梱するだけで済むし。
0820デフォルトの名無しさん
2007/10/13(土) 08:44:59そこで上司に提案した。
「Python つかったらどうすかね?」
「それって日本語つかえるの? いや、識別子に。」
「NO」
「じゃだめだな。日本語使えた方が楽だから」
。。。どうにかしてください
ソースいじって日本語識別子つかえるようになるんだったら
考えても良いかもとか言い出して、もうありえないです
プログラム中の2バイト識別子を全部アスキー文字に変換するコンバータ
つくってからもういちど提案してみようかな。なんかすごい無駄な事してる気が。。。
とにかくスクリプトシステムの保守管理がばからしくて仕方ありません。
0821デフォルトの名無しさん
2007/10/13(土) 09:22:16Pythonでもそのうち使えるようになるとか
ttp://www.python.jp/pipermail/python-ml-jp/2007-May/004033.html
0822デフォルトの名無しさん
2007/10/13(土) 09:29:13そんなもんだと思うよ
zipに固めるともうちょっと縮むけどリソースファイルを持ってるモジュールは使えなくなるかも
py2exeのzipextimporter使えばzipから.pydと.dllをインポートできるようになる
NSISとか7z SFXでインストールパッケージにすれば半分くらいになるんじゃないかな
0823デフォルトの名無しさん
2007/10/13(土) 09:42:41転職すれば?
0824デフォルトの名無しさん
2007/10/13(土) 10:33:51マ板の「この会社辞めようと思った〜」系のスレに書いた方がいいような気も。
0825デフォルトの名無しさん
2007/10/13(土) 17:39:030826デフォルトの名無しさん
2007/10/13(土) 18:01:48なでしこでも使かったほうがいいんじゃねーのwww
0827デフォルトの名無しさん
2007/10/13(土) 18:03:560828デフォルトの名無しさん
2007/10/13(土) 18:34:31正直信じられないよ。
0829デフォルトの名無しさん
2007/10/13(土) 18:46:270830デフォルトの名無しさん
2007/10/13(土) 19:01:430831デフォルトの名無しさん
2007/10/13(土) 19:29:12class インタフェース:
def 解放(self):
...
それを使うBさん:
import db
データ = db.インターフェイス()
...
データ.開放()
0832デフォルトの名無しさん
2007/10/13(土) 19:31:350833デフォルトの名無しさん
2007/10/13(土) 19:35:42和文用にはロクなスペルチェッカもない
0834デフォルトの名無しさん
2007/10/13(土) 19:41:34import db
データ=db.インターフェース()
Attribute error (wwwwwwwwwwwww
0835デフォルトの名無しさん
2007/10/13(土) 20:01:03まったく話題になってないのでまだリリースまで時間がかかるのかと思っていた。
このスレじゃPyPyは誰も使わないし、興味もないのか?
0836デフォルトの名無しさん
2007/10/13(土) 20:08:31PyPyってネタだろ?
0837デフォルトの名無しさん
2007/10/13(土) 22:53:52httplibのHTTPSConnectionとか使うのかと思ったんですが、
IDやパスワードの指定の仕方などがよく分かりません。
教えていただけるとありがたいです。
0838デフォルトの名無しさん
2007/10/13(土) 23:02:010839デフォルトの名無しさん
2007/10/13(土) 23:19:47ttp://www.python.jp/doc/release/lib/module-httplib.html
> 通常、このモジュールは直接使いません
httpsならhttpと変わらずurllib2でいいし
生のSSL接続がほしいならsocket.ssl()をつかいます。
あと838は極端かもしれないけど最低モジュールライブラリ
ttp://www.python.jp/doc/release/lib/
は一読しておいて損はないです。流し読みでも頭の隅には残るでしょ。
0840デフォルトの名無しさん
2007/10/13(土) 23:20:43>>839の>>827は>>837な
0841デフォルトの名無しさん
2007/10/13(土) 23:32:18うざさは異常。
せめて2バイト空白文字とか2バイト算術演算記号は使えないようにしてほしい
def ア+B#ア(a):
print a
アイ%テム = "HELLO"
ア+B#ア(アイ%テム)
とかされたら死ぬ
0842デフォルトの名無しさん
2007/10/13(土) 23:55:31import urllib as /^○^\チョッモランマァーッ!
以下ry
0843デフォルトの名無しさん
2007/10/14(日) 00:10:210844デフォルトの名無しさん
2007/10/14(日) 00:14:18ありがとうございます。すみません。
調べ不足でした。
初めはurllib2を使って、ハンドラにadd_passwordでID等を
指定してみてたのですが、うまくできず、他の方法を探しているところでした。
socket.ssl()についてはまだよく分かっていませんが、ID等の指定は
HTTPSHandlerで行うのでしょうか?
0845デフォルトの名無しさん
2007/10/14(日) 00:42:23sou sureba banji kaiketsu.
douon igigo ga ookutemo kini sinai.
0846デフォルトの名無しさん
2007/10/14(日) 00:58:28def normpath?(path?)?:
"""Normalize path, eliminating double slashes, etc."""
if path? == '':
return '.'
initial_slashes? = path?.startswith?('/')?
# POSIX allows one or two initial slashes, but treats three or more
# as single slash.
if (initial_slashes? and
path?.startswith?('//')? and not path?.startswith?('///')?)?:
initial_slashesN = 2
0847デフォルトの名無しさん
2007/10/14(日) 01:06:02>>846 が
def normpath?(path?)?:
って化けてる。? の部分には本当はどんな文字が?
0848デフォルトの名無しさん
2007/10/14(日) 01:25:57ttp://f48.aaa.livedoor.jp/~siokan/nida/bbssrc/1192292674185.jpg
詳しくはPEP3117みれ
0849デフォルトの名無しさん
2007/10/14(日) 01:27:47ApressとSamsから今年中に出るよ
0850デフォルトの名無しさん
2007/10/14(日) 01:29:370851デフォルトの名無しさん
2007/10/14(日) 01:56:11WinXP + SP2, python 2.4です。
import sys
out = open('hoge.pdf', "rb").read()
open('hogehoge.pdf', "wb").write(out)
sys.stdout.write(out)
などとして
python del.py > fuga.pdf
すると、hoge.pdfとhogehoge.pdfはもちろん同一ですが、fuga.pdfには余計なCRが混じります。
fileではバイナリモードにできたが、stdoutでその方法がわからない、という状況です。
方法など御存知の方、何卒御教示下さい
0852デフォルトの名無しさん
2007/10/14(日) 01:57:52# 標準入出力をバイナリモードに変更(Windowsのみ)
try:
import msvcrt
except ImportError:
pass
else:
for fd in (0, 1):
msvcrt.setmode(fd, os.O_BINARY)
これ?
0853デフォルトの名無しさん
2007/10/14(日) 13:52:44キモ!!!!!!!!!!
なんだこれはww
0854デフォルトの名無しさん
2007/10/14(日) 17:05:20明示的な型宣言の要望は昔からあったからな、
unicodeを使う理由は、可読性を重視した結果らしい、
識別子だらけになるよりは一文字でビシッと表したほうが結局読みやすくなる、
perl6なんかもすでにunicode演算子導入してるし目新しいことじゃない
0855デフォルトの名無しさん
2007/10/14(日) 17:13:24class Aaa():
def __init__(self):
class Bbb(Aaa):
def __init__(self):
super(Bbb,self).__init__(self)
yyy = Bbb()
0856デフォルトの名無しさん
2007/10/14(日) 17:48:17ベースクラス
0857デフォルトの名無しさん
2007/10/14(日) 19:55:37ありがとう!
でも、ちょっとググって見たけどよく分からないぽ・・・・
そもそもこんな感じで使うものではないのかしら?
0858デフォルトの名無しさん
2007/10/14(日) 20:22:56objectを継承
0859デフォルトの名無しさん
2007/10/14(日) 20:36:41C,LLVM,JavaSpript,CLI,JVMに変換できるって書いてたけど全部ネタなのか?
0861デフォルトの名無しさん
2007/10/15(月) 00:20:50普通の右シフトしかなさそうなので…
0862デフォルトの名無しさん
2007/10/15(月) 02:17:13サンキュー!
でけたでけた。
0863デフォルトの名無しさん
2007/10/15(月) 05:16:02http://pict.or.tp/img/26648.jpg
で可能ですが、
>Python にはcalendar モジュールが備わっており、cal(y,m) に相当する関数prmonth(y,m) が存在する。
>これを使って1752 年9 月のカレンダーを表示させると・・どうプログラムすればいいのでしょうか
from math import*
print prmonth(1752,9)
#----------------------------
from prmonth(y,m) import*
print prmonth(1752,9)
どちらもエラーが出てしまいます。教えて下さいませ
0864デフォルトの名無しさん
2007/10/15(月) 05:56:25prmonth(1752,9)
#なんでmathモジュールだと思ったの?
0865デフォルトの名無しさん
2007/10/15(月) 06:54:38初心者な者で・・
出来ました。有難う御座いました。
0866デフォルトの名無しさん
2007/10/15(月) 09:08:050867デフォルトの名無しさん
2007/10/15(月) 10:19:54>>> [l for l in h2 for h2 in h]
[3, 3, 4, 4]
[1,2,3,4]を期待してるんだけど・・・
なんで3,3,4,4?
0868デフォルトの名無しさん
2007/10/15(月) 10:29:23コピペしたけど我が家では動かんね。
h2という意図せぬオブジェクトが残っているか、
リストのサイズが無理やり整数型になっているかじゃないの?
0869デフォルトの名無しさん
2007/10/15(月) 10:37:08というより、なんでシオカンアップローダーなんだよw
0870デフォルトの名無しさん
2007/10/15(月) 10:49:14[l for l in h2 for h2 in h]==[l for in h2]
0871870
2007/10/15(月) 10:49:55[l for l in h2 for h2 in h]==[l for l in h2]
0872デフォルトの名無しさん
2007/10/15(月) 11:03:50逆だ
[l for h2 in h for l in h2]
0873867
2007/10/15(月) 12:00:31直前に[h2 for h2 in h]を実行してて、h2が残ってた・・・orz
それと、ジェネレータ式を理解せず勘違いしてた。
>>> h2
[3, 4]
>>> [l for l in h2 for h in range(2)]
[3, 3, 4, 4]
と同じでした。
>>872 の式でやりたいことができました。
精進してきます。ありがとん。
0874デフォルトの名無しさん
2007/10/15(月) 16:57:01from BeautifulSoup import BeautifulSoup
a = BeautifulSoup("<html><body>asdfasdf</body></html>")
print a.body.string
これがRuntimeError: maximum recursion depth exceededで通らず、
from BeautifulSoup import BeautifulSoup
a = BeautifulSoup("<html><body>asdfasdf</body></html>")
print u"%s" % a.body.string##ここにu"%s" %を追加しただけ
これがエラーにならずasdfasdfと返せるのはなぜなのですか?
0875デフォルトの名無しさん
2007/10/15(月) 16:59:13リンク踏んだらページがあってびっくりした
0876デフォルトの名無しさん
2007/10/15(月) 18:53:09うちではそんなエラー起きないな。
0878デフォルトの名無しさん
2007/10/15(月) 21:38:33BeautifulSoupは最新版かい?
0879874
2007/10/15(月) 21:49:22どうもありがとうございます。
BeautifulSoupは最新版です。
しかし、少し気になるのはWindows+Python2.5の組み合わせなんです。
Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit (Intel)] on win32
とりあえずこれとは違うものを試してみようと思います。
0880デフォルトの名無しさん
2007/10/16(火) 01:37:35どうにもうまくいかない・・・
素直に自力で全部やれってことなのでしょうが・・・
0881デフォルトの名無しさん
2007/10/16(火) 03:34:18ついついいつもの処をつかってしまったニダ
ケナンチャヨ
0882デフォルトの名無しさん
2007/10/16(火) 09:49:42from random import *
for i in range(10):
r = int(18*random())+1
print r
で済みますが 例:期待値 [ 20,5,7,3,35.4,・・・・]がある場合の乱数値「r」を
決めるにはどうプログラムすればいいのでしょうか?
0883デフォルトの名無しさん
2007/10/16(火) 10:08:190884デフォルトの名無しさん
2007/10/16(火) 10:20:22LIST = [20,5,7,3,35.4]
import random
for i in range(10):
print random.choice(LIST)
0885デフォルトの名無しさん
2007/10/16(火) 10:52:290886882
2007/10/16(火) 12:25:32例えば、競馬にオッズがありますが、それに対応(考慮)したランダムな当選を決めるにはどうしたら?
と、いう事です。
0887デフォルトの名無しさん
2007/10/16(火) 12:41:23倍率を展開した配列作って、そこからランダムでいけない?
0888デフォルトの名無しさん
2007/10/16(火) 12:48:21すみません 決まったデーターを使用したいです
>倍率を展開した配列
だと、とどうなるのでしょうか?
0889デフォルトの名無しさん
2007/10/16(火) 12:50:29よく考えたらおっしゃる意味が分かりました
ぜひお願いします。
0890デフォルトの名無しさん
2007/10/16(火) 13:15:160891デフォルトの名無しさん
2007/10/17(水) 16:54:51http://dame.dyndns.org/misc/llahp/
AHPとは - はてなダイアリー
http://d.hatena.ne.jp/keyword/AHP
これおもしろかった
0892デフォルトの名無しさん
2007/10/17(水) 17:08:260893デフォルトの名無しさん
2007/10/17(水) 17:26:21なんか意味あるの?
0894デフォルトの名無しさん
2007/10/17(水) 17:35:380895デフォルトの名無しさん
2007/10/17(水) 19:01:19偏見の収集に役立つだろうね
0896デフォルトの名無しさん
2007/10/17(水) 19:55:26既出?
面白そうなんだけど
0897デフォルトの名無しさん
2007/10/17(水) 20:31:440898デフォルトの名無しさん
2007/10/17(水) 21:04:34ipod touch
0899デフォルトの名無しさん
2007/10/17(水) 22:14:27tkを使おうかと思ったけど、見掛けが標準的なものでないし
wxWedgetだと、配布するとき大変だし、
Qtはライセンスが気に入らないし
これはというものがないですよね
0900デフォルトの名無しさん
2007/10/17(水) 22:24:36GTKもあるよね?それはどうなの?
0901デフォルトの名無しさん
2007/10/17(水) 22:26:13PyObjC
0902デフォルトの名無しさん
2007/10/17(水) 22:28:47wxはサイズが50Mぐらいになるらしいよ
0903デフォルトの名無しさん
2007/10/17(水) 22:29:03気に入らないのは GPL? Qtライセンス?
0904デフォルトの名無しさん
2007/10/17(水) 22:35:00その辺をまとめたサイト等あれば教えて下さい
特に互換性がなくなる要素など
0905デフォルトの名無しさん
2007/10/17(水) 22:45:56ttp://python.org
0906899
2007/10/17(水) 22:46:59PyGTKはチェックしてませんでした、これを使ってみようか検討してみます
PyObjCはMac専用なので、私の環境でた対象外です
0907デフォルトの名無しさん
2007/10/17(水) 22:51:57http://www.python.org/dev/peps/pep-3099/
http://www.python.org/dev/peps/pep-3100/
0908デフォルトの名無しさん
2007/10/18(木) 02:20:12そんなになるわけないだろ。
5Mぐらいで配布できる。
0909デフォルトの名無しさん
2007/10/18(木) 08:58:16Python2.5+wxPython+OpenGL+PIL+msvcr71.dll を含め、
DLLの再コンパイルなどせはず、標準のままの状態で(ただし未使用のファイルは取り除いておく)
zipで最高圧縮かけて 7MB だったよ
0910デフォルトの名無しさん
2007/10/18(木) 09:07:10マジで50Mすげえな
そんなもん使ってられっかよ!!
0911デフォルトの名無しさん
2007/10/18(木) 10:18:090912デフォルトの名無しさん
2007/10/18(木) 11:48:35Computer Languages History (preview)
http://www.levenez.com/lang/history.html#11
0913デフォルトの名無しさん
2007/10/18(木) 12:25:45tcl84.dll 650Kぐらい
tk84.dll 800Kぐらい
tkinter.pyd 40Kぐらい
サイズだけ言ったら天地ほども違うんじゃないかな。
wxWidgetsはメガ級のDLLがゴロゴロあって、Python側のスクリプトも
ほぼコンポーネント毎に(つまり大量に)存在する。数えたくも無いぐらいだね。
0914デフォルトの名無しさん
2007/10/18(木) 15:38:587MBが本当なら、
wx勉強する気になった。
0915デフォルトの名無しさん
2007/10/18(木) 16:05:13機能もwxの方が豊富なのは確かだから数MB位は我慢できるだろう。
0916デフォルトの名無しさん
2007/10/18(木) 16:41:17でも、自分で使うだけなら簡単で標準のtkも悪くなさそう
0917デフォルトの名無しさん
2007/10/18(木) 21:00:00配布バイナリは小さくてすむし、Cocoaが使えるからエレガント。
0918デフォルトの名無しさん
2007/10/18(木) 22:15:15Qtだとサイズは縮まないだろ
0919デフォルトの名無しさん
2007/10/18(木) 22:27:47Pythonコンパイラがあれば配布が楽になるんだが、
誰か作らないかな。
昔はあったんだけどなあ
0920デフォルトの名無しさん
2007/10/18(木) 22:36:22Windowsならwin32uiとかvenster使えばいいんじゃねーの
0921デフォルトの名無しさん
2007/10/18(木) 22:39:03入る・・・・RHELとその互換、Fedora
入らない・・・・Debian系、SuSE系
こんな感じなのか?
0922デフォルトの名無しさん
2007/10/18(木) 22:48:570923デフォルトの名無しさん
2007/10/18(木) 22:58:200924デフォルトの名無しさん
2007/10/18(木) 23:31:220925デフォルトの名無しさん
2007/10/19(金) 00:06:230926デフォルトの名無しさん
2007/10/19(金) 00:34:32Debian系でもPythonは標準でインストールされるよ
0927デフォルトの名無しさん
2007/10/19(金) 00:52:10Xenを動かすために必要だからかなりのディストリビューションでインストールされるんじゃないのか。
0928デフォルトの名無しさん
2007/10/19(金) 12:27:370929デフォルトの名無しさん
2007/10/19(金) 12:29:490930デフォルトの名無しさん
2007/10/19(金) 14:13:58何か方法はありますか?
0931デフォルトの名無しさん
2007/10/19(金) 14:23:100932デフォルトの名無しさん
2007/10/19(金) 14:35:340933デフォルトの名無しさん
2007/10/19(金) 14:41:370934デフォルトの名無しさん
2007/10/19(金) 17:05:55はどうなってしまったのですか>.<b
0935デフォルトの名無しさん
2007/10/19(金) 17:54:34将来性が少し心配だよ
0936デフォルトの名無しさん
2007/10/19(金) 19:34:05二回close()でエラーが発生する?
0937デフォルトの名無しさん
2007/10/19(金) 22:52:01Rubyサポートしてるからしてないんだろ。
Pythonが広まればJavaに影響があるからしょうがないと思うけど。
0938デフォルトの名無しさん
2007/10/20(土) 01:43:15|-/自分のライブラリのディレクトリ/ # DirA
|-/他人のライブラリのディレクトリ/ # DirB
|-/メインのプログラム開発用ディレクトリ/ # DirC
というディレクトリ構造で、
DirCから、DirA/DirB内のモジュールをimportしたいとき、
sys.path.insert( 0, os.path.abspath("../") );
とやってpathに追加してるんですが、これっておかしいですか?
環境変数に追加するのは汚くなりそうなんでやめてます。
0939デフォルトの名無しさん
2007/10/20(土) 02:18:43正しい。マンドイならhoge.pthをlib/site-packagesにいれとく
ttp://www.python.jp/doc/release/lib/module-site.html
0940デフォルトの名無しさん
2007/10/20(土) 02:45:23import imp
# import ../foo.py
info = imp.find_module("foo", ["../"])
foo = imp.load_module("foo", *info)
PEP328 が実装されれば簡単に出来そうだけど
0942デフォルトの名無しさん
2007/10/20(土) 04:48:47そうすればC拡張を使わなくていいから
用途によってIronPythonやJythonを使いやすくなるのに
0943デフォルトの名無しさん
2007/10/20(土) 05:00:590944デフォルトの名無しさん
2007/10/20(土) 08:29:130945デフォルトの名無しさん
2007/10/20(土) 08:37:570946デフォルトの名無しさん
2007/10/20(土) 09:28:250947デフォルトの名無しさん
2007/10/20(土) 10:19:11たとえば graphics パッケージに texture.py があって、
そこで Texture クラスが定義されていた場合に
import graphics
t = graphics.texture.Texture()
てかかなきゃいけなくなるんだけど、
モジュール名とクラス名が必ず一致するというか、
冗長な感じがするのでできれば
import graphics
t = graphics.Texture()
て感じでアクセスできるようにしたいんだけど、できる?
0948デフォルトの名無しさん
2007/10/20(土) 10:25:260949デフォルトの名無しさん
2007/10/20(土) 10:26:26どうやったら見えるんだとつっこんでみるw
0950デフォルトの名無しさん
2007/10/20(土) 11:10:00漏れなら texture.py に Texture インスタンスを生成するメソッド new を定義して
from graphics.texture import Texture
t = Texture.new()
とかする
使い慣れてる人は @classmethod するかもしれない
0951デフォルトの名無しさん
2007/10/20(土) 12:04:53graphics の __init__.py に
from texture import Texture
と書いておくのは駄目?
0952デフォルトの名無しさん
2007/10/20(土) 15:49:53pyscoなんてもうwindows環境ぐらいしかまともに動かないんじゃない?
0953デフォルトの名無しさん
2007/10/20(土) 16:04:07それとも、setter/getter公開する?
0954デフォルトの名無しさん
2007/10/20(土) 16:20:09特に何もなければ、変数を直に触らせて、何らかの処理が必要ならproperty。
python的には、これでいいと思ってる。
0955デフォルトの名無しさん
2007/10/20(土) 16:23:44変数を直は無いだろ・・・
0956デフォルトの名無しさん
2007/10/20(土) 16:34:26最初からかっちりしてる場合は>>954みたいにしてる。
0957デフォルトの名無しさん
2007/10/20(土) 18:01:35PyPyを試してみなよ
0958デフォルトの名無しさん
2007/10/20(土) 18:04:32Pythonだったら変数を直でさわるのは問題ないだろ。
作る側が注意するんじゃなくて使う側が注意するのがPython。
変数を直でさわらせないようにしても、変数を隠せないんだから。
0959デフォルトの名無しさん
2007/10/20(土) 18:19:15貴様、PEP8読んでないな!
0960デフォルトの名無しさん
2007/10/20(土) 18:32:25動くの?
0961デフォルトの名無しさん
2007/10/20(土) 19:12:17自分の能力の低さを露呈していることにいい加減気付よwwww
0962デフォルトの名無しさん
2007/10/20(土) 19:37:480963デフォルトの名無しさん
2007/10/20(土) 19:38:27なんて考え持ってる方がやばいと思うけど。
異論を唱えてスキル高いやつなんか大量にいる。
こうやって下の奴に追い抜かされてくんだろうな・・・
明日は我が身か?w
0964デフォルトの名無しさん
2007/10/20(土) 20:06:440965デフォルトの名無しさん
2007/10/20(土) 20:22:44クロージャを利用して、アクセッサ以外から絶対に触れないデータは作れるよね。
そんなことをする意味があるかどうかは知らないけど。
個人的にはPythonに静的片付けのある言語同様の考え方を適用するのは
ナンセンスだと思っているから、大筋ではあなたに同意。
class Foo:
def __init__(self):
hidden = [ None ]
def _setName(x): hidden[0] = x
def _getName(): return hidden[0]
self.setName = _setName
self.getName = _getName
0966デフォルトの名無しさん
2007/10/20(土) 20:31:130967961
2007/10/20(土) 20:40:25955ではなく954だ
0969デフォルトの名無しさん
2007/10/20(土) 21:45:00へー面白いね。しかし読みにくいw
0970デフォルトの名無しさん
2007/10/20(土) 21:54:25>>> foo.setName('foo')
>>> foo.getName()
'foo'
>>> foo.getName.func_closure
(<cell at 0x012B4330: list object at 0x012B20F8>,)
>>> foo.getName.func_closure[0].cell_contents
['foo']
0971デフォルトの名無しさん
2007/10/20(土) 21:55:28Pythonのお勉強 Part21
http://pc11.2ch.net/test/read.cgi/tech/1192884897/
0972デフォルトの名無しさん
2007/10/20(土) 21:56:070974デフォルトの名無しさん
2007/10/20(土) 22:04:48それはOOの定義によるんじゃないの
OO=カプセル化、ではないのだし
0975デフォルトの名無しさん
2007/10/20(土) 22:11:47>>> class A(object):
def getfoo(self):
return 'foo'
foo = property(getfoo)
>>> a = A()
>>> a.foo
'foo'
>>> class B(A):
def getfoo(self):
return 'foo in B'
>>> b = B()
>>> b.foo
'foo'
>>> b.getfoo()
'foo in B'
>>> super(B, b).getfoo()
'foo'
導出したら再定義しろってことなのかな
0976デフォルトの名無しさん
2007/10/20(土) 22:22:350977デフォルトの名無しさん
2007/10/20(土) 23:34:06getFooではなくfooを公開インタフェースにするんなら、
class BでgetFooなんかじゃなく、fooを再定義すればいいのでは?
0978デフォルトの名無しさん
2007/10/21(日) 00:47:50CPythonのバージョンがDjangoの動作条件を満たせば動くんじゃない。
0979デフォルトの名無しさん
2007/10/21(日) 00:48:35def __get__(self, instance, owner):
fget = getattr(instance, self.fget.func_name, None)
if hasattr(fget, '__call__'):
return fget()
return self.fget(self)
>>> class A(object):
def getfoo(self):
return 'foo'
foo = SmartProperty(getfoo)
>>> a = A()
>>> a.foo
'foo'
>>> class B(A):
def getfoo(self):
return 'foo in B'
>>> b = B()
>>> b.foo
'foo in B'
こうか
0980デフォルトの名無しさん
2007/10/21(日) 00:55:51>>> class B(A):
... def getfoo(self):
... return 'foo in B'
... foo = property(getfoo)
これじゃ駄目なのか?
0981デフォルトの名無しさん
2007/10/21(日) 11:23:04Jython + Swingだろ
0982デフォルトの名無しさん
2007/10/21(日) 11:39:160983デフォルトの名無しさん
2007/10/21(日) 12:10:59そうだよ、そして、いつ次のバージョンが出るのかも不明
0984デフォルトの名無しさん
2007/10/21(日) 13:00:570985デフォルトの名無しさん
2007/10/21(日) 13:55:310986デフォルトの名無しさん
2007/10/21(日) 14:21:300987デフォルトの名無しさん
2007/10/21(日) 15:43:26ホッケーの仮面つけたままリサイタル開きそうな名前だな。
0988デフォルトの名無しさん
2007/10/21(日) 16:27:300989デフォルトの名無しさん
2007/10/21(日) 18:21:190990デフォルトの名無しさん
2007/10/21(日) 18:23:56素でじゃいそんだと思ってたんだがマジョリティの読み方は何なんだ?
0991デフォルトの名無しさん
2007/10/21(日) 18:29:34歌もチェインソーも殺人的?
>>990
つか、それ以外に読みようがなくね?
0992デフォルトの名無しさん
2007/10/21(日) 18:31:450993デフォルトの名無しさん
2007/10/21(日) 18:32:03単なる俺読みじゃなくて安心した
0994デフォルトの名無しさん
2007/10/21(日) 19:08:59Pythonのお勉強 Part21
http://pc11.2ch.net/test/read.cgi/tech/1192884897/
0995デフォルトの名無しさん
2007/10/21(日) 19:35:380996デフォルトの名無しさん
2007/10/21(日) 19:53:430997デフォルトの名無しさん
2007/10/21(日) 20:35:290998デフォルトの名無しさん
2007/10/21(日) 21:55:04python Lha で検索してみたけど、ライブラリなさそうだね。
外部コマンドとして lhaコマンドを呼び出すしかなさそう。
0999デフォルトの名無しさん
2007/10/21(日) 21:59:26ctypeを使ってUnlha32.dllを使えばいいんじゃないの
1000デフォルトの名無しさん
2007/10/21(日) 22:02:0710011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。