1 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 19:09:55 ] Pythonオフィシャルサイト www.python.org/ 日本Pythonユーザ会 www.python.jp/Zope/ まとめWiki python.rdy.jp/ 関連スレ find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python 前スレ pc11.2ch.net/test/read.cgi/tech/1223543412/
152 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 08:28:37 ] ありがとです。 そうですね、QTの話だなと思い直してググったら scim-bridgeという奴ならという情報があったので それを使ったら入力できるようになりました。 ただscimで入力できていたktermやFirefoxでは だめになったので、scimとscim-bridge並走状態… とりあえずはいいか… unicodeが普通に使えるようになってPyQt4での 日本語の扱いも楽になりましたね。
153 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 13:51:04 ] PythonインタプリタをPythonで作っているのですが、相談したい事があります。 現在入力中の文がコマンドとして 1 途中なのか、2 エラーなのか、3 コンプリートしたものか 判断する方法はないでしょうか? 1の例 for i in range(1, 3): ←これだけ入力されたら続きがある 2の例 j = foo() ←fooという関数はない 3の例 1+2 ←文として評価する事ができる アドバイス頂けたら幸いですm(__)m
154 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 14:10:53 ] Lib/code.py
155 名前:153 mailto:sage [2008/11/23(日) 15:08:54 ] >>154 ありがとうございます。 見てみまする。
156 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 15:13:15 ] >>153 pypy
157 名前:153 mailto:sage [2008/11/23(日) 16:20:16 ] >>156 なんですか、そのいやらしい名前は。 ありがとうございます。
158 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 19:59:53 ] >>152 scimでもscim-bridgeでもuimでも問題ないだろ。 つーかLANG=ja_JP.eucJPってどんな化石なディストリ使ってるんだよ。
159 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 16:16:54 ] >>156 マジで有るのか。 「パイパイいれていじってみたんだけど良いなコレ。」 「パイパイちょっと触ってみたんだけど、まだ発展途上じゃね?」 みたいな会話が繰り広げられているのか。
160 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 19:50:05 ] こんなプログラムが必要になった。 temp=lst[i]; lst[i]=-1; i=temp #(1) pythonではこんな見苦しい一時変数は必要ないもんね。と思い次のように書いた。 i, lst[i] = lst[i], -1 #(2) 賢明な諸兄はお気づきかと思うが、このプログラムは上手くいかない。 半日悩んだ結果、次のように書けばよいことが判った。 lst[i], i = -1, lst[i] #(3) で、教えて欲しいんだけど、(2)が駄目で、(3)なら良いというこの動作は うちの環境ではたまたま動くだけ? それとも公式に規定された動作ですか? ### 結局、プログラムは(1)の書き方で完成しました。
161 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 20:15:08 ] これのWARNINGのところじゃない? www.python.org/doc/2.5.2/ref/assignment.html www.python.jp/doc/release/ref/assignment.html
162 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 20:27:12 ] >>160 www.python.org/doc/2.5.2/ref/assignment.html > If the target is a target list enclosed in parentheses or in square brackets: > The object must be a sequence with the same number of items as there are targets > in the target list, and its items are assigned, from left to right, to the > corresponding targets. 左から右の順で代入するとあるので公式に規定された動作といえそう。
163 名前:デフォルトの名無しさん [2008/11/25(火) 03:29:32 ] Rubyだとruby会議みたいなイベントが全国であるけど、 Pythonにもそういうイベントってある?
164 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 08:34:11 ] >>163 PyConじゃね?
165 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 08:56:23 ] ttp://pyspa.org
166 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 09:37:52 ] ないわ〜
167 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 11:56:27 ] >>163 残念ですが、なくなったようです。
168 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 12:52:26 ] だからRubyやれって!
169 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 17:18:14 ] >>167 PyConって無くなったの? 知らなかった...orz....Pythonもうダメだ....。
170 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 17:19:02 ] そうだねRubyもうダメだね
171 名前:デフォルトの名無しさん [2008/11/25(火) 17:34:31 ] >>167 =>>169 おい、デマばっか流してんじゃねーよ。 PyCon は今年もあったし、来年もちゃんとある。 www.python.org/community/pycon/ せいぜいお前は Python の人気を妬む Ruby使いってとこだろうが、 大人気ないぞ。
172 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 17:36:51 ] Ruby使いがPythonの「人気」に嫉妬することはなかろ
173 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 17:46:13 ] >>167 ダンジョー乙
174 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 18:01:24 ] だからRubyやれって! 日本でpython使うメリットなんてないんだよ。
175 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 18:27:39 ] rubyにnumpyに相当するものあるの?
176 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 18:45:13 ] Ruby 使いは痛々しいな。。。 なんだ >>174 は、 恥というものを知らんのか。
177 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 18:56:11 ] >>173 いいえ、ターボギアスR2です。
178 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 19:01:46 ] またruby厨が荒らしてるよ
179 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 19:19:21 ] >>174 惨めなやつ!
180 名前:160 mailto:sage [2008/11/25(火) 20:06:14 ] >>161 ,162 なるほど、ちゃんと公式ドキュメントに書かれてたんですね。 「are not safe 安全でない」の解釈が微妙ですが、 規定された動作と考えてよさそうですね。 勉強になりました。ありがとうございました。
181 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 20:20:07 ] LinuxのX端末上で文字の色を反転させて出力する方法はありますか? 例えば、 txt="abcdefg" 5番目と7番目(インデックス4と6)の文字の表示色を反転 print txt みたいなことを望んでいます。
182 名前:181 mailto:sage [2008/11/25(火) 20:24:00 ] 追記 文字と文字の背景の色を反転という意味です。
183 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 20:58:49 ] もちろんできます。
184 名前:sage [2008/11/25(火) 21:00:56 ] エスケープシーケンス使えば。 www.siafoo.net/snippet/88 もっと凝りたいなら、cursesで。
185 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 21:03:19 ] X端末なつかしいな。
186 名前:181 mailto:sage [2008/11/25(火) 22:33:33 ] >>184 ありがとうございます。 エスケープシーケンスを使うことにしました。
187 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 14:44:10 ] >「are not safe 安全でない」の解釈が微妙ですが、 「全く安全という訳ではない」
188 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 19:02:41 ] turbogearsスレにも書いたのですが、過疎ってるようなのでこちらで質問させてください。 turbogearsを構成している各eggファイルをダウンロードして、turbogearsのインストールを行いたいのですが、 公式サイトのファイルリストのどのファイルをダウンロードすればいいのでしょうか。 ちなみにWindows環境です。
189 名前:デフォルトの名無しさん [2008/11/26(水) 19:15:30 ] ttp://nagosui.org/Nagosui/Misc/Turbogears/turbogears-install-on-windows
190 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 19:20:15 ] docs.turbogears.org/1.0/Wiki20/Page1?action=show&redirect=1.0%2FGettingStarted docs.turbogears.org/1.0/Wiki20/Page1
191 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 19:27:41 ] >>189 ご紹介いただいたページは既に拝見しました。 プロクシ環境なのでこの方法が使えません。 そこで、上記サイトのオフラインインストールマニュアルを見たのですが、 "基本的に最新バージョンの各パッケージのeggファイルを落とせばいいけど、lightbox等の一部のパッケージは除く"みたいな表現があったので、悩んでます。 これらのファイルはダウンロードしなくていいって事なんですかね?
192 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 19:35:23 ] いいんじゃない?
193 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 19:38:57 ] >>192 そうですか。では、インストールしてみます。 ありがとうございました。
194 名前:デフォルトの名無しさん [2008/11/27(木) 00:00:43 ] 質問です。 Pythonで数独を解くプログラムを書きました。 色々いじってPenIII933MHzでPsycoなしで70秒、Psycoありで 25秒くらいで回答できるようになりました。 さらに高速化しようとboost.pythonを利用してC++に 移植したのですが返って遅くなってしまいました。 何が原因でしょうか?必要であればソース出します。
195 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 00:11:03 ] >>194 よくわかんねえな。つうかそんなの組み方次第じゃないの。 数独解くプログラムって ttp://codepad.org/T5tQp3vL こんなもんでいいの? C/CLLなら瞬殺だと思うけど。
196 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 00:11:58 ] >>194 >PenIII933MHz ワーキングプアかよ(wwWwwwWWWwwwwWwwWwwww
197 名前:デフォルトの名無しさん [2008/11/27(木) 00:26:59 ] >>195 回答ありがとうございました。ほとんど同じコードをPythonで書いていました。 あまりC++が詳しくないので、おっしゃられるとおりC++での組み方が 悪いだけなのだと思います。勉強しなおしてきます。
198 名前:195 mailto:sage [2008/11/27(木) 00:44:36 ] CLLって何だw C++のtypoね >>197 ロジックが同じようなもんなら、とりあえず以下の点が疑わしいかなあ ・最適化していない(コンパイルオプションの問題) ・最近のVC++を使っているなら、vectorとかを使うと、[]演算子でもデフォルトで 範囲チェックがなされている可能性が高い(俺も細かいことは知らん)
199 名前:デフォルトの名無しさん [2008/11/27(木) 00:57:35 ] >>198 Pythonでは ttp://codepad.org/3jRpg91x という感じでした。 C++はおっしゃられるとおりvectorを多用していました。 boost.pythonがどうこういう以前の話だったようです。 勉強になりました。
200 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 01:07:40 ] おお、すごい2chにpostで投稿できた。
201 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 01:07:55 ] >>199 vector<>は別に悪者じゃなくて、C++ならそれが普通なんだけどね VC++は最近セキュリティがらみで色々やってるみたいだから SECURE_SCLだったかな?そのへんのキーワードでぐぐってみるといい
202 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 01:10:31 ] >>198 スレ違いだが、vectorの仕様では、 oprator[]は範囲チェックなし、 範囲チェックしたければメンバー関数at(i)を使うことになっている。
203 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 01:12:55 ] >>202 仕様ではそうなっていてもVC8以降は_SECURE_SCLが効いてると operator[]の範囲チェックをするようになっていた気がする だから、[]演算子「でも」と書いたんだけどね
204 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 05:32:11 ] vectorは要素コピーしまくり
205 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 05:34:04 ] Dequeに置き換えるだけで速くなる
206 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 06:17:44 ] >>196 PIII800MHz 192MB ですがなにか?
207 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 08:07:04 ] PenII266を現役で使用してるんだが・・・
208 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 08:23:41 ] cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) res1 = opener.open(req) if '<!-- 2ch_X:cookie -->' in res1.read(): opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) res2 = opener.open(req)
209 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 08:27:50 ] ぱい
210 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 10:41:28 ] 質問させてください。 pythonで一番メジャーなパッケージマネージャは何ですか? 調べてもあんまり出てこないんですよね・・。
211 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 10:53:26 ] >>210 easy_installじゃないの?
212 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 12:26:52 ] うちのファイルサーバーはpenIII 800だ
213 名前:デフォルトの名無しさん [2008/11/27(木) 13:34:53 ] >>194 つか、遅すぎなんだけど。なにそれ。やる気あんの? boost とか使う前にアルゴリズムを改良しろよ。 まずは CSP 学べ。
214 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 13:43:26 ] 産業廃棄物をサーバとして使うなよ(wwWwwWWWwwwwwWwWwwwwWwwww
215 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 14:18:44 ] 総当りでもしてるのかな?
216 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 14:26:15 ] >>215 総当りに近いんじゃね? 25秒とか、古い Pen II でもありえんよ。 CPU が P3 933Mhz もあるんだったら、半秒以上かかる sudoku solver 書いた時点で負け。
217 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 14:31:22 ] コードは上にあがってるじゃん
218 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 14:56:20 ] >>199 のコードに if __name__ == '__main__': import sys main(sys.argv[1]) を付け加えて、 530070000 600195000 098000060 800060003 400803001 700020006 060000280 000419005 000080079 とかいう入力を与えてみたけど、一瞬だったけど? time の結果が0.25秒程度 別にPsycoとか使ってねー PentiumM 1.7GHz Windows XP SP3 Python 2.5.2
219 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 15:01:05 ] >>194 それって25*25でってこと?
220 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 15:14:04 ] っと、コードが晒されているのか。 (少なくとも)3種の枝刈り手法があったと思ったが、どれもやってないの?
221 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 15:16:32 ] 81マスに9通りの数を置くだけなんだから、総当りだってゴミみたいな計算量だろ 上でやってるのはごくシンプルなバックトラックだよ 数十秒とか絶対ありえん
222 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 15:17:26 ] いやさすがに総当りはないか、訂正するw
223 名前:221=222 mailto:sage [2008/11/27(木) 15:18:47 ] 「総当りがゴミ」を訂正するという意味、重ね重ねすまん
224 名前:194 mailto:sage [2008/11/27(木) 16:01:18 ] >215,216,220,221 221さんが指摘されているとおりシンプルなバックトラックです。 他のアルゴリズムも勉強してみます。 >213,218,221 218さんが検証してくださっているとおり簡単な問題は 1秒未満で回答できます。紛らわしくてすいません。 ttp://www.sudoku.name/index-jp.php の問題を使用しているのですが上級++で 004000080 003007000 600800009 030002500 070080090 005000030 200001007 000400100 050000600 というような問題の回答が遅いです。 220さんがおっしゃっているようにアルゴリズムの工夫で 何とかしてみます。ありがとうございました。
225 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 16:32:27 ] 枝刈りしたら、この上級++の問題、数十倍速く解けるみたいだよ。 がんばって。
226 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 17:16:13 ] PyQtを使ったプログラムはソースを公開しないといけないの?
227 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 18:32:35 ] ユーザーはともかく、クリエータはGTK(GNOME)の方が多いだろう GTKがLGPLなのに対して、QtはGPLか最近のtool kit としては高額の 有償ライセンスかのいずれか 利用できる人間は、どうしても限られてくる
228 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 21:04:28 ] turbogearsの2.6対応まだなのー?
229 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 02:59:53 ] おれも最近sudoku作ったよ!ナカーマ どっかのホームページで数独の問題集があって、難易度ごとに別れているんだけど 最強難易度の一番最後の問題(たぶん94番目)を解くのに3秒くらいだったよん。 ==環境== WinXP ActivePython 2.5.2.2くらい Core2Duo1.7GHz
230 名前: mailto: [2008/11/28(金) 10:47:18 ] foo = "hoge" bar = "fuga" TITLE = {"title":foo - bar} print TITLE["title"] これで hoge - fuga と出力したいんだけど "foo - bar"で引用符で囲むと foo - barになる。 囲まないとエラーになる。 どうすれば hoge - fuga に出来ますか?
231 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 11:00:31 ] なんかえらい基本的なことが抜けてる気がするぞ ちゃんと勉強汁 foo + " - " + bar "%s - %s" % (foo, bar)
232 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 11:15:59 ] >>224 >>195 の、単純なバックトラックのCのコードですら その問題は(俺の環境では)0.35秒ぐらいで解けるようだよ アルゴリズム改善がベストだが、C++で書いても そんなに遅いのは、別の理由もありそうだな
233 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 11:21:11 ] \x00とすると16進数で8ビット文字列を作れますよね。 16進数を作ってから、\xとつなげるにはどうすればいいですか? "\x%x"のように文字列フォーマットを使おうとするとエラーになってしまいます。
234 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 11:22:44 ] "\\x%x"で定義してから、置換すればいいんじゃね?
235 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 11:25:31 ] できないじゃないですか。
236 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 11:26:19 ] 素直にchr()使いなさい。
237 名前:デフォルトの名無しさん [2008/11/28(金) 11:30:51 ] printf("%c", 0x25); こんな感じ
238 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 12:18:40 ] >>237 chr(0x25)
239 名前: mailto: [2008/11/28(金) 12:36:35 ] >>231 おぉ! + を使って繋げるのか TITLE = {"title":foo + " - " + bar} print TITLE["title"] hoge - fuga と、無事にできました でも、これが分かりません orz > "%s - %s" % (foo, bar) プログラム経験は昨日からです... www.python.jpを見ながら勉強してます
240 名前:225 mailto:sage [2008/11/28(金) 12:55:52 ] >>229 試してみる。どんな問題?
241 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 13:51:06 ] Pythonのオススメの統合開発環境は何ですか?(日本語化可能だと有難いです PyScripterはバグが多く、使いにくかったです…
242 名前: mailto: [2008/11/28(金) 15:10:40 ] >>241 テキストエディタでいいじゃん
243 名前:デフォルトの名無しさん [2008/11/28(金) 15:15:29 ] >>241 Vimを +python でコンパイルしたもの
244 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 15:26:20 ] >>240 ttp://www.sudoku9981.com/jp/print/extreme.asp の94番目のやつ
245 名前:225 mailto:sage [2008/11/28(金) 15:46:29 ] >>224 ありがと。 0.98秒くらいだった。ハードのスペック違うけど。 Vista CPython 2.6 PentiumM 2.1GHz
246 名前:225 mailto:sage [2008/11/28(金) 16:31:33 ] ごめん、訂正。 3回くらい実行したら、最短で0.2秒くらいだった。
247 名前: mailto: [2008/11/28(金) 16:47:05 ] チュートリアルでさえ難しいです 誰か僕に愛の手を
248 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 16:51:58 ] どこがわからないか*具体的に*いってみ
249 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 16:52:45 ] チュートリアル難しいよねえ。 まあ地道にコード打ってがんばろう。 てなことで今数独問題生成・解答アルゴリズムを考えてる。
250 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 17:17:26 ] BeginnersGuide/NonProgrammers - PythonInfo Wiki wiki.python.org/moin/BeginnersGuide/NonProgrammers
251 名前: mailto: [2008/11/28(金) 17:43:16 ] >>248 >"python file" と "python <file" の違いに注意してください。 >後者の場合、プログラム内でinput() や raw_input() が呼び >出され、ユーザからの入力が必要な場合、入力はファイル から >取り込まれます。この場合、パーザはプログラムの実行を開始 >される前にファイルを終端まで読み込んでおくので、プログラム >はすぐに入力の終わりまで到達してしまいます。前者の場合 >(大抵はこちらの方が望ましい動作です)、入力には Python >インタプリタの標準入力に接続された何らかのファイルまたは >デバイスが充てられます。 まず最初に意味が理解できなかった所です。
252 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 18:01:08 ] perlの場合は両方ともfileを実行するが pythonは違うから注意しろってことだろ