Pythonのお勉強 Part5
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGhttp://www.python.jp/Zope/
Python オフィシャルサイト
http://www.python.org/
前スレ
http://pc2.2ch.net/test/read.cgi/tech/1053955472/
ログや関連リンクは >>2-3
0002デフォルトの名無しさん
NGNG1 http://pc.2ch.net/tech/kako/965/965815778.html
2 http://pc3.2ch.net/test/read.cgi/tech/1020718991/
3 http://pc3.2ch.net/test/read.cgi/tech/1020718991/
4 http://pc5.2ch.net/test/read.cgi/tech/1068824510/
pythonユーザー掲示板
http://mentai.2ch.net/prog/kako/965/965058106.html
人生の敗北者でも使えるPythonのお勉強
2 http://pc3.2ch.net/test/read.cgi/tech/1020682294/
3 http://pc2.2ch.net/test/read.cgi/tech/1053955472/
【インデント】ぱいそんぱいそん!3【ムネオたん】
http://pc3.2ch.net/test/read.cgi/tech/1036811974/
【たぷるタソ】Pythonのお勉強 5【ハァハァ】
http://pc5.2ch.net/test/read.cgi/tech/1081264387/
0003デフォルトの名無しさん
NGNGhttp://www.freeml.com/message/[email protected]/0000087
の後半のような、変なことをしなければ無理っぽ?
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG> python って関数内部で、引数の値を変更することはできますか?
呼出し元の引数として与えられた局所変数の値を呼び出された関数の中で変更する
ということなら、できません。
そういうことが必要だとしたら、クラスを定義することを考えるのがよいです。
その変数は、二つの関数(呼び出す側と呼び出される側)から共に操作される対象、
すなわち一個のオブジェクトである可能性が高いからです。その変数をメンバ、
二つの関数をメソッドとしてクラスを定義すれば、呼び出される側から変数の値を
変更することが可能になります。
引用のリンク先の__call__や__repr__の用例はあまりいい用例とは思えません。
参考程度に留めるのがよいと思います。
(余談:Pythonでもどの言語でもそうですが、変だなと思うことをしたくなったら
プログラムの設計や問題へのアプローチを見直すのがよいと思います。妙なことを
しなくても自然に書ける解が往々にしてあるものだからです。)
00063
NGNGやはり出来ないですか。
で、今回は、関数の戻り値を (゚∀゚)タプル!! にして解決しました。
関数を class method にする方法も考えましたが、
引数受け渡しのためだけにクラスとクラス変数を作るのは、
global 変数を作のとあまり変わらない気がしたので、今回は見送りました。
もちろん、class に括った方がいい場合は、そうします。
余談、参考になりました。ありがとうございました。
0007デフォルトの名無しさん
NGNGdef func(x):
x.append(4)
a = [1,2,3]
func(a)
print a
としたら、何が表示されるでしょうね?
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNGこういう書き方をしないよう注意したほうがよいのですが).
例えば以下のコードを実行してみてください::
def myfunc(item, val=[]):
val.append(item)
print val
myfunc('one')
myfunc('two')
myfunc('five')
参考: http://www.python.jp/pub/doc_jp/ref/function.html
0011デフォルトの名無しさん
NGNG5と7の「引数」の解釈=呼び出す側の変数
10の解釈=呼び出された関数の中の変数
001210
NGNG0013デフォルトの名無しさん
NGNGネタスレに帰れや
0014デフォルトの名無しさん
NGNG少なくとも10はネタじゃない。引数の解釈が違っただけ。
つーかネタに見える方がどうかしてる。
喪前がネタスレに逝け。そのまま帰ってくるな。
0015デフォルトの名無しさん
NGNGば、番長!?
0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNGもうちょっとがんばればperlに勝てる
0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNGてゆーかPythonで作られてなくても別にいいじゃん。
0022デフォルトの名無しさん
NGNGリソースの分散はあまりにももったいない。
Rubyに対する明確なアドバンテージを示せないなら今すぐ開発をやめるべきだと思うがいかがかな?
0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG好きなのを使えばいいだけ。
0026デフォルトの名無しさん
NGNGいい加減意地を張るのをやめてハングルに統一しようよ。
リソースの分散はあまりにももったいない。
ハングルに対する明確なアドバンテージを示せないなら今すぐ会話をやめるべきだと思うがいかがかな?
とか逝って欲しいんだろ? このマゾヒストが。
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNGParrotキタ━━━━(゚∀゚)━━━━!!
絵に描いた餅とはこのことだな(プププ
0029デフォルトの名無しさん
NGNG正直、自分でも何でかわかりませんよ
0030ifs-koch0.py
NGNGfrom math import cos, sin, radians
from Tkinter import Tk, Canvas
CosA = cos(radians(60)); SinA = sin(radians(60))
def koch(d, (x0, y0), (x4, y4)):
if d == 0:
draw_line(x0, y0, x4, y4)
else:
rx, ry = (x4-x0)/3., (y4-y0)/3.
x1, y1 = x0+rx, y0+ry
x2, y2 = x1+CosA*rx-SinA*ry, y1+SinA*rx+CosA*ry
x3, y3 = x0+2*rx, y0+2*ry
koch(d-1, (x0, y0), (x1, y1))
koch(d-1, (x1, y1), (x2, y2))
koch(d-1, (x2, y2), (x3, y3))
koch(d-1, (x3, y3), (x4, y4))
D, W, H = 5, 1000, 500
root = Tk()
can = Canvas(root, width=W, height=H, highlightthickness=0, bg='black')
can.pack(expand=True, fill='both')
def draw_line(x0, y0, x1, y1):
can.create_line(x0, H-y0, x1, H-y1, fill='cyan')
koch(D, (0, 100), (W, 100))
root.bind_all('<Escape>', lambda ev: root.destroy())
root.mainloop()
0031デフォルトの名無しさん
NGNGすでにJythonもあるし、方向性としてはおかしくないとおもうけど。
0032デフォルトの名無しさん
NGNGhttp://www.python.org/pycon/dc2004/papers/9/
0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNGwxPythonってFlash見れるじゃん!
まじちびったと思ったら、
ジョイスティック扱えるんですか!
うんこぶりぶりです!!!!!!!!!!!
0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNGMonarch BBS browser
たぶんこれだけ。
Monarchは動かしたこと無い。
0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNGttp://www.kalab.com/freeware/pythoneclipse/pythoneclipse.htm
これ以外しらない。ためしてみれば?
0041デフォルトの名無しさん
NGNG他にもたくさんある模様.
ttp://pydev.sourceforge.net/
が開発は一番活発な感じ.
0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNGhttp://lowlife.jp/yasusii/weblog/2004/01/
のように月で指定しても、一か月分丸まるのログが表示されるわけではないのですか?
0045デフォルトの名無しさん
NGNGUnicodeに自動的に変換してくれるような拡張モジュールあったら教えて
004645
NGNG0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNGpykfでguessしてPythonでunicodeに変換しるしかねい
0049デフォルトの名無しさん
NGNG〃〃∩ _, ,_
⊂⌒( `Д´) < ヤダヤダ!
`ヽ_つ ⊂ノ
ジタバタ
0050デフォルトの名無しさん
NGNG_, ,_ ∩
( ‘д‘)彡☆))Д´) ← >>49
⊂彡
甘ったれるな。
0051guess.py
NGNGclass Codec(codecs.Codec):
def encode(self, data, errors="strict"): # unicode to string
raise NotImplementedError
def decode(self, data, errors="strict"): # string to unicode
if filter(lambda c: "\x80" < c < "\x8e" or "\x8f" < c < "\xa0", data):
decode = codecs.getdecoder("Shift_JIS")
elif filter(lambda c: "\xa0" < c, data):
decode = codecs.getdecoder("EUC-JP")
else:
decode = codecs.getdecoder("ISO-2022-JP")
return decode(data, errors)
class StreamWriter(Codec, codecs.StreamWriter):
pass
class StreamReader(Codec, codecs.StreamReader):
pass
def getregentry():
return Codec().encode, Codec().decode, StreamReader, StreamWriter
if __name__ == "__main__":
u = u"ABC\u6f22\u5b57\u3072\u3089\u304c\u306a"
assert u == unicode(u.encode("ISO-2022-JP"), "guess")
u = u + "\uff76\uff80\uff76\uff85"
assert u == unicode(u.encode("EUC-JP"), "guess")
assert u == unicode(u.encode("Shift_JIS"), "guess")
0052guess.py
NGNGdecode() 内の文字コード判別は pykf 等を使って書き直すのがいいかも。
エンコード時の文字コードは推定できない(笑)ので未実装エラーとした。
guess.py は public domain software とする。
0053デフォルトの名無しさん
NGNGずいぶんと宵っ張りの朝寝坊さんですこと
ちゃんと社会生活できているんでしょうか(プププ
0054デフォルトの名無しさん
NGNGところで、ノーマルの状態では日本語は通らないらしいですね。
dev-pythonの下に
cjkcodecs
iconvcodec
japanesecodecs
3つのcodecsがありましたがどれがいいのでしょうか?
0055デフォルトの名無しさん
NGNGeuc-jp, iso-2022-jp, shift_jis も使えます。 CJKCodecs を
インストールすると、日本語のコーデックの他に、中国、韓国の
コーデックも利用可能になります。
また、Python 2.4 以降は、CJKCodecs が Python 標準配布物に含まれ、
新たなコーデックの追加インストールも不要になる予定です。
http://www.python.jp/Zope/articles/japanese/Python4Japanese-2
だそうですので、2.3.3とcjkcodecsの組み合わせて使うことにしました。
お騒がせしました。
0056デフォルトの名無しさん
NGNGてか、Python 以外でも対応したとこってあるのかな?
0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNGしてるぽ。
0059デフォルトの名無しさん
NGNGCJKCodecsは JIS X 0213 に対応してるんじゃない?
> Supported Encodings
> Japanese: cp932 shift-jis shift-jisx0213 euc-jp euc-jisx0213 iso-2022-jp iso-2022-jp-1 iso-2022-jp-2 iso-2022-jp-3 iso-2022-jp-ext
この shift-jisx0213 と euc-jisx0213 って
JIS X 0213 対応版の Shift_JIS と EUC-JP じゃないのかな。
0060デフォルトの名無しさん
NGNGそれは JIS X 0213:2000 だから、
0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNG最近作った(変更した)ものを ls -lt ~/python/*.py | head の出力から抜粋。
以前似たようなカキコをしたので一部かぶってるかも。
guess.py - 文字コード判別コデック。>>51に貼った。
dump_folha_online.py - 某ネット新聞の記事をテキスト化。htmllib/formatter使用。
tuple_anime.py - たぷるタソのテキストアニメ。反応がなくて悲しかった。
tr.py - 翻字コマンドtrの実装。他スレに貼った。反応がよくてうれしかった。
cannalib.py - Cannaクライアント。Cannaプロトコルでサーバと直接おしゃべりしてかな漢字変換。
namiki.py - IRCログ取りロボット。某チャンネルに常駐。
dml2latex.py - XML形式の日記をLaTeXに変換。某blogの製本サービスに触発されて古いコードを更新。
nyo.py - 語尾を「にょ」に変換。Unicodeコデックとして実装。過去スレに貼った。
dailynews2tex.py - NHK国際放送のニュース原稿をLaTeXに変換。二段組でコンパクトに印刷。
live.py - 随時更新されるウェブカメラの静止画像を定期DLして表示するビューワ。犬板に貼った。
dlpo.py - 某オンライン辞書のクライアント。古いネスケだと利用できないので仕方なく作った。
romaji.py - ローマ字をかなに変換。辞書で状態遷移図を作ってみたがアプローチとしてはイマイチ。
dml2html.py - XML形式の日記を閲覧用HTMLに変換。すこしずつ手を入れながら5年近く常用。
gtkhtmlconv2.py - 多国語テキストをHTML文字参照に変換するためのGUIエディタ。GTK+ 2.x使用。
0063デフォルトの名無しさん
NGNGPerlのようなデリファレンス時のごちゃごちゃしたものが
一切ないのがいいですね<Python
0064デフォルトの名無しさん
NGNGwc -l したらどんな感じ?
0065デフォルトの名無しさん
NGNG0066デフォルトの名無しさん
NGNGこんな感じでした。
31 guess.py
58 dump_folha_online.py
22 tuple_anime.py
23 tr.py
190 cannalib.py
334 namiki.py
320 dml2latex.py
30 nyo.py
70 dailynews2tex.py
78 live.py
156 dlpo.py
221 romaji.py
458 dml2html.py
89 gtkhtmlconv2.py
2080 合計
0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNG他の言語ではバリバリコード書くわけですか?
0072デフォルトの名無しさん
NGNG問題はおまいの作るプログラムに課せられた機能量のこと。
0073デフォルトの名無しさん
NGNGだが、必要な機能が複雑になれば
コード量もそれに比例して大きくなってゆくだろ
つまりだにゃ
Python以外では複雑なコードを書いていて、Pythonでは単純なことしかしないから行数が少ないのか
そもそも複雑なコードを書く能力がないから少ない行数しか書かないのかを
知りたかったわけだにゃ
>>72
なんか厨房のいいわけみたいだにゃ(w
0074デフォルトの名無しさん
NGNG> 必要な機能が複雑になれば
> コード量もそれに比例して大きくなってゆく
一般論としてはそうだけど、Pythonではこれは当てはまらない稀ガス。
少ない行数の割に多くの機能が得られることがある一方で
たくさん書いた割には大した機能の量にならないこともある。
実感として、Pythonでは得られる機能の量と行数とが一致しない。
その理由としては高度な機能が集められたモジュール群が大きい。
既存のモジュールをうまく使いこなすと行数と機能量が解離する。
urllibモジュールやreモジュールはその典型。
逆に、大きな辞書や文字列を定数としてコード中に列挙すると
小さな機能の割にやたらと行数の多いプログラムになったりする。
ついでに付け加えると、GUIライブラリはどれを使っても行数が多くなるっぽい。
機能量<行数となる(作るのが面倒くさい)プログラムの典型。
その点、GUIとして既存のブラウザが利用できるWebアプリケーションは楽でいい。
0075デフォルトの名無しさん
NGNGC/C++/Javaはうんこ、とか言ってるやつは厨房ケテーイですか。
0076デフォルトの名無しさん
NGNGそうだね
コード量は,機能の組み合わせ数と絶対数に比例するんだよね
>一般論としてはそうだけど、Pythonではこれは当てはまらない稀ガス。
PythonでもGUI作ろうとすると行数多くなるだろ
けっきょくPython以外でも複雑なコードは書かないってことだな
よくわかった希ガス(ブワッハッハッハッ
0077デフォルトの名無しさん
NGNG「論理学ってのはどういったもんですか?」
「やって見せましょうか。お宅には芝刈機があります?」
「ありますよ」
「ということは、広い庭があるわけですね?」
「その通り!うちには広い庭があります」
「ということは、一戸建てですね?」
「その通り!一戸建てです」
「ということは、ご家族がいますね?」
「その通り!妻と2人の子供がいます」
「ということは、あなたはホモではないですね?」
「その通り!ホモじゃありません」
「つまりこれが論理学ですよ」
「なるほど!」
深く感心したジョーは、翌日友人のスティーブに言った。
「論理学を教えてやろう。君の家には芝刈機があるか?」
「いや。ないよ」
「ということは、君はホモだな!!」
0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNGワロタ
0080デフォルトの名無しさん
NGNGあんたが Python そのものを組んだり
MMX命令を使おうかどうか悩むような
類いのプログラムを作ったりしている
のでないならそれでいいよ。
世の中にはうんこまみれにならざるを
えない分野もあるっていう事で。
0081デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNGアメリカ人は4行目くらいで寝る
0083デフォルトの名無しさん
NGNGftpサーバでファイルを受信したら、そのファイルに対して
いろいろ実行してくれるようなものが欲しいと思ったのですが、
普通のftpサーバでは、自分で勝手に機能をアタッチできるようなものなんて
無さそうなので、試しに自分で作ってみようと思いました。
でも、ネットワークのことなんて余り知らないしどうしようと思ってたら
pythonっていろいろライブラリが用意されていて便利ということを聞いたので
python勉強してみようと思いました。
でも、調べて見たらftpクライアントのライブラリは合ったのですが、ftpサーバ用の
ライブラリって見当たらないんですが、やっぱりないのでしょうか?
あるいはpythonで書いたftpサーバのスクリプトとかどっかに落ちてないでしょうか?
ご存知の方、よろしくお願いします。
0084デフォルトの名無しさん
NGNGZope
ウソ
Twistedあたりを探してみれ
いずれにしろ
そういうことするためにはネットワークの知識が必要だという希ガス
0085デフォルトの名無しさん
NGNGttp://www.amk.ca/python/code/medusa.html
0086デフォルトの名無しさん
NGNGwww.ietf.org/rfc/rfc959.txt
008783
NGNGんー、やっぱりいろいろ勉強する必要がありそうですね。
特に、rfcはヒトスジナワではいかなそう…
pythonとrfc、じっくり勉強してみます。
どうもありがとうございました。
0088デフォルトの名無しさん
NGNGそこまでして自作のサーバを作りたいのは何か特別な理由でもあるのですか?
0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNG小手先の知識でもなんとかなるかも試練が
詳細を知っておかないと、はまった時に抜け出せない
ま、プログラミングに限らず、
根気のないやつはなにやっても駄目だがな...
0091デフォルトの名無しさん
NGNGほんとに出来る人ってこういうこと言わないんだよね。
こういうこと書くやつって、大抵口先だけの奴しかいない。
0092デフォルトの名無しさん
NGNGおまえもすこしもちつけ
009383
NGNGあ、いえ、どうしてもって訳でもないんですけど、
もともとはftpサーバで受信ファイルに何かさせる機能ぐらいは
あると期待していたのに、意外とないもんなのね。
ということで、せっかく良い目標が出来たので、いろいろ勉強しながら
自分で作ってみたかっただけです。
で、導入としてはお手軽な方法が良いと考えて、何かないかと探してた訳です。
締め切りのある作業は嫌いなんですが、自分のペースで勉強しながら
何かやるのは好きなんです。
お騒がせしました。
0094デフォルトの名無しさん
NGNGゴメンね、
なにか気に障っちゃったのかな?(プププ
口先だけのやつってホントにムカつくよね(プンスカ!
>>93
えらい!
がんばれ!
ついでにいうと、
締め切りなんて多めに見積もっておけば何とかなる!(w
0095デフォルトの名無しさん
NGNG> 締め切りのある作業は嫌いなんですが、自分のペースで勉強しながら
> 何かやるのは好きなんです。
理想としてはね。
なかなかそんなこといってられないけど。
0096デフォルトの名無しさん
NGNGそこそこいい感じにまとめあげる能力は重要(w
延々手元で開発して
成果を出せない奴は厨
あ、決して91のことじゃないからね(プププ
0097デフォルトの名無しさん
NGNGGW早く終わらんかね
0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNG>締め切りが迫ってきたら
>そこそこいい感じにまとめあげる能力は重要(w
これ若い時の俺!!!(・∀・)イイ
>延々手元で開発して
>成果を出せない奴は厨
今の俺だ・・・(´・ω・`)ショボーン
0100デフォルトの名無しさん
NGNGPython自体が
自ら締め切りをもうけつつ、着実に成果を出力している成果物の好例だと思う
Guidoパパは優秀な開発者であると同時に、優秀なプロジェクトマネージャーでもある
0101デフォルトの名無しさん
NGNG亀レスだけど、
FTP鯖のログを見てうpが記録されていたら××するというスクリプトを
cronで定期実行するのが簡単でいいのではないだろうかとオモタ。
0102デフォルトの名無しさん
NGNGコマンドの出力文字列を得るにはどうするのが手軽でしょうか?
0103デフォルトの名無しさん
NGNGpopen系を使うとか?
0104デフォルトの名無しさん
NGNG0105デフォルトの名無しさん
NGNGmarshalモジュールではサポートされてないようですが。
0106デフォルトの名無しさん
NGNGためのモジュールではありません.
ttp://www.python.jp/pub/doc_jp/lib/module-marshal.html
ttp://www.python.jp/pub/doc_jp/lib/module-pickle.html
0107デフォルトの名無しさん
NGNGこちらでも先程見つけて試していたのですが、dumpされたファイルを覗くと、
どうも reオブジェクトの元になった文字列の形で保存してるようなので、
コンパイル済みのオブジェクトを使い回して
高速化しようという目的には合わなそうでした。残念。
0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNG0110Anthonyタソの中の人
NGNGhttp://mail.python.org/pipermail/python-dev/2004-May/044803.html
特に問題がなければ Python 2.3.4 の最終版を来週下旬にリリースするにょ。
Anthony Baxter
0111デフォルトの名無しさん
NGNG0112デフォルトの名無しさん
NGNGpygameとかのライブラリ経由じゃなくて直接ってんなら、
C/C++で拡張するか、COM経由(実用的かはしらん)になる。
0113デフォルトの名無しさん
NGNG提供するライブラリはないでしょうか?
0114デフォルトの名無しさん
NGNG0115デフォルトの名無しさん
NGNGWindows Console Driver
ttp://www.effbot.org/zone/console-index.htm
0116115
NGNG誤情報スマソ
0117デフォルトの名無しさん
NGNGどうしたらいいのかな。
0118デフォルトの名無しさん
NGNG0119110
NGNGhttp://mail.python.org/pipermail/python-dev/2004-May/044921.html
ThomasがWindows用インストーラを作れないから一週間リリースを延ばすにょ。
Anthony Baxter
0120デフォルトの名無しさん
NGNG>>> thread = lib2ch.open("tech", "1081312810")
>>> thread.age()
>>>
0121デフォルトの名無しさん
NGNGTraceback (most recent call last):
File "<stdin>", line 1, in ?
StopIteration
>>>
0122デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNG0125デフォルトの名無しさん
NGNG0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNG0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNG0130デフォルトの名無しさん
NGNGhoge に "fuga"という文字列を使ってやりたいのですが、
どうしたらいいのでしょうか?
rubyでの hoge.send("fuga")相当の事です。
0131デフォルトの名無しさん
NGNGttp://www.python.jp/pub/doc_jp/lib/built-in-funcs.html#l2h-32
0132デフォルトの名無しさん
NGNGそうです。ありがとうございました。
組み込み関数ぐらい、把握しとかなきゃダメですね……。失礼しました。
0133デフォルトの名無しさん
NGNGpython23.lib,python23.dll,python23.expをどこに置けばいいんでしょうか?特にpython23.exp。
0134デフォルトの名無しさん
NGNG0135デフォルトの名無しさん
NGNGサンプルは動きました。
0136デフォルトの名無しさん
NGNG[Python-Dev] pre-announce: Python 2.4a1 is about a month away
http://mail.python.org/pipermail/python-dev/2004-May/045028.html
これは、約一ヵ月後に迫った Python 2.4 の最初のアルファ版の事前アナ
ウンスです。この告知の目的は、皆さんの注意を喚起することです。もし
2.4で修正してほしいバグがあるならば、今から検討を始めて下さい。
このリリースサイクルの間ずっとバグ修正を歓迎します。ただし、最初の
ベータ版以降は、振舞いの変化をともなうバグ修正が認められる見込みは
比較的少なくなります。
では、修正してほしいバグがある場合、あなたは何をすべきでしょうか?
○ そのバグが SourceForge (SF) に登録されていない場合は登録して下さい。
○ 登録されたら、その問題を修正するパッチ、または少なくともそのバグを
例証する単純なテストプログラムを追加することを検討して下さい。
○ もし他の誰かがバグ修正を提供してくれたら、その修正があなたにとって
具合のよいものかどうかを調べて調査結果をバグ情報に追加して下さい。
○ うまく機能するバグ修正がある場合は、遠慮なくその修正をCVSに移すこと
を依頼するメモを追加して下さい。SF の Python 用バグ追跡システムには
*大量*のバグが登録されていて、バグが見過ごされやすいのです。
0137デフォルトの名無しさん
NGNG単に2.4で何が起こるのかに興味がある場合は、現行の開発バージョンの文書
「What's New in 2.4」を見て下さい。
http://www.python.org/dev/doc/devel/whatsnew/whatsnew24.html
Python 開発チームを代表して感謝の意を表します!
Anthony
[選り抜きのバグ修正を遅れずに提出する機会を皆さんに与えるために、この形式の
事前アナウンスが今後の Python の全バージョンのリリース工程の一部となることを
期待しています。この工程に関する意見があれば、遠慮なく私にメールを下さい]
--
Anthony Baxter <anthony at interlink.com.au>
“幸せな子供時代を過ごすのに遅すぎるということはない”
0138デフォルトの名無しさん
NGNG長すぎ。
要約して一言でいうと何なの?
0139デフォルトの名無しさん
NGNG( ゚Д゚)ポカーン
0140デフォルトの名無しさん
NGNG一言でまとめると。138は血性。
0141デフォルトの名無しさん
NGNG[Python-Dev] Python bug day?
http://mail.python.org/pipermail/python-dev/2004-June/045090.html
2.4alpha1のリリースに向けて、皆で一緒に未処理のバグを減らすのが良さげ。
Zope, GNOME, Mozilla などのプロジェクトには「バグ取り日」というものがある。
IRC に集まってバグデータベースをくまなく調べ、的はずれな報告や不正確な報告を
クローズしたり曖昧な報告用の小さなテストプログラムを書いたりするわけだ。
Python バグ取り日ってのをやってみる価値がある希ガス。
計画を立てて何が(ツールとか)要るのか明確にすべく Wiki ページを書いてみた。
http://www.python.org/cgi-bin/moinmoin/PythonBugDay
コメントきぼんぬ。特に他のプロジェクトのバグ取り日に参加してる香具師。
IRC のログって要る? #python を使うべき? それとも別チャンネル?
詳細が時間内に詰められれば多分今週末にもバグ取り日を開催できると思われ。
平日よりも週末の方がいい? 参加したい香具師、どーよ?
--amk
0142デフォルトの名無しさん
NGNGpythonでファイルをアップロードするCGIを作りたいんですが、
便利なスクリプトや情報があれば教えてください。
(簡単なセキュリティとしては、ファイルサイズとか何が考慮
されているのかな?)
0143デフォルトの名無しさん
NGNGttp://www.python.jp/pub/doc_jp/lib/module-cgi.html
アップロードされるファイルのバイト数を制限したいのなら,
ttp://www.python.jp/pub/doc_jp/lib/node401.html
に書かれているように,まず POST メソッドで添付されたファイルがあるか
確かめて,その後許容バイト数まで読み出すようにしたらどうですか.
0144デフォルトの名無しさん
NGNGttp://www.python.jp/pub/doc_jp/lib_2.3/node401.html
の下のほう。
0145デフォルトの名無しさん
NGNG0146デフォルトの名無しさん
NGNG>>144
ファイルサイズのチェックだけ、というのが順当な線のよう
ですね。ありがとうございました。
0147デフォルトの名無しさん
NGNGでこれーたーしんたっくすって何?
0149デフォルトの名無しさん
NGNGclassmethod() 使わなくてもクラスメソッドにしてくれる機能らしい。
正直要らん気がする。 def public static hanamogera(): なんて気分悪い。
まして def hodgepodge(){'type': 'classmethod'}: なんてやめてくれよ。
0150デフォルトの名無しさん
NGNG+1
0151デフォルトの名無しさん
NGNGみんなに試してもらえばいいジャン
とか言ってる香具師がいてなえた(;´Д`)
0152デフォルトの名無しさん
NGNGノシ
0153デフォルトの名無しさん
NGNGhoge = ['DQN', 'ドキュン', 'いやーん']
とかできないでしょ
rubyだとできる
0154デフォルトの名無しさん
NGNGできるじゃん。
0155デフォルトの名無しさん
NGNG0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNGunicode()使ったり,バイト列で書かなければならないと思っている人多い。
0159デフォルトの名無しさん
NGNGhttp://www.python.jp/Zope/articles/japanese/Python4Japanese-2
0160デフォルトの名無しさん
NGNG可能でしょうか
0161デフォルトの名無しさん
NGNGCOM経由で可能だとおもう。
0162デフォルトの名無しさん
NGNGドキュメントないし,ソース見てもよくわからないし
文字コード変換の仕方を解説してあるところアリアますか?
0163デフォルトの名無しさん
NGNG>>159のリンク先の解説では不足かな?
コデックの使い方は全部共通でコデック名だけが違う。
意図したコデックを指すコデック名を与えればいいだけだよ。
例:unicode("日本語EUC", "iconvcodec.euc-jp")
0164デフォルトの名無しさん
NGNGttp://www.python.jp/pub/doc_jp/lib/built-in-funcs.html#l2h-74
ttp://www.python.jp/pub/doc_jp/lib/string-methods.html#l2h-175
0165デフォルトの名無しさん
NGNGcodecs.open() と codecs.EncodedFile クラスは知ってると便利だと思われ。
例えば、日本語 EUC のファイル (filename.txt) があったとして、
>>> import codecs
>>> file = codecs.open("filename.txt", "r", "euc-jp")
のようにファイルを開くと file.readline() は Unicode 文字列を返す。
つまり EUC-JP → Unicode 変換を自動的にやってくれる。また、
>>> file = codecs.EncodedFile(open("filename.txt"), "sjis", "euc-jp")
のようにファイルを開くと file.readline() は Shift_JIS のバイト列を返す。
つまり EUC-JP → Unicode → Shift_JIS 変換を自動的にやってくれる。
codecs.open() は以下の処理と等しい。
>>> Reader = codecs.getreader("euc-jp")
>>> file = Reader(open("redhat73"))
ファイルオブジェクトが StringIO クラスのインスタンスなどの場合は
この Reader クラスでラップする方法が使える。
以上は読み出しについての話だけど書き込み時にも同様の自動変換ができる。
Writer クラス (入手するには codecs.getwriter()) というのもある。
興味があれば調べてみてちょ。
0166デフォルトの名無しさん
NGNG>>> file = Reader(open("redhat73"))
このファイル名に意味はないです。
0167164
NGNG>>164
ありがとうございました。
UTF-8な文字列をshift_jisでかいたスクリプトを使って,
shift_jisで書き出すときに
# coding: shift_jis
hoge = unicode(utf8string,"UTF-8")
print hoge
としたらうまくできました。
0168デフォルトの名無しさん
NGNG0169162
NGNGありがとうございます。
ファイルを読み書きしていたので,
これは透過的にできていいですね。
googleで見つけたtransliterate (�@ → (1) のような変換)もやって見ます
0170162
NGNGたとえば ñ (nの上に〜)が入っていると
UnicodeEncodeError: 'cp932' codec can't encode character u'\xe3' in position 12: illegal multibyte sequence
と怒られる
アクセント付きの文字はアクセントなしの文字に変換するとか,
ない文字は豆腐にしてだすとか,そこまで親切にはやってくれないのですね。
出力先がhtmlブラウザの場合は,そういった文字たちをUnicode実態参照に変換する
ような処理をかませばいいんでしょうけど。
0171デフォルトの名無しさん
NGNGhoge = unicode(utf8string,"UTF-8", 'ignore') で無視
hoge = unicode(utf8string,"UTF-8", 'xmlcharrefreplace') でXMLエンティティ
hoge = unicode(utf8string,"UTF-8", 'backslashreplace') でバックスラッシュエスケープ
ttp://www.python.jp/pub/doc_jp/lib/module-codecs.html
0173162
NGNGコマンドプロンプトでは,errorをstrictにしたのと同じ結果が出ます。
replaceやignoreが聞いていないようです。
もう少し試行錯誤してみます
0174デフォルトの名無しさん
NGNGこんなのをこないだ見つけはしたけども。
0175デフォルトの名無しさん
NGNG(cp932にエンコードして) 書き出すところがエラーになっていませんか.
0176デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?hl=ja&ie=UTF-8&c2coff=1&q=Python+%E3%81%97%E3%82%93%E3%81%AE%E3%81%99%E3%81%91&lr=
0177デフォルトの名無しさん
NGNG繋ぎ直す事は可能でしょうか?
0178デフォルトの名無しさん
NGNGdup2(nullfile, sys.stdout)
かな?試してないので動くかどうかわかりません.
ttp://www.python.jp/pub/doc_jp/lib/os-fd-ops.html#l2h-1368
0179デフォルトの名無しさん
NGNGおぉ、fileno()を加えたらできました。
……とはいうものの、cursesアプリなんですが、
curses.endwin()がうまくいかないや。ちょっと考えてみよ。
0180デフォルトの名無しさん
NGNG/usr/lib/python2.3/config/Makefile (No such file or directory)
と表示されてインストールできません。
どうすればいいのでしょうか、どなたか教えてください。
0181デフォルトの名無しさん
NGNG0182デフォルトの名無しさん
NGNGもしpythonをパッケージで導入しているなら、
python*-devel や python*-dev
が入っていない。
0184180
NGNG二重かきこみすみません。
0185デフォルトの名無しさん
NGNG(゚∀゚)Python!!
0186デフォルトの名無しさん
NGNG0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNGperl.....( ´,_ゝ`)
ruby.....('A`)
python...(*´ω`*)
0189デフォルトの名無しさん
NGNGscheme...((()))
0190デフォルトの名無しさん
NGNGLisp (( . )( . ))
0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNGPostScript { % _ % } def
0193デフォルトの名無しさん
NGNG中に含まれる所謂半角カナ部分を全角カナにして返すようには、
どうするのが速くっていいですかね。
日本語だけなら pykf そのままですが。
0194デフォルトの名無しさん
NGNGh2z = {}
for (z,h) in zip(u"アイウエオ", u"アイウエオ"):
h2z[h] = z
def conv(s):
return "".join([ h2z.get(c,c) for c in s ])
「プ」→「プ」などの変換もやりたいとすると、ちょっと面倒だな。
0195デフォルトの名無しさん
NGNGこれは何ですか?
0196デフォルトの名無しさん
NGNGz = list(u"ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ・ー、。「」")
h = [u"ァ", u"ア", u"ィ", u"イ", u"ゥ", u"ウ", u"ェ", u"エ", u"ォ", u"オ",
u"カ", u"ガ", u"キ", u"ギ", u"ク", u"グ", u"ケ", u"ゲ", u"コ", u"ゴ",
u"サ", u"ザ", u"シ", u"ジ", u"ス", u"ズ", u"セ", u"ゼ", u"ソ", u"ゾ",
u"タ", u"ダ", u"チ", u"ヂ", u"ッ", u"ツ", u"ヅ", u"テ", u"デ", u"ト", u"ド",
u"ナ", u"ニ", u"ヌ", u"ネ", u"ノ",
u"ハ", u"バ", u"パ", u"ヒ", u"ビ", u"ピ", u"フ", u"ブ", u"プ",
u"ヘ", u"ベ", u"ペ", u"ホ", u"ボ", u"ポ",
u"マ", u"ミ", u"ム", u"メ", u"モ",
u"ヤ",u"ャ", u"ユ", u"ュ", u"ヨ", u"ョ",
u"ラ", u"リ", u"ル", u"レ", u"ロ",
u"ゥァ", u"ワ", u"ウィ", u"ウェ", u"ヲ", u"ン", u"ヴ", u"カ", u"ケ",
u"・", u"ー", u"、", u"。", u"「", u"」"]
z2h = dict(zip(z, h))
h2z = dict(zip(h, z))
def hanzen(ustr):
return ''.join(h2z.get(uc, uc) for uc in ustr)
def zenhan(ustr):
return ''.join(z2h.get(uc, uc) for uc in ustr)
0197デフォルトの名無しさん
NGNG$ cat a.py
import re, time, sys
HAN = u"\uff71\uff72\uff73\uff74\uff75"
ZEN = u"\u30a2\u30a4\u30a6\u30a8\u30aa"
MAPPING = dict(zip(HAN, ZEN))
n = int(sys.argv[1])
s = HAN * n
def replace(match):
return MAPPING[match.group()]
re_aiueo = re.compile(u"[\uff71-\uff75]")
t = time.time()
r = re_aiueo.sub(replace, s)
print time.time() - t
assert r == ZEN * n
t = time.time()
r = "".join([MAPPING[c] for c in s])
print time.time() - t
assert r == ZEN * n
$ python2.3 a.py 100000
32.1520619392
5.83971500397
0198デフォルトの名無しさん
NGNGそれは濁点あつかえないし、UCS-2/4の半角/全角カナの配置から考えると
苦しくないか?
0199デフォルトの名無しさん
NGNG答え.萌え度が違う
0200デフォルトの名無しさん
NGNG> それは濁点あつかえないし、UCS-2/4の半角/全角カナの配置から考えると
> 苦しくないか?
そかな。コード値の並びに依存しないために辞書(変数 MAPPING)を使ったんだけど。
濁点は re.compile(u"[\uff61-\uff9f][\uff9e\uff9f]?") のような正規表現と
それに対応する MAPPING の内容を準備することを考えていた。
むしろ濁点を扱うのが難しいのは list comprehension の方では?
一文字ずつ処理されるから、例えば>>196のコードの h2z[u"ガ"] というエントリは
実際には参照されないと思われ。
0201デフォルトの名無しさん
NGNG0202デフォルトの名無しさん
NGNG% ./hoge.py
'import site' failed; use -v for traceback
Hello World!
こんな感じ
消したい
0203デフォルトの名無しさん
NGNGPerlにはない。MLとかHaskellにはある。
0204デフォルトの名無しさん
NGNGuse -v for traceback
0205デフォルトの名無しさん
NGNGsite.py にエラーがあって import に失敗している。
site.py は Python の起動時に自動的に読み込まれる設定ファイル。
python -v hoge.py とするとエラーメッセージが(他の大量のメッセージと共に)表示される。
エラーの内容を確認して site.py を修正するべし。
0206デフォルトの名無しさん
NGNGΣ('o' これでどうかな
uc_ptn = re.compile(u"[\uff61-\uff9f][\uff9e\uff9f]?")
def hanzen(ustr):
return ''.join([h2z.get(uc, uc) for uc in uc_ptn.findall(ustr)])
def zenhan(ustr):
return ''.join([z2h.get(uc, uc) for uc in ustr])
s1 = u"デッドパロット"
s2 = u"デッドパロット"
print hanzen(s2).encode('shift_jis')
print zenhan(s1).encode('shift_jis')
0207デフォルトの名無しさん
NGNGあとは重箱の隅だけど「ア゙」とか「ン゙゙゙」みたいな変な文字の並びはどーなる?
0208デフォルトの名無しさん
NGNG解決しました
0209デフォルトの名無しさん
NGNGh = [u"ァ", u"ア", u"ィ", ..., u"「", u"」", u"゚", u"゙", ]
にしといて、
def hanzen(ustr):
firstpass = ''.join([h2z.get(uc, uc) for uc in uc_ptn.findall(ustr)])
return ''.join([h2z.get(uc, uc) for uc in firstpass])
なんてどうでしょう?
0210デフォルトの名無しさん
NGNG~~~~~~~
開発停止?(((; ゚Д゜)))ガクガクブルブル
それとも次が 2.4.1 or 3.0.1 だから?(*´ω`*)
0211デフォルトの名無しさん
NGNGhttp://www.python.org/dev/doc/devel/whatsnew/whatsnew24.html
0212デフォルトの名無しさん
NGNGHaskellはちょっと触ったことがあるけど、
Haskellのタプル、およびリストというのは
どんな型でもOKの配列、統一された型による配列
という違いかと思いました。
(1,"abc") [1,2,3]
Pythonもこういう感じなんでしょうかね。
0213デフォルトの名無しさん
NGNG2.3.4 (final) というのは、2.3 系列の最終版という意味ではなくて
(alpha, beta, release candidateと続いてきた)2.3.4 のリリースの最終版という意味。
当然ながら一つ前のバージョンの 2.3.3 にも (final) があった。
これはすべての Python のリリースについて言える。
0214デフォルトの名無しさん
NGNG一般には final リリースまでそういう流れでダメ出しするということです。
0215名無しさん@Vim%Chalice
NGNG何か、いい方法がありましたら、教えて頂けませんでしょうか。
文字列の桁数をそろえたくて、
今のところ、re.( '........', hogehoge )てな感じで、やってるんですが、
桁数をを全角に合わせると、半角の分、短くなっちまうもんで。
unicodeにこだわるものでもないです。
どなたか、ご教示をお願いいたします。
0216デフォルトの名無しさん
NGNG'http://www.developer.ibm.com/ja/tech/faq/individual?oid=2:23549'
0217デフォルトの名無しさん
NGNG>統一された型による配列
それはuniform vectorでは?
リストもタプルも型混在可能だよん
0218デフォルトの名無しさん
NGNGややこしいね
fixed の表記にしてほしいよ
0219デフォルトの名無しさん
NGNG0220デフォルトの名無しさん
NGNG0221デフォルトの名無しさん
NGNG今から書くコードはlongで統一しておいた方がいいかな?
backward compatibility はあるにしても
0222デフォルトの名無しさん
NGNGややこしいか?
0223デフォルトの名無しさん
NGNGリストとタプルって、mutable と immutable を区別するためのものなんですか?
0224デフォルトの名無しさん
NGNGコンパイラや実行環境がね。
暗黙の型変換があるから利用者はあまり意識しなくてもいける。
あとタプルなら辞書のキーにもつかえたりするね。
0225デフォルトの名無しさん
NGNGPythonに限らずほかのソフトでもたまにみかけるぞ(final)って表記
0226215@Vim%Chalice
NGNGありがとうございます。
参考にさせて頂きます。
0227デフォルトの名無しさん
NGNG読んでみたけど、日本語に限った判定法みたい。
0228デフォルトの名無しさん
NGNG>>> return 1 < len(c.encode("japanese.ms932"))
...
>>> iswide("a")
False
>>> iswide(u"\uff71") # ア
False
>>> iswide(u"ア")
True
>>>
0229デフォルトの名無しさん
NGNGぶっちゃけ断念したヽ(`Д´)ノ付属品がおおすぎてダルいんだよヽ(`Д´)ノ
0230デフォルトの名無しさん
NGNGGeneral Python FAQ
4.15 Why are there separate tuple and list data types?
http://www.python.org/doc/faq/general.html#why-are-there-separate-tuple-and-list-data-types
4.15 なぜタプルとリストという別個のデータ型があるのですか?
リストとタプルは多くの点で似ていますが、普通は根本的に異なる方法で用
いられます。タプルは、Pascal のレコード、もしくは C の構造体と似たよ
うなものであると考えることができます。すなわち、タプルは互いに関連す
るデータの小さな集まりであり、一個のグループとして操作される別個の型
となり得るのです。例えば、デカルト座標は二つ乃至三つの数値のタプルに
よりうまく表現できます。
一方、リストは他の言語における配列に似ています。リストが保持するオブ
ジェクトの数は随時変化し、それらのオブジェクトはみな同じ型を持ってい
て一つずつ順に処理される傾向にあります。例えば、os.listdir('.') はカ
レントディレクトリにあるファイル群を表す文字列のリストを返します。こ
の出力を処理する関数は、普通はそのディレクトリにファイルが一つや二つ
増えても動作しなくなることはありません。
タプルは不変 (immutable) です。これは、一度タプルが作られるとその要
素を新しい値で置き換えることはできない、ということを意味します。リス
トは可変 (mutable) であり、リストの要素をいつでも変更することができ
ます。不変の要素だけが辞書のキーとして使えるので、タプルはキーとして
使えますがリストはキーとして使えません。
0231デフォルトの名無しさん
NGNGPython に class がなかったころの名残?
0232デフォルトの名無しさん
NGNGunescape()の代わりになる関数はありますか?
0233デフォルトの名無しさん
NGNG別にclassの有無とmutable/immutableの区別の有無は関係ないだろ…
0234デフォルトの名無しさん
NGNGttp://www.python.jp/pub/doc_jp/lib_2.3/module-urllib.html
urllibモジュール
0235デフォルトの名無しさん
NGNG本来ひとつの値しか入らない場所 (リストの要素とか、
関数の返り値とか、辞書のキーとか) に複数の値を入れたいとき
ごく自然にタプルを使う場面が出てくる。
例:
1. ", ".join([ "%s=%s" % (k,v) for (k,v) in dic.items() ])
2. return (value, flag)
3. dic[(2,3)] = 8
(1.の例はやや冗長)
0237名無しさん@Vim%Chalice
NGNGをを、1バイトunicode以外は、全角と見なすのですね。
参考にさせて頂きます。
0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNG0240デフォルトの名無しさん
NGNGprint "removed: " + mailFile
else:
print "could not remove: "+mailFile
で,削除が成功したのにcould not removeが表示されます
os.unlinkは成功するとFALSEを返すのでしょうか?
0241240
NGNGif os.unlink(mailFile):
print "removed: " + mailFile
else:
print "could not remove: "+mailFile
0242デフォルトの名無しさん
NGNG返り値をチェックしても成功したかどうかわからないよ。perl とは流儀が違う。
たぶんやりたいのはこうでしょう。
try:
os.unlink(mailFile):
print "removed: ", mailFile
except OSError, e:
print "could not remove: ", mailFile, "error:", e
0243デフォルトの名無しさん
NGNGttp://python.org/doc/2.3.4/lib/os-file-dir.html
たぶん成功しても返値はNone。
失敗の時はOSError例外を投げるから、そっちで対処しろってことかと。
0244243
NGNG0245デフォルトの名無しさん
NGNGありがとうございました。
じつはこういったモダンなエラー処理を備えている言語を本格的に使うのは初めてでした
このような場合にも使えるのですね。勉強になりました。
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNGdef moveCursor(direction, mickey=0):
dirstr = dirdict[direction]
mickeystr = ""
if mickey:
mickeystr = " %d ミッキーだけ"
wxMessageDialog("カーソルを%sに%s動かしなさい" %(direction, mickeystr),
"黙って言うとおりにしなさい")
0248デフォルトの名無しさん
NGNGfrom wxPython.wx import *
import time, math
class TestApp(wxApp):
def OnInit(self):
self.frame = wxFrame(None, -1, '', size=(800, 600))
EVT_CHAR(self.frame, self.OnKey)
self.SetTopWindow(self.frame)
self.frame.Show(True)
id = wxNewId()
self.timer = wxTimer(self, id)
EVT_TIMER(self, id, self.OnTimer)
self.timer.Start(10)
return True
def OnKey(self, evt):
self.ExitMainLoop()
def OnTimer(self, evt):
hw, hh = map(lambda x: x/2, self.frame.GetSizeTuple())
x = int(hw + 0.8*hw*math.sin(5*time.clock()))
y = int(hh + 0.8*hh*math.sin(3*time.clock()))
self.frame.WarpPointer(x, y)
if __name__=="__main__":
app = TestApp(0)
app.MainLoop()
0250デフォルトの名無しさん
NGNG0251デフォルトの名無しさん
NGNGWindowsでも見た目がおかしくないからWxはよくつかう。
上のソースをみてもインターフェースはまんま一緒みたいだね。
0252デフォルトの名無しさん
NGNG100×100のキャンバスに最大サイズの矩形を描くプログラムですが
from Tkinter import *
root = Tk()
c = Canvas(root, width=100, height=100, bg='#ffffff')
c.pack()
c.create_rectangle(0, 0, 99, 99) #この数値がおかしい。
root.mainloop()
左上の座標が(0, 0)で、右下の座標が(99, 99)だと思ったのですが、
上のようにすると、矩形の上辺と左辺が描かれず、右辺と下辺が
Canvasの端から離れてしまいます。
5行目を
c.create_rectangle(2,2,101,101)
に変えると、思いどおりの矩形が描かれるのですが
この 2 と 101 は、どこから出てくる数値ですか?
0253デフォルトの名無しさん
NGNG0254デフォルトの名無しさん
NGNGTcl/Tk の Canvas の座標系は (1, 1) が原点だと思われ。
漏れの環境 (Python 2.3.4、Tcl/Tk 8.3.4、X Window System) では
c.create_rectangle(1, 1, 100, 100)
とすれば100×100のキャンバスいっぱいに黒い線の矩形が描かれる。
c.create_rectangle(0, 0, 99, 99) だと左と上の辺が欠ける。
c.create_rectangle(2, 2, 101, 101) だと右と下の辺が欠ける。
0255デフォルトの名無しさん
NGNG6.8. Why doesn't the canvas seem to start at 0,0?
ttp://tcl.sourceforge.net/faqs/tk/#canvas/border
0256コロ助
NGNGデータ+手続き=クラス
データとそのデータを直接操作する手続きをひとつのクラスにまとめるナリ。
オブジェクト指向プログラミングの基本はこれだけナリ。
クラス外からデータを操作したい場合はそのクラスが提供している手続きを呼
び出すことによってデータ操作を行なうナリ。この取り決めによって、データ
がクラス内に隠されるナリ。その結果、手続きの名前や引数を変更しない限り、
クラス内のデータの表現や処理方法をどのように変更しようと、クラス外のプ
ログラムに変更が必要になることはなくなるナリ。つまり、クラスの独立性が
高まるナリ。
ここでクラス外のコードは、別のクラスの手続きかも知れないし、Python の
場合は関数やスクリプトの地の文かも知れないナリ。
このようなアプローチ、すなわちオブジェクト指向でプログラムを書く場合、
何をクラスとするかが設計上の問題になるナリ。つまり、データと手続きとを
どのようにクラスにまとめるかということナリ。
解決したい問題のなかに現れるデータと処理とをいくつかのクラスにまとめて
クラス間の呼び出し関係を破綻なく構成するのは実は簡単なことではないナリ。
そのため、どのような関係のクラス群を構成すればうまくいくかという経験則
を知っておくのが重要ナリ。オブジェクト指向関係の書籍で扱われているのは
この経験則に他ならないナリ。片手間に読んでおくと設計の善し悪しに大きな
差が出るナリ。もちろん失敗から学べることも多いナリ。
分かったナリか?
0258デフォルトの名無しさん
NGNG分からん。
> データ+手続き=クラス
なぜ可読性を犠牲にするのかが分からん。
手続きとデータを分離した方がプログラムの論理が明解になるし
データも任意のものを用意できると思うのだが。
> データがクラス内に隠される
データ保護はある意味で汎用性が全くない気がするが?
> 経験則
要はアホのひとつ覚えのように手当り次第に組めばいいということか。
エレガントでないな。まず仮説というか理論を適用するような方法が確立できないものか。
0259デフォルトの名無しさん
NGNGオブジェクト指向・嗜好・試行・至高・歯垢
http://pc5.2ch.net/test/read.cgi/tech/1049778124/l50
0260デフォルトの名無しさん
NGNG黒箱に可読性とかいってるの(プ
0261デフォルトの名無しさん
NGNG> > データ+手続き=クラス
> なぜ可読性を犠牲にするのかが分からん。
可読性とオブジェクト指向はまったく別の問題(直交した概念)だと思われ。
まあしかし、読みにくいオブジェクト指向のプログラムが多いのは認める(w
> 手続きとデータを分離した方がプログラムの論理が明解になるし
> データも任意のものを用意できると思うのだが。
具体例を挙げよう。
Python のファイルオブジェクトはオブジェクト指向的なものの一例だ。
組込み関数 open() で開く普通のファイルオブジェクトに加えて、
urllib.urlopen() で開くネットワーク越しのストリームや
StringIO.StringIO() で作る疑似ファイルオブジェクト(実体はメモリ上の文字列)もある。
ファイルオブジェクトを処理対象にするクラス外のプログラム(別クラスの手続きや
モジュール関数)は、与えられたファイルオブジェクトが特定の手続きを持つことを
要求する。よく用いられるのは readline() や write() などの手続きだ。逆に、必要と
される手続きをそろえたクラスは何でもファイルオブジェクトになることができる。
クラス外のプログラムを書くときに仮定することは、
そのクラスが所定の手続きを実装しているということだけ。
クラス内のデータ構造がどうなっているかは考える必要がない。
0262デフォルトの名無しさん
NGNG> データ保護はある意味で汎用性が全くない気がするが?
ポイントは「データの保護」ではなくて「データの隠蔽」にある。
Python では他の型付きオブジェクト指向言語と違ってデータ保護機能が弱い。
ぶっちゃけ、無理にアクセスしようとすればいくらでもアクセスできてしまう。
それよりも大事なのはデータがクラス内に隠されているということ。
上のファイルオブジェクトの例で言えば、Python でファイルを操作するプログラムは
与えられたオブジェクトが readline() や write() を実装していれば動く。
手続きを介して内部データにアクセスするという「取り決め」を守っているからだ。
readline() や write() を実装したファイル的オブジェクト (file-like object) であれば
何でもよいという汎用性はオブジェクト指向プログラミングによって生まれた利点だ。
0263デフォルトの名無しさん
NGNG0264デフォルトの名無しさん
NGNG0265デフォルトの名無しさん
NGNG0266デフォルトの名無しさん
NGNG0267デフォルトの名無しさん
NGNG0268デフォルトの名無しさん
NGNG0269デフォルトの名無しさん
NGNG0270246
NGNGdef OnTimer(self, evt):
hw, hh = map(lambda x: x/2, self.frame.GetSizeTuple())
x = int(hw + 0.8*hw*math.sin(5*time.clock()))
y = int(hh + 0.8*hh*math.sin(3*time.clock()))
self.frame.WarpPointer(x, y)
のところを、
def OnTimer(self, evt):
x , y = wxGetMousePosition()
self.frame.WarpPointer(x, y)
とすると、マウスポインタが斜め下の方に勝手に行ってしまうのですが、
ポインタをその場に居させるようにするにはどうしたらよいでしょうか?
0271デフォルトの名無しさん
NGNG説得する
0272wxPythonGTK-py2.3-2.5.1.5
NGNGwxGetMousePosition()でとれてる値は正常なのでWarpPointerのほうの問題?
5と21ってなんだろ。
0273デフォルトの名無しさん
NGNGwindow.WarpPointer() は window の座標系。
>> 272 の 5, 21 はウィンドウの(タイトルバーや淵より内側の)左上端
の座標でしょう。
window.ScreenToClientXY() を使って座標変換してください。
あと、単にカーソルを動かしたくないのなら、タイマよりマウスイベントを
拾ったほうがよいでしょう。また、イベント処理の中でカーソルの位置を
調べても泥縄で、最初から動かしたくないのなら OnInit() の段階で
wxGetMousePointer() しないといけません。
たとえばこんな感じにです。
def OnInit(self):
...
cx, cy = wxGetMousePosition()
self.x, self.y = self.frame.ScreenToClientXY(cx, cy)
EVT_MOTION(self.frame, self.OnMotion)
return True
def OnMotion(self, evt):
self.frame.WarpPointer(self.x, self.y)
0274デフォルトの名無しさん
NGNG変数をグローバルにする事無く実装できるのがいいと思うんだけど。
似たような関数がたくさんあってどれも捨てられないような時、
使う変数も似通っているので変数をまとめて集中管理できるところとか。
なんでもかんでもオブジェクトには大反対ぃ〜
0275デフォルトの名無しさん
NGNGそういうごっちゃなコードがあったとしても、
モジュール化してネームスペースは分けましょう。
コードも日本語も読み手に負担をかけないように心がけるのです。
0276デフォルトの名無しさん
NGNGphpの
header("HTTP/1.0 404 NotFound");
とか、
javaの
response.setStatus(404);
のようなことがやりたいのですが。
0277デフォルトの名無しさん
NGNGCGI自体の仕様を確認すべし。
http://www.w3.org/CGI/
0278デフォルトの名無しさん
NGNG文末のセミコロンはいらん
0280デフォルトの名無しさん
NGNG,.. 、
( ... \
, - 、 ヽ ::::... ヽ
( :::... \ ヽ ::::;... `ー‐- 、
\ :::.... ン´ `丶、
\ ::/ ヽ
ソ ',
| l / ̄ ̄ ̄ ̄
ヽ ● ●| < ぬるぽ
', ,○、 | \_____________
l (_人_)|
} └┘ |
| |
| l
/´ヽ /
L.__,,ゝ、 _ r 〈
"'' ‐- 、__{__}‐'′
0281デフォルトの名無しさん
NGNGかのOSでも動くんだっけ?
こんどはメットをかぶったバージョンをよろ。
0282デフォルトの名無しさん
NGNGNone ・・・??
0283デフォルトの名無しさん
NGNGAttributeError: 'NoneType' object has no attribute 'strip'
0284デフォルトの名無しさん
NGNGいままでやってたCUIとしての(この表現で合ってるのか?)pythonとの
連携のしかたが分からん。マニュアルみてもボタンの項目には
ボタンのウィジェットの説明しかないし。
これってどうやったら実用レベルになれるんでしょうか(私が)
0285デフォルトの名無しさん
NGNG100% Python の wm のソースコードでも眺めていれば?
0286デフォルトの名無しさん
NGNGじゃあ「のんた」ってとこか?
0287デフォルトの名無しさん
NGNGガッ!!
>>286
ガッ!!
0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNGガッ!!
0290デフォルトの名無しさん
NGNG\_WWWWWWWWWWWWWWWW/
≫ のんたぁぁぁぁぁぁぁー! ≪
/MMM| /MMMMMMMMMMM、\
|/
''''''─- .....,,,_ __人_人,_从人_.人_从._,人_人_
 ̄"゙'"''''''─‐- ゙"ニ ─__ )
r──--- ...___ ) 待ちやがれ!
三 /レi ニ | ニ ≡ ) 頭叩かせろ!
.ニ ( ´∀)| ニ |!カ_ ろ 待ってくれー!!
| / つ つ Lニ-‐′´ )/⌒Y⌒Y⌒l/⌒Y⌒Y⌒Y⌒
'''''゙゙゙゙゙ ̄ _,, -‐'''∧_∧ っ ゚
--─="゙ ̄ ⊂(Д´;) ゜ {三}
ニ─ _,.. ゝ、 つ===回
_,.. -‐'" しへ ヽ .{三}
__,, -‐''" , ゙ー'
, ' /
0291デフォルトの名無しさん
NGNG'''''| | .....,,,_
 ̄| |''''''─‐- ゙"ニ ─__
| |─ガッ- ...___
| |/レi ニ | ニ ≡
| |`Д)| ニ |!カ_
| | つ つ Lニ-‐′´
''| |゙゙ ̄ _,, -‐'''
--| |"゙ ̄
ニ| | _,.
| | _,.. -‐'"
__,,| |''"
| |
0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNG申し訳ない
煽るつもりはないんだけど
でもたぶん煽ってるみたいに聞こえちゃうんだろうけど
pythonでGUIプログラムを始めたい人って
皆、そんな遠回りしないと始められないんですか?
0295デフォルトの名無しさん
NGNG何?そしたら何かい、漏れに python/{tk, gtk} のガイトサイトを探してこいと
0296デフォルトの名無しさん
NGNGtkinter でも、pyfltk でも、pygtk1 でもいくらでも手軽な選択肢はある。
本当の原因は、日本語をきちんとサポートしているクロスプラットフォームの
gui ツールキットが少ないことにあると思う。
ちなみに wxpython はまだ発展途上という気がする。
Windows版は安定してるのかもしれないが、linux では gtk まわりの
assertion で落ちることが多い。ドキュメントも少ない。
pygtk2 のほうが安定して動くしドキュメントも多いし、まともだと思う。
でもこっちは Windows 版がインストールしづらい。見た目も Windows 標準じゃないし、
一長一短。
0297デフォルトの名無しさん
NGNGどっちもしょぼいから切ったほうが良い。
一体なんのための UI なのか・・・
0298デフォルトの名無しさん
NGNG商売ということを考えたとき、
しょぼくても ui があるのとないのでは
売れる数が違うと思うけど?
0299デフォルトの名無しさん
NGNGttp://www.pygtk.org/articles.html
まだまだいっぱいあるやん。とりあえず読んだらええんとちゃうの?
0300デフォルトの名無しさん
NGNGttp://wxpython.org/tutorial.php
だるい。あとは↓
ttp://www.python.org/cgi-bin/moinmoin/GuiProgramming
0301デフォルトの名無しさん
NGNG> pythonでGUIプログラムを始めたい人って
> 皆、そんな遠回りしないと始められないんですか?
Python はマイナーな言語だよ。そのマイナーな言語用の、さらにマイナーな
GUI ライブラリのドキュメントなんて無くて当たり前。「あったらラッキー」
ぐらいのつもりで、むしろ最初から既存のコードを読むつもりでないと。
というか、既存のコードを読まずに習得できるプログラミング言語や
ライブラリなんてほとんど無いと思うんだけど、オールドタイプなのかな(俺が)
0302デフォルトの名無しさん
NGNG>>> import Numeric
>>> help(Numeric)
0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNG前は print hoge.fuga.__doc__ とかやってたけど面倒だった。
0305デフォルトの名無しさん
NGNG> Python はマイナーな言語だよ。
そう卑屈になるなよ。かの google の保守も Python で行っているっていう話
もあるし他も凄い処で Python が使われてる(例えば NASA のあるプロジェクトで)。
日本というごく狭い意味のない制限を付けるとマイナーに見えるかもしれないが
それは君が世間知らずだからという他あるまい。
> そのマイナーな言語用の、さらにマイナーな GUI ライブラリのドキュメントなんて無くて当たり前。
>>299-300 を見れば判るように初心者向けの読み物はわりとしっかりとしているし数も豊富だよ。
> 既存のコードを読まずに習得できるプログラミング言語やライブラリなんてほとんど無いと思うんだけど、
> オールドタイプなのかな(俺が)
敢えて君に勧めるが CPAN の資源を Python で利用できるように働きかけなさいな。Python 修得のために。
0306デフォルトの名無しさん
NGNG0307デフォルトの名無しさん
NGNG0308デフォルトの名無しさん
NGNGZope を捨てて PHP をマージしたときに Python は真の意味でそのような地位を築くことができる
0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNGあなた、Python の開発経験にとぼしそうだね。
ドキュメントの少なさに苦労したことがある人間のことばとはとても思えない。
> CPAN の資源を Python で利用できるように働きかけなさいな。
意味不明。
0311デフォルトの名無しさん
NGNGあなた、Python の開発経験がほうふそうだね。
ドキュメントの少なさに苦労したことがある人間のひとりに思える。
打開策を披露しなさい。
0312デフォルトの名無しさん
NGNG最近立場が逆転している希ガス。
0313301=310
NGNG> 打開策を披露しなさい。
>>284さんも書いてるけど、ライブラリのマニュアルは機能の羅列で
何と何をどう組み合わせたらいいのか分からないことがよくある。
GTK+ のマニュアルはその典型だね。Tutorial は必読だけど量的に全然足りない。
なので用例を探す。
所望の API の使用法を解説したページが見つかればラッキーな方で、
無ければそのライブラリのアプリを探してコードを読む。
それでもダメならライブラリのソースを読むしかない。
そーいや GTK+ 2.x で Input Method (IM) の切替方法を調べたときは大変だった。
それっぽい API 関数がいろいろあるんだけど組み合わせ方が分からない。
用例も見つからない。試行錯誤の結果、何とか動くものができたけど挙動がぁゃιぃ。
仕方なくライブラリのソースコードを読んでみたら予想外の答えが得られた。
実は「どの API 関数も呼ばなくていい」の(w
何のことはない、最初からテキストウィジットに IM 切替メニューが組み込まれてて
右クリックすればデフォルトで出てくんの! もうね、アボカド、バナナかと。
そういう重要なことはマニュアルにデカデカと赤文字で書いとけYO!なんてね。
メニューの内容は環境変数 GTK_IM_MODULE_FILE で指定した設定ファイルで
変更できるんだけど、それについてもドキュメントが見当たらなかった(当時)。
まあこんなことは日常ちゃめしごと(←なぜか変換できない)。もう慣れっこだ。
やっぱオールドタイプだな、俺は。
0314デフォルトの名無しさん
NGNG> 何と何をどう組み合わせたらいいのか分からないことがよくある。
そのまえに何がやりたいのかが決められないのでは?
> Tutorial は必読だけど量的に全然足りない。
具体的にはどのような事が不足していると感じて理想の(必要十分な)ドキュメントはどのようなものなのか教えれ
> 所望の API の使用法を解説したページが見つかればラッキーな方で、
どうやら君には自分でテストしてみるという概念が欠けているように見える。
さらに何故マニュアルの記述が極めて抽象的であるかという理由を良く理解していないように思える。
> そういう重要なことはマニュアルにデカデカと赤文字で書いとけYO!なんてね。
それは君が単に無知だったからだろ?ソースコードを読んでなかったからだし
それにマニュアルは君だけの為に存在する訳でもないからね。
> 変更できるんだけど、それについてもドキュメントが見当たらなかった(当時)。
で、君のしたことはちゃんとドキュメントのかたちで表明したのかね?
してないならその不満を言える立場に居ないということを自覚して貰わないとね。
> やっぱオールドタイプだな、俺は。
だからそう卑屈になるなって(w
0315301=310
NGNG0316デフォルトの名無しさん
NGNGこれだから素人は…
0317デフォルトの名無しさん
NGNG世界的視野に立っているんだね。
森を見て木を見ずってこのことだね。
0318デフォルトの名無しさん
NGNGttp://sourceforge.jp/projects/pythonjp/files/
からPython23jp.chmギったんですが表示できません。
金払わずに見る方法を教えてください。
つかtext/plainの時点でぶっ壊れているような。
0319デフォルトの名無しさん
NGNGそれはギったとは言わん。
> つかtext/plainの時点でぶっ壊れているような。
これはsourceforge.jpの設定の方がおかしい。
こっちでは普通に表示できたけど……。
とりあえずチェックサムは一致してる?
もし一致してないなら、「間もなくダウンロードが開始されます」
のページの時にブラウザの読み込み停止ボタンを押して、
リンクを右クリックして、対象をファイルに保存してみ。
あるいはダウンローダを使うか。
それでダメなら……Windowsがおかしいか、WindowsじゃないOSかだ。
0320デフォルトの名無しさん
NGNG右クリックでは保存できないよ
0321デフォルトの名無しさん
NGNG> あなた、Python の開発経験にとぼしそうだね。
乏しいどころか全くありません。
ライブラリリファレンスを読まなければならないのですが読む気が失せる。。。
> > CPAN の資源を Python で利用できるように働きかけなさいな。
>
> 意味不明。
えぇと、単純に 100% Pure Perl "PPython" みたいなのが既にあるのかなぁ〜
ということです(JPython のような感じで Perl の資源も Python 側から全部使えればなぁ)
0322デフォルトの名無しさん
NGNG,.. 、
( ... \
, - 、 ヽ ::::... ヽ
( :::... \ ヽ ::::;... `ー‐- 、
\ :::.... ン´ `丶、
\ ::/ ヽ
ソ ',
| l / ̄ ̄ ̄ ̄
ヽ ● ●| < またーりしよう
', ,○、 | \_____________
l (_人_)|
} └┘ |
| |
| l
/´ヽ /
L.__,,ゝ、 _ r 〈
"'' ‐- 、__{__}‐'′
0323デフォルトの名無しさん
NGNG氏ねや
誰だpythonなんて1日でマスターできると逝った奴は!!!!!!!!!!!!
0324デフォルトの名無しさん
NGNGいきなり『氏ねや』って、どういう事ですか?君には社会の常識がないのですか?
普通は、『あのう、すいませんけれども氏んでくれませんか?』とか
『あなたはには、氏ぬという選択肢もありますよ』とか言うものですよ。
あなたみたいに最初から喧嘩腰だと、言われた方は『じゃぁ氏んでみようかな』
とかいう気持ちがなくなるものです。
まずは、親切丁寧に『氏んで』と頼むべきだと思いますよ。
そこから、人の輪と協調が生まれ、『よーし氏んでみるか』という気持ちが生まれるわけです。
0325デフォルトの名無しさん
NGNG,.. 、
( ... \
, - 、 ヽ ::::... ヽ
( :::... \ ヽ ::::;... `ー‐- 、
\ :::.... ン´ `丶、
\ ::/ ヽ
ソ ',
| l / ̄ ̄ ̄ ̄
ヽ ● ●| < warota
', ,○、 | \_____________
l (_人_)|
} └┘ |
| |
| l
/´ヽ /
L.__,,ゝ、 _ r 〈
"'' ‐- 、__{__}‐'′
import 2chaa
aa = 2chaa.new('nullpo_plan9')
aa.compose('warota')
aa.anotateComment('hoge')
aa.2chPost('http://pc5.2ch.net/test/read.cgi/tech/1081312810/',None,'sage')
0326デフォルトの名無しさん
NGNGいつの間にか嵌まるよね(´ー`)
0327デフォルトの名無しさん
NGNG> 誰だpythonなんて1日でマスターできると逝った奴は!!!!!!!!!!!!
おそらく英語圏の意見が翻訳されただけかと
0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNG0331デフォルトの名無しさん
NGNGということで Python をそれらの言語インターフェイスと考えれば Python を習熟すれば
他の5つの言語を使えるようになる。尤も整合性は他の言語への理解度の深さに依存するが(^^;
0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNG> ライブラリリファレンスを読まなければならないのですが読む気が失せる。。。
具体的にどんなことがしたいんだ、え? 言ってみな。
寄ってたかってお節介してやっから。
0334デフォルトの名無しさん
NGNG取り敢えず kernel の全てを Python で書き換えてまともに動かしたいです。
あ、そのまえに shell を、ってこれはもう既にありますね;-)
0335デフォルトの名無しさん
NGNGどこで実行されるんだろうね?
0336デフォルトの名無しさん
NGNGどこで実行されるんだろうね?
0337デフォルトの名無しさん
NGNG0338デフォルトの名無しさん
NGNG0339デフォルトの名無しさん
NGNGみんなもう少し待つんだ。俺は要らないけど。
0340デフォルトの名無しさん
NGNG0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNG0344デフォルトの名無しさん
NGNG0345デフォルトの名無しさん
NGNG0346デフォルトの名無しさん
NGNGなんだかんだ言って今の世の中windowsとの互換性は大事よ?
職場で仕事効率化のツールを組んでも
Linux入れなきゃ使えないとなれば誰も使わないし
0347デフォルトの名無しさん
NGNGsf.net も POSIX の方が M$ よりも大規模だしな。
0348デフォルトの名無しさん
NGNG気にせざるを得ない。>>347のように他人との接触がないヒッキーならともかく。
0349デフォルトの名無しさん
NGNG君ねぇ〜分かってないね。M$ なんか無視して良いんだよ。
めくらの OS 上に乗っけてまともに保守する気あんの?
良いものを創るんだったら POSIX で実装しないとね。いろんな意味で。
言語レベルで互換性が保たれてるからぶっちゃけ移植は後まわしでいいし。
0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNG0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNG0354デフォルトの名無しさん
NGNGマジだとしたら相当イタいね。
全然成長している気がしないからね。
0355デフォルトの名無しさん
NGNG0356デフォルトの名無しさん
NGNG0357デフォルトの名無しさん
NGNGチェックしたいんですが、pythonで可能でしょうか?
0358デフォルトの名無しさん
NGNG環境もろくに書かないんだからこういう回答を期待してるんだよね?
0359デフォルトの名無しさん
NGNGCOMを使って、すでに起動しているIEを制御するにはどうすればいいですか?
ie=win32com.client.Dispatch("InternetExplorer.Application")
じゃ新しいのが立ち上がっちゃうよね?
0360デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNGいえ、いったん繋がった後は、他の言語と同じなのでいいのですが、
すでに起動しているものへのアタッチの仕方がわからないのです。
rubyのwin32oleでいうところのconnect()がPythonでは何かがわかりません。
0362デフォルトの名無しさん
NGNGgoogle://win32com python connect で一番上にくるんだけどねぇ
0363デフォルトの名無しさん
NGNGOSはWindows 2000です。
0364デフォルトの名無しさん
NGNG0365デフォルトの名無しさん
NGNG0366デフォルトの名無しさん
NGNG0367デフォルトの名無しさん
NGNGありがとう。吊ってくる。
0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNG2.5系で2.4系の虫取り
2.6系で
犬核みたいだな…
0370デフォルトの名無しさん
NGNGあと、Pythonは2.0頃からずっと、しっくり来る安定点を探って
言語仕様を模索しつつ変化し続けている印象が。
おかげで面白い反面安心して使いづらい……。
0371デフォルトの名無しさん
NGNG0372デフォルトの名無しさん
NGNG0373デフォルトの名無しさん
NGNGその略し方は激しく間違っとる
普通は「多バイト文字」とかの言葉を使う。
「バイトコード」というと全く別の意味に解釈されてしまう。
0374デフォルトの名無しさん
NGNG>>369
> 2.5系で2.4系の虫取り
これのソースある?
Python のバージョンには「マイナーバージョンが奇数なら開発版」という
決まりはなかったと思うので。いつの間に変わったのかな。ってことで
ソースきぼんぬ。
0375デフォルトの名無しさん
NGNGPEP-6 で定義されています。
(知る限り、奇数が開発版という風習はありませんでした。)
http://www.python.org/peps/pep-0006.html
Version Numbers
Starting with Python 2.0, all feature releases are required to
have a version number of the form X.Y; patch releases will always be
of the form X.Y.Z.
0376デフォルトの名無しさん
NGNG@array = `cat hoge.txt`;
みたいにコマンドの結果を変数やら配列に格納できるじゃないですか。
pythonではどうやるんですか?
0377デフォルトの名無しさん
NGNGttp://www.python.jp/pub/doc_jp/lib_2.3/module-commands.html
お手軽なのはこれ。もしくはpopen系を利用する。
残念ながら、出発がシェルプログラミング用途のPerlのような便利な構文はありません。
0378デフォルトの名無しさん
NGNGなるほど、さんきゅ
0379デフォルトの名無しさん
NGNG>
EUC-JPとかは1〜3バイト可変長だよ、と無粋なつっこみしていい?
0380デフォルトの名無しさん
NGNG0381デフォルトの名無しさん
NGNGhttp://mail.python.org/pipermail/python-dev/2004-July/046013.html
Python 開発チームと Python コミュニティを代表して Python 2.4 の最初の
アルファ版を披露することをうれしく思います。
Python 2.4a1 はアルファリリースです。ダウンロードして離陸前のテストを
行ない、見つけた問題を知らせてもらえると大変ありがたいです。しかし、
このリリースは業務での利用には向きません。
http://www.python.org/2.4/
このリリースには、多くの新しいモジュール、高速化のためにCで再実装され
た多くの既存モジュール、多数の改良、既存モジュールへの機能追加、そして
修正されたバグの数々が含まれています。ハイライト、「the What's New in
Python 2.4」、または詳細な NEWS ファイルを参照して下さい。
少なくともあと1回、数週間以内にアルファリリースを行ない、最初のアルファ
版に入れられなかった若干の新しい機能を取り込む予定です。
このリリースで見つけたあらゆる問題を是非 SourceForge のバグ追跡システ
ムに登録して下さい (2.4a1 を使っていることを明記して下さい)。
http://sourceforge.net/bugs/?group_id=5470
新リリースをお楽しみ下さい。
Anthony
Anthony Baxter
anthony at python.org
Python リリース・マネージャ
(Python-dev チーム全体を代表して)
0382デフォルトの名無しさん
NGNG翻訳ありがと。チェック早いね。
> [Python-Dev] RELEASED Python 2.4, alpha 1
むぅ、CJKCodecs は最新じゃないのか……。
cjkpython.i18n.org の方の CVS じゃ、JIS X 0213:2004 対応のコードが
一昨日辺りに入ったんだが、さすがに α1 には間に合わなかったようで。
でもそれ以外の日本語コーデック達は入ってるからいいけど。
0383デフォルトの名無しさん
NGNG0384デフォルトの名無しさん
NGNG整数型と長整数型の統合: 整数型演算は結果に応じて長整数型を返す (PEP237)
ジェネレータ式: 内包表記 x(i) for i in S がジェネレータを返す.[x(i) for ...] の内包表記は撤廃へ.(PEP289)
reversed(): 配列の末尾から順に要素を返す組み込み関数 reversed() の提供. (PEP322)
decimal モジュール: 浮動小数点数の 10 進表現 (0.1 が 2 進表現によって 0.10000000000000001 にならないような数値表現). (PEP327)
0385デフォルトの名無しさん
NGNGstring: ljust/rjust/center のマージン文字サポート,末尾から split する rsplit() の追加.
sort() のキーワード引数: sort() 時に cmp (比較関数の設定), key (比較する前に要素をフィルタ), reverse (逆順).
sorted(): sorted(x) が x のソート済みコピーを返す(sort() は in-place で,値を返さない).
cjkcodecs: cp932, shift-jis(-jisx0213), euc-jp(-jisx0213), iso-2022-jp-(1,2,3,ext) 他中韓国語 codecs の提供.
collections.deque: 汎用コレクション型,特に双端キュー(deque).
モジュールの C 実装: heapq, bisect.
imaplib: THREAD 命令の実装.
itertools.groupby(iter, func): iter の要素から,同じ値を持つ隣接する要素同士をリストにして返すイテレータ.
itertools.tee(iter, N): iter からイテレータを二つ生成して返す.
logging.basicConfig: 基本的な機能を備えた logger.
operator.attrgetter(a)/itemgetter(N): インスタンスの属性 a や N 番目の要素を返すオペレータ.
posix.os.getsid(): プロセスのセッション ID を返す.
poplib: POP over SSL のサポート.
profile: C extenstion 中の関数をプロファイルできるようになった.
random.getrandbits(N): randrange() よりも効率的に N ビットの長整数乱数を返す.
re: (?(grp)A|B) grp の後ろに正規表現 A または B が来ればマッチ.
weakref: 関数,インスタンス,set, frozenset, deque, array, file, socket, 正規表現パターンをサポート.
xmkrpclib: 複数の XML-RPC 呼び出しを一つの HTTP 操作で行えるようになった.
cookielib: HTTP cookie 処理のサポート.
C/API: Py_RETURN_TRUE/FALSE/NONE の追加,PyTuple_Pack(o1,o2,...) のサポート
インタプリタのプロファイル: --enable-profiling ビルドで gprof プロファイリングをサポート
Win32 コンパイラサポートの追加: MSVC++7.1 ビルドの提供
timeit: タイミングループ中にガベージコレクションを抑制
base64: RFC 3548 準拠の Base64/32/16 符号化をサポート
0386デフォルトの名無しさん
NGNGとても嬉しいからいいけど
0387デフォルトの名無しさん
NGNGこれはいくらなんでも嘘だろ。
ざっと見どこにもそんなこと書いてないし。
0388デフォルトの名無しさん
NGNGttp://www.python.org/peps/pep-0289.html,Details.4
0389デフォルトの名無しさん
NGNG乙です。折れもハイライト訳そうかと思ったけど分量にメゲた。
0390デフォルトの名無しさん
NGNGfor x in lines:
としてxとかlines.count[x]を使うのと
for x in range(len(lines)):
としてlines[x]とかxとか使うのとでは
善し悪しとかあるんでしょうか?
0391デフォルトの名無しさん
NGNGがモアベター。ただし2.3以降限定。それ以前なら、
for index, line in zip(range(len(lines)), lines):
で代替できる。ループ内でどちらかを自前で計算するより、
このイディオムを使う方が見やすいしバグも入りづらいと思われ。
0392デフォルトの名無しさん
NGNGするようになったらしい.
ttp://www.sakura.ad.jp/news/20040706-001.news
0393デフォルトの名無しさん
NGNG125円のは無理
0394デフォルトの名無しさん
NGNG0395デフォルトの名無しさん
NGNG0396デフォルトの名無しさん
NGNG> ※2 スタンダードプラン、プレミアムプランでのみ対応。
> プラン名 ライト スタンダード プレミアム
> 月額料金 125円(※1) 500円 1,500円
だから 125 円でいいんじゃないの?
0397デフォルトの名無しさん
NGNG0398デフォルトの名無しさん
NGNG0399デフォルトの名無しさん
NGNG> プログラム作成も思いのまま。
ここでCGI==Perl説を推してみる。
0400デフォルトの名無しさん
NGNGJava は Python に吸収されました
0401デフォルトの名無しさん
NGNG0402名無しさん@そうだ選挙に行こう
NGNG0403名無しさん@そうだ選挙に行こう
NGNGos.rename(src, dst)
0404名無しさん@そうだ選挙に行こう
NGNGまだ仕様でもめているのかな。
0405名無しさん@そうだ選挙に行こう
NGNGこんなサーバじゃ
0406名無しさん@そうだ選挙に行こう
NGNG0407名無しさん@そうだ選挙に行こう
NGNGさよなら Perl・・・
0408デフォルトの名無しさん
NGNG0409デフォルトの名無しさん
NGNGパイソン
0410デフォルトの名無しさん
NGNG0411デフォルトの名無しさん
NGNG一行毎の取り込みと一括取り込みの2パターン用意されていることが
多い様ですが、これらの使い分けはどの様になっているのでしょうか?
イマイチ2パターンあることの必然性が理解できないと言うか...
0412デフォルトの名無しさん
NGNG1行100Kbytesのデータを10万行処理しようと思ったらreadline
0413デフォルトの名無しさん
NGNGたいていは C/C++ とか Java とか PHP だね・・・
Python だったらそれらのどれにもラップできるのにね・・・
0414デフォルトの名無しさん
NGNG( ´ー`) < わざわざラップしなくてもいいんじゃネーノ?
\ < └───/|────
\.\______//
\ /
∪∪ ̄∪∪
0415デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNG0417デフォルトの名無しさん
NGNG0418デフォルトの名無しさん
NGNG東京都中野区にお住まいの若林純子さんの履歴書
http://www.google.co.jp/jobs/sample_resume.html
0419デフォルトの名無しさん
NGNG組めないかと思っているのですが、そういったことはできるのでしょうか?
0420デフォルトの名無しさん
NGNG0421デフォルトの名無しさん
NGNG方法を調べたいのですがそのあたりの情報源などありますか?
0422デフォルトの名無しさん
NGNG0423デフォルトの名無しさん
NGNG421 (11:45) -> 422 (12:07) 応答22分
>421で深く突っ込まれた後の>422の心の動きが目に浮かぶようだ
0424デフォルトの名無しさん
NGNGこの、応答時間も考慮に入れるべきでは?
0425デフォルトの名無しさん
NGNG0426デフォルトの名無しさん
NGNG0427デフォルトの名無しさん
NGNG0428デフォルトの名無しさん
NGNG0429デフォルトの名無しさん
NGNGFORMに入力するまでが自動なのか
送信するのも自動なのかハッキリしろ。
仕様が曖昧だハゲ
0430デフォルトの名無しさん
NGNGなんだから送信するのも自動じゃないの?
0431デフォルトの名無しさん
NGNG前者ならブラウザ環境も書かなきゃね
0432デフォルトの名無しさん
NGNGhtmlを経由しなくてもいいんじゃねーの?
0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNGとりあえず419のスクリプトですがブラウザのアドオンではありません
というかそんなことができるなんて今はじめて知りました (^ ^;
普通にurllibで巡回ソフトを作っているうちにURLを直接指定できない所
(上記のようにフォームを入力してsubmitのボタンを押すことで開くページ)
があったので質問しました。正直方法があるならこだわりません。
でもせっかくpythonの勉強してるしpythonから離れたくないなー
0435デフォルトの名無しさん
NGNG他でもない urllib で出来るわけだが。
URL にパラメタを ? と & で列挙すれば HTTP の GET メソッドで、
urllib.urlopen() の第2引数に & でつないだパラメタ文字列を渡せば PUT メソッドで
それぞれ CGI を呼び出せる。
import urllib, sys
ACTION = "http://www.google.co.jp/search"
DATA = "q=%(q)s&hl=%(hl)s&lr="
q = "Python"
hl = "ja"
urlopener = urllib.FancyURLopener()
urlopener.addheaders = [('User-agent', "Mozilla/3.0")]
print urlopener.open(ACTION + "?" + DATA % locals()).read()
Google は User-agent を見てるみたいなので小細工をしている。
User-agent を見ない CGI なら
print urllib.urlopen(ACTION + "?" + DATA % locals()).read()
で OK。PUTメソッドを使うCGIの場合は以下の通り。
print urlopener.open(ACTION, DATA % locals()).read()
0436435
NGNGFancyURLopener クラスを継承すると HTTP レスポンスの挙動を変えたり
クッキーを処理したりといった芸当もできる。
0437デフォルトの名無しさん
NGNGありがとうございます。上のサンプルいじくりながら
使い方を調べてみます
0438デフォルトの名無しさん
NGNGdiscussion & proposals, so let's try again for 2.4a2.
結局decoratorは2.4a2以降に持ち越し。
0439デフォルトの名無しさん
NGNGありがとうございました、ずっと気になっていたんです。
2.4に盛り込まれないってことじゃないようなので、ひとまず安心しました。
0440デフォルトの名無しさん
NGNG文字「A」が入力されたら FncA を返し、文字「B」が入力されたら FncB を返し・・・
という関数を(場合分けじゃなく)エレガントに作るにはどうしたらよいのでしょうか?
Perl だと &Fnc{$X} みたいに簡単にできるんですけど。
0441デフォルトの名無しさん
NGNG0442デフォルトの名無しさん
NGNG0443デフォルトの名無しさん
NGNGそういうトリッキーなことをしたがる頭を切り替えた方がよいと思われる。
0444440
NGNGeval を使ったら出来ました
def FncA():
return 'AAA'
def FncX(X):
return eval('Fnc' + X)
print FncX('A')()
トリッキーなことをしたいわけじゃなくて、思った通りのプログラミングをしたいんですよ
0445デフォルトの名無しさん
NGNG折れだったら辞書にするか、あるいはクラスにして getattr() する。
class InputHandler:
def invoke(self, key):
try:
method = getattr(self, "handle_" + key)
except AttributeError:
method = self.handle_unknown
method()
def handle_unknown(self):
print "unknown"
def handle_A(self):
print "A"
def handle_B(self):
print "B"
if __name__ == "__main__":
handler = InputHandler()
handler.invoke("A")
handler.invoke("B")
handler.invoke("C")
0446デフォルトの名無しさん
NGNGどういう事チェックする必要あったりしますか?
元質問者じゃないけどちょっと興味あり。
0447デフォルトの名無しさん
NGNG... return eval('Fnc'+X)
...
>>> FncX('X')
<function FncX at 0x0093DDF0>
>>> FncX('X')()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: FncX() takes exactly 1 argument (0 given)
>>>
エレガントすぎて涙が出ますね
0448デフォルトの名無しさん
NGNGとかできないのかなぁ。
0449デフォルトの名無しさん
NGNG取り敢えず涙を拭け
0450デフォルトの名無しさん
NGNG>>> def FuncX(s):
... return globals()['Func'+s]
...
>>> FuncX('X')
<function FuncX at 0x0093DCB0>
>>>
0451デフォルトの名無しさん
NGNG想定してしないコードの含まれた文字列が渡される可能性があると思われ。
def hack():
print 'BBB'
print FncX('A, hack()')()
もし eval のスコープ内に os モジュールがあることを攻撃者が知っていたら
os.system("rm -rf /") などの邪悪なコードが含まれた文字列を渡されるかも。
0452デフォルトの名無しさん
NGNGでなく
return eval('Fnc%s' % X)
ならでーじょーぶなのではないかな?
0453デフォルトの名無しさん
NGNGわかりやすく説明してください
お願いします。
0454デフォルトの名無しさん
NGNGPythonのlambdaは存在自体の受けはいいけど機能が中途半端だから、
直前にローカル関数定義したほうがPythonぽくていいと思う。
0455デフォルトの名無しさん
NGNGls.sort(func) として,func に文字列の長さで比較を行う関数を
指定すれば実現できます.def を使うなら::
def lengthcomp(a, b):
return len(a)-len(b)
としておいて,ls.sort(lengthcomp) としなければなりません.
lambda を使うと, ls.sort(lambda a, b: len(a)-len(b)) で
実現できます.その場で作成されてすぐ使える関数のようなものだと
考えてください.lambda とコロンの間には好きなだけ引数を
入れられます.コロンの後ろには,式しかかけません.戻り値は
式を評価した結果です.map, reduce といった関数を引数にとる関数の他,
list comprehension や generator expression でも,lambda が
便利なことがあります.
def func(x):
return x**2
a = [func(x) for x in range(10)]
のように,func をあらかじめ def で定義しなくても,
a = [lambda x: x**2 for x in range(10)] とかけるからです.
0456デフォルトの名無しさん
NGNGだめぽ。eval は文字列の内容を評価するから
式として成り立つ文字列は何でも実行されてしまう。
0457デフォルトの名無しさん
NGNG0458デフォルトの名無しさん
NGNG(1,2,3)と(1,1,1)の2つに分解させるうまい方法はありますか?
0459デフォルトの名無しさん
NGNG>>> a = [(1,1),(2,1),(3,1)]
>>> apply(zip, a)
[(1, 2, 3), (1, 1, 1)]
0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNG後者の方が Lisp 的だから? 明示指向だから? それとも昔からあるから?
0463デフォルトの名無しさん
NGNG0464デフォルトの名無しさん
NGNG結構ぜんぶあたってそう。
>>463
つまんね
0465デフォルトの名無しさん
NGNG0466デフォルトの名無しさん
NGNGポインタが許されるのは
0467デフォルトの名無しさん
NGNGw
0468デフォルトの名無しさん
NGNGキャハハハ
キモーイ
0469デフォルトの名無しさん
NGNG私は、Eclipseのpydevとかいうプラグインを試してるんだけど、
import sys とかやると sys が見つからないとか言われちゃう。
もちろん実行は出来るんだけど。
0470デフォルトの名無しさん
NGNG気分次第でvim
0471デフォルトの名無しさん
NGNGhttp://slashdot.jp/interview/04/07/24/1020202.shtml?topic=58
0472デフォルトの名無しさん
NGNG紹介サンクス。エイプリルフールのParrot事件懐かしいっす。
0473デフォルトの名無しさん
NGNG0474デフォルトの名無しさん
NGNG0475デフォルトの名無しさん
NGNG1 Ruby に一言: カスだね.眼中にない
2 データ構造ライブラリがないよ: ディクショナリとリストで我慢しれ
3 Jython どうよ?: CPython のプロトタイプ.汚れ役をやらすのだわよ
4 CPAN みたいなのないやん: カタログ作るのマンドクセ
5 パイソンのスケッチネタですよ…: スレ違い
6 ライセンスどないなっとんのや?: 承諾の儀式なんか要らんやろ >CNRIの弁護士
7 インデントを文法に組み込んだ理由教えれ(可読性以外で): コーディングスタイル論争は不毛だろ?!
8 ジムの禅と PEP のこれから: 中庸で
9 最萌 Python コードは?
>>> http://www.linuxwiki.dk/Python_2fObfuscatedPython
>>> Digital Creations(Zope)
>>> でも教育上でプログラミング原理を学ぶのに使われるのが本望だ
0476デフォルトの名無しさん
NGNGひどい要約だな。インタビュー記事を勝手にいじるな。
0477デフォルトの名無しさん
NGNGじゃあ試しにおまいがまとめてみれ
0478デフォルトの名無しさん
NGNG0479デフォルトの名無しさん
NGNG0480デフォルトの名無しさん
NGNG>>475の全うなabstract or summaryを自分で
さらっと作ってみて晒してみてよ。1レス分量でね。
0481デフォルトの名無しさん
NGNG2 木が必要になるころには自作できるでしょ。
3 興味深いプロジェクトだしいい関係じゃないかな。
4 PyPI作ってるところだからもうちょっと待って。
5 その手のくだらない質問はもう答える気がしない。
6 CNRIの解釈は善意があって妥当だね。FSFの態度にはちょっと不満だ。
7 構文解析器でもないのに波括弧ブロックの方が読みやすいのがFAなんて思えないね。
8 変更はゆっくりやるつもりだから心配しないでね。
9 すごい実装はある。でも大事なのはもっと基本的なことなんだ。
0482デフォルトの名無しさん
NGNG0483デフォルトの名無しさん
NGNGワロタよ
0484デフォルトの名無しさん
NGNG時間の無駄だたーよ。肥大化言語の末路を垣間見た気がする。
やはりバーゲンセールよりもエレガントに生きたい。グイドタソ萌え。
――Python だけで全言語の代替が実現可能だと信じて疑わない者より
0485デフォルトの名無しさん
NGNG>全言語の代替が実現可能だと信じて疑わない
Python 自信は何で書くの?
0486デフォルトの名無しさん
NGNGそれのPythonをRubyで置き換えた文章見たことあるよ。ダサー
0487デフォルトの名無しさん
NGNG0488デフォルトの名無しさん
NGNG当たり
>>481が下らなすぎるので流れを変えようかなと思ったが
もうどーでもええわw
0489デフォルトの名無しさん
NGNGきっと現実でも(ry
0490デフォルトの名無しさん
NGNG0491デフォルトの名無しさん
NGNG0492デフォルトの名無しさん
NGNG0493デフォルトの名無しさん
NGNGどんな問題?
0494デフォルトの名無しさん
NGNG・テキストファイルを読み込んで、特定の文字列を置換した上で表示しろ
・テキストファイルを読み込んで、m行目からn行目までを表示しろ
・九九の表をHTMLファイルに書き出せ
・テキストファイルを読み込んで、1行づつ文字列を反転させて表示しろ
ちなみに、プログラミング初心者向けの授業です。
0495デフォルトの名無しさん
NGNG高知大学?
0496デフォルトの名無しさん
NGNG何分で?
0497デフォルトの名無しさん
NGNG大学名に関してはノーコメントで。
>>494
一応60分。
0498デフォルトの名無しさん
NGNG0499デフォルトの名無しさん
NGNG0500デフォルトの名無しさん
NGNGあんまり興味なし
0501デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNG高知大学ならそんなもんだろ。
0503デフォルトの名無しさん
NGNG0504デフォルトの名無しさん
NGNG0505デフォルトの名無しさん
NGNG0506デフォルトの名無しさん
NGNG漏れは余裕で静観(´ー`)
0507デフォルトの名無しさん
NGNG0508デフォルトの名無しさん
NGNG0509デフォルトの名無しさん
NGNG(#゚Д゚)ハァ?バカデスカアナタハ?
0510デフォルトの名無しさん
NGNG0511デフォルトの名無しさん
NGNGそんなこといってると院試で落ちるぞ
0512デフォルトの名無しさん
NGNG0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNG何が悪いってコードを書きたいと言うモチベーションが湧かない。
いくら小学生レベルとはいえこれではな。授業も相当つまらないと思われる。
0515デフォルトの名無しさん
NGNGpython -c 'print file("input.txt").read().replace("foo", "bar")'
python -c 'print "".join(list(file("input.txt"))[m-1:n])'
python -c print "<html><body><pre>\n"+"\n".join([" ".join(["%2d" %((x+1)*(y+1)) for x in range(9)]) for y in range(9)])+"\n</pre></body></html>"'
python -c 'print "\n".join(["".join([s[0-i] for i in range(1, len(s)+1)]) for s in file("input.txt").read().strip().split("\n")])'
0516デフォルトの名無しさん
NGNGこの人岡山大らしいけどPython教えてるの?
つぅか国内の大学でどういうところがPython教えてるの?(教えられる人いるの?)
あとGoogleや楽天以外でPython使ってること教えれよおまいら
0517デフォルトの名無しさん
NGNGひどいコードだね…
0518デフォルトの名無しさん
NGNGSoldamのショッピングサイトはPythonだったり
NSI JapanはZopeだったり。
0519デフォルトの名無しさん
NGNG0520デフォルトの名無しさん
NGNGZopeと一緒にするなよ。
Zopeと一緒にするなよ。
Zopeと一緒にするなよ。
な。頼むよ。
0521デフォルトの名無しさん
NGNG0522デフォルトの名無しさん
NGNGttp://www.python.org/~jeremy/weblog/031104d.html
Zopeは悪くないと思うけど、日本のユーザ会が……。
0523デフォルトの名無しさん
NGNGPython Desktop Server by George Bauer
http://pyds.muensterland.org/
これも悪くないと思うけど、インストールが結構めんどいかも。
0524デフォルトの名無しさん
NGNG0525デフォルトの名無しさん
NGNG>>523 論外だね
>>524 意味不明
やっぱり自作かねぇ〜
0526デフォルトの名無しさん
NGNG煽り方が小学生レベルだ(プ。
0527デフォルトの名無しさん
NGNGでも小学生レベルのレスを敢えてする
こんなところでマヂになってどうするんだ
懐の浅い人間にはなりたくないものだな
0528デフォルトの名無しさん
NGNG懐 = 広い/狭い
0529デフォルトの名無しさん
NGNGレスってなんですか。
0530デフォルトの名無しさん
NGNG0531デフォルトの名無しさん
NGNGレズって何ですか?
0532440
NGNGreモジュール内のメソッド達のこと
0533デフォルトの名無しさん
NGNGいまどきようちえんじでもわらわない。
0534デフォルトの名無しさん
NGNG0535デフォルトの名無しさん
NGNGPython的にはタブ=スペース8つだからね
0536デフォルトの名無しさん
NGNGエディタの方で4に設定してますが?
0537デフォルトの名無しさん
NGNG0538デフォルトの名無しさん
NGNGPEP 8を嫁。
ttp://www.oldriver.org/python/pep-0008j.html
0539デフォルトの名無しさん
NGNG空きなの使えば
ttp://lowlife.jp/cgi-bin/moin.cgi/PythonBasedBlogSoftware
0540デフォルトの名無しさん
NGNG0541デフォルトの名無しさん
NGNG0542デフォルトの名無しさん
NGNG0543デフォルトの名無しさん
NGNG0544デフォルトの名無しさん
NGNG0545デフォルトの名無しさん
NGNG>>> b = "xyz"
>>> a is b
True
ちょっと意外.当然,
>>> a = "xyz"
>>> b = "xy" + "z"
>>> a is b
False
0546デフォルトの名無しさん
NGNG0547デフォルトの名無しさん
NGNGということはできますか?
0548デフォルトの名無しさん
NGNGhttp://www.ironpython.com/
0549デフォルトの名無しさん
NGNG英数字とアンダースコアのみからなる文字列は
辞書検索の効率をあげるために intern されるのだそうな。
だから空白を含むと intern されない:
>>> a = "x z"
>>> b = "x z"
>>> a is b
False
0550549
NGNG×文字列 → ○文字列定数
0551デフォルトの名無しさん
NGNG素直にこうじゃないの
// in a.py
import b
class A(b.B):
後略
0552デフォルトの名無しさん
NGNG0.6ってやっぱり60%くらいのできなの?
それとも0.4は飾りの足ですか?
0553デフォルトの名無しさん
NGNG最初から継承されているとまずいのです。
なんとかならんでしょうか。
0554デフォルトの名無しさん
NGNGA が old style class なら、
A.__bases__ = (b.B,)
でなんとかならん? new style class だとダメだった(in Python 2.3.4)。
ちなみに、基底クラスを入れ替えるより前に作成した A のインスタンスも
b.B のメソッドを lookup するようになるんで、そこんとこ注意。
それが嫌なら class C(A, b.B): とするしかない。
# てか、絶対クラス設計からして間違ってるよなぁ……
0555デフォルトの名無しさん
NGNG最後の一行に禿同。
0556デフォルトの名無しさん
NGNGemacsとか使ってるのがアホ
メモ帳使え
0557デフォルトの名無しさん
NGNG0558デフォルトの名無しさん
NGNG陳腐なエサに釣られんなよ。
0559名無しさん@Vim%Chalice
NGNGんで、gvimをつかってると、バックアップファイルとして、
'...txt~'てなのが作られるんです。
こいつを正規表現で引っかけようと、
re.compile( r'~$' )
とか
re.compile( r'\~$' )
とやるんですが、引っかかってくれません。
代わりに、
re.compile( r'.*~$' )
とやるとうまく行きますが、ちとスマートでないし・・・。
これについて、原因をご存じの方がいらっしゃいましたら、
ご教示頂けませんか。
0560デフォルトの名無しさん
NGNGmatch じゃなくて search だと引っかかるよ
0561名無しさん@Vim%Chalice
NGNGそれにしても、matchともsearchとも書いてないのに・・・。(赤面
0562デフォルトの名無しさん
NGNGあ〜、この罠、正規表現を最初に使ったころにはまった。
0563デフォルトの名無しさん
NGNG0564デフォルトの名無しさん
NGNG0565デフォルトの名無しさん
NGNGそういう用途なら、正規表現よりもむしろ s.endswith("~") で判定する。
0567名無しさん@Vim%Chalice
NGNGあいや、コンパイル済みのマッチ・オブジェクトを
リストに格納してループで回す、ということをやりたかったんで。
0568デフォルトの名無しさん
NGNG0569デフォルトの名無しさん
NGNG何をどうモメてるのか解説キボン。
0570デフォルトの名無しさん
NGNG0571デフォルトの名無しさん
NGNGノシ
0572デフォルトの名無しさん
NGNG0573デフォルトの名無しさん
NGNG- Patch #941229: The source code encoding in interactive mode
now refers sys.stdin.encoding not just ISO-8859-1 anymore.
This
allows for non-latin-1 users to write unicode strings directly.
というのが、やや気になるのですが、何をいっているのかよくわからないので
誰か解説してください。
0574デフォルトの名無しさん
NGNGコメントに2byte文字使ってもいいよ、だって
0575デフォルトの名無しさん
NGNG0576デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
NGNG-*- coding: euc-jp -*-
と書いてエンコードの指定ができるから困らないけど、
インタラクティブモードの場合は困るので、
unicode strings(utf-8なのか?)が通るようにしたんだって。
0578デフォルトの名無しさん
NGNG0579デフォルトの名無しさん
NGNG俺としてはこの構文で満足。
[ ] とか使うのはなんか好かない感じだったから。
他の人はどう?
0580デフォルトの名無しさん
NGNGソース貼れよ
('A`)ワケワカンネ
0581デフォルトの名無しさん
NGNGに対する宣言なのにインデントしないところが気持ち悪いなぁ.
0582デフォルトの名無しさん
NGNGPython-DEVでごちゃごちゃ揉めてたんでまとめづらくて。
めんどいから自分で追っかけてる人にしか分からなくていいやと思った。
すまん。でもちょいとまとめてみた。
関数につける修飾子の構文どうしよう? ってのがPEP-318
ttp://python.org/peps/pep-0318.html
で、むちゃくちゃ揉めてるんだけど、
現在の候補とメリット・デメリットは↓がよくまとまってると思う。
ttp://www.python.org/moin/PythonDecorators
α2では↓のような構文が採用された。
@classmethod
def foo(arg1, arg2):
pass
……そしてリリース後もまだ揉めてる……
どんな風に揉めてるかはPython-DEVを直接見てくれ。
ttp://mail.python.org/pipermail/python-dev/
0583デフォルトの名無しさん
NGNG0584デフォルトの名無しさん
NGNG0585デフォルトの名無しさん
NGNGオレは emacs + python-mode。慣れればそこそこ。
>>584
仕切るなボケ
0586デフォルトの名無しさん
NGNG0587デフォルトの名無しさん
NGNG0588デフォルトの名無しさん
NGNG0589デフォルトの名無しさん
NGNGpje: なんだ? @表記が勝ったのか?
barry: πに似てるからだよ。ともかく動くようになったのはうれしいね。
anthony: おい、俺は Guido の決定に従ったまでだ。殿のお考えによると
とりあえず 2.4a2 に入れてみて、どうにも嫌われたら a3 では引っこめる。
pje: []表記なら python のみで実装できて古いインタプリタと互換性が保たれる。@じゃ無理。
martin: もう議論する時間は終わったんだよ。
guido: ほんと? すごいハックだね。インタプリタのデフォルトのふるまいをどうやって防ぐ?
pje: (コード提示)
skip: これを guido が「すごいハック」と呼ぶかどうかは疑問だな(w
guido: うげ、そりゃだめだ。し、[classmethod] そのものを書けない。
exarkun: (decorate() 文を提案)、でもこれはmethodにしか使えないという欠点がある。
fperez528: >>exarkun +1だ。よりpythonicだし、やっぱりぼくは ipython を変えたくない。
marktrussel: >>exarkun いままで見た中で一番いいね。
jhylton: 実装の大変さが問題なわけではないんだ、どれが好まれるのかという問題だ。
pje: >>exarkun その欠点は致命的。互換性だけが問題なら他にもやりかたはある。
guido: >>pje それなら旧式の foo=classmethod(foo) でいいじゃん、なぜだめ?
barry: >>guido +1
0590デフォルトの名無しさん
NGNGjim: そこだよ。なぜ @ が必要なの? 覚えることが増えるのに。この機能は強力すぎる。
guido: その議論はいままでずっとやってたでしょ。
jhylton: PEPはいまの議論を追うように更新されてる? 重複した議論を避けるのもPEPの目的。
dave: guido の考えを変えるつもりないが、言語の核をいじらない実装のほうが最初は安全だ。
guido: そういう実装はあったよ、でもそれは後置記法だった。前置記法がほしかった。
pje: >>guido なぜ新しい文法か、可読性を上げるため、でしょ。それでも互換性にはこだわる。
guido: そんなに後方互換性を考えるのは制約がきつすぎるからいや。
guido: >>exarkun それじゃ曖昧だからという理由で却下された [classmethod] と同じだ。
decorate() がなにか遠くで関数を操作してるように見える。いまさらそれをなぜ提案?
pje: [foo] は現行の python でなんの副作用もないが [foo()] は副作用があるから。
guido: 微妙すぎな理由。それに sys.settrace は実装の機能であって言語の機能ではない。
nidoizo: Python3 で as が使われるようになったら、@ とは機能的に重複するの?
guido: as が使われるとしても decorator としてではない予定。たぶん型指定かrename。
exarkun: >>guido decorator() は言語じゃなくライブラリに置けるからいいと思った。
しかしそもそもこの機能はなぜ今すぐ必要なのか?
0591デフォルトの名無しさん
NGNGguido: @deco や [deco] の利点のひとつとしてコンパイル時に決定できるというのがある。
あらかたのアイデアは出つくした。どれも一長一短だ。今後待ってもどうせ解決しない。
exarkun: だからそもそも本当に必要なのかという話。もうこれは出つくしたけど。
tjreedy: @ はたしかに複雑だが、初心者は無視できるのがいい。[] じゃ混同する。
nas: 本当に必要なのか疑問。目立つ人がそう主張しているだけに見える。
barry: decorator が可読性を上げるのはたしか。でもほとんどのコードは変わらない。
guido: そのとおり。標準ライブラリでも staticmethod なんかを使っているのは少数。
jim: >>tjreedy 初心者は無視できないだろう。人はコードを理解したがるものだ。
andrew: 高度な機能はほかにもある。metaclassとか。でも、ほとんど見ないから問題ない。
jim: classmethod なんかは metaclass よりははるかに使われるよ。
...もう疲れたのでここまで。おやすみ。
0592デフォルトの名無しさん
NGNG0593デフォルトの名無しさん
NGNG0594デフォルトの名無しさん
NGNGばかばか。
0595デフォルトの名無しさん
NGNGどうでもいいけど@ってPerlにあるよね?
0596デフォルトの名無しさん
NGNGttp://www.python.org/peps/pep-0010.html
0597デフォルトの名無しさん
NGNG0598デフォルトの名無しさん
NGNG0599デフォルトの名無しさん
NGNG2.4は試したことがないけどたぶん可能。
同じバージョンでも同居可能だから。
0600デフォルトの名無しさん
NGNG> 同じバージョンでも同居可能だから。
これはだうと気味。
Windowsだとシステムディレクトリにpython2x.dll(インタプリタ本体+一部の
拡張モジュール)が入るんだけど、2.3シリーズはみんなpython23.dllって名前
だから、上書きされる。2.4シリーズはpython24.dllって名前なんで同居可能。
pythin2x.dll以外(*.pyなモジュールとか)はそれぞれ別なところに入るんで、
そこは上書きインストールしない限り衝突しないんだけど。
ま、2.3.3と2.3.4を同居させたい、とかなんてまずやらないと思うけど。
# LLWに行けなかった _no...
0601デフォルトの名無しさん
NGNG行った人の感想きぼん!
0602番長
NGNG0603デフォルトの名無しさん
NGNGタプル (dirpath, dirnames, filenames) を生成」すると、リフ
ァレンスにあります。でも、普通のタプルのように「[]」を使っ
たアクセスができません。os.walk()で生成されるタプルって、
普通のタプルと違うんでしょうか?
>>> t1 = ('Paul','Jim','Tim')
>>> t1[0]
'Paul'
>>> t2 = os.walk('/tmp')
>>> t2[0]
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: unsubscriptable object
0604デフォルトの名無しさん
NGNGfor t in os.walk('/etc'):
print t[0]
0605デフォルトの名無しさん
NGNG0606デフォルトの名無しさん
NGNG理解できました。ありがとうございました。
0607デフォルトの名無しさん
NGNGThe Python Paradox
0608デフォルトの名無しさん
NGNGPython 覚えても仕事の役にたたないよ、って言ってる?
0609デフォルトの名無しさん
NGNG議論の前提として、java に比べると pythonなどの job が
少ないといっているのでしょう。
0610デフォルトの名無しさん
NGNGjython で java の job が取れるのだけれど…
0611デフォルトの名無しさん
NGNG0612自信ないからツッコミあったらヨロシク
NGNGつまり,Java のプロジェクトで仕事をするよりも,
Python のプロジェクトで仕事をしたほうが
良いプログラマになれると.
わたしは Java プログラマがアホだと言いたかったのではなく,
Python プログラマが優秀だと言いたかった.
新しいプログラミング言語を覚えるのは大変な仕事であり,
誰も仕事を得ようと思って Python を覚えたりなんかしない.
プログラムが純粋に好きで,すでに知っている
プログラミング言語(Javaとか)に満足していない
ような人が Python を覚える.
0613デフォルトの名無しさん
NGNGこの法則のうまい名前が無いので,Python パラドックスと呼ぶ.
「もし,会社がソフトウェアを書くのにマイナーな言語を選んだとしたら,
より優秀なプログラマを雇うことができる.
なぜなら,マイナーな言語は,そういうマイナーな言語を
覚えるような人だけを惹きつけるからだ.」
プログラマの立場からは,このパラドックスはこうも言える.
「もしよりよい職を得たいなら,習得するべき言語は,
人々が単に職を得るために覚える言語ではない,マイナーな言語だ.」
[Google の事例]
[友人の話だとソースの見た目がどうとか]
[Perl と Python の構文の話]
Perl も Python も moving target だ.
Ruby とか(その他の言語)も,
プログラミングを真剣に考えている人々に
よって作られ,使われている点では同じだ.
そして,そういった人は,仕事をうまくやる人で
あることが多い.
0614デフォルトの名無しさん
NGNGttp://www.shiro.dreamhost.com/scheme/trans/pypar-j.html
0615デフォルトの名無しさん
NGNGすなわち、ぶっ飛んだ所が少なくて、誰でも使える、ちょっと便利な言語。
Paul Graham 的には、
Java <-- 流行ってるから叩いておけ
Python <-- Lisp 仲間が流れていってるから、ちょっと叩くのは止すか
てな感じがする。言ってる事はかなり同意なんだけど。
0616デフォルトの名無しさん
NGNG全部 Python 側から扱えるよ.
Shell も WM も Python で記述してあるよ.
0617デフォルトの名無しさん
NGNG>Python 側から扱えるよ
ここの Dynamic FFI くらいのレベルなら文句無いんだけどね。
FFI は Lisp 系が一番優れていると思うよ。
http://xarch.tu-graz.ac.at/autocad/lisp/ffis.html
0618デフォルトの名無しさん
NGNG0619デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?hl=ja&ie=UTF-8&q=python+sjis+euc+%E5%A4%89%E6%8F%9B&lr=
0620デフォルトの名無しさん
NGNG最近pythonを勉強し始めたのですが、よく他人のソースを見ていると
関数を定義するときに必ずといっていいほどselfという引数が使われているのですが、
このselfという引数はなにか特別なものなのでしょうか?
0621デフォルトの名無しさん
NGNG>nothing more than a convention: the name self has absolutely no special
>meaning to Python. (Note, however, that by not following the convention
>your code may be less readable by other Python programmers, and it is also
>conceivable that a class browser program be written which relies upon such
>a convention.)
0622デフォルトの名無しさん
NGNGどうもっす。
特に意味は無いんですね。そして他の人に分りにくくなると・・・w
ところでもし良かったら、引用元を教えてもらえませんか?
0623デフォルトの名無しさん
NGNGttp://www.python.jp/pub/doc_jp/tut/node11.html
チュートリアルは全部目を通しておこう。
せっかく初学者のために用意されてんだし。もったいない
0624デフォルトの名無しさん
NGNG有難う御座います。助かります。
とりあえず最初から順に読んでいきますね。
#selfを使う慣習は、従わないと読みにくいのか・・・読み間違えたorz
0625デフォルトの名無しさん
NGNG0626名無しさん@Vim%Chalice
NGNGprint '\s \s' % ( 'hoge', 'hoge' )
ってやりますが、こいつを
hoges = ( 'hoge', 'hoge' )
print '\s \s' % hoges
ってできないんでしょうか・・・。
参照すべきドキュメントなどご存じでしたら、ご教示ください。
0627名無しさん@Vim%Chalice
NGNG'\s \s' -> '%s %s'
でした。m(_ _)m
0628デフォルトの名無しさん
NGNG0629デフォルトの名無しさん
NGNG0630デフォルトの名無しさん
NGNG0631デフォルトの名無しさん
NGNG初期開発者がもし死んでも開発が継続する体制があるかないか
とか?
0632デフォルトの名無しさん
NGNG質問する前に試した?
0633デフォルトの名無しさん
NGNG0634デフォルトの名無しさん
NGNG0635626
NGNGやりましたよう。いろいろやったんですがうまく行かなくて。
・・・今、やってみたら、ちゃんと期待通りに動くじゃないですか(- -;
括弧入れたりカンマ入れたり、いろいろやったけど、
正しいのだけは見事に外してたのでせうか・・・。
お騒がせしました。m(_ _)m
0636626
NGNG626は私で、助言をいただいたのは632様でした。m(_ _)m
0637デフォルトの名無しさん
NGNGPython 使いになって正解だった。
0638デフォルトの名無しさん
NGNG0639626
NGNG626, 627のやつですが、タプルやマップなら受け付けて、
リストだと受け付けんのですな。
ナゼダ。orz
0640デフォルトの名無しさん
NGNGヲイ、rubistはΩ儲と同じぐらい痛い集団だぞ!
0641デフォルトの名無しさん
NGNGttp://www.python.jp/pub/doc_jp/lib/typesseq-strings.html
をよく読め。
0642639
NGNG仕様である、といわれればそれまでですが・・・。
0643デフォルトの名無しさん
NGNG5月末に本家で 2.3.4 がリリースされて三ヶ月近く経っても未だに 2.3.3 ですね。
2.3.4 のニュースリリース ttp://www.python.org/2.3.4/NEWS.html だと結構
バグ直ってるっぽいんですが、Windows で Python している人はどっち使ってます?
というか 2.3.4 の日本語版はリリース予定ないんでしょうかね。
0644デフォルトの名無しさん
NGNG日本語版はとくにいらないし。
0645デフォルトの名無しさん
NGNG書くとうまくいきません。
ブラウザで実行すると以下の文が生成されるんですが、
xshade.scene.active_shape.name"*パート"
これをスクリプトから実行しようとするとエラーになってしまいます。
わかる方いましたら、お願いします。
0646デフォルトの名無しさん
NGNG> shade6でpython使ってるんですけど、
ほぅ、最近じゃShadeにもPythonが付いてるんか。
CG関係にも人気があるんかね、Pythonは。
> ブラウザで実行すると以下の文が生成されるんですが、
> xshade.scene.active_shape.name"*パート"
思いっきり文法違反なんだが……ブラウザがタコいんでない?
ShadeのAPIは知らないんで、正しい(とShadeが主張する)コードは、
すまんがわからない。
APIリファレンスみたいなのはないの?
0647デフォルトの名無しさん
NGNGちゅーこんで
Shade 相談/質問スレッド Ver.3.0 ドゾー( ´∀`)つ
ttp://pc5.2ch.net/test/read.cgi/cg/1079609445/
0648デフォルトの名無しさん
NGNGreturn の返り値に unicode() を噛ませたら、今まで文字化けしていた
ウインドウタイトルのパス名の日本語部分が正常に表示されるように
なった。万歳。
……でもバージョンアップして IDLE を入れなおしたらまた書き直
さないといけないんだね。本家で直してくれないかな。
0649デフォルトの名無しさん
NGNGCJKPython
0650デフォルトの名無しさん
NGNG0651デフォルトの名無しさん
NGNG2.4系でマージされたのはどっちの方なの?
0652643
NGNG確かに CJKPython なり JapaneseCodec なりを使えば
日本語版にこだわる理由もなくなるとは思うんですが、
pykf の最新版 (0.3.4) の Windows用バイナリって配布されてないですよね。
VS 持ってないからコンパイルできないし。
pykf が必要なのは、Popee (ttp://isrf.homeip.net/Projects/Popee) が pykf を
使うからなんです。日本語版Pythonなら pykf が最初から入っているので。
CJKPython を使えれば pykf 必要ないですよね。ちょっとソースコード見て
何とかしてみようと思います。
>>651
「どっち」というのが JapaneseCodec と CJKPython を指すなら、CJKPythonのはずです。
0653デフォルトの名無しさん
NGNG> ふぃすろん?って読むの?
\ │ /
/ ̄\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
─( ゚ ∀ ゚ )< ぱいそんぱいそん!
\_/ \_________
/ │ \
∩ ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ ∩ ∧ ∧ \( ゚ ∀ ゚ )< ぱいそんぱいそんぱいそん!
ぱいそん〜〜〜! >( ゚ ∀ ゚ )/ | / \__________
________/ | 〈 | |
/ /\_」 / /\」
0654643
NGNGCJKPython を CJKCodecs を混同していました。というより CJKPython の存在を知りませんでした。
>>649さんありがとう。
Python-ml-jp の過去ログだと JapaneseCodec との動作に若干の違いがあるようですが、
2.3.4 版がリリースされているのはありがたいです。使ってみます。pykf も入っているようですし。
PyJUG には CJKPython に関する記述はないようですが、僕のように Python を新しくやってみようと
いう者には混乱が起きそうですね。日本語版 2.3.4 がないのなら CJKPython へ誘導するなりして
くれるとありがたいのですが。
0655653
NGNG0656デフォルトの名無しさん
NGNG0657デフォルトの名無しさん
NGNGPopeeでのpykfは勢いあまって入れてしまっただけなので、次のリリースからは
削除の予定〜。
0658デフォルトの名無しさん
NGNGテキストはできるのですが, structとsocketの使い方がいまいち理解できていません
0659デフォルトの名無しさん
NGNGテキストはできるのですが, structとsocketの使い方がいまいち理解できていません
0660デフォルトの名無しさん
NGNGstruct要らないんでない?
送信側:
fileName = "hoge.jpg"
image = open(fileName, "r")
socket.send("%s %d\n" % (fileName, len(image))
socket.send(image)
受信側:
line = ""
while True:
c = socket.recv(1)
if c == '\n':
break
line += c
(fileName, size) = line.split()
image = socket.recv(int(size))
file = open(fileName, "w")
file.write(image)
file.close()
こんな感じかな?
0661660
NGNGimage = open(fileName, "r")
↓
image = open(fileName, "r").read()
0662デフォルトの名無しさん
NGNGimport socket
s = socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect('your.target.host', 101010)
infile = open('binarydata_file', 'rb') # do not forget 'b'
data = infile.read()
header = struct.pack('<I', len(data)) # encode header (32bit uint LE)
s.sendall(header)
s.sendall(data)
-------
# s is a socket returned by accept().
hdrsize = struct.calcsize('<I')
hdr = ''
to_read = hdrsize
while to_read>0: # read header bytes
hdr += s.recv(to_read)
to_read = hdrsize-len(hdr)
datasize = struct.unpack('<I', hdr) # decode header length (32bit uint LE)
to_read = datasize
data = ''
while to_read>0: # read data bytes
data += s.recv(to_read)
to_read = datasize-len(data)
0663デフォルトの名無しさん
NGNG> VS 持ってないからコンパイルできないし。
これは参考にならない?
.NET SDKとVC++Toolkitで無理矢理やってるけど。
http://www.zob.ne.jp/~hide-t/mt/archives/2004/07/pyrex.html
0664デフォルトの名無しさん
NGNG> 2.3.4 の日本語版はリリース予定ないんでしょうかね。
日本語版の中の人に直接聞け。日本語版は中の人がひとりで作っているもので、
「予定」なんてものは無いと思われ。ユーザからの要望がなければずっと古い
ままという可能性も大いにありうる。たぶん中の人はこのスレを見てないから
直接メールするなりしないとダメポ。
0665デフォルトの名無しさん
NGNGpython1.5.2だと
>>> a = ['ああ']
>>> print a
['\244\242\244\242']
python2.1.3だと
>>> a = ['ああ']
>>> print a
['\xa4\xa2\xa4\xa2']
となり、出力される結果が違います。
なんとか2.1.3で出力しても1.5.2と同じ形式にしたいのですが
うまい方法はありますでしょうか?
0666デフォルトの名無しさん
NGNGclass Printer(pprint.PrettyPrinter):
re_numeric = re.compile(r"\\(t|n|x[0-9A-Fa-f][0-9A-Fa-f])")
def __repr(self, object, context, level):
re_numeric.sub(pprint.PrettyPrinter.__repr(
object, context, self.__depth, level), self.__replace)
def __replace(self, match):
s = match.group()
if s[1] == "x":
return r"\%03o" % int(s[2:], 16)
elif s[1] == "t":
return r"\011"
elif s[1] == "n":
return r"\012"
raise RuntimeError, "should not reach here"
if __name__ == "__main__":
pprint.PrettyPrinter = Printer
pprint.pformat(["n\n\012\0x0a\xa4\xa2"]) == "['n\012\012\012\244\242']"
0667デフォルトの名無しさん
NGNG0668デフォルトの名無しさん
NGNGsafe_repr = pprint._safe_repr
re_escape = re.compile(r"\\(t|n|x[0-9A-Fa-f][0-9A-Fa-f])")
def compat_safe_repr(object, context, maxlevels=None, level=0):
rep = list(safe_repr(object, context, maxlevels, level))
rep[0] = re_escape.sub(replace, rep[0])
return tuple(rep)
def replace(match):
s = match.group()
if s[1] == "x":
return r"\%03o" % int(s[2:], 16)
elif s[1] == "t":
return r"\011"
elif s[1] == "n":
return r"\012"
raise RuntimeError, "should not reach here"
pprint._safe_repr = compat_safe_repr
if __name__ == "__main__":
assert pprint.pformat(["n\n\012\x0a\xa4\xa2"]) == r"['n\012\012\012\244\242']"
0669デフォルトの名無しさん
NGNG継承できないのを忘れてた。つーか何でこのメソッドは継承不可なんだYO!(逆ギレ)
0670デフォルトの名無しさん
NGNG他のOO言語でいうところの private 関数だから
0671デフォルトの名無しさん
NGNG「なんでこのメソッドが private なんだYO! (逆ギレ)」
ということじゃないの?
0673デフォルトの名無しさん
NGNG(w
0674デフォルトの名無しさん
NGNG言いたいことはわかる。
でも、Pythonはここ一年間ですら言語仕様がいろいろ増えたし、紹介は必要
だったと思う。ただ全体を見渡す視点が足りなかったのかもというのはある。
Pythonとさっぱり変わってない言語をその教祖がホームグラウンドで比較
した色眼鏡ばりばりの寸評に、どんなまともな価値があるんだか疑問。
0675643
NGNGどうも。CJKPython で問題は解決しましたが今後参考になりそうです。
GPL な Python を Windows で使うにあたって MS のコンパイラが必要というのが
なんか残念ですね。といっても Cygwin とか使うってのもマニアックになってしまうし。
0676デフォルトの名無しさん
NGNGPythonはGPLじゃないYo!
0677デフォルトの名無しさん
NGNGここよみなされ。
http://www.python.jp/pub/doc_jp/inst/tweak-flags.html#SECTION000622000000000000000
0678番長
NGNG>ただ全体を見渡す視点が足りなかったのかもというのはある。
10分では無理
ていうか
2年続けてプロジェクタ真っ黒の言語オタの負け惜しみはみっともない(プ
二日目の最後に日記CGI作ってる出しゃばりおやぢが登場したり
今年はR言語は評判悪い
日本のR言語のポジションをよく象徴している
0679デフォルトの名無しさん
NGNG0680デフォルトの名無しさん
NGNGhttp://www.pygame.org/docs/ref/Movie.html
ここらへん使えば?
0681デフォルトの名無しさん
NGNGttp://freshmeat.net/projects/pyplayer/ とか
ttp://xtheater.sourceforge.net/pythontheater/ を見れ。
0682デフォルトの名無しさん
NGNG出しゃばり具合で言うならむしろ「俺のは79行!」とか「1時間で書いたYO!」とか
ガァガァうるさいフタデブラクダの方が目障りだった。奴がラクダ代表を自認してる間は
あちこちに敵をつくりつづけるんだろうな。合掌。
0683デフォルトの名無しさん
NGNGセミナーだかなんだかに参加してた人専用?
0685679
NGNG0686643
NGNGGPL互換ですた。勘違いでつた。指摘どうも。GPLか、GPL互換かってのは大きな違いですね。
ttp://itpro.nikkeibp.co.jp/NIP/license.html ちょっと調べてたらライセンスの一覧がありました。
BSD ライクなライセンスなんですね。
>>677
mingw なんて手もありましたか。どうも。これで安心しましたよ。
0687デフォルトの名無しさん
NGNGRの評判って悪いの?詳細きぼん
0688デフォルトの名無しさん
NGNGアドバイスお願いします。
>>> class c1:
pass
>>> array1 = c1() # ok
>>> array2 = c1()[10] # damepo
>>> array3 = c1[10]() # damepo
>>> array4 = c1[10] # damepo
C++ みたいに
array = new c1[10]
って、できないのでしょうか?
0689デフォルトの名無しさん
NGNGttp://www.python.jp/pub/doc_jp/lib/typesseq.html
ここを見るとこう書けるっぽい。
array = [c1()] * 10
なんかいけてない。
0690デフォルトの名無しさん
NGNGごめん↑のは忘れて
0691デフォルトの名無しさん
NGNGいえいえ、リンク先を示して頂いただけでも充分ありがとうです。
array = [c1() for i in range(10)]
ということですね。
ばっちりでした。
# たしかになんかいけてない書き方ですね w
0692デフォルトの名無しさん
NGNGリストなんだなぁと改めて実感するな。
0693688
NGNGprint が出力できる情報量について聞きたいのですが、、、
from nntplib import NNTP
s = NNTP("news.media.kyoto-u.ac.jp", 119, "guest", "guest")
t = s.list()
# OK -----------------------
fout = open("list.txt", 'w')
fout.write(str(t))
fout.close()
# NG (反応が返りません) ----
print str(t)
ファイルにすると約2MBほどの情報なのですが、
うーん。。。
print に対して 2MB のデータを突っ込むことはできないのでしょうか?
こちら側で気を付けなければならない仕様なのでしょうか?
すいませんがわかる方教えてください。
よろしくお願いします。
Python version : 2.4a2
IDLE version : 1.1a2
0694688
NGNG私の環境では IDLE だけのようです。
↓は OK でした。
・cygwin の python
Python 2.3.4 (#1, Jun 13 2004, 11:21:03)
[GCC 3.3.1 (cygming special)] on cygwin
・Python(command line)
IDLE のときは print に無理をさせないようにしたいと思います。
お騒がせしました。
0695デフォルトの名無しさん
NGNG0696デフォルトの名無しさん
NGNGttp://www.python.jp/pub/doc_jp/tut/
次回テンプレに入れといたほうがいいね
0697デフォルトの名無しさん
NGNGんだなぁ (´ー`)y−〜〜
リスト慣れしていない漏れたちこそイケてないんじゃないかなぁ _| ̄|○ili
0698デフォルトの名無しさん
NGNGイケてなくても上等、というのが Python なのかも。
0699デフォルトの名無しさん
NGNGそもそも、PythonのListとLisp/Schemeのそれは違うもんだし。
0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNG0702デフォルトの名無しさん
NGNGそーういのはネタスレで。
0703デフォルトの名無しさん
NGNG0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNG0706番長
NGNG0707デフォルトの名無しさん
NGNG0708デフォルトの名無しさん
NGNGimport pygame
def puttext(screen, font, text ,x = 0, y = 0, color = (255, 255, 255)):
screen.blit(font.render(text, True, color), (x, y))
def rend(screen, font):
screen.fill((0,0,0))
puttext(screen, font, u"spam, egg.")
pygame.display.flip()
while True:
for e in pygame.event.get((pygame.MOUSEBUTTONDOWN, pygame.QUIT)):
if e.type in (pygame.MOUSEBUTTONDOWN,):return False
elif e.type in (pygame.QUIT,):return True
pygame.time.wait(10)
def main():
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.font.init()
for i in pygame.font.get_fonts():
pygame.display.set_caption(unicode(i))
if rend(screen, pygame.font.SysFont(i, 100)):return
if __name__ == '__main__':
try:main()
finally:pygame.quit()
0709デフォルトの名無しさん
NGNGdisplay.quit() しておかないとタイトルバーの機能が
効かなくなったりするよ。(WindowsXP)
ところで、このまま pygame のネタをここに書き落として
いってもいいのかな。
それともゲ制作板にスレ立てしないと駄目?
0710デフォルトの名無しさん
NGNG0711デフォルトの名無しさん
NGNG0712デフォルトの名無しさん
NGNGMySQLの場合ではうまくいくのでACCESS固有の話のような気はしますが、ご存じだったら正しい方法を教えて下さい。
import sys, os, MySQLdb, StringIO
import odbc
# MySQLの場合
con = MySQLdb.connect(db="test")
cur = con.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS foo (img BLOB)")
data = StringIO.StringIO(file("foo.bmp","rb").read()).getvalue()
cur.execute("INSERT INTO foo SET img=%s",(data))
con.close()
# MS ACCESSの場合(testはODBCに設定済み)
dsn = "test"
con = odbc.odbc(dsn)
cur = con.cursor()
cur.execute("CREATE TABLE foo (img IMAGE)")
data = StringIO.StringIO(file("foo.bmp","rb").read()).getvalue()
cur.execute("INSERT INTO foo (img) VALUES(?)",(data))
cur = con.cursor()
con.close()
0713デフォルトの名無しさん
NGNG作成しているのには,何か理由があるのかな?
0714デフォルトの名無しさん
NGNGた、たいぽです。
0715デフォルトの名無しさん
NGNGどこからどこへの家庭で発祥した逮捕゜なんだよ ( ゚∀゚)σ)´Д`)
脳内からアクセクへの家庭科、
或いはアクセクのコードのペインからの家庭で撃ち損じたのか?
(´-`).。oO( 後者はコピー&ペーストで済むからありえへんねやろ… )
0716デフォルトの名無しさん
NGNGいくら2chでも当て字多すぎ。最初見たとき誤爆かと思った。
0717デフォルトの名無しさん
NGNGなんか寂しい事になりそうなので引き続きこちらでよろしくお願いします。
ついでに一つ。
ttp://sansa.s16.xrea.com/text/pygame_sample.html の「音楽を再生」
みたく pygame.init() をせずに pygame.mixer.init() だけして音楽を鳴らす
と、鳴ることは鳴るのだけれども変な音になる。(WindowsXP)
多分、HP作者の環境だと問題無く動いているんだと思うけれど…。
pygame は自動的に初期化されるモジュールも多いけれど、
エラーも出さずに変な動作をしてくれる場合も多く危険だ。
0718名無しさん@Vim%Chalice
NGNG値渡しになっちまうんでしょうか。
下記のようなことをやって、Rootのcolumnを、
単一のインスタンスを参照するようにしたいのですが。
このとき、columnは、Rootのインスタンス変数であって、
クラス変数ではないということで。
もしかして、リストじゃなくて、タプルだったら参照渡しになりますか・・・。
class Node:
def __init__( self, column ):
self.column = column
def addColumn( self, column ):
self.column.append( column )
class Root( Node ):
def __init__( self ):
self.childnodes = []
column = [ 'col1', 'col2' ]
self.childnodes.append( Node( column ) )
self.childnodes.append( Node( column ) )
self.childnodes.append( Node( column ) )
0719デフォルトの名無しさん
NGNGdef b(Self,x):x[0]="hoge"
>>> c=[1,2,3]
>>> c
[1, 2, 3]
>>> d=a()
>>> d.b(c)
>>> c
['hoge', 2, 3]
普通に参照渡しだと思うけれども、こういう話とは違うの?
>下記のようなことをやって、Rootのcolumnを、
>単一のインスタンスを参照するようにしたいのですが。
>このとき、columnは、Rootのインスタンス変数であって、
>クラス変数ではないということで。
サブクラス Root は親クラス Node の __init__ を呼んでいないけれど
そのへんはどういうつもりの設計なの?
0720名無しさん@Vim%Chalice
NGNG生半可ですみません。m(_ _)m
今後、転写するコードは動作するものだけにします。
で、バグに気がつきました。
別に、clearColumnというメソッドがあって、
それを実行したときに、self.columnに新しいインスタンスを
与えてしまっていたのでした・・・。
self.column[ 1: ] = []
に修正しました。
お騒がせしました。m(_ _)m
0721デフォルトの名無しさん
NGNG0722デフォルトの名無しさん
NGNGた、たいぽです。
0723デフォルトの名無しさん
NGNGi in g(15)for j in g(15)]for n in[[(r.insert(0,n),[(len(s)and[[r.append((x+k,
y+l))for m[x+i][y+j],m[x+k][y+l]in[(2,2)]]for i,j,k,l in[o.choice(s)]])or[0\
for x,y in[r.pop()]]for s in[[((-1,0,-2,0),(1,0,2,0),(0,-1,0,-2),(0,1,0,2))\
[i]for i in g(4)if[x>1,x<13,y>1,y<13][i]and m[x+[-2,2,0,0][i]][y+[0,0,-2,2]\
[i]]==1]]])for n in r]for m,x,y,r,o,g in[([[i*j==1 and 2 or i*j%2 for i in\
range(15)]for j in range(15)],1,1,[(1,1)],__import__("random"),range)]]][0])
0724デフォルトの名無しさん
NGNG0725デフォルトの名無しさん
NGNG面白そうなので、短くしてみた。
print"".join(*[[["# "[m[i][j]/2]+"\n"[:j/14]for i in g for j in g]for n in[[(r.
insert(0,n),[s and[[r.append((x+k,y+l))for m[x+k/2][y+l/2],m[x+k][y+l]in[(2,2)]
]for k,l in[o.choice(s)]]or[0 for x,y in[r.pop()]]for s in[[(k,l)for k,l in[(-2
,0),(2,0),(0,-2),(0,2)]if m[(x+k)%15][(y+l)%15]%2]]])for n in r]for m,x,y,r,o
in[([[i*j%2 for i in g]for j in g],1,1,[(1,1)],__import__("random"))]]]for g in
[range(15)]][0])
0726デフォルトの名無しさん
NGNG>>725
おまいら凄すぎる。
0727デフォルトの名無しさん
NGNG0728デフォルトの名無しさん
NGNG0729デフォルトの名無しさん
NGNGscheme捨てないで!
0730デフォルトの名無しさん
NGNG0731デフォルトの名無しさん
NGNG0732デフォルトの名無しさん
NGNG0733デフォルトの名無しさん
NGNG0734デフォルトの名無しさん
NGNGそもそもインデントしないでコードを書く人間など、
私生活でも散らかってるやつに決まっとる!
0735デフォルトの名無しさん
NGNGScheme で本当にタチが悪いのは特殊構文と普通の関数の区別がつかないことだ。
たとえば set! は特殊構文だが、vector-set! は同じ破壊的な操作をおこなう関数でも
特殊構文ではない。同様に let や cond も慣れないとわかりにくいし、
慣れたあとでさえときどき間違える。これでマクロが自由自在に定義できたときには
恐しいことになるだろう。Scheme でも頑張れば Python と同じくらい
生産的になることはできるだろうが、Python にあるようなプログラマをミスから
守ってくれそうな細かい気配りが Scheme には欠けている。Emacs でバリバリ色を
つければそれなりに何とかはなるだろうが、それでも言語設計の段階からそういう
ミスについて配慮している Python のほうが印象がいい。
と最近思いましたです。
0736デフォルトの名無しさん
NGNG同様に扱える、というのはメリットでもあるよ
0737デフォルトの名無しさん
NGNG言語なのだと思う。物事を抽象的に考えるだけでなしに、カッコをすばやく認識できる
パターン認識能力とか、複雑なマクロ展開を (使うとして) 理解できる記憶力が
必要だからだ。Python はそれよりもいくぶん「バカ対策」がされている。
そこに親しみを覚えるか、それをダサいと思うかが Python ユーザと Scheme ユーザの
違いだろうな。自分がバカであると自覚している人間にとっては Python のほうが
親しみやすい。そして謙虚でないプログラマにろくなやつはいない。
0738デフォルトの名無しさん
NGNG0739デフォルトの名無しさん
NGNG「LispもPerlもバカで理解できなかったから」って答えて
るな・・・
0740デフォルトの名無しさん
NGNG参考書はどれを買ったらいいですか
プログラミングはBASICしかやったことがないので簡単な奴がいいです
萌えるパイソン「萌えパイ」みたいな本はないですか
0741デフォルトの名無しさん
NGNGあれこれ選べるほど本は出てないので、
プログラムも初心者に近いなら内容は古くなるけど
「Pythonで学ぶプログラム作法」(ピアソン・エデュケーション)
ttp://www.esbooks.co.jp/books/detail?accd=30878132
がいいんじゃないかな。
あと、お金に余裕があれば、辞書代わりに
「Pythonクイックリファレンス」(オライリー・ジャパン)
ttp://www.esbooks.co.jp/books/detail?accd=31355239
0742デフォルトの名無しさん
NGNGオンラインマニュアルには目をとおした?
ttp://www.python.jp/pub/doc_jp/index.html
チュートリアルは元が英語だからくどいけど、ウソは書いてない。
0743デフォルトの名無しさん
NGNG0744740
NGNG半分ネタで書いたんだけどね。
どこかのサイトにあったPython入門を見て、
これなら俺でもいけそうだって思ったのがはじまり。
でも、書籍はオライリーのむずかしいそうなやつしかないし
「Pythonで学ぶプログラム作法」も俺にはちょっと敷居が高そうだった。
それで、もっと簡単な本はないのかなあと聞いてみたかったのでした。
0745デフォルトの名無しさん
NGNGオライリーの「初めてのPython」しかないと思う。
「Python入門」「Pythonプログラミング」は
Pythonを使って具体的に何をしていくか、
ということに主眼が向いているような気がして
初心者はきついと思う。
0746デフォルトの名無しさん
NGNG0747デフォルトの名無しさん
NGNG0748688
NGNG0749デフォルトの名無しさん
NGNG日本Pythonユーザ会 http://www.python.jp/Zope/
の「初めての方へ:」にある
インスタント・ハッキング http://www.python.jp/Zope/intro/instant_hacking_jp
インスタント・パイソン http://www.python.jp/Zope/intro/instant_python_jp
はどう?
「Pythonで学ぶプログラム作法」が駄目というならこれでも駄目かもしれないけれど。
0750デフォルトの名無しさん
NGNGいくら簡単でも学校の教科書みたいに真面目な物だと駄目なんだろうね。
それと普通のユーザーが普通に使っている、つまり GUI のツールや
ビデオゲームが作れないと駄目だろうし。
SqueakToys みたいなのが必要なのかも。
あるいは高橋麻奈氏に「やさしい Python」を書いてもらうとか。
0751デフォルトの名無しさん
NGNG0752デフォルトの名無しさん
NGNGどのようにすればいいのでしょうか?
x=100
f.write(x)やf.write('x')
と書くとエラーがでてしまいます。
わかる方いましたら、お願いします。
0753デフォルトの名無しさん
NGNG0754デフォルトの名無しさん
NGNGエラー内容をそのまま書かんとわからんよ。
f.write()の引数は文字列で、`x`は文字列だから本来エラーにはならない。
ファイルのオープンで書き込み可能にしてないとかかな?
0755デフォルトの名無しさん
NGNGtype error argument must be string or read only character
buffer not int
というようなエラーメッセージが出てきます。
f.write('x') でやるとファイルには数字ではなくxそのものが
書き込まれてしまうのですが。
0757688
NGNG> buffer not int
めちゃくちゃ丁寧にエラーの原因を示しているじゃないですか。。。
と、そんな野暮なツッコミは放っておいて質問です。
Python の read only character buffer って何を指しているのですか?
"STRING" ってリテラル(literal 定数) だと思うし、
これかな?と思って試してみたら
__name__ = "test"
使い道のわからない事もできちゃうし、、、
2.3.10 特殊な属性
http://www.python.jp/pub/doc_jp/lib/specialattrs.html
のことを指しているのですかね?
わかる方よかったら教えてください、お願いします。
0758デフォルトの名無しさん
NGNG組み込み関数 buffer() あたりを想定したエラー出力なんではないかな。
http://www.python.jp/pub/doc_jp/lib/non-essential-built-in-funcs.html
>>> a=buffer("hoge")
>>> a
<read-only buffer for 0x00A245A0, ptr 0x00A245B4, size 4 at 0x00A24560>
>>> print a
hoge
>>> a[1]="a"
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: buffer is read-only
0759デフォルトの名無しさん
NGNGアプレットを実行するときに、ダブルクリックしてアプレットが立ち上がるのはスムーズなんですが、
そこから実際にスクリプトが実行されるまで10秒くらい時間がかかることがあります。
その間がなくてすぐに実行されることもありますが、時間がかかることのほうが多いです。
今更、古い環境ですけど、なにか解決できるような情報ないでしょうか?
0760デフォルトの名無しさん
NGNGgentooのどの部分にPythonが使われているのでしょうか?
また、それはPythonでなければいけないのでしょうか?
0761デフォルトの名無しさん
NGNG二つ目の質問: Portage のメンテナーがそう思ってる間は Python でなければならん。
0762688
NGNG情報ありがとうございます。
しかし、『非必須組み込み関数』と書かれているせいか、
(もしくは自分が頭悪いせい)
他の文字列と目立った違いがわかりませんでした。
read only ... については、昔は違ったのかもしれませんが、
今はあんまり気にしなくてもいいのかな?
ところで a[1] = "a" に関してですが、
文字列の一部分を変えようと思ったら
a = buffer("hoge") # a = "hoge" でも同様
a = a[0] + "a" + a[2:]
としなくてはいけない?(めんどい・・・)
『オブジェクトの内容変更は明確にする』という python の思想が
あちらこちらで見受けられますね。
>>759,760
http://www.gentoo.org/doc/en/portage-manual.xml
http://www.gentoo.org/doc/ja/portage-manual.xml
Portageシステムは、Pythonのコアの部分と、
BASHスクリプトベースのebuildとの融合物であるといえます。
Makefileやmakeコマンドで処理する代わりに、Pythonのパワーと、
オブジェクト指向の特徴の一部を利用したシェルスクリプティングの使いやすさを活かし、Portageはユニークでパワフルなシステムを作り上げています。だから敢えて言いましょう。Portageは現在存在する他のすべてのportsシステムを超越しています。
一般性が強く上位層に位置するシステムについては
C や Perl とかよりも python の方が向いてるのでしょうね。
個人のクセが少なくて読みやすいだろうし。
0763688
NGNG0764デフォルトの名無しさん
NGNG> ところで a[1] = "a" に関してですが、
> 文字列の一部分を変えようと思ったら
MutableString が使えます。
>>> import UserString
>>> a = UserString.MutableString("hoge")
>>> a[1] = "a"
>>> a
'hage'
といいつつ、オレは実地で使ったことは一度もないのだが。
たいてい文字列の中身をいじりたい場合は一度なんらかの形で
parseしてトークン列からなるリストをつくり、最後にそれを
''.join(seq) で文字列に戻す、ということをやる。
0765デフォルトの名無しさん
NGNGamazon の書評をみると、あんまり初心者向けではないって
書いてあるなあ。
0766688
NGNGどうも勉強になります。
http://www.python.jp/pub/doc_jp/lib/module-UserString.html
あまり使って欲しくないような書き方していますね。
通常は 764 さんのいう
リストと join を使う方法でやりたいと思います。
>>759
使用しないモジュールは import しないようにするくらいしか思いつきません。。。
# http://www.python.jp/pub/doc_jp/lib/ 内の
# <tt class="module">(.*?)</tt> をほぼ全部 import したら
# print "hoge" するまで、それなりに時間が掛かりました。
0767764
NGNG書き換えたくなることって、そんなにないような気がするのです。
スキャンが必要なら、正規表現の re.sub を使えばいいし、
バイナリデータを扱う場合なら ArrayType を使ったほうがずっと効率いいし。
0768688
NGNG『"hoge" という文字列を "hage" に置換したい』
という欲求であって
『二文字目を "a" にしたい』
という、やたら直接的な欲求は起こりませんよねえ。
組み込み、システム屋さんには使いづらいだろうけど、
言語の棲み分けという点では上手いことやってるなあ、とちょっと感心。
0769デフォルトの名無しさん
NGNGhttp://www.amazon.co.jp/exec/obidos/ASIN/4894714019/250-2830995-5097019
の amazon には「初心者向けだ」というレビューしか無いけれども。
0770デフォルトの名無しさん
NGNGオレが見たのはこれ
http://www.amazon.com/exec/obidos/tg/detail/-/0201709384/
0771デフォルトの名無しさん
NGNG日本語版は初心者向けで、英語版は初心者向けではない、という事か。
>>770
英語を読める人なら http://www.freenetpages.co.uk/hp/alan.gauld/
で内容を読めるので初心者向けかどうかは自分で判断できると思う。
0772688
NGNGただ 『説明が足んねぇんだよ、ゴラァ!』 みたいな書き込みがちらほらあったので、
他に初心者向けの良書があるならば、
そちらを読んでみるといいのかもしれませんね。
個人的には Web サイトのチュートリアルを一通り試してみてから
中級者向けの本でも買えばいいかと。
# ぶっちゃけ、これだけドキュメントがあるならば
# 特別買わなくてもいいと思います、ハイ。
0773デフォルトの名無しさん
NGNGいくらやさしい本を買っても覚えられない人は覚えられないよ。
プログラミングは (最初のうちは) かなり学校の勉強に
似ていると思う。学校で勉強ができない奴を見ていると、
たいていは参考書の答えを先に見てしまったりして、
自力でしばらくがんばってみる、ということをしない。
あるいは、ちょっとやっただけですぐ飽きてしまう。
しばらく進めばそれはもう苦にはならず、楽しくなってくるのだが、
初めてプログラミングを習ったときから楽しくできました、なんて人は
あまりいないんじゃないかんな。
0774773
NGNGコンピュータのようなものを見たとたんに「どうなってるんだろう」と
引きこまれてしまう人もいるね。こういう人は大して苦労せずに
プログラミングを覚えられると思う。
でも、すでにあるソフトを見て「こんなことがやってみたい!」と思ったり、
プログラマーにあこがれてプログラミングを始める人は、たぶん
現実と想像とのギャップを越えるのにそれなりの努力が必要だろう。
0775デフォルトの名無しさん
NGNG多分その、
>たいていは参考書の答えを先に見てしまったりして、
を「入門書」に期待する層が多いんだろうね。1001Tips とか。
Perl と JavaScript の本にはその類いが多い気がする。
Python の場合問題なのは、ABCのその次を担う本が(日本では)
ほとんど無い事だと思う。
Tkinter とか pygame とかを使ってGUIツールやゲームを作るのは
日本語の資料だけだと難しいと思うし。
0776デフォルトの名無しさん
NGNGとんでもなく無駄なことをしているんじゃなかろうか、というのがあるとおもう。
そこで無駄かどうかとか考えずに、いま一番良いと思い付いたことを書き出すこと
が上達への大一歩だとおもう。
0777デフォルトの名無しさん
NGNG0778デフォルトの名無しさん
NGNGそのほうが後々捗るようになるし
0779773
NGNG> まずは英語で読めるようになることだな
> そのほうが後々捗るようになるし
それは真実ではあるが、いささか悲しい。
英語がまったくダメなのはさすがにつらいが、英文を参照するのは
api のリファレンスとインストールマニュアル程度で、
長い説明文のようなものはなるべく日本語で読めるようにすべき。
すべき、って、オレも翻訳やんなきゃいけないわけですが。
0780デフォルトの名無しさん
NGNGその分野の勘所を説明してくれる本こそが必要になるん
だよね。
そこで、その説明に使われているコードが Java であれ
VisualBasic であれそれを Python に置き換えて読める
人は既に上級者なわけで…。
「Pythonを256倍使うための本」とか出てくれるといいん
だけれどね。
0781デフォルトの名無しさん
NGNG0782デフォルトの名無しさん
NGNG0783デフォルトの名無しさん
NGNGで、0.3とかいいつつ256倍本より濃い罠。
0784デフォルトの名無しさん
NGNGこれからは、いかに手をぬくかに主眼をおくべきだという考え。
0.3倍という数字にとくに意味はない。0.24倍でもいいよ。
0785デフォルトの名無しさん
NGNG0786デフォルトの名無しさん
NGNG0787デフォルトの名無しさん
NGNG何でもできるが、特に目的が無いのであれば、PyGameとか使って、簡単な
ゲームなんかを作ってみてはいかが?
Web系もCGIはもちろん作れるし、なれてきたらZopeなんかを弄ってみるのもいい。
0789デフォルトの名無しさん
NGNG'*'や'-'を使いたいのですが、'!'を使ったために、
*-の効果が現れません.どのような方法でやればいいのか
わかる方いましたら、
教えてください。
0790デフォルトの名無しさん
NGNG0791デフォルトの名無しさん
NGNGPythonつながりで。
0792デフォルトの名無しさん
NGNGむしろ3.14倍にすべき。
0793デフォルトの名無しさん
NGNG0794デフォルトの名無しさん
NGNG0795デフォルトの名無しさん
NGNG結構多いんでしょうか? 配布するアプリを作る場合、いろんな
モジュール使うと相手に負担(手間)がかかりますよね?
あまり配布向きじゃないんでしょうか?
0796デフォルトの名無しさん
NGNG>>> True
True
>>> int(True)
1
>>> float(True)
1.0
>>>
0797デフォルトの名無しさん
NGNGtrueSpaceのPythonスクリプトは、ちょっと癖があるけど、
特にアニメーション (tの関数) でうまく使うと、非常に良い。
trueSpaceでアニメーションするんであれば、あの Path オブジェクトでは
限界あるので、Pythonをマスターすべしってかんじ。
0798デフォルトの名無しさん
NGNGWindows あたりだとそもそも Python 自体が入ってないので、
どのみちインストゥールしなくてはならないのは同じ事。
py2exe でまとめちゃえばインストゥールするのは一回で済む
ので標準外のモジュール使っていても関係無し。
Windows 以外なら……モジュール入れるくらいの手間を惜しむ
人間がマイナー環境使っているはずもなし。無問題でしょう。
0799デフォルトの名無しさん
NGNG他にPythonが組み込んである3D CG制作ツールってあったっけ?
0800デフォルトの名無しさん
NGNG0801デフォルトの名無しさん
NGNGttp://opensource.adobe.com/
0802デフォルトの名無しさん
NGNG確かPaint Shop Proもだよね。
0803デフォルトの名無しさん
NGNG0804デフォルトの名無しさん
NGNG0805デフォルトの名無しさん
NGNGimport _codecs で _codecs モジュールを取り込めますが,
これはどこで定義されているんでしょうか?
Python の lib ディレクトリ以下を探しても,
このモジュールに対応するファイルは見つかりませんでした.
PYTHON/lib/codecs.py (←これはある) のソースを見ると,
この _codecs モジュールを取り込むように書かれていました
(まぎらわしいな).
一応 print で表示させると,こうなった↓
>>> print _codecs
<module '_codecs' (built-in)>
0806デフォルトの名無しさん
NGNG只のツールにすぎないのだからそんなに深刻にお勉強しなくてもええよ
漏れはPython使うてカオスのお勉強中;-D
0807デフォルトの名無しさん
NGNG> 一応 print で表示させると,こうなった↓
> >>> print _codecs
> <module '_codecs' (built-in)>
惜しい
>>> help(_codecs)
0808デフォルトの名無しさん
NGNGWindowsの場合そういうモジュールはインタプリタ本体と一緒になってるんで、
システムフォルダのpython2x.dllの中に機械語で書いてあるということに。
# 各種Unix類だとどうだかは知らないっす。
0809デフォルトの名無しさん
NGNGクロスプラットフォームな日本語対応GUIアプリをPythonで作る場合の
現実解はPyGTK2でいいでしょうか?
あとWinでは配布が簡単じゃないと困るんですが、やはりPython、Gtk、
PyGTKをそれぞれインストールしてもらってから自分のアプリを入れて
もらう手順はさけられないでしょうか? たとえばpy2exeで全部一緒に
配布とか。
0810デフォルトの名無しさん
NGNG0811デフォルトの名無しさん
NGNG散々ガイシュツだが現実解はTkinterかと。いやマジで。
Tkのクセに逆らわないように設計してコーディングすれば
意外なほど簡単にWindowsとUnixの両方できちんと動くGUIアプリが作れる。
何よりもPythonに標準で入っているのが強みだ。
日本語関連はUnicodeに統一すれば特に問題はないと思われ。
むしろクロスプラットフォーム性の難関はGUIよりもファイル入出力
とかユーザ設定の方法とかそういうOSごとの決まりごとがある部分に
ある気がする恭子の頃。
0812デフォルトの名無しさん
NGNG0813デフォルトの名無しさん
NGNG0814デフォルトの名無しさん
NGNG0815デフォルトの名無しさん
NGNGまともな Windows ユーザーならば、単にアプリ一つ入れるのに
無関係なライブラリを入れられるのは嫌うはず。なので、
>やはりPython、Gtk、
>PyGTKをそれぞれインストールしてもらってから自分のアプリを入れて
>もらう
なんてのはそもそもナンセンス。
>py2exeで全部一緒に
>配布とか。
というのが現実的ですね。
なのでライブラリに何を使おうが関係無し。
ですから、Linux なり Mac なりの他の環境での対応具合を主にして
決めていいと思う。
Tkinter が枯れていて無難じゃないかな。
0816デフォルトの名無しさん
NGNGつぅか win との互換性を考えるよりも 100% Python OS のプロジェクトをs
0817デフォルトの名無しさん
NGNGでもやっぱりMachとかのマイクロカーネル & Python Serverってのがいいなぁ。
0818688
NGNGコード量がめちゃくちゃ少なく済むので楽ですね、コレ。
感動しました。
# 呼び出し方法がちと考えものだったので
# MFC で InitPyScr.scr を作成し、
# そこから各スクリプトを呼べるようにしました。
# だる。
0819デフォルトの名無しさん
NGNG[[x, y], z] = [[0, 1], 2]
とか普通にできるし。
0820デフォルトの名無しさん
NGNG>>> {}[[]] = 0
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: list objects are unhashable
>>>
0821デフォルトの名無しさん
NGNGでも、それだけのためにtupleが存在してるのもなぁ。
他にもlistでできないことってあるのかな?
0822デフォルトの名無しさん
NGNGじゃあ、なぜタプルとリストの二つがあるかと言えば
概念的に別モノだからだと思われ。
タプルの要素は典型的には互いに異なる「属性」の値だ。
例えば (2004, "September", 10) という三つ組 (3-tuple) は日付を表していて
三つの要素はそれぞれ年、月、日の三つの属性の値だとみなせる。
また、要素が増減するとそれはもう日付ではなくなる。
ここでタプルは不変 (immutable) であるという性質が利いてくる。
つまり、オブジェクトとしての同一性を保ったまま要素数を変えることは
できないので、日付を表し続けることを保証できる、ということだ。
一方、リストの各要素は同じデータ型であることが多い。
例えば ["Guido", "tim_one", "effbot"] は名前の集合 (set) を表している。
名前が増減しても名前の集合であるというオブジェクトの性質は変わらない。
また、リストを扱うプログラムは要素数がいくつであっても動くことが多い
(というかそういう場面でリストをよく使う)。
要するに、タプルはオブジェクトを一定数の値の組で記述するのに使い、
リストは集合を表すのに使うのがキホソということだ。
(無論、他の使い方は不可、ということではないので念のため。)
似て非なるものであるが故に一方を他方で代用せず、二つを別個の
基本データ型として採用したところに Guido の言語設計者としての
センスの良さが表れている。
0823デフォルトの名無しさん
NGNGタプルの不要感は、リストと似ているという点もさることながら、
オブジェクトを記述するという本来の用途がクラスと被っているという点に
起因している希ガス。
0824デフォルトの名無しさん
NGNG速度はもう完璧に一緒なのかね?
0825デフォルトの名無しさん
NGNGタプル=構造体
リスト=リスト
って認識してますがOKでしょうか?
0826デフォルトの名無しさん
NGNGタプル: 個数が一定でそれぞれの型が決まってるもの
リスト: 型は同じだけど個数は不定なもの
ってイメージを持ってる。実際はそんなことはないわけだけど。
Pythonは静的型付けな言語じゃないから
分けてある理由がわかりづらくなってしまってるんじゃないかなぁ。
0827デフォルトの名無しさん
NGNG当初pythonにはclassなんてなかったんだから仕方ないじゃん
・・・あれっ、禁句だった?
0828デフォルトの名無しさん
NGNG0829デフォルトの名無しさん
NGNGリストとタプルの概念的な違いは分かるんだけど、
Pythonのポリシーとしては、むしろ両者を統合したほうが自然な気が。
昔はリストでできることとタプルでできることにかなり差があった
のではないかと邪推してみる。
# 俺もGuidoのセンスの良さは抜群だと思う。
0830デフォルトの名無しさん
NGNGマジ?日本人でいたんだ、そんな人。
ほんとにおめ。
0831デフォルトの名無しさん
NGNG作っておけばタプルとリストの違いなんて発展解消されるよね。
リストと辞書が統合されている言語(キーに整数だけ使うとリストとして
使えるやつ)も多いわけだし。
Python の選択もたまたま中庸を選んだらそこらへんになった、程度の
ものなんだろうな。
個人的には、タプルは () じゃなくて r[] みたくリストに何か前置する形式
にでもして欲しかった。(式をまとめる () と紛らわしいのが嫌)
0832デフォルトの名無しさん
NGNG> 個人的には、タプルは () じゃなくて r[] みたくリストに何か前置する形式
> にでもして欲しかった。(式をまとめる () と紛らわしいのが嫌)
-1. Shine.
0833デフォルトの名無しさん
NGNG0834デフォルトの名無しさん
NGNG0835デフォルトの名無しさん
NGNG0836デフォルトの名無しさん
NGNGx, y, z = f()
x, y = g()
x = h()
実際は>>834のような奇妙な結果になってるわけだけど。
0837デフォルトの名無しさん
NGNG#!/客/瓶/燕尾 パイスぉん
輸入だ シス
輸入だ オス
もし 〜〜名前〜〜 == 「〜〜主要〜〜」:
合計 = 零
まだしも い 内にある 範囲(十):
プリントするぜ 合計
合計 += い
もし い == 五:
オス、分岐()
プリントするぜ 「完了」
0838デフォルトの名無しさん
NGNGはじめてその表記法を知ったときは奇妙だなぁと思った。
しかし、要素数が1のタプルをコード中に書くことはほとんどなく、
事実上問題にならないということが後から分かってきた。
(1,) という表記法を避けるための方法はいろいろあったんだろうけど
敢えて () を採った Guido のバランス感覚はやはり素晴らしい。
最近はコア開発者が増えて多数決で設計している。
恐らく Guido 的でない表記や仕様もあるのだろう。
だけど最終的にゴーサインを出しているのは Guido だし、
タプルのように一見イマイチな設計でも後から良さが分かることもあるから
まずは実際に使ってみることにしている。
イヤになったら Python 捨てりゃいいんだし。
そーいや list comprehension も最初見たときは分かりにくいと思ったが
使ってみると意外に直観的だったな。もうやられっぱなし。おやじ、超クール。
0839デフォルトの名無しさん
NGNGいづれは関西圏内にも拠点を立てるのだろうからそこにはいりたし。
0840デフォルトの名無しさん
NGNG0841デフォルトの名無しさん
NGNG# shutdown
def shutdown():
import os
os.system("shutdown -h now")
0842デフォルトの名無しさん
NGNGshutdown -s -f
だから、場合分けが必要だね。
0843デフォルトの名無しさん
NGNG使いにくくないですか?
0844840
NGNGshutdown -s -f
にしても動かないです・・。
IndentationError: expected an indented block
が三行目に出てきてしまいます・・。何でか不明。
0845デフォルトの名無しさん
NGNG0846デフォルトの名無しさん
NGNG行頭の半角スペースを&nbsp;に置換汁。
そーすりゃコピペでそのまま使える。
例:
def f():
print "spam"
0847844
NGNGPython IDLE でもBlenderでも動きません(T_T)
0848デフォルトの名無しさん
NGNGどのバージョン? >>842
0849847
NGNG0850デフォルトの名無しさん
NGNGちなみにNetBSDではshutdown -p nowで電源断.
# pkgsrcで入れたTkinterが動かん!
0851デフォルトの名無しさん
NGNG0852デフォルトの名無しさん
NGNGXPなら標準である。
NT以降にはなんとかキットで用意されてるはず。
cygwinにもあります。<サスペンドとかできて便利
0853デフォルトの名無しさん
NGNGpkgsrc/x11/py-tkのパッチ貼り.
begin 644 -
M+2TM("]U<W(O<&MG<W)C+W@Q,2]P>2U4:R]F:6QE<R]S971U<"YP>2YO<FEG
M:6YA;`E3=6X@4V5P(#$R(#`P.C$W.C$Y(#(P,#0**RLK("]U<W(O<&MG<W)C
M+W@Q,2]P>2U4:R]F:6QE<R]S971U<"YP>0E3=6X@4V5P(#$R(#`P.C$W.C4R
M(#(P,#0*0$`@+3(U+#<@*S(U+#<@0$`*(`D)"6EN8VQU9&5?9&ER<SU;8FQI
M;F-L+"!X,3%I;F-L72P*(`D)"6QI8G)A<GE?9&ER<SU;8FQL:6(L('@Q,6QI
M8ETL"B`)"0ER=6YT:6UE7VQI8G)A<GE?9&ER<SU;=&-L<G1L:6(L('1K<G1L
M:6(L('@Q,7)T;&EB72P*+0D)"6QI8G)A<FEE<SU;)W1K)RP@)W1C;"<L("=8
M,3$G70HK"0D);&EB<F%R:65S/5LG=&LG+"`G=&-L)RP@)U@Q,2<L("=P=&AR
296%D)UT*(`D)*0H@"5T*("D*
`
end
0854デフォルトの名無しさん
NGNGこんなとこに貼るなよ
0855デフォルトの名無しさん
NGNGこんな感じの文字列があった時に
values = [0, 1, 2, 3.5, 4.5, 5.5, -6, -7, -8]
と数値だけを抜き出すにはどうすればいいですか?
0856デフォルトの名無しさん
NGNGline = 'X(0 1 2) Y(3.5 4.5 5.5) Z(-6 -7 -8)'
a = []
for x in line:
if x in "0123456789.-":
a.append(x)
else:
a.append(" ")
values = eval("[" + ",".join("".join(a).split()) + "]")
print values
0857856
NGNG良いのならば eval も消せると思うけれど取っ掛かりとしてはこんなもんかな。
0858デフォルトの名無しさん
NGNG$ time python -c 'len([ int("%s"%i) for i in range(1000000) ])'
real 0m4.992s
user 0m4.320s
sys 0m0.660s
$ time python -c 'len([ float("%s"%i) for i in range(1000000) ])'
real 0m6.175s
user 0m4.520s
sys 0m0.700s
$ time python -c 'len([ eval("%s"%i) for i in range(1000000) ])'
real 0m38.140s
user 0m34.200s
sys 0m1.150s
0859デフォルトの名無しさん
NGNG855 の
>line = 'X(0 1 2) Y(3.5 4.5 5.5) Z(-6 -7 -8)'
>こんな感じの文字列があった時に
>values = [0, 1, 2, 3.5, 4.5, 5.5, -6, -7, -8]
に拘るならば、小数点が入っていたら float() 入っていなかったら int() とするコードを加えればいいかと。
もっとも実際の所、 int が float になってしまって困る事は少ないと思うけれど。
0860デフォルトの名無しさん
NGNGdef conv1(s):
try:
return int(s)
except ValueError:
return float(s)
これとどっちが速いかね。めんどくさくてまだ試してないけど。
def conv1(s):
if "." in s:
return float(s)
else:
return int(s)
0861デフォルトの名無しさん
NGNG>>> line = 'X(0 1 2) Y(3.5 4.5 5.5) Z(-6 -7 -8)'
>>> import re
>>> map(lambda x: int(x[0])+(not len(x[1]) or float(x[1]) or 0), re.findall('(\d
+)(\.\d+)?', line))
[1, 2, 3, 3.5, 4.5, 5.5, 7, 8, 9]
0862デフォルトの名無しさん
NGNG>>> map(lambda x: int(x[0])+(float('0'+x[1]) or 0), re.findall('([-]?\d+)(\.\d+)
?', line))
[0, 1, 2, 3.5, 4.5, 5.5, -6, -7, -8]
>>>
0863デフォルトの名無しさん
NGNG>>> [ int(x[0])+(float('0'+x[1]) or 0) for x in re.findall('([-]?\d+)(\.\d+)?', line) ]
それにしても,よくこんなの思い付くなぁ.凄い.
0864デフォルトの名無しさん
NGNGありがとうございます。
最後の方はすごすぎて理解するのに時間がかかりました・・・
0865デフォルトの名無しさん
NGNG+1
0866デフォルトの名無しさん
NGNG割とシンプルにいける.
0868デフォルトの名無しさん
NGNG0869デフォルトの名無しさん
NGNGPython のソースコードを見て勃起しそうですっ!!
0870デフォルトの名無しさん
NGNGレッドスネーク・カモン!
0871デフォルトの名無しさん
NGNG漏れのは一応硬いですっ!!
0872デフォルトの名無しさん
NGNG自分のヘビを〜柔軟に〜扱えなきゃいかんよ!
0873デフォルトの名無しさん
NGNGやはりlambdaや内包表記で条件分岐ができないのは辛い….
0. Cの三項演算子を導入
1. lambda内で文の記述を認める
2. 0 == Falseとなる仕様を変える
うーん.どれも望めそうにない.
とりあえず別解↓
map(eval, re.findall('(-?[0-9.]+)', line))
0874デフォルトの名無しさん
NGNG>やはりlambdaや内包表記で条件分岐ができないのは辛い….
というか、それこそが正に Guido の狙いなんだろうね。
どうせなら lambda なんかも ver.3 あたりで廃止すればいいと思うけれど。
0875デフォルトの名無しさん
NGNGどうやら本当にその気らしい。
PEP-3000 -- Core language -- To be removed
ttp://python.org/peps/pep-3000.html
0876デフォルトの名無しさん
NGNG勘弁してください
0877デフォルトの名無しさん
NGNG君はもうそろそろ Python を卒業して scheme を極めるべきなんだよ。
…Ruby とかの半端言語に走っちゃ駄目だよ。
0878デフォルトの名無しさん
NGNGおぉー
ところで各 PEP の到達可能性ってのは議論のネタになりそうですか?
スコープを技術だけのアスペクトで考えるの.てかオナニーは非公開にしてく
れですか・・・あぁそうですか・・・
>>877
Ruby の中の人は LM の記事を読む限りにおいては真性だから Ruby は眼中に
ないよw てか異様に Python を敵視してんのw 哀れというか何というかw
まぁスケープゴート的にオモロイ存在ではあるがマジで拘りたくはないな
0879デフォルトの名無しさん
NGNGいや,SchemeからPythonに乗り換えたんだけど….
そういう人,けっこう多いと思う.
やっぱり適度な糖衣構文はあった方が見やすいし書きやすい.
Pythonはセンスよしバランスよしの構文で,俺のハートをガッチリ掴んだ.
Guidoがlambdaを廃止するというのなら,きっとそれは正しい方向なんだろうけど,
個人的には激しくショーーーック.
0880デフォルトの名無しさん
NGNG[[int(x), float(x+y)][y and 1 or 0] for x, y in re.findall('(-?\d+)(\.\d+)?', line)]
0881デフォルトの名無しさん
NGNGif cond then x else y
は
[y, x][cond]
と書けるのか.スバラシイ.(常にx, yとも評価されてしまうけど)
[int(x), float(x)]["." in x]
と書けないのは残念.
0882デフォルトの名無しさん
NGNGそもそも e 表記が入る可能性や、整数型の範囲を超えて長整数型
が来る可能性は考慮しなくていいのだろうか。
0883デフォルトの名無しさん
NGNGいや,みんな(といっても2〜3人っぽいけどw)パズル的に楽しんでるだけだから.
ちなみに,e表記や長整数もOKなコードは>>873(俺です)の
map(eval, re.findall('(-?[0-9.]+)', line))
とか.
0884デフォルトの名無しさん
NGNG0885デフォルトの名無しさん
NGNG代わりに
{True: float(x), False: int(x)}['.' in x]
でどうよ
0886デフォルトの名無しさん
NGNG↑ここのSJIS対応版をインストールしました。
test.pyというファイルネームで、
print "あいうえお"
というソースを作って、
python test.py
で実行すると、警告がでます。
どうすれば消せますか?
sys:1: DeprecationWarning: Non-ASCII character '\x82' in file test.py on line 1,
0887デフォルトの名無しさん
NGNGttp://www.python.jp/pub/doc_jp/ref/encodings.html
日本語対応版だとこの<encoding-name>に日本語のものが使えるので、
たとえばWindows環境なら
# -*- coding: cp932 -*-
print "あいうえお"
とできます。
0888デフォルトの名無しさん
NGNG解決しました。
0889デフォルトの名無しさん
NGNGやってみれば判るけど,問題点は「float(x)とint(x)が両方評価されてしまう」ことなので,
残念ながらそれでは解決しない.
[lambda : int(x), lambda : float(x)]['.' in x]()
と遅延評価っぽいことをすれば一応解決するが….
0890デフォルトの名無しさん
NGNGクソまじめにトーカナイザから実装するやついねえのか
import re
TOKEN_REGEX = re.compile(ur"[0-9]*\.[0-9]+|[0-9]+|[a-zA-Z_][a-zA-Z0-9_]|[()]|\s")
T_FLOAT = 1
T_INT = 2
T_IDENT = 3
T_PAREN_BEGIN = 4
T_PAREN_END = 5
class TokenizationError(ValueError): pass
def tokenize(s):
while True:
if not s[i:]: break
m = TOKEN_REGEX.match(s, i)
if not m:
raise TokenizationError("Illegal character: %s at %d", (s[i:i+1], i))
t = m.group(0)
if t == "(":
yield (T_PAREN_BEGIN, None)
elif t == ")":
yield (T_PAREN_END, None)
elif t.isdigit():
yield (T_INT, int(t))
elif "." in t:
yield (T_FLOAT, float(t))
elif t[0].isalpha():
yield (T_IDENT, t)
else:
assert t.isspace(), "Impossible! t=%r" % t
return
0891デフォルトの名無しさん
NGNG0892デフォルトの名無しさん
NGNGテストせずに書き込んだらやっぱりバグありだった..
import re
TOKEN_REGEX = re.compile(ur"[0-9]*\.[0-9]+|[0-9]+|[a-zA-Z_][a-zA-Z0-9_]+|[()]|\s")
(T_NONE, T_FLOAT, T_INT, T_IDENT, T_PAREN_BEGIN, T_PAREN_END) = range(6)
class TokenizationError(ValueError): pass
def tokenize(s):
i = 0
while True:
if not s[i:]: break
m = TOKEN_REGEX.match(s, i)
if not m:
raise TokenizationError("Illegal character: %s at %d" % (s[i:i+1], i))
t = m.group(0)
if t == "(":
yield (T_PAREN_BEGIN, None)
elif t == ")":
yield (T_PAREN_END, None)
elif t.isdigit():
yield (T_INT, int(t))
elif "." in t:
yield (T_FLOAT, float(t))
elif t[0].isalpha():
yield (T_IDENT, t)
else:
assert t.isspace(), "Impossible! t=%r" % t
i+=len(t)
return
0893デフォルトの名無しさん
NGNGclass ParsingError(ValueError): pass
TOKEN_NAME = {
T_NONE:"?", T_FLOAT:"float", T_INT:"integer", T_IDENT:"identifier",
T_PAREN_BEGIN:"'('", T_PAREN_END:"')'"
}
def parse(tokens):
vars = {}
name = None
args = []
try:
while True:
(t,arg1) = tokens.next()
if t != T_IDENT:
raise ParsingError("Identifier expected: got %s: %r" % (TOKEN_NAME(t), arg1))
name = arg1
(t,arg1) = tokens.next()
if t != T_PAREN_BEGIN:
raise ParsingError("Open-parenthesis expected: got %s: %r" % (TOKEN_NAME(t), arg1))
args = []
while True:
(つづく)
0894デフォルトの名無しさん
NGNG(t,arg1) = tokens.next()
if t != T_INT and t != T_FLOAT: break
args.append(arg1)
if t != T_PAREN_END:
raise ParsingError("Close-parenthesis expected: got %s: %r" % (TOKEN_NAME(t), arg1))
yield (name, args)
name = None
args = []
except StopIteration:
if name or args:
raise ParsingError("Premature end of file.")
return
使い方はこんなかんじ:
>>> list(parse(tokenize("X(3 4 5) Y(8) Z()")))
[('X', [3, 4, 5]), ('Y', [8]), ('Z', [])]
ちなみに >>890 のコードにもバグあった。TOKEN_REGEX は正しくはこうだ:
TOKEN_REGEX = re.compile(ur"[0-9]*\.[0-9]+|[0-9]+|[a-zA-Z_][a-zA-Z0-9_]*|[()]|\s")
こうしないと 1文字の変数名がエラーになってしまう。
0895デフォルトの名無しさん
NGNG失礼… >>891 のコードのことね。
もう頭ボケててだめだな。
それじゃ。
0896デフォルトの名無しさん
NGNGTOKEN_NAME(t) じゃなくて TOKEN_NAME.get(t) だ。
くそー
0897デフォルトの名無しさん
NGNGどうしても見たい人はソース見てくれ。
navi2ch で行頭のスペースを全部 &nbsp;にするような
フックかけんのかなー
0898デフォルトの名無しさん
NGNG字句解析器と構文解析器の手書きは楽しいよねえ。
文法に合致したあらゆる式がものの見事に構文木に分解される様は何度見ても感心する。
あーまた何か処理系が書きたくなってきたなー。
0899デフォルトの名無しさん
NGNG0900デフォルトの名無しさん
NGNG0901デフォルトの名無しさん
NGNGすでにやった。
欲しけりゃあげるよ。
0902デフォルトの名無しさん
NGNG対C実装比でどのくらいの速度出た?
0903デフォルトの名無しさん
NGNG0904デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNGS式パーサを作るって意味? それともSchemeインタプリタでも作るつもり?
0906デフォルトの名無しさん
NGNG別に 3.x まで待たなくても、与えられたリストやタプルをS式として解釈して
評価して値を返してくれる 「scheme モジュール」 でも作って公開すれば
いいんじゃない?
lambda 廃止で行き場を無くした lisper 達がこぞって使うかもしれないし。
0907デフォルトの名無しさん
NGNGPython 言語そのものを実装する。これが最後のラッパーになると思う。
他の主要なものはラップ済み。Python だけ知っていれば C の資源も Perl の
資源も利用可能。これ以上素晴しい言語はないだろう。
0908デフォルトの名無しさん
NGNGアフォはアフォなことを言い、天才は凡人にはアフォなこととうつることを言う。
0909デフォルトの名無しさん
NGNG0910デフォルトの名無しさん
NGNG0911デフォルトの名無しさん
NGNG意味のあるインデントは嫌いなんで...
0912901
NGNG比較してない。そもそも検索対象が文字列じゃないんで、
既存のライブラリは使えなかった。それが自作した理由だ。
が、generators とかバックトラック使いまくってるんで
とにかく遅いだろうな。速度はそんなに気にしないのよ。
0913901
NGNG0915デフォルトの名無しさん
NGNGそれはもはやPythonじゃないだろ….
0916デフォルトの名無しさん
NGNGそんな貴方に scheme
0917デフォルトの名無しさん
NGNGさっさと scheme に行けばいいのに。
誰も止めないよ
0918デフォルトの名無しさん
NGNGwww.caddr.com/code/lython/
既出だったらスマソ.S 式諸兄,使用感レポよろ
0919デフォルトの名無しさん
NGNG0920デフォルトの名無しさん
NGNG問題ないよ。設定をちゃんとしてね。
0921デフォルトの名無しさん
NGNG成長し発展するとともに、そのように残ります。今日、ダース、グーグリにな
る、エンジニアはピュートーンを使用します、また、私たちはこの言語におけ
る熟練を持ったより多くの人々を捜しています。」ピーターNorvig(Google社
の探索品質の管理者)は言いました。
0922デフォルトの名無しさん
NGNGち、展開する。今日Google たくさんのエンジニアはこのlanguage." で
Python および技術のより多くの人々を捜すwe're を使用する; 、前述のピー
ターNorvig Google の調査の質、株式会社のディレクター。
0923デフォルトの名無しさん
NGNGニシキヘビ 2.3 (医者)
ニシキヘビ 2.2 (医者)
0924デフォルトの名無しさん
NGNGいやー面白い面白い すごいすごい
0925デフォルトの名無しさん
NGNG・・・・動いたからもういいや。ちゃんと仕上げるの マンドクセ ('A`)
0926デフォルトの名無しさん
NGNGwxOGLInitialize()
と書くだけで落ちてしまうのですがどうしてでしょうか。
環境:
Windows2000/Python 2.3/wxPython 2.5
0927デフォルトの名無しさん
NGNG関係なかったらスマソです。
0928デフォルトの名無しさん
NGNGというエラーが出ていませんか?
0929デフォルトの名無しさん
NGNGそれでそのエラー表示にしたがってもダメだったの?
ttp://www.google.com/search?lr=lang_ja&ie=sjis&q=wxPython
で適当なサンプルコードを見つけて、自分のコードとくらべてみよう。
0930デフォルトの名無しさん
NGNG0931デフォルトの名無しさん
NGNGのどこをクリックすれば
http://www.python.jp/pub/doc_jp/
に飛べますか?
0932デフォルトの名無しさん
NGNG右の方にある、
初めての方へ:
>>>オンラインドキュメント
を選び、それから
・ドキュメント (最新版: 2.3.3)
の「2.3.3」というバージョン番号をクリック。
0933デフォルトの名無しさん
NGNG御丁寧にありがとうございます。
0934デフォルトの名無しさん
NGNGメニューは左側にまとめてくれるとうれしいな
0935デフォルトの名無しさん
NGNGmlで言え
0936デフォルトの名無しさん
NGNG0937デフォルトの名無しさん
NGNG0938デフォルトの名無しさん
NGNG> 数日中にPython 2.3.4 SJIS版インストーラ(***日本語ドキュメント付き***)を
> リリースできると思いますので、お楽しみに。
ヨロコベ!
0939デフォルトの名無しさん
NGNG0940デフォルトの名無しさん
NGNG0941デフォルトの名無しさん
NGNG0942デフォルトの名無しさん
NGNGもう CJKPython に乗りかえちゃった。
これだと IDLE の Default Source Encoding を UTF-8 にしてもまともに動作するな。
JUG の日本語化版だと None 以外は誤動作したのに。
0943デフォルトの名無しさん
NGNG既存スレに移動しる。
【たぷるタソ】Pythonのお勉強 5【ハァハァ】
http://pc5.2ch.net/test/read.cgi/tech/1081264387/
1からPythonを学ぶスレ
http://pc5.2ch.net/test/read.cgi/tech/1061640768/
0944デフォルトの名無しさん
NGNGスレ乱立イクナイ!
0945デフォルトの名無しさん
NGNG∩___∩ |
| ノ\ ,_ ヽ | ……………
/ ●゛ ● | |
| ∪ ( _●_) ミ (=) >>943 = 944
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
\ " / | |
\ / ̄ ̄ ̄ /
 ̄ ̄ ̄ ̄
0946デフォルトの名無しさん
NGNGISBN4-87311-210-9
初めてのPython 第2版
http://www.oreilly.co.jp/catalog/soon.shtml
0947デフォルトの名無しさん
NGNGマジかよ。この間、初めてのPython買っちゃたよ。
0948デフォルトの名無しさん
NGNGなんかミョーなタイトルだなぁ。初体験(実は2回目)みたいな。
0949デフォルトの名無しさん
NGNG経験豊富な執筆者が、初体験の読者に手ほどきするのだから、問題ない。
0950デフォルトの名無しさん
NGNG0951デフォルトの名無しさん
NGNG0952デフォルトの名無しさん
NGNG0953デフォルトの名無しさん
NGNG本家のお医者さんに飛べばそんなのイラネ
0954デフォルトの名無しさん
NGNG0955デフォルトの名無しさん
NGNG0956デフォルトの名無しさん
NGNG・google に入社する
・Zope Japan に入社する
・
0957デフォルトの名無しさん
NGNG結構Pythonをつかってるけどな。
スクリプト言語では保守性いいし
・言語習得が容易
・ソースの見通しがよい
・例外が使える
など
0958デフォルトの名無しさん
NGNGand や or でどうぞ
0960デフォルトの名無しさん
NGNGA ? B : C
と
A and B or C
じゃ、B が空のとき違うじゃん。
0961デフォルトの名無しさん
NGNGここまでしても python 使いたければどうぞ
0962デフォルトの名無しさん
NGNG0963デフォルトの名無しさん
NGNG???
a+=b
これのことか?
0964デフォルトの名無しさん
NGNG塩山市のことだと思われ。
0965デフォルトの名無しさん
NGNG0966デフォルトの名無しさん
NGNGおお。
0967デフォルトの名無しさん
NGNG>>> ([0], range(100000000000))[0]
Traceback (most recent call last):
File "<stdin>", line 1, in ?
MemoryError
>>>
0968デフォルトの名無しさん
NGNGif (locals().update({'a':f(b)}),a)[1] is None:
ここまでしても python 使いたければどうぞ
0969デフォルトの名無しさん
NGNGprint a
こんなプログラムで、文字列を入れるとエラーになります
調べてみると、inputでは数字しか入力できないみたいです
文字列を入力できるinput文ってないんでしょうか
' 'でくくると一応入力はできますが
0970デフォルトの名無しさん
NGNGPythonを相当使い込んでるね….
lambdaの制約にイライラしながらもPythonを使う姿が目に見えるようだ.
0971デフォルトの名無しさん
NGNGinput()の代わりにraw_input()を使います。
詳しくはインタラクティブモードで
>>> help(raw_input)
0973970
NGNG> Pythonを相当使い込んでるね….
> lambdaの制約にイライラしながらもPythonを使う姿が目に見えるようだ.
残念ながらイライラしてないのだ。ぼくは lambda いらない派だからね。
あんなものを書くくらいなら最初からちゃんと関数内関数を書くよ。
0974デフォルトの名無しさん
NGNGttp://www.vodafone.jp/japanese/release_detail/20040922/V702NK.html
いよいよ日本発売が決まったpythonも動く(らしい)携帯ですが、
開発には年会費(税込40万円)の Forum Nokia PROディベロッパー
プログラム
ttp://www.nokia.co.jp/company/release_040519.html
に参加しないといけないとか。特定フォルダの読み書きのみ
サポートでもいいので、一般ユーザーにもランタイムを公開
してくれないもんですかね。
0975デフォルトの名無しさん
NGNGBREWもそうだが、携帯業界は勝手アプリ撲滅の方向のようで、至極残念。
0976デフォルトの名無しさん
NGNGうーん.そうなんだ.
関数内関数はコードを読むときに流れが阻害されそうで,ちょっとためらうんだよな.
map(lambda ...
となっていれば,事前にmapすることを知ってからlambdaの内容を読むことになるけど,
def func():
...
map(func, ...
となっていると,funcが何に使われるか分からないままfuncのコードを読むことになる.
まぁ実際にはそんなに違わないかも知れないけど,気分的にね.
0977デフォルトの名無しさん
NGNG>BREWもそうだが、携帯業界は勝手アプリ撲滅の方向のようで、至極残念。
業界サイドからみると、勝手アプリ増やしても利益にならん、と
いうことなのかな。それにしても個人には40万は高すぎ。
Forum Nokia AMATURE ディベロッパー プログラム ってので4万位
でなんとかならんか? あるいは言語別とか。それとも windows
mobile phone に期待するか。
0978970
NGNG> funcが何に使われるか分からないままfuncのコードを読むことになる.
それは普通の関数定義でもそうだと思うがね。
たしかに関数内関数は lambda ほどには map との関係が強く示せない。
ぼくは map などのイテレータに使う関数は、名前を「なんとか1」とすることで
単一のアイテムに適用されることを示すようにしている。
conv1 とか、 disp1 とかね。
そもそもぼくはもう map も使わずに内包表現なんだけど。
あと、これは map と関係ないが、ぼくは再帰をよく使うので、
そういうときだと関数に名前をつけられない lambda は使いにくい。
たとえばこんなのだな:
def disptree(treeobj):
def disp1(node1):
print node1.name
for c in node1.children:
disp1(c)
disp1(treeobj.root)
return
0979デフォルトの名無しさん
NGNG0980デフォルトの名無しさん
NGNGなるほど.関数名に軽い規則を作っておくのは悪くないね.
ぶっちゃけ関数内関数を使いたくない一番の理由は,名前をつけるのが
面倒臭いからだったりw
再帰するときだけ関数内関数にするのも,考えてみれば格好悪いかも.
# でもやっぱり三項演算子は欲しい….
0981デフォルトの名無しさん
NGNGアスキーキャラクタでこういう画面を作りたいのですが
(べつにゲームじゃなくてもいいのだけど)
キャラクタを画面の好きな位置に表示する命令はないのですか?
昔のBASICでいうLOCATE x,y や CURSOR x,y 、画面をクリアするCLSなどです。
0982デフォルトの名無しさん
NGNGcurse を使うとか?
0983デフォルトの名無しさん
NGNG最初の言語としてPythonに触れる人は幸せだなぁ。
0984デフォルトの名無しさん
NGNGttp://www.linuxjournal.com/article.php?sid=3882
これ?
0985デフォルトの名無しさん
NGNG手に職を付ける目的の人が JAVA とか VB.NET とかに走るのは仕方がない
けれど、学校教育で JAVA とか使うのは何の悪意があっての事かと思うね。
Python じゃないとしても Squark とか、JAVA 以前に既にあるまともなOOPは
いくらでもあるというのに、なんで半端で理不尽な代物をわざわざ選ぶのか。
JVM使うにしても言霊 http://www.crew.sfc.keio.ac.jp/projects/kotodama/
あたりに走るならまだ理解出来るのだけれど。
0986981
NGNGcurseで調べましたが、書いてあるとしたらこのへんでしょうか。
ttp://www.python.jp/pub/doc_jp/lib/curses-window-objects.html
0987デフォルトの名無しさん
NGNGいや、981さんみたいな初心者(ごめん。悪意はないんだ)から
新山さんみたいなhackerまで、いろんな人が使ってるんだなーって。
0988デフォルトの名無しさん
NGNGOOもC++とJavaくらいしかまともな参考書無いじゃん。
Python使ったOOの解説書とかあんの?
0989デフォルトの名無しさん
NGNG余計なお世話だけどcurseじゃなくてcursesなので念のため。
0990デフォルトの名無しさん
NGNGread docs
0991デフォルトの名無しさん
NGNG行間嫁。
0992デフォルトの名無しさん
NGNGこのスレッドの纏め
http://www.python.org/
の全てのサイトを全て読め!
そして完全に理解しろ!
常に source code を hack しろ!
0993デフォルトの名無しさん
NGNGあるとしても DOS窓の上では遅いような気がする。
結局 Tkinter のキャンバスを使うのが楽なような。
0994デフォルトの名無しさん
NGNGimport curses
scr = curses.initscr() # 初期化
scr.addstr(y, x, str) # (y, x)にstrを書き込み
scr.refresh() # 画面更新
とりあえずこれだけ覚えとけばOK.
>>993
on cygwin ならあるけど,ネイティブのはどうなのかな.
0995デフォルトの名無しさん
NGNGクダラン
0996981
NGNGcursesというモジュールがないというエラーがでます。
どこからか拾ってこないとだめなわけですね。
昔のBASICで簡単にできたことが意外と難しくて
初心者がそこまで手を出すのはまだ早かったような気がします。
0997デフォルトの名無しさん
NGNG可能でしょうか。Pythonの対話シェルで作業してる時に見れると便利なんですが・・・。
例えば、tclshでは存在しないサブコマンド(メソッドみたいなもの)を書くと、
そのコマンドの持ってるサブコマンド一覧が出てこの中から選べと言われたり、
引数が違ってたら例文が出たりするんですが、このような入力補助(?)みたいな
事ができればと思ってます。よろしくおねがいします。
0998デフォルトの名無しさん
NGNGhelp(obj) # 一覧と説明文など
0999デフォルトの名無しさん
NGNGおおまさしくこれです。ありがとうございます。
1000デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1095684242/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。