1 名前:デフォルトの名無しさん [2008/04/29(火) 23:47:08 ] Python オフィシャルサイト ttp://www.python.org/ ttp://www.python.org/doc/ 日本Pythonユーザ会 ttp://www.python.jp/Zope/ ttp://www.python.jp/doc/ FrontPage - Pythonのお勉強 ttp://python.rdy.jp/ 前スレ pc11.2ch.net/test/read.cgi/tech/1206876081/ ◆関連スレッド Microsoft IronPython 1.0 pc11.2ch.net/test/read.cgi/tech/1157686822/ Python の宿題ここで答えます Part 1 pc11.2ch.net/test/read.cgi/tech/1153585095/ Python Challengeをやろう! pc11.2ch.net/test/read.cgi/tech/1175919288/ Pythonについて(アンチ専用) pc11.2ch.net/test/read.cgi/tech/1203557046/ Pythonに見られるインデントによる制御構造の是非 pc11.2ch.net/test/read.cgi/tech/1169473442/ pythonがこの先生きのこるには pc11.2ch.net/test/read.cgi/tech/1167996371/ Eclipse統合M24【Java/C/PHP/Ruby/Python/Perl】(PyDev) pc11.2ch.net/test/read.cgi/tech/1200918324/ 【Perl,PHP】LLバトルロワイヤル2【Ruby,Python】 pc11.2ch.net/test/read.cgi/tech/1209289408/ デザパタ + Python/Ruby/Smalltalk part2 pc11.2ch.net/test/read.cgi/tech/1175959706/ 2ch検索: [python] find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python
175 名前:Free Tibet mailto:sage [2008/05/06(火) 23:57:15 ] >>167 オライリー信者乙
176 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 00:20:38 ] >>175 そんな、人類の足引っ張ることしかできない悲しい奴みたいな言い方しないで 前向きに行きましょうよ。
177 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 00:24:08 ] 「きさま、マック信者だな?」
178 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 00:25:34 ] 「きみはゆくえふめいになっていたマックじゃないか」
179 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 08:13:21 ] >>169 JythonやIronPythonだと速くなるかも知れない。 CPythonだと複数スレッドを同時に動かせないんで速くならない
180 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 11:57:52 ] Python絡みで信頼のおける日本人って 柴田さんしか居ない状況? 他の人ってあっちの人と話したことないよね
181 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 12:01:59 ] >>180 んなこたあない もっと偉い人はいる 多くはないけど
182 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 12:02:11 ] >>180 あっちの人と話したことがある=Python絡みで信頼のおける日本人 と言う事ならmatz
183 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 12:04:01 ] 多くの日本人Pythonistaは引きこもり
184 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 12:04:28 ] 柴田さんは信頼できるの?
185 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 12:04:50 ] 個人攻撃が始まった(www
186 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 13:18:23 ] 自分以上の人間を言いがかりで叩くって 気持ちいいんだもん。
187 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 13:57:56 ] 柴田淳はじまったな。
188 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 14:09:25 ] >>182 ブレース採用の話しかしてないじゃんかw そういう意味じゃなくて、 開発者が誰で誰がどれを担当していて 今どのモジュールが開発中もしくは放棄中とか そういった情報を知ってる日本人のことだよ。
189 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 14:15:11 ] 186が184をカス認定している件。
190 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 14:29:11 ] >>188 ある程度ならsvnのコミットのログとか ソースコードのコメント読めば分かるんじゃないか
191 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 16:00:25 ] pygame.orgの英文をなんとかしてほしいんだよね 英文を読んでまでのヤル気が必須になってるから 興味もった素人達にとっては敷居が高すぎる。 ただでさえわからないプログラム解説を、わからない英語で解説されるわけだから。 誰か、日本語翻訳サイトつくってよ 翻訳だけの協力でもいいよ、 俺がサーバー借りてサイト作ってもかまわない サイト作りは出来るから。 なんなら、このスレのみんなでpygame公式サイトの日本語解説版作っていかないかな?
192 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 16:03:18 ] まずはお前が率先して道を示せ。 話はそれからだ。
193 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 16:53:27 ] ほとんどSDLのラッパーなんだからSDLをさらっと習得しちゃえば なんとなくわかるっしょ。
194 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 17:47:19 ] >179 >CPythonだと複数スレッドを同時に動かせないんで速くならない そうなの?俺の持っている本では、 執筆時点(2006?)でフォークはWindowsのPythonでサポートされていない けど、スレッドはすべてのプラットフォームのPythonでサポートしている・・・ みたいな事かいてあるよ。なのでサポートしていると思うんだけど、違うの?
195 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 17:54:04 ] どこのクソ本だよそれ。
196 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 18:06:26 ] >>194 C記述の拡張コードがマルチスレッドを考慮していないので Python上ではマルチスレッドでも実質グリーンスレッド状態になる。 ちゃんとしたマルチスレッドな動作を期待するならJythonやIronPythonになるかな。 文脈でわかるのかもしれないけど「スレッド」といってもいろいろ観点があるから。 >>195 まちがっちゃいないけど説明不足でミスリードしちゃいそうだね。
197 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 18:13:21 ] >>194 俺の理解では、Python のスレッドは交互に動いている。つまり、ある時点において1つのスレッドしか動かない。 だから、同時に(並列で)動くことを期待しているマルチスレッドプログラムは速くはならない。 >>170 さんの言うように、あるスレッドが入力待ちをしていて、別のスレッドがGUIを司る、というような マルチスレッドプログラムならば期待通りに、一見並列に動く。 こういう実装になっているのは、種々のモジュールにスレッドセーフであることを要求するのが困難だから。 間違ってたらゴメス
198 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 19:08:58 ] 194です。 なるほど。私が本のスレッドの説明の最初のとこだけしか読んで なかったので、勘違いしてました。 もうちょっと読むと>197がいうとおりのような事も書いてました。 「いつでも1つだけのスレッドしか動いていない」って感じで。 現状(2006年?)ではスレッドを複数のCPUに分配できない、み たいなことも書かれてた。 という事は計算が速くなるわけないですね。>170みたいな用途に 限る、ということか。
199 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 19:09:16 ] >>183 自分一人の例を全員の例のように敷衍するひとのひとりですね
200 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 19:12:07 ] >>191 ttp://www.halb-katze.jp/pygt/
201 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 19:49:30 ] >>191 > 英文を読んでまでのヤル気が必須になってるから > 興味もった素人達にとっては敷居が高すぎる。 敷居が高過ぎると思ってしまうのは、その人自身の勝手な固定観念なんだけどな あと敷居が高過ぎると思って、よりつかない人は、そこまでのモチベーションしかないんだと思うよ 人に聞いているようでは、マジで駄目なんだよ > 俺がサーバー借りてサイト作ってもかまわない > サイト作りは出来るから。 > なんなら、このスレのみんなでpygame公式サイトの日本語解説版作っていかないかな? 個人的、希望だが、英文のpygameを学習する際に頻出する英単語帳をつくったりとか、 英文を読み解くためのテクとかを、補助ツールを扱うwikiを作ってくれ 頻出する英単語を500語に厳選して、暗記すれば、かなり読み解けると思うよ 調べるためにググる際も英文の方のほうがひっかかるし、内容が高いことが多い Wikipediaも英語版のほうが内容が豊富だし、すごくマイナー単語も載っているし 英文には、絶対慣れたほうがいいよ あとわざわざ翻訳すると逆に読みづらくなるし、理解も難しくなる これは、既出? www.unixuser.org/~euske/doc/pygame/ あと下の本をどういう読み方でもいいから、読んで感想を聞かせてほしいところだね Amazon.com: Beginning Game Development with Python and Pygame: From Novice to Professional (Beginning from Novice to Professional): Will McGugan: Books ttp://www.amazon.com/Beginning-Game-Development-Python-Pygame/dp/1590598725/ とりあえず、wikiをつくって、2chに晒してみたら? 協力してくれる人もいるかもしれないよ
202 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 19:54:46 ] マルチcore対応のスレッドが使えるスクリプト言語を実装するのは難しいの? Rubyも結局1つでしか動かないらしいし。
203 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 20:08:34 ] pygame翻訳しろの話は、くだすれPythonスレとマルチになってたんだな。
204 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 20:11:45 ] pygameスレにも貼ってあった
205 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 20:17:16 ] pygameなんてなんか人前で言いづらいな。
206 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 20:18:59 ] こういうのって勝手に翻訳して公開していいんだっけ? まぁ事後承諾だろうと拒絶されるこたまずないだろうからどーでもいいんだろうけど ゲーム用にしか聞こえないよなw
207 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 20:22:24 ] >>202 言語自体は各スレッドにインタプリタを1つずつ用意することで簡単に並列化できると思われ。 問題は膨大な量のライブラリモジュール、特にC等で書かれたライブラリのバインディングだ。 スレッドセーフでないライブラリは統合不可ということになる。つまり言語として制約が大きい。 大域変数でメモリ管理ってのは割とありがちだけど、これはスレッドセーフではないのでNG。 こういうものを除外していくとどんどん言語としての有用性が下がっていく。 代替品の再実装なんてやってられん。PythonにしてもRubyにしてもそんなところだと思われ。
208 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 20:24:13 ] pygameがLGPLだからドキュメントも同じ扱いになるんじゃないか? ちゃんと調べてはいないけど
209 名前:207 mailto:sage [2008/05/07(水) 20:41:33 ] あんま関係ないけど、OpenMPで並列化されたライブラリを拡張モジュールとしてPythonに組み込んだことがある。 これだと並列化がモジュール内で閉じてるから何も問題ない。 俺はOpenMPで並列化された線形解法ライブラリのラッパを書いてPythonに組み込んだ。フツーに使えた。 ただし、Intel C コンパイラの場合はPython一式を -openmp オプション付きでコンパイルする必要があった。 あと、PythonでMPIプログラムを書いてマルチコア環境で実行するというアプローチもあるね。 これだと真に並列に動作するはず(マルチスレッドプログラミングと同じ要領というわけにはいかないけど)。 Python用のMPI実装にはいくつかあった希ガス。
210 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 20:53:31 ] PythonのWikiエンジンってあったんだね 知らなかった 使い勝手は、どうなの? Python製Wikiエンジン"MoinMoin"、日本語化担当者募集 www.python.jp/Zope/PyLog/1210080971
211 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 21:09:58 ] moinmoin.wikiwikiweb.de/WikiEngineComparison 比較ページを見つけたけど、いい事しか書いてないなぁ。 まぁMoinMoinのサイトだから仕方ないか。
212 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 22:00:43 ] >>207 勉強になった。 スレッドセーフなモジュールを分類してかき集めるってプロジェクトがおこっても 良さそうとか思ったけど見つけられなかった。いろいろと難しいことがあるのかな。
213 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 22:46:07 ] >210 昔、自サイトでつかってたけど、まあ中の上ぐらいかしら。 設計はそれなりに綺麗で、たとえばpybloxsomとかから エンジンだけ利用してレンダリング、とか、pyblosxomの 間で相互リンク、とかできた気がする。 ただ、見た目のきれいさとかはないけどね(デフォルトの設定では)
214 名前:Tracの方が良いよな mailto:sage [2008/05/08(木) 00:07:36 ] 先に言っておく。この話題で MoinMoinじゃなくてTracの方がいい なんて思ってる人は、何かがずれていると自覚したほうがいい。
215 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 10:54:55 ] MoinMoinで気に入ってるのは Pythonのソースを表示すると 色分けで表示するってやつかな。 あと微妙に軽い。 欠点として‥登録ユーザじゃないと ページ変更時刻がUTCで記録されてしまう。 これが地味に嫌だ
216 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 13:12:49 ] 以前、翻訳してみようとWikiを作ってみたけど頓挫しているサイト Displayモジュールの一部しかまだ翻訳してません ぶっちゃけ翻訳の作法とかよくわからないし・・・ pygame日本語ドキュメント wiki.livedoor.jp/py_gamer/d/FrontPage 手伝ってくれる人がいたら嬉しい ちなみにMLで聞いてみたところドキュメントもLGPLらしいね
217 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 13:41:35 ] >215 今使ってないからなんとも言えないけど、 Config.tz_offset ってのを書換えれば良さそうですが... (デフォルトのタイムゾーン)
218 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 13:43:15 ] もいんもいん
219 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 14:19:37 ] >>212 調べたことないけど、スレッドセーフなモジュール(特にC等で書かれた拡張モジュール)は ほとんど無いんじゃないかなあ。 例えばCでマルチスレッドのプログラム書いてみると分かるんだけど「このコードはスレッドセーフです」って 言い切るのって結構大変。呼び出しているライブラリ関数がスレッドセーフかどうか逐一確かめて回らないと いけないから。逐次プログラムの一部分だけをマルチスレッド化できるOpenMPがいかに便利かを実感する。 その点、Java は最初からマルチスレッド対応だから楽チン。 マルチスレッドで真に並列動作するPythonを実現するための一番の近道はJythonだろうね。
220 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 15:12:06 ] そのレベルの話であれば、Javaがマルチスレッド対応だから楽ちんだなんてとてもいえないと思うけど。 同期とかの方法と、VMのメモリモデルが規定されているだけでしょ。 結局、使うAPIとかライブラリがMT-Safeかどうか調べなきゃいけない。標準のAPIについては大体書いてあるけど。
221 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 21:21:29 ] >>216 今すぐは無理だけど、暇があったら手伝いたい。 勝手に編集してもいいの?
222 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 23:20:40 ] >>216 >>221 おまいらがんがれ。 wikiで自分が翻訳したページを他人に修正されると、なんか一瞬犯されたような気分 になったりするけどそんなケツの穴の小さいことは気にしないでがんがん翻訳してくれ。
223 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 23:26:05 ] >>222 気にしてるじゃねーかw
224 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 23:56:46 ] 正規表現検索で "from A import B, C, ..." という文字列から A, B, C, ... の部分を抜き出したいんだけど、 正規表現のグループマッチングだけでは対処できない? re.findall("from\s+(識別子)\s+import\s+(, (識別子))*", source) # 識別子=[\w][\w\d]* ってやって出てきたマッチオブジェクトは "A" "B" ",C" "C" っていうふうに、カンマ込みででてきてしまう(当たり前だけど) "A" "B" "C" だけ抜き出したい場合はやっぱりその他の文字列処理しないとだめ?
225 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 00:35:11 ] 非グループ化の(?:...)が使えないかな
226 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 00:41:18 ] >>224 [A-Z]
227 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 00:48:28 ] re.findall('[\w*]+', src) して from と import を filter
228 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 00:56:39 ] >>255 おお、こんなべんりなものが! import re source = """ from A import BB from A import CC,DD """ print re.findall("\s*from\s+([\w\d]+)\s+import\s+(?:,?\s*([\w\d]+))+", source) とやってみた。これだと "from 3 import , 4, 5" にもマッチしちゃうけど、 そもそもソースのコンパイルが通る事が前提だから、この簡略化した 判別方法でもOKだという事に気づきました。 が、 上記コードを実行すると [('A', 'DD')] という結果になります。期待していたのは A, BB, A, CC, DD なんですがグループの繰り返しだけでは取得できないのでしょうか
229 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 01:37:49 ] 正規表現である必要ってあるの? こういうなの↓の方が簡単でよくない? s = "from foo import a, b , c" f = s.split() assert f[0] == "from" and f[2] == "import" buf = [] for name in f[3:]: if name == ",": continue if name[-1] == ",": name = name[:-1].strip() buf.append(name) print buf
230 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 01:41:52 ] >>228 \w は数字ともマッチするわけだが。 一回、正規表現について勉強しなおしたほうがいいんじゃね?
231 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 01:44:41 ] urllib2
232 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 02:32:46 ] print re.findall('(w)+', 'ABCD') 結果: ['D'] グループの繰り返しだと、最後だけしか取り出さないみたいだね。
233 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 11:44:42 ] (\w)+は後続文字が\wじゃない時にマッチしているみたいだけど >>> re.findall(r'\w', 'ab^cd_ef.gh ij$hi') ['a', 'b', 'c', 'd', '_', 'e', 'f', 'g', 'h', 'i', 'j', 'h', 'i'] >>> re.findall(r'(\w)+', 'ab^cd_ef.gh ij$hi') ['b', 'f', 'h', 'j', 'i'] >>> re.findall(r'\w\b', 'ab^cd_ef.gh ij$hi') ['b', 'f', 'h', 'j', 'i']
234 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 16:23:44 ] 【平均年収】岩手県の就職【365万円】 [就職] 【岩手県南】一関第一・水沢・花巻北・黒沢尻北高校 [お受験]
235 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 17:07:07 ] 何の誤爆かと思ったらおすすめ2ちゃんねるか
236 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 17:26:46 ] 同郷がいるな!? 岩手のコンビニのバイトは時給620円がデファクトスタンダードだぜ そして最低賃金が全国最低で自殺率全国2位という素晴らしい県 スレ汚しスマソ
237 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 18:44:32 ] >>236 いや、君ひとりかもよ?w 俺もここと恐らく俺の他には誰も見ていないであろうスレ(語学板の某マイナー言語のスレ)を 交互に訪れていたらそのスレがおすすめ2ちゃんねるに出たことあるし。
238 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 18:49:17 ] 日本では岩手県が一人当たりのPython消費量が多いらしい
239 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 18:59:25 ] >>237 どっちも見たこと無い
240 名前:デフォルトの名無しさん [2008/05/09(金) 22:58:35 ] 水虫が感染した
241 名前:デフォルトの名無しさん [2008/05/09(金) 23:03:51 ] 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇 死ね糞天皇
242 名前:デフォルトの名無しさん [2008/05/10(土) 02:37:18 ] インタプリタ中で定義した関数を、後から (バイトコードではなく)テキストで定義 を参照する簡単な方法ってある?それとも 難しい? >>> def f(x): return x >>> deffn(f) f(x): return x のような感じで
243 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 03:13:59 ] >>242 ファイルにあるやつなら insepct.getsource で取れる
244 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 04:27:34 ] >>169 Parallel Python というパッケージがあるのを知ったので参考までに紹介しとく。 www.parallelpython.com/ スレッドじゃなく複数プロセスで並列実行する仕組みらしい。 Python のみで実装されていて非常にシンプルなパッケージ構成になっている。 マルチコア環境の場合はスレッドモジュール風に使える。 クラスタ環境では各ノードで計算サーバ(ppserver.py)をしておく仕組みになっている。 応用プログラムはどちらの環境でも同じにできるっぽい。 手元の共有メモリマシンで付属サンプル(sum_primes.py)を実行したら下のようになった。 素数の和を計算するプログラムなのでプロセス間通信はほとんどないけど、 並列化のオーバヘッドはあるわけで、なかなか良好な結果だと思う。 並列度,実行時間(秒),速度向上率 1, 17.54, 1.000 2, 8.781, 1.998 4, 4.424, 3.965 8, 2.261, 7.759
245 名前:169 mailto:sage [2008/05/10(土) 13:53:14 ] >>244 おおお,サンクス! 早速いじってみまふ。
246 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 14:12:25 ] どうでもいいから ちゃっちゃとpygameの資料和訳 作業に入れよ。 非国民か?
247 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 14:41:50 ] >>246 国際人には和訳などいらんのだよ
248 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 14:46:02 ] 真の国際人は地域文化を尊重するものだ と混ぜっかえしてみる
249 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 14:48:20 ] 地域文化を尊重するから 現地の言葉を尊重するのだよと
250 名前:247 mailto:sage [2008/05/10(土) 14:48:29 ] >>248 (・ω・)つ おざぶとん
251 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 15:03:20 ] 早く日本語化プロジェクトに参加しろよ。 お前らにpygameの未来がかかっている。
252 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 15:13:29 ] ユーザからの入力を正規表現で処理したいと思ってます。 入力された文字列に正規表現が含まれてる場合にそれをエスケープしたいんだけど、どうやったらいいのかわかりません。 誰か助けてプリーズ・・・
253 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 15:16:19 ] 英語も読めないようなやつがpygameを使えるようになるとは考えにくい。
254 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 15:57:14 ] たぶんリファレンスの和訳よりも、各オブジェクトを絡ませた逆引きサンプルコードみたいのが需要あると思うよ。 扱い方が理解できりゃオブジェクト名で大体想像できるし
255 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 16:08:18 ] リファレンスぐらいなら簡単に訳せそうに見えるね 試しにpygame.cdromモジュール使ってみたけど対話型シェルから 簡単にトレイの開閉とか再生できておもすれー かなりよく抽象化されてて使いやすそう
256 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 16:10:06 ] >>252 re.escapeは試してみた?
257 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 16:22:06 ] > リファレンスぐらいなら簡単に訳せそうに見えるね 簡単に訳せる文章、英文でも理解できる文章は、労力をかけて訳してもしょうがないっしょ 邦訳することが目的になっている感じだし、目的が変化している 核となるもの、肝となるもの、大事な概念だけど理解しにくいものを中心に Pygameに興味のある者が理解しやすい仕組み・しかけをつくるほうが大事 とりあえず、目的・問題の明確化をさせたほうがいいんじゃないの?
258 名前:252 mailto:sage [2008/05/10(土) 16:46:20 ] >>256 できましたありがとー! (_アンダースコアもエスケープされちゃうのがナゾですが・・・)
259 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 19:07:41 ] このスレッドの目的は pygame文書の和訳という使命を帯びた事が証明されたわけだ
260 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 19:28:29 ] よし、wxpythonの和訳が終わったらpygameも和訳するぜ まだ、何もやってないけど
261 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 19:43:09 ] Pygameのドキュメントだけ見てもよくわからないけど SDLの方のドキュメントを読むと理解できる事も多いよね
262 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 20:39:56 ] お前らは早くpygameの和訳作業にとりかかれ
263 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 20:44:07 ] 英語も読めない低脳は黙ってろ
264 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:01:38 ] ここの基準はPythonが書けるかどうかで決まるんだぜ(藁)
265 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:02:23 ] Pyhton
266 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:04:17 ] pyてょn
267 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:31:23 ] oh tyPo
268 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:34:00 ] ○〜〜 ○〜〜 ○〜〜 ○〜〜 ○〜〜 ○〜〜 ○〜〜 ○〜〜 ○〜〜
269 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:52:46 ] sperm, sperm, sperm and sperm.
270 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:54:07 ] まず pygame を何と訳したらいいのかわかりません
271 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:58:25 ] pygame でいいじゃん
272 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 22:07:29 ] 随時出張してきてもいいが、本スレに帰れ あとpygame翻訳と最初に騒いだヤツは、もうマルチするなよ 次スレからちゃんとテンプレに追加してやるから 【pygame】pythonでゲーム製作【ぱいがめ】 pc11.2ch.net/test/read.cgi/gamedev/1126605105/ >>270 Python + game = Pygame こういう組み合わせの名前(造語)って代表的なのってなんだろう?
273 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 22:25:32 ] pychinko
274 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 22:59:17 ] pygameの和訳を済ませろボケナスども
275 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 22:59:58 ] 乳遊
276 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 23:30:28 ] 自己解決の次は翻訳か
277 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 23:37:22 ] >>272 PyPI, PyPy
278 名前:pygame和訳wiki”管理”者 mailto:sage [2008/05/10(土) 23:44:29 ] 事故解決しました
279 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 23:49:25 ] つまんね
280 名前:244 mailto:sage [2008/05/10(土) 23:51:28 ] 引続き Parallel Python をいじってみたんだけども、このシステムはマスタワーカモデルを前提にしているみたいだ。 つまり、マスタが仕事の集合を持っていて、有限個のワーカに1つずつ仕事を割り当てる。仕事を終えたワーカは マスタから新しい仕事をもらって処理する。これを仕事の集合が空になるまで続ける。 ワーカ間で通信をする機能は提供されていないし、特定のワーカ(たとえば特定のリモートホスト上のppserver.py)に 特定の仕事を割り当てることもできないっぽい。Parallel Python が有効かどうかは実現したい並列アルゴリズムが マスタワーカモデルに適合するかどうかに依る希ガス。
281 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 00:26:06 ] おっpydev
282 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 00:37:49 ] pygameの和訳が進んでいるか、 確認のために毎日一回以上は pygame関連の話題を出すようにしようぜ 反論がある奴は似非python使いとして認定してやろうぜ
283 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 00:40:31 ] >>280 具体的には、どういう用途に使えそうなんですか?
284 名前:244 mailto:sage [2008/05/11(日) 00:59:44 ] >>283 pygameかな
285 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 01:34:00 ] >>283 最も適しているのは並列処理の分野で embarrassingly parallel と呼ばれるカテゴリに属する種々の計算、 すなわち入力データを複数の独立した部分に分割できて、各部分について他から独立して計算が行なえる タイプの用途に適している。 en.wikipedia.org/wiki/Embarrassingly_parallel Wikipediaに例があがっている。フラクタル計算とか3DCGのレンダリング(例:レイトレーシング)とか力任せの 暗号解読とか色々ある。 並列処理って概して複雑で長時間計算し続ける必要のある応用が多い。そういう応用には C とか Fortran を 使うことがほとんどなんだけど、きちんと動くようになるまでの開発時間が長くてデバッグがたいへんだったりする。 そういう並列プログラムの試作(プロトタイピング)に Python が使えたらいいなーと個人的には思っている。
286 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 08:49:01 ] >>274 おまえにいいこと教えてあげよう。 市場の中の肉屋さんいって、 「ホースください」頼んでみ。 解体処理した豚の膣の部分がもらえる。 ほんとは金かけて廃棄しないといけない部分だから無料でもらえる。 食い物にはならないから。 この豚の膣が極上。 まあ考えたら膣だからな。 人間のじゃないだけで本物の膣だから、気持ちよくて当たり前。
287 名前:252 mailto:sage [2008/05/11(日) 09:30:17 ] re.escapeってなんでもかんでもエスケープしちゃうのか・・・ \山\田\太\郎て
288 名前:デフォルトの名無しさん [2008/05/11(日) 09:43:58 ] >>285 PythonでCPU8個使って並列計算するよりCで書いたプログラムの方が速そうだったり。。。
289 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 09:57:09 ] >>288 何言ってんだ?
290 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 10:28:52 ] >>289 あ?ヤンのかコラ
291 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 11:21:19 ] www.geocities.jp/gaijin_e3/omae01.jpg
292 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 11:21:53 ] >>286 ついでに言うと豚の内臓と人間の内臓はかなり近いらしいね 豚の心臓を人間に移植した話もあるからな
293 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 12:13:17 ] >>292 羊の膣も極上という話だけどどうなのだろうね?
294 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 12:14:24 ] 膣なんてどうでもいいから チャッチャとpygame資料の和訳作業に務めろ糞野郎共
295 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 14:39:25 ] >>285 自分も並列化するときのプロトタイプとしてPythonの並列環境を使ってみたいと 考えているんだけれど、今のところプロトタイプとしての感触はどう? データ分割の楽な問題ってCとかFORTRANでもOpenMPを注意深く使うだけでも早くなる事が 多いし、MPIでも慣れれば苦労せずに書けるけれど、そうでない、スレーブ間での通信が必要 とかうまく分割できないとかそういう問題はMPIでやろうとするとデバッグが(;゚д゚) なことになりがちで、そういう用途にPythonのプロトタイプが役に立つなら素晴らしいと思う 実はC並列版とそれほど速度とメモリ使用量が変わらないとかなら最高 C並列版より速ければ神
296 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 16:53:12 ] Parallel Python だけど pp.Server.__scheduler() を適当に書き直せばワーカと仕事の対応(割り当て)を ユーザ側で決められそうな希ガス。問題はワーカ間のプロセス間通信。これが一番面倒なところなんで 自前で実装となると Parallel Python を使ううまみがほとんどない・・・。 やっぱ MPI の Python バインディングあたりが一番現実的な解かなー。でもなんか気が重いんだなー。 もっと Python らしく lightweight なソリューションがないかなー。 >>288 Python の並列プログラムより C の逐次プログラムの方が速そうってことだよね。 そういうことは十分(多分頻繁に)あると思われ。 >>295 残念ながらまだ並列プログラムのプロトタイプ用途には使えてなくて感触を得るところまでいってない。 理由は単純で、Python で手軽に並列プログラミングを実現できる道具を見つけられていないから。 >>209 に書いたようにいろいろ試してるんだけどなかなか・・・。 ただ、個人的には Python を並列化のプロトタイピングに使うのは大いに有望だと思っている。 プロトタイピングの場合、欲しいのは並列度やデータ量を上げたときの実行時間の変化であって、 実行速度が多少遅くて実験に時間がかかるとしても知りたいことは分かるはずだから。 プロセス間通信にソケットを使うとすると、データ量が大きくなれば Python でも C 等と同じぐらいの 速度が出る(ハズ)。演算量が多い部分に numpy 等の C/Fortran で書かれた数値カーネルを使うことに すれば、プロトタイピング用途には十分な速度とメモリ使用量が得られるのではと思う。
297 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 01:33:26 ] Linux で wxPython をコンパイルしようとして、 ttp://ymasuda.jp/python/wxpython/installation.html ここを参考に進めて行ったんだけど、最後の python setup.py install を実行したところでむちゃくちゃエラー吐いて止まるんだけど・・・ 一部だけエラーを載せるけど、同じファイルのエラーが延々と120行近くでるんだ。 contrib/glcanvas/gtk/glcanvas_wrap.cpp:2739: error: 'wxGLCanvas' was not declared in this scope contrib/glcanvas/gtk/glcanvas_wrap.cpp:2739: error: 'arg1' was not declared in this scope contrib/glcanvas/gtk/glcanvas_wrap.cpp:2739: error: expected primary-expression が ')' トークン前にあります contrib/glcanvas/gtk/glcanvas_wrap.cpp:2739: error: 数値定数の前に expected ';' 「glcanvas_wrap.cpp wxPython」で検索したら英語で色々皆同じ問題にあってるみたいだけど、解決方法を探せなくて(読めなくて)困ってます・・・教えて!エロイ人!
298 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 02:10:10 ] config.py(setup.py?)のBUILD_GLCANVASを0にしてみたら?
299 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 08:47:31 ] >>297 どのディストリ使ってるのか不明なんだけど、 バイナリパッケージでは存在してないの?
300 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 17:11:39 ] 単なる興味なのですが、Unicode文字列と等価なバイト列を得る方法をご教示頂けないでしょうか? 'hello'と等価なバイト列は'\x68\x65\x6c\x6c\x6f'です。 で、u'hello'と等価なバイト列は、例えば'\xff\xfe\x68\x00\x65\x00\x6c\x00\x6c\x00\x6f\x00' と思うのですが、pythonで両者の直接変換はできるのでしょうか?という質問です。 u'hello'.encode('utf-16')がほぼ等価ですが、これはあくまでエンコーディングなので、 直接バイト列を得てるわけじゃないのかな、と思った次第です。
301 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 17:19:12 ] 内部表現はUCS2かUCS4だったと思うのだが 中身に触る方法はないほうがいいんじゃないかな
302 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 17:23:20 ] ord 関数じゃダメなんすか
303 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 20:12:59 ] >>300 文字列はエンコーディングを決めなければバイト列では表現できないよ。 > 'hello'と等価なバイト列は'\x68\x65\x6c\x6c\x6f'です。 ここで実は300さんはエンコーディングとして ASCII を仮定している(ASCII をサブセットとして含む 別のエンコーディングかも知れない)。例えば、もし EBCDIC を仮定していたら別のバイト列になる。 > pythonで両者の直接変換はできるのでしょうか? エンコーディングが分かっていればご存知の通り unicode() と .encode() で可能。
304 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 20:39:43 ] print repr([u'hello'])
305 名前:297 mailto:sage [2008/05/13(火) 01:30:38 ] >>297 です。 >>298-299 大変申し訳ない。 上記URLの、下記の文をすっとばしてました・・・。 cd $WXDIR (ソースツリーに移動する) mkdir bld (ビルドディレクトリ bld を作成) cd bld (ビルドディレクトリに移動) ../configure (configure を実行) 一番最初からやり直したらエラーを吐かなくなったよ。 でも、色々可能性を考えて下さってありがとうございました。 お騒がせしてしまい申し訳ございませんでした。
306 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 08:29:09 ] >>305 うわ、ビルド方法が面倒くさいね
307 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 10:12:52 ] >301 ないほうがいいってことはないでしょ 初心者が文字列操作で使うべき方法として 提示されるかどうかはともかく
308 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 11:09:48 ] >>> repr(unicode('あいうえお')) "u'\\u3042\\u3044\\u3046\\u3048\\u304a'" >>> unicode('あいうえお').encode('unicode_escape') '\\u3042\\u3044\\u3046\\u3048\\u304a' >>> unicode('あいうえお').encode('raw_unicode_escape') '\\u3042\\u3044\\u3046\\u3048\\u304a' >>> unicode('あいうえお').encode('unicode_internal') 'B0D0F0H0J0' 好きなのを選べ
309 名前:300 mailto:sage [2008/05/13(火) 12:46:51 ] >>301-304 >>307-308 皆様ご助言どうもありがとうございました。 >>302 >>308 さんご提示の、コードポイント取得方法が私の期待に非常に近いものでした。 ですがそもそも、>>303 さんご指摘の通り、私には「バイト列はエンコーディングによって はじめて定義されるもの」という認識が甘かったように思います。 私が例示したu'hello'のバイト列は、既に何かのエンコーディングが施されたもののはずだから、 そのバイト列と.encode(...)は全く等価ですね。 御蔭様で理解が深まりました。ご教示どうもありがとうございました。
310 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 15:58:29 ] 最近の初心者は文体が丁寧だな
311 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 16:13:00 ] いいことじゃないか。
312 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 18:42:46 ] ipython1.0 は並列に対応しているみたいだね 使ってみたいがインストールできないorz
313 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 20:05:48 ] threading.threadで作ったスレッドをKillするにはどうすればええの? class myThread(threading.Thread): alive = True def run(self): while self.alive: """ なにか """ def kill(self): self.alive = False こういうのじゃなくて、イメージとしては threading as th myth = th.Thread() myth.start() print "あへあへ" myth.kill() みたいな。
314 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 20:27:04 ] 無理。 他のOSネイティブなスレッドでも、そういう手段は用意されていないか 用意されていても推奨されていない。
315 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 20:33:36 ] 基本的にスレッドはスレッド自身で終了させた方がいいよ
316 名前:デフォルトの名無しさん [2008/05/14(水) 00:04:03 ] ttp://www.devchix.com/2008/05/10/kamaelia-the-future-of-python-frameworks-looks-promising/ > Kamaelia: The future of Python Frameworks looks promising.
317 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 06:37:55 ] とりあえず clss GetBBC はよしたほうがいいな
318 名前:デフォルトの名無しさん [2008/05/14(水) 17:22:08 ] groups.google.com/group/comp.lang.ruby/search?group=comp.lang.ruby&q=rpdf2txt+ 空のtxtファイルが出来る言ってるから、日本語通らない? とかスレ違い気味だけど聞いてみる
319 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 19:29:11 ] 日本語でおk
320 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 19:23:25 ] ウェブアプリを作りたいなと思い、教育用らしいPythonを始めようと思うのですが XAMPPみたいにアーカイブを展開するだけで ApacheとPythonのApacheモジュールが使えるようになるWindows向けソフトとかありますか? お手軽な感じで始めたいです
321 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 19:30:13 ] cd htdocs C:\Python25\python.exe -m CGIHTTPServer Pythonだけでできるよ。apacheなんてイラネー
322 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 19:55:26 ] 320です どうもありがとうございます ブラウザで表示確認できるんでしょうか よくわからないので調べてきます ほんと無知ですみません
323 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 22:07:06 ] CGIHTTPServer にあったディレクトリのバグは直ったんだろうか?
324 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 22:13:14 ] これ? svn.python.org/view/python/trunk/Lib/CGIHTTPServer.py >[Bug #737202; fix from Titus Brown] Make CGIHTTPServer work for scripts in sub-directories
325 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 00:01:14 ] >>321 終了のしかた教えて
326 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 01:59:21 ] Python の C コード書くときのコーディング規約って、みんなちゃんと守ってる? どこまで守ってる? static PyObject * Hoge(........) { •関数の戻り値型の直後に改行を入れる •関数ブロックの始まりの括弧の直前で改行する if (a + b + c) { } •関数以外のブロックは、始まりの括弧を行末に置く •括弧の中に余分な空白を入れない •二項演算子の両側には空白を置く X return ( expr ); O return expr; •冗長な括弧は使わない
327 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 06:14:03 ] >>325 Ctrl + D とかじゃないの
328 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 10:01:43 ] >>326 そんな規約があるとは知らなかった。
329 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 10:10:11 ] >>326 ttp://www.python.org/doc/ の下のどこかにあります?
330 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 10:59:22 ] どう見てもPEPだろ
331 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 11:14:13 ] WindowsならCtrl+ZのあとにEnter でも最初の表示どおりhelp→help()→quit→quit()と入力していってほしいかも。
332 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 11:49:46 ] >>328 ,329 PEP 7 -- Style Guide for C Code www.python.org/dev/peps/pep-0007/
333 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 14:47:26 ] >>321 >>327 >>331 ありがとうございます Windows で python -m CGIHTTPServer を実行しています Ctrl + C Ctrl + D Ctrl + Z どれもダメだったのでタスクマネージャーから殺したら終了出来ました あとでわかったのですが、 Ctrl + C を押したあとにブラウザの更新ボタンで再度リクエスト投げると Keyboard Interrupt が出て終了するようです Windows だから select で監視出来ていないということでしょうか?
334 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 15:22:22 ] 単純にaccept()がブロックしてるだけでしょ try節で囲むかtelnet localhost 80とかやってから落とせばいい
335 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 15:44:26 ] >>333 普通のCGIがやりたいの? ApacheでCGIがやりたいの? 320を読む限りではGoogle App Engineとかそういうのが近いのかな? GAEはお勧めしないけど。
336 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 19:40:24 ] >>335 320ですが320は322しか書き込みしていません・・・ 私とはしたいことが異なるのではないかと思います あと、質問してもよろしいでしょうか じつはまだサーバ上でファイルを実行できていないんですが、そのことについて・・・ CGIHTTPServer.pyを起動させて htdocsフォルダを作って まだpythonのスクリプトが書けないので既存のスクリプトファイル (python.rdy.jp/wiki.cgi?page=PythonAvailableServers のcheck.cgiとexplore.cgi)を localhost:8000/htdocs/ に入れて表示させてみたのですが ieだとそのまま中身のテキストが表示され firefoxだとcgiファイルのダウンロードが始まってしまいます 拡張子をpyに変えてみたらie、firefoxともそのまま中身のテキストが表示されます cgi-binフォルダを作って 同様に既存のスクリプトファイルを localhost:8000/cgi-bin/ に入れて表示させてみたら 拡張子がcgiだと ie、firefoxともに > Error response > Error code 403. > Message: CGI script is not executable ('/cgi-bin/check.cgi'). > Error code explanation: 403 = Request forbidden -- authorization will not help. と表示されます 拡張子をpyに変えてみたら ie、firefoxともに真っ白な画面が表示されます うまく実行させるにはどうすればいいのでしょうか・・・
337 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:05:18 ] それsh辺りのスクリプトだからwinじゃ動かないよ .pyに変えたらコマンドプロンプトにエラーメッセージが表示されてるからよく嫁 とにかくエラーメッセージはきちんと嫁
338 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:05:43 ] Apacheの場合、デフォルトで * htdocsにはHTMLおよび画像ファイル * cgi-binにはCGIスクリプト と分けて設置しなければいけない。 CGIHTTPServerでも似たようなものだと思う > Message: CGI script is not executable ('/cgi-bin/check.cgi'). とりわけ使ってるのがLinuxなら CGIスクリプトの一行目にshebang入れてchmod +xしなきゃだめ WindowsだとWebサーバにもよるけどshebangは必要かも
339 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:08:17 ] ああほんとだ。見てなかった >sh辺りのスクリプト explore.cgiはPythonで書かれてるから動くんじゃないかな
340 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:13:03 ] >>336 htdocs フォルダが My Documents みたいにスペースの入ったフォルダの配下にない?
341 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:16:50 ] >>337-340 336です 親切にどうもありがとうございますm(_ _)m ただ話の内容が難しくて理解が追いついていません・・・ windows上で使っています いつかはレンタルサーバを借りて動かしたいと思っているのですが windowsとlinuxでスクリプトの書き方(?)が異なるのでしょうか・・・ コマンドプロンプトにメッセージが表示されるんですね 読んでみます テスト用に選んだスクリプトも選択ミスだったんですね パスにスペースは入っていません ピリオドと数字は入っています エラーメッセージをよく読みます
342 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:35:42 ] 実際に試してきた 1. c:\cgi-bin\ に env.py を置く import os print 'Content-type: text/plain\n\n' for key in os.environ: print '%s: %s' % (key, os.environ[key]) 2. cd c:\ して python -m CGIHTTPServer する 3. ブラウザで localhost:8000/cgi-bin/env.py にアクセス 環境変数がずらっと表示されたら成功 Windowsの場合、shebang も chmod +x も必要ないが 拡張子は .py にしないと動かないみたい あと My Documents みたいなフォルダの配下だとこけるのは >>340 が指摘してくれている通り
343 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 21:01:56 ] >>342 336です env.pyはうまく動きました!と思います 45行ほどの文字列が表示されました explore.pyもうまく表示されました 表データが表示されました cgi-binに拡張子をpyにして入れるんですね 初歩的なことに付き合っていただき みなさん ありがとうございますm(_ _)m
344 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 21:10:10 ] めずらしくpythonのお勉強なんかやってるやつがいるな
345 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 21:34:07 ] まだpythonにたどり着いてない気が…
346 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 21:44:28 ] c:\ に置かせようとするセンスが理解出来ん
347 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 21:50:30 ] センスっつーより悪意を感じる
348 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 22:13:52 ] 拡張子がcgiでも関連付けでpythonを起動してやるようにすれば動くかもしれない。 実行可能ならbatなんかでもCGIとして動作するみたいだから。
349 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 16:39:43 ] こんにちは。いつも参考にさせていただいております。 さて、早速なのですがPythonでテキストファイルへの書き込みは出来るのですが追加の書き込みの方法がわかりません。 一度内容を読み込んで結合してから書き込んでもよいのですがあまりスマートとは思えませんでしたのでここに投稿した次第です。 方法をご教授いただければ幸いです。
350 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 16:42:06 ] open(path, 'a')
351 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 16:48:57 ] レスありがとうございます。解決いたしました。
352 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 20:59:01 ] 下記をCGIとして動かしてみたところ、何も表示されません。 # -*- coding: utf-8 -*- import os import cgi import cgitb; cgitb.enable() print "Content-Type: text/plain\n\n" form = cgi.FieldStorage() if not (form.has_key("name") and form.has_key("addr")): print "<H1>Error</H1>" print "Please fill in the name and addr fields." return print "<p>name:", form["name"].value print "<p>addr:", form["addr"].value 以下は動作するのでバーミッションの設定ではないと思います。 # -*- coding: utf-8 -*- import os import cgi import cgitb; cgitb.enable() print "Content-Type: text/plain\n\n" print "hoge" 解決策など示していただければ幸いです。
353 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 21:06:40 ] returnが関数外じゃない?
354 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 21:18:28 ] すいません。インデントが外れていたので codepad.org/r6g67n1j codepad.org/vUcQXO9g
355 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 21:30:37 ] return→sys.exit()に
356 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 21:33:21 ] いや、だから>>353 が言っているように、関数内じゃないのに returnがあるのがおかしいんじゃないの # -*- coding: utf-8 -*- import os import cgi import cgitb; cgitb.enable() def main(): print "Content-Type: text/html; charset=UTF-8\n\n" form = cgi.FieldStorage() if not (form.has_key("name") and form.has_key("addr")): print "<H1>Error</H1>" print "Please fill in the name and addr fields." return print "<p>name:", form["name"].value print "<p>addr:", form["addr"].value if __name__ == '__main__': main()
357 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 21:34:44 ] apacheならerror_log(error.log)に出なかったっけ
358 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 21:38:05 ] pychecker, pylintあたりで文法チェックしといた方がいいかもね
359 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 06:24:41 ] >>355 でFAもいいところなわけだが
360 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 13:59:12 ] codepad.org/AkQK38ei 関数の引数って参照渡しなの? Traclight/plugins/themaengine/api.py あとTracってAPacheがないと動かせないですか? PythonをUSBメモリに入れて持ち運びたい(できればtracも持ち運びたひ…)
361 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 14:50:11 ] >>360 >関数の引数って参照渡しなの? そうだよ。入門書嫁。
362 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 14:54:54 ] どんな入門書だよ
363 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 14:55:42 ] >>360 いっちゃうと代入も何もかもぜんぶ参照渡しです。 だから逆に参照渡しという概念がでてこない。 TracはFastCGIやWSGIでも動作するからApacheじゃなくてもいい。 lightyなんかいいとおもう。 あとWindows版Pythonならパスが変わっても動作するはず。
364 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:08:52 ] >>362 まともな入門書にはたいてい書いてあるよ
365 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:09:35 ] Pythonって参照渡しって言うのかな >>> def foo(x): x = 2 ... >>> a = 1 >>> foo(a) >>> a 1 いわゆる参照渡しだと、aの値が書き換えられるんじゃないの
366 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:10:56 ] >>365 def foo(&x): x = 2 これでOK まともな入門書にはかいてあるよ
367 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:15:57 ] >>366 つまり、「何もかもぜんぶ参照渡し」というわけでなく、 特に指定しなければ値渡し、ということじゃない?
368 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:16:42 ] 参照をリファレンスという意味で使ったなら ある意味正しいと思う
369 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:21:18 ] >>> def foo(&x): x = 2 SyntaxError: invalid syntax ついに嘘書く奴が出てきたよ
370 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:30:59 ] >>365 def foo(x): ↑ここのxには確かにa = 1と同一の1が渡る。 x = 2 ↑でもこれはその1を2に置き換えるのではなく xの参照先を2に変更することになるのでaは1のまま。
371 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:31:48 ] >>365 Pythonで数字はイデア界にあるから 書き換え不能なんですよ。
372 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:33:56 ] >>369 嘘を嘘と見抜く練習をしような(w
373 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:49:35 ] つまり = は代入ではなく束縛ってことか ところで >>> lst = [0] >>> lst[0] = lst >>> lst [[..]] >>> def p(x): print x >>> [p(x) for x in lst] [[..]] [None] なんぞこれ
374 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:55:14 ] 循環参照は[...]になるのか。賢いな。
375 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 18:42:18 ] >>370-371 えーと、本当に参照渡しの意味わかってんの? fooの仮引数がxと宣言されているが、aを渡したときにそのxがaのエイリアスとして 機能する(つまりxがaと同等である)ようなものが参照渡しなんだが。 FORTRANはデフォで参照渡しだし、C++やC#は参照渡しもサポートする。 Pythonの場合、a, xは同一のオブジェクトを指している*別変数*だから、 xへの代入はaに影響を与えない。 そういうのは参照渡しとはいえないでしょ。
376 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 19:00:23 ] >>365 引数そのものはimmutable(不変)なので、関数内で書き換え不可。 この場合の引数とは、変数のアドレスのこと。 変数が指しているデータを書き換えたい場合は、例えば以下のように出来る。 def bar(x):x[0] = 2 a = [1,2,3] bar(a) print a # --> [2, 2, 3]
377 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 19:14:55 ] ミュータブルorイミュータブルというのはオブジェクトの特性であって 変数の特性ではない
378 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 20:15:06 ] そもそもPythonのオブジェクトには代入演算子ないし
379 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 20:36:17 ] Mr.NishioのJython本を読むと、変数はオブジェクトへのリファレンス貼る ってことが書いてある。 買って読んでみなよ。
380 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:01:56 ] > 変数はオブジェクトへのリファレンス貼る 俺の頭が弱いのか? 何が言いたいのかわからん
381 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:05:15 ] C風に言えば、Pythonの変数はオブジェクトへのポインタ 代入はポインタのコピー 関数呼び出しは全部値渡し Javaも値型(基本データ型)以外は一緒
382 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:12:01 ] >>360 > 関数の引数って参照渡しなの? 違います。 www.python.org/doc/faq/programming/#how-do-i-write-a-function-with-output-parameters-call-by-reference > Remember that arguments are passed by assignment in Python. Since assignment just creates references to objects, > there's no alias between an argument name in the caller and callee, and so no call-by-reference per se. (引数は Python でいうところの代入によって渡されることを思い出して下さい。代入は単にオブジェクトへの参照を作るものなので、 呼び出す側の引数名と呼び出された側の引数名のあいだにはエイリアスはなく、「参照による呼び出し」も本質的に存在しません。)
383 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:44:09 ] 渡す物がlistになると挙動が変わるはず
384 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:47:37 ] >>383 リストだろうが何だろうが、何も変わらない。 >>> def f(x): x = [1,2,3] ... >>> a = [] >>> f(a) >>> a [] >>>
385 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:58:26 ] >>> m = [] >>> def a(x): x.append(3) >>> a(m) >>> a(m) >>> m [3, 3] これは何が起きているんだ? 俺の頭が弱いのか? 何が言いたいのかわからん
386 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:59:18 ] >>385 リストだろうが何だろうが、何も変わらない。 >>> def f(&x): x = [1,2,3] ... >>> a = [] >>> f(a) >>> a [1,2,3] >>>
387 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:04:59 ] Pythonを学ぼうと思うのですが python.rdy.jp/wiki.cgi?page=%B4%D8%CF%A2%BF%DE%BD%F1 で何を選べばいいのかわかりません。
388 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:06:34 ] 他言語経験は?
389 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:09:35 ] >>385 頭が弱いんじゃなくて、基本が理解できてない。 一体どんな教材でPython覚えたんだよ?
390 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:14:55 ] >>385 >>384 の例は、代入によって「変数自体」を変更している 変数の変更とは、変数が持っていたオブジェクトへの参照を破棄し、 別のオブジェクトを指すようにする、ということだ >>385 の例は、破壊的メソッドによって、変数によって指されている 「オブジェクトの中身」を変更している。変数自体は何も書き換わっていない
391 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:25:40 ] >>388 初めてのC#を読みました。 作ったソフトウェアは2つほどでオブジェクト指向はある程度理解しているつもりです。
392 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:26:09 ] >>387 名著だ www.amazon.co.jp/dp/4839922829/
393 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:26:37 ] >>392 ありがとうございます。
394 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:28:18 ] >>392 表紙でtypoが名著とはこれ如何に
395 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:31:19 ] ほんとだ噴いた
396 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:34:29 ] >>392 家宝にさせていただきます
397 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:45:04 ] >>391 プログラミング経験有りなら書籍ではないけれど 本家のチュートリアルの邦訳をまず読んでみれば www.python.jp/doc/release/tut/
398 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:45:52 ] x = 23 はxのポインタの値が書き換わる。 x.append(3) はポインタの先の値が書き換わる。
399 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:51:39 ] >>376 と>>384 の挙動の違いがよくわからない
400 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:54:11 ] >>399 >>376 もポインタが指しているオブジェクトの中身を書き換えているだけだ xとaは別の変数だが同じオブジェクト(リスト)を指しているから、 x経由で変更したオブジェクトをaから参照しても 同じように見えるのは当たり前だ
401 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 23:02:28 ] >>400 >>384 の場合はx=[1,2,3]で新たにリストのオブジェクトを生成して、 変数xはそれを指すから、結果的に変数aの指すオブジェクトの中身は 書き換えられなかったってことでいいのかな?
402 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 23:04:21 ] >>401 うん
403 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 23:15:12 ] なるほど、スッとした。さんくす。
404 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 23:29:50 ] やっぱりスッとしない。
405 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 00:02:10 ] >>392 Amazonって、ランキングが出るじゃん。見たんだけどさ。 この時期でこのランキングはないわ。 名著なのに売れないなんておかしいな。 芸術作品ですか。
406 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 00:12:37 ] >>70 のリンクの人から見ると名著なんだよ
407 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 00:20:13 ] >>70 のリンクの人のせいで売れないんじゃね? まるで逆宣伝だし。
408 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 00:27:14 ] そもそも対象となる層が少なすぎる感じがする
409 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 00:28:39 ] 日本人限定だしね
410 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 00:39:27 ] そのうえ変な人に気に入られてるようじゃ相当マイナスだね。
411 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 01:00:29 ] Jython使うとPOIも使えると思うのですが CPythonからPOIを使えるようにはできませんか?
412 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 01:08:00 ] Java使え
413 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 01:10:44 ] 替わりにwin32comかpyExceleratorを使うとか
414 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 02:00:14 ] win32comもpyExceleratorは使ったことがあるのですが どっちもいまいちなのでPOIを使いたいんですけど Javaは使いたくないんです
415 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 02:30:37 ] GroovyとJRubyやるからどっかいけ
416 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 02:33:37 ] >414 ならばCPythonでJava classファイルを使えるようにする仕掛けをこさえるしかなかろ それって結局JavaVMの特殊な独自実装になるような気もするが。 となると「Javaを使わない」という目的からは厳密には外れるな。 あるいはPure PythonでPOIを書き直すとか
417 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 02:50:31 ] そうですね そうします
418 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 03:46:21 ] 死ねばいいよ
419 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 04:20:22 ] 死ねって・・・ Pythonの信者の人が反社会的っていうのはほんとなんですね
420 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 08:00:56 ] Jython本を読むと心が洗われます
421 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 09:01:36 ] >>406 これはむしろ愛と呼べる代物だ。 温泉ではアッー!な光景が繰り広げられるに違いない。
422 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 11:30:56 ] >>421 結論から言うと、今回のRuby Kaigiのテーマは"愛"。 : Ruby愛以外に何か付け加えるものがあるとするならば、あとは、覚悟。
423 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 11:44:02 ] イケメンハッカーはJRubyの本を出せばよかったんじゃね?
424 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 13:12:48 ] Pythonソースコード完全解説とかなら普通に読みたいな
425 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 13:14:46 ] 自分でコードも読めない奴は、技術者としては失格だと思うがな。
426 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 14:17:31 ] neet山
427 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 14:32:01 ] RubyConsortium Rubycon 不良品乱発
428 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 03:50:04 ] 会社で作るソフトに組み込むスクリプトとしてぜひ Python を押したいんだけど、 「(スクリプトの)逆アセンブルがすげー簡単ぽいけど、どうなのよ」みたいなこと言われたんだ。 そういうわけで、会社を納得させるべく、「思いつきでちょっと解析したぐらいでは分からない程度」 に Python スクリプトの難読化について考えてみたい。
429 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 04:01:50 ] (自分がパッと思いつく程度の)スクリプトの解析方法に付いて考えてみる。 A. python スクリプトファイルが丸見えの場合 .py ソースは問題外。 .pyc は dis モジュールに食わせてダンプして終了。しかもドキュメンテーション文字列付き。 .pyo も dis モジュールに食わせて終了。 B. スクリプトファイルが見えない場合 Python##.dll を改造してアプリケーション付属のDLLと差し替えて、 インポートしたモジュールのコードオブジェクトをダンプするなり別ファイルに書き出すなりする C.コンパイル済みモジュールファイルが丸見えだが、dis に食わせても解析失敗する場合 カスタム Python を使用している事を疑う. アプリケーション付属の Python##.dll を参照するようにして python.exe を実行し、 自作のスクリプトを pyc に変換させ、純正の pyc と比べてみる。
430 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 04:17:33 ] そう考えると、 •独自のインポータを sys.path_hooks に組み込んで自作アーカイブからスクリプトファイルを読み出すようにする •独自アーカイブに含まれているスクリプトは、カスタム Python を使って読み書きするための特殊 pyc •カスタムといっても、ようは pyc の読み書き部分だけつじつまを合わせれば良い •従って、改造するのは marshal.c あたり?
431 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 05:37:37 ] >>428 「解析されて何か問題でも?」と答えておけ。 本当に解析されて困るプログラムなんて、この世にそれほど存在しないだろ。
432 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 11:39:00 ] GPL
433 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 11:49:46 ] JavaだってC#(IL)だって逆コンパイラは存在してるし 難読化とかもあるけど、最終的には>>431 のような気がする
434 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 12:15:57 ] 事情をよく知らない割には権限だけ持っていて、 変化を嫌いたがるダメ官吏みたいな上司を説得するのが一番大変なんだよね〜。
435 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 12:16:05 ] pyc や pyo はバイナリエディタで開いただけでも識別子名と関数名がまるわかりだからねえ 簡単な難読化ぐらいならやる価値あると思う
436 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 13:34:43 ] 難読化とかwww馬鹿だろwww 死ねばいいのに
437 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 16:17:07 ] 簡単な難読化をしてみせるだけで>428の仕事が楽になるならいいじゃないか。 それ自体に意味があるかどうかはどうでもいいのだ。
438 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 16:19:55 ] マってたまに、子供騙しで騙してしまえばいい相手の要求に対して、 妙に本気になって対処してしまうことがあるよね。自戒も含めてw
439 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 16:46:15 ] 全て eval を使って文として 他のプログラムに仕込むとか
440 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 18:07:12 ] 子供騙しで手を抜く奴はプログラマだ! バレないように手を抜く奴は訓練されたプログラマだ! こうですか? わかりません (>_<)
441 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 19:29:23 ] >>434 そういうときはその上司の上司を説得するべき
442 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 21:44:24 ] 適当にxorして「暗号化しました!」 とか言っとけば大丈夫
443 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:47:10 ] ソースコード自身とxorしたから大丈夫です!
444 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 01:11:01 ] >>443 0x00とXORしないとダメだよ!!
445 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 02:15:01 ] ネタならネタで良いんですが もう少し楽しめるのをおながいします
446 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 02:44:30 ] pygameで英語分からなくて暴れてる厨房だろ 放っとけよ
447 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 08:11:47 ] pygameの和訳さっさと進めろよハゲども
448 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 08:45:46 ] 自己解決しました。
449 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 09:17:04 ] やめてください
450 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 10:14:11 ] イケメンハッカーが自決しました。
451 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 10:33:08 ] やめてください。
452 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 10:33:59 ] 自己解決禁止
453 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 10:34:36 ] >>441 お花畑にお住まいの妖精さんですか? 現実は厳しいですよ。
454 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 10:35:08 ] neet山が自己休刊やめてください。
455 名前:360 mailto:sage [2008/05/23(金) 10:59:40 ] >>360 >>> def call(): info=[]; f(info); return info ... >>> def f(x): x=[1,2,3] # list渡したい時は.append使え矢 ... >>> call() [] >>> >>> def call(): info={}; f(info); return info ... >>> def f(x): x[0]=1; x[1]=2; x[2]=3 ... >>> call() {0: 1, 1: 2, 2: 3} 渡すものが、辞書かリストか、で字面的に違うということですね 事故解決しました。(&なんて使わねー)(*はリスト**は辞書ですが無くても動くのです無害です)
456 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 11:07:57 ] >455 ぜんぜん解決してない ... >>> def f(x): x=[1,2,3] に文法的に対応する辞書の記述は >>> def f(x): x = {0:1, 1:2, 2:3} だよ(これだと結果は callで代入された info → {} のまま)。 リストのappendが字面的に気に喰わないのなら、 x+=[1];x+=[2];x+=[3]; と書いてもいいかもね(ちょっとoverheadありそうな気もするけど)
457 名前:360 mailto:sage [2008/05/23(金) 11:30:33 ] >>456 d 1. def call(*各種設定リスト): info={}; f(info); return 2. 初期化関数もどき(空リスト、空辞書を破壊的操作で初期化) def f(x): x[0]=1; x[1]=1; x[2]=2 #辞書 def f(x): x+=[1]; x+=[2]; x+=[3] #リスト 設定ファイルちっくに扱うなら、辞書使うし余り気にならないのかも > リストの破壊的操作 JSonとか、いい感じなものだと最近わかり始めてきますた
458 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 12:07:53 ] 自己解決禁止しちゃいかんだろww
459 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:11:33 ] D:\TracLight\python>python Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import os >>> fn = os.path.join('./', 'test-file.txt') >>> open(fn).read() Traceback (most recent call last): File "<stdin>", line 1, in <module> IOError: [Errno 2] No such file or directory: './test-file.txt' 同じディレクトリ下にあるファイルを読むにはどう書けば良いですか?
460 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:19:24 ] >>> fn = os.path.join(os.getcwd(), 'test-file.txt') >>> fn = os.path.join('./', 'test-file.txt') >>> open(fn).read() .txt 拡張子が余計に付いてだけでした orz 事故レスすまそ
461 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:41:49 ] >>459 なんでバグだらけの旧バージョン使ってるんだ?
462 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:29:52 ] うるさいだまれ
463 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:36:57 ] 自己憤慨しました。
464 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:15:47 ] 自己発電しました。
465 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:41:04 ] 助けて java.security.AccessControlException: access denied (java.lang.RuntimePermission exitVM.0) at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPermission(Unknown Source) at java.lang.SecurityManager.checkExit(Unknown Source) at javax.swing.JFrame.setDefaultCloseOperation(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.python.core.PyReflectedFunction.__call__(Unknown Source) at org.python.core.PyMethod.__call__(Unknown Source) at org.python.core.PyObject.__call__(Unknown Source) at org.python.core.PyInstance.invoke(Unknown Source) at applet$_PyInner.init$1(applet.java:61) at applet$_PyInner.call_function(applet.java:47) at org.python.core.PyTableCode.call(Unknown Source) at org.python.core.PyTableCode.call(Unknown Source) at org.python.core.PyTableCode.call(Unknown Source) at org.python.core.PyFunction.__call__(Unknown Source) at org.python.core.PyMethod.__call__(Unknown Source) at org.python.core.PyObject.__call__(Unknown Source) at org.python.core.PyObject._jcallexc(Unknown Source) at org.python.core.PyObject._jcall(Unknown Source) at applet$MyApplet.init(applet.java:139) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
466 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:43:40 ] pc11.2ch.net/test/read.cgi/tech/1207878910/385
467 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:13:26 ] マルチしちゃったか 死ね
468 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:38:32 ] ちょっと教えて欲しいんだけど、pythonの正規表現で先読みって使えないの? 下みたいに書いても全然文字列を分割してくれないんだけど line = '123,456,79' regexp = re.compile('(?=5)') print regexp.split(line)
469 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:56:48 ] >>468 www.python.jp/doc/nightly/lib/re-syntax.html > (?=...) > もし ...が次に続くものとマッチすればマッチしますが、文字列をまったく消費しません。 > これは先読みアサーション(lookahead assertion)と呼ばれます。 > 例えば、Isaac (?=Asimov) は、'Isaac 'に 'Asimov'が続く場合だけ、'Isaac 'とマッチします。 '(?=5)' だと空文字列に 5 が続くなら空文字列にマッチ(ただし 5 は消費しない)という意味になるのかな? 空文字列にマッチしたら分割の目的には使えないような・・・。 >>> a = re.compile(",(?=4)") >>> a.split("123,456,789") ['123', '456,789']
470 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:57:19 ] >>468 先読みが使えないっていうより re.split() に長さ 0 のパターンを渡しても何もしてくれないとかじゃない? 他の言語とかは挙動が違った気がする
471 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:57:58 ] >>468 ライブラリリファレンスを見れば分かるけど、先読みは使えるよ。 よくわからんが、split()がzero-width assertionでは機能しないのかもな。 split()に与えた正規表現にマッチした文字列をデリミタとみなして分割するから、 「位置」じゃなくて「文字(列)」にマッチする正規表現じゃないとダメ、とかさ。 ただの想像だけど。
472 名前:471 mailto:sage [2008/05/23(金) 23:58:39 ] ぐは。レスかぶりまくりじゃん。
473 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 00:15:30 ] 先読みの使い方を間違えてる
474 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 00:38:16 ] お前は次に「自己解決しました」と言う。
475 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 00:46:50 ] 自己解決しました
476 名前:468 mailto:sage [2008/05/24(土) 01:09:50 ] レスサンクス やっぱり場所指定の正規表現じゃ分割しないみたいだね perlとrubyでもsplit関数を動かしてみたんだけど、 perlはpythonと同様で場所指定の正規表現じゃ分割してくれなかったよ 一方rubyは意図したとおりに場所指定で分割できた 言語毎に結構挙動が違うもんなんだね
477 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:31:05 ] >>472 ぐは禁止。きもい。
478 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:32:10 ] ruby最強!
479 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:33:37 ] regexp = re.compile('.(?=5)')
480 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:50:44 ] >479 それだと一文字消えちゃうだろう常識で考えて
481 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 03:40:04 ] pyunoでOpenOfficeの制御したかったのだけど ubuntu7.10で動かないみたい udk.openoffice.org/python/python-bridge.html Hellow Worldのサンプル動かすと line 5, in <module> localContext = uno.getComponentContext() AttributeError: 'module' object has no attribute 'getComponentContext'
482 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 03:49:34 ] >>468 Perlのバージョンは? 試したらできたよ。 my @f = split /(?=5)/, $str; print join(':', @f), "\n";
483 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 05:24:45 ] >>> import re >>> line = '123,456,79' >>> regexp = re.compile('') >>> regexp.split(line) ['123,456,79'] そもそもこうなるんだもんなぁ
484 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 08:28:25 ] >>477 ぐはははははははははははhahahahahahahahaha!!!!!
485 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 10:14:48 ] ぐは。自己解決しました。
486 名前:デフォルトの名無しさん [2008/05/24(土) 12:39:52 ] >482 perlでもsplitできるね pythonで位置指定の分割ってどうやんだろ
487 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:03:35 ] こんな感じの関数を自分で作って使えばいいんじゃね def split(pattern, string): result = [] start = 0 for m in re.finditer(pattern, string): result.append(string[start:m.start()]) start = m.span()[1] result.append(string[start:]) return result
488 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:14:27 ] リスト返すようにしちゃったけど、ジェネレータにすべきだったか ま、その辺は好きに汁
489 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:06:35 ] >487 re.findall()
490 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:18:04 ] re.findall()がどうしたの?
491 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:33:29 ] Perl で split('', $str); に相当するのは Python ではどう書けばよいですか?
492 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:37:47 ] >>491 list(str)
493 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:16:39 ] オブジェクトのメソッドを一覧で取得するにはどうすればええの?
494 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:24:33 ] filter(callable, dir(hoge))
495 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:25:54 ] [x for x in dir(obj) if callable(getattr(obj, x))]
496 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 21:30:26 ] >>494 動きません。 自己確認してください。
497 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:48:52 ] 自己完結しました
498 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:51:21 ] >>494 オッサン臭いコードだな。その上動かないってどんだけ(www
499 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:58:55 ] itertools は使えそうで使えない
500 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:03:49 ] >>498 まさに労害(WWW
501 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:17:21 ] おれさまがなおしてやった filter(lambda x : callable(getattr(obj, x)), dir(obj))
502 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:28:11 ] ここまで来ると、わざわざfilterを使う意味なくね?
503 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 00:07:56 ] pythonのlambdaって読みづらいだけじゃね? pythonの基本的な文法と比べると汚い
504 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 00:14:14 ] Guidoもlambdaは嫌いだったと思う。 lambdaを使うのは変態か、自称イケメンハッカーのワンライナー芸人だけだろ。
505 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 01:19:41 ] どうせ残すなら いろいろできるようにすればいいのに
506 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 01:32:31 ] cshといっしょでコード互換のために残してるだけなんだから もう新規につかうようなもんじゃないだろ。
507 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 02:44:32 ] Pythonプログラミング入門はクソだとよ。
508 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 03:45:36 ] 自分の言葉で語りなさい
509 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 05:36:58 ] ということにしたいのですね
510 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 09:50:46 ] 懐かしいフレーズだ
511 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 10:51:46 ] 皆さん lambda と聞くと昔の傷がうずくのですね
512 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 10:52:28 ] Twisted本、クソ本フラグがたった感が。
513 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 11:37:37 ] うはは、わかりません。
514 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 12:29:07 ] 関数をファーストオブジェクトとして扱えないのはしょうがないが だからってpython の lambda はちょっと無しだろ C++みたいに演算子()をオーバーロードできればいいのに
515 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 12:33:36 ] >>514 関数内で関数が定義できるんだから、lambdaはあれで良い。 演算子オーバーロードも、__call__でできるじゃないか。
516 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 12:40:01 ] うはは、わかりません。
517 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:11:22 ] >>514 Pythonの関数はファーストクラスオブジェクトだが
518 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:23:23 ] ファーストオブジェクトってどういう意味?
519 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:32:38 ] ja.wikipedia.org/wiki/%E7%AC%AC%E4%B8%80%E7%B4%9A%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88 >>514 は、匿名リテラルで宣言できる関数が制限されていると言いたいんだと思う。 でも、def foo() して、 bar = foo; del foo; したら、foo()できなくなる。Pythonのdefは関数定義と 変数への代入を同時にしているというだけなので、関数がファーストクラスオブジェクトと言っても良い。
520 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 14:00:35 ] >>519 ありがとう。ファーストクラスオブジェクトでググればよかったのか。 俺もPythonのlambdaは気持ち悪いと思う。 あと、exceptで例外が複数のときだけ括弧つけるのも気持ち悪い。
521 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 14:11:16 ] (UNIX環境の)Pythonってソースプログラム実行中にソースの書き換えってできるの? インタプリタだから、できそうなイメージなんだけど
522 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 14:13:28 ] pythonって関数内で関数作って関数を返す関数作れたっけ?
523 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 14:26:28 ] tupleが (a,) ってなるのがきもい
524 名前:デフォルトの名無しさん [2008/05/25(日) 14:50:03 ] python の快活環境どれがおすすめですか?
525 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 15:54:31 ] >>522 いろんなデコレータのソース読んでみたら?そういうのばっかりだから。 Pythonのデコレータは、関数を引数にして関数を返す関数。 @foo(a,b) def bar(): の場合、fooは、"関数を引数にして関数を返す関数"を作成して返す関数になる。
526 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 15:58:09 ] 間違えた 快活環境じゃなくて開発環境
527 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 16:27:51 ] >>522 名前なしでそれができない、ってだけ。 あと定義された時の環境に対して書き換えが効かない。
528 名前:デフォルトの名無しさん [2008/05/25(日) 17:03:38 ] 385 名前:デフォルトの名無しさん[] 投稿日:2008/05/23(金) 22:18:26 助けて java.security.AccessControlException: access denied (java.lang.RuntimePermission exitVM.0) at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPermission(Unknown Source) at java.lang.SecurityManager.checkExit(Unknown Source) at javax.swing.JFrame.setDefaultCloseOperation(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.python.core.PyReflectedFunction.__call__(Unknown Source) at org.python.core.PyMethod.__call__(Unknown Source) at org.python.core.PyObject.__call__(Unknown Source) at org.python.core.PyInstance.invoke(Unknown Source) at applet$_PyInner.init$1(applet.java:61) at applet$_PyInner.call_function(applet.java:47) at org.python.core.PyTableCode.call(Unknown Source) at org.python.core.PyTableCode.call(Unknown Source) at org.python.core.PyTableCode.call(Unknown Source) at org.python.core.PyFunction.__call__(Unknown Source) at org.python.core.PyMethod.__call__(Unknown Source) at org.python.core.PyObject.__call__(Unknown Source) at org.python.core.PyObject._jcallexc(Unknown Source) at org.python.core.PyObject._jcall(Unknown Source) at applet$MyApplet.init(applet.java:139) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
529 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 17:56:17 ] 御臨終です
530 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 17:59:29 ] org が orz の相似に見えた
531 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 19:11:41 ] そういやIronPythonのスレはあるのにJPythonのスレはないんですね
532 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:08:15 ] Jythonのスレならあるでしょ。 専用じゃないけど
533 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:17:07 ] >>523 これならきもくない? tup = ( a, )
534 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:48:17 ] >>525 ,527 ありがとう やってみたら出来たよ これで使いやすいschemeの代わりが出来た
535 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 21:57:03 ] そんな見た目だけの問題じゃないよ! >533 誰かが「カンマがtupleを作るんだ、カッコじゃない」と言ってたが、 >>> x=() >>> type(x) <type 'tuple'> キモイヨー
536 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 22:22:42 ] >>535 男なら、空のタプルを作りたいときがあるってもんだ。
537 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 00:00:59 ] python for S60のスレはないよなぁ
538 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:06:35 ] パックリ(i) キモイヨー
539 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:15:23 ] RDBで言うテーブルに対するビュー Cで言う配列に対するポインタ みたいなノリで使える、オリジナルデータを更新可能なスライスみたいなの無いかな スライスみたいにコピーするんじゃなくて参照を握っていて、 更新も出来るやつ 自分で作るしかない?
540 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:44:42 ] うはは、キモイヨー。
541 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:49:16 ] >>537 需要があるのか?
542 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 01:48:06 ] >>539 ありますよ
543 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 09:27:23 ] >539 10行ぐらいで書けそうだから、必要な人は手元で書いちゃうんでは。
544 名前:デフォルトの名無しさん [2008/05/27(火) 09:57:14 ] ちょちょっっと書いてみていただけませんか?
545 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 11:27:27 ] >>544 書きました。 見せないけど。
546 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 16:41:49 ] さては11行になったな?
547 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 17:55:58 ] >>539 arrayじゃ駄目なの?
548 名前:539 mailto:sage [2008/05/27(火) 18:28:38 ] レスくれた人どうもです >>542 モジュール名を教えていただけませんか >>543 書いてみましたが、自分は10行では無理でした __getitem()__に負のインデクスやsliceオブジェクトが渡された時の 処理とかをいちいち書くのがウザいです >>547 arrayは全く用途が違うのではないでしょうか シークエンスの部分列を「参照」するだけならただのスライスで良いし itertools.islice()ならコピーを避けられますが、 元のシークエンスを「更新」もしたいわけです
549 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 18:51:41 ] pygameの和訳完成してもいいころなんじゃねーの
550 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 19:40:47 ] 547は配列を作りたいのかと勘違いした。 ようするに、ポインタに相当するものを作りたいのか。
551 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 19:53:15 ] うはは、すみません
552 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 20:10:20 ] >>548 要するにスライスをスライスして新しいスライスを作れればいい(そこを自前で実装するのは面倒)ということだな。 スライスをスライスしてスライスを作るというのはありがちな気がするので既にありそうだが。俺は残念ながら知らん。 自前で実装するのは確かに面倒そうだ。
553 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:02:45 ] >>539 www.rh.to/python/WDB.html こんなのとか? リンク先のViewの説明がそれっぽいとかおもた。 というか牛刀をもって鶏を割くみたいになってる気もする… >>457 def call(inil=[1,2,3,4,5]): srcl=inil; m(srcl,1,3); return srcl def m(x,i,j): _m(x[i:j]) def _m(x): x[0]=1; x[1]=1; x[2]=1 とか思いついて、書いてみる >>> def call(ini): src=ini; dst=m(src,1,4); dst.insert(0,src[0]); dst.append(src[4]); return dst >>> def m(x,i,j): print x[i:j]; return _m(x[i:j]) >>> def _m(x): x[0]=1; x[1]=1; x[2]=1; return x >>> call([1,2,3,4,5]) [2, 3, 4] [1, 1, 1, 1, 5] むぅ。糞コード。可読性悪すぐる…orz call()でintかlistで場合分け必要だし
554 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:15:15 ] numarray
555 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:36:17 ] coding.derkeiler.com/Archive/Python/comp.lang.python/2006-10/msg02680.html これとかヒントになるかも 一部を掬って変化を加えたら、全体が書き換わる…
556 名前:539 mailto:sage [2008/05/27(火) 22:52:01 ] ありがとうございます NumPyですか 数値計算が目的という訳ではなかったので完全に盲点でしたが、使えそうですね ちょっと試してみます
557 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 09:09:02 ] これからはRuby一色の時代。 PerlもPythonも廃れ、Rubyだけが生き残る新時代
558 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 09:42:45 ] その「新時代」になってから勉強しても全然遅くない。
559 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 12:02:30 ] for e in dir(): print e とかで出力されるデータをA-Z, a-z, __??__で 頭文字ごとに改行して出力するにはどうしたら良いですか?
560 名前:559 mailto:sage [2008/05/28(水) 14:23:42 ] >>> def print_elem_n(elem): ... print '\n', elem, ... >>> def print_elem(elem): ... print elem, ... >>> q='' >>> >>> a2z="abcdefghijklmnopqrstuvwxyz" >>> for e in dir(cssutils): ... if q == '' and q in set(a2z): q = e[0] ... if e[0] in set(a2z): ... if q != e[0]: ... print_elem_n(e) ... q=e[0] ... else: ... print_elem(e) 書けた…添削きぼん print文の、改行の取り扱いに嵌る orz
561 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 14:35:40 ] >>> a2z="abcdefghijklmnopqrstuvwxyz" >>> a2z=range(ord('a'), ord('z')+1)
562 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 14:35:53 ] groupby使ってみるといいんじゃない? from itertools import groupby from operator import itemgetter for k, g in groupby(sorted(dir(str)), itemgetter(0)): print ", ".join(g)
563 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 14:36:51 ] >>560 printだけ書けば改行できるのに。 lastchar = dir()[0][0] for e in dir(): if e[0] != lastchar: print lastchar = e[0] print e, これじゃダメ?
564 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 14:37:50 ] インデント消えちゃったけど、まぁ分かるよね?w
565 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 14:54:57 ] >>562 便利なもんがあるんだなー こんな普通な奴しか思いつかなかった def f(seq): d = {} for s in seq: d.setdefault(s[0], []).append(s) for k in sorted(d.iterkeys()): print ','.join(d[k])
566 名前:563 mailto:sage [2008/05/28(水) 15:07:07 ] Python始めて1週間の俺には", ".join(g) の部分がよく分からなかったが、 gのシーケンスを", "で区切った文字列が得られるのか。
567 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 15:18:09 ] むしろ g は glue の g かもしれないぜ
568 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 17:07:40 ] >>563 for e in dir(): 1. if 違う要素かどうか判定: 改行\n + フラグを更新する 2. 要素を出力する d。ノートにでもまとめて整理しとく乙
569 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 17:19:04 ] >>566 個人的には リスト.join(区切り文字) の方がわかりやすいと思ってる。
570 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 17:27:24 ] 1. FAQ嫁 2. Ruby使え 3. 俺もそう思う
571 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 17:43:04 ] 引数にジェネレータを与えられるのはstr.joinの一つの利点だと思う
572 名前:563 mailto:sage [2008/05/28(水) 17:51:18 ] >>569 俺も文脈的に直感的でないと思うけど、文字列クラスにjoinメソッドがあるという 形だからしょうがないね。 静的関数として提供した方がいい気がするが、元々静的関数だったのが廃止されて メソッドになったのね。
573 名前:デフォルトの名無しさん [2008/05/28(水) 19:13:53 ] djangoを使ってみようと思っています。 それでまずはmodelを定義してデータを入れるところまではできま した(sqlite3とかで直接DBの中身見て入ったのを確認した)。 だけど、manage.py shellでデータを確認しようとしても見れません。 具体的にはhoge.objects.all()とかってやっても[]が表示されるだ けです。 これはなぜなんでしょうか? あと、adminのhogeの画面でも 5 hoges のように表示されるだけで、DBに格納したデータをいじれたり、見 る事ができない状態です。 何かアドバイスがいただければ助かります。よろしくお願いします。
574 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 20:13:19 ] うちではみれてる
575 名前:デフォルトの名無しさん [2008/05/28(水) 23:51:30 ] ディショナリをそのキー名の変数にするってどうすればいいんですか? つまり a{hoge:1,foo:2,bar:3} を↓のようにしたいです。 hoge = 1 foo = 2 bar = 3
576 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 23:56:27 ] >>575 入門書嫁。