以上
┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ おっぱい!おっぱい! └─┘
「ここでの議論・3大要素」 "幸福", "自由", "美徳" 幸福の最大化 自由の尊重 美徳の涵養
python.rby.jp
python.rby.pl
python.ruby.jp
>>1 乙なり
なんで3DCGツールってpython採用してるの多いんだろうか
ドジャンゴ脳はこれだから…。
http://twitter.com/yukihiro_matz/statuses/29317109670 yukihiro_matz: 英語圏でRubyとPythonを比較する記事を見ることが少なくなってきた
のは、RubyとPythonでクラスタが分離してきたからか。逆に日本語でRubyとPythonを
比較 する記事を見かけるのは国内でのPythonの地位が向上したからか。
∩_
〈〈〈 ヽ
____ 〈⊃ }
/⌒ ⌒\ | |
/( ●) (●)\ ! !
/ :::::⌒(__人__)⌒:::::\| l
| |r┬-| | / <こいつ最高にアホだお
\ ` ー'´ //
/ __ /
(___) /
∩_ 〈〈〈 ヽ ____ 〈⊃ } /⌒ ⌒\ | | /( ●) (●)\ ! ! / :::::⌒(__人__)⌒:::::\| l | |r┬-| | / <こいつ最高にアホだお \ ` ー'´ // / __ / (___) /
マルチするお前モナ
またガラパゴス化!
pythonしょぼすぎワロタ(ww
pass
日本のPythonがドジャンゴ脳に浸食されているの?
pass
信者とか言っちゃう時点でRuby教徒乙 Pythonと同列で扱われてると勘違いしてるのは 同じ日本人として恥ずかしいわ、それも言語開発者まで。
くだらない話はやめて、Python のお勉強しようよ。
俺Pythonエバンジェリストだけどなんか質問ある?
余計なことはしないでくれるかな。 必要な人は勝手に使うと思うから。
pass
>>24 Ruby教徒とか言っちゃう時点でPython信者乙
くだすれが本スレ化してここがくだらないすれになっているとはこれいかに
>>30 それでも難しめの質問が来たらそれなりに対応してるから大丈夫
たぶん
[[0]*5 for _ in range(5)] みたいに参照しない変数の名前を_にするのって一般的?
Haskell屋さんか何か? 自分は気にせずxとかにしてるけど
(_, foo, bar) = tup とか便利だし pylintやらpycheckerが_ならUnused variableの警告を出さないんだよね
>>32 参照しない変数を_にするのはむしろ推奨されてると思ってた
……けど公式ドキュメントで言及されてるのは見当たらない
ソースはどこなんだろう
そういえば foo = 0 foo, foo = 1, 2 # foo → 2 みたいなコードが通るようだが多重代入の評価順って常に先頭からかな?
はい
39 :
32 :2010/11/03(水) 13:13:17
そうそう、ふと出会ったPythonのコードで_使ってるの見て unused variableも出なくなるし便利だと思ったんだけど ドキュメント類でそういうの見たことがなかったからどうなんだろうと ありがとう
>>34 (foo, bar) = tup[1:3]
じゃだめなん?
>>34 のほうがtupleの第一要素はいらないという意図が明確になるし
添字でミスることもなくなるから望ましいと思われ
>>40 それなら
(foo, bar) = tup[1:]
で十分だし、「先頭を捨てる」意図をよりはっきり示せるんじゃないの
が、tup[1:]の時点でコピーが発生するので、2度コピーを行うことになるよ
Pythonはimmutableなtupleのスライスであっても愚直にコピーするので
スライスはO(n)
それいつのはなし
45 :
デフォルトの名無しさん :2010/11/05(金) 04:34:17
Rubyのが明らかに簡潔に書けるよなぁ
subprocess.Popen について質問です perl とかで open("cat hoge.txt | grep fuga |", "rb") 見たいな 複数のコマンドをパイプ繋いだものを実行するとき subprocess.Popen の一つ目の引数に 'cat hoge.txt | grep fuga |'.split() を指定しても 次のエラーが出て止まってしまいます OSError: [Errno 2] No such file or directory どうすればよいのでしょうか?
shell=True
>>47 できました!!
ありがとうございました!!!
このスレで質問して本当に良かったです!!!!!
すげーエスパー
問題 関数の引数として値渡しとなるオブジェクトをすべて述べよ
>>50 1. おぶじぇくとぜんぶ
2. 述べよだと?てめぇが述べろよ!
3. もう秋田
質問、初心者です for i in range(200): try: print i こんな感じの例外処理をしましたところ unexpected indentation error と怒られました 余計なインデントがある、あるいはtabとスペースインデントが混在しているときに起きるらしいですが (この文ではスペース4つですが、)実際はタブのみでつくっていて、そんなはずはないのにエラーが帰ってきます なにがいかんのでしょうか?
おおう、スペースが消えとる tryの前にスペース4つ(実際はタブ一つ) printの前にスペース8つ(実際はタブ2つ) です
exceptかfinallyを書けばいい
まず初めにPythonではTabスペースが嫌われてる そして4半角空白が一般的でエディタ側で設定はPython使いの常識 単純にエディタをまともな物にすればそういうエラーは出ない筈 それに私はエスパーでないので細かい例外は分かりません
exceptは書いてる?
except書いたら通りました 勉強不足でした、すみません
>>52 たしかにその例なら
>unexpected indentation error
じゃなくて、「exceptまたはfinallyが必要です」というメッセージにしてほしいところだな。
うちだとこれが出た IndentationError: unexpected unindent
うわーん、きもいよー >>> a = b = [] >>> a += [1] >>> print a,b [1] [1] >>> a = b = [] >>> a = a + [1] >>> print a,b [1] []
どこが?
>>> a = b = [] >>> a.append(1) >>> print a,b [1] [1]
そうならないようにするのは簡単だけど たしかにきもい
漏れとはなんですか?
このスレで初めて俺が答えられる内容だ。 漏れ=オレ
>>65 だよな
+= の必要な場面では append が正解
ありがとうございました
JavaのVectorでも同じ事が言えるし。MutableでCOWじゃないコンテナ型は防御的コピーが必須。
この文脈でCOWってどういう意味? COWっていうとページメモリの管理(ユーザには見えない)しか思い浮かばないんだが。
>>72 copy-on-write
a = b = [] とかやると write するまでは同じ [] を指すけど
a に変更を加えようとした時点でコピーされて
a と b はべつのものを指すようになる
ということを言いたいんだと思われる
ただそれと上での議論がどう関係あるのかはまったくの
謎
>>> a = a + [1] はリストaとリスト[1]をマージした新しいリストを生成しているから >>> a += [1] の既存のリストaに追加とは異なる結果になるのはふつうだと思うが?
リストに限定するなら a.append(1) と a += [1] では 後者が余分にリストを生成する必要があることを除けば同じ意味という理解でおk?
__iadd__() を実装してる型の場合は、名前の通り += が inplace add ない場合はかわりに __add__() を使い、x += y は x = x + y と同じになる のだと思った
こういうのがあるから演算子のオーバーロードは怖くて使いたくない
しね!
みんなのPython改訂版(第3版)買ったんだけど、正誤表がまとまってるところない? 公式サイトにはないみただけど。
C#使ってて、Python勉強しようかなと思ってる私に、型付けの違いからくる物を除いて Pythonのこの書きかたが良い みたいな物を是非教えてもらえませんか。
>>83 if 3 < x <= 5: みたいな範囲を指定する条件式。
とっつきにくいけど慣れたら便利な内包表記。
めったに使わないけど、使う場面ではとてもクールなfor文のelse節。
後は名前付き引数はC#にもあるけど、さらにシーケンスやマッピングから引数に展開したり
キャプチャできる *x, **y
(^ω^)ペップ!
ヽ( ^ω^)ノ ペップペップ!
89 :
デフォルトの名無しさん :2010/11/10(水) 23:40:27
Pythonがよくわからないし、 インデントでブロックを表現するというきもさのため、 Rubyを使うようにしたほうがいいな
また頭の悪いruby厨か
えっ
RubyはVMが進化したけどPythonはちっとも進化しないよな。 時代に取り残されている感じ。
Unladen Swallowは?
どちらかというと、RubyのVMがやっとPythonに追いついた感じ。 まだ、バイトコードキャッシュをファイルに書いてモジュールの読み込みを高速化する機能が Rubyには無いからたくさんモジュールを読み込むプログラムの起動が遅いけど。
PyPy方面は一歩先んじてる気がする
>>96 Ruby見てるとロード遅い遅いという人いるけど、
バイトコード化しておいておけるだけでも大分違うと思うんだけどねえ
ipython コンソールで日本語unicodeな文字列って print すると u'\ff11...' みたいな感じになっちゃいますが これを読めるようにする方法ってありますか? (コンソールのencodeを指定する?) ipython で駄目なら python コンソールでも...
補足 一応 sys.stdout.write() で unicode_string.encode('euc_jp') を 放り込むみたいなやり方では出来るのは知ってるんですが print も対応してくんねーかなーということでして
repr(hoge).encode('unicode-escape')
>102 print repr(hoge).encode('unicode-escape') なんてすると \ff11 が \\ff11 みたいに もっと読めなく(?)なっちゃいません? 少なくとも print とかでデフォルトで unicode-escape が かかるのを無しにしたいってことなんですが sys.setdefaultencoding するのかな… (それだと site.py でしか出来ないですよね?)
あ,100 で言っているのは言い方を間違えてることに気づきました print unicode_str は既に日本語で表示されてるんです (LANG=ja_JP.eucJP が効いているのか,sys.getdefaultencoding() は euc_jp です) 本当にやりたかったことは string 単体では明示的に encode しなくても表示できるんだから textlist = [u'にほんご',u'あんなこと',...] textdic = [1: u'にほんご',2:u'こんなこと',...] print textlist print textdic みたいなのが "読める日本語" で出来ないかということです 一人でくどくど書いてすみませんがよろしくお願いします
>102 をヒントにもうすこし考えてみたら… textlist = [u'にほんご',u'あんなこと',...] print repr(textlist).decode('unicode-escape') ってやると期待通りの [u'にほんご',u'あんなこと',...] が出来るんですね ちと面倒くさいですが、これだけでもだいぶ作業しやすくなりました 引き続きアドバイスなどあればよろしくです
ごめん間違えてた encode -> decode で正解
>>103 >sys.setdefaultencoding するのかな…
>(それだと site.py でしか出来ないですよね?)
reload(sys);
sys.setdefaultencoding('euc_jp')
Pythonで Helloworld プロジェクトを作成し
実行したところ Console には
http://localhost:8080 と表示されるのですがブラウザ上には何も表示されません。
また、直接ブラウザに
http://localhost:8080 と入力し
実行すると selef.response.out.write('hoge')
とPythonのスクリプトが実行されている様です。
どうすればDebug実行時にブラウザがEclipse上で
自動で起動する様になりますか?
multi
Pythonicじゃない技たち 1. 複数の式を1つの式にまとめる 1.1 リスト、タプルを使う >>> (expr1, expr2, ...) 式の最後の値を返すようにしたいときは >>> (expr1, expr2, ..., exprn)[-1] 1.2 and/orを使う 値が必ず真だと分かっている場合→andでつなぐ 値が必ず偽(値を返さない=None含む)と分かっている場合→orでつなぐ 分からない場合→[expr]のように、1要素のリストにしてandでつなぐ 2. 式の内部で使う、変数のようなものを作る 2.1 lambdaの引数を変数として使う 例: a = Foo();b = a.foo() + a.bar(); のbに相当 >>> (lambda a: a.foo() + a.bar())(Klass()) 2.2 変数を1要素のリストにして内包表記で使う >>> [a.foo() + a.bar() for a in [Foo()]][-1] 3. 無名関数での再帰呼び出し 例えば def fact(n): return n*fact(n-1) if n else 1 fact(5) は、 def fact2(local_fact2, n): return n*local_fact2(local_fact2, n) if n else 1 fact2(local_fact2, 5) と理解できるので、関数の中身からグローバルなシンボルfact2が消せる。すなわち、こうできる >>> (lambda f, n: f(f, n))(lambda f, n: n*f(f, n-1) if n else 1, 5) 他に何か知ってたら教えて
訂正 > fact2(local_fact2, 5) > と理解できるので、関数の中身からグローバルなシンボルfact2が消せる。すなわち、こうできる 誤 fact2(local_fact2, 5) 正 fact2(fact2, 5)
pythonワンライナーの人がそんな感じのTipsを書いてたよ
pythonクックブックにもなんかトリッキーなことあったなあ どういうのか忘れたけど、普通は使うなって書いてあったのなんだったっけ 目次から察するに5.11クイックソートを3行で示す かな
Pythonってどうしてこんなにコードが汚いの?
カスはLLバトルロワイヤルスレから出てくんなよ
誰かH3Dについて日本語でまとめてくれんかな 壁に突き当たる度に英語力の無さが本気で恨めしく感じるわ
>>111 なぜ
>def fact(n): return n*fact(n-1) if n else 1
が
>def fact2(local_fact2, n): return n*local_fact2(local_fact2, n) if n else 1
になるのかわからない。
def fact2(local_fact2, n): return n*fact2(local_fact2, n) if n else 1
ならわかるけど。
>>111 >3. 無名関数での再帰呼び出し
>例えば
>def fact(n): return n*fact(n-1) if n else 1
>fact(5)
>は、
>def fact2(local_fact2, n): return n*local_fact2(local_fact2, n) if n else 1
>fact2(fact2, 5)
>と理解できるので、関数の中身からグローバルなシンボルfact2が消せる。すなわち、こうできる
>>>> (lambda f, n: f(f, n))(lambda f, n: n*f(f, n-1) if n else 1, 5)
この説明はわかりにくいなあ。もっとわかりやすく説明してほしかった。
早漏
>>121 きっちり説明するの、かなり難しそうだったから諦めたんだよ><
一応、説明すると、
なんで変な事しないと無名関数で再帰関数が作れないかというと、
再帰関数 → 関数の内部に自分自身を呼び出す処理が出てくる
無名関数 → 自分自身の名前がない
普通、関数を呼び出すとき、名前を使うけど、そしたら名前がない関数をどうやって呼び出す?
ということになる。
そこで、2.1の、lambdaの引数を変数に使うことを考える。
関数の引数に、自分自身が入っていたら、自分自身に名前がついたことになるから。
そこで、
def fact(n): return n*fact(n-1) if n else 1
に自分自身を入れる引数(local_fact2)を追加して、関数の中で自分自身を直接使わないように変えたのがfact2
def fact2(local_fact2, n): return n*local_fact2(local_fact2, n) if n else 1
ここで、fact2はもはやlambda式で書けて、
fact2 = lambda local_fact2, n: n*local_fact2(local_fact2, n) if n else 1
local_fact2は、自分自身を入れるために追加したのだから、これを使うときは
fact2(fact2, N)
のように使う。fact2が2回出てきて気持ち悪いので、lambda式を変数代わりに使ってまとめると、
(lambda f, n: f(f, n))(fact2, N)
になる。
fact2にlambda式を入れると
(lambda f, n: f(f, n))(lambda local_fact2, n: n*local_fact2(local_fact2, n) if n else 1, N)
になる。
124 :
123 :2010/11/16(火) 15:05:48
> ここで、fact2はもはやlambda式で書けて、 うーん、ここ微妙だなぁ。もともとfactだってlambdaで書けるから。 むしろ大事なのは、fact2が自分自身を知らなくても、 引数がちゃんと教えてくれさえすれば自分自身を呼び出せるようになったことかなぁ。
一言Yコンビネータといえば済む λ計算がらみは挙げていけばキリがないだろう 自然数やcons/carをλで表現したり
Yコンビネータって、聞いたことはあるが イマイチ分からんのだが、Pythonでも書けるものなの? なんか関数型言語でしか書かれないイメージがある
意味的には、Y f = f (Y f) 。 そんなに難解なもんでもないよ。
>>111 のやりかたで不十分で、Yコンビネータが必要になる場合って、どんなんがあるんだ?
正規表現のコンパイルをする際に、その正規表現の対象となる文字列が改行に依存しない場合(一行だけの場合など) 必要の有無に関わらず"(?s)hoge"の形で(?s)フラグを指定してやると、 少なくともCPythonではコンパイル速度に明らかな向上が見られるのですが、 ("hoge"よりも"(?s)hoge"が早い) 1. これはデフォルトの場合.を[^\n]な扱いにするとかの追加の処理が働いているからなのでしょうか 2. 他の処理系でも同様の挙動なのでしょうか(細かい挙動は未定義?) 3. こういったことを調べるのに良い手段があれば教えて頂けないでしょうか
ソース嫁
>>134 あなたに聞いてませんよ、ロリコン野郎。
死ね
確かにロリ嫁ほしいねえ……
せめて常識として映画版ロリータくらい見てくれないかね そんでロシア行って天国と地獄を見てくれ
下手の横好き
仰々しい
ひとにものをたずねるときのマナーとしては 自分の環境のバージョンくらい書くべきだよな
hoge なんつう簡単なマッチだったら str の標準関数が速い。
pythonからWindowsのレジストリにアクセス(読み書き)するにはどんなモジュールを使えば良いですか?
python 2.6でテキストに対するフィルタを製作したくて、手始めにUNIXコマンドのcat的なコマンドを作りたいのですが、 2行以上あるテキストを標準入力(パイプ)から受け取って標準出力に吐き出すためのおまじないなどありましたら 教えて頂けると助かります。環境はLinuxです
146 :
145 :2010/11/26(金) 15:25:29
連レスすみません、catのようにファイルから読み込んで標準出力に連結するのは実装できていて 困っているのはgrepやsedのようにパイプからテキストを受け取って逐一標準出力に吐き出すやり方でした
python cat.py ファイル みたいにファイルをオープンして読み込むのはできていて cat ファイル | python grep.py みたいに標準入力から読み込みたいということ? import sys fp = sys.stdin #open(〜)の代わり でfpを読み込む
import sys for line in sys.stdin: ...
151 :
146 :2010/11/27(土) 00:43:03
遅くなってしまって申し訳ありません 教えていただいた内容で無事次に進めそうです。ありがとうございました
次は tail.py の実装だな
効率よくきれいに書くにはどうすりゃいいんだろ? def tail(fp, n): ls = [] for lineno,line in enumerate(fp): ls.append(line) if lineno > n: del ls[0] for line in ls: sys.stdout.write(line) みたいに何度もappendとdel繰り返すのって効率悪そうだし。
それじゃ tail -f が出来ないだろ
tail -f は finally で
Ruby使う方が楽ですねぇ
のび太よかったわね お友達がいっぱい出来て
>>156 tell( )
stdio の ftell() と同様、ファイルの現在位置を返します。
ここをコピペしてそのまま直し忘れた感じっぽい
修正しておいた。 明日には python.jp の nightly が直る。
ユーティリティのコマンドの再発明ってgolf用の教材だと思ってた
英語版の方は問題ないな 当然か
164 :
デフォルトの名無しさん :2010/11/27(土) 19:02:45
http://speed.pypy.org/comparison/?exe=2%2B35,4%2B35,1%2B172&ben=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20&env=1&hor=false&bas=2%2B35&chart=normal+bars pypy速いな。
UWSCは別に覚えないと駄目か…
時代はRubyだな
いつの時代だよw
Rubyはもう厳しいなw PythonはすでにPerlの代わりに普通に使うようになってきた。
Ruby使わない非国民は日本からでてけよ
Pythonは衰退の一歩だよ。
ruby厨は必至だなあ。日本日本って言うけど、スレタイの日本語も読めないのかよ
Ruby使いは気持ち悪いから海外にいけよ
バトロワスレあらすのヤメロ
175 :
デフォルトの名無しさん :2010/12/04(土) 17:53:41
3.x系への移行にはあと何年かかるんだ?
利用者にはメリット何も無い言語マニアの自己満足には付いていけない>3
Linuxに関して言えばArchやFrugalware、gentoo (unstable)は3.xっぽいね 他のdistroはどうなんだろ
178 :
デフォルトの名無しさん :2010/12/04(土) 19:56:03
3でないと出来ないことが増えてくるまでは使う気にならないね
3kなんて元より趣味で作られたんだから、趣味で遊んでりゃ良いじゃないか
3.3 になったら本気出す
わしのpythonは3000まであるぞ
スライスの三番目の値ってなんでしょうか? やったら↓のような結果になるんですが、よくわからんとです >>> 'abcdefg'[2:4:6] 'c'
>>> "abcdefgh"[1:8:2] 'bdfh'
>>182 あーステップか そんなこともできたのか
サンクス
でもいつかは2.x系がメンテナンスされなくなる時期が来るでしょ。 そうなると、いつかは3.x系に移行せざるを得ない。
10年くらい先だろうね
10年くらい意外とあっさり過ぎるからな
で、そのころには5.xはまだ早いとか言ってるんだろ
3kが出てそろそろ10年経つように思ってたがそうでもないのか? この調子のノンビリなアップデートなら10年後に3kスタンダードも夢じゃない
Djangoが3k対応したら一気に片付くんじゃね?
IPythonが対応したら本気出す
PyPyのPython動かすPythonって元のPythonはなんで書かれてるの?
ちなみに十年前はどの辺りがメジャーだったんですかね
>>193 You know Python which is CPython
afaIk PyPy is on CPython
I dunno what's in it, but know what you must: Read it!
>>186 今だにサポートが切れたphp4が動いているご時世らしいからな・・・
phpもそうだが、バージョンアップしたほうがリスクがある(互換性がない実質別言語)んじゃしょうがないだろう・・。
Perl6...
FreeBSDのportsで入れるpythonはmake configでスタックレスにできるのかな? それっぽいオプションはあるけど
>>197 phpは後出しのくせにバージョン上げすぎだ
しかもその度に互換性を無視してアレを使うリスク高すぎ
スレチだけどその問題が結構大きくうちの会社はPHPを捨てたよ
催促ワロタ
催促してすいません。 しかもお礼のひとつも言わずに… 赤の他人の為にあんな丁寧に解説してくれてありがとうございます。 気を長く、首を長くして待ってますので是非宜しくお願いします。
だがしかしあれを書いたのはRubyistの予感
>>205 こういうのは別に何言語使いでもよくないかな
これ理解したら十分じゃね?
俺も読んだからもう何でも作れるぜ
Pythonで彼女は作れますか?
作れるんじゃね 実際ただのプログラムであるゲームキャラを彼女にするやつっているらしいじゃん
>>204 あれ読んだなら(もちろん実際に試したよな?)、プログラムの編集の仕方と動かし方はわかっただろうし、
何かつくってみればいいと思うよ。
途中でつまづいたり、わからないことがあったら、調べる。
知っている人に聞く。ここでもいいし、初心者スレでもいいし、vipのプログラムスレ、、、は知らん。
ネット(Twitter、IRC、forum、メーリングリスト)やオフ(勉強会)で適当な師匠見つけて教えをこうてみる。
最近こんな人もいたし、むしろやりたいことがあるならけっこうなんとでもなる
自分でWEBサービスを作りたいと思っている人へ
http://anond.hatelabo.jp/20101203150748
駕篭屋の宣伝うぜー
ただでさえレン鯖板で鬱陶しいのに
まぁ、最近は常識のない奴が増えたからな
Pythonで彼女は作れないんですね
男同士で集まりケツ堀りあって喜ぶような狭い世界にいるのでは彼女なんて一生できるわけがない
なんでvipのプログラミングスレがここで挙がってるんだ? ニュース系板の専用スレなんて専門板の底辺が集まった馴れ合い
VIPはニュース系じゃなくて雑談板だよ プログラミングに関するwiki作ってるパートスレあるし この板よりよっぽどマシだけどな
vipでやれウジ虫
ウジ虫以下が何かゆってる
失せろカス
優等なvipperをバカにすんなよ?w お前らなんて親指でこっぱみじんだからなwwwwwwww
ちょwwwwwwwwwwwwww 今ここにwwwwwwwwwww最強のwwwwwwwww俺w様w光w臨wwwwwwwww 食らえwwwwwwwww必殺wwwwwwwwwww グwラwンwドwクwロwスwwwwwwwwwwwwwwwww う は w w w お kw w w w w w w w w w w w w
つ 単一電池
次スレのタイトルはvipperが寄り付かないように 人生の敗北者には縁の無いPythonのお勉強 Part41 でオナシャス
なにそのルーザー臭
おい 貴様らみたいな不細工はk i e r o ID takuya19715 本当にいらん 不細工で性格が悪いとなったらゴ ミ ゴ ミ ク ズ まぁイケメンsと可愛い女の子は来てね 不細工は来るな まぁおまえらはクズな人生を生きればいい 俺は、運がよかったからイケメンになったけど、おまえらは運が悪いから不細工になったんだよ 親を憎むなよ あばよ
2010年うやむやなまま終わりそうなこと 1:月刊python 2:pycon jp 3:お前らの今年中に彼女作る宣言
月刊Pythonなんてやろうとしてたのか Rubyでさえるびまが息も絶え絶えなのに そういえば日替わり標準ライブラリ解説の人の本が出るね
日本ってなんでど素人が本出してるの? 出版社も愚かだねえ
「俺の方がアイツより」って思っちゃう人はたいてい人間性に問題があるので、なにをやっても大成しない
>>234 > 俺のほうがアイツより
それってハングリー精神っていうんだよね。
匿名掲示板でハングリー精神か おめでてえな(wwWwWWWwwwWwWwwwww
Pythonで夕食も作れたらハングリーが解消できるのに・・・
pizzaの宅配ぐらいならできるかもね お金が無い?知らんがな
ハンガリー精神? ハンガリアン記法を使う宗派かなにか?
で、お前ら何作ってるの? 毎年毎年スレ汚してばっかりだね
ワンクリック入信サイト
勉強会に出るのが仕事です
普通にwebアプリだろ
>>240 コマンドライン上で動くソリティアとか作ってる。
但しサブコマンドの解説は一切ないので、俺しか遊び方が分からない。
numpy+scipy+f2py+matplotlib 使って 仕事で使うデータ解析プログラムを書いている
>>235 あんなのよりモバゲーの方がいいに決まってる→反グリー精神
>>214 うわっ、それは知らんかった。
VPS業者のリンク貼ってあったからか。
むこうの匿名ダイアリーでもOpenVZでクソVPSって指摘しても、わかる奴にはわかると言われてたし
気にせず貼ったのがうかつか。
いや、レン鯖板で張られまくってるのを見てる人がいるから余計か。
>>231 >2010年うやむやなまま終わりそうなこと
>
>1:月刊python
>2:pycon jp
>3:お前らの今年中に彼女作る宣言
4 ダンジョー翻訳スプリント
>>231 >2010年うやむやなまま終わりそうなこと
>
>1:月刊python
>2:pycon jp
>3:お前らの今年中に彼女作る宣言
4 ダンジョー翻訳スプリント
大事なことなので
過疎ってるなと思ったらVIPにのっとられてたか はやいとこスタックレスpythonをデフォルトで使えるようにしてほしい
正規表現って難しいね
正規社員になるのって難しいね
Pythonicドザーはエディタ何使ってるの?
[Python Recommended Editor by Editors] x Python + Emacs v Python + Eclipse (PyDev) v Python + PyScripter (Windows) o Python + IDLE (Default) @ Python + Editra Emacs is dropped by badly python-mode. Eclipse is neutralized by IDE which is good for large-scale project. PyScripter is neutralized by IDE which is Windows only. IDLE is gained by editor as default and nice. Editra is granted by editor for Python coded by Python.
Pythonエバンジェリストの俺様はVimだよ
当然秀丸
ed
メモ帳
当然禿丸
gedit
Python使えるエディタってまともなのがないね さくらエディタ、秀丸は和ゴミ芸当
PythonWin
notepad++
> Python使えるエディタってまともなのがないね まともじゃないのはお前の能力だなw
you too の意味 Thank you. <ありがとう> I'm glad to see you. <私はあなたに会えて嬉しい> I know you are crazy about skill xD <まともじゃないのはお前の能力だなw> 全てにyou tooで答えられます。 (Thank) you too. <こちらこそありがとう> (I'm glad to see) you too. <私も〜> (I know) you (are crazy about skill xD) too. <お前こそまともじゃない能力だなw> ×これは間違っています!
強調表示と、選択範囲のインデント/アンインデント機能があれば何でもいいよ
最近だと me too が流行りらしいが
Editraってか、wxのScintilla系のコンポーネントは 日本語のインライン入力できないとかいう話を聞いたような Scintilla自体は問題ないのにな 日本だと、IME+インライン入力対応は当然として 文字エンコーディングの自動判別や変換機能も無いと使い物にならないので それだけでもテキストエディタはある程度限定される気がする
調教の完了したnotepad++最強
結論:PyDev
俺もPyDevだな。遅いPCだと死ねるし、速いのでもちょっと見たいときはvimだけど。
PyDevとか使うって何処の素人よ やべーよそれ
インテリセンンスないと遠くにあるメソッドとかメンバとかどうやってタイプするの いちいちそこに戻って確認するの
PyDevもコード補完くらいある
PyDevを使わないってやつに聞いてるんだよ
notepad++も補完くらいはしてくれそう 俺の場合補完はあまり効かないけど
端末上でちょこっと弄りたいて場合は何がいいの?emacs? vim使ってるけど補完とか欲しい
vimでも補完ぐらいできるよ もっともvimの場合、pythonのdllにリンクするようにvimがビルドされている必要が あるし、vimをビルドする時点でリンクされるdllの名前(つまりPythonのバージョン) が決まってしまうけど もしPythonが有効になっているなら : py print 'hello, world' とか : py import vim : py print dir(vim) とかやってみるといい 補完については、オムニ補完でぐぐるといいよ
>>275 どうやってタイプするのって・・・タイプは手でするもんだ
100年前から決まっている
Guidoさんは指にとんがりコーンをはめてタイプします
>>275 ちゃんと関数管理台帳があるから心配するな。
一応言っておくが関数作成するときは申請出せよ?
採番から漏れるからな。
冬なのに怖い話とかやめろよ…
pythonで補完はいらんなあ Eclipseなら大規模はJavaとC++でするし
そんなちょちょいと結果が欲しい時ならまだしも pythonの膨大なライブラリの時点で、補完はいるだろ
>>286 無能な奴はそう考えるのか・・・滑稽だな
「無能な奴はそう考えるのか・・・滑稽だな」
>大規模はJavaとC++でするし 無能な奴はそう考えるのか・・・滑稽だな
C++ (インフラ), Java(フロント・エンド)、Python(社内システム)が三大 言語。その他、Go、JavaScript、ActionScript も
>>290 無能な奴はそう考えるのか・・・滑稽だな
> 天下のGoogleの使用言語 無能な奴はそう考えるのか・・・滑稽だな
無能な奴はそう考えるのか・・・滑稽だな
Pythonの補完はIPythonでやるな。 IPythonで名前の補完だけじゃなくて動作の確認までできたコードをテストも含めて コピペして、それをリファクタリングして正式なコードにする。
>Pythonの 無能な奴はそう考えるのか・・・滑稽だな
IDLEが一番勉強になる
>>296 無能な奴はそう考えるのか・・・滑稽だな
>>294 IPythonだと複数行とか、後でコピペしようと思ったら
In[1]とか...とかが邪魔なんだけど、どうしてる?
ヒストリで呼び出すと ... はないけど… tty 内のエディタで張り付けると エディタの児童インデントとの組合わせで ちと悲しい結果になっちゃうけど (emacs では *scratch* とかの「他のバッファ」に いったん貼ってから copy&yank してます)
>>298 Vimの矩形編集使ってる。
矩形編集できないエディタの人は、 %logstart ってコマンドを使うといいと思う。
それらを削除するのもスクリプトでやればいいじゃない
前は eric4 とか薦めてるひといたけどもう居ないのかな
>>299 >児童インデント
捕まらないように気をつけろよ。
今このスレみてeditraの存在知って入れてみたけどかっこいいな けどpyshellからsite-packagesに入ってるライブラリ使えねえ...
editraの何がいいの?
スクリプトエディタとしてはIDLEの強化版といえる
FPSならばれなかった
>>298 $ ipython --classic
IPythonの3対応まだかなぁ…
Code Completed 第二版 なんで英語だと2500円の本が日本語に翻訳されただけで13000円なの?馬鹿なの?しぬの?
>>311 じゃあ英語版かえばいいじゃない。
そんなこともわからないとは馬鹿なの?しぬの?
いやでも確かに酷いな。
渤多栗
英語読めないやつは大成しない。 これマメな
All your base are belong to us.
>>315 それそれ
英語できないプログラマ向けにぼったくってる
英語読めないってこれも読めないの? Formats Amazon Price New from Used from Hardcover -- -- $257.09 Paperback $31.10 $31.10 $21.96 usedでもこれだけ差があるんだよ?
これはひどい
日本語版はハードカバーじゃないのにお値段がハードカバー並みだと
送料込みで日尼で買うのとたいして変わらんがな で、どこから2500円が出てきたんだ
PYTHONの勉強会はなんでガラガラスキスキなの?
富士山樹海で今度勉強会やるから来いよ
もうすぐクリスマスだな。 お前らが今年いかに無為に過ごしたかが証明される日だぞ。
彼女うんぬんで1年を評価される筋合いはない
ヘビ使いなら、クリスマスこそ新しい言語を作る季節
raise StopChristmas
俺彼女いるし、今年のクリスマスは一緒にディナー食べるけど。 彼女がいるとかいないとかで一年を評価されるとは思わない。 328は正しいと思う。いいこと言った。 けど、こんな受け答えをしてしまう328には一生彼女できないと思う。
pythonで彼女が出来ました
>pythonで彼女が出来ました 無(略)な
pythonのお勉強を始めようと思います
Pythonで彼氏が出来ました!
Pythonでクリスマスを回避できました 本当にありがとうございました
PythonでシンプルにHTTPレスポンスヘッダを出力するスクリプト書いてうpしたんだけど たった数行なのに丸1日かかった自分のヘタレさにorzした
後から見直して死にたくなることはよくあること
次から速くなれば医院で内科医
自分が書いた100行が他所では数行で済まされてたりするとかね
>>340 そこまで差が出るときは「そんなライブラリ知るか!」ってのが多い。
10行が数行だと、すごくやられた感が。
まあでも「そんなライブラリあったのか」(参考になる+1)とも言えるけどな
>>336 ネタだろうけど、オレはリアルでクリスマス返上でpythonのお勉強してた。
久しぶりに充実した時間だったよw
クリスマスではしゃぐのって10代までじゃない もしかしてIT土方に参加券がないだけか?
寧々さんとケーキ食べたよ。 クリスマスっていいね。
最近発見して驚愕したのはタートルグラフィックスのライブラリがついてたこと
NokiaのPySideのソースコードを眺めてびっくりした。 C/C++のソースコードがなくてxmlだらけ。 どうやらここからGeneratorRunner/Shibokenというツールを使って CPython向けのC++コードを自動生成しているらしい。
>>349 初心者でよくわからないけど、pyside-mobility-0.2.0.tar.bz2ってやつ?
>>350 ええっと、pyside-qt4.7+1.0.0~beta2.tar.bz2 の方です。
C/C++で書かれたライブラリのPythonバインダーは
元のライブラリをPythonで扱えるようにするためのラッパーの*.pydが主体になるんですが、
Qtのような巨大なライブラリの場合、こういった特殊な実装法になるようです。
Pythonの場合GUIツールキットは他にもあるので箸が迷いますが、
とりあえずこれでアプリを作ってみる予定。
PythonでGUIアプリ作りたいんだけど、 今だとやっぱQtなのー? wxPythonとどっちが良いのか迷ってるんだ
俄然wxPython也
IronPython
Qtだと環境が限定されちゃうからじゃね
>>357 Qt使えなくてwxPythonなら使える環境って具体的にどんなの?
え〜と…Windows?
PyQtあるじゃん
好きなのを使え
Pypi
wxPythonはオブジェクト指向でPythonとの親和性がいい Qtは慣れればいいけどすぐに汚いコードになる それとwxPythonで作られたGUIアプリが多いので参考になる -> Editra
横からだがなるほど参考になったですはい
QtはKDEの存在があるだけに開発が早く先進的。4.5でLGPLにもなった。 ただし、Qtは4系とそれまでの3以前とで互換性が無い。蓄えられた情報を生かせない。 Qt4はGUI開発で経験があって一人でてきぱき進んでいける人、人柱になれる人向けと理解してる。 今から古いQtならwxなり当たった方が
368 :
デフォルトの名無しさん :2010/12/31(金) 01:12:19
クリスマス来てたんだ 納期が〜 趣味のpython触りたい 自然言語処理とか統計とかしたい
入門自然言語処理オススメ
それのことを言ってんだろ
統計だったら集合知プログラミングとかじゃないのか。まぁ別にどっちでも構わんが。
だから、その二つのことを言ってんだろ
┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ おっぱい!おっぱい! └─┘
______________________________________ | ノ´⌒ヽ,, | | γ⌒´ ヽ, | | 以下 // ""⌒⌒\ ) | | ミンシュトー創設者 i / \ / ヽ ) | | ルゥピー・ウェールズからの !゙ (・ )` ´( ・) i/ | | メッセージをお読みください | (__人_) | | | \ `ー' /. | | ハ',::ヽ ハ、. | | ,,、-'´ |\`ヾ::::::::::::ィ / | ``ヽ─-、. |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
友 愛
ところでTab派って異端? スペース4つ入れるのめんどい…
エディタ設定で、タブキー押下でスペース4つ入るようにできるだろ。 あと、保存時にタブからスペース変換機能もあるだろ。
>>380 エディタをソフトタブに設定してタブ使えばいい
異端というかご法度に近い非推奨じゃなかったっけ?
そうか御法度か…ソフトタブね やっぱり趣味とは言え、メモ帳はダメなのか
仕事で強制されてメモ帳なら理解できる
いやプログラミングとか全くする必要がない仕事なんで 仕事用のPCにあんまり色々入れるとマズいんだw 自宅PCにはちゃんとしたエディタ入れてる
388 :
デフォルトの名無しさん :2010/12/31(金) 16:59:01
同じ文句の使い回しだとすぐ規制されますよ
391 :
デフォルトの名無しさん :2010/12/31(金) 22:51:42
import sys from PySide.QtCore import * from PySide.QtGui import * class View: def __init__(self): self.widget = QWidget() self.grid = QGridLayout(self.view) for c, name in enumerate(["alpha", "beta", "gamma"]): button = QPushButton(name) self.grid.addWidget(button, c, 0) button.clicked.connect(lambda: self.buttonClicked(name)) def buttonClicked(self, name): print name if __name__ == '__main__': app = QApplication(argv) view = View() view.widget.show() app.exec_() sys.exit()
392 :
デフォルトの名無しさん :2010/12/31(金) 22:52:38
上のコードだけど、 PySideで動的にスロットをconnectするときに、 どのボタンを押しても gamma と出力される。なぜ?
>>392 c, name はクロージャ変数だから、 lambda: self.buttonClicked(name) の nameという変数は
lambda の内側と外側で同一のもので、ループのたびに書き換えられるから、最後の値になる。
lambda name=name: self.buttonClicked(name) ってすると、lambdaの仮引数nameに
外側のnameの「値」がデフォルト値として束縛されるので、期待した動作になるはず。
あけおめ
>>394 PythonスレだしせっかくなんだけどPythonっぽくたのむわ
俺? スキル低すぎて思いつかん
Hap"python"ewyear!
イテレーターの神様のレス貼ってくれ
400
>>393 うーん。試してみたんだけど、
今度はbuttonClicked()にFalseが渡ってくるだけになるね。
挙動が謎だ……。
御神籤しよっと
おみ釘になってっぞ
釘をさすな
[i for i in range([あ,け,お,め])] print i
print [i for i in range(['あ','け','お','め'])]
甘いな、Unicode文字列になってないから文字化けだな
つーかrangeもいらねーじゃんorz
今年もよろしくお願いします
>>> [c for c in 'あけおめ'] ['\x82', '\xa0', '\x82', '\xaf', '\x82', '\xa8', '\x82', '\xdf'] >>> [c for c in u'あけおめ'] [u'\u3042', u'\u3051', u'\u304a', u'\u3081'] >>>
>>> [c.encode('cp932') for c in u'あけおめ'] ['\x82\xa0', '\x82\xaf', '\x82\xa8', '\x82\xdf'] >>> print [c for c in u'あけおめ'] [u'\u3042', u'\u3051', u'\u304a', u'\u3081'] >>> print repr([c for c in u'あけおめ']) [u'\u3042', u'\u3051', u'\u304a', u'\u3081'] >>> print repr([c for c in u'あけおめ']).decode('unicode-escape') [u'あ', u'け', u'お', u'め']
>>> [c.encode('cp932') for c in u'あけおめ'] ['\x82\xa0', '\x82\xaf', '\x82\xa8', '\x82\xdf'] >>> print [c.encode('cp932') for c in u'あけおめ'] ['\x82\xa0', '\x82\xaf', '\x82\xa8', '\x82\xdf'] >>> print repr([c.encode('cp932') for c in u'あけおめ']) ['\x82\xa0', '\x82\xaf', '\x82\xa8', '\x82\xdf'] >>> print repr([c.encode('cp932') for c in u'あけおめ']).decode('string_escape') ['あ', 'け', 'お', 'め']
便乗して作ってみた。 print u"".join([eval(("'\\x%x\\x%x\\x%x'"%((7<<5)+3,(2**7)+i[0],(1<<7)+i[1]))+".decode('utf-8')")for i in [[1,2],[1,17],[1,10],[2,1]]]) もっと見にくく短くすっきり書きたい(笑)
ごめん import turtle, time t = turtle.Turtle() a = [(-14, 30), (24, 9), (-16, 6), (10, 6), (2, 4), (-14, 8), (17, 6), (33, 2), (33, 2), (32, 1), (32, 1), (32, 1), (32, 4), (33, 4), (32, 2), (32, 2), (32, 2), (-1, 2), (1, 4), (2, 5), (-15, 7), (30, 6), (-13, 3), (13, 7), (33, 2), (33, 2), (-12, 2), (4, 8), (-16, 5), (10, 7), (33, 2), (32, 1), (32, 1), (32, 1), (32, 2), (32, 2), (33, 3), (32, 3), (32, 2), (32, 2), (-19, 7), (27, 2), (-27, 8), (2, 4), (2, 4), (-14, 8), (17, 6), (33, 2), (33, 2), (32, 1), (32, 1), (32, 1), (32, 4), (33, 4), (32, 2), (32, 2), (32, 2)] for d in a: (p, q) = (t.down, d[0]) if d[0] > 0 else (t.up, -d[0]) p(); t.left(q * 10); t.forward(d[1] * 10) time.sleep(10)
>>415 なんでスレチなんだ・・・
>>415 にはこれがPythonのソースコードには見えなかったようで。
誘導されたそのスレBrainFuckのスレだが、BrainFuckは立派な言語だぞ。
Pythonとは違う。
Pythonとは違うんです(キリッ
つーか>>←これでレス指定するのやめない? わざわざ戻って見るのだりーんだよね。 いい加減コピペした方が見やすいって気づけいてるだろ? そういうことで次のレスからヨロシク。
ビューアぐらい使えよw
釣り
a = "abcdefghijk" b = a[:] a is b #True スライシングでは別のオブジェクトになるとマニュアルにあるのですが、 なぜ同じオブジェクトを参照しているのでしょうか?
リストだとちゃんと別のオブジェクトになるよ
>422は (stringが)immutable であり、 その中身もおなじ内容だから、という理解でいいのかな? リストの場合はおなじ内容物でも「別のオブジェクト」になる、と
425 :
422 :2011/01/04(火) 10:19:16
>>423 リストでは別オブジェクトになることは確認と理解をしております。
上述のコードでも別オブジェクトにならなければいけないはずなのですが、
bがaと同じオブジェクトを示しているのが理解できずに悩んでおります。
stringobject.c string_slice() あと、長さ0, 1の場合は自動でinternされるみたいだから PyString_From〜系の関数参照
427 :
426 :2011/01/04(火) 11:04:11
tupleのスライスも同様の最適化をしてる ま、イミュータブルのスライス演算を本気で最適化するつもりなら [:]に限らず最適化できるはずなんだがな データ構造がポインタ+オフセット+長さにしてあれば スライス演算は本来オフセットと長さの調整だけで済み イミュータブルなら全部O(1)になるのに
…と思ったけど、やっぱりダメか ys = xs[0:1] del xs とかしたときに、単純なO(1)な実装だとxs[2:]に入っていた要素も 握りっぱなしになるから一種のリークになるな
scheme のambに相当するものはないのでしょうか
あるメモリのビット列を変数に格納するのではなくて 関数型言語とかでの「ある内容物を変数というラベルで束縛する」という 考え方をすればいいんじゃないの
>>429 Schemeを学んでも目の前の機械の使い方を知らないとは…
Python ambでぐぐればいいだけじゃないか
それはともかく
(let ((i (amb 4 6 7))
(j (amb 5 8 11)))
(if (prime? (+ i j))
(list i j)
(amb)))
このようなものは、Pythonでは単に
[(i, j) for i in (4, 6, 7)
for j in (5, 8, 11)
if is_prime(i + j)] # is_prime()はどこかで定義
こう書くような気がするな
sageがnumpyと統合されたらいいのになあ
「あ、Python?、スクリプト言語でしょ? レベル低いね」って言われたので殺害した。
まだその思いを払拭できない俺はまだまだらしい
Pythonで鞄を作り、 Javaで看板を作り、 C++で地盤を作ります。
>>433 言語のレベルはアセンブラとかCよりも高いゼよ?
>>433 QtでGUI作って、処理が重いところだけ
C/C++で共有ライブラリ(DLL)にしておいて、
残りを全部Pythonで作成するとか
最強のアーキテクチャだと思うんだけどな。
# と思って、そういうアプリの開発に着手中。
そんな狭量な輩は放っておけ。
>>437 その手の階層化による利点ってコストゼロってわけでもないんだよな
複数言語・環境間をコンテキストスイッチし管理するためのオーバーヘッドが生じる
Python+C/C++なら何らかのグルーコードが必要だし
デバグもやりにくくなる
ライブラリのように、よく定義され再利用可能でモジュラリティがはっきりしたものを
Cで実装し、それを利用するのは上記のオーバーヘッドを考えても
良いプラクティスだと思うけど、
「重いところだけ」という方法論は、なんだか危うく見えるな
へ?
言いたい事があるんならもっとはっきりどうぞ
乳より尻が好きです
知りたての言葉を無闇に使うもんじゃない
勝間とか見てるとイライラするよね
perlで済むならpythonをあえて使おうと思わない perlの方が安心する 数値計算とかはやもえずnumpy使うけどRの方が良いような気もする
>>438 一見もっともそうだけどツッコミどころがいろいろあるな。
まず、Python - C/C++の実行速度面でのスイッチコストは事実上無視できる。
少なくともネイティブ-Javaやネイティブ-.NET Frameworkのようなヘビーな切り替えコストはない。
開発コストの上昇、という点では、事実だと思う。少なくともゼロから学ぶという前提をおけば。
しかしアプリケーションの実行環境の賢さという点では、
C/C++よりもPython/Ruby/Java/.NETその他の方が圧倒的に上なのは誰も否定しないと思う。
グルーコードというのはC/C++で作った共有ライブラリをPythonから
利用するためのインターフェイス部分のことを言ってるんだと思うけど、
一般的にはコンポーネント同士のツナギとしてのプログラムのことを指すから、
それはPython自身であって指摘自体がナンセンスということになるよ。
Pythonは周辺ライブラリが簡単に手に入るところも魅力で、
実際のケースとしてグルーコードを自分で書く場合はほとんど発生しないと思う。
Qtは使うな MUMBLEが糞すぎる
>>445 いや、俺の書き方が悪かったんだろうけど…
> 複数言語・環境間をコンテキストスイッチし管理するためのオーバーヘッドが生じる
これは「比喩」だから。
コンテキストスイッチしてるのは、開発者というリソースね。
モノリシックな言語は特定のIDE環境にひきこもっていればいいかもしれないが、
複数言語ではそうは行かない。
>グルーコードというのはC/C++で作った共有ライブラリをPythonから
>利用するためのインターフェイス部分のことを言ってるんだと思うけど、
その通り。
ctypesならグルーはPythonで書く(Cなら#includeの一行で済むところで
大量のボイラープレートを自分で書く必要があり、非DRYだ)
Python拡張を作る場合には、C側の実装で書く。
なおJVM/.NET系で統一しているのなら、それは不要なので
グルーを書くコストだけはゼロに出来る。
>Pythonは周辺ライブラリが簡単に手に入るところも魅力で、
>実際のケースとしてグルーコードを自分で書く場合はほとんど発生しないと思う。
は?俺はPythonでの開発を否定してるんじゃないよ
>>437 が言っているような、「PythonとC/C++の分業」(性能ベースでの)
が、「最強のアーキテクチャ」と言えるほどバラ色だとは思えないと指摘しただけだ。
>>447 俺は437じゃないけどまさにその開発手法でやってる
そんな俺の寝言をのたまうなら。447の指摘はぜんぜんたいした問題ではないんだ
ちょっと慣れれば数分で解決する問題
437の言う開発手法で最も面倒なのは「ボトルネック」となる箇所を見つける部分だなぁ
これは正直、数をこなしても未だに面倒なのなの
あるpython libraryがctypes経由でfoo.soを呼び 別なpython libraryがctypes経由でbar.soを呼んでるんだけど bar.soがfoo.soを呼んでるのでfoo.soが2回呼ばれて foo.soの中にあるfoo1(int x)が2回定義されてます みたいなエラーで詰んだことが昔あった
>>448 解決する/しないってのはおかしくないか?
そういう開発は勿論「可能」だけど、
コストやオーバーヘッドは決してゼロ化しない、単に積みあがるだけだ
何を持って「解決」と言ってるの?
>>447 445=437なんだ。ごめんね。
具体的にはフリーの動画オーサリングソフトを作ろうかと思ってるんだけど、
よく使われてるソフトは片や(a)C+Lua、片や(b).NET製。
(a)はC/C++用のプラグインの仕様が用意されておらず、プラグインはLuaで書く必要がある。
記述能力に限界もあるし、まだまだメジャーな言語とはいえない。
GUIの改良は作者本人に依存している。
(b)はプラグインは豊富だけどレンダリング速度に致命的な欠陥があり、
こちらもアプリ本体のUIがいじれないという問題が生じつつある。
Python+Qtならアプリ主要部分+GUIを全てテキストファイルで表現可能なので、
プラグイン作者の協力をより得やすいのではないか、という考えです。
>>450 ウザい奴にレスするより早く解決できるよ!
>>451 ああ、スクリプタブルなアプリケーションを作りたいという話?
要件のほうが開発コストより優先度は高いのだから、そういう要件なら
当然そういう方向はあるでしょう
>>450 こういう気違いがたまにいるよね
なんでゼロ化しなくちゃいけないんだよw
>>454 いや、別にゼロ化できなくてもいいけど、何をもって「解決」したといってるのかは
全く理解できない
解決の前と後で、具体的に何かが変わったのですか?
馬鹿にされてくやしいの? 俺意味のない議論はしたくなんだよね〜 もうちょっと経験積んだ方がいいよ
例えばC拡張を作成する手段として、Cythonあたりだと ・ソーストランスレータなのでデバッガビリティに非常に難がある ・C/C++言語ではないので、Cの宣言をそのまま取り込めず Cの定義Aに対応するA'を「自分で」書かなければならない コストがかかるだけでなく、一種のコード複製なのでメンテナンス上の 問題にもなる(ctypesと同じ問題) という印象を持ったけどね
Python+Qtアーキテクチャで作ってる時の素朴なツッコミ。 標準・周辺ライブラリの機能がかぶりまくり :)
PythonQTってなに PythonでGUIが作れるの?
エキスパートPythonプログラミングとPythonクックブック買ってきてから気づいたけど、 そもそもPython初心者だったでござるorz
>>459 PythonにQtを組み合わせるなら、そう。
PythonQtのことを言ってるなら、こいつはQtを使ったC++アプリケーションで
Pythonインタプリタを取り扱うためのライブラリらしい。
ipythonをWindowsで動かそうとしてるんだけど、うまくいかない。 コマンドライン上では動くんだけど、 Wikipediaに書いてあるようなwxPythonやQtのバックエンド上、 つまり独立したコンソールウィンドウを表示しての操作ができない。 Qtを動かす方法はわからなくて、とりあえずipythonxコマンドでwxPythonを動かそうとしたけど wxPythonが入ってない。 wxPython入れてみたら、twisted.pythonが入ってないと。 twisted.python入れてみたら、zope.interfaceが入ってないと。 zope3(zopeproject)入れてみたけど、変わらず。 zope2を入れてみたけど、こいつはpython本体ごと pythonの外側にインストールされてしまって、認識されない。 なんなの、これ?
>>463 zope.interface は zope2 や zope3 とは別モノ。
distribute という Python のパッケージマネージャをインストールして、
easy_install zope.interface したらインストールできるんじゃないかな。
俺はコマンドライン上で使ってるけど。
おやすみ(^o^)ノ
>>464 なんと。zopeとは関係なかったのか。easy_installで単体で入れたら、
ipythonxが動くようになったよ。ありがとう。
Pythonで構築したQtアプリ上で追加のコンソールとして動かしたいので、
もう少し調べてみる。
ue3ってwxWidgetsを推してるのね
>>467 Unreal Engine3のことかな。
実際のところPython+wxWidgetsって、
Python+Qtと比べてもそれほど遜色はないんだよね。
QtにはGUI以外にもいろんな機能が実装されてるけど、
そのほとんどはPythonが自前で持っちゃってるので。
特に小さなアプリを作るときは、Qt+PySideで10MB越えするのを
添付して配るのは大げさすぎる気がしないでもない。
ま、乗りかかった船だからオレはQtで行ってみるよ。
wx, gtk, Qt の中で、一番Cocoa対応がマトモなのがQtなんだよね。 WindowsとLinuxだけでよければwxとQtが選択肢になり、 Linuxだけでよければ全部大丈夫
PySideはまだなんかおかしい点が所々にあって、 PyQtからの移植が一筋縄ではいかないときがある。
どっかの外人が「もーPySideバグだらけで2度とやらね」ってぼやいてたな
>>> ctypes.c_int(1) == 1 False >>> ctypes.c_int(1) == ctypes.c_int(1) False >>> ctypes.c_int(1).value == 1 True これでハマった……
まともなGUIライブラリが標準で付属してればなぁ。
Qt = Linux系・Mac向け Wx = Linux・Windows、ときどきMac
wxはMacにはあんまり向いてないの?Mac対応のwxPythonなアプリをたまに見るけど
向いてないわけではないけど Mac向けアプリ作るならWxじゃなくていいよ 474は恐らく対象OSの話
シンプルで マルチプラットフォーム対応で ネイティブのルックアンドフィールが使えて サイズが小さくて ライセンスがゆるい GUIライブラリが欲しい。
____ /___ \ / |´・ω・`| \ いいよ〜 /  ̄ ̄ ̄ \ | i う WxPythonてヽ └二/ l | ,、___, ノ ヽ_二コ/ / _____/__/´
ncursesが最強ってことで
>>477 それだったらtk(Tkinter)かwxPythonの2択だな。
どちらも1MB強の共有ライブラリ(dll)をつけるだけ。
QtはLGPLになったのでフリーソフトとしてなら使えるようになった。
>>476 レスサンクス。Mac用のアプリを作るならwxより良いものがあるよってことかな
>>481 Mac OS Xネイティブだけでいいなら、
PyObjCで Objective-C/Cocoaにアクセスできるそうなw
でもよほどOSの突っ込んだことをやりたいんじゃない限り、
マルチプラットフォームなツールキットを使ったほうがいいと思うけど。
生産性も高いし。
GPLはいいけど、LGPLってわかりにくい。
New BSDとBSD Licenseくらい違う
pipだeasy_installだvirtualenvだ2.6だ、で疲れた。
>>485 ActivePythonをインストールすれば、easy_installは最初からバンドルされてるよ。
それからeasy_installでパッケージをインストールすれば、
そのパッケージが必要とする他のパッケージも再帰的にインストールしてくれる。
でもWindows向けPythonパッケージでよくある単独インストーラーだと、
再帰的チェックまではやってくれないんだよね。
distutil2も参戦だ!
Perl使いはPerler、Ruby使いはRubyist、 ではPython使いは? Pythologist?
PHPer(笑)
pythonist
pythonista
むしろ pythonomist
>>486 ActivePythonならpypmだろ
Pythonese
pythologist
pythoneer
python tamer 経験上漏れがこういうのを書き込んだ途端に いい加減にしろって怒られる確率が大
A Python **** 英語は正しく使うのがPythonic
こういうときは冠詞なくてもいいんだぜよ。
上級python使いはpythoness(魔女)で
オススメのwebスクレイピングライブラリ教えろ ただし、レスする権利は3つ以上試した人だけな はいどうぞ
Django
import re
自力
(^o^)オハ
Pythonも安定期から成熟期に入ったということだな
>>508 それは皆がPython3000(Python3.0 or 3.1)を使うようになってからじゃね?
ちなみにオレは、周辺ライブラリの関係で否応なしにPython-2.6だ。(2.7ですら早過ぎる)
2.6が一番多いだろうなぁ
2.6 2.7に移行するメリットはあまりないし、3.1なんかライブラリが使えないし。
>>508 2.x系 - 成熟期
3.x系 - 黎明期(?)
3.x系は安定期にすらたどり着けるのか結構不安だw
ライブラリ見つかんねー、と言われなくなるのはいつになるやら
516 :
デフォルトの名無しさん :2011/01/10(月) 00:23:34
Pythonにて作成していたコマンドラインツールをGUIにしようと思い PyGtkを調べているのですがわからない点があります。 そのコマンドラインツールはsocketでデータを受信し、受信したデータを表示するというツールです。 PyGtkでウインドウやボタンなどを作りあとは連携させるだけなのですが、 socketからデータを受信するために無限ループをさせており、 "gtk.main()"より前にsocketループに入るとウインドウが表示されず、"gtk.main()"を前に書くと socketのループに入れません。 これはどのように解決できますでしょうか?
asyncore
別スレッドでsocket使え
アサシン楽しそうだな
誤爆
>>516 一般論
GUIアプリは、「イベントを取得してそれに応じた処理する、のを延々と繰りかえす(イベントループ)」
で動いているので、イベントハンドラで時間のかかる処理をすると、そのあいだGUIが応答しなくなってしまう。
だから普通、GUIアプリで時間のかかる処理をするときは、別のスレッドを起動してそこで処理する。
ただしソケット通信の場合は、OSが非同期IO機能(データが到着したらOS側から通知してくれる。それまで他のことをしててOK)
を備えているので、それを使ってもいい。
Pythonの標準ライブラリには、asyncoreってのがあってそれを支援してくれる。
原理論
516じゃないけど勉強になった
import 角電池
細かいことだけど、non-blocking I/O と asynchronous I/Oは違う Pythonのasyncoreは、名前はasyncだけど、やってるのはnon-blocking I/O O_NONBLOCKとか使うのがnon-blockingで aio_write()とか使うのがasynchronous Windowsではoverlapped I/Oという用語があって、これはasynchronous I/O相当 StevensのUnix Network Programmingにはasynchronous I/Oのほうが 本質的に効率がいいと書かれているけど、Unix系では移植性がよくて枯れている non-blocking I/Oが使われていることが多いと思う Windowsではasynchronous I/OがIOCPと一緒によく使われてる デザパタ用語で前者がreactor、後者がproactorと呼ばれることもある
526 :
デフォルトの名無しさん :2011/01/10(月) 13:27:47
asyncoreを調べてみたのですが、 asyncore.loop()を使うと、やはりそこで動作が止まってしまいます。 asyncore.loop( count=10, timeout=10) などとすると、しばらくすると受信処理が終わってしまいます。 (受信が終わってからそれ以下の作業に入ります。
>>525 asyncoreを使ったことがないのに、名前だけみて適当なことを書いた...反省
というか、asyncoreはO_NONBLOCKすらしてないですね。
528 :
デフォルトの名無しさん :2011/01/10(月) 14:16:44
Twistedを使えとか言いだすアホが登場する予感
Twistedを使え
どうせ一回しか呼んでないんだろうな
サンプルコード書いてやりたいけど、PyGTKが分からん。 ワーカすれっどがデータを受信したら、どうやってメインスレッドに通知すればいいんだ?
Twisted使えばいいじゃない? 何でだめなんだ?
重いから
余計な外部ライブラリに依存すんのって嫌じゃね。
標準ライブラリでやれ。
asyncoreのselect()は効率悪いし ありもののライブラリ相当のものを作るのは車輪の再発明
>>531 ありがとうございます。
私もPyGtkを始めたばかりなのと、プログラミングの勉強を初めて間もないのでよくわかっていません。
もしよろしければ、PyGtkを使っているものでなくても構いませんので、サンプルをいただけると助かります。
すみません。 あるベクトルを正面として、90度上下左右方向のベクトルを求めたいのですが、どうすれば良いでしょうか? D3DXMatrixRotationAxis で正面方向を軸に90°回そうとしたのですが、 正面で90度回しても上下左右を向く訳がないと気付き・・。そもそもその軸が求まれば解決なのですが; orz
541 :
540 :2011/01/10(月) 16:05:47
すみません掲示板トップから盛大に板違いの誤爆しました; 失礼しました;
>>540 va, vb があったら、
vc = cross_product(va, vb)
vd = -vc
ve = -va
vf = -vb
やさしいな
>>539 asyncoreだとこれはできないの?
PySide
よこちち
その発想はなかった
プログラミングの勉強をしております。 コマンドラインアプリケーションを作って勉強していたのですが、グラフィカルなアプリケーションも 作ってみようと先日よりPyGTKを勉強しております。 その勉強の中で疑問に思ったことがあります。 コマンドラインアプリケーションを作っている際は、クラスをいくつか作りトップレベル?(クラスや関 数の外、モジュールファイルに直接)よりクラスを操作していましたが、PyGTKではウインドウを扱う クラスがメインになってしまいました。 ウインドウを扱うクラスの中で別のクラスインスタンスの作成やメソッドの操作を行なっています。 ウインドウを扱うプログラムは通常度のような書き方(設計)になっているのでしょうか? ウインドウを扱うクラスを中心にするプログラムのメリットやデメリットはありますでしょうか? 勉強中の身ですがプログラムを描きながらどうも違和感があったため、質問させていただきます。
イベントドリブンでぐぐれかす
実はGUIってしっくりこないんです!
ハリウッドアーキテクチャ!!!
GUIって奴は馬鹿でも最低限の機能を使えるようにしたものだから 俺みたいぷろふぇっしょなるにとっては無駄で非効率な代物でしかない オマエらにとってもそうだろう?
>>559 Inkscapeでどうやってそれを書いたんだ?
こういう図をササッと作られると仕事ができる奴みたいで癪に障るな むかつくから作図のノウハウ全部開陳してけ
スレタイ嫁
563 :
デフォルトの名無しさん :2011/01/11(火) 20:43:29
とりあえずhow to be hackerで最初にpython勉強しろって書いてあったからここにきた 何からやりゃいいんだ?英語できなくても大丈夫なのか?
how to be hackerに、どの言語よりもまず英語を勉強するように書いてほしいわ
>>564 英語勉強しろって書いてあるよ馬鹿たれ
俺が言ってるのはpython習得に英語が必要かって聞いてるんだよ
この文章踏まえてもう1回俺のレスちゃんと読め
いや、だから辞書引きながらでもいいのかってことだよ 辞書引きながらと英語がきちんとできるのでは全然違うだろ 辞書引きレベルでもおkなのってことを聞きたいの? 今から英語マスターしてたら膨大な時間かかるし。どれぐらいのレベルならいいんだよ
>>567 それが可能かどうかは俺が決めることじゃないだろ
どちらにしろ英語は勉強しろよ
辞書引きながらと英語がきちんとできるならいいじゃん
なんでもいいからPythonのお勉強しろ
>>563 How to become a hackerだと思うけど
Python・Java・HTMLのような環境に依存しない言語を学べって意味のはず
MS言語をこき下ろしてるのはそこら辺が大きく関わってる
英語できないならそれを先に学べと思うが
どうしても嫌ならCとか王道の苦痛を味わったほうがいい
573 :
デフォルトの名無しさん :2011/01/12(水) 00:40:55
PyGtkの勉強をしようと思い、 初めてのPython を購入し読みました。 次にマルチスレッドとGtkの勉強をしようと思うのですがおすすめの書籍はありませんか?
>>573 マルチスレッドは、日本語の書籍だと
結城浩の「Java言語で学ぶデザインパターン入門マルチスレッド編」が重要な技法を網羅してて良いんだけど、
値段が高いのと言語がJavaなのが難かも。
オライリー大人買いできない貧乏人はプログラミングすんな
オライリーを本棚に飾ってるアホどもは、 シュプリンガーとかを読んでる人種に馬鹿にされてることを知れ。
どこからオライリーが出てきたのかも分からんし、 何を劣等感丸出しにしてるのかも分からん。
カネも書籍もなくても、 PCとネット回線と英語さえあれば、いくらでも勉強できる。 たぶん。
図書館使えよ
>>567 書いてあることが理解できりゃ、エスパーでも辞書引きながらでもなんでもいい。
が、1単語ずつ辞書引いて、1文読むのに10分かかって、だと理解するのに時間がかかりすぎる。
じゃあどの程度できりゃいいのか? それはアンタがドキュメント読むのにどんだけ時間かけられるかで決まってくるんで、俺にはなんともいえん。
>>581 プログラミング関係の蔵書がそこそこ充実してる図書館がどこにでもあると思わないで…
貧乏人というより投資する価値観の違い 本を買うだけでしたり顔してる連中は基本的に劣ってる
ツンデレ
PythonとRで統計処理を自動化するより、 Excelのクソみたいなマクロを書くほうが上司に評価されます。MS死ね。
Pythonで社内システムを構築するより、 MS製品を導入するほうが上司に評価されます。MS死ね。
属人化嫌いだってよ
Excelで動いてた面倒な入力とデータ加工の業務を Pythonで自動化してあげたら本当に手が減ったからと それまでの担当者が数名クビになりました 経営的にはGJなんだろうけど複雑な気持ちです
>>590 余った時間で創造的なことをやればよかったのにね、
というのがPython流の考え方になるのかねぇ。
明日は我が身、でもある。
つまり「手を抜くな」って事だ 技術でも知識でも経験を積むに「試す」「失敗(+成功)する」「疑問に思う」の繰り返しがないやつは進歩しない
>>590 コンピュータに職奪われたわけか
そんなアナログ作業をデジタルでやったら金食い虫
プログラミングは才能と金がない奴は進歩しない ネットのジャンク情報を無能がいくら読み漁りいじくりまわそうがかなわない
才能よりも興味と好奇心
上手に「手を抜く」発想が必要
発想=才能 結局才能に行き着くんだよ馬鹿たれ
才能0じゃ駄目だけど 才能だけでも駄目だと思う
諦めたら終わり 満足してしまっても終わり
少なからずアスペルガー的気質がないとプログラミングに向いてないのは確か。
確かに間違いに寛容な香具師は向いてないな
Pythonと関係あるのは何レスくらい前だろうね
pythonなんて一般人はほとんど知らないんだからレスなんて少なくて当たり前だろ スレの勢いをあげて一般人にもpythonスレが目に付くようにしないと永久に普及しない
605 :
デフォルトの名無しさん :2011/01/12(水) 17:11:09
Python.jpを何とかしてほしい。 Pythonに興味を持った人があのページを見て一体何が分かるのか。 まあ、単なる温泉旅行団体なんだろうけど。
try: 角電池
だれかが質問を書かないと、このスレは荒れる。
>>606 気持ち悪っ!
俺はPython.jpなんて全く知らないけどPython使うのになんの苦労もしてないぜ
別に意見として気持ち悪くはないとおもうけど。
俺も温泉旅行行きたい
PyGTKを勉強するのに適したGTKの書籍はありませんか?
ありますん
perl使いになればよかったよ。なんでpythonなんて学んじまったんだ 誰も質問なんてしてこないじゃないか!言語オタにはつまらない奴と思われてるし
俺、ラクダ本の Perl 6 対応版が出たら Perl 使いになるんだ
対応版以前にPerl6はいつ出るんだ? 開発者が、一生でなくていいって言ってるんだぞ
何か質問はございませんかー
GTKは糞 何度でも言うよ GTKは糞
>>621 お前Linux版のGTKスレにも書いただろ。
暇だな。頑張れ。
まー GTK on Windows はくそ
gtkmmはいいと思うぞ
gtkmmも使ったことあるから否定はしないが Qtと比べたら雲泥の差 GTKが糞と言われても仕方ない
メンテナンス性の面で僕が気に入っている言語は Python だ。シンプルで きれいな構文、オブジェクトのカプセル化、充実したライブラリのサポート、 そしてオプションの名前付きパラメータがある。メンテナンス性が悪い言語 の一例は Perl である。うん、僕は確かにそう言ったよ。撤回するつもりはない。 -- Bram Cohen Python が好きなのと同じぐらいRubyが好きじゃない。Perlみたいな「TMTOWTDI」哲学が 多すぎる。Perl ほどひどくはないにしても、似たような可読性とメンテナンス性の問題が 出てくる。Ruby を使わなければならないなら使うこともできるけど、幸いそういうことはない」 -- Jonathan Ellis Rubyの本を読んでて頭にひょこっともたげた疑問ってのは「今さら?」というものだ。 ご苦労様なこった。この言語設計者 (Matzこと教祖まつもとゆきひろ様) っていうのは なんでわざわざこんなものを創ったんだ? たどり着く結論は毎度同じものだ。 -- Bruce Eckel Ruby は低品質で、ゴミクズソフトが頼っているクソみたいな インタプリタにも関わらず不当に勢いを得て今までずるずる -- Zed Shaw 「やはり他のスクリプト言語作者とは格が違う。そもそもPerlやRubyというのは 一部のオタクどもが楽をするためだけに存在している言語で、かれら教育のことなんか何も考えてない。 しょせんかれらは狭い世界に閉じこもる運命にあるのだ。
Gtkは糞といってQtをおしてくる人がいるが、そいつにGtkとくらべてQtのメリットを聞いても返事がない Linuxをちょっと触ったことある連中がWindowsを糞と言ってるのと同じように思うんだ
やっぱりQtのAPIが一番すっきりしてる。C++ってのが気に食わないけど。
>>627 流れが叩き合いっぽくなってるけど、
Qtはいいものだ。
オレ、今作ってる動画が完成したらQt+Pythonでソフト作るんだ……。
GTKはWin/MacでネイティブのLook & Feelが使えないのがイヤん。
WindowsとMac OS XとGTKとQtに対応した、 Python用のGUIライブラリを誰かが作ればOK。 ニートのみなさん頑張って作ってくれよ。
>>626 言語の宗教戦争は無駄だとすぐ上に書いてあるのに
Zed Shawは分裂気質だから
もりあがってるところ誠に申し訳ありませんが Python で使える GUI フレームワークで マルチスレッドと相性の良いものはどれでしょうか?
GTK
マルチスレッドとの相性が良い悪いなんてあるのか?
Django
そもそもPython自体がマルチスレッドと相性良くない
どじゃんぐり ころころ どじゃんくりこ どじゃんご が 出てきて さあ たいへん。
なごむなあ
>>638 そんなことは無い。
GILのせいで性能が出ないのは、マルチスレッドのユースケースのうちのごく一部。
非ネイティブスレッドのRuby 1.8とかに比べたらずっとスレッドとの相性が良い言語。
>>615 そんなあなたにおすすめ
「PerlユーザのためのPython移行ガイド」
すごくどうでもいいが 個人的に蛇は割と好きなほう。家の下にアオダイショウとか住みついてる すごいでかいから屋敷神に違いない。 だからPythonにも割と惹かれるのかもしれない
windowsで配布まで考えるとgtkはランタイムファイルやなんかがごちゃごちゃ必要なんじゃなかったっけたしか
Tkinter最強伝説
>>642 GILのせいで性能でないのは関係ない (キリッ! とか・・・もうねアホかと
例えばPythonでも有効につかえるスレッドによるI./O待ちとかは単にリソースの無駄遣いなんなんだぜ
648 :
デフォルトの名無しさん :2011/01/13(木) 08:59:27
>>627 ここPythonのスレだろ?
Pythonから使うこと考えてないの?
Perlの勉強をしていたのですが、Pythonの勉強をしてみようと Pythonの勉強をしております。 Perlを勉強していたときは、簡単なデータの保存は自分でCSV形式に変換して ファイルを保存していたのですが、Pythonではドのように保存するのが一般的なのでしょうか? Perlの用に自分でCSV形式にすることもできますが、pickleのようなものを使うのでしょうか? 勉強を始めたばかりで何も分かっておりませんが、pickleを使うと大きなデータはメモリを食うのではないか など、いくつか疑問があります。 一般的に使われている方法や、それらの方法のメリットデメリットを教えていただけると助かります
python.jpがダメなのは同意だが、対抗の方がショボ過ぎるのも事実。
>>649 リストとかタプルとかいろんな型をごちゃまぜにするのならpickleでいいと思うけど、
そうじゃないならCSVでいいんじゃないかなぁ。
pickleは人間がパッと見て分かるデータじゃないし、Python以外では一般的に使われない。
メモリは、相当でかいファイルか相当低スペックのコンピュータだと知らないけど、
そうじゃなかったら気にしなくていいと思う。
perlでも大きなデータはメモリを食うよ あと x perlの用に o perlの様に じゃないかな
>>649 漏れは pickle して zipfile してる
やっと知的な議論に突入したな
>>649 ,651
csvは表状のデータにしか使えないから、オレはあんまり使わないんだよな。
自分のアプリでしか使わず、ユーザーに外でいじらせるつもりがないならpickleで十分。
スクリプト系言語で使うデータならjson/yaml。
静的型付言語も含めて言語問わずに利用ししたいならxmlやprotocol-buffers。
比較的小規模な設定ファイルならiniも案外悪くない。
動作中のメモリ使用量なんて、問題が出たときに始めて考えればいいよ。
何をシリアライズするかにもよるけどな。
クラスの状態を保持するのにcsvを選択するのはよけいな手間でしかないし、
ヒューマンリーダブルが求められる出力データにpickleもおかしい。
この場合は何らかの(途中)処理結果ををデータとして出したいようだから、
csvなりxmlなり
>>654 なりの方が一般的かと。
そんなあなたにpySQLite
個人的には、 ちょっとした設定ファイルとか: Pickle 構造的なデータ: XML, JSON 単純なデータ: タブ区切りテキスト テーブルデータ: SQLite 数値データ: CSV, バイナリで吐く Key-Valueデータ: gdbm, cdb, etc.
YAML XML SQL
>>647 うわっ、ひょっとしてスレッドで十分な場面でもIO多重化しちゃう人?
1万とか10万単位の並列数を扱うならともかく、今時なら数十どころか
数百単位の並列数でもスレッドで十分だよ。
ttp://developer.cybozu.co.jp/kazuho/2009/09/epoll-bac0.html Pythonのスレッドが使い物にならないのは、
1) GIL を握ったままCPU100%使うスレッドが複数あるとき、マルチスレッドによる高速化がされない。
2) CPU100%使わないまでも、スレッドがたくさんあってその合計のCPU使用率が高い場合は、
GILのせいでOSが持ってる良い感じのスケジューラがうまく動かず、スレッドの応答速度が
遅くなる場合がある。
こういう場合はプロセス分けろって事だな。
YAMLを使うのはキモオタの自己満足感が強い。
まあ、さっさとIncremental GCか何かを実装して欲しいですね。
CSVよりTSV
うわっ、 ス で で しちゃう人? 万 万 を扱うならともかく、 握ったまま 使う と 良い感じ が 遅くなる
せっかくの知的な議論(キリッ)が・・・
>>661 頭悪そうだなお前
一言で言えばGILがあるかぎり同時に実行出来るPythonのコードは1つだけって事だ
お前の例は全く的を得ていない実に愚かなレスだ
もう少し勉強してこい
>>668 いやお前・・・それはマルチスレッドじゃなくマルチプロセスだから・・・
根本的な事が解ってないんじゃないかな
文盲どうしが好き勝手に自己主張してて見ててイライラする。
これがゆとり教育の弊害か...
ゆとり教育だからこそサブカルに詳しいんじゃないのか?
教えて!goo wwwwwwwwwwwwwwwwwwwwww
プログラミング「言語」の知識しか無い奴だらけで困る。 それじゃクソみたいな業務アプリしか書けないだろ常考。 コンピュータとかCPUとかOSとかアルゴリズムとかCGとか信号処理とか糞便爆発とか、 色々やらなきゃダメだし、そのほうが楽しいぞ。
Windowsにはfork()は無いからマルチプロセスはスレッドほど手軽とは いえない気がするけどなあ たぶんその辺の理由もあってmultiprocessingは色々制限があるのがうざい これはmultiprocessingのドキュメントに書いてあるけど、たとえば from multiprocessing import Pool pool = Pool(5) pool.map(lambda x: x * x, range(10)) みたいなコードをREPLで試そうとしても動かない 今はErlangとか言わなくともGoとかScalaとか並列処理に向いた言語いっぱいある .NETでもPLINQとか出ててLINQをナチュラルに並列化できる Javaあたりはそれほど抽象化はしてないけどutil.concurrentに頼ってる人多いだろう GILなんてないし、便利で信頼できるプリミティブを用意してる 俺もPythonの並列処理サポートは、「一応ネイティブスレッドが使えます」 という意味でないよりはマシだけど、正直ショボいと思う
>>667 >>661 のどこを読めばその程度の事を理解していないように読めるんだ?
>>647 がIO待ちの為にスレッドを使うことを否定しているから反論しただけで、
GILが制約になる条件は
>>661 の後半に詳しく書いているだろ。
そして、GILの為にマルチスレッドが使い物にならないケースは、マルチスレッドの
ユースケースのごく一部だ。
ひょっとしてRuby1.8と比べたから必死になって反論している人がいるのかな? Ruby1.9はPythonと同じになったし、ブロックするAPIを呼び出したらほかのスレッドも 実行できなくなるのはRuby1.8だけじゃなくてPerlとかも一緒だからRubyをdisってる わけじゃないよ。
たとえば、Perlはlibmysqlclient経由で並列にMySQLに問い合わせができない。
ttp://d.hatena.ne.jp/tokuhirom/20090612/1244777290 Pythonならネイティブスレッドが使えるので、並列にlibmysqlclient経由でMySQLに
問い合わせができる。
PythonでWebアプリを作る場合、プロセス一つあたり5〜50スレッドくらいで、そのプロセスを
コア数×2くらい起動すると、CPUも使い切れるし、全部プロセスにするよりずっと省メモリ。
>>679 GILが制約となる条件が
>>661 の1)と2)というのなら勉強しなおして来たほうがいい、割とマジで
IO待ちにスレッドを使うのは無駄多いというのは紛れもない事実
>>683 的外れな上に、スレッドが使えないという話にプロセスを使えばいい!とか
マリーアントワネット風に意味不明な反論がおおいよなw
>>682 間違いを指摘しろよ
1)は、
>>667 の「同時に実行出来るPythonのコードは1つ」を詳しくいっているだけ。
たとえば zlib で圧縮する場合とかは GIL を開放するから、 zlib.compress(data) はマルチスレッドで
並列実行できるので、あえて「GILを握ったままCPU100%使う」と表現している。
2)は、そもそも1コアのCPUを100%使ってない(GILが無かったとしてもマルチスレッド化してもスループットが
上がらない)状況でも、GILのせいで応答性能が悪くなるという問題を指摘している。
現行のPythonでは結構マジな問題だけど、Python 3.2 で new-GIL になると大分改善される。
GIL問題以外にもPythonはスレッドのオーバヘッドが大きいよね
>>684 そもそもマルチスレッドのユースケースの *1つ* でマルチスレッドが使えないからと言って
「マルチスレッドが使い物にならない」と言ってしまうのがおかしいと言う方が的外れじゃないか?
>>686 スレッドのオーバーヘッドと思っているものは、実はGIL競合のオーバーヘッド。
new-GIL で改善される。
>>678 その辺はPerlだってRubyだって何ら変わらないだろ?
PythonでもCPythonじゃなくてIronPythonならGILの制限はないんじゃなかったかな。
透過的な並列実行は手続き型言語より関数型言語のほうが有利だわなー。
言語処理系レベルで最初から念頭においた上で実装しないと後付では難しいんじゃないかな。
Pythonは言語仕様そのものは比較的シンプルだから、
そういった用途向けに処理系をゼロから作り直すことは不可能じゃないかも。
>>685 バカの相手してやる俺超やさしいな
> 1)は、
>>667 の「同時に実行出来るPythonのコードは1つ」を詳しくいっているだけ。
違う。余計なワードを挟んで定義を曖昧にして表現しているだけ。
zlib圧縮はDLL呼び出しでPythonコードの実行じゃないだろうこのアンポンタン
2)の指摘は意味不明。スレッドの「合計のCPUの使用率」?? 何を言っているんだお前はw
本当にGILを理解していればこんな間抜けな発言はしない
GILのことを全く知らない俺の妄想。 GILの問題は、アムダールの法則的な問題である。 つまりCPU-boundなときにパフォーマンスが落ちるだけで、 そもそもそれを気にするなら動的言語を使うなって感じ。 new-GILでそれが改善される。 IO-boundな処理のときは、GILは性能にあんまし関係ない。 って理解でOK。
>>690 バ、バカって言う方がバカなんだからね
このバカ
アスペルガーのみなさん。いいかげんにしてくだしあ。
2人だけ周りが見えてないよな。
>>691 概ね合ってる
あと単純にスレッド数が多くても効率が落ちるよ
>>696 ロック多発下で並列度を上げても性能はぜんぜーん向上しない
-- アムダールの法則
ってやつだね。
まあインタプリタにヘビーな数値計算とかやらせるわけはないのだが (Cや何かのライブラリを呼ばせるのはべつ) PythonってI/O以外だとGIL握ったままなの? LLでテキスト処理はよくやるけど、それが重いこともある テンプレート処理とかHTMLのパーシングとか そういう場合はどうなるの
PythonやPyGTKを使ったアプリケーションはGPLになってしまうのですか? 商用ソフトなどは作れませんか?
GTKは糞 何度でも言うよ GTKは糞
>>698 Posixスレッドと同じでtime()とかI/O待ちが発生するとスレッドのスイッチングが起きる
あとは命令ステップを一定数こなしたらGILによって勝手にスイッチングされる
共有ライブラリ呼び出し時は Py_BEGIN_ALLOW_THREADS, Py_END_ALLOW_THREADSを正しく指定してあれば
GILを開放しマルチスレッドの恩恵を受けられる
なので、高速な並列化が必要な場合はその処理を共有ライブラリにしてctypsやswigなどで呼び出すのがいいかも
管理スレッド数が多くなるとGILの効率が落ちる
プロセス負荷が高いとGIL自体の処理が滞るのでさらに悪循環に
>>699 Pythonは、PSFライセンスで、
商用の3Dソフトなんかにも組みこまれていることから分かるように、
商用利用可能。
PyGTKはLGPLなので、静的リンクしなければ
問題なしです。
GILってなんでどうして必要なのはなぜ? GvRがバカだったせい?
参照カウンコ
>>649 最近はsqlite3にSQLAlchemyを使って保存してる
ORMなんて土方用ツールだろ
さすが鬼の副長
それひじかたやない。どかたや。
まさにscaffoldだしな
SQLAlchemyは良く知らんけど djangoとかだとモデル修正したときに syncdbしてもテーブル更新されないときがあるよね 結局自分でテーブル直接メンテしないといけなくなる SQLAlchemyはその必要も無くなってるのかな?
>>690 > 2)の指摘は意味不明。スレッドの「合計のCPUの使用率」?? 何を言っているんだお前はw
> 本当にGILを理解していればこんな間抜けな発言はしない
1スレッド当たりのCPU使用率5%のスレッドが15個あった場合の話だよ。
C言語でそのままスレッド使うと、たとえばLinuxのCFQスケジューラがバランス考えて
実行権を渡してくれる。
だが、GILがあるとOSのスケジューラが実行権を割り当ててくれても実行できない
スレッドがある。GIL待ちのスレッドにGILが与えられるタイミングはPythonインタプリタが
制御していて、どのスレッドにGILを渡すかのスケジューリングがおバカなので、
GILを長時間待たないといけないスレッドが出てきて、スループットが低下しなくても
応答速度が低下する事がある。
new-GIL は、GILを取得しようとしているスレッドの競合によるオーバーヘッドの低減と、
スケジューリングの見直しで、スループットと応答性能を両方向上している。
>>698 全部、実装依存。GILを開放している部分は並列実行可能。
HTMLのパースなら、lxmlを使えば、libxml2を使っている部分はGILを開放する。
文字列処理だと、標準ライブラリの正規表現はGILを開放しないな。
短時間だけGILを開放するとむしろスレッド切り替えのオーバーヘッドが生じるし、
実行時間がごく短い事が多い正規表現処理でGILを開放するべきかどうかは微妙だな。
regexとかre2とかなら開放するかもしれない。
>>713 なるほど
たとえばよくあるクローラみたいなものをPythonで作った場合
キューからURLフェッチ→ダウンロード→HTMLのパース/処理
→(必要に応じて)URLをキューに追加
みたいなのを、並列で走らせたいかと思うのだけど
HTMLパース/処理にある程度時間を食う場合、そこでGILで刺さって
直列化してしまうと、全体としてかなり並列度が落ちるので、
どうなるかと思っていました
lxmlに丸投げなら大丈夫の可能性が高い、という感じなのかな?
もう飽きた。
716 :
714 :2011/01/13(木) 17:27:22
たとえばパースコードの中にGILをロックする処理があって キューからフェッチしてDLを実行するまでの処理もGILをロックする処理がある場合、 上のスレッドのどれかがパースを実行中(GILをつかんでいる)間は、 他のスレッドが終了しても、キューからフェッチして次の処理をはじめられない ですよね? 遊んでしまうことになる
GILをNGワードにした方が良いな
PythonスレでGILをNG Wordにするとか滑稽すぐる
>>716 パースにかかる時間は、WebのI/O待ちに比べたらカスみたいなもんだから
なんの問題もない。
>>719 要は、そこが実際に「カスといえる程度に軽い場合は」
直列化の問題を無視可能ということですね
俺も、それと全く同じ構成のものを エロ画像超並列ダウンローダとして作ったことがあるけど、 ちゃんと爆速で動いたよ。
UIプログラミングではイベントコールバックは0.1秒以内に戻らなければならない みたいなルールがあると思うけど Pythonでは、GILを開放しない処理の場合、同様のルールに従わないと 直列化してしまう、ということになるの? 何か勘違いしてる?
>>722 外部ライブラリーをコールする時以外でGILを明示的に解放する事はまずない
普通に書いたPythonコードはスレッドを使っても直列化は避けられない
ところで、Pythonのスレッドって擬似スレッドだよね
>UIプログラミングではイベントコールバックは0.1秒以内に戻らなければならない >みたいなルールがあると思うけど ねーよ あるとしたらダブルバッファリング用に一回のVSync以内に戻らないといけないことくらい
例のプログラムの場合は、クロール速度の大幅な向上に寄与するのは、 Web要求を並列に出すことであって、パースをマルチコアとかで並列化することではない。 そんでもって、Web要求は、実行のほとんどがI/O waitで寝てるわけだから、 実行が直列化したって速度はぜんぜん低下しない。
>>726 こういうのを知ったかぶりの低能という。
>>726 イベントループ妨害したら、応答性悪くなるだろうが。
>>723 外部ライブラリーって具体的に何を指している?
ソケットやファイルを含めて、osのブロックするAPI呼び出しとかは基本的にGIL開放しているよ。
そんな当たり前の事いわれてもなw
角電池角電池角電池角電池角電池角電池角電池角電池角電池角電池角電池
角電池ネタはひと月に一回ぐらいでちょうどいい
単三電池なら中学生のときに入れてみたことがある。
>>731 いや、当たり前なんだけど、
>>723 みたいな言い方をすると組み込みのオブジェクトを
使ってる限りはGIL開放しないように読めちゃうじゃん。
普通に書いたPythonプログラムでもGILを開放しまくる事もある。
スレッドを使うといつでもGILが邪魔してくるみたいな誤解を招く書きかたは良くない。
結論: パフォーマンスが欲しいならCで書け。
結論:アセンブラで書け
結論:プログラム書いてる暇があるなら働け
Pythonはその内部でCで書かれた部分を呼び出す時は可能ならばGILを開放しているんだよ! だからPythonのスレッドは並列性が確保されてるんだよ! とでも言いたいのか? 組込み処理のホトンドはPythonで書かれたものでCの部分なんて非常に少ないぜ それで並列性が十分に確保される訳がないだろうに そもそも自分の書いたPythonソースに並列性を持たせられない時点で意味無いだろう もうねアホかと・・・
ちょっと何を言ってるのか分からないですね
>>739 お前マジで、アスペルガー症候群の典型例だから、
精神科でウェクスラー式知能検査受けてみたほうがいいよ。
インフラはC++でやれよ 業務でも趣味でもそれが当たり前
このレベルだと、自分では気づかないだろう。
C++使うとリーナスがキレるし。 個人的にもあれは終わってる言語だと思う。
リーナスC++嫌ってるの?
git開発でもc++野郎にキレてた
C++嫌ってない奴なんているの?
>>744 結局、今はLinuxカーネルの開発でC++は使われまくってるらしいよ
>>749 少なくともlinuxカーネルのソースツリーの中には、
C++のプログラムはkconfigのQt版のソースコードしかないよ?
linuxカーネルのソースコードは全てC言語とアセンブラ。
何で嫌ってるの? C++使ったことないけど
使いづらいからだろ。リナッカーはwinですら不自由だと騒いでるぐらいだからな
C++は言語研究の為の言語
C++はじゃじゃ馬 乗りこなせれば言うことを聞く 要するに騎手の腕次第 Winは糞だが必要以上にWinを攻撃するLinuxerも糞
Winのどこが糞なのか MSの軟化はLinuxersのおかげってか
C++は、たとえばある人は例外使って別の人は例外使わずなるべく戻り値でエラー返したり、 人ごとに膨大な言語機能のサブセットを勝手に定義して使う言語だから、 多人数が参加するプロジェクトではコーディング規約をガッチリ決めないと サブセットの定義の違いが混乱をもたらす。 一人で使ってる分には問題ない。
そういやC++好きには孤独好きが多い気がする
prologよりまし
一体何のスレだよと突っ込んでやろう
ニシキヘビについて学習するスレです
このスレの半分はPythonの話題でできています
バカが忙しくしてると静かでいいわ(ww
なにいってんだこいつ と言ってみる
仕事で PyQt やってたら、いつのまにか C++ 屋になれた
なれたと思ってるのは自分だけw
>>766 Qtのソースコードは綺麗だからね。
いい勉強にはなると思う。
俺のソースコードが一番美しい。もはや文芸的と言っても過言ではない
>>769 おうお前のソースコードに誤り見つけたぞ
小切手よこせよおう
うp
うっぷっぷ
ver3はないのヵ
くっ!
日本語のやつ、訳者によってクオリティが違いすぎ。
>>781 ボランティアなんだから、文句あるなら自分で訳し直してくれ。
オレの場合、翻訳作業はほとんどWikipedia間でやってしまうな。
クオリティーのコントロールが人にかかわらず自由にできるし。
まあPython関係の翻訳はまだ特に始めてないんだけどね。
英語で十分だ みんなもそうだろう?
経済とか政治とかの英語はさっぱりだけど CSに関連する英語ならまだ判り易い方だと思う
>>782 ボランティアだからこそちゃんとやってくれって思うけどな
MSDNと比べてどっちがひどい?
日本語ドキュメントはWikiみたいになってると良いな。 誰でも編集可なら修正する。
>>782 そんなことできるの?Wikipediaってサイトの固有名でしょ?
>>788 Wikipediaの英語版から日本語版に1ページ分まるごと翻訳する。
技術的な記事やオープンソースのソフトの記事とか、
そうそう他の人から修正が入るわけでもないので、自分の固有の記事状態。
とはいえ報酬が得られるわけでもないし、自己満足だけどね。
>>789 そんな感覚でやるやつがいるから、品質が悪いんだろうな
単なるWikipediaの翻訳の話じゃねぇか。
op.py
gobject.io_add_watchに追加したものを解除したいのですが、どうしたらいいでしょうか
マニュアルに書いてあるよ callbackがFalseを返すか、io_add_watchの戻り値を保存しておいてgobject.source_removeすればいい
>>790 そんな感覚でやるやつがいるから、充実してるの。
ちゃんとプロにやらそうとしたら金がかかるし、利用者もタダじゃ使えなくなる。
プロで金払ってたら文句も言えるが、ボランティアだから仕方ないとか言ってたら品質は落ちる一方でしょ Wikipediaも翻訳者とか執筆者雇ってるしね
turtleで絵を描いてみたのですが これをファイルに保存するにはどうすればよいですか? PrintScreenとかじゃなくてPythonスクリプト内で処理したいです
個人的には「肛門わさび注入」ですかね 痛気持ちいい感じです ただやりすぎると取り返しのつかないことに....
アナルケア
>>796 それを問題だと思った奴が直せばいいだけの話。
犬の糞お断り
朝っぱらから喧嘩すんなよカス共。死ねボケ
803 :
見習い :2011/01/17(月) 09:54:11
すみません。 宿題やってください。
クソコテの宿題はしません
ユーザーコミュニティに公的な信憑性は全くないよ それを信じるかどうかは人それぞれ
808 :
角電池 :2011/01/17(月) 16:05:44
お前ら、ケツの穴が小せえなあ。
自慢じゃないがでかいよ
>>809 はやくそのバルバドスホソメクラヘビみたいなのしまえよ
>>797 canv = turtle.getcanvas()
でCanvasインスタンスが取れるので、
canv.postscript(file="out.ps")
とやればPostScript形式で取れる。
GIFやPNGに変換する方法は知らん。
PIL使うとできるのかな?
肛門にニオブ電池を突っ込むと痔の治りが早くなる
>>811 >>> c = turtle.getcanvas()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'getcanvas'
だめぽいです
バージョンいくつなんだらう
>>813 いや、あるぞ。Pythonのバージョンが古すぎるんじゃね?
>>> import turtle
>>> help(turtle.getcanvas)
Help on function getcanvas in module turtle:
getcanvas()
Return the Canvas of this TurtleScreen.
No argument.
Example:
>>> cv = getcanvas()
>>> cv
<turtle.ScrolledCanvas instance at 0x010742D8>
>>>
python2.5です pythonのバージョンをあげずにturtleのバージョンだけあげるにはどうすればよいですか?
Python2.5でも t = turtle.Turtle() canv = t._canvas で取れるじゃん。
だめぽorz >>> import turtle >>> t = turtle.Turtle() >>> t.forward(200) >>> t.left(120) >>> t.forward(200) >>> t.left(120) >>> t.forward(200) >>> c = t._canvas >>> c.postscript(file='hoge.eps') '' >>> from PIL.EpsImagePlugin import EpsImageFile >>> img = EpsImageFile('hoge.eps') >>> img.show() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Python25\lib\site-packages\PIL\Image.py", line 1449, in show _showxv(self, title, command) File "C:\Python25\lib\site-packages\PIL\Image.py", line 2082, in _showxv file = image._dump(format=format) File "C:\Python25\lib\site-packages\PIL\Image.py", line 476, in _dump self.load() File "C:\Python25\lib\site-packages\PIL\EpsImagePlugin.py", line 283, in load self.im = Ghostscript(self.tile, self.size, self.fp) File "C:\Python25\lib\site-packages\PIL\EpsImagePlugin.py", line 72, in Ghostscript gs.write(s) IOError: [Errno 0] Error
Ghostscriptをインストールしてないんだろ
ファイルの扱いについて勉強しているのですが、テキストファイルから指定行を削除するというのは、 どのように行えるでしょうか? ファイル全てを読み込みループで回しながら書き込み指定行を抜く ファイルを1行ずつ読み込みながら指定行をスキップしてループで書き込む と考えついたのですが、他にもっとスムーズに行える方法はありませんか?
sedを呼ぶ
>>821 GhostscriptはEpsImagePluginの中にあるみたいですが違うんでしょうか?
>>822 テキストファイルを一括で読み込んで、改行コードでsplitして、指定した行を配列から取り除いて、再びjoinする。
そして書きだす。
上の行は長いけど1行で書けるよ。
>>826 ありがとうございます
教えて頂いたものを入れて試してみましたが駄目でした
>>827 まじですか?
諦めるしかないのでしょうか?
>>828 PATHは通した?何がどうだめだったのかちゃんと書いてね
試してないけどEpsImagePlugin.pyのos.popen前、
" >/dev/null 2>/dev/null"のあたりを弄れば動くかな
>>828 せっかくPythonのライブラリはオープンソースなんだから、
自分でソースコードを追っかけてみようよ。
PILのGostScriptの最終的な出力は
EpsImagePlugin.pyで行っていて、ここで gs という外部コマンドを呼び出しているように見える。
だから、gsのプログラムをどこかで入手して、PATHに通したら動くんじゃね?
お手軽なのは、cygwinとかかな。
>>829 すみません
エラーメッセージは控えていなかったのですが
python 用の ghostscript 0.3 を入れて import ghostscript したら
何かの DLL が登録されていないみたいなエラーが出たので
Windows 用の Ghostscript をインストールしたところ
import ghostscript でエラーは出なくなりました
しかし EpsImageFile('hoge.eps').show() で出るエラーは変わりませんでした
PATH は通してないですが Windows 用の Ghostscript の bin の中に
gswin32c.exe というファイルがあったので
それを C:\python25 の中に gs.exe という名前でコピーしました
しかし EpsImageFile('hoge.eps').show() で出るエラーは変わりませんでした
おっしゃるように
# Build ghostscript command
command = ["gs",
"-q", # quite mode
"-g%dx%d" % size, # set output geometry (pixels)
"-dNOPAUSE -dSAFER", # don't pause between pages, safe mode
"-sDEVICE=ppmraw", # ppm driver
"-sOutputFile=%s" % file,# output file
"- >/dev/null 2>/dev/null"]
の最後の部分があやしそうですね
>>830 ヒントありがとうございます
>>822 itertools.ifilterfalse()を使う。
import itertools
f = open(filename)
for line in itertools.ifilterfalse(lambda l: l.startswith("#"), f):
print(line)
お前らセックスしてるか? キモいメガネかけてないで、セックスしろよ!
python.jpっていまつながる? proxy errorってでてる。
>>831 の続きです
>PATH は通してないですが Windows 用の Ghostscript の bin の中に
>gswin32c.exe というファイルがあったので
>それを C:\python25 の中に gs.exe という名前でコピーしました
を実行した後に
EpsImagePlugin.py の
command = string.join(command)
を
command = string.join(command[:-1])
に変更したら Windows Vista でも動作しました
import turtle
from PIL.EpsImagePlugin import EpsImageFile
t = turtle.Turtle()
t.forward(200)
t._canvas.postscript(file='hoge.eps')
img = EpsImageFile('hoge.eps')
img.save('hoge.png', 'PNG')
本当にありがとうございました
やればできるじゃないか
↑何様?
咲様
どうみても精子です。
os.fork() って Windows では使えないんでしょうか?
オンラインリファレンスくらい読め
お前が読んで教えろ
os.fork() Availability: Unix ←←←←←←←←←←←
cygwin版なら一応使えるよ
Windows sucks!
>>840 Wikipediaの記事の制作/編集規定読んだか?
python.jp、やっと復活
まだWikipediaの話してんのかよ。
Wikipediaの筆者は高慢ちき ソースはWikipedia
Wikipediaの話してる奴は一般のWikiシステムとWikipediaという一Webサイトの区別ができてないんじゃないか?
[要出典]
やはり英語力は重要だな。辞書引きながらの訳じゃ逆に迷惑だ
>>855 要するにWikipediaの言語間の翻訳のように形で
手作業の査読を通さずWikiの仕組みを使って
リアルタイムに翻訳記事の更新できるようにしたらどうか、
という話をしたかったんだけど、理解してもらえなかったようだ。
859 :
デフォルトの名無しさん :2011/01/18(火) 16:44:29
TSVでデータを保存しようと思うのですが、入力データの改行を置き換えるのに効率的な方法はありますか?
タプルから区切り文字を指定して文字列に変換する方法があったかと思うのですが、 なんという関数か覚えられている方はいらっしゃいませんでしょうか? ("a", "b", "c") というタプルから "a/b/c" という文字列を作る処理をかんがえております。 forを使えば実現できますが、処理が用意されているのであればそれを使おうとかんがえております。
>>860 '/'.join(('a', 'b', 'c'))
>>859 s = r"""he\\o
world"""
# escape
s = s.replace('\\', r'\\')
s = s.replace('\n', r'\n')
# unencape
s = s.replace(r'\n', '\n')
s = s.replace(r'\\', '\\')
すまん、野暮かもしれんが教えてくれ >2010年12月8日(水)午後7時より,「帰ってきたPython Wrokshop 2010/12」を開催します。 Wrokshopっていうワークショップなのか単なる誤字なのかを
>>863 # escape
s = s.replace('\\', r'\\').replace('\n', r'\n').replace('\t', r'\t')
# unencape
try:
ma = {'\\': '\\', 'n': '\n', 't': '\t' }
s = re.sub(r'\\(.)', lambda m: ma[m.group(1)], s)
print s
except KeyError:
# error
なんか、デジャブ
いつのまにかSphinxになったのね。
はい。
>>857 > オレの場合、翻訳作業はほとんどWikipedia間でやってしまうな。
がそんな意味になるわけねーだろww
おまえらショボいコードばっかり書いてないで毎晩セックスしろよ!
セックスばっかりしてないで少しはまともなコード書けと言うべき
874 :
アッー :2011/01/18(火) 23:35:56
アッー
python初心者です。valueがリストである辞書オブジェクトの差分を取るのにもっといい方法がないか考えてます。 a= {'tokyo':[1,2,3]} b= {'tokyo':[1,2,4]} とあった場合、取りあえずvalueを取り出してset(value_a)-set(value_b)で差分を取ってます。もっといい方法はないでしょうか。
そうするしかないんじゃない?
まずは辞書オブジェクトの差分を定義しよう
>>875 アプリ全体で方々で使うなら、その動きをclass化してもいいかもね。
dict(itertools.imap(lambda (k,v):(k,[x for x in v if x not in b[k]]), a.iteritems()))
おやすみ(^o^)/
いい夢見ろよ。
Pythonの勉強として掲示板などを作成しております。 HTML FormよりPOSTを受け取りたく fm = cgi.FieldStorage() name = fm["name"].value と記述しているのですが、 <input type="text" name="name"> に入力があればいいのですが、空でPOSTされるとキーエラーが出てしまいます。 これはどのように処理すべきなのでしょうか? からであれば"name"には""をいれたいとかんがえております。 tryを使って例外処理をするのでしょうか?
リストに入っているデータの順番をひっくり返す方法はありませんか。 [1,3,2]を[2,3,1]にしたいです。
>>883 ありがとうございます
そのページを読んでみます
name = fm.getvalue('name', '')
>>884 >>> a=[1,3,2]
>>> a.reverse()
>>> a
[2, 3, 1]
>>884 >>> a=[1,3,2]
>>> b=reversed(a)
>>> [c for c in b]
[2, 3, 1]
再帰関数の書き方によってはうまく動かないじゃないかこれ
黒魔術はPythonicじゃない...
黒python
なぜPythonのtimeは浮動小数点数を返すのですか? これをint()してしまえば秒までのtimeになるのでしょうか
>>896 数百ナノ秒単位で返されても
どうせ扱いやすい秒単位に直すからでしょ
intだけど実質longになっちゃうよね
もう業務アプリは嫌だお。
お前らくだらないコードとかつまらないブログ書いてないでセックスしてるのか? 今年に入ってから何回セックスした?
いちいち数えてない
>>900 3回くらいかな
そういえば、今年に入ってからブログを書いてなかった。ありがとう。
またruby厨が荒らしてますね
PythonにはPerlのstrictとかwarningモジュールみたいなのないの? 変数名間違って死にかけたんだが
mainでくくったらいいよ
IDEに頼ればいいんじゃね
pycheckerをつかう。
pylint
オライリーの本って、 初めてのXXXX or 入門XXXX ↑薄い、多言語は経験済みって人向け プログラミングXXXX ↑とにかく詳しくて分厚い、たまに詳説とか詳解とかつく って命名が多い気がするんだけど、python本はなんか違うよね
なぜならpythonは特別な存在だから
変数名を間違えたら普通例外が出ると思うのだが 一体どういう状況だ?
>>911 存在しない変数の値を参照しようとしたら例外が出るが
既存の変数に代入するつもりで名前を間違えた場合は
そういう名前の変数がつくられるだけで例外は出ないよ
やっぱりlintですね
なんだキャンディーの宣伝か乙
入門自然言語処理でPythonの勉強なりますか?
自然言語でおk
おkです。 どっちも勉強したいのですが少しかじった程度でも嫁ますか?
Inkscapeでムリヤリ描いたんだろう。
for a in b: while a < 100: print '''なんとかかんとか ああだこうだ どうしたこうした """ ↑トリプルクォーテーション使った書き方ってこうだよね? 若干ムズムズするんだけどこれ以外どうにもならない?
pythonは楽しいなぁ なんでこんなに楽しいんだろう
何を求めてるのか分からない
(^o^)/オヤスー
私はPythonを続けるよ!
>>916 Python未経験で今その本を読んでるところだけど問題なく読める
他の言語を知ってる人にはむしろ説明がくどいくらい
でもオブジェクト指向は範囲外と書いてあるからPython自体の習得が目的なら
あまり期待しないほうがいいかもしれない
集合知プログラミングはちょっと読んだけど、自然言語処理もAPIをたくさんダウンロードするの? sqliteとかnumpyを扱ってくれるのは嬉しいけどdeliciousのAPIの使い方を覚えてもいつ使うのか分からんしって感じだった
あれは学生にnumpyとmatplotlibを布教するための本。
929 :
921 :2011/01/22(土) 23:05:11
間違えてた for a in b: while a < 100: print '''なんとかかんとか ああだこうだ どうしたこうした ''' こうか・・・で、このインデントの掻痒感はどうにかならないの?
文字列を変数として定義すればいいんでは
世界中で考えてもまだ2.xより3.xで書いてる人ってまだ少ないよね? いつまでこの現象続くの?
しるかよ
Ruby が 2 になるまでさ
Python2軍は永遠に不滅です。
ruby派の荒らしか、また
なんていうかPythonて2.7で完成していて、3.xへ移行するメリットがないのかなって思ってるんです。 もうずっと2.7でいいじゃんって世界中が思ってるみたいな。
そうなる可能性もある うにこーど文字列とバイナリの区別は嬉しいけど
FrugalwareやArchに続けよ いや続いてよお願いだから
Python3に移行するのはそんなに難しくない 自作プログラムなら数時間でできるレベル だけど使っているサードパーティーのライブラリーが対応してないと厳しいよね
Google app engineが3.xに対応してくれればなぁ
2.7.1 2.7.2 2.7.3 : 2.7.999
944 :
デフォルトの名無しさん :2011/01/23(日) 13:59:21
2.8に限りなく近づくけど越えられないのか
2.8に漸近する
Python 2.7 2nd Edition とか Python 2.7 mkU とかでるよ
Python Ultimate Edition Python Enterprise Edition Python Premium Edition Python Professional Edition Python HomePremium Edition Python Basic Edition Python Compact Edition iPython Professional Edition With Python Professional Edition (Upgrade)
2.7.1828182845904523536 ...
Python Basic Editionでは、 同時に使えるモジュールは3つまでに制限されます。
きっついなー それ
Windows Vistaにそういうパッケージあったな。 途上国向けで、ウインドウが3つしか開けないっていう鬼畜。
いまでもOfficeのデフォは全画面だし 同時にひとつしか開けない情報途上者ばかりだ
iPhone の悪口はそこまでだ
あ?俺の悪口はやめろよ
もっとメモリ産業に貢献しろ
お前がiPhoneか
漏れは iPhoge だ
/ ̄ ̄ ̄\ / ⌒ ⌒ ヽ / ( ●)(●) | | (__人__) } うーっす /、. ` ⌒´ ヽ / | | | / ヽ_| ┌──┐ |丿 | ├──┤ | | ├──┤ |
寂しいお。
try: sex()
>>960 そのコードバグあるぞ
例外吐くんだが・・・
童貞未経験者ってことだよ 言わせんな恥ずかしい//
筆下ろしに興味があるということですか…それはそれは
もうそういうの飽きた。もっと上品なジョークが見たい
無理でし。
from riajuu import sex NameError: global name 'riajuu' is not defined こうですかわかりません
if real.is_satisfid() then
上品なジョークとか言われて頭パンクして綴りをナチュラルに間違えるのはやめろ
覚えているお前にびっくりだよ
おまえ本人だろ
python.jpってキモいな
>929 どうしたいのかわかんないけど print '''\ foo ''' print\ '''foo ''' print\ '''\ foo ''' print ( '''foo ''') print ('''\ foo ''') バクスラか括弧使う、括弧が好まれる傾向にあるらしい(『初めてのPython』) ヒアドキュメント(ドキュメンテーション文字列とかトリプルクォートコメント)内でインデント揃えたいとかいうのは間違え
奴隷は、奴隷の境遇に慣れ過ぎると、 驚いた事に自分の足を繋いでいる鎖の自慢をお互いに始める。 どっちの鎖が光ってて重そうで高価か、などと。 そして鎖に繋がれていない自由人を嘲笑さえする。 だが奴隷達を繋いでいるのは実は同じたった1本の鎖に過ぎない。 そして奴隷はどこまでも奴隷に過ぎない。 過去の奴隷は、自由人が力によって征服され、やむなく奴隷に身を落とした。 彼らは、一部の甘やかされた特権者を除けば、奴隷になっても決してその 精神の自由までをも譲り渡すことはなかった。 その血族の誇り、父祖の文明の偉大さを忘れず、隙あらば逃亡し、あるいは 反乱を起こして、労働に鍛え抜かれた肉体によって、肥え太った主人を 血祭りにあげた。 現代の奴隷は、自ら進んで奴隷の衣服を着、首に屈辱のヒモを巻き付ける。 そして、何より驚くべきことに、現代の奴隷は、自らが奴隷であることに 気付いてすらいない。それどころか彼らは、奴隷であることの中に自らの 唯一の誇りを見い出しさえしている。
1)記憶が足りない 2)努力が足りない 3)遠慮が足りない
どうでもいいじゃないか。
それは性格的な問題じゃないかな 目の前にすでに結果があるのに対して 懇切丁寧な説明がなされるまで納得しないような何か。
pass
ume
req = urllib2.Request('
http://hibari.2ch.net/test/bbs.cgi ',
urllib.urlencode({'bbs': 'tech', 'key': 1288342460, 'time': 0,
'FROM': 774, 'mail': 'sage', 'MESSAGE': self.message,
'submit': u'書き込み'.encode('cp932'), 'hana': 'mogera'}),
{'Referer': '
http://hibari.2ch.net/ '})
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
if '<!-- 2ch_X:cookie -->' in opener.open(req).read():
opener.open(req).read()
ニート生活を脱出してPythonプログラマーとして半年ぐらい働きたいんだけど Python使った開発で有名な会社ってありますか?自分は東京に住んでます。
Hatc(ry
ume
募集スキルとしては乾電池が入るかどうかが重要
ニートを集めて起業すればOK。 プログラミングやってるニートって要するにアスペ的な人間だから、 その辺のクソSIerのプログラマより知識とスキルあるでしょ。
クライアントは知識もスキルも求めてはいない 必要なのはコミュニケーション能力だ ニートには無理
アスペにも無理だな
ニートのことはともかくとして、 > クライアントは知識もスキルも求めてはいない > 必要なのはコミュニケーション能力だ こういうNTTデータ社長みたいな発言はやめてほしい。
結局知識とスキルとコミュニケーション能力だなw
さて死ぬか。
そうか、さみしくなるな
来世ではちゃんと働くんだぞ
働きすぎてもうしにたい 今日はもう帰るワーイ
埋め
角電池
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。