人生の敗北者でも使えるPythonのお勉強 Part9
1 :
1 :
2006/03/10(金) 13:29:47
ムネオタン ハァハァ
俺Python使ったことないけど、MSのIronPythonBeta4出てたから宣伝しとくね
じゃ、じゃあオレはサエバリョウ愛用のコルトパイソンを宣伝するもんね
foreach (@file{ `rm-rf $_` } print "はにゃ〜ん"
スレタイが微妙に間違ってる
>>5 人生の敗北者では使えないperlはカエレ!
しかも実行したら人生の敗北者になりそうだw
こっちが本スレか?変なスレタイ嫌だなぁ・・・
TABキーが壊れてお金が無くて新しいキーボードが変えない敗北者の俺はCOBOLer
perl使いは人生の脱北者
sage
13 :
デフォルトの名無しさん :2006/03/11(土) 15:07:58
おっ、Pythonスレだ。
放置してもdat落ちしづらいんだよなぁ、この板。
テンプレも張らねえでクソ垂れ逃げかよ。氏ね >
>>1
16 :
デフォルトの名無しさん :2006/03/12(日) 08:51:23
>>15 もともとここ以外が重複スレで、ここが本スレだと思うけどね。
このスレはFUDですか?w
sさんって unicode 信者なんですかね? ML で大喧嘩するほどの話か? 妙に意固地だなぁ…
ムネオタンはぁはぁ
>>18 PEP-263の実装を手伝ったりコデックを書いたりしてきた人だからね。
相当の技術力と信念があって発言してるんだろーね。
相変わらず排他的というかトンガってるみたいだけど。
locale周りはゆずれないのぢゃないかな
たしかに功績は認めるけど… とさかセンパイより、たわばセンパイより 偏ってる にしても ML:3511 はウケタ
ムネオタソ(*´Д`)ハァハァ/lァ/lァ/ヽァ/ヽァ ノ \ア ノ \ア / \ ア / \ ア っていうかどう見ても基(ry
結局nkfかよ。ロケールはどこにいったんだ。
(自分の思い通りに)自動化された方法以外は python の中ではやって欲しくないってことかな > nkf ちょいと独善がすぎやしませんか ファビってしまって既にまともに議論できる状態じゃないね
ムネオタンすごい。もうぼろぼろなのにまだ死んでないぜ!
28 :
デフォルトの名無しさん :2006/03/13(月) 09:05:10
pythonを使い始めたばかりの初心者ですが、pythonの人って あのような怖い人(いろんな意味で)ばかりなのでしょうか。 ちょっと使う気が失せてきているんですが。
29 :
デフォルトの名無しさん :2006/03/13(月) 09:29:33
ハッカーは時に独善的になりやすい。
>>28 あれはじゃれ合ってるだけだから。
いい歳のおっさん同士がじゃれ合ってるのは確かに怖いが。
fj とかの時代に比べればあの程度の議論は丸い方だしな。 >27 氏みたいに観客として楽しめばいい。 あと全然 "pythonだから" って話じゃない。 他の言語の場だって殺伐とするときは殺伐とするし、 むしろ python はデムパは少ない方じゃないかな。 変な勘違い初心者が寄ってこない(寄ってきてくれない)ことによるんだけど。
そのじゃれあいはどこで見られるのですか?
33 :
28 :2006/03/13(月) 11:13:03
PSUテラコワスw
間があいたとオモタらキモイメールが来たね。 どっちも引かないなら引かないで読んでて面白いけど、 あのセンスはイマイチだなぁ。 笑い声を文字で書いてもなんかさむいし。
PSUってナニ?
出て行け!宣言が出ました。
でますたね
昔、簡単なことで質問なげたことがあるけれど、今はとてもできないお(((( ;゚Д゚)))ガクガクブルブル
t = threading.Thread( ほげ ) t.start() で動かしてしまった sub thread って sub thread 自身の意思で終了しないと 終了することはできないんでしょうか? 終了しろ通知って普通はどうやって伝えるんでしょうか?
>>40 その問題は、複数のスレッドをどう管理するかという一般的な問題に含まれてる。
スレッドの管理方法(モデル)としてよく使われるのは master-worker モデル。
マスタは一つ、ワーカは複数で、マスタがワーカに仕事を与える。
仕事を与えるにはキュー(FIFO)を使うのが簡単。
マスタはキューに仕事を入れる。ワーカはキューから仕事を取り出して実行する。
ワーカの終了も仕事の一種。ワーカは終了指示を受け取って自ら終了する。
キューへの追加とキューからの取出しが同時に起きてキューが壊れないように、
キューに条件変数をつけて排他制御する必要がある。条件変数の使用例↓
http://www.python.jp/doc/nightly/lib/condition-objects.html 他にもモデルがあるらしーけど俺は使ったことない。
追記:上記のリンク先では master-worker モデルを「生産者-消費者問題」と呼んでる。 マスタが(仕事の)生産者、ワーカが消費者ということ。
>>43 別にそんな使い分けをする必要はないと思うが。
で、PSUって何?
pythonのソースを符号化または暗号化することが出来るソフトありますか?
ムネオタン追い出したら、残るのはMLをサポセンだと信じてるおっさんとセンター職員だけになってしまうじゃないか!
誰だよセンター職員て
しかしnkfはないよなさすがに
>>45 import すると天からバイトコードが降ってくる
nkfに妥協してやるからnkf.pyを用意しろ
>>52 っ[Python-ml-jp 3301]
[Python-ml-jp 2711](*´Д`)ハァハァ
[Python-ml-jp 3252](*´Д`)ハァハァ/lァ/lァ
よーしパパ書いちゃうぞー import os os.system('nkf ' + option_str)
何気なく >54 書いたけどこれ win とかでもぽーたぶる?
>>49 MLで、まるでサポセンの人のごとく専ら回答役に徹し、それ以上のこと(話題の提供とか)はしない人たちのこと
して悪いってことはぜんぜんないけど、そんな人ばっかりなMLってなんか嫌じゃない?
じゃ ネタ振りよろ
58 :
40 :2006/03/14(火) 16:43:37
>41-42 thx. Condition のマニュアル読んでみます
「話題の提供」って何すればいいの? 「藻前らの使ってるIDE教えれ」とか? 「漏れのコード晒します。添削して」とか? 「最近亭主が浮気してるみたいなんです」とか?
>>60 やりたいことができないMLだと流量は減るんでは
「藻前らの使ってるIDE教えれ」
「漏れのコード晒します。添削して」
は悪くないとおもわれ。
そういう雑談からすばらしい物が生れたりもする
タバコ部屋で要件分析できるみたいな物かも
2chでいいじゃんて事は2chの放置運営が良いのだって事を認めているように読めた
放置できない運営がだめって事かもね
俺はそのMLは読んでないから知らんが、そのML自身ではなくこんなところで そういう議論している時点でもうそのMLは駄目なんじゃないのか?
つまり
>>61 の人がMLじゃなくて
>>61 で書いてある時点で,
もうだめだってこと?
ML参加してないから良くわからないけど.
MLも無い言語なんて塩の入っていないお汁粉のようなものだ。
>>67 つまり、MLの有無はあまり大きな問題ではないということだな。
俺はpython.jpが出来る前からのML(初代ML?)ユーザーだ。 何回も投稿した事あるけど、python自体が未完成っていう感じで いろいろ話題には事欠かなかった気がするよ。 Rubyとの比較とか。 ちなみに、まつもとゆきひろにレスをもらった事もあって ちょっとうれしかったかなw
あのおっさんPythonのML参加してるのか。流石言語ヲタwww
>>69 個人サイトから公共サイト化した時におかたい感じにしちゃったのが失敗の元
>>70 自分の言語の宣伝のためにあらゆるMLにいる
>>64 問題はどの話題がいい悪いじゃなくて、そういう情報欲しい奴が
いるかどうかじゃないの。今はおらんと思う。皆2chに流れた。
改行コードの問題もろくに扱えないような人が、 大きな顔をして文字コードについて語るなんて、 俺からしたらすげえ恥知らずだと思うんだが。 それを置いておいても、今のMLのやりとりって、 読んでてすごく不気味というか陰湿さを感じる。
>読んでてすごく不気味というか陰湿さを感じる。 は? 単に笑い飛ばせばいい話じゃん? 初心者向け(も兼ねる)の ML で展開すべきケンカかどうかは さておきとして、あの程度技術系 ML では ごくごくマイルドな方だと思うけど。 別に >64 で挙げられているような話が ML で 出来ない訳じゃないし、時々そういう話は出てるでしょ。 そうあって欲しいと思う人が積極的にネタを晒してかないと。 >65 単に ML が沈静化するのを場外でダベって待ってるだけかと。
locale 全般には詳しくないんですが、 print 文が "中途半端に" "write() とかと独立に" 余計な 機能を持っているってのが諸悪の根源な気がするのは俺だけ? なぜ print = sys.stdout.write ではいけなかったのだろう。
たぶん歴史的な理由があって print != sys.stdout.write なのだと思われ。
森山さん ナイスタイミング! (python ML がきっかけだったりしたら笑える)
>76 んでもって なぜ deprecated にしないんだろう とか なぜ xprint とかを導入して整合性を取ろうとしないんだろう とかいろいろ
79 :
デフォルトの名無しさん :2006/03/15(水) 16:37:03
二人とも出て行け!宣言が出ました。
臭 議 in 解 散
>>78 んー、print と sys.stdout.write は似て非なるものだからねえ。
ようやく全部読んだ。余計なものをそぎ落としてみると ムネオタン: ロケールを設定してprint unicode_strで万全 管理人:それ、foo.py | less がバケバケだ、ボケェ ムネオタン: それはFUDだ!枝葉末節をあげつらってる。foo.py | nkf | less で無問題 管理人:それではロケールの意味が。ちゃんと print unicode_str.encode()って書けや ムネオタン: それはFUDだ!FUDでないなら証明しろ! ってことだよな。ムネオタンってリアルkittyとしか思えん。
encode() って書くのキライなんだろうな。
暗黙の変換が都合良く便利に働くこともある(うまく働かないこともある)という 単純な話なんだけどねえ。
昔ニフティの某会議室で、 某「このソフトは(ある特殊な)ファイルをちゃんと処理できない、直せ!」 作者「そういうファイルはほとんどないですよ。あるならば、このフィルタを通してください」 某「そのまま、扱えた方が便利だろうが(゚Д゚)ゴルァ!! 不具合だ!使えねえ」 作者「仕様をかえるつもりはありません、不具合は酷いですよ。他から苦情もないですよ」 某「オレが使えねえっていってんだ(゚Д゚)ゴルァ!! ( ゚д゚)、ペッ」 その後しばらく我慢して付き合っていたが作者ついにキレる → 大げんか → 某氏逆ギレして退会 ってのを思い出した。
言語はユーザを選ぶとは至言です。
>>84 それはFUDです。うまく働かないことなんてありません。
また「俺が正しい。なぜならば俺が正しいから」病が発症してんのな……。 何回目だよ、もう。 質問に答えるより印象操作の方を熱心にしてたら、 自分の信頼をドブに投げ捨ててるようなもんだと思うんだけどなぁ。
>>88 多かれ少なかれ、ここにいる奴はみんなそう。
ムネオタンは極端すぎるが。
スマンカッタ
>82 まとめ乙 * ロケールでうまく行くこともありますよー(宣伝) に留めておけばいいのに(実際最初のmさん指摘はそうだった) * いやロケール万能 ロケールマンセー 世の中は全てロケールで出来ている と言い出したところで暴走スイッチon、 管理人「ぶわぁはは」って感じだね。
92 :
デフォルトの名無しさん :2006/03/16(木) 17:52:56
最後のメールの「煽りに乗らないように努めて」という段落に この人の人格があらわれている
「自分も同罪です」じゃなくて、おまえが主犯の一人だっつーの
>>93 >主犯の一人
それは同罪で合ってるだろう…
やっとで鎮火
96 :
デフォルトの名無しさん :2006/03/16(木) 20:47:46
そして次の戦いがはじまる
君は生き残ることができるか?
98 :
デフォルトの名無しさん :2006/03/17(金) 08:46:48
>>94 認めているのは「煽りにのった」点だけなんだよな。
自分の主張は絶対的に正しい
間違ったことをいっている人に煽られた
それに乗ってしまった
って言いたいらしい。
ここで書いてあるようなこと、mlでも言っておかないとムネオタンの脅威は いつまでも去らないんだろうな。でも、あんな電波ゆんゆんに意見する なんて漏れにはとても無理。おまいら、がんばってください。
電波ゆんゆんの中の人に関わると伝染るので放置するのが賢明
ムネオタンは業務時間中にやることがないから釣ってるだけ。 相手をするだけ損。
『人生の敗北者でも使える』
64bitに対応したトリップ検索プログラムありますか? TextSS のWindowsXP(Professional)64bit化おながいします もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
106 :
デフォルトの名無しさん :2006/03/18(土) 20:45:03
105の名前おかしくね?なんでvectorじゃなくてMSよ
110 :
デフォルトの名無しさん :2006/03/19(日) 17:46:11
>>109 どうも特定のスレを下げるためにやっているような気がするけど
考えすぎかなあ。
RubyでCGIKitつくってたひとがPythonはじめたらしいっす。
あっそ
113 :
デフォルトの名無しさん :2006/03/20(月) 15:27:22
>>111 Railsに負けて敗北者になったわけですね。
114 :
デフォルトの名無しさん :2006/03/20(月) 17:39:35
ぴちょん
115 :
デフォルトの名無しさん :2006/03/21(火) 13:15:24
pythonなんで流行んないの?
116 :
デフォルトの名無しさん :2006/03/21(火) 17:35:31
うがーわかんね。新参者です。 呼び出し元のファイル名を取得する方法が知りたいのですが? あるファイルから別のファイルの関数を呼んだとき、 呼ばれた側が、読んだ側のファイル名を会得したい。 呼ぶ側が渡せ、が単純だが冗長でアンスマート;; やはり、呼ばれた側が自動的に取得したい。戻れるんだから知ってるだろう、 というか。 それともtracebackですかね。。。
もう少しわかりやすくお願いします 日本語でかまいません
118 :
sage :2006/03/21(火) 18:09:49
116です。すみません。ではコードにて。 ファイル a.py from b import * print referer() ファイル b.py def referer(): return GET_REFERER() としたとき、a.pyを実行したら、 'a.py'と表示されるような、GET_REFERER()関数みたいなもの。 cgiなどでpyを使う際に、呼び出し側のcgiプログラムが不特定多数の場合、 それらすべてに自分のファイル名を書いた引数を用意するのが冗長なのと 間違いも生まれるので出来れば自動化したいのです。 どうでしょうか。
なぜ呼び出し元のファイル名が必要なの?(何に使うの?) 例えばンタプリタから呼び出したらファイル名は存在しないわけだけど。
お手数をおかけします、116です。そうですか。。。 プログラムにしてみました。 a.shtml <html><body> <!--include virtual=b.py--> </body></html> b.py #usr/bin/local/python _refer_file = GET_REFERER() print '<b>'+ _refer_file + '</b>' いろいろ用途はあるのですが、簡単に書いてみました;; a.htmlが太字で表示されます。 (書いているうちにファイル名が存在しなさそうな気がしてきました) もうこう書くと、a.py?ref=a.htmlと書いて渡せ、という感じですね。 ただ、スマートにしたいのです。 上の例は cgiから呼び出しですが、これが、pyからの呼び出しでもダメでしょうか。。
cgiじゃないし・・・ってツッコミは置いといて、 通常のpythonスクリプトファイルなら、自分自身のファイル名は sys.argv[0] にあるので呼び出し元で使うならなんとかなる。
すんません、116です。 自身のファイル名取得はおっしゃるとおりで、 ファイル a.cgi(この拡張子でないとサーバが扱ってくれません..) #!usr/local/bin/python import sys _html = ''' <html><body><!--#include virtual=%s?referer=%s--></body></html> ''' CALL_FILE='a.py' SELF_FILE=sys.argv[0] print _html % (CALL_FILE , SELF_FILE ) みたいに自動的に混ぜる、とかやって呼べばよさそうですが、 例えば呼び出し側が100個あれば、この処理を100個やらないといけないので。。。 もちろんモジュール化して、冒頭import、 とやればスマートですが、それでも呼び出し側にオーバーヘッドが生じることに 変わりはなく、できれば、呼び出され側で呼び出し元のファイル名を取得できないか、 知りたく思っている次第です。。どうでしょうか。。。
呼び出され側で呼び出し元のファイル名を取得して、 それをまた呼び出し元で処理するように100個のファイルを書き換える必要はあるんじゃないのか?
116です。それはないです。。。 基本は呼び出し元で戻り値を処理しない使い方です。 120のように、呼び出しっぱなしという使い方と、 あとは、呼ばれた側が、呼び出し元のファイル名を溜めてリスト化して、 あとで総合的に使うサーバ的動作、といった感じを考えています。。。 sys.argv[0]、みたいに、簡単に取得できるものかと思ってはいたんですが、 意外にネットとかでもそれらしいものが見つからないんです。。。
スクリプトの呼び出し元って、ファイルとは限らないじゃん。
116が言ってるようなことができる言語ってあるの? 言語というより、環境のような気がするけど。
>>115 日本で、と限定すると
わかりやすすぎるから。
多くの日本人は M
>>126 普通は不要だから無い
>>122 > 呼び出され側で呼び出し元のファイル名を取得できないか
できない。Python 内で閉じた caller/callee 関係の取得じゃないから。
>>128 は python 内に閉じた話ではないと書いているが、
こういうことではないのか?
>>116 a.py
---
#! /usr/bin/python
import b
b.func()
b.py
---
#! /usr/bin/python
import traceback as tb
def func():
print tb.extract_stack()
return
$ python a.py
[('./a.py', 5, '?', 'b.func()'), ('/home/hoge/b.py', 6, 'func', 'print tb.extract_stack()')]
./a.py ?
>>129 a.py ぢゃなくて a.shtml だよもん。
mv a.py a.shtml 簡単ジャン
>>127 はい、日本でです。
イラ◯チオ必須な私に向いているわけね。
それにしても日本語書籍ないよね。
まぁググレば解りやすい英語で書かれた
とこ蜜軽からいいでしょうけど。
134 :
129 :2006/03/22(水) 00:57:55
>>130 >>116 のカキコを読んだ範囲では、
単に通常の cgi から .py を import する話のように読めたんだがな。
ちなみに、shtml から実行される場合は、
環境変数とかに呼び元含まれてたりせんのかね。
2 ■テキストゲームから着想を得た共同プログラミング・ツール■
<
http://hotwired.goo.ne.jp/news/20060320302.html >
1990年代に人気を博したテキストベースのアドベンチャーゲーム
の1種、マルチユーザー・ダンジョン(MUD)を基にした共同プログ
ラミング・ツール『プレイッシュ』が登場した。複数のプログラ
マーが同じ仮想環境にログインし、開発中のコードやそのコード
が使用するデータ、ハードウェアとやり取りして、コードを作成・
共有することができる。
プレイッシュにログインすると、その部屋の基本的な説明と、 部屋にいる他のメンバーが表示される。現行版のプレイッシュは 『Python』(パイソン) [オープンソースのスクリプト言語] で書かれており、各部屋には、部屋にいる人全員がアクセスできる Pythonのインタープリターが組み込まれている。「冒険者」たちは、 その部屋のオブジェクトや他のメンバーと同時にやり取りしながら、 コードを作り上げていく。
作られたフロンティアの中で模索する冒険者たちか。
参加者は皆うわべだけの奴なんですね。 @
プログラミング自体が、言語という作られたフロンティアで模索することだからなあ・・・
プログラミング言語自体が、チューリングマシン等価という作られたフロンティアで模索することだからなあ・・・ ………並列性は、普通のチューリングマシンには出てこないかね。
この宇宙自体が観音様の掌の上で(ry
142 :
デフォルトの名無しさん :2006/03/22(水) 14:54:15
セキュリティはどうなってんの?
>>142 ValueError: too broad question.
ちょっと説明しやすい例が、厨房ちっくな例しか見つからなくてあれなんだけど pythonひとり匿名串チェッカーを作るとして、 1.渡されてくる環境変数を見るための疑似httpdをthreading.Threadで動かす 2.主スレッドで串経由で1に接続する というのを作るとします。 チェックするものがなくなったら1のスッドレ終わらせたい。 これって、きれいに終わらす方法というか、動いてるThreadを終了さす方法ってないよね? なにかおわりを表す特別なリクエストを決めて2が1にするぐらいですか?
あ、いきなりsocket.accept()するとかでなく poll/selectにすれば、httpdのほうでわかるか…
From: Guidoパパ
Subject: [Python-Dev] Python 3000 Process
Date: Sun, 19 Mar 2006 20:30:13 -0800
私は、Python 3000 関連の増大した活動に気付いている。これは素晴らしいこと
だが、危険もある。そのいくつかは次の通り:開発者に負担をかけすぎる、成就
され得ることに対して非現実的な期待をする、保守的な利用者層を恐れさせる、
Python 3000 を待つべきか否か決められない開発者を立往生させる。
私はこれらの課題すべてに対処したいのだが、まずはより能率的な手順を立てる
ことに若干の時間を割くほうが良いだろう。あるいは、別個のメーリングリスト
(ML)を導入するときがついに来たのではないか。もし人々が同意するならその
ML を
[email protected] と呼ぼう。多くの開発者にとっては大した違い
にはならないが (なぜなら両方の ML を購読するから)、Python 2.x にのみ関心
のある人々にオプトアウトの手段(購読しないという選択肢)を与える。また、
より大切なことは、この ML によって、ある特定の提案が Python 3000 向けの
つもりなのか、それとも Python 2.x 向けなのかがはっきりする。
Python 3000 にのみ関心のある人々に 2.5 を扱う python-dev メーリングリス
トのオプトアウトを勧めたくはない。というのは、Python 3000 の開発は孤立し
ていないからだ。Python 3000 は「より良い Python」でなければならないので
あり、このことは(この考え方が)python-dev で(そして c.l.py で!)再三
持ち上がる諸問題によって与えられていることを意味する。
この ML は新しい戦略の小部分に過ぎない。我々は、次のようなメタな重要課題
についての決定を始める必要がある:
* スケジュールは? 私は、いまスケジュールを決めることになるとは思って いないし、今後5年間それに固執するつもりもない。しかし我々は、いつ Python 3000 が期待できるのか、どのようにそこへ到達する予定かについて何か明解な ものを待ち望んでいるすべての人々に責任を負っている。どれぐらい時間がかか るかについては大幅に異なった見積りが複数あり、私はユーザを恐れさせること も開発者に息をひそめて待機させることも望んでいない (私が想像することの一 部は Perl 6 に関して起こっている)。 * アップグレードの手順は? 我々は変換ツールまたは互換モード、またはそ の両方を提供するのか? どんなものを? Python 2.x (x は十分大きな値) と Python 3.0 の両方で動作するコードを書くことはそもそも可能なのか? これ は Python 2.x と 3.x の並行リリースの問題にも関連している。個人的な予想 では (最近マーティンが語ったことには反するが)、3.0 が出たあとも 2.x 系列 のリリースが何回かある見込みだ。あるいは 3.0 と 2.6 は共存し、3.x が成熟 してゆく間に2.7〜2.9が 2.x 系列を発展させ続けるかも知れない。私は、この 方法が Perl (4→5) と Apache において首尾よく用いられたのを見てきている し、Zope においてはさらに間近に見てきている。繰り返しになるが、このこと は、移行が python-dev の外側の世界でどのように理解されるかという観点にお いて重要だ。 * 我々はライブラリの全体的な改編を同時に行なうのか? 個人的にはこれは 全く別個の課題と見ている。標準入出力の再設計といったいくつかの特定の物事 は別にして、我々はライブラリの改編をエネルギーの多寡次第で 2.6 において、 あるいは 3.0 以降に始めることができよう。 * 実装の戦略は? 私はあるブランチに着手しており、そこでいくらかの取捨 を予定している。しかしながら、既存のコードの大半のおかげで取捨は困難であ ることが既に分かっている。砂場モデルに切り替えて、新しいコード、または注 意深く現代化した古いコードだけを加えていくことに決めるかも知れない。
* 新機能を提案するための手続きは? もっぱら Python 3000 に焦点を当て
た PEP の新シリーズを作りはじめる時かも知れない。3000〜3099番はメタ PEP
(例えば上記の問題を扱うもの)、3100〜3999番は機能に関する PEP のために予
約したいと思う。
これらの問題に対する回答をポストしないでほしい (それぞれに数スレッド分の
価値がある)。それよりも各問題を熟考し、python-3000 ML の作成について +1
か -1 で応じてほしい。その場で、あるいは ML を分けないことが総意ならこの
場で、これらの問題の議論を始めよう。
Date: Mon, 20 Mar 2006 20:06:28 -0800
From: Guidoパパ
Subject: Re: [Python-Dev] Python 3000 Process
Python 3000 メーリングリストができますた。今後、Python 3000 関連の議論は
すべてこの ML でやりましょう。以下の場所で購読するが (・∀・) イイ!
http://mail.python.org/mailman/listinfo/python-3000
腐った機械翻訳貼るな。死ぬほど読みにくい。
150 :
デフォルトの名無しさん :2006/03/23(木) 09:16:05
>>135 こういうのってセキュリティの問題はないの?
152 :
デフォルトの名無しさん :2006/03/23(木) 11:33:23
誰かが危険なコードをまぜるとか。
俺が冒険者なら、信頼できない仲間とダンジョンには潜らない。
もちろん属性表示ありなんだろ。
これってリモートのサーバでインタプリタを実行して、 自分の好きなコマンドを実行できるように読めるんだけど 違うの? サーバ運営者にとってかなり危険なことが出来ると思うんだけど。
ほかの人と"同時に"プログラミングできるってのは、面白いと思うね。
全員善人ばかりだったらな。
>>156 のようなのーたりんで危機意識の無い平和ボケがいることが
信じられん。
別に設定によってどうとでもなるじゃん chroot/jail 下でほとんどなんの権限もないユーザーで実行 network 系もフィルタリングしちゃうとかすれば ほぼ無問題じゃない?
むしろ編集合戦とかの方が問題なんじゃないの
161 :
156 :2006/03/23(木) 16:10:43
>>158 運用の仕方の問題では?
不特定多数の匿名ユーザに開放されていたら、そりゃあ危ないに決まっている。
いま流行のWikiやブログも程度の違いはあれ同じ危険をはらんでいる。
逆に、特定少数のユーザのみが利用できるという運用の形もあり得る。
例えばISPが自社のユーザのみに公開するとかね。
規約でしばることもできるし違反者をサービスから追い出すこともできる。
ザルのようなシステムでも防火壁の中にあれば無問題なのと同じ。
2行目は無視してあげる。
共同でできる=不特定多数でユーザ管理もしない と思ってる馬鹿が湧いてるようだな。
イェイ イェイ イェイ ウォウ ウォウ ウォウ イェイ イェイ イェイ 敗北者ー
164 :
デフォルトの名無しさん :2006/03/23(木) 22:28:00
pythonでのメモリー確保はどのようにすればいいのでしょうか?
a="¥0"*おまえの好きなだけ いらなくなるまで参照しとけ。
threading.local()って意味わかんないんだけど、どういうとき使うの?
同じ名前でもスレッド毎に独立して制御される値を作りたいときに使う
同一インスタンスの別スレッドってこと?
print __import__('_threading_local').__doc__
あらゆるプログラム言語に敗北してきた私が、以下の仕様で初pythonしてみました。 ご批評いただければ幸いです。 <仕様> 拡張子(必須)、デイレクトリ名(任意)を渡し、該当するディレクトリ/ファイルの タブをスペース4つに変換する。
------------------------------------------------------------------ #!/usr/bin/env python class TabToSpc: def __init__(self, extension, dirName): self.extension = extension self.dirName = dirName def fileAttach(self): import glob for file in glob.glob( self.dirName + '/*.' + self.extension ): f = open(file, 'r+') tempLines = self.substut(f.read()) f.seek(0) f.writelines(tempLines) f.close def substut(self, inlines): outlines = [] for line in inlines: if line.startswith('¥t'): outlines.append(line.expandtabs(4)) else: outlines.append(line) return outlines
172 :
170 :2006/03/24(金) 12:39:40
if __name__ == '__main__': import sys if len(sys.argv) < 2: print "No parameter.¥n" sys.exit() if len(sys.argv) > 3: print "Parameter is extension and directory only.¥n" sys.exit() if len(sys.argv) == 2: dName = '.' else: dName = sys.argv[2] extn = sys.argv[1] tts = TabToSpc(extn, dName) tts.fileAttach() del tts 以上170-172
173 :
170 :2006/03/24(金) 13:14:52
あ〜すみません。インデントがくずれてる。 再度貼り直します。もうしわけありません。
>>173 タブ1つまたはスペース4つを 4つに変換するオプションも付けると
こういうコピペのときに便利だと思われ。
クラスは使わなくてもいいんじゃないの. def replacetab_process(ext, dirname, expand_tabs=4, replace_char=" "): import glob,os for f in glob.glob(os.path.join(dirname,"*."+ext)): infile = file(f, "rb") indata = infile.read() infile.close() outfile = file(f, "wb") outfile.write(infile.replace("¥t", replace_char*expand_tabs)) outfile.close() if __name__=="__main__": import sys,os def usage(): print >> sys.stderr, "usage: replacetab.py extention [directory]" argc = len(sys.argv) ext, dirname = (None, os.getcwd()) if argc<2: raise SystemExit, "No parameters, "+usage() elif argc==2: ext = argc[1] elif argc==3: ext, dirname = argc[1:3] else: raise SystemExit, "Too much parameters, "+usage() replacetab_process(ext, dirname)
176 :
デフォルトの名無しさん :2006/03/24(金) 20:13:53
177 :
170 :2006/03/24(金) 20:27:56
先程は失礼いたしました。 170です。再度ハラせていただきます。 #!/usr/bin/env python class TabToSpc: def __init__(self, extension, dirName): self.extension = extension self.dirName = dirName def fileAttach(self): import glob for file in glob.glob( self.dirName + '/*.' + self.extension ): f = open(file, 'r+') tempLines = self.substut(f.read()) f.seek(0) f.writelines(tempLines) f.close def substut(self, inlines): outlines = [] for line in inlines: if line.startswith('¥t'): outlines.append(line.expandtabs(4)) else: outlines.append(line) return outlines
178 :
170 :2006/03/24(金) 20:33:32
if __name__ == '__main__': import sys if len(sys.argv) < 2: print "No parameter.¥n" sys.exit() if len(sys.argv) > 3: print "Parameter is extension and directory only.¥n" sys.exit() if len(sys.argv) == 2: dName = '.' else: dName = sys.argv[2] extn = sys.argv[1] tts = TabToSpc(extn, dName) tts.fileAttach() del tts >174 >175 ご指導ありがとうございます。今後の参考にさせていただきます。 本来、クラスで行うような処理でないことは理解しております。 ただ、早めになれておこうと思い、oopで作成いたしました。 >176 ご指摘のとおりです。
× f.close ○ f.close()
180 :
170 :2006/03/24(金) 22:23:08
>>179 ご指摘いただきありがとうございます。
エラーにならないんですね。気をつけなきゃ。
細かいことをいうと,TabToSpcインスタンスを生成してからすぐにfileAttach() するしかないのなら(つまりextensionやdirectoryを操作するチャンスはないのなら), fileAttach()メソッドは不要だと思う(さらに言うとメソッド名も変えた方が良いと 思う).substutも同じで,メソッドにする利点がよくわからない. def substitute(lines): ... class TabToSpaceProcessor: def __init__(self, extension): self.extension = extension def process_directory(self, directory): ... outlines=(substitute(lines)) ... tts = TabToSpaceProcessor(extension) tts.process_directory(dName) のようにして,ttsを複数ディレクトリで使い回せるようにしておくのはどうだろう. スコープから抜けるときに tts は自動的に解放されるので,del tts は特に気にしなくていいよ.
182 :
170 :2006/03/25(土) 16:54:18
>181 ご教授ありがとうございます。 >fileAttach()メソッドは不要だと思う・・・ >substutも同じで,メソッドにする利点がよくわからない. この点に関しましては、>178で書きました通り「試しにoopで 作ってみたいな」と思いやってみました。 substut()も「同じクラス内のメソッドを呼べるのかな?」と 試しにやってみた次第です。 ですが、>181さんにご指摘いただいた点は、一応反映してみました。 (貼ろうかなと思いましたが、スレ消費を考慮し今回はやめておきます) >ttsを複数ディレクトリで使い回せるようにしておくのはどうだろう ありがとうございます。ついでにディレクトリを最下層まで辿る 処理も考えてみます。 >スコープから抜けるときに tts は自動的に解放されるので,del tts は特に気にしなくていいよ. ガベージコレクション? ちなみに、pythonだけに限った話ではないんですが、変数、クラス、メソッド等の ネーミングで皆さんどのように決められているのでしょうか? 参考サイトとかあれば・・・。
なんか敗北者っぽくない流れだな。 実に遺憾だ。
185 :
170 :2006/03/25(土) 18:48:54
>183 ご案内いただきありがとうございます。参考にしてみます。 >184 私は・・・ 1. 半年前から無職。現在、再就職の面接結果待ち。 2. 結果が合格だとしても、一回り年下の上司にコキ使われる予定。 3. ここ6,7年ほどセクースなし。 これでも 遺 憾 で す か ?
なんだか泣きたくなってきた…
187 :
デフォルトの名無しさん :2006/03/26(日) 13:26:41
神 ス レ の 予 感
188 :
デフォルトの名無しさん :2006/03/26(日) 13:38:07
foreach (@tmp){ $_*=$_*$_; }
>>182 >>ttsを複数ディレクトリで使い回せるようにしておくのはどうだろう
>ありがとうございます。ついでにディレクトリを最下層まで辿る
>処理も考えてみます。
os.walk() を調べるといいよ.
http://www.videolan.org/vlc/ VLCという動画プレイヤーがあります。
これはwxWidgetsを利用してスキン機能を実装しているようです。
Windows版でもSkin2を選ぶとMacOSXのメタル風な概観になります。
このような芸当をwxPythonで再現するには
どういった業が必要になりますか?
まずは単純なリサイズ可能なメタルウィンドウを作れたらな、と考えています。
メタルっぽいビットマップ画像は自前で用意してあります。
当方wxPythonを使った簡単なGUIアプリケーションの作成経験はあります。
おお
>>190 よ、よくしらべもせず に しつもん する とは なさけない!
そなた が つぎの れべる に なるには、たぶん
VLCがオープンソースだってことに予め気づいておく注意深さ
ソースコードを自分でダウンロードして展開するだけの知識
wxWidgetsのコードを読むためのC++の知識
が ひつようじゃ!
bashウザクてタマンねー。あんなの言語じゃね。く つーことで、 pythonがdefaultシェルなdistroってないですか。
つ vipw
194 :
デフォルトの名無しさん :2006/03/26(日) 23:45:41
pythonで二つのことを同時にやらせるにはどうすればいいのでしょうか?
>>194 マルチスレッド → thread, threading
マルチプロセス → 2つ動かす、forkなど
socketならpoll/selectなどでひとつで間に合わせることもできる
>>192 Shellにするならipythonを利用した方が良いよ
>>194 もっと具体的にやる事書いた方が良いかもよ。本当に同時にやらせる必要あるの?
$ python やりたいことA.py & $ python やりたいことB.py &
shが使えない人とか論外
rm *.py
>>191 けちんぼ!
C++は読めないから質問したんです。
wxPythonで簡単な実装例をご存知の方教えてくださいませんか。
第二次locale大戦 の予感
第二次大戦なんて遥か昔に終結したよ
鈴木さん、それは違うと思いますよ。
204 :
170 :2006/03/28(火) 12:07:52
>>189 ご指導ありがとうございます。
遅レスで申し訳ありません。
#walk( top[, topdown=True [, onerror=None]])
# walk() は、ディレクトリツリー以下のファイル名を、ツリーを
#トップダウンとボトムアップの両方向に歩行することで生成します。
#ディレクトリ top を根に持つディレクトリツリーに含まれる、各デ
#ィレクトリ(top 自身を含む) から、タプル (dirpath, dirnames, file
#names) を生成します。
(ライブラリリファレンス@python.jpより引用)
とても便利そうです。path.walk()よりこっちかなと。
オライリー、2.3対応のクイックリファレンスなら
ちゃんとコレ載せとけ。
>>200 wxPythonにはサンプルプログラムの類は付いてないのか?
サンプルは付いてるけど、Windowsでメタルアピアランスにするといった 特定のプラットフォームのは無いんじゃないかな。 C++のソース読めといっても、クラスやメソッドの名前を見つけるくらいで 特別な文法とかは理解しなくていいだろ。
人がやった事が無いような事やる場合は結局ソース読まないとだめだね
SWIGの日本語ページどこいっちゃた?
209 :
デフォルトの名無しさん :2006/03/30(木) 01:34:35
バイナリデータを加工したいのですが、論理演算の部分がうまくいきません。 バイナリデータ自体の取得はできているのですが、そこから b2a_hexで16進数に変換したのですがこれは文字列が返ってくるらしく、 演算が行えませんでした。atoiでintにしようとやってみたのですが、 invalid literal for int():というようなエラーがでてしまいました。 バイナリから簡単に演算を行える形式にし、再びバイナリに戻す 方法はないでしょうか?
ord() <-> chr() じゃいかんの?
8ビットを超えているのでだめでした。しかし先ほどのやり方で一応解決しました。 単に文字列を数値に変換するときに16進指定されていないというだけでした。
struct pack unpack
バイナリデータから値を取り出すのに、わざわざ文字列に変換してからint()するのはアホだよ。 >> 212のようにstructやarrayを使わなきゃ。
214 :
211 :2006/03/30(木) 14:34:29
なるほど、それを使うのですね。ありがとうございます。
PythonでMPIプログラム作ってる使徒いる?
import os opt=['tar', 'cxvf', 'hoge.tgz', 'hoge'] os.spawnvp(os.P_WAIT, 'tar', opt) ってやると、hoge.tgzに書き込み権限ない場合、 sciriptが途中で止まって動かなくなります。 tarはhoge.tgzがpermission deniedのときにBroken pipeを返すんですが、 こういうときも対処させるには3行目をどのように変更すればいいんでしょうか。 それと、tarの標準出力を画面に表示させたいときはどうすればいいのでしょうか。
>>216 r, w, e = popen2.popen3("tar ztf hoge.tar.gz")
218 :
216 :2006/03/31(金) 00:39:40
subprocessとかいう変なモジュールができてる
import tarfile try: tar = tarfile.open("hoge.tgz", "w:gz") tar.addfile(tarfile.gettarinfo("hoge")) tar.close() except TarError: print u"tarできまへん" しないのは理由があるんだよね、きっと
Python2.4.3とか IronPythonβ5とか出てる Python2.5α1もすぐのはず
>>220 それだとホームのtar (rm -rf *もどき)が出来ませんので却下します。
>>222 walkすりゃいいじゃんって話じゃなくて?
224 :
デフォルトの名無しさん :2006/04/03(月) 13:26:47
いまからPTYHONの勉強をはじまるプログラム初心者なんですけど どうやったらいいかわかりません やっぱり入門書を買わないと行けないのですか?リファレンス書をかわないといけないのですか? どこかで全部教えてくれるサイトないんですか?
226 :
デフォルトの名無しさん :2006/04/03(月) 13:50:26
ありがとうございます!そこよんでやってみます!
>> 226 行ってみたけどPTYHONじゃなくてPYTHONでした!! PTYHONはやっぱり入(ry
プチホン?
ちょっとチラシの裏かわりに使わせてくれ。 どうしても思うように実行できないスクリプトがあったんだ。 エラーも出ないんで原因がわからなかったんだが、 4時間くらい格闘してやっと見つけた理由は __init__ が __int__ になってたんだ。
doctestじゃ発見できなかっただろうな。
ちょっとお聞きしたいんですが、 なんで sys.argc がないんですか? len(sys.argv) てやれば良いんだけど、 そんなこと言ったら必ずしも必要でないメソッドって いっぱいありますよね C にも perl にもある argc を入れなかった理由はなんでしょうか
perにargcなんてあったか? いつも $#ARGV か scalar @ARGV だから気付かなかったよ。
>>232 すみません。勘違いです。
@ARGV と $ARGV で、分りやすい、かな…
len() と似たようなもんですかね
>>234 94年ですか…。
勿論 argv はリスト型、argc は整数型のつもりでしたが、
それを単に別々にストアしていて欲しい、ということだったんです。
なるほど、C では argc はmain 関数の引数ですが、
Python では argv は最初はシステムが持っているものを
ユーザが陽にオブジェクトとして引っぱってくる、と。
また sys はどこでも import でき、しかも read-only value ではない。
つまり、argv の長さは変わることがあり
それが argc(定義されたとして)と同じとは限らない、
ということなんですね。
納得しました。ありがとうございました。
Cは配列の長さを知る方法がないからargcが必要なだけ。 別々にストアしておく利点なんて何もない。
>>236 sizeof(hoge)/sizeof(int) とかは?
と思ったけど、リスト型の話だから
可変長配列(<list>とか)の配列の長さ、か。
あれ? やっぱり無理?
>>237 無理。ただ、多くの場合 argv[argc] はNULLだからこれで判定する手もある。
>>237 その書き方で配列の長さが得られるのは
例えば int hoge[10]; と定義された配列のように
配列のサイズがコンパイラにとって既知の場合だけだよ。
sizeof() の値は実行時ではなくコンパイル時に決まる。
科学計算に使われるライブラリって NumPy、Numeric、NumArray、SciPy、ScientificPython とかがあるみたいだけど、 NumericとNumArrayはNumPyに吸収されてるっぽいけど、 SciPyとScientificPythonにも上下関係があるのですかいな?
うーん、どうでしょう
名前だけで,ないんじゃないの? Numeric...老舗.開発資金が切れて解散を宣言.ボランティア開発に移行して まだ積極的に使われている.NumPyといったら普通これのことで,numpyと は別物. numarray...Numericの開発停止後主役になると思われたが,乗り換えが進ま ず分裂.開発資金は近々切れる,ボランティア開発に移行する.まだ積極的に 使われている.画像処理とかオブジェクトアレイが売り. SciPy...コア部分でNumericとnumarrayを使っている.コアの一本化のために 独自にscipy_coreを開発していた(numpyに名前を変えた).最終的には numpyを使う予定.多分Enthoughtの寄付とかnumpyの有償マニュアルを資金 源にしてる.それなりに使われている. numpy...Numeric/numarrayの置き換えを狙ったscipy_coreが名前を変えた もの.ライブラリをまとめたい向きには好評だが,numpyのマニュアルが有 償なことにユーザが反発.資金あつまってんの?苦しみながらも開発進行中. Numericの7-8割くらいの機能サポート.numarray独自のライブラリはあまり 取り入れられてない. ScientificPython...このプロジェクト生きてんの?中ではNumericを使ってるはず.
ちなみに大分前numpyのマニュアル買ったが,中身がNumTut+αで激萎えた. 今は良くなってるかもしれんが.
乙。俺は追っかけが面倒なので一番古いNumericを使っている。
そんなに死にかけだったのか... 何か大組織で採用 => 機能拡張の必要 => 資金流入 みたいなのがないとだめなんかねぇ
Python Workshop the Edge 2006 age
247 :
デフォルトの名無しさん :2006/04/06(木) 12:57:43
2.5a1 age
workshopの詳細メールが着ません
迷惑メールに着てた
Rubyの方が良いのかなぁ
>>250 気になるなら両方学んで好きなほうを使えばいいじゃん。
その経験は決して無駄にはならんよ。
>>246 行けなかったけど、プレゼン資料は公開されてるからありがたく拝見した。
……IronPython……MSは本気だ!と思った。
あとDjangoかTurboGearsは手を出してみたい。
名前聞くと、あの漫画思い出すw
boa-constructorってもともと星の王子様でしょ?
ごめん、別に星の王子様限定ってわけでもなかった。 一般名詞の「boa constrictor」が元ネタだった。
257 :
デフォルトの名無しさん :2006/04/11(火) 06:25:20
>>252 会場でIronPythonの発表聞いたら、MS日本はやる気全然ないのがバレバレ。
もっさり感あふれるプレゼン。質問にも噛み合ない答え。
258 :
デフォルトの名無しさん :2006/04/11(火) 06:30:56
IDが出ると訊いて飛んできました
>>257 そうだったのか……
資料だけ見るならいろいろいいこと書いてあるのに
もったいないなぁ>MS日本
MSの日本の考えなんてどうでもいいよ。本国さえやる気ならあいつら嫌々でもやる。w
261 :
デフォルトの名無しさん :2006/04/13(木) 11:23:14
オライリーのPython DevCenterは3月中旬以来更新が止まってるね。このまま朽ち果てるのか…
Pythonの連中は本買わないから商売にならないんじゃないか?
>>261
はじぱいかったお
264 :
261 :2006/04/14(金) 09:45:04
PerlやJavaのサイトも1ヶ月近く更新されてないな。Pythonだけが見限られたんじゃなくてよかったー。
Rubyむなしすぎ
結城先生、これはもうツンデレPythonをマヂで書かないとw
268 :
デフォルトの名無しさん :2006/04/16(日) 07:16:41
えーと、osモジュールのimportね。 それじゃ sysモジュールをimportして、と・・・・・。 何よ!あなたのためにimportしたんじゃないからねっ! __main__モジュールから参照したって見せてあげないんだからっ! ほらっ、ボケッとしてないでさっさと次の命令よこしなさいよ。 あっ、あっ、別に命令して欲しいとかじゃないんだからねっ! ああ、もう。ほら、ValueError だよ。 except 節でキャッチしてあげるから・・・・。 ・・・な、何よ、その目は。 勘違いしないでよっ! 仕事よ仕事っ! あんたを喜ばせようなんてこれっぽっちも思ってないんだからねっ!
ごめん.キモイ.
読みづらい。幽鬼ならもっとうまく書いてくれるだろうな。
Pythonは素直じゃない女の子か?違うよな?
タプルたんは素直な娘
超ツマンネ('A`)
274 :
デフォルトの名無しさん :2006/04/19(水) 22:44:11
pyrex 0.9.4 age
http://www.plone.jp/ Ploneの公式ホームページの中の、
デモサーバー
http://demo.plone.org/ これをクリックしても、
Site Error
An error was encountered while publishing this resource.
Resource not found
Sorry, the requested resource does not exist.
Check the URL and try again.
Resource: demo.plone.org GET
Troubleshooting Suggestions
* The URL may be incorrect.
* The parameters passed to this resource may be incorrect.
* A resource that this resource relies on may be encountering an error.
For more detailed information about the error, please refer to error log.
If the error persists please contact the site maintainer. Thank you for your patience.
となってしまう。
なんで?
ようするにmojix市ね。
277 :
デフォルトの名無しさん :2006/04/23(日) 04:48:14
英語くらい読めよ。 そんなに難しいことは書いてないぞ。
>>277 ふんぞりかえってないで
さっさと教えろよキモヲタ
そのサイト無いみたいだよ。
まんまじゃねーか。
何で誰も > 公式ホームページ に突っ込まないの?
全くだな。 公式ウェブサイトと言うべき。
- dict.keys()/range()/zip() はイテレータを返す - 文字列は unicode 型に統合,バイト列は可変の str 型に統合 - str から upper(), lower(), lfill() など「文字列的」操作関数を除去 - バイナリとテキストデータを区別し,ファイル入出力 API も別にする - C stdio より高水準な入出力 API を提供する - old-style クラス除去 - 整数除算は整数でなく浮動小数点数を返す - int と long integer 統合 - sys.exc_* 除去 - dict.has_key(), file.xreadlines(), xrange(), itertools.izip(), apply(), input(), buffer(), coerce() 除去 - deprecated モジュール除去 - exec, print は関数になる - `x` 表現除去 - except 節に修飾語 as 追加 - 内包表記は実質 list(ジェネレータ式) になる - raise Exc, exc_arg 形式を除去 - lambda は残す - <, > を使った比較が id() 値の比較にフォールバックしなくなる - 呼び出しシグネチャに応じて振る舞いを変える generic/overloaded function 追加
dict.has_keyはマジで困る。えー、どうしよう…。
> - <, > を使った比較が id() 値の比較にフォールバックしなくなる これって現状ではフォールバックするってこと?
Python3000 とか はっきりいって厨房臭いwwww
key1 in dict1 だとdict1.has_key(key1)よりwhileで使いにくくなるような気がしただけ。
なんで?
慣れか?応用の効かん奴だw 俺もgetを使うのは、使い方が思いつかんが。 まあ、英語ならis inにしたいもんで、inに判定機能が入ってるとみなすのが 気持ち悪いってのは、一度通った道のような気がするけど 話は変わるが、世間的にVer3で一番ショックな改悪ってなんだろうな。
>>292 別にないよ。Python3000大歓迎。
>>292 改悪とは言わないが俺的には
「整数除算は整数でなく浮動小数点数を返す」ってのはショックかも。
多分すくなくとも一度はハマると思う。
generic/overloaded? つーことは引数の型宣言かなんかの仕組みでも入れるの?
>>292 名前。あと機能を削るとか無くすってのは勘弁…
>>296 >名前。あと機能を削るとか無くすってのは勘弁…
あと3年くらいは2.X系列を使えるから心配するな。
ファイル名のプロンプト部に、argvの代用でraw_input使えるかな。
カレーを作り置いて、母親が家を出た日。
fn = raw_input("Input filename? ") in_file = file(fn, 'r') ...
ちとイミフだが食わせるファイルを入力したいんなら、シェルプロンプトの 引数(argv)にしてしまうか、スクリプト開始後に自前でプロンプト出して、 シェルの引数にはしないか(raw_input)ってってだけのことなんでは。 カレー泣けるな。
303 :
デフォルトの名無しさん :2006/04/29(土) 10:24:41
http://www.python.jp/doc/release/tut/tut.htmlを使ってpythonの勉強をしています 。
今↑の9.クラスを読んでいるのですが9.3.4のx.f()を実行するとエラーになります。
具体的には以下のようになるのですが、なぜエラーになるのわからないので教えてほしいです。
よろしくおねがいします。
Python 2.4.2 (#2, Mar 28 2006, 11:50:43)
[GCC 3.4.4 [FreeBSD] 20050518] on freebsd6
Type "help", "copyright", "credits" or "license" for more information.
>>> class MyClass:
... "A simple example class"
... i = 12345
... def f(self):
... return 'hello world'
...
>>> x = MyClass
>>> x.f()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: unbound method f() must be called with MyClass instance as first argument (got nothing instead)
>>>
304 :
デフォルトの名無しさん :2006/04/29(土) 10:51:26
x = MyClass()
流れを完全に無視して質問。 Windowsで使うPythonのIDEってどれが良い感じ? 探したところ、 (1) IDLE (2) PythonWin (3) Eric3 (4) EclipseのPlug-in Windowsで日本語環境バリバリなコードを書きたいんだけど、(1)(2)はいまいち。 (3)はQtのインストールでなぜかこけて試せていない。 (4)は良い感じだったけど微妙。 誰か情報PLZ
>>306 Eclipseのpluginは何種類かあるけど使用したのはどれですか?
最後はEmacsのpython-modeになる気がする
(5) Meadow + python-mode
309 :
306 :2006/04/30(日) 00:44:18
>>307 PyDEVです。現在はこれを使っています。
>>307 ,
>>308 Emacs移行は…考えておきます。当方viで辛うじてファイル編集ができる程度なので。
>>306 emacsにpython-mode.el, py-ext-mode.el, py-complete.el, pylint.el, ipython.el
を突っ込めば必要にして十分っぽい
311 :
303 :2006/04/30(日) 08:47:11
>>305 もっとしっかり確かめるべきでした。すみません・・・
ありがとうございました
Emacs 使いだけど C# だけは VisualStudio を使う。 VisualStudio が Python 対応したら Emacs 使わないかも…。 IronPython もあることだし VS 対応しないかんぁ。
313 :
デフォルトの名無しさん :2006/04/30(日) 17:08:25
Pythonプログラムの外部スクリプトとしてPythonを使用したいと思っています。 但しbuildinのexecfileで一気に実行を行うのではなく、外部スクリプトの 実行の中断などの制御を特定のメソッドのコールをトリガーに行いたいです。 この場合、Python言語サービスのparserを使用して実行コードを独自にまとめる しか方法はないのでしょうか。 現在は外部スクリプトを単一スレッドで管理して、ロックをかけることで制御をしています。
subprocess にして通信するのはダメなんですか。
315 :
313 :2006/04/30(日) 22:16:50
>>314 スレッド管理する以上のメリットがあれば、選択肢に入るのですが…。
>>306 SPE (Stani's Python Editor) も候補に入れてみてください
でも自分は Emacs の python-mode で編集が楽だなあ
>>313 bdbモジュールで1行ずつステップ実行するインタプリタを作ったらどうかな。
1行実行するたびに制御状態を確認して、継続するなり終了すればよいかと。
長時間ブロックする外部スクリプトは制御不能だけどね。
318 :
313 :2006/05/02(火) 11:28:03
>>317 Pythonを外部スクリプトでそのまま使える、って事を「売り」にしたかったり・・・(^^;
流石にPythonと同等のインタプリタを作る技量も時間もありませんので。
Pythonを外部スクリプトとして採用しているF/Wは多いんですが、同期を取って
キューイングで処理させたい需要って無いんでしょうかね。
>>318 317だけど、誤解させたみたい。例えばこーゆーこと↓です。
import bdb
class Debugger(bdb.Bdb):
def user_line(self, frame):
print frame
def foo():
a = 1
b = 2
return a + b
db = Debugger()
db.run("foo()")
つまり実行を1行ずつトラップする仕組みがbdbモジュールにあるってこと。
313さんの要求に合うかどうかは分からないけど参考までに。
320 :
313 :2006/05/02(火) 20:57:35
>>319 こちらが勝手に誤解していたようです。
試したところ、行単位の制御やロック、本体の資源へのアクセスが確認できました。
多少ロック処理がややこしくなりましたが、良い感じです。
ご教示ありがとうございます。
ゲ製作技術板のpygameスレで見つけた。
pygame学習テキスト。
「pygameでゲーム作ろう」
ttp://pygamebegin.web.fc2.com 最近Python関連のドキュメント書くひと増えてきたね。
なんかうれしいよ。
# 欲を言うと reStructuredText で書いてくれれば便利なんだけど。
# PDFとかできれいな印刷版つくれるし。
MP3ファイルに埋め込まれているID3タグの文字化けを直すために エンコードをUTF-8に統一しようと思って eyeD3と言うライブラリでID3タグを読み込んで、nkfでUTF-8に変換して、eyeD3でファイルに書き戻す ということをしようと思ったのですが、 eyeD3がタグを読み込むと実際にはUnicodeではない文字列を Unicode文字列で返してくるのでnkfにそのままでは渡せなくて困っています。 from nkf import nkf import eyeD3 tag = eyeD3.Tag() tag.link('test.mp3') converted = nkf('-w', tag.getArtist()) とすると当然ながらUnicode文字列を普通の文字列に変更しようとしてしまい UnicUnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128) とエラーがでてしまいます。 Unicode文字列を無変換のままで普通の文字列に変換することはできないでしょうか?
>>323 「無変換のままで」というのが意味不明だけど、UTF-8にしたいのなら
encode('utf-8')
325 :
323 :2006/05/07(日) 17:05:35
>>324 レスありがとうございます.
例えば、Shift_JISでエンコードされている'ここにしか'というタイトルを読み込むと
>>> tag.getTitle()
u'\xb1\xb1\xa2'
となります。
eyeD3が実際はShift_JISな文字列をUnicode文字列として返してくるのです。
なのでこれをtag.getTitle().encode('utf-8')としてももとのShift_JISな文字列に戻すことはできないのです。
これを強制的にencodeなどでの変換を全くしないで普通の文字列型にしたい(=nkfに渡したい)のです。
そのためにはどうすればよいのでしょうか?
>>325 > 例えば、Shift_JISでエンコードされている'ここにしか'というタイトルを読み込むと
> >>> tag.getTitle()
> u'\xb1\xb1\xa2'
> となります。
その時点で既に情報が欠落しているように見えるんだけど。
327 :
323 :2006/05/07(日) 17:35:19
解決しました。 Googleで検索したところ、同じことで困っているひとがいたようで、対策も書かれていました。 def fix_str(s): try: #utf-8のunicode文字列を通常文字列に変換 buf = "".join([chr(ord(x)) for x in s]) except ValueError: #utf-16のunicode文字列が来たときはencodeで変換 buf = s.encode("mbcs") return buf tag = eyeD3.Tag() tag.link('test.mp3') title = fix_str(tag.getTitle()) converted = nkf('-w', title) print converted できちんと動作いたしました。 おつきあいくださったかた、御迷惑をお掛けしてもうしわけございませんでした。
>323 一応解決したらしいが... 使いたい ID3 は v1? v2? (v2 でもいくつかあるよ?) で v2 以降は(独自流儀を貫きたいのでなければ) UTF-8 でもなく UTF16 を使うことになっている。 ID3 v2.4 だと UTF8 も OK らしいが...
後からコードに追加を行うと インデントが崩れます. テラカナシッス
331 :
デフォルトの名無しさん :2006/05/10(水) 11:27:36
今日からTracプラグインを作る為にPythonを触ることになったもんです。
setuptoolsを手動でインストールしたいのですが
どうやるのか教えてもらえませんか?
http://www.python.org/pypi/setuptools から
何を落として、どう実行すればよいのでしょう?
※ez_setup.pyはProxyを通過できずエラーになるので手動で入れたいのです
イージーセットアップはプロキシ使えるはずだよ
環境変数を設定してみたら?
windowsならDOS窓開いて
SET HTTP_PROXY=
http://プロキシ:ポート だったかな?
>>331 zipを落として解凍してどこかにおいて
> python setup.py install
で出来ないかな
335 :
334 :2006/05/10(水) 21:12:43
あ、Eggのページまでたどり着いてたのか。ボケててすまん。 だったら、eggをダウンロードして、site-packages/ に入れたような気がする。
eggファイルがあるなら、適当なところ(site-packagesがモアベター) に置いて、パスをsys.pathに追加すれば使えるようになるよ。
微妙にtracネタってことで便乗・・・・。 apacheのpython-bindings for win32 の2.4用ってのは作られてもいないんですか?
なんでコイツは検索できないんだろう?
しょうもない質問ですが egg って何? trac で唐突に出てきて、前から疑問だったんで。
一言で言うと、Javaのjar、RubyのGEMSみたいなもの。
342 :
デフォルトの名無しさん :2006/05/10(水) 23:17:58
>>341 pythonの仕組み?それともtrac固有?
chickenからきてんの?
>>342 Pythonの仕組み。eggはzipファイルの拡張子変えただけ。
だからzipimport機能を使ってる。
>>343 たぶんMonty PythonのSPAMのスケッチ
「エッグ・ベーコン」、「エッグ・ソーセージ・ベーコン」、「エッグ・スパム」、「エッグ・ベーコン・スパム」、
「スパム・エッグ・ソーセージ・スパム」、「スパム・ベーコン・ソーセージ・スパム」、
「スパム・エッグ・スパム・スパム・ベーコン・スパム」、「スパム・スパム・スパム・エッグ・スパム」、
「スパム・スパム・スパム・スパム・スパム・スパム・ベイクドビーンズ・スパム・スパム・スパム・スパム」、
「モルネー・ソースのロブスター・テルミドールと子えび、トリュフ・パテとフライド・エッグ、スパム添え」
ポストン相変わらずだな 人にバグ鳥させんなっつーの
>283 Python3000ってPython2.1(つーかjython)と両方で動くコード書くの難しそうだなぁ。
>>347 Jythonもそのうち3000になるんじゃない?
Jythonなんてもう死んでるだら
joinがぁぁぁ splitがぁぁぁ 消えてしまうっなんじゃこりゃぁぁぁ
pythonは好きなんだが 低解像度のコンソールでviを使っての編集はキツイゼ いやまあviもいいんだが。いかんのは低解像度のコンソールか。
せめてemacsにしようぜ。
edで充分だろ
edでインデントをちゃんと管理できる自信はないなぁ‥‥‥。
ここが本スレに昇格しました。 今後は敗北者じゃない人も来るので粗相の無いようにしましょう。
Google と NASA が Python で開発しているという事実だけで俺も Python を贔屓に使っている。
358 :
デフォルトの名無しさん :2006/05/14(日) 21:25:51
>>355 昇格も何も、ここが本スレの後継スレだったような気が。
Pyスレ住人はスレタイなんて気にしないよ
python -m SimpleHTTPServer とやると、授業中に隣の人にデータを渡すのが簡単
Bluetoothも使えないなんて哀れな。
環境は linux + python2.4 です ファイルを作る時にファイルが存在したらエラー、 存在しなかったら作ってオープンしたいのですが os.openなどの低レベルな関数を使わずにatomicにtest and createする方法はありますか?
>>362 こういうこと望むアプリは
大抵ダメダメ
そんなことをしなくてもいいような設計をすべきだよ
>>362 そういう機能はOS自体にも無いような・・・。
tempfileモジュールはどうよ。
開いてロックしてファイルサイズが 0 かどうか調べたらいいんじゃね?
>>362 どうしてもアトミックじゃなきゃだめってことなら、threadingのLock系オブジェクトと、os.stat組み合わせて
ファイルを開く関数作って、それ使うしかないかも。
>>364 open(2) で O_CREAT | O_EXCL ってことだろ
原則から外れてたり、応用が利かないなど悪い面を分かっちゃいる。 分かっちゃあいるんだけど便利だからと、つい欠点には目をつぶって使ってしまう。 Pythonは言語仕様からしてあんまり数がなさそうだけど、 そんな丸暗記してたりするバッドノウハウって何かありますか?
_ClassName__privateあれこれ をそとからいじっちゃう。
日本語で書いて頂けばいいですよ
ブロックコメントアウトに """ を使う
使い捨てだからと書きなぐったものが後に使いまわしたくなり もともと糞なものを吸収するための糞関数軍を作って糞クラスの出来上がり。
複雑なデータ構造で動的に生成すべきものを人間が決め打ちしたりとか。
374 :
デフォルトの名無しさん :2006/05/18(木) 01:21:46
/xHH形式でエスケープされたUTF-8文字列をエスケープ解除して見たい場合どのようにしたらよいのでしょうか? decUtf8.py \x8e\xc0\x8ds\x8c\x8e\xae\x82\xaa のように使用したいです。 apache2.2でerror_logがエスケープされていたのでそれを見るために、ふと作ろうと思ったのですが、はまってしまいました。 スクリプトに渡って来たものをそのままunicodeに渡しているのですが、うまくいきません。 import sys; argv = sys.argv[1:]; inputText = argv[0]; print inputText;##入力がわたってきていることは確認 print unicode(inputText, 'utf-8');##入力がそのまま出力されてしまう。
うは、釣られた sの位置がおかしいと思ったらsjisじゃねーか
>>374 >>> a=r"\x8e\xc0\x8ds\x8c\x8e\xae\x82\xaa"
>>> a
'\\x8e\\xc0\\x8ds\\x8c\\x8e\\xae\\x82\\xaa'
>>> import re
>>> re_hex = re.compile(r"\\x([0-9A-Fa-f][0-9A-Fa-f])")
>>> b, n = re_hex.subn(lambda m: chr(int(m.group(1), 16)), a)
>>> b
'\x8e\xc0\x8ds\x8c\x8e\xae\x82\xaa'
>>>
>>371 それ、なんかまずいの?俺ふつーにやってるんだが…。
ベターとか正着な方法があるなら、やめた方がいいのか。
すいません、実行環境が変わってしまったため、SJISになってました。 例えば、'\xe5\xae\x9f\xe8\xa1\x8c' (/xHH)が並んでいる文字列表現を渡して、utf-8でデコードして出力したいだけなんですが
これじゃだめなの? import sys print eval('"' + sys.argv[1] + '"')
cgiとか、なんでもかんでもブチこむとしたらevalはあぶないかもしれんね eval("os.system('ls')")
382 :
374 :2006/05/18(木) 08:25:20
ありがとうございます。 いろいろ参考になりました。 string_escape codecが楽そうですね。
すみません Pythonを2.3から2.4に変えたら、コマンドプロンプト上でTabとCtrl+Zが使えなくなってしまいました。 これは仕様なんですか? OSはWinXPです。
>>383 2.3はどこのバイナリで2.4はどこのバイナリよ?
環境は?
環境は書いてあった orz 2.3でsite-packageにあるもの確認すれば良いと思うよ 2.4にない物がなんかあるのかもね
cygwin python updates 2.4.1 to 2.4.3 !!
387 :
デフォルトの名無しさん :2006/05/18(木) 23:20:41
''';;';';;'';;;,., ザッザッザ・・・ ''';;';'';';''';;'';;;,., ザッザッザ・・・ ;;''';;';'';';';;;'';;'';;; ;;'';';';;'';;';'';';';;;'';;'';;; vy;vy;v:yy;vy;v;yv;y ウンコー! λVv vλ v;y v Vv vλv; λ Λ __ λ_ Λ _ヘ λ λ ヘ__ ウンコー! ウンコー! 人 人 λ 人 人 人 __λ人 人 人 人 人 人 人 人 人 人 人 ウンコー! 人(__人(_人 ) 人 (人.人__).人___) 人( 人 (__)__(__)_(__)(__)(__)__) (__)__(__)(__) ウンコー! ウンコー! (__)(__(__)___(__)__)(__)(__)__) ( ・∀・ ( ・∀( ・∀・ )∀( ・∀・ )・( ・∀・ ) ・∀・ )∀・ ) 「ウンコから来ますた」「うんこから来ますた」「ウンコから来ますた」「うんこから来ますた」
389 :
デフォルトの名無しさん :2006/05/20(土) 08:54:57
>>377 """はドキュメンテーションのために使われることを期待されてるからでは?
別にドキュメンテーションのためと限定されているわけではないと思われ。
ただ、どっからどこまでがコメントなのか判りづらいよね。 def hoge(): """ hanya """ i = 10 """ i += 1 """ return i
2chみたいにtabが無くなる掲示板に貼ると最悪だよね。
spaceはなくならないよ
>391 python editor の類いで highlight して見れば 十分はっきりと分かるけどな
というか、なんでブロックコメントないんだろ。
396 :
デフォルトの名無しさん :2006/05/20(土) 18:16:34
ブロックのコメントに """ だけでなく ''' も許して欲しい。コメントの開始と終了を区別できる記述を認めるべき
>>395 Pythonではブロック=インデントだから。
>396 気持はわからんでもないが、今更 べき というほどか?
後からインデントの必要なコードとか追加すると、 前から在ったインデントが崩れるんだけど… python-modeのあるエディタなら大丈夫なの?
エディタがPythonのSyntaxをサポートしてれば、 インデント崩れを直すのがエディタの支援でちょっと楽になるという程度。 本質的な部分は変わらないよ。
>399 状況が良く分からない。 部分コードを追加するときは ブロックのインデントを合わせる程度で 特に問題は感じないけど...
402 :
399 :2006/05/21(日) 00:48:41
まだまだ始めたばかりなので申し訳ないんですけど、 for ___: a b c みたいなところで例えばaの下にfor文入れるとしますよね。 for ___: a for ___: d e b あれ?大丈夫か
まあ四の五の言わずにPythonをサポートしたエディタを使いなよ。 IDLEならALT+[ で複数行インデント、ALT+3 で複数行コメントアウトだ。
404 :
デフォルトの名無しさん :2006/05/21(日) 06:17:57
pythonのメソッドとかをtab補完したいんですが、emacsでやるやり方を教えてちょ
Python for PocketPcっていうのダウソしたけどこれどうやって使うの? importもexportもなにもないけど
メンテしてるときにインデントされてる部分に挿入するとき インデント変え忘れて訳わからなくなることってないですか?
ないないw
>>405 TAB補完されないんですけど。どうやればいいんですか?
そもそもTAB補完がTABインデントの補完なのか、文字列の補完なのか。どっちやねん。
「TAB補完」とか言っているのは文字列補完な気がしてきた。 確かにTABキーで補完を呼出すのもあったかもしれない。 M-/ でも撃てば?(ちょっと違うけど)
tab completionといえばふつう文字列の補完だろ。素直に間違えた、そんな機能ないって言えよ。
PythonではTAB補完というとTABの補完だからな。 文字列補完はM-/か適当なキーにdabbrev-expandでも割り当てれ。
> PythonではTAB補完というとTABの補完だからな。 どこのPythonよ。そんなのしらね。
>>362 f = file("test.txt","a")
>>416 要求に合うことを確かめてから書き込むようにしましょう。
低レベルだな
419 :
デフォルトの名無しさん :2006/05/23(火) 23:02:12
敗北者ですから。
:::::::::::::::::::: ::::::::::/ )::::::::: :::::(\::::::: _人 / / )::::::::::: :::::/\\ ノ⌒ 丿 / / /ヽ:::::::::::: :::: ヽ \\ _/ ::( / / / /:::::::::::::::: :::: ( \ \\ / :::::::\ l 三 / / )::::::::::::::: :::::::ヽ ヽ . ミヽヽ ( :::::::;;;;;;;) / 二 / /:::::::::::::::::: ::::::: ( \ ヽミ ヽヽ \_―― ̄ ̄:::::::::: / 二 ___/ヽ ...:::::::::::::: 帰ってきたよ〜☆ ::::... /ヽ ヽ ニ ヽヽ ノ ̄ :::::::::::::: // ニ _______/ ...::::::::: :::. ヽ____ ニ ヽ ( .::::::::::::::;;;;// ニ ____ノ .....:::::::::: ヽ___, ニ/ ̄――――― ̄ ̄::::::::\ ニ ___ノ + + ....::::::::: ヽニ -‐( :::::::::::::::::::::::::::::::::≡ __ノ+ ┼ *::::::::: ヽ---\__::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;ノ_ + ┼ .:::::::::: :::::... + ┼ + + ー-、___~'''''ー-、 :....:::::::::::: :::::::.... + ┼ *+ +~~'''ヽ ..:...:::::::::::::::::::: :::::::::::::::::..... + * . ┼ :....::::::::::::::::: ::::::::::::::::::::....: + * + .....:::::::::::::::::
421 :
デフォルトの名無しさん :2006/05/24(水) 01:45:04
なんかcgi.FieldStorage()何回も参照すると値が消えるんですが・・・
kwsk
どっかの出版社、ハンドブック作ってくれないかな。無理ですか。 ナツメ社のUNIXとかでよくあるアレとか。需要ありませんか。 それはともかく、splitが無くなったらおじさん困っちゃう。
おらいりー のじゃだめ? デカすぎ?
あれって、ハンドブックってサイズじゃなくない? 初め大きくてハンドブックだって気がつかなかった(´∀`)
うちに古いのだけど「デスクトップリファレンス」ってペナペナなのあるよ。 これのことかな? ぜんぜん使ってないけど。 ISBN4-900900-96-6 \900 Python デスクトップリファレンス 発行所 オライリージャパン 発売元 オーム社
427 :
424 :2006/05/25(木) 16:27:15
>426 のいっているのはペナペナの文法だけ書いてあるような クイックレファレンスのやつね。しかも 1.5.x 時代位のもの。 こいつはさすがに使う場面はあまりない。 >424,425 のはライブラリ関連も含めた辞書みたいなもの。 "PYTHON クイックリファレンス" ってもので python2.3時代のもの。 一応それなりに使ってる。
すまんこ Pythonを常駐させて、スクリプトの起動を高速化する方法ってない?
秀和システムで逆引き大全を出してくれないかな
人生の敗北者が何を大逆転するのかと思った。
>>428 常駐は無理だが、事前にコンパイルしとけば少しはマシになる程度。
>>428 GUIで作っといてボタンを押したら実行みたいなのは?
ブサイコクラッシャーアタック
Pythonで拡張できるエディタが欲しい
eric3
emacs+pymacs
scribes は python で書かれてる
拡張ってのには物足りないと思うけれど、 EmEditorが、マクロをPythonで書けるお( ^ω^)
ActivePythonならサクラエディタのマクロも書けると思われ 試したことないが
初心者です。ZOPEのコードを読んでいるのでいます。 ~/Zope-3.2.1/Dependencies/zope.app.server-Zope-3.2.1/zope.app.server/main.py の96行目にあるsys.setcheckinterval(option.check_interval)のcheck_intervalが良くわかりません。 ググッても How often to check for thread switches or signals (measured in number of virtual machine instructions) という説明しか見つかりません。コレはいったい何をしているのでしょうか?
そこのソース見たわけじゃないが、その英文のとおりの意味ではないのか?
>>441 How often to check for thread switches or signals (measured in number of virtual machine instructions)
適当に意訳すると
どのぐらいの頻度でスレッドスイッチやシグナルをチェックするか
(単位は仮想マシンに対する指示の数)
指示って要するに仮想マシンCPUに対する命令の事かな
444 :
441 :2006/05/27(土) 01:18:40
445 :
441 :2006/05/27(土) 01:27:08
>>443 check_intervalがどういうものか少しわかった気がします。
でも
>>444 で書いたようにoption.check_intervalでは適当な値が返ってこないような気がするのです。
やっぱりわかってないのかもorg
446 :
441 :2006/05/27(土) 01:27:43
あ、org→orz
具体的に、どういう値が返ってきているの?
448 :
441 :2006/05/27(土) 01:49:12
>>447 すみません。わかりません・・・
確かめる方法もわかりません。
Zopeは知らんが、単にoption.check_intervalってとこに設定読み込んであって、それを VMにセットしてるだけなんじゃないのかい?
451 :
441 :2006/05/27(土) 02:04:48
>>449 ということはどこかにoption.check_intervalという値(?)が定義されているということでしょうか?
探してみようと思います。
ちなみに
/Zope-3.2.1/Dependencies/zdaemon-Zope-3.2.1/zdaemon/xdoptions.py
の222行目にself.options = []というやつがありました。
そんな説明されたって、誰もわざわざソース見ないってば。w その self は何だとか書かなきゃ質問の体をなさないってことに気がつけよ。
453 :
441 :2006/05/27(土) 02:21:04
>>452 そうですね。自分で解決してみたいと思います。
selfはたぶんrealizeだと思います。
何が分からないのかが分かってないのでは?
もっと簡単な、1ファイルだけで完結してるソースを読むことから始めた方が良さそうだな。
456 :
441 :2006/05/27(土) 03:20:47
粘着ですみません。 本当に何がわからないのかわかっていなかったみたいです。 もう一回本を最初から読み返してみます。 お騒がせしました。
粘着などと卑下することはないが、 何かしら目的意識を持ってコードを読む必要があるだろう。 人が書いたコードを読むのはPythonに限らずプログラミング言語の最良の勉強法だ。 しかし、漫然と読んでも得るものは少ない。 例えば、特定のソフトウェアの特定の機能に焦点を当てて、 何をどのようにすればその機能が実現できるのかを追いかけてみる。 あるいは、入力データがどういう過程を経て出力データとなるのかを調べてみる。 そういう起点と終点を自分で設定して読むとよい。 読みたい、理解したいという強い動機があると理想的だ。
Python使うといやでもインデントの大切さを身に着けることが出来る
459 :
441 :2006/05/27(土) 08:18:30
Python自身のコードも楽しいよ ^^
くされruby厨のページなんか紹介するなよ。
書いてあることが良ければ別に紹介しても良いと思いますが あなたはfusianasanですか?
python 的にはソースコードの読み方なんてのは PEP 通読で会得するものなのだが。
kwsk
8だけは読んだ。
467 :
sage :2006/05/29(月) 06:18:40
正直機材の横に貸し出しノートでいいと思うんだが。
それは467では?
新スタイルクラスで __slots__ 属性を指定し、その中に __dicts__ を含めた場合、__slots__ 属性を定義しない場合とはどのように異なるのでしょうか?
print
print "%X" % -1475490169 の結果は-57F23179になるのですが、 期待しているのはA80DCE87です。 print "%X" % 928778465 などは期待通りに 375C08E1になります。 あまり10進数、16進数というものを理解してないのですが、 先頭にマイナスがある場合はどうやったらよいのでしょうか?
>>473 変な期待すんな
-1475490169 % (2**32)
>>441 zope.confで設定する python-check-interval
(pythonのスレッド切り替えやシグナルハンドラの検知間隔を指定する。)
の値を設定しているだけじゃないだろうか。500がデフォルトみたい。
10進数を理解していないというのは日常生活にさまざまな支障が出るのではないかと心配になるが
>>474 ありがとうございます。
うまくいました。
>476
なぜ % (2**32)でこうなるのか理解できないので、教えてください。。
でも理解しなくても支障なく使えるので、やっぱいいです。
つ[整数は32ビットだが1ビットは符号ビット]
test
772の補数ってすごいな
ただの4772進数だろ
483 :
デフォルトの名無しさん :2006/06/03(土) 02:31:53
あの python勉強しようと思うんですけど 就職の役に立ちますか? 本はもう買っちゃいました3800JPYもしました。
IDLEをランチャに登録したいのですが、本体ファイルが見つかりません。 IDLE自体の実行ファイルって無いんでしょうか?
>>483 pythonが直接就職の役に立ちそうなのはMicrosoftとGoogle、pixarあたりかw
まあそういう即時的な効果より、プログラミングのセンスが良くなるという事で
仕事には役立つと思われ。
>>484 スタートメニュー上で右クリック→プロパティ→リンク先
を見る事を勧める。
pythonが就職の役に立つか、なんて言っている時点で敗北者決定 :-) pythonを就職の役に立てる、じゃぁないの?
488 :
デフォルトの名無しさん :2006/06/03(土) 10:35:10
就職した後に 自分の仕事でPythonが役に立つときはあるけど… Pythonでしかできない仕事なんてないしなぁ。
489 :
484 :2006/06/03(土) 10:56:03
>>486 もちろん見ましたが、変なファイルでした。
>>483 必要な資格、技能なら就職してから身に付ければいいんでない?
中小企業でOffice使えます、HP作れます、とかは有効かもしれないけど、
Pythonが小手先程度使えても…。
と、いうのは来春(今秋)からの就活に向けて本読んだりしてる学生の意見だけど、
483さんはおっさん?
おれはオッサンだけど HP作れますっつって入ってくる新入社員にロクなのはいない
>中小企業でOffice使えます、HP作れます、とかは有効かもしれないけど、 技能的には「車乗れます」以下だ
>485 CやJavaみたいなプログラミング言語もあるていど扱えるけど、 よりセンスが良くなりたいと思ってOCamlやSchemeを勉強したよ。 確かに実になった。良かった。
どうして1//3.0が0.3じゃなく0.0になりますか。
>>483 最近はGoogle効果で、IT関連企業のお偉い様もPythonの名前だけは知ってたりする。
そういう企業に就職するのなら面接で多少は役に立つかもしれないね。w
もちろん就職後の仕事に役立てるかどうかは君次第。勉強すること自体は決して
無駄にはならないと思うよ。
SI業界で使われている言語はJavaが多いから 就職のことだけ考えるならJavaのほうがいいんじゃね? つかPythonできますなんて言ってもへーって言われて終わりだろ。 あとPythonはあまりオブジェクト指向していないから そのへんのセンスを磨きたいならSmalltalkみたいなオブジェクト指向し過ぎな 言語で遊んだ方が良い。
>>497 いまどきJavaなんてできて当然でしょ。オブジェクト指向も必修科目。
それらを知った上での余興としてPythonでライバルに差を付けるのだよ。w
余興かよ
余興なら「なでしこ」とかにしとけよ
501 :
483 :2006/06/03(土) 14:30:35
python勉強するのやめました。 ありがとうございました。 スロットうちにいってきます。
502 :
483 :2006/06/03(土) 14:42:01
>>490 21歳の専門中退です
>>492 officeもhtmlも使えないのでまずそっちを勉強します
>>496 意見どうもです
>>497 Javaですねはい。
まずこうします。
Office勉強します・c勉強します・Java勉強します・就職します・python勉強します
python勉強する時期になったらまたお力かりたいと思います。
どうもありがとうがざいました。
>>502 順序としては悪くないね(敗北者としては)
504 :
デフォルトの名無しさん :2006/06/03(土) 15:22:35
自分のプロジェクトでPythonつかったけど 生産性の高さと保守のやりやすさで、助かりました。 人の仕事をお預かりしてる身分の人々には ちょっと、もてあますかもね。> Python
>>483 なんでPythonを学ぼうと思ったのかな?
プログラミング言語,スクリプト言語なら他にもあるのに
何か理由があって
特にその中でPythonを選んだの?
消去法なんじゃないのかな?
すぐに就職したいのならともかく、もうちょっと時間に余裕があるのならJavaやCよりもPythonから入った方が良いような気がするんだけどね。
んー、まぁ就職したいのであれば ACCESS/EXCEL→VB→VC++→就職→IronPython ってのが鉄板かなぁ。 htmlなんか書けても無駄。
>508 すごいか?
511 :
483 :2006/06/03(土) 21:44:32
>>503 ありがとう
>>505 Eric S. Raymond氏がまずpythonから始めたほうが良いとおっしゃっていたから。
>>506 違いますはい
>>507 なぜpythonから始めた方が良いかおしえてください
>>509 参考になりました。ACCESSちょっとやってみます。
はじめてのpythonは厚くて, 今大体半分くらい読んで演習問題を解いたりしているのですが 疲れてきました. 何かこう,こんなのできるよーとかエサがあれば…お願いいたします. 気分転換になるようなものでかまわないので!
514 :
デフォルトの名無しさん :2006/06/03(土) 22:37:03
>>511 >Eric S. Raymond氏がまずpythonから始めたほうが良いとおっしゃっていたから。
"How to become a hacker" ですね。
私もあれを読んでPythonに興味を持ち、使って見て惚れたクチです。
最近はlispもやってみようかと思ってるところです。
>>513 一応大学生です.
ありがとうございます,風呂上がったら読んでみます.
516 :
デフォルトの名無しさん :2006/06/03(土) 22:56:09
>>516 2個目の暗号を解くためのプログラムを今作っているところです!
へへへ…ありがとうございます.
>>516 なつかしいなそれ。10問目くらいでギブアップした。
たまにレベルというか発想の難しいのがあって、止まっちゃうアレですか。
pythonやプログラミングに関係ない問題あるよね あと、英語の知識がないと難しいのとか
おまえらもうすこし前向きになれよ(WWWWW 負け組根性丸出しだぞ(WWW
>>516 やっべここやっべ ハマったw 面白すぎw
>>512 じゃないけど教えてくれてありがとう><
>521 あとスレタイも読めよ
>>498 Python ごときでライバルに差を付けられると思ってるバカ発見
こういう週末を楽しくさせる煽りは、土曜のうちに仕込んでおくべきだと思う…。次回の健闘を期待。
w 付いてたらネタなのか? 知らなかったよ w
内容で判断できるわな w
俺もw
ところで、最近は人生の敗北者でもPCぐらい持っててあたりまえなのな。 20年前には考えられなかったyo.
国内でPython使ってる人は、趣味でやってる人が多いと思ってたけど違うのかな。
色々言語勉強してきたけど、Pythonはなかなか楽しいよ。
>>516 とかやると実感できるなぁ。17でつまったけど……。
これのRuby版ってある?
>>533 自分の裁量で自由に言語を選択できるケースでは仕事で使ってるよ。
めんどいからあまり布教はしてない。
というか宗教論争に疲れたひと多くない?
年寄りはそうかもしれんが 新人は常に製造され流入してくるからな 宗教戦争に終わりはない
要するに、原義通りなのさ…@職場
539 :
デフォルトの名無しさん :2006/06/05(月) 06:48:23
>>534 前にこれの話題が出たときは、RubyやPerlで解いた人もいたはず。
おやじ デヴ リュックしょってる 2つ以上該当する人はPythonやらなくていいです
>>540 まあ全角英数使う人のがよっぽどダサいけどな
ハイフンにー使う人も多いし
>>541 全角英数を使う妻夫木聡と
全角英数を使わないリュック背負ったデブオヤジ
どっちがダサイですか?
なぜ外見の話になるのかが分からない
ディレクトリ内のファイル一覧を取得するような関数はあるでしょうか?
import os os.listdir()
何にでもdir/help/getattr/setattr/list辺りを適用する年頃になりました
Python信者に見せかけて荒らしてるやつがいるな 意味ないのに
なんで2.5リリースが延期になったのか理由知ってる人いる?
要するに「速くなりそうだからちょっと待ってね」でしょうか?
新種の荒らし?
よろしくお願いします。Python2.4.3です。 readlines()は「一行ずつ読み込んでリストにする」というのを読んだんですが、 123 abc あいう という3行のテキストファイルを for line in open("C:\text.txt").readlines():print line で読み込んでline[0]とすると あ が帰ってきます。 テキストファイルから['123', 'abc', 'あいう']というリストを作るにはどうしたら良いのでしょうか?
lines = open("C:\text.txt").readlines()
>>558 即レスありがとうございます。やってみます。
2.4xを入れてたらJapaneseCodecsいらないですか?
はい、いりません。
質問なんですが
>>557-558 で open したファイルオブジェクトって
close しなくていいんですか? ガベージコレクト時とか終了時とかに自動的に閉じられます?
>>562 > ガベージコレクト時とか終了時とかに自動的に閉じられます?
Yes
仕事でPython使ってる人いますか?
使ってるヨ。 客の作ったデータの整合性チェックとか変換とか 納品不要なツール扱いの奴はほとんどPythonだ。 一度納品要求されたんでAS ISを条件に提供したら、 検収担当もPython使いだったりして驚いたことがあるw
ノ
> 客の作ったデータの整合性チェックとか変換とか > 納品不要なツール扱いの奴はほとんどPythonだ。 俺もこんなかんじだな。 周りに蛇遣いどころか知ってる奴すらいないのでしょんぼりだけど。
いいなぁ…ソフト作れるとかすごいよ. 私ははじパイ全然進まないレベル.
仕事の小道具として使ってます。 でも、はじぱい買ってません。
仕事ではないけどワンライナーをクラスまで育てることができるのでワンライナーはほどんどpythonで書くようになった
575 :
564 :2006/06/07(水) 06:31:08
おおっ、結構使ってる人いるんですね。 自分は最近Python勉強し始めて書きやすさに感動しています。 Pythonのプログラムをそのまま納品できる仕事ではないので、納品不要のツールをPythonで書いてます。 ちなみに周りにはPythonのこと知ってる人いませんorz 話してみたら「何それ?」って感じでした。 今はwxWidgetsのドキュメントを読みながらwxPythonの勉強してます。英語苦手なんで大変です(でも楽しいからおk)。 仕事として使ってみたいと思う今日この頃です。
577 :
デフォルトの名無しさん :2006/06/07(水) 22:15:33
他の人は知らなくていいんです。 自分の仕事だけスラスラすすめば。
wxPythonってWinCEで使えますか? あるいはpy2exeのWinCE版ってないですかね? 海外のサイトでpygameやらtkinter?やらと一緒になったものを 見つけたんですが、20MB以上あったのでちょっと・・・ それ以外にwxPythonは見つけられませんでした・・・
yumってモンティパイソンに出てくるものなんですか?
580 :
デフォルトの名無しさん :2006/06/08(木) 22:52:04
「一階層上のフォルダのパス」って、書き方ありますか? 今、こんなふうに求めてます。 <Path=任意のフォルダパス> Path[0:-(len(os.path.basename(Path)) + 1)] こんなわけないですよね?
os.path.dirname(Path)
>>581 やはり書き方があるんですね…ありがとうございました。
>>564 感覚的には自分も>567と似たような感じだなぁ
納品することは無いから微妙な違いはあるけど。
で、ワンライナーで済むようなものはawk使ってる。pythonにはあまり向かないと思うし。
>>580 os.path.split はどう?
os.path.normpath, os.getcwd と組み合わせれば相対パスの場合とかでも一通り指定できそう。
って、dirnameと変わらないか>os.path.split 失礼
そういう欲しい機能に対応するメソッド(?)、モジュールって 調べて覚えるの大変そう。 でも、どっかのサイトに「逆引きリファレンスでプログラム覚える奴は云々」って 書いてあって、逆引きサイトはダメになるようで怖くて見られない初心者が居たり。
基礎を覚えずに「こういう時はこう書く」って暗記するだけで思考停止しちゃってる人はどうかと思うけど 逆引き自体が悪いって事では決して無いと思うよ。
>>585 スマンが言ってる意味がわからん?
逆引きサイトが身につかないから引かないってのが特にな
普通は習うよりも倣って慣れろだし、目前の問題解決が優先だから、
みすみすリファレンス例を引かないってのが俺には理解できんのだが、
憶えるのが大変だからと定石を身に付けずに何ができるのだろうか?
>>585 プログラミングを暗記科目か何かと勘違いしてる奴が居るようだな
ハートで感じろよ
590 :
デフォルトの名無しさん :2006/06/09(金) 12:10:10
立派なマニュアルのPDFがダウンロードできるんだし。 あと、他にPythonでかかれたソースもたくさん落ちてるし… メーリングリストも検索できるし… コピペだけで8割解決するでしょうに。
ほとんどコピペでも一応動く物はできるけど、 新機能の勉強しなくなっちゃうんだよなあ
593 :
sage :2006/06/09(金) 13:56:42
勉強好きな人は、フルスクラッチでどうぞ。 努力と根性がすきな日本人的プログラマ気質だね…
努力が嫌いで、コピペで済むような仕事しか与えられない953の人生に幸あれ。
バカがまた湧いてるなw ニヤニヤ( ・∀・)
596 :
デフォルトの名無しさん :2006/06/09(金) 16:31:54
ばかばっか。
はい、 文字列置換の連想配列かリストのリストか、そういうのを渡して、 ファイル中の文言を置換する python スクリプトを書きたいのですが、 馬鹿単純に考えると、こんな感じ。 replist={"x" : "X", "foo", "bar" } f=open("file","r").readlists() nl=[] for x in f: for r in replist.items(): nstr = x.replace(r, v) x = nstr nl.append(nstr) print nl もっと短くカッコよくしたいんです。 あと、replist も外部ファイルにして eval するようなのってできますか。
for r in replist.items(): は for r,v in replist.items(): でした。他にもいろいろケアレスありそうですが、そこは replace in your brain で
import sys, re replist = re.findall(r'^(¥w+)(.*)$', open(sys.argv[2], 'r').read(), re.M) sys.stdout.writelines(reduce(lambda x, y: x.replace(x, *y), replist, line) for line in open(sys.argv[1], 'r'))
>>599 >replist = re.findall(r'^(¥w+)(.*)$', open(sys.argv[2], 'r').read(), re.M)
replist = re.findall(r'^(¥w+) (.*)$', open(sys.argv[2], 'r').read(), re.M)
一行野郎ktkr
すまん、python ってどう読むんだ? ふ・ふ・ふ・・・ ふぃぞん じゃぁないのか?
(lambda replist: sys.stdout.writelines([reduce(lambda x, y: x.replace(x, *y), replist, line) for line in open(sys.argv[1], 'r')]))(re.findall(r'^(\w+)(.*)$', open(sys.argv[2], 'r').read(), re.M))
ちょ、誰がワンライナーで書けとww
話はかわるが、FirefoxのJavascript1.7が激しくPythonインスパイヤな件について Python式のイテレータ・プロトコル yieldを用いたジェネレータ リストの内包表記
>>606 そんな再発明するくらいなら、素直に <script language="Python3000"> とかを提案するほうが
百万倍好ましいのだけどな。
608 :
603 :2006/06/09(金) 19:39:36
どうしても一行で書かなければならないときだけこんなやり方をする でもそんな状況でも可能な限り回避する努力をすべき 有り体に言って糞だな
lambdaって廃止の方向じゃなかったっけ?
んだ
>>609 それはすごく困る
2.5ってどうなっていくの?
最近、Guidoが「複数行になるlambdaは入れない」って決定を下した ってやつと勘違いしたんじゃない?
eggって何なの?
Python の RubyGems
>>614 spam, egg, sausage and apam!!の25%の成分
>>613 lambda廃止の議論は確かにあったんだけど
廃止されないことになったんだよ
IronPythonってバージョンいくつがベースなんだろう。 import string できないんだけど、はやばやと消されてるのかな。
stringモジュールなんてここしばらくimportしてないな 文字列メソッド使えばいいんじゃね?
>>617 > 廃止されないことになったんだよ
ソース所望
622 :
デフォルトの名無しさん :2006/06/10(土) 11:36:10
boost.pythonを使って拡張モジュールを作ろうとしていますがうまくいきませ ん。vc2003でdllをつくりimportしても、パスは通っているのにImportError: DLL load failedになります。
そりゃ大変だね。
愚かな妄想は小人物に憑いたおばけである lambda廃止論者の妄想につきあわされるGuidoも大変だな
なにをいまさらry
まぁlambdaを廃止して、この世から完全に消しちまえと 思うほどの害があるように思えんから そのままにしとくってのが現実的解なんじゃねーの? 古いソースで使えるものもあるから、バックワード コンパチビリティーは残しといて欲しいな
どんな疑問や要望にも 独りよがりにならず 理にかなった解答ができるのがGuodoの素晴らしさ 機能の追加や廃止をするとき 愚かな一貫性に凝り固まらず ベストチョイスができるのがPythonの素晴らしさ
>>627 >理にかなった解答ができるのがGuodoの素晴らしさ
guidoがバスに轢かれたらどうしようと考えると夜も眠れませんよ!?
Python-Dev読めば不安は消えるよ Python開発陣の層は厚い 仮にGuidoが亡き者になっても Pythonの開発は続くと思う
層の厚さが問題じゃないと思うがな。 単に沢山いてもうまくまとめれる人がいないと ゴテゴテと無駄に沢山機能がある趣味の悪い言語になったりしそう。
Dev嫁 それから妄想しろ
matz: 鳴かぬなら 自分で鳴くよ ホトトギス larry: 鳴かぬなら アニメを見るよ ホトトギス zendの人: バグ出して 自分が泣いた ホトトギス
Larryってアニヲタだったのか?
ヒント:Pythonという名前の由来
ああごめんLarryか・・・Perlの中の人の事はしらね
Pythons はアニメと関係ないだろ。アニメな部分もあるけど。
634が何に対してのヒントなのか Guidoに聞いてみよう
なんか荒らしなのか知ったかなのかわけわかめな状況だな
わかめ わかめ
テキスト中から回文を検出するワンライナー希望
処理が終わるまでにビッククランチが起こる説
645 :
デフォルトの名無しさん :2006/06/12(月) 18:45:46
ZEOとかじゃないの? マシン分けて処理したいだけならプロトコル作って話せってことになるし つか負荷分散とプロセス間通信ごっちゃになってない?
647 :
645 :2006/06/12(月) 21:28:38
chatアプリを複数台で走らせて、datデータで同期を取りつつ、どれが落ちても無傷、ってなのをDBもストレージも使わないで、できないかなと。 サーバアプリもP2Pで、みたいな 手っ取り早くサーバ間でもhttpで叩くか、dpython書けってことでしょうか? (プロセス間通信をNW越しにできるのが、drubyと思ったんだけど、違った?)
Distributed Objects Python あたりでぐぐればいくらでも出てくる。
649 :
645 :2006/06/12(月) 21:30:27
すごい人いっぱいいるな
651 :
デフォルトの名無しさん :2006/06/12(月) 22:04:43
あんまり詳しくないんだけど、いろいろあるPythonの分散オブジェクト モジュールの中で(実現までの手順がシンプルという意味で)一番drubyっぽい のはDOPYかな
それだ!
import foo.py のように、簡単外部の.pyファイルを取り込む方法ありますか? 引数で .py ファイルを指定したいので、import が使えないのです。 open で 読み込んで eval に渡せばいいのかなぁ・・と試してはいるのですが、 もっといい方法があれば教えてください。
日本語でおk
>>654 動的に import しなきゃいけないってどんな状況かね。
imp.load_source('yourmodulename', '/home/you/yourmodulename.py')
for i, plugin_file in enumerate(os.listdir(PLUGIN_PATH)): mod = imp.load_source('mod%d' %(i), plugin_file) plugin_modules[mod.plugin_name] = mod
>>656 状況依存情報の設定ファイル中に python の命令で値を取らせると
いいなぁと思う情報があるんですが、たぶん考え方自体が間違ってる
のかなぁという気がしなくもありません。
本体のコードを汎用化したいあまり、オプションファイルが複雑に
なったというところでしょうか・・・。
>>657 imp でできたっぽいんですが、読み込んだであろう.pyの変数に
アクセスできないんですが、これはどう指定すればいいのでしょう・・
# main.py
imort imp
imp.load_source('*', sys.argv[1])
print test
# setting.py (引数で指定したファイル)
test='a'
実行
global name 'test' is not defined
orz
設定ファイルならConfigParserつかわないの?
手がかりをもらったらちょっとくらい調べなよ。
toolkit 自動判別みたいなモジュールって無いですかね? tk があったら tk 使う、gtk があったら gtk 使う、qt があったら qt 使う、 全部あったら任意の優先順位で一つあるいは複数を使う、みたいな SQLObjectの UI 版ぽいのを。
そんな悪夢にとりつかれてないでさっさとどれか一つに魂を売りなさい。
それくらいならtryを繰り返せばいいだろ
>>654 いまいち何がしたいのか全然伝わってこないのだが
execfile("foo.py")
じゃあかんのけ?
>>666 ダミアンさん、それです!
どうもありがとうございました。
といいつつ、ConfigParser と shlex でも試してみます。
667に悪魔が取り憑きますように
アーメン
>>667 mod = imp.load_source("*", sys.argv[1])
print mod.test
print sys.modules["*"].test
で出来たよ。
671 :
デフォルトの名無しさん :2006/06/13(火) 23:39:54
boost.pythonを使おうとしています。VC++2003で作ったDLLファイルを importすると"dynamic module does not define init function (initBoostPython)" と言われます。言われたとおりinitBoostPythonを定義しても同じことを言われ ます。なぜでしょうか?
DLLEXPORT
673 :
671 :2006/06/13(火) 23:44:20
Pythonのバージョンは2.4です。
674 :
デフォルトの名無しさん :2006/06/14(水) 14:18:20
フィナボッチ数列の100項目までを表示する プログラムが作りたいんですけど 100項ってどうやってプログラムしたら数えられますか? 教えてください
フィナボッチってなんだか知らんが 確かフィボナッチ数列であれば n項を直接求める計算式があるから (√5とか入ってる香具師ね) それ使えば数える必要ないよ
>>675 その方は車輪発明家です。もっと敬ってください。
100項目「まで」を表示するんだから数える必要があるんじゃない? でも、宿題なら指導教官に聞いて欲しいな。
for x in range(100): フィボナッチを求める式とそれを格納するリスト
宿題乙
Pythonチュートリアルを読んでいて カウンターを使いたくなったと想定して Pythonチュートリアル「4.6 関数を定義する」の例を使った n項目まで求めるに変更する為に カウンターc(現在何項目かを数えている)を追加 これにともない cの初期化を追加 def fib(n): a, b = 0, 1 c = 0 while c < n: print b, a, b = b, a+b c = c+1 初期化部分をまとめろよ!とか思ったらまとめればいい c = c+1 が気に入らない!とか思ったら変える
スマンフィナボッチで吹いた。 年かな…
>>682 ずっとレス読んでたが、今初めて気がついた。
だいだらぼっちみたいだな。
pythonの宿題いいな〜。 今どきのプログラミング演習って何でやるんだろうな〜。 我が母校は昔はCだったが、今はJava らしい‥‥、
Rubyもあるんだな
文系の余技でやらされる情報実習ではVBだった。 10年前だけど。
教養部の講義でプログラミング基礎って何やるのかとwktkで受けたら FORTRANやった……(やはり10年前)
俺はasmだった。しかも8086系コードではなかった。今ではいい思い出
perlやってるよ。。 講義は最初のガイダンスだけなんだから、 言語は自由でいいと思うんだがな。 教授は課題出して、院生が採点。 顔見たの一回だけだw
2.5beta遅いね
2.5で一番ワクテカなのはSQLite搭載だったりする。
ふと思ったんだけどさ、Guidoパパってものすんごい勉強家だよな。 Pythonに新しい機能なりモジュールを取り入れるのに何も知らないじゃ 話にならないわけで。当然知らなかった部分は自習して補ってるはずだ。 幅広く知っているだけじゃなく、機能の過不足や実装の善し悪しまで 判断できるように相当深く知らないといけない。なんつーか、想像するだに 常人の域を超えてる。
それが本当のハッカーっちゅうもんだがね
基本的な変数と構造に、オブジェクトのメソッドによる操作は分かった。けど、クラスの概念が理解できねえ。 インスタンスとかコンストラクタとか、「車」クラスの「カローラ」とか何なんだ。別にPyじゃなくても、JavaほかOOPなら 全部こいつに阻まれる。 これを分からないとPy語りで頻出のイテレータとか、独特のラムダ式とか、秘密の呪文に挑戦する資格がもらえねえー。 早く俺も内包とかなんとか、訳知り顔に口走りたいz
ピーソンの勉強オワタ\(^o^)/ ← 訳知り顔
イテレータとかラムダ式は、暇つぶしか遊びにしか使わないし なくても、普通の表現方法でかけるので、あんまり心配しなくていいとおもうけど。 (いろんなPythonのソースをgrepして、どのくらい利用されているか見てみましょう) クラスの概念って、配列ー>構造体ー>クラス と、順番ずつに理解していけば、分かるはず。 プログラミングは、たくさん自分でソースを書いてデバッグしたら 理解できてきますよ
>>695 自分で必要性を感じなければ急がなくてもいいと思うよ。
クラスは、例えば文字列型とか、すでに用意されてる物を参考にすればわかりやすいんじゃないかな。
Text='Python'
っておけば、文字列オブジェクトが出来る。
見た目のデータとしては「Python」だけなんだけど、その裏に
replace, split, upper といったメソッド(関数)が用意されてるでしょ。
便乗して質問。クラスって、メソッドを(で)使うためのテンプレみたいなもの?
クラス = データ + メソッド
a == bで、かつc != dの時 というif文を一行で書く方法はありますか?
if a == b and c != d:
703 :
701 :2006/06/16(金) 02:25:33
>>702 あれ、単純にand でいいんでしたか。失礼しました。
&だといけたっけPython?Perlは記号なら&&だったような。体育座り2人
データ構造を直感的に理解できない人は クラスも理解できない
,.-‐───-、、, ,r'"´ , ;:, ;: ,:;, ;:, :,;:;:;:;;\ / ; .; .:.:; .; .; .;: ;;:::ヾ / .; ;: ;:;: :; :; :;:;:;:;:゙, / ,,..__ ,, ... .: .: .: .: ;; ;:;;;! l ,,,,_ -ーー─ - 、、 .: .:. :; ; :; ;:;| ,' '"´ ̄  ̄ ``''' . :.: :.::;::;:;;;;! j、、、,, 、,,、zニニ'''ー-,、 _,,, ィ⌒ヽ r'⌒ヾー.イYニ、ヽ、,,、、z=='''"´ .:;;< 7 〉 {{`=ン}='リr゙ー'-`i|"´ .:.:.:.::::j_ソ/ / >‐ イ ヾ_,,ノ .:.:.:::::.:.:ーイソ i il ,,,.;;:;;:.: .、 .:.:.:::::::::/^Y´ \ゞ=''iiiii!!!!!:; ;:`ヾ .:.:.:.:./ .:.:::! V>---‐ ''"⌒ヾ!.:.:.:./ .:.:.:.:.:.| ̄`¨`ー- ゙,`二ニニ´ /.::/ .:.:.:.:.:.:.:./\ ハ ノ/ .:.:.:.:.:::::::/ \ / >---‐''"´ .:.:.:.:.:::::::::::/ \ / /:.:.:.:. .:.:.:.:.:.:.:.::::::::::::::/ /\ ,/ /.:.:.: . .:.:.:::::::::::::::::::::::::::/ / /.:.:.:...:.::::::::::::::::::::::::::::::::::/ / / /:.:.:...:.:::::::::::::::::::::::::::::::::::/ / /
>>704 &でもいけるのは、昔True, Falseがなくて1, 0を返してた頃の
名残りじゃねえの?
SQLiteの開発者がコアメンバーに入ってるTclでも時期8.5では SQLite搭載はしない予定なのに本当にすんの?
>>708 SQLiteを組み込むのにSQLite開発者の意向は関係ない
pysqliteを自分で入れればいいじゃん。
終了する命令は、sys.exit() しか無いでしょうか? IDLEごと終了してしまうので動作チェックがしにくいです。
>>708 php にはとっくの昔に入ってるけど、php には sqlite のコアメンバーいるの?(w
>>709 そうじゃなくて、近づきすぎないほうがいいような気がする・・・。
>>712 PHPはMySQLとの関係を切った結果だろ
>>695 俺が一番最初に理解できた考え方は
クラス…手引書
インスタンス…手引書を読んだ人間
コンストラクタ…手引書を読むと同時に最初にやる事
(クラスメソッドとかはとりあえず置いておくw)
「車」クラスの「カローラ」っていうのは微妙だな。カローラも「種類」だからね。
「大工」クラスの「山田さん」とかでどうか?
716 :
デフォルトの名無しさん :2006/06/17(土) 00:20:36
すみませんが、質問です。 Rubyを使っている者ですが、Pythonも使えるようになりたいのです。しかし Pythonの流儀が分からなくていろいろ躓いております。今回うかがいたいのは、 Rubyのブロックつきメソッドのような機能を、Pythonではどうやって実現する かです。 これは、例えばプログラマがリソースの解放など決まりきった処理を書かずに すむ、便利なものですが、該当するものがPythonにあるのか、良く分かりませ ん。標準ライブラリには無いのでしょうか? もし無いなら、Pythonではそういうものは、システムが用意すべきものではな く、プログラマがテンプレートメソッドパターンで個別に実装するべきものと 考えられているのでしょうか?
>>716 君の第3段落でほぼ正解。実装パターンはいろいろあり得ると思うが。
勝手に「決まりきった処理」と定義したRubyはそりゃ流行らん罠。
719 :
716 :2006/06/17(土) 00:46:57
ありがとうございます。確かに実装方法は、Javaのようなテンプレートメソッ ドではなく、クロージャをそのまま渡したほうがPythonらしいですね。 Rubyと比べてPythonは、プログラマに対して厳しいなあ、と思います。暗黙の 処理やデフォルトの変数が無い場合が多く、プログラマがすべてを明示的に書 く必要があります。その代わり、コードの可読性は確かに高まるようです。 RubyとPythonは同類項でくくられることが多いのですが、考え方はまったく違 いますね。とても興味深いです。
そもそもpythonは科学者向けの言語なので二番煎じプログラマに受けが良いrubyとは一線の画するのだが。
暗黙のホゲホゲが沢山埋まってるような言語は、プログラマとして俺は好きじゃない。
723 :
716 :2006/06/17(土) 01:16:44
確かにPythonの良さは、私のような初心者には分かりにくいような気がします。
使い始めたばかりの印象で恐縮ですが、
・Ruby … 薄めたLISP
・Python … 薄めたHaskell
という感触があります。
私はLISPが好きだったのでRubyが気に入っていたのですが、Haskellを齧って、
急にPythonが気になるようになりました。同時に新山ゆうすけ氏のRuby批判や、
↓の文書のLISP批判が、やっと何を意図しているか分かったように思います。
http://practical-scheme.net/trans/IsPythonLisp-j.html まあ今も、RubyもLISPも好きなのですが。
暗黙のホゲホゲが多い方がプログラマに厳しいと思う。 コードに書いてない省略されてる部分を補完するための 知識と経験が必要とされるから。
よくわからんのう。儂はLispとPythonが好きだがRubyは嫌いじゃよ。
rubyは嫌い。開発者が日本人だから。 pythonは好き。開発者がgoogleの中の人になったから。
そんなミーハーな理由で使っちゃっても良い言語だよな、どっちも。 そういう意味では Haskell は盤石と思っていたが、最近はそうでもない様だ。
>>671 作成したDLLを、Dependency Walkerに喰わせた時、公開関数に、
何が出てきます?
VC.net 2003 + Python 2.3で、以前作ってテストした環境では、
「'init' + モジュール名」が公開関数として現れてました。
ドキュメント化されてれば暗黙じゃねーだろ。意味不明
>>729 >ドキュメント化されてれば暗黙じゃねーだろ。意味不明
ソースコードがドキュメントですとか強弁しなかったり、たかだか数千行程度だったらな。
>729 馬鹿か? ドキュメント化されていても、コードに定義や代入文を書かずに使える変数や 作用を暗黙と言っているのだ。ドキュメント化すらされてなかったらバグだろうが。 しかしまぁ、argvや標準入出力すらimportしないと使えないっつーのは最初は驚いたな。
>>711 IDLE 1.1.3 で試したけど落ちないよ?
PyAlaMode で sys.exit() したら落ちたー #落ちたっていうのか? これ…
Idle1.1.2でexit()のあるコードを実行すると Idle含めて全部終了するかダイアログがでた。 もっと古いやつは問答無用でIdleも終了してたような気がする。
>>716 PEP 343: The 'with' statement が君のやりたいことに近いかもしれない
>737 >ベクターフォーマットファイル 勝手に作ったらあかんの?
autotrace どうよ
2.5では,Pythonのアイコンが変わるの?
アイコンを見る限り,ベクターデータのロゴがありそうな予感。
windowsのidleで u = u"あいうえお" print u みたいにすると文字化けるのはなぜでしょうか pytohn 2.3でもpython 2.4でも同じ結果になります 分かる方がいたら教えて下さい
おもしろくない
IDLEが使ってるTkがうんこだから。諦めよう。
>744 >>> u = unicode("あいうえお","shift-jis") >>> print u あいうえお
一手間かけるだけでこのおいしさ、みたいな。
見ろ,745と746がゴミのようだ。
>>748 できるだけ同じアルゴリズムで比較してるみたいだからいいんじゃないの。
あえて言うなら " ".join() 使うんじゃなくて、 for 文の中で print hoge, すればいいと思う。
セパレータ.join(リスト) が毒々しいというか、ちょっと気持ち悪いのは同感だ。 激しく既出だろうけど、 リスト.join(セパレータ) の方法もあっても良かったんじゃないかな
>>753 たぶんだけど、
[...].join(sep) 形式にするなら、リストだけじゃなくてタプルにも欲しくなるだろう。 (...).join(sep)
そうしたら他のシーケンスにもあっていいはずだ。 '...'.join(sep), u'...'.join(sep), iterator.join(sep)
しかしbaseseqenceのようなクラスがないので、シーケンス型ごとに個別にメンテナンスが必要だ。
sep.join(seqence) なら実装もメンテナンスも1ヶ所で済むので、こちらの方がよい。
と言うことだと思う。
join()はシーケンスを与える処理なのだから シーケンスのメソッドはjoined()にするのがいいと思います!!
>>754 stringもsequenceなわけだが。
対称性が崩れなくね?
>>> [1, 2].joins([10, 20, 30])
[10, [1,2] ,20, [1,2] ,30] <--- ナニコレ(wwwwww
(a) string has a sequence と (a) string is a sequence では意味が全く違う。
exitが組み込みじゃないのは意外
raise SystemExit
GUIプログラミングを初体験していこうと思ってるんだけど tkとwxWidgetsってどっちのほうがお勧め?
tk
qt (ぉ
とりあえずTkinterでいいんじゃね? 丁寧な解説サイトもあるし。デフォルトで入ってるし。
Tixを使ってしまうとpy2exe通らないので困る
Rpy(統計言語R の pythonラッパ) ってどなたか使ってますか? R 2.3.0 + Rpy 0.99.2 + python 2.4.3 on FreeBSD 6 なんですがテストがこけます。 Rpy は R 2.3.0 でのバージョン応答変更について 一カ所バージョン確認部分を誤魔化してインストールしてます。 % cd tests && python testall.py RHOME= /usr/local/lib/R RVERSION= 2.3.0 RVER= 2030 RUSER= /home/hoge Loading Rpy version 2030 .. *** caught segfault *** address 0x2a6c, cause 'unknown'
[768 続き] Traceback: 1: .Call("R_initMethodDispatch", as.environment(where), PACKAGE = "methods") 2: initMethodDispatch(where) 3: ..First.lib(libname, pkgName, env) 4: fun(...) 5: try({ fun(...) NULL}) 6: runHook(".onLoad", package, env, package.lib, package) 7: loadNamespace(package, c(which.lib.loc, lib.loc), keep.source = keep.source) 8: try({ ns <- loadNamespace(package, c(which.lib.loc, lib.loc), keep.source = keep.source) dataPath <- file.path(which.lib.loc, package, "data") env <- attachNamespace(ns, pos = pos, dataPath = dataPath)}) 9: library(package, lib.loc = lib.loc, character.only = TRUE, logical = TRUE, warn.conflicts = warn.conflicts, keep.source = keep.source, version = version) 10: require(pkg, quietly = TRUE, warn.conflicts = FALSE, character.only = TRUE, save = FALSE) 11: .First.sys() Possible actions: 1: abort (with core dump) 2: normal R exit 3: exit R without saving workspace 4: exit R saving workspace
win32allの初歩的な使い方が書いてある日本語サイトないですか?
pyQTはライセンス関係がややこしそう・・・
pygameでガチ。
rlcompleterつかってタブ補完効く状態でタブ入力するのってどうやればいいん? 文頭でのみタブ入力になればなおいい。
pythonに限ったことではないですが、日本語を含むスクリプトを書く際に最も使用するコーディングはなんですか?
全角スペースでインデントしないこと
そりゃ確かに。ワロスw まあ、ホントに聞きたいのは文字コードっぽい気もするけど。
utf-8を使えば全部解決ですよ
soudesune
俺はeuc-jpばっかりだ。
私は、WindowsでPythonWin使ってるから、ShiftJIS系が多いな。
781 :
デフォルトの名無しさん :2006/06/22(木) 10:30:36
そんなこんなで2.5β1来ましたよ
2.5って何が変わるの?
小数点下1桁かな
if condition: x = true_value else: x = false_value 上記のif文が、一行で書けるようになります。 x = true_value if condition else false_value あとよろしく
>>788 今でも一行で書けるわけだが
x = condition or true_value and false_value
これも一行で書けるバージョン。 x = [false_value, true_value][int(condition)]
他に何をやれっていうんだよ
まずは翻訳をしろ。
抽象的な質問で恐縮なんだけど、「いかにもPythonらしい」プログラミングっ
て、どんなものなんだろう?
自分にはそれが分からない。ある程度使い方は分かったつもりなんだけど、
Pythonの特長を生かしているという気がしない。て言うか、特長って何だ?
リストや文字列を「シーケンス」として統一的に扱えること?あんまり特長と
いう感じがしないし、それに繰り返し構造は他にイテレータやジェネレータも
あって、あんまり統一的じゃない。string.join()のような、引数にシーケン
スを取る関数は、イテレータは受け取れない。
ジェネレータはちょっと面白かった。手続き化された遅延リストという感じ。
http://www.unixuser.org/~euske/doc/python/recursion-j.html だけどこれはPythonの第一の特長ではなく、周辺的なものじゃないだろうか。
メタプログラミング?関数プログラミング?IBMのサイトに「魅力的なPython」
という一連の記事があるけど、どうも「Pythonでここまで出来ますよ」と言っ
ているんであって、Pythonの本領とは思えない。大体こんなのは、Rubyだって
JavaScriptだって出来るじゃないか。
期待が大きすぎたのかもしれない。
http://www.gembook.jp/tsum/page.pys?wiki=How+I+lost+my+faith LISPより生産性が上がるなんて、すごい言語だと思った。きっとHaskellを一
般向けにしたようなものじゃないかと想像した。だけど今のところ、特に特徴
の無い、型なしのオブジェクト指向言語にしか見えない。
>>797 一体何をしたいのだ?何を作りたいのだ?
青い鳥か?
799 :
797 :2006/06/23(金) 14:26:03
私には特徴の無い言語にしか見えないのに、Python界隈では「Rubyは大嫌い」
「Pythonらしい書き方」「生産性激増」とみんなが言っている。言っているの
に、それが何なのか、見ても全然分からん。
Pythonには何か私の知らないすごい秘密があるんだろうか。煽りじゃなくて、
真剣に分からん。Pythonの何が皆さんをそこまで惹きつけているのか。
それまでPerlしかなかったから、スクリプト言語で普通にキレイに書けるだけ
で、もう十分に唯一無二のありがたさがあったんですよ、というオチなんだろ
うか。それじゃあんまりガッカリである。
>>798 いや、私は普通に使いたいだけだけど、ここで期待しているのは、私をギャフ
ンと言わせること。
「おお、これは確かにPythonにしか出来ない、Pythonらしいコードだ!こうい
うのを知ってたら、ほかの言語をメインで使う気にはならないよなあ」と思わ
せるような例。サンプルコードがあればなおよし。
言語仕様に真新しさはあんまりないよ。 個人的にpythonはモジュールの取り扱いがかなり楽なところがよい。 作るのも使うのも調べるのも、かなり直感的にわかりやすい。
クラス&イテレータ/ジェネレータで、そのままループにかけられる カスタムコンテナを作りやすいのは特徴かもな。 使う局面は少ないけど。
>>799 PythonにあってRubyにないもの、それは「安定性」。砂のお城と日本住宅ぐらい違う。
うまく動かないときに処理系を信頼できるというのは大きい。
803 :
797 :2006/06/23(金) 14:36:59
なんですか、皆さんのこの温度の低さは。 やや煽り気味に長文を書いた私がアホみたいではないですか。 「特徴は無い。あっさり素直に書けるのが特長」だったら、Javaと変わらんで はないですか。今までの宗教論争はなんだったのだ。
だって普通なところがPythonのいいところだもん。
806 :
797 :2006/06/23(金) 14:56:27
おーけー、普通に安心して書けるのが良いところ、というのは分かった。
マクロや継続やモナドみたいな飛び道具を期待していた私は浅はかであった。
「普通」というもののありがたみは、Javaで十分理解しているつもりだ。
Javaのおかげで、プログラマは瑣末な文法論争から解放され、デザパタや設計
という、より抽象的なレベルの思考に集中できるようになった。
では、Pythonの登場がもたらしたものとは何だったのだろう?何がこの特徴の
ない言語に「LISP以上の生産性」を与えるようになったのだろう?
また、少し話は反れるが、 Alan Perlis[訳注1] はかつて、「プログラミン
グについての考え方に影響を与えないような言語は、知る価値はない」と言っ
た。
http://www.yamdas.org/column/technique/21-daysj.html Pythonが人間の思考に与える影響とは、なんだろう?
807 :
デフォルトの名無しさん :2006/06/23(金) 15:03:04
他人の言葉に振り回されてるだけだな
808 :
797 :2006/06/23(金) 15:08:56
>>807 わかった、君の言葉には振り回されないようにするよ。
安定性ってなんだ。抽象的な言葉で煙に巻こうとしてるだけだな
>>809 安定性 : コアダンプしていつの間にか落ちてたりしないこと
「煽りじゃない」とか書いて明らかに煽ってる 797 なんて相手にしないのが良いよ。 どうせどこかの工作員だろ。
ま、2chで3行以上のレスは読む価値がないというのがまた証明されてしまったな
813 :
797 :2006/06/23(金) 15:31:28
すまん。釣りレベルが低すぎた。
なんか夢見がちな奴が来てたのか…かわいそうに…
797って平安京ができた年だよね。
青い鳥を探して下さい。僕の幸せにはあの鳥が必要なのです。
>string.join()のような、引数にシーケン >スを取る関数は、イテレータは受け取れない。 そうかなあ。 まずPythonをべんきょうしれ。
Macintosh SEのハイパーカードの中に青い鳥がとんでたよ
820 :
797 :2006/06/23(金) 15:50:45
pythonの方がJavaやC#やC/C++より素早く分かりやすいソースが書けるな。個人的に。 また、モジュールがこれでもかってぐらい豊富なので、やりたいことがすんなり出来る。 ただ、GUI関係をPythonでやるのは無謀。ポトペタツールが出れば別だが。
煽りたいなら Ruby でやった方が喰いつきがいいよ、たぶん
コピペするときにインデントが崩れたりするとイヤン 最近PythonCardでまったり遊んでる。
マジレスすると、生産性というか、初心者がすぐに無料で簡単にプログラミングできるってことじゃないのかな。 (いきなり3Dゲーム作りたいとかいうのは別として) だから、他の言語がそこそこ使えたり、プログラムの学術的な意味や価値を求めてる人にとっては これといった目新しいメリットは無いんじゃないのか?
バランス感覚。 言語としての。 これにつきる。 ぱっと見は普通に見える。 でも使うと手に馴染む。
827 :
797 :2006/06/23(金) 16:53:30
何かPythonに否定的なコメントが続くなあ。少々悲しくなってきた。
http://www.gembook.jp/tsum/page.pys?wiki=How+I+lost+my+faith > 私のGoogleでの経験には企業秘密が含まれるので全てを明らかにする事はでき
> ないが、要点はこうだ:私は生まれてはじめて、Lisp以外の言語でも同じよう
> に生産性の高い人々に囲まれている。私は天狗の鼻をへし折られ(彼らは何度
> となくへし折らなければならなかった…もしGoogleの人々がこれを読んでいた
> ら、ごめん。)、いやいやながら他の言語を本当に勉強すると、*私の* 生産
> 性もLispの場合よりも高くなった。例えば、現在ではWeb開発にはPythonを使
> 用している。
> GoogleにはPeter Norvigもやって来たが、彼もまたLispを捨て去っていた。
> (私はNASA時代にPeterとこの点について話し合ったことがあった。当時、彼
> はもうLispを見捨てていて、私はそれを痛ましく思ったものだ)
これほどの生産性が、少なくともGoogleではPythonによって生まれている
らしいのだが、それが本当に「バランス感覚」だけによるものなのか。
>>827 腐った煽りやめれ。否定的なのはおまえだけだよ。いいかげん去れ。
Python だけが仕様で可読性が保証されている。 生産性云々は人間側のスペックに依存するものなので何とでも言える。
教祖の気分でウンチ仕様が紛れ込むかもしれない言語なんて使えないです Javaのほうが100万倍ましです
プログラムする人ってもっと自発的に解を見出す人が多いのかと思ってたが…
うだうだうだうだと
>>797 みたいな人もいるんだな…
よくありがちなコメントだと思うけど、 Perlからpythonに流れてきて、自分が過去に書いたコードが 一読しただけで何をしているのか理解できることに感動した。 そういう意味で、Perlと比べて生産性(保守性)が優れていると思った。 もちろん読みやすいだけでなく、書きやすくもある。 もう少し日本でも普及して欲しい。
ちょっと質問なんですが、 WindowsXPで、現在のユーザーのホームディレクトリのパス (・・・\Document and Settings\USERNAME) を得るにはどうしたらいいんですか? os.getcwd()だと実行中のスクリプトがあるパスになってしまいます。
834 :
797 :2006/06/23(金) 17:18:04
ごめん。 なんかうだうだと長文を書いて、具体的な論点をはっきりさせないで独り言を 書いているので分かると思うけど。 釣りなんだよ。
os.path.expanduser('~')
>>832 というか、Perlは訓練された人でも読みにくい罠
OOPがまともになるPerl6はいつになったら出てくるんだ。
話の流れをムシしてしまってすみません。 標準モジュールのソースコードが読みたいのですが、どこにあるんでしょうか?
Pythonへの否定的な意見を知りたいならRubyスレへどうぞ。 ここで聞いても出てくるわけないじゃん。
>>840 OSによってまちまちだけど、
Windowsなら {インストール先}\Lib にある。
他のOSだったら他のひとよろしく↓
>>> import webbrowser >>> import pickle >>> import os >>> webbrowser.open('file://'+os.path.split(pickle.__file__)[0])
fooとbarの代わりにspamとeggを使うのがpython流
中程度の入試だと、狙われるのは飛鳥浄御原宮とか長岡京の方だったような。
PythonはVBと並んで生産性が高い
VBってスクリプト言語だっけ?
PerlやRubyは便利なものを沢山取り込んで 自由なコードが書けるようになってる …がその代償として書かれたコードを読むのは辛くなってる 特にPerlは暗号じみたコードが平気で出回ってるわけで Pythonはコードを読むことに関して抜きん出てるんだよね
>>849 VBはスクリプトじゃないけれど、VBSはスクリプトン。
>>851 どもっす。VBとVBSとVBAの違いがわかんねっす。
スレ違いだから答えなくていいっすけど。
スクリプトって何だよ。ネイティブコンパイルできなければスクリプトなのかよ。
854 :
797 :2006/06/23(金) 21:51:10
質問を続けてきたが、どうもスレが荒れてしまった。そのことについては、正
直、お詫びをしたいと思う。荒れやすい話題であることはある程度分かってい
たから。
また残念なことに、疑問が解けたとは言いがたい。私はまだ諦めてはいない。
質問をここでまとめ直すので、まだ倦んでいない方に、時間があいても良いか
らお教えいただきたい。
・Python で生産性が高まるという話があるが、それはどの程度に普遍的か。
またそれは主に何によるものか。
・Python の機能の中で、いわば「玄人向け」のものは何か。
後者については、そんなものはないという論調だったが、私はやはりもう少し
問い続けたいと思う。
http://practical-scheme.net/trans/IsPythonLisp-j.html この記事によるとPythonは、フェラーリの性能とファミリーカーの使いやすさ
を併せ持った言語、ということだった。私が知りたいのは、Pythonのそのフェ
ラーリ的な部分である。俗っぽく言えば、他言語のプログラマに「Pythonなら
こう書ける」と自慢できるような部分だ。
私は決してPythonの悪口を聞きたいのではない。これだけ多くの専門家に支持
されるからには、必ず何かがあるだろうと期待しているのだ。
長文しか書けないのは、 まだまだ釣り修行が足りないからだ。
856 :
797 :2006/06/23(金) 21:58:56
少しだけ補足。 今までにいただいたご回答の中によると、Pythonの良さは主に、可読性・保守 性の高さ、ライブラリの多さ、そして書いていての気分の良さと、いうことだっ た。 可読性、保守性の高さ、ライブラリの多さならなら、同じ理由でJavaを愛して も良いはずだ。しかしPythonistaがJavaを愛しているという話は聞かない。こ れはPythonを使い続ける理由であって、Pythonにハマる理由ではないと思う。 またPythonは書いていて気分が良い、というのは、正直に言うと私にも分から なくもない。しかしそれを前面に出すのはどうかと思う。LISPなどのマイナー な言語のヘビーユーザは、皆その言語の中毒性を感じている。それは結局、そ の言語が彼に向いていたということでしかないと思う。
言語なんてどれもできることは大して変わらないしね。 あえて言えばこう言うのが簡単に書けるところが好き。 from math import * i = 0 while i <= 8: print e ** (pi / 4 * i * 1j) i += 1
858 :
797 :2006/06/23(金) 22:32:15
> 言語なんてどれもできることは大して変わらないしね。 このセリフはいただけない。言語には明らかにパワーの差がある。 VBやPHPと、LISPやHaskellの記述力は同じではない。 また、私ならこう書くところだ。副作用は好きではない。 for i in xrange(1, 9): print e ** (pi / 4 * i * 1j) まあprintも副作用なのだが。 しかし、今までで一番、私には分かりやすい説明だった。コードを添えていた だいたのが大変ありがたい。初めから、「Pythonならこう書けるぞ!」という 自慢をいろいろしてください、とお願いするべきであったか。
頼むからちょっとは考えて書いてくれ 整理せんでだらだら書かれたり、後からいろいろ追加されたら、 答えようとしてる人すら答える気が失せるし、 あおり気味に書いてたらそれなりの扱いを受けて当然だし
というか、既に読む気がしないので飛ばしてる。
なんだか変な人が湧いてますねw 一体何をしたいんでしょうか?
862 :
797 :2006/06/23(金) 22:57:50
>>859 すまないが、こちらも必死に考えて書いているのだ。何を書いても意図が伝わ
らないので、皆さんの反応を見て、手を変え品を変え、切り口と表現方法を変
えているだけだ。
煽り気味にしたのは、それが2chの流儀かと思ったからだ。面白くてやってい
るのではないので、煽らないほうが良いなら、こちらもそれに越したことない。
質問の内容は最初から変わらない。「Pythonらしい、パワフルなコードとは何
か?」だ。ただ、同じ内容を、こう問うた方が話が早かったのだろうと思う。
「Pythonならこう書けるぞ!」という自慢をしてください、と。
だいたい2chまで来て何で長文読まないかんのだ。 しかも一日で新着64件ってどーゆーことよ。
個人的に、Pythonが生産性を高めていると思うところ
・括弧(特に中括弧)を極力打たないで済むのでコーディング作業が軽快
・括弧が少ないため、ソース眺めたときに縦方向の情報量が増えて見通しが良い
括弧を打つ機会が少ないだけで、コーディングがこんなに軽快になるなんて、と
Pythonを知った当初は関心したのを思い出した。
参考:
http://www.artima.com/intv/speed.html
ウジウジグズグズと長文連投ウザイな 3行にまとめろよボケ
2chの流儀とか子供じゃないんだからいい加減にしてくれませんか?
>>858 >> 言語なんてどれもできることは大して変わらないしね。
>このセリフはいただけない。言語には明らかにパワーの差がある。
なんだよ,結局自分の考えがあって押し付けたいだけとちゃうんか?答えるだけアホらしいわ!
自分の考えっつーかおもっくそポールに影響されてるだけやん。
869 :
デフォルトの名無しさん :2006/06/23(金) 23:23:49
>>862 >「Pythonならこう書けるぞ!」という自慢をしてください、と。
無駄なコードを作る趣味は無いんでね
よく分からん粘着だな。Javaが好きならJavaやってりゃいいじゃん。 どこかのオッサンがフェラーリだとかファミリーカーだとか言ったとかって んな事知らねえよ。そいつに訊けよ。 煽り気味が2chの流儀?普通に馬鹿だろお前。 まず素人の分際で調子ぶっこいて荒らしてすいませんでした、と詫びの一つも入れろ。 そこから仕切りなおしだ。
自分の考えを長文で書いてしまう人は、コードも冗長に書いてしまうのだろうね。
.
pythonが玄人受けする第一の理由はコードの可読性である。他人のコードを読むのが 苦にならない言語であれば、他人のコードから技を盗むことが容易になる。javaは、 あれでもまだ記法の自由度が高すぎる上に規約がうるさすぎて、本質が見えない。
Pythonの生産性が高い理由 ・可読性の高さは生産性に大きく影響する。 ・シフトキーを押す回数が少ないので、入力が楽。 ・docstringがイイ。 JavaよりPythonの理由 ・お手軽。インタラクティブ。
"パイパンが玄人受けする"、まで読んだ。
自分の考えなんてないんだよな。 「他の人はこう言ってるけど、それって具体的に何なんですか?」 って、他人の意見を鵜呑みにして、その裏付けにも他人の意見が必要なヤツ。
漏れは問題解決するために許容できる条件ならPythonでプログラミングする。 言語なんてただの道具だからな、手になじんだ道具を使うのは楽しい。それだけだ。
自分でいろんな言語でプログラムした 自分で考えてプログラムした 自分でPythonを選択した ただそれだけ
敗北者でも使えるから
880 :
797 :2006/06/23(金) 23:54:09
・「どうかと思う」という個人的な感想を書いただけで、だからどうしたと聴いて いないのに、文脈を読んで食いついてしまうのは、さすがにどうかと思う。
調子っくれて延々と煽りいれてるのも、さすがにどうかと思うがな
>>880 何してる?
さっさとトイレの芳香ボールを丸める作業に戻るんだ。
jythonにosモジュールがないのはjavaのせい
JavaではCGIを作るのにも苦労する。 Javaはクソ言語だ。
最近うんこAAを見ないね。 作戦を「言語論争の煽動」に切り替えたのかしら。
単純にアメリカで流行ってるから流行に乗せられてるだけだろ。3年前は はあ?Python?って状態だったのに。
>>887 いや、ぶっちゃけ今もだから。
3年前っていうとRubyが本とかがわさわさっと出て一瞬流行りそうかと思われた時か…。
いつも Python の可読性がネタになりますが、最大の利点は可読性ではなくC/C++ との親和性にあります。既出ですが(過去ログ嫁)
親切に数字コテ付けてくれてるんだから、透明したらいいんじゃね?
891 :
797 :2006/06/24(土) 01:06:46
>>864 リンク先を読ませていただいた。Guido van Rossumが対談で、Pythonの生産性
が高いと語っていた。その理由は以下の4点。
・コードがJavaやC++より簡潔
・少数に絞られた強力なデータ型
・豊富なライブラリ
・型なし
これでは私は納得できない。これはスクリプティング言語の利点であって、
Python独自の利点ではない。また、個々の点でPythonより優れた言語はいくつ
もある。そのバランスが絶妙なのかも知れないが、それは好みの問題になって
しまう。
>>873-874 結局、読みやすく打ちやすい素直な構文がすべて、ということなのだろうか。
>>889 C[++]との親和性が良いのはありがたいが、Rubyも同じことを言っている。
892 :
797 :2006/06/24(土) 01:08:00
さすがにそろそろ諦めることにした。
このスレの「人生の敗北者」というタイトルは、おそらく昔、新山祐介氏がつ
けたものだろう。実際のところ、Pythonをに興味を持ったのは、彼の影響
が一番大きい。彼はもう2chには来ていないらしいが。
http://tabesugi.net/memo/2004/92.html#150242 この議論は抱腹絶倒だった。これは彼が攻められる側だが、彼が立てた2chの
Pythonスレなら、この調子で逆にPythonの素晴らしさと他言語のひどさを聞け
るかと私は期待してしまった。さすがにそれは、虫の良すぎる願いだった。
辛抱強くお答えいただいた皆さんには、心からお礼を申し上げる。皆さんの
「Pythonには何の秘密もない。簡潔で読み書きしやすいシンタックスがすべて」
という言葉を反芻しながら、これからPythonを使って行きたい。
では失礼。
あぼーん多すぎ
>>893 どうやらどっかいったようだ。やっと平和になった。
なんかエラくスレが延びてるなと思ったらw 自分が満足してないから、きっと他人も満足してないんだろう。 という思い込みがある奴が煽ってたのかw
遂に > 「Pythonには何の秘密もない。簡潔で読み書きしやすいシンタックスがすべて」 で思考停止かよ。 2.5系での高速化と組み込み指向(SQLite)を無視したのはいただけませんねー Python *だけ*が C の代替言語として相応しい。他の LL は所詮 LL。この差は歴然。
スルーしなさいって
>>896 バカが
煽りに煽りで対抗してるつもりかよw
煽りに対抗する奴を煽る奴。 それを見てる俺。
まあみんなここでクールダウンだ。 ちょっと落ち着いて鼻でもほじってみよう。
ctypesってどうよ これでウハウハ?
鼻血出た
>>896 学校にLL教室ってのがあったが、関係あるのか?
まあ、797はHaskellスレに沸いてた似非Lisp厨と同一人物でしょう。 放置放置。
Language Laboratory と Lightweight Languageだっけ?微妙なところだね。
906 :
797 :2006/06/24(土) 03:34:32
これでは私は納得できない。
>>892 何と言うか、木々を見て森を見ず、という感じの人だね。
思うに Python の人気は個々の理由もさることながら総合的な評価によるものだよ。
Python のどの部分を取ってみても、Python にしかない、あるいは Python が初めて、
という機能は無いんじゃないかなあ。しかし、(多くの人が言っているように
Python の設計はサジ加減が素晴らしい。機能の取捨選択のバランス感覚の良さと言ってもいい。
残念ながらサジ加減とかバランス感覚というものは定量的には測れないんだけど、
Python をしばらく使っていれば自ずと明らかになると思う。
要するに、Python には大きな過不足がない。これが人気の一番の理由だと思う。
私見ではもう一つ、大きな理由としてC言語インタフェースの使いやすさがある。
既存のC、Fortran、その他で書かれたライブラリを使うための糊付けコード(拡張モジュール)が
とても作りやすい。C言語インタフェース自体がシンプルでよく文書化されている上に、
distutils(構築・配布用ツール)や拡張モジュールの作成を支援する道具(SWIG, F2PY など)も
多数出ている。用例も多数あり、見よう見まねで実行に移せる。とにかく敷居が低い。
結果的に拡張モジュールが多数出回り、Python の価値が高まる。良循環だね。
余談だけど、数値計算の分野では Python が一種のブームになっている。
先日出席した学術会議では実に多くの研究発表に Python というキーワードが出てきて驚いた。
(もちろん俺自身も同分野の研究に Python を使っている。)
会議のチュートリアルの一つも Python と数値計算に関するもので、半分近くの時間を
拡張モジュールの作り方と既存の拡張モジュールの紹介に充てていた。簡単に作れる、使える、
オーバーヘッドが少ない、C や Fortran で書かれたレガシーコードが対話的にも使えるようになる、
逐次のレガシーコードでも Python 側で並列化もできる、等々メリットが多いという趣旨だった。
コンパイル言語の高速性と Python の柔軟性の組み合わせの利点、これも目新しくはないけれど、
既に形成された良循環とあいまって Python 人気に一役買っているように思う。
長文スマソ
> 木々を見て森を見ず ↓ > 数値計算の分野では Python が一種のブームになっている。
青い鳥、どこ?
ctypes使うと、もろに環境依存するかわりに、拡張モジュール書かなくてもよかったりしない?
でめーら、人生の敗北者であるこの俺の安住の地を荒らすなよ!
SWIGは嫌い。 水は低きに流れる、みたいな思想で。
SQLiteの組み込み指向っておかしくね?組み込むならSQLiteそのものを 静的にリンクするべきじゃね?
WCの敗北者共でも使えますか?
water closet?
BlizzardのWarCraftとか
質問です。 def foo(): val = 1 def bar(): print val val += 1 bar() 上のコードではfoo()の実行時に「print val」の行でエラーになります。 「val += 1」をコメントにするとエラーは出なくなります。 barの中からは、fooで定義した変数は参照はできますが、書き換えることは できないのでしょうか?
渡せばいいじゃん
>>917 書き換えはできないです。そういう言語仕様です。
でも、例えばvalがリストだったとして、
val.append(1)とか、そういうことはできます。
>>918-920 レスありがとうございます。
残念、仕様でできないのなら仕方ありません、ほかの方法を考える事にします。
スコープ内で新規に代入した変数は新しく定義されるのね。 変数宣言が要らないことの弊害だけど, 害よりも利点が多いから別にいいと思う。 迂回する設計手法はごまんとあるわけだし。
話は変わるが、変数宣言だけはあってほしかった気もする。 うっかりものなので、これが原因のバグがなかなか減らせない(・_・、) (abbrevすればいいんだろうけど、打ったほうが早い場合も多いので)
ほとんどの場合、一番内側と一番外側のスコープだけを考えればよいというのは、 なかなか良い割り切りだと思うよ。Cのようにブロックでスコープが作られる言語だと 不便だろうけど、Pythonはそうではないので。
>>926 LL教室なんてどこにでもあるだろ。
もしかしてオッサン?
引数を渡す。 戻り値を受け取る。 これがめんどくさいならプログラミングなんてやめちまえ。
>>917 君はカウントアップするクロージャを返したいんじゃないのかな?
そういう前提で、ちょっとおせっかいを。見当違いだったらごめんね。
まず、リストを使えば、Pythonのクロージャでも実現可能。汚いけれど。
def foo(n):
s = [n]
def bar(i):
s[0] += i
return s[0]
return bar
だけどPythonでは、クロージャじゃなくて、オブジェクトを返すことが
推奨されている。
http://practical-scheme.net/trans/IsPythonLisp-j.html class Accumulator:
def __init__(self, start):
self.val = start
def incr(self, amount):
self.val += amount
def decr(self, amount):
self.val -= amount
def getValue(self):
return self.val
自分の状態を書き換えるクロージャは、LISP方面で発祥し、目下 Rubyや JavaScript方面で大人気だけど、実は良いことばかりではない。 現代的な関数型言語では、このようなクロージャは 「参照透明性がない」 として、嫌われている。
難しいことをズボンのチャック全開で言ってる人,みたいな。
>>928 実はリアルでそういう奴らがこの世にはうようよしているのだ。
「コボラー」と言ってな。
933 :
デフォルトの名無しさん :2006/06/25(日) 09:46:19
Python始めました。超初心者の質問で申し訳ありませんw。 テキストで書かれた、ファイルリストから、キーワードを検索し、連想 配列に追加させたいと思っているのですが、最後の一つしか残りません。 上書きされているようです。追加できる方法を教えてください。 #! /usr/bin/python import re import sys f=open('./LS_CHIP.vcd', 'r') while 1: s=f.readline() if s == "": break if re.match("\$var", s)!=None : work = s.split() sigmark = dict() sigmark[work[3]] = work[4] # print sigmark.items() f.close() print sigmark.items()
>>933 sigmark = dict() を while の外に出す。
>>933 ループのなかで毎回,初期化してるからなぁ。
sigmark = dict()
936 :
933 :2006/06/25(日) 10:22:39
934さん、935さんありがとうございました。 うまくいきました。 初めてのプログラム動作で、感動しました。
937 :
デフォルトの名無しさん :2006/06/26(月) 23:06:13
おーい、いつの日にか Visual Studio の IDE で Python が扱える日が来ますか??? IronPython ってすごいっすね。デモムービー見たけど。
VSのβだとPython使えたような
939 :
デフォルトの名無しさん :2006/06/27(火) 10:42:46
ActiveState が出してた Visual Studio .NET 2003 向けの Python プラグインってもうなくなっちゃったんだよね。
python で フレームワーク(Trubo Gearsとかweb.py)を使わずにサイトを構築する際、 MVC指向で製造するためのサンプルのようなものがどこかにありませんか? MySQLdb は使えます。
探せ。無ければ自分で作れ。
自分の挙げているフレームワークをサンプルにしようという発想はないのか。
ないのか。
次スレの季節到来
今度はマシなスレタイで頼むぞ。
このスレ速度では980ぐらいで次スレたてるのが自然な流れかと。
Pythonの敗北者でも使える人生のお勉強 Part10
948 :
デフォルトの名無しさん :2006/06/27(火) 22:50:37
【飲尿】マニアにもつかえるPythonのお勉強【食糞】
>>948 そんなのいやだよぅ。
【蛇遣座】あなたの理想に巻きつくPythonのお勉強【金運上昇】
>>948 そんな発想ができるあなたは相当なマニアですね。
+1 シンプルかつ明示的なのがいちばん。
本家だけでええやん。 (古い情報ばかりの)日本語サイトが欲しかったら個別にググればええやん。 (本家のWikiとは比較にならない)まとめWikiなんてこのスレで対応すればええやん(人少ないし)。 とてもシンプル。
中括弧がなくても使えるpythonのお勉強 Part10 ‥‥‥無理あるなやっぱり。
pep-3103.txt スイッチ構文(((;゚Д゚))ガクガクブルブル
「人生の敗北者でも使える」って、いいタイトルだと思うけどなあ。 伝統もあるし。
>>959 俺のような人生の勝利者を排斥してるようで感じ悪い
そろそろみんな 内省的であることと自虐的であることの違いについて 学んだ方がいいと思うぞ
伝統は壊すべきだ。 Python2.5でもそう言っている。
【敗北者と】Pythonのお勉強 Part10【一緒】
964 :
デフォルトの名無しさん :2006/06/29(木) 07:15:48
人生の敗北者にも Python はほほえんでくれる、 そう思っていた時期が俺にもありました。
966 :
デフォルトの名無しさん :2006/06/29(木) 10:00:07
敗北者だからいいんです・・・ 取り残されても・・・
967 :
デフォルトの名無しさん :2006/06/29(木) 11:10:32
splitの引数無しの動作がおかしい。
おかしいのはお前の目だ。よく見ろ!
こっちで言っておこう。次スレ1乙
人生の敗北者というキーワードは必須だろ・・・
次のスレが埋まりそうになったら好きなスレタイで立てればいいと思うよ
新参のニワカには「人生の敗北者」の醸し出す 雰囲気のよさがわからないのだ。
はいはい、負け犬負け犬
975 :
デフォルトの名無しさん :2006/06/29(木) 22:05:25
最近Pythonかじり始めたのですが、win32でActivePython2.4.3使っています。 スクリプトが実行されたときに最前面のウインドウのハンドルを取得したいのですが あちこちで調べながら、 import win32api hwnd = win32api.GetForegroundWindow() と書いてみたのですが、GetForegroundWindow が見つからないと怒られます。 なにかよい解決策はないでしょうか?
977 :
976 :2006/06/30(金) 10:36:48
自己解決しました。win32gui に入ってるんですね。
>>937 >>938 > おーい、いつの日にか Visual Studio の IDE で
> Python が扱える日が来ますか???
最新のVisual Studio SDKを導入して下さい。
>979 いいえ、それはトムです。
埋め立てたほうが良い?それとも放置したほうが良い?
埋め埋め 残っててもしょうがねー
pythonとwhitespaceって似てる?
ホワイトベースとpythonなら似てる
アルテイシア、白蛇を降りろ
凹凹凹
ξ
ζ
ω
まじめにやれ。
#! /usr/bin/env python # のこり8行でなんか作れ
pass
Reverse
import sys, os, re, time
996 :
デフォルトの名無しさん :2006/07/06(木) 11:27:50
for line in sys.stdin:
>>995 import sys
import os
import re
import time
それ何てPEP?
raise SystemExit
そして2.5へ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。