┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ おっぱい!おっぱい! └─┘ おっぱい!おっぱい!
このそっけなさが水滴クオリティ
>1 乙
いまだに何て読むのか知らない
ぴちょん
パイゾン
質問! win xpでpython3.1.1を使っているんだけど、UFT-8のファイルの読み込み方について質問です。 import codecs codecs.open(path, "r", "utf_8").read() だと、BOMがついてきちゃうんだけど、自動でそぎ落としてくれたりはしないのですか?
utf_8_sig
ググっても分からんかったので・・・ Popen4とかでpythonのプログラムから以下のようなスクリプトを呼び出す時、 #!/bin/bash echo "a" sleep 1 echo "b" sleep 1 echo "c" python側では呼び出したスクリプトの実行が完了するまで、スクリプトの標準出力の 内容を取得出来ないんだけど(スクリプト実行完了後に3行まとめて取得してしまう)、 スクリプトが1行出力するたびにpython側で確実に1行ずつ取得する良い方法ってありますか? ここ見れ、みたいな良いリファレンスとかでも助かります。
13 :
デフォルトの名無しさん :2009/09/24(木) 11:57:21
オブジェクトが持ってる属性って全部 __dict__ に入ってます? __slots__ に書いてある場合は違うのかな たとえば Exception のインスタンスって message っていう メンバを持ってますが, e.__dict__ にはそれらしきものが見当たらない. e = Exception("ahoaho") print e.message print e.__dict__ としてみて不思議だなぁと
14 :
デフォルトの名無しさん :2009/09/24(木) 18:53:38
x が何かのオブジェクトだとして print x とすると単に <type 'instance'> とだけ表示されるのは何なんでしょうか? どのクラスのインスタンス、というようなことは分からないのでしょうか?
15 :
デフォルトの名無しさん :2009/09/24(木) 18:58:00
16 :
デフォルトの名無しさん :2009/09/24(木) 19:03:24
新旧スタイルのクラスの違い?
>>15 を 2.5.4, 2.6.2 で試したら <type 'exceptions.Exception'> になった
チュートリアルのほうが間違ってるんじゃない?
python.jpは糞
みんなipython.elのipython-completeって使えてる? オラの環境だとEmacs内で起動されたIPythonが入力をエコーバックしてる上にstdout / stderr にわけて 出力してるせいかelisp側に変換候補のリストがわたってない (かわりにipython-completion-command-stringをもとに作られたコマンドのエコーがわたる)らしく、 ソースファイルバッファでも*Python*バッファでも補完できないんだが。
22 :
21 :2009/09/26(土) 08:43:28
Noop 上で動作する NooPython 公開
∧||∧
>>12 遅くなってしまったが、ありがとう。
質問した日の前日にpython始めたもんだから、そこまで見てなかったわ。
改善されるにしてもsubprocess使わんとだめそうね。サンクス。
前スレ消費しろ
逃げるなよ。
spam spam spam sparm spam
29 :
デフォルトの名無しさん :2009/10/04(日) 14:24:54
sperm?
プログラミングを久しぶりに始めようと思う 25年ぐらい前MZ-80でBASICとマシン語サブルーチン組んでた 20年前はQuickCでBBS全盛期で今で言う専ブラを作ってた Windowsきてからプログラミングさっぱりだったが いろいろ探してみたらここにたどり着いたよー!! まず何から始めよう?
python
Perl(OOライクなモジュールを作れるくらい)と C#(自分用のWinアプリやクラスライブラリを作れるくらい)の経験のやつが van Rossumのチュートリアルを一通りやったとして 次におすすめな1冊を教えて。 公式のドキュメントつーのはもっともだけど、書籍限定で。 日本語のほうがうれしい。
>>32 Perlベストプラクティスみたいなのをご所望なら、オライリーの「Pythonクックブック」がいい。ちょっと古いけど。
ただ、32のスペックなら、いきなりフレームワークやGoogle AppEngineの解説書
切れたので再送。 Perlベストプラクティスみたいなのをご所望なら、オライリーの「Pythonクックブック」がいい。ちょっと古いけど。 ただ、32のスペックなら、いきなりフレームワークやGoogle AppEngineの解説書に取りかかってもいいと思う。 手軽なのはDjangoかGoogle AppEngineで、実はPythonってすごいんじゃね?というのを知りたかったらZopeの本を読むといい。
Jythonプログラミングがいいに決まってるだろ
36 :
デフォルトの名無しさん :2009/10/05(月) 12:36:10
平日はサーバでJavaで書いてて 日曜はCPythonで遊んでるけど まだJythonは使ったことなかったな from java.io import * とか魅力的すぎる
>>34 早速d。参考にしつつ書店いってみます。
ひとまずクックブックを尼でなか見!してみたけど
フレームワーク、GAE、Zopeへ進むにしても持っててよさそうな内容ぽいね。
>>35 俺へのレスでいいのかな。dankogaiにも好評なようだね。
立ち読みしてみて考えます。
Google AppEngineの解説書 w
32の将来が心配(www
WindowsでPythonって実行形式になんない??
クックブックなら英語の方がいいと思う
py2exe
dankogaiにも好評 w
前スレ埋まる前に落ちたんかな
45 :
デフォルトの名無しさん :2009/10/06(火) 10:52:29
. 1. HTML で検索した結果 1〜10件目 / 約5,040,000,000件 . 2. PHP で検索した結果 1〜10件目 / 約2,970,000,000件 . 3. Java...... で検索した結果 1〜10件目 / 約 835,000,000件 . 4. Forth. で検索した結果 1〜10件目 / 約 323,000,000件 . 5. Ruby.. で検索した結果 1〜10件目 / 約 275,000,000件 . 6. perl..... で検索した結果 1〜10件目 / 約 245,000,000件 . 7. Python... で検索した結果 1〜10件目 / 約 204,000,000件 . 8. pascal... で検索した結果 1〜10件目 / 約 170,000,000件 . 9. Delphi で検索した結果 1〜10件目 / 約 127,000,000件 10. VisualBasic...で検索した結果 1〜10件目 / 約 121,000,000件 11. lisp... で検索した結果 1〜10件目 / 約. 26,700,000件 12. fortran で検索した結果 1〜10件目 / 約. 21,300,000件 13. COBOL で検索した結果 1〜10件目 / 約. 18,500,000件 14. HSP で検索した結果 1〜10件目 / 約. 12,300,000件 15. FreeBasic.. で検索した結果 1〜10件目 / 約 6,320,000件 16. Tcl/Tk. で検索した結果 1〜10件目 / 約 4,940,000件 17. QBasic で検索した結果 1〜10件目 / 約 4,190,000件 18. VisualC.... で検索した結果 1〜10件目 / 約 1,360,000件 19. DarkBASIC. で検索した結果 1〜10件目 / 約 1,320,000件 20. BasicStudio で検索した結果 1〜10件目 / 約 304,000件 21. N88basic. で検索した結果 1〜10件目 / 約 215,000件 22. f-basic で検索した結果 1〜10件目 / 約 109,000件 23. ActiveBasic で検索した結果 1〜10件目 / 約. 89,800件 24. 99BASIC.... で検索した結果 1〜10件目 / 約. 11,500件 3Dprogramming で検索した結果 1〜10件目 / 約794,000件 2Dprogramming で検索した結果 1〜10件目 / 約. 57,400件 intel で検索した結果 1〜10件目 / 約729,000,000件 amd で検索した結果 1〜10件目 / 約355,000,000件
ドカタ仕事の穴掘り士としては有能そうだが、頭は悪そう そんなかんじ
コピペで通報するぞゴルァ
Forthがその位置にあるってことは一般名詞も入ってるんだろうな するとRubyなんかもかなり割り引いて数えるべきだな
tkinterってpython本体をmake installしたら 一緒に入るものなの?
なんとかdevとか、なんとかdevelとかを入れなきゃだめ
ipython って for とか def とかの 複数行の入力を履歴↑で呼び出せるんだけど そのまま return すると IndentationError になっちゃうのって 何がいけないの? 下の行で ^A すると一行目の先頭に飛ぶ辺り、 行の構造がどこかに消えちゃってる??? ipython 0.9.1 ってのを使ってます In [1]: for i in range(3): ...: print i 0 1 2 In [2]: for i in range(3): # 履歴呼び出し print i ------> print(i) ------------------------------------------------------------ IndentationError: expected an indented block (<ipython console>, line 2)
うちはならない
うちはならへんわ
sage便利だね 自分で作ったpythonのプログラムと組み合わせる方法がよくわかんないけど
python3.xで画像編集できるライブラリってないの?
ctypesでOpenCV使えばいい
IPLだかPILだかってライブラリあった気がする
58 :
55 :2009/10/07(水) 22:21:38
>>56-57 レスありがとう。
PILは見つけたけど、2.x系のバイナリしか見当たらなかったのよ。
ctypesは調べること多そうで大変なので、やめておきます。
一部の処理だけ、他のスクリプトに投げることにしました。
ctypes食わず嫌いで避けるなんてもったいなさすぎ
初めてのPython第3版で、P.336の 「関数内でなく、関数の外側、つまりモジュールあるいは対話型コマンドラインの トップレベルを基準にすれば、モジュール全体のスコープ(グローバルスコープ)と ローカルスコープは同一になる。」 って説明が分かりません。 詳しく教えてください。
原文は、 「When you assign a name outside a function (i.e., at the top level of a module file, or at the interactive prompt), the local scope is the same as the global scope -the module's namespace.」 です。
関数の外側のローカルスコープはモジュール全体のスコープ(グローバルスコープ)と同一
関数の外側のローカルスコープはグローバルスコープ(モジュール全体のスコープ)と同じである っていうか日本語訳はWhenにこだわってて変になってるな
>>62 ,63
早いレスありがとう。
トップレベルはグローバルスコープということですね。
なぜわざわざ”関数の外側のローカルスコープ”なんて分かりにくい書き方してるんだろ。
日本語訳は酷過ぎるし、読むの疲れてきた。
2版よりはマシだけど・・。
LEGBルールの所だと思うけど、そこは読み飛ばした覚えがある 単に関数の外側で代入が行われた変数(グローバル変数)は 関数の内側からも外側からも見えるってことだろう 原文からして理解し難いから気にせず先に進んだほうがいいと思うよ
>>65 やはり原文もヒドイですよね・・・くっそー。
変なところはクドイくせにぃ〜・・・。
明日からまた頑張ってみますw
あとはクラスの使い方と例外の章を読んだら その本はもう積んじゃっていいと思う 気が向いたら拾い読みする程度でおk
>>64 >なぜわざわざ”関数の外側のローカルスコープ”なんて分かりにくい書き方してるんだろ。
namespaceの話をしているからだよ
積んだ後はPythonクックブック第2版ですか? その次が思い浮かばないw
関数内でなく、←こんな言葉は入っていない 関数の外側、 つまり←「つまり」ではなく「例えば」 モジュールあるいは対話型コマンドラインのトップレベルを基準にすれば、←コマンドラインって原文のどこに書いてある? モジュール全体のスコープ(グローバルスコープ)←()に入れるものを逆にして分かり難くしている とローカルスコープは←なんでこれを後ろにもってくるかなぁ 同一になる←「なる」も変なんだよなぁ というわけで、 関数の外側(例えばモジュールのトップレベルあるいは対話型プロンプト)で変数に代入したとき、 ローカルスコープはグローバルスコープ(モジュールのネームスペース)と同じである 翻訳したひとってpythonでプログラム書いたことないんじゃないかなぁw
>>70 「例えば」は e.g.
あとこの場合 the same as は「同一」って訳していいのかな
完全に同一ではないってニュアンスが含まれてる気がする
構造の骨だけみて直訳すれば、
関数の外(*1)でnameをassignしたら、
そのlocal scopeとglobal scopeはまさに同じ(*2)。
*1) モジュールファイルのトップレベルとか、プロンプトとか
*2) = モジュールの名前空間ね
http://www.python.org/doc/1.5.1p1/tut/scopes.html でほぼおなじフレーズがある。
全体の流れは以下。
1. 名前空間は、ビルトイン、モジュールグローバル、関数ローカルの3つ。
2. スコープは直接アクセスできる名前空間の範囲。
3. スコープは3種類あって、再内ローカル、モジュールグローバル、ビルトイン。
で、関数外では、ローカルスコープはグローバルスコープといつしょ、つまりグローバル名前空間ね、といってる。
混乱してるのは、名前空間とスコープを分離して考えてないから。
クソ本なんて買うからだ
>>72 >混乱してるのは、名前空間とスコープを分離して考えてないから。
どう違うの?
関数内で定義された変数のnamespace 関数内のスコープ 関数外で定義された変数のnamespace 関数外のスコープ
ローカルスコープは、関数内のスコープのことでしょ。 関数外のローカルスコープって意味分からん。 (関数外はグローバルスコープ)
当たり前のことをもっともらしく言い回しているだけでしょ
なんではじぱいが人気あるのかわからん
pythonスクリプトから別のコマンドを起動して実行する場合に subprocess.Popen() と popen2.popen3() などの複数の方法があるようですが 後者は古いので使わない方が良いと書かれているブログもありました 疑問に思ってる点は この二つは(パラメータ/オプションによって動作は違うでしょうけれど) pythonスクリプトを起動したshellをA pythonスクリプトをB pythonスクリプトから呼ばれるコマンドをC としたとき 前者の場合 Aの子プロセスとしてCが起動 後者の場合 Bの子プロセスとしてCが起動 の違いがあるような気がするのですが間違ってますか? そんなの気にせずに同じと考えて良いのでしょうか?
間違ってます 前者の場合 Bの子プロセスとしてCが起動 だよもん
わからないって言ってる人は 関数内のスコープ = ローカルスコープ だと思ってるんだよね 今いる場所のスコープ = ローカルスコープ って考えると理解しやすいかと
ああ、なるほど
pythonでgnuplotへのインターフェイスってないの? pythonではグラフは他の方法で描くのが普通なの?
>>82 の説明なら分かるね。
>>68 のnamespaceの話をしているからだよ
>>72 名前空間とスコープを分離して考えてないから
は意味不明。知ったかオツ
書籍もクソならスレ住民もクソだな
????
>>87 どれも正しくない。
>>65 の説明が正しい。
ローカルに無かったらグローバルから探すっていうだけの話。
Dive into Python 3 だれか翻訳しろ
じゃあ輪読しようぜ
Dive into Python 3 の翻訳は この前どこかで見たぜ
>>93 直訳で
だいぶいると Python3
翻訳すると
Python3人口は多いです。
(´・∀・`)
100 :
デフォルトの名無しさん :2009/10/09(金) 12:11:29
思ったほど大した量じゃないね これはいけるかも
_, ._ ( ゚ Д゚)
dive into pythonもいいけど、 ディスクリプタみたいな少しつっこんだ仕組みを解説してる文章が日本語であんまりないのも困った。
ディスクリプタってopenの返り値の?
property
porori
>>106 instancemethod, classmethod, staticmethod, property, superとかはぜんぶディスクリプタっていう仕組みで実現されている。
たとえばメソッドの第一引数にselfが渡されるのもディスクリプタのおかげだし、
staticmethod関数とかを自作することもできる。
ふつうは知らなくても問題ないし、知ってても邪悪な黒魔術が使えるだけだけど。
俺もディスクリプタのおかげで童貞卒業できた
ディスクリプタっていわれると普通ファイルディスクリプタだと思う
いあいや、USBだろ
descriptor 発音は"でぃ"なのか?
発音記号はdiになってる。
>>117 ラテン語やドイツ語では「ヌル」と読む。
筒井康隆の同人誌「NULL」「ネオ・ヌル」があるので、範囲を日本に限って、 コンピュータに限らなければ、石田晴久が元祖ということはない。
ドイツ語に違いオランダ語でもヌルと読むかは知らんが もしそうなら蘭学の時代からそうじゃね?
アナルと似てるのでナルと発音するのが恥ずかしかった女子高生がヌルと言ったのが初めて。
ヌルヌルポ
ガガッ
ズブの素人の俺参上
Tkinter使いたいんだけど、これってTcl/Tkに精通しないと無理? リファレンスが全然優しくないというか、ツリー表示するだけでTkinterとは違うリファレンス見ないといけなくてきつい
精通してても無理
mjk…
文字列操作メソッドのlstripってひょっとしてバグある? できるだけreplaceとか使ったほうがいいんだろうか
なぜバグがあると思ったか具体的に言ってもらわないと何とも
ごめん、バグじゃなくて仕様か。stripの機能を誤解してたわ。 >>> "netnet".lstrip("net") "net" みたいなのを期待してたんだけど、実際は"n","e","t"が 文字列の先頭に来ないように全部の文字列を省いちゃうわけか。
ちゃうわぼけ
空白文字を取り除くためのものだよ
>>132 strip()は文字列の先頭及び末尾から空白文字を取り除いたものを返す
引数を指定するとその文字列が除かれる。お前の例を使うと
>>> 'netxxxnet'.strip('net')
'xxx'
こうなる
>>135 stripでもいいんだけども、
>>> 'netentxxxtnenet'.strip('net')
'xxx'
こういう風に"net"じゃなくても、
文字列が除かれるんだっての知らなかったら、
書き込んだだけなんだよ。それだけ。
stripの引数はlistなんだぜ
制御文が関数になるとかいう話はなに?
どこ?
wxPythonがVistaで動かないんだけど何故?
なすーん
┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ おっぱい!おっぱい! └─┘ おっぱい!おっぱい!
┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ おっぱい!おっぱい! └─┘ おっぱい!おっぱい!
今日「みんなのPython」を買ってきて、1時間ほど前から始めています。 2つ質問があります。どうかお願いします。 ・画面が一瞬で消える IDLEのエディタのほうでサンプルを書き込んで実行しても、一瞬だけ 画面(DOS窓?)が出て消えるだけになります。 どうにかして目視で結果を見たいのですが、どうしたら良いですか? ・17Pのturtle 最序盤のturtleをimportするところで、コマンドラインからではなくIDLEの シェルで行うと、forward 100の1文のみではTurtleが(応答なし)になって しまいます。 (もう1行線を引く命令を追加すると、どちらも反映されるんですが…) これは、僕のインストール方法や使用法が何か間違っているんでしょうか? それとも、みなさん同じことになるんでしょうか?
sage すごい便利なんだけど、あんまり使ってる話聞かないのは 何か不具合でもあるの?
>>147 IDLEは諦めて、テキストエディタ+コマンドプロンプトで勉強するのがいいと思う
>>149 それが……、インストールしてあったサクラエディタで同じように打ち
込んでも、やはり一瞬で画面が消えてしまうのです。
#! usr/bin/env python
# coding: utf-8
print "Spam"
コードはこれだけなんですが……。
何度も実行していると、確かに一瞬ではありますがSpamと表示されて
いるようです。動体視力を鍛えろと言うことでしょうかorz
>>150 コマンドプロンプトを立ち上げる。
python ファイルへのパス
これで実行すれば消えないだろw
>>150 アイコンをダブルクリックして起動したらダメだよ
decimalモジュールってイマイチ用途がわかんないんですが これ使うと何が便利なんでしょう? 例えば n = decimal.Decimal(str(n)) って式を見つけたんですか この場合のnは代入前と後で何が違うんでしょう?
計算が正確になる >>> sum([0.1] * 10) 0.99999999999999989 >>> sum([decimal.Decimal("0.1")] * 10) Decimal('1.0')
>>> str(sum([0.1] * 10)) '1.0' とは違うの
>>150 最後の行に
raw_input()
を追加する
>>150 サクラ使ってるんだったら、外部コマンド実行で標準出力〜にチェック入れればいい
pythonとjavaが同じにみえる どっちも同じぐらいに簡単に書けるし どっちもモジュールが豊富
Javaほどウザくない Javaほど速くもないが
>>161 その辺の他の言語と比べたpythonの立ち位置ってどこになるんだろ
スクリプト言語とコンパイラ型言語は比較できるものなのか
164 :
147 :2009/10/24(土) 04:37:29
>>158 できました!ありがとうございます!
調べてみたら、DOS窓からキーボードの入力を受け付ける関数みたいですね。
こういう使い方もあるのかー、と驚いてしまいました。
>>149 さん、
>>151 さん、
>>152 さん、
>>159 さん、
みなさんありがとうございます!
ここは親切なインターネッツですね><
あんな型厳密なJavaが同じくらい簡単に書けるって何の冗談なんだ
kbhit();
import msvcrt msvcrt.getch() import os os.system('pause')
つまりRubyを使えばみんな幸せってことだな
またruby厨の荒らしですか
dankogai w
Javaに似ているところって「簡単」どうのって話じゃなくて、 「例外的な規則とかが少なくて洗練されている」あたりじゃね? C++やPerlの例外だらけな仕様と比べるとさ。
Clojureがjavaベースなのはなんでだろうと思ってな pythonからClojureに乗り換えても不便ないかと思って
hoge.add('fuga').add('fuga').add('fuga').add('fuga') これ実はPythonの場合でも 出来ない関数/メソッド多いんだよな self返せばいいのにNone返しやがる
つlist.extend,dict.update,set.update そーいうクソみたいなコード書くなってことだろ
それどこの ruby wwww
Javaで hogehoge.addHogeHage(hogehage) .addHageHage(hagehage) …… こんな感じに10行くらい続いてるコード思い出した
キーワード引数の代わりにメソッドチェインを使ってるのを見たことがある。 こういうのはまぁしょうがないかと思うけど…… // func.optX(x).optY(y).optZ(z).exec() inplaceな処理で戻り値返しちゃうと、 戻り値の意味がわかりづらくなっちゃうよねぇ。
ちょっと違った // func(hoge,huga).optionX(x).optionY(y).run(); こんな感じ。pythonでいうなら # func(hoge, huga, x=x, y=y) こんな感じのことをやっている。
>>179 途中のどこかでNoneにならないか心配
正規表現のマッチングが足りないとかでよくやってしまう
func(hoge, huga, **{x:x, y:y})
>>174 Clojureはライブラリが多ければLisp触りたいなって人向け
pass
func(hoge, huga, **{'x':x, 'y':y})
電卓として使ってるw 意外に便利だぜ
with文をつかって、ブロックの部分を実行する・しないを制御したいんですけど、できますか。 with Condition(x, y, z): ## 条件がTrueのときだけここを実行 print x, y, z 今はこんな感じでやっている処理があって、これをもっと格好よく書きたいというのが動機です。 @condition(x, y, y) def block1(): print x, y, y block1()
分岐は if を使う
JSとVBSにある文なのか…
pass
with のブロックは必ず実行されちゃうんじゃないの? def skip(): raise TypeError def condition(x,y,z): condition.f = lambda inner if x + y == z else skip() return condition condition.f = lambda : inner condition.__enter__ = lambda : condition.f condition.__exit__ = lambda type,val,trace : isinstance(val,TypeError) def inner(): return inner inner.__enter__ = lambda : True inner.__exit__ = lambda type,val,trace : True x = y = 1 z = 2 with condition(x,y,z) as f: with f(): print x, y, z こんなんしか思い浮かばない
>>187 @
の使い方ってそう使うんだ
ちょっと勉強になった
--------sub.py-------------- def hoge(): global a a = 999 #hoge() --------main.py------------- a = 111 from sub import * hoge() print a 結果は、111 でも、コメントを外して、 sub.py内で、hoge()を実行してやると 結果は、999 誰か親切な人、どういう事なのか教えてください それと、hoge()をmain.pyから呼び出して、 aの値を999に変える方法も知りたいです
from sub import * によって sub.a が main.a にインポートされてる
いや main.py で hoge() を呼んでも sub.py の a = 999 してるつもりが print a で 111 になるっつー話でそ きっと質問者は ruby のひとだと思う
モジュール間で変数を直接書き換えるなんて馬鹿なことをするのが悪い
>>194 が逝ってるのはこういうことだな
--------sub.py--------------
def hoge():
global s
s = 999
--------main.py-------------
s = 111
import sub
sub.hoge()
print s
print sub.s
--------sub.py-------------- s = 0 def hoge(): global s s = 999 #hoge() --------main.py------------- s = 111 from sub import * hoge() print s
>>194 でいいじゃん
hoge()した場合のfrom sub import *はmain.aをsub.aで上書き
hoge()してない場合のfrom sub... はsub.aが定義されてないからmain.aがそのまま残る
つまり global a は main.py の a じゃないってことでそ だから sub.py の hoge() をコメント取って 999 になるのは hoge() で main.py の a を書き換えた訳じゃなくて sub.py の a しか書き換えられていない from sub import * で main.a が隠れて sub.a が前に出てきただけ
>>193 これ試してみ
--------sub.py--------------
def hoge():
global a
a['hoge'] = 999
#hoge()
--------main.py-------------
a = {'hoge': 2, 'fuga': 3}
a['fuga'] = 111
from sub import *
hoge()
print a
PHPは糞 まで読んだ
えー
PHP使っててPythonに移ってきた奴は糞。
Perler移民しかいなかった頃がなつかしい
結局Rubyが一番っていう結論に落ち着くよね(´・ω・`)
またruby厨の荒らしですか
Parallel Python って使った方いらっしゃるかしら
中学生にも高速化できてしまうRubyってさすが。
またruby厨の荒らしですか
193 の質問者です。 親切な方々レスありがとさんです 「辞書」と「リスト」は、可変性なので、 インポートで読んだ後も、mainとsubで共有されてるから hoge()で、subのを更新したらmainのも更新されるけど、 それ以外の数値、文字列とかは、パイソンには モジュール間をまたぐグローバル変数が無い以上 インポート時に一度代入されておしまいって事であってる? --------sub.py-------------- a = [0,0] b = 0 def hoge(): global a,b a[0] = 999 #リストなので、効果ある b = 999 #数値なので、効果なし --------main.py------------- import sub a = sub.a #共有される b = sub.b #代入されるだけ sub.hoge() print a,b ---------------------------- 結果は、 [999,0] 0
Pythonは名前にオブジェクトを束縛する 変数自体が実体を持ってるCとかとは違う扱い方になる main.a -> sub.a -> [0,0] じゃなくて main.a -> [0,0] <- sub.a a[0] = 999 は sub.a に代入する訳ではないので参照はそのまま 同じく main.b -> sub.b -> 0 じゃなくて main.b -> 0 <- sub.b b = 999 で sub.b の参照が書き換えられる。でも main.b は 0 を参照したまま
クラスタに簡単にもっていけるのがイイすな。
しかし速度評価は注意しないといかんのでしょうな、 Cの3倍遅いのを3台で動かしても無意味。 単一プロセスであまりCより遅くもない(2割り増しくらい??) なら簡単にクラスタに持っていくとかイイすよな。 内製の古い因子分析プログラム(ゲロ遅い)をPython/Numpy/PyCuda/Parallel Python などで書き換えられたらいいなぁ。でもソースが悲惨なんだよな…20年位前からあるんだわ。
>>212 数値や文字列は、使い勝手は値渡しのようだけど、
実際は全部参照渡しなのか
勉強になりますた
execで、名前空間指定してやれば
他のモジュールから数値でも変更できるんだね
あんまスマートじゃないのかな
--------sub.py--------------
def hoge(b):
exec('a = 999',b)
--------main.py-------------
import __main__,sub
a = 0
sub.hoge(__main__.__dict__)
print a
----------------------------
結果は、999
質問の趣旨から言って __main__.__dict__をhogeに渡すのは反則でしょう
どこらへんが、反則ですかね? ひょっとしたら、他にいい方法がありますかね?
219 :
デフォルトの名無しさん :2009/11/05(木) 01:38:00
socketでホストを立ててTkinterでGUIみたいな物の実装例を探しています 別スレッドで走らせるにしてもTkinter側のデータの受け取りをTkAfterでポーリングするとか 微妙なのしか見つからなかったので・・・ socket側で何か起きたらTkinterのイベントが起動するみたいな実装は出来ないでしょうか・・・? よろしくおねがいします
Twisted
インストールマンドクサイヨ('A`) asyncore
wsgiを他の言語から使うことはできないものか
223 :
219 :2009/11/05(木) 19:31:28
>>220-221 レスありがとう
スクリプトの配布も検討しているのでPythonのパッケージのみインストールされている環境で
動くようにしたいので標準で同梱されているライブラリ以外は出来るだけ使いたくないのですが・・・
たびたびすいませんが、よろしくお願いします
asyncore は標準
twistedは病気
初めまして Pythonで学ぶプログラミング作法を読んで興味を持ちました が、3.01を入れたらハローワールドもできず… 2.x系と3.x系でだいぶ違うようなのですが、初めてのPython第3版で勉強して3.x系でやれますか? 英語のは第4版出てるみたいなのですが、日本語化は来年以降でしょうし… 新規で始めるので、3.x系を覚えていった方がいいとは思うのですが、どの書籍で勉強すればいいか迷ってます 諸先輩からのアドバイス待ってます
227 :
デフォルトの名無しさん :2009/11/06(金) 10:13:02
>新規で始めるので、3.x系を覚えていった方がいいとは思うのですが、 新規なら 2.5.x/2.6.x だjk
>>226 今のところは2.x使っておいたほうがいいよ。
3.xを使っている人はまだほとんどいない。
そもそも2.xと3.xは細かいところが違うだけだから、
2.6をフルにつかっていれば3.xにもすぐ対応できる。たぶんきっと
>>226 は Windows7 に飛びつくタイプ
>>233 いや必要なだけの情報はちゃんと公式にドキュメント化されている。
そこらへんはRubyと違い、Pythonのいいところ。
ただ、そのドキュメントはすでに2.xでPythonをマスターしている人むけだから、
>>226 のような初心者が既存の書籍で勉強するにはまだ2.xのほうがいい。
結局のところ、サードパーティ製ライブラリの対応待ちという状況
Python、もっと情報っつーかサンプル欲しいですわ。 urllib使ってベーシック認証のWWWサイトに入るのに 1日掛かった。まぁ、オレは馬鹿だってのは認めるけど?
ドキュメントだけでサンプル無いと判らん香具師は馬鹿だと思う
>>237 馬鹿って言うな。経験の差だろ。
他言語のサンプルを見ていれば要領がわかるもの。
良いサンプルはあればあるだけよいよ。
みなさん様々なアドバイスありがとうございます 3.x系はこれから発展していくみたいですね その頃には俺もある程度慣れてればいいなぁ みなさんのアドバイスすごく参考になりました 初めてのPython第3版買って、2.x系で勉強しようと思います
とりあえず第4章まで読みました。 リスト内包表記やディクショナリってすごい便利ですね。 Cしか知らない無知な僕ですけど、目からうろこでした。 これからもよろしくお願いします。
はい
sortもかなり便利よ。多重ソートとか簡単に書けるね。
>>236 urllib basic認証 でぐぐれかす
って感じが多いな俺は。
だれかしらサンプル的コードを書いてる。
まぁ間違ってたり古かったりも多いが。
間違ってるのにハマると無駄な時間を食う。なんということだ。
うそをうそと見抜けない人はネットは向いてない
urllibとかurllib2てワンライナー専用すぎて辛い
馬鹿にも分かる、関数に決まりきった値をセットすれば使えるほうがうれしいわな。 FTPLibだったかな、コマンドを手書きするやつ。 どうしてretrbinaryに'RETR xxxxx'って書かないといけないんだろう。
string.chompってないの?
>>248 こんなの?
>>> 'hoge\n'.strip()
'hoge'
rstrip("\r\n")
Python3入れてみたけどこれ文字列周り大変だな b 付きのヤツは decode しとけばいいのかな
完全にかぶった orz
まえにこのスレで、新規に始めるならPython2とPython3どっちがいいって聞いたら、3を薦められたので、ずっと3使ってるんだが 使いたいライブラリが対応してなかったり、調べようとしても情報が少なかったりで、しなくてもいい苦労をたくさんした気がする。
大抵2.6を勧めてるはずだが 運悪く意地悪な回答者に当たったとか
若しくは回答者がWindows7に飛びつくタイプだったか
>>256 2系だと今度はエンコードでちょいと苦労することもある
そんな俺は2.6+うにこーどりてらる
>>258 Vistaに飛び付くタイプ、じゃね?
バージョン的にも互換性的にも
>>258 7は真っ先に手に入れるだろ。
3を使わなくてもアプリは出来るが、
7はないと動かない人が出てくる。
他人の作ったプログラムを使うことはあっても、
自分で作って他人に使ってもらったことないのか?
>>259-260 まだSP1も出てないのに新しいものは良いだろうと安易に飛びつくと言う意味の比喩であろう
>>232 を転用したんだけど、なるほどプログラマだとそういう発想があるか。
趣味グラマだから動作確認のためにまだ使わない7を買うほど他人の事考えてやってない。
インスタンスごとに別々のメソッドを定義するにはどうしたらいいですか。 以下のようにしたけどだめでした。 class Foo(object): def __init__(self, name): self.name = name def f1(self): print self.name obj = Foo("foo") obj.f1 = f1 # インスタンスごとに独自の関数を与える print obj.f1 # <function f1 at 0x100483d70> obj.f1() # TypeError: f1() takes exactly 1 argument (0 given) ここで obj.f1 が function ではなく bound method になればいいんだと思うんですが、方法が分かりません。 ご存知の方がいましたら教えてください。
from types import * obj.f1 = MethodType(f1, obj, Foo) もしくは obj.f1 = MethodType(f1, obj)
getattr(self.name, "f1")
>>264 動作が確認できました。ありがとうございました。
>>264 横からだけどありがと。
今まで↓みたいにしかできないものだと思ってた。
obj = Foo("foo")
def f1():
print obj.name
obj.f1 = f1
obj.f1()
Pythonで、評価関数を指定できるmax()はありますか。 items = ["foo", "baaar", "bz"] max_by(lambda x: len(x), items) #=> "baaar" みたいなのです。
max(items, key=len)
横からだけど >>> max(["11","111","22"]) '22' >>> max(["11","111","22"],key=len) '111' おお、こんなこと出来たのか
バージョン2.5以降で、keyという名前だけど比較関数なのか。
確かシャチ泳ぎとか言ったような
>>269 ありがとうございます。
max()のドキュメントをみたら、max(1, 2, 3, 4) みたいな使い方をするみたいだったので、
max([1,2,3,4]) のようにリストを取れるとは知りませんでした。
>>273 もし max がリストを受け取らないとしても、
max(*["11", "111", "22"], key=len)
のように * でリストのアンパックをすれば利用できるよ。
* は便利だから覚えておいたほうがいい。
もしリスト受け取りも展開も出来なかったら地獄を見るな。
Pythonのドキュメントってかなりアバウトだよなぁ インデントは要求してくるのに
>>270 横からだけど
数字(int)とみなして比較して
22 じゃなくて 111 が max になるようにするには?
っint
max(["11","111","22"], key=int) で "111"が返ってくるな。
max(['11','111','22'], key=lambda x: 22-int(x)) 11
つ 3.6.4 変更可能なシーケンス型 ここの key と同じでしょ
横からだけど >>> sorted(['19', '210', '181', '22'], key=lambda x: max(c for c in x)) ['210', '22', '181', '19'] こんなのもありか 知らなかった dx
>>282 ん?
含まれている文字の最大の文字でソート、で合ってる?
2,2,8,9
ってことだよね?
>>283 多分。
c for c in x って書き方もアリなのか、
*x とか list(x)の方が分かりやすい印象。
それにしてもしっかりドキュメントに書いてあるのな、気付かなかったわ。
>>> sorted(['19', '210', '181', '22'], key=lambda x: max(x)) ['210', '22', '181', '19']
sorted(['19', '210', '181', '22'], key=max) でもいいんじゃね
IDE無いと使う気にならない惰弱なオレです。
Pythonの実績を調べてるんだけど、Pythonで作られたなんか有名なシステムとか採用実績とかあれば教えてください。 YouTubeとGoogleは分かったので、それ以外で有名どころを教えてください。
それだけです
俺の家のスクリプト
僕のエロ画像収集bot
なさじゃくさ
俺のテンプレ貼り付けスクリプト
yum
dict.get() 相当のものは list にありますか。 [3,4,5].get(9, None) みたいなことができればうれしい。
ないよ
>>298 dict(zip([3,4,5],[True]*3)).get(9, None)
9 if 9 in [3,4,5] else None
>>298 [3,4,5].count(9) or None
仕様通りじゃなかった・・・
UTF8を表すエンコーディング名って、utf8 も utf-8 も使えるようですが、どっちが正しいのでしょうか。 print 'string'.encode('utf8') # OK print 'string'.encode('utf-8') # OK
'utf-8' が登録されてる名前で、 utf8 はエイリアス >>> codecs.lookup('utf8').name 'utf-8' >>> codecs.lookup('sjis').name 'shift_jis'
SHIFT-JISを表す?エンコーディング名って、cp932 も mbcs も shift_jis も使えるようですが、どれが正しいのでしょうか。 print 'string'.encode('cp932') # OK print 'string'.encode('mbcs') # OK print 'string'.encode('shift_jis') # OK
>>307 純粋な Shift-JIS が shift_jis
Windowsで使われている、MSの拡張が入ったShift-JISが cp932
で、 mbcs というのは、 Windows においてPython起動時に site.py というファイルの中で
Windowsの言語設定をもとに設定される cp??? へのエイリアス。
もちろんWindowsの言語設定が日本だと cp932。
ありがとうございます mbcs を使っておくのがよさげな気がします
>>309 ちょっと待て、分かっているのかもしれないが念のため
どれを使えばいいかはケースバイケースで、
常にどれかを使っておけばよい、というようなものじゃないよ
普通cp932だとおもうが
cp932
cp932
utf-8
euc-jp
Latin-1
で?
>>306 さんくすです。307は違う人だけど、308も参考になりました。
319 :
デフォルトの名無しさん :2009/11/12(木) 18:03:39
cp931
cp65001
>>298 [3,4,5][9:9+1]で[]が返る、っていうのがたまに使える
>>331 それは普通に len([3,4,5]) > 9 で良くない?
言いたいのはインデックスエラーを出さない方法じゃない?
>>322 もちろん。「たまに」って書いたのは、こういうパターンの時。
if flags[i:i+2] == [101, 202]:
....
範囲と値の検査が同時にできる。
あーなるほど。
>>323 の意味が判ったわ
確かに便利だ
ValueErrorってどんなときに出ますか。いろいろ試してみたのですが、TypeErrorばかりが出てValueErrorが出ません。 またValueErrorとTypeErrorの使い分けの指針はありますか。
>>> math.asin(2) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: math domain error
微妙な例だな
int("hello")
0 / 0
math.tan(math.pi/2)
math.log(0) math.log(-1)
cmath.log(0) cmath.log(-1)
読めるように文字コードを変換したいんだけどインプットの文字コードは完全性が保証されない (途中で切れたり、一部化けている可能性がある)。でも読めるところは読みたい場合って どのようにしたらいいですかね? 今UTF-8からSJISをやっているんですがencode/decodeメソッドだと例外が発生しちゃうし・・・ nkfとか使えば出来るのだろうけどPython標準パッケージのみで何とかしたいのですが・・・
.encode('shift_jis', 'ignore')
339 :
337 :2009/11/15(日) 04:15:01
>>338 おぉぅ、そんなオプションがあったのか。出来た
ありがとう
入門書くらい読めよゆとり。
入門書なんて読まないで良いからリファレンス読むべきかと
あの訳のわからない日本語リファレンスか・・・
GoでGoogleの姿勢がはっきりしたな Python終了
Googleは変態
グイドもgo開発に関わってるんだろうか
Goもキワモノ言語っぽいし
スケールがどでかいもの作るなら素直にC++でも使えってことだ
>>345 マジレスすると日本語されたから訳がわからないんじゃなくて
訳のわからない原文を訳しているから訳がわからない
リファレンスって訳わからなかったっけ? 普通のリファレンスだと思うが・・・
ポエムだと思って読め
>>352 じゃあ聞くけどlistオブジェクトで呼べるメソッドと
そのメソッドが定義されているクラスはリファレンスの
何処を見れば判る?
>>354 別の場所でも話題になっていたがライブラリリファレンスのビルトインまわりは
ドキュメントの質が特にひどいね
入門書嫁。
俺の脳内を読め!
昔から手つかずだよな。 俺はキーワードで list を入力して operations on で見に行く。
>>356 英語だしリファレンスにするには説明が簡単すぎるよ(´・ω・`)
つ 3.6 シーケンス型 str, unicode, list, tuple, buffer, xrange つ 3.6.4 変更可能なシーケンス型
>>361 これでPython初心者に「理解しろ」と言ってしまう奴はきっとモテないだろうなあ
馬鹿よけだから仕方あるまい
んな事言われても知らんがな
釣れた釣れた。 ま,バカの遺伝子はそいつの世代で消え去るべきだよね〜。
後釣り宣言かよw
逆に釣られた362が哀れ
キチガイ世にはばかる。
捨て台詞大会
非モテの博覧会。
なにこのキモいスレと思ってスレタイを見たらPython本スレだったときの悲しさ
みんな抑圧されてるのね
スレ立ってから2ヶ月経っても400行ってねえし スレ伸びたからみんなうれしいんだよ
手段が目的の人が選ぶ言語
またruby厨の荒らしですか
非モテ〜 非モテ〜 非モテ〜〜〜
マイルド〜
Pythonに都合の悪い話になるとRuby厨のせいかよw
ティモテー ティモテー モルスァー
>>381 phpは他言語に興味ないか自虐ネタに走るし、PerlもPythonには興味ないし、
Pythonスレを汚すのってRuby厨くらいしかいないんだよ。
誰か、komodo edit(openkomodo?)でpython使ってる人居ます?
いいえ、これはEditraです
なんかRubyにトラウマを持っている人がいるな。可哀想に。 Rubyなんか忘れたらいいよ、そのほうが楽しい人生遅れるよ
RubyじゃなくてRuby「厨」ね
>>386 まったくだ。Python使ってるとRuby使う意味なんて皆無と言っていいから
Rubyは全く気にかけてない。
なのになぜかPythonスレにはRuby厨が来て荒らすんだよなぁ。
this is abstract responses! I know python programmer has foolish meadow (:
>>388 両方使っている俺は来ちゃいけない訳か・・・
python.el で選択した領域のインデントを一括で下げる方法ってありましたでしょうか
Rubyを先に覚えたんだけど Pythonに興味があってこのスレ来たら 怖い人たちばっかりでかなり引いてしまった 今思えば馬鹿よけだったんだなぁと もうすっかりPython漬けで Rubyなんて全然使ってません 残念ながらRubyの必要性を感じない
C#、Ruby、Pythonやってる俺的には ここの怖い人たちが過疎スレの原因作ってるとしか思えない
だって的外れなことしか言わないんだもん
ネタが少ないっていう問題もあるやも。流れない水は腐るっていうし。 とりあえずお前らは数値かどうかの判定どうやってる?
wxpythonとpyQtを比較した記事ないかなー
>>395 try exceptで囲んでintで変換するだけ
unicodedata使うと多少スマートになるけどややこしいことはしない方がいい
Pythonはどうしても必要なときしか使わないな(≒組み込まれていて使わざるを得ない場合)
Rubyの方がリファレンスマニュアルで頭を抱えることが少ないしコーディング量も少なくてすむ
配布すること自体まず無いから自分が使えれば困らないし
>>397 Pythonで書いていると例外をトラップしなければいけないことが多い・・・
エラーなのに変な戻り値を返される方が困る
A. エラーを示す戻り値をチェックし忘れて変な状態のまま処理続行 B. 例外を補足しないと止まる どっちがいいのって話だね Goは例外ないみたいだけど
パッと書くときはAの方がラクチンだけど真面目に書くときはBの方が安心感あるな
こういうときのお約束はこれだろ
>>398 っPerl
>>399 エラーなのに変な戻り値ってどんな処理系だwww
>>402 Perlはソースを見ているだけで頭痛がするのでアリエナーイ
irb(main):001:0> "d100".to_i => 0 うん、ありえないね 漏れPythonもRubyも使うけど普通にワロタ
エラー処理しないで実行して、実際にエラーが起こったら変な具合に 実行続ける代わりにトレースバック出して止まるだけだから、 エラーが起こらないうちはBでもAでも楽チンなのは変わらない。
>>404 オイオイ・・・リファレンスマニュアルを読めよ・・・
ttp://doc.okkez.net/static/187/method/String/i/to_i.html >整数とみなせない文字があればそこまでを変換対象とします。変換対象が空文字列であれば 0 を返します。
↑の文が理解できればリファレンスマニュアルに沿った動作であり問題ないだろ?
動作が気に入らなきゃ該当メソッドをオーバーライドすれば良かろう
って激しくスレ違いだなw
そういえばPythonを使うようになってから気になっているんだがPythonって標準クラスライブラリに対する
メソッドの追加やメソッドのオーバーライドって出来ないのか?
>>391 py-shift-region-rightとpy-shift-region-left
C-c >
C-C <
>>406 んとね、to_iの戻り値から
* 変換した結果として0を返したのか
* 何も変換できるものがなかったから0を返したのか
区別が付かないのが嫌なの
リファレンスマニュアルに書いてあるとかそういう問題じゃなくてね
んでオーバーライドってのは笑うところだよね
メソッドを「生やす」のって弊害のほうが大きい気がするんだけど、
>>408 これはもう自己中乙って言って良いよなw
そしてやっぱり、リファレンスマニュアルを読まないのなw
>Kernel.#Integer,〜 も参照してください。
ご丁寧に書いてあるのに・・・
はい、またキチガイ発生
反論できなくなるとキチガイの捨て台詞ですか これ以上はアンチスレでやった方が良いかな
逃げやすい体質
反論出来ないってか単に面倒だからだと思うが、それなりにエネルギーいるし。 pythonしか知らない俺からすれば408の方が的確な事言ってる気がするしな
404は「設計が気に入らない」と言っただけでしょ。 それに対して「仕様通りの動作だ」とか言ってるのは論点がズレてるんだよ。
メソッドオーバーライドして、他のモジュールの動作に影響が出たらどうすんの? 既存のクラスを継承した独自クラスで自分の好きな動作を実装したらいいじゃない。
アパート借りに下見に行ったらデザインが気に食わなくて 不動産屋さんに言って断ろうと思ったら間取りどおりですよっていわれたみたいな
ちょっとずつ動作の異なる複数のメソッドがあるよりも、 汎用的なひとつのメソッドがあるほうが良いな。 Kernel#Integerと string.to_i の動作の違いなんて覚えたくないし。
>>417 その例えは微妙だなw
まあ敢えて乗っかるならその先はデザインの好みの問題だからなんとも。
少なくともここでやる話じゃないな
>>416 オーバーライドとオーバーロードが混ざってる
Pythonは強い動的型付け、Rubyは弱い動的型付け 動作に関して気に入らないなら好きの使えば?でFAだろ
多項式を扱うライブラリでいいのない?
>>404 みたいな俺の思想が世界の常識みたいなのが居るから紛争が絶えないんだなw
全角w君と呼ぼう
じゃあ何のための例外機構だよ まさか大域脱出のためとか…ググってワロタw
例外はgotoのかわりに使うに決まってるだろ
>>424 てかASCIIのwだと、「笑い」と打つのを略したことにならんだろう。
lol
431 :
デフォルトの名無しさん :2009/11/18(水) 19:21:26
>>431 マルチポストすんな
どうせここの住民は向こうも見てるよ
なんかRubyにトラウマ抱えている人が多いなあ。 Ruby で "hennano".to_i が 0 になるのは、Cのatoi()由来でしょ。awkとかperlとか古い言語はそうだし。 "abc".to_i が 0 になるのと、Integer("abc") で例外が投げられるのと、二種類用意されているんだから、使い分ければいいだけじゃん。 そんなに気にすることか?
そのatoiがエラーを検出できない困ったちゃんなわけで
だから例外を投げるバージョンも用意されているわけで
Integer(x) と x.to_i の動作が、 Integer 型ではない String 型でも異なるというのが 気持ち悪いな。他は全部統一されてるのに。 そもそも、例外投げないバージョンが必要な理由がわからない。なんで一つじゃいけないの? どっちが例外投げるバージョンだったか、なんていうバッドノウハウを増やさないといけない 論理的な理由があるの? Cのatoiは、そもそも例外が無い言語だkら、エラーコードを使うとAPIが複雑になるという 理由が歩けど、例外のある言語がatoiと同じインタフェースにする必要性は無いと思う。
俺Python好きだけど 誤変換放置するようなヤツの言うことよりRubyの動作のが納得できるわ
宗教戦争でしか伸びない悲しいスレ
2ちゃんで誤変換指摘する奴は荒らし
Perl使いなのにこのスレにいる俺
はっきりいって Ruby は糞 "abc".to_i が 0 って誤変換だろ これじゃ品質を担保できないんだよ
もうちょっと、上手くなってから来ようね
それが僕には気持ちよかったから
0120−444−444
一番気持ちいいのはオナニーだよね
電池の話はやめろ
pass
アナルの話も角電池の話もしてなだろ
Python儲には使いやすいのを使うという発想が無いらしいからな
def to_i(s): try: return int(s) except ValueError, e: return 0
使いやすいからpython使ってますが
>>436 >そもそも、例外投げないバージョンが必要な理由がわからない。なんで一つじゃいけないの?
>どっちが例外投げるバージョンだったか、なんていうバッドノウハウを増やさないといけない
>論理的な理由があるの?
お前なあ。
pythonだって、例外を投げるdict[]と投げないdict.get()が用意されているだろ。
str.find()は例外を投げないけどstr.index()は投げるだろ。
それを使い分けるのはバッドノウハウなのか?
一生懸命rubyの欠点をあげつらっているつもりだろうけど、pythonでもおんなじようなものだから、やめといたほうがいいよ。恥かくだけ。
rubyにトラウマ抱えている人は大変だなほんと。
1行余計なのがスレが荒れる原因だよ
ruby教信者は大変だなほんと。
>>452 dict.get()は例外を投げないが
デフォルト値をちゃんと指定するようになってる
勝手に0を返したりとかはしない
rubyより気が利くねぇ
そういう細かい気遣いが大規模プロジェクトに使われる理由だろう
まったくである
str.find() は -1 を返すから見つからなかったことが判る。 一行を try-catch で囲うくらいなら if で分岐できたほうが良いので、find()が便利。 でも、部分文字列が見つかるはず && もっと大域のtry-catchにエラー処理を任せられるならば if + raise よりも index() の方が便利。 どちらもエラー処理が可能だし、使い分けるための理由がちゃんとある。
Python厨にC系のコードとか書かせたら バッファオーバーランだらけになるんだろうな 入力値のチェックをしないらしいからな
C経験者は多いと思う
むしろC使ってたときは引数も戻り値もチェックしまくってたけど Pythonを好んで使うような人は暗黙の何とかが嫌いだろ
1
PyPMってどうなの。 使いやすい?
465 :
デフォルトの名無しさん :2009/11/24(火) 11:36:56
PythonでShift_JIS側で「−」「梶vを読み込むのってどうやったらいいですか? UnicodeEncodeErrorになります 「〜」とかはうまくいったんですが上の2文字がUnicodeEncodeErrorになるのです
>>466 sitecustomize.pyで
import sys
sys.setdefaultencoding("cp932")
で設定したらいけました、ありがとう
pythonってコード丸見えの状態で配布する以外方法はないですか? Javaとか.NETもやりようによってはソースコード丸見えらしいですが、普通は見えないらしいです pythonには隠す方法はないんですかね?
>>468 いまいちピンと来ないんだが、コンパイル言語みたいにexeとかの実行方式で配布したいってこと?
スクリプト言語ではこれは無理なような気がするけど、py2exeもスクリプトファイル内包してたよな…
単純に配布時に見せたくないってだけだったら、zipなりlzhなりで固めてから配布すればいいだけだと思う
>>469 すみません、目的を言うと、ある程度ソースコードの機密性を確保したいという事なんですが
やはりスクリプト言語は私の目的には合わないですかねー
非常にエレガントなpythonの記述法に興味を持ったのですが…
Pythonのバイトコンパイルされたコード(.pyc/.pyo)は素人が中身見ても わかんねえよ ハッカー相手なら何やっても無駄だから諦めろ、それはどんな言語を使っても 同じ
内容は全部Cで書いてpydにして、それを呼び出せば見えないね
>>471 なるほど、コードをそのまま配布するわけじゃないんですね。
ありがとうございます。ぱっと見て分からなければ十分です。
pyc/pyoは配布用ファイルというわけじゃないし。 素直に諦めてください。
psyco
cython
>>473-474 .pyc/.pyoがあれば動くので、.pyを配布したくなければ配布する必要は無い
zipimportというJavaでいうjarのような機能もあるんで
.pyc/.pyoをさらにzipで固めてもいいよ
Windowsならpy2exeが手軽だが
機密性ってどんな機密性? ただ単にコード見られたくないだけなら py2exe使えばわざわざ見る人は居ないと思うよ
>>474 バイトコンパイルされたファイルを配布しても問題になることは普通ないと思う
あとは
>>471 と同じ
正直Reflector使えば笑えるくらい綺麗に出力される.NETよりマシ
ありがとうございます py2exeで十分な気がしてきました。 これもデコンパイラを使えば見えてしまうようですが、そこまでする相手には何をしても無駄ですよね
LXRやGNU-GLOBALみたいにリンクつきHTMLでソースコードを読ませてくれるような python向けのツールのお奨め教えてください。
>>481 HTMLじゃないけど、ctagsでいいんじゃないだろうか
PyPyにはまじで期待してる
名前がなぁ…
LLVMだっけ
.pyo/.pycってアーキテクチャ違うマシンでもそのまま動く?
ok
pypyもバイトコード互換?
変数がNoneであるかを判断するには a == None と a is None のどちらがいいのでしょうか?
MomiMomiはないの?
それだと a = 0 のときも通っちゃうだろ
http://oldriver.org/python/pep-0008j.html - None のようなシングルトンとの比較には、いつも「is」や「is not」を
使うべきである。
また「if x is not None」を表現するのに「if x」と書けることを知って
おくこと。たとえば、デフォルトで None が代入される変数や引数に、他
の値を持っていることをテストするときに使える。他の値には、False も
含まれることに注意。
>>494 a == None
がダメな理由って何?
馬鹿な実装だと遅い。
こいつのコードは当てにならんという印
こういうのって言語ごとに どうやるか異なるからややこしい 統一してくれよ
どれに統一するかで骨肉の争いが
>>496 == はオーバーロード可能な演算子。
a.__eq__(other) の実装しだいでは、 a が None ではなくても a == None になり得る。
あと、 is の方が速い。
あとは、== は「同値」かどうかを判定するための演算子で、
is は「同一」かどうかを判定するための演算子。
シングルトンの性質上、「同一性」を判定するほうが正しい。
この辺は Java の equals() と == の違いと一緒。
個人的に、 == が同値で is が同一になっているPythonの方がJavaよりも好き。
502 :
490 :2009/12/01(火) 01:31:29
==とisの違いは理解してましたが、==はオーバーロード次第でバグのもとになるのですね ありがとうございました
>>495 まちがってね?
Also, beware of writing "if x" when you really mean "if x is not None"
-- e.g. when testing whether a variable or argument that defaults to
None was set to some other value. The other value might have a type
(such as a container) that could be false in a boolean context!
"if x is not None" を意図しているときに "if x" と書いてしまわないように
注意してください。たとえば、デフォルト値を None に設定した変数や引数に他
の値が代入されたかどうかをテストするときに注意が必要です。「他の値」が、
boolean context で false になるような型 (たとえばコンテナなど) の場合も
あります。
Python屋は暗黙の了解が嫌いとか言っているそばから ==じゃなくてisを使うのが当然だとかなんてダブルスタンダードwww
釣れますか?よりも 日本語使えますか?と聞きたくなるレスだな
>>495 その日本語訳間違ってるな
原文と意味が違う
- Comparisons to singletons like None should always be done with
'is' or 'is not', never the equality operators.
Also, beware of writing "if x" when you really mean "if x is not None"
-- e.g. when testing whether a variable or argument that defaults to
None was set to some other value. The other value might have a type
(such as a container) that could be false in a boolean context!
_,.__ ぇYにェt:、ヽ /´ `ミ、}} ハ { i.j!゙レ' } !|i i lj| |_,.ィ |l!{、川!l|lfT´ lヘ |!Y^t_lリi^| _,ゝ、) r'r_ノ r' 〔 ⌒`
>>506 0 と '' と empty (コンテナ) と False と None をごっちゃにするのは perl の悪臭
あんまり叩くなよ 英文読める人にとっていちいち日本語に訳すことほど面倒なことはないんだから 訳してくれる人は貴重
直す姿勢があればね
>>512 それってblogの誤った情報と一緒だな
填って無駄に時間を消費する危険がある
>>514 そうだね
漏れはpythonの内部コード表現=UNICODE=UTF-8っていうサイトを見て信じてひどい目にあった
┐(´ー`)┌
中の人などいないって何回言えばわかんだよ!!!!
Rubyをやればすっきり解決
Rubyはたまに無性にやりたくなるけど、書き始めると萎える
片手間に他言語で遊べるだけの脳みそがうらやましい
Ruby一筋になればすっきり解決
>>522 Rubyの使用を強制されることは少ないが
Pythonの使用を強制されることは結構ある
確かに色々なアプリに組み込まれてるからな
Rubyはツクールくらいだろw
SketchUpもRubyだな
みんなPython忘年会行く?
うちの近所のつぼ八でやってくれたら行く
キャバクラでやるなら行く
嫌味なRuby厨が混ざってくるからいやだ。
rubyは共産主義って感じ
確かにそんな感じだが、成功した資本主義的なオープンソースなんて物に お目にかかったことがない
redmineがrubyなんだよな truacより便利そうだから導入したいけど 導入方法がめんどくさい
534 :
デフォルトの名無しさん :2009/12/02(水) 14:05:24
またRuby厨が荒らしてるのか
単四て拡張してから行ったほうがいいですか?
ちょっと手の込んだ3次元のグラフィックスを表示したり、印刷したりするのに お勧めのライブラリってどれでしょうか? pygame ? web上でも表示できるとうれしいのですが
>ちょっと手の込んだ3次元のグラフィック アブストラクトで賞
WebGLは来年まで出ないのか googleの3次元描画してるやつって何で動いてるんだろ
>>533 どこが面倒くさいんだ。
むしろTracより楽だろ。
Ruby入れるのが面倒 RoRを入れるのが特に面倒
>>538 IEが足引っぱって来年も出ない気がする。
> RoRを入れるのが特に面倒 たった数十文字打ち込むのが面倒なの? よくプログラミングできるね
RoR対抗としてTurboGearsなんて物があるらしいが
またruby厨が荒らしてますね
Rubyは至高の言語
同意
Pythonは究極の言語
異議あり
異議を認めます
PythonはRubyの次に最高!
次の次に一票
たしかにRubyの醜さ、使いづらさは最高だな Perl以下だ
祝 555 get !!! ↓
⊂(゚Д゚⊂⌒`つ≡≡≡≡≡≡≡≡≡≡
アパッチで管理してるいろいろな物 svnとかに影響与えないように RoRを入れるのが難しいんだよ
557 :
デフォルトの名無しさん :2009/12/05(土) 22:34:08
スレ違いだ 消えろ
Fuck
動画のサムネイルを作るスクリプトを作っているんだけど、 subprocess.Popenでffmpegを起動させてるのね。 それで、第一引数には配列を渡して、shell=Falseにして、pythonからffmpegが実行されるようにしたんだけど、 たまに python - cmd.exe - ffmpegっていう風に、直接 ffmpeg が実行されないことがあるんだよね。 cmd.exeが間に入ると、サブプロセスを強制終了させたときに、cmd.exeが死んでるのに ffmpegが残っちゃうことがあるんだよね。 cmd.exeを間に入れないようにする方法か、孫プロセスも確実に一緒に終了させる方法ないかな。
os.system() ?
os.systemだと、標準出力とかが取れないので、ちょっとそれも困るんだよね。
標準出力取りたいならos.popen ()は?
popen2.popen3
VPython使いたいんだけど↓みたくなって動かない。誰か直し方わかる?deian sid amd64です。 Python 2.5.4 (r254:67916, Nov 19 2009, 22:14:20) [GCC 4.3.4] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from visual import * >>> redbox=box(pos=vector(4,2,3), size=(8.,4.,6.),color=color.red) (<unknown>:3864): GdkGLExt-WARNING **: Cannot open \xc0j\xf6\u0001 (<unknown>:3864): GdkGLExt-WARNING **: Cannot open \xe0\xca\xf6\u0001 glibmm-ERROR **: unhandled exception (type std::exception) in signal handler: what: Unable to get extension function: glCreateProgramObjectARB even though the extension is advertised. aborting... Process Python aborted
immutableなリテラルと同一性の関係ってどうなってる? >>> a=1 # int is immutable >>> b=1 >>> a is b ------> True >>> a=() # tuple is immutable >>> b=() >>> a is b ------> True >>> a=[] # list is mutable >>> b=[] >>> a is b ------> False >>> a=(1,) # tuple and int are immutable >>> b=(1,) >>> a is b ------> False なんで最後だけFalseになるのか分からない。
is演算子は、immutableかどうかは関係なくて、参照で比較してるだけだよ。 1) int型の値が同一になるのは、-255〜256までの値のオブジェクトが内部的に使い回される実装になってるだけ。 2) 空のタプルも使い回される 3) 別のオブジェクトなので同一ではない 4) 別のオブジェクトなので同一ではない ------ >>> a = 256 >>> b = 256 >>> a is b True >>> a = 257 >>> b = 257 >>> a is b False 短い文字列も使い回される >>> a = "abc" * 6 >>> b = "abc" * 6 >>> a is b True >>> b = "abc" * 7 >>> a = "abc" * 7 >>> a is b False
>>566 基本的に実装依存。同一、あるひは非同一だと仮定してはいけない。
CPythonでもたとえば1は同一だけど1000は同一にならないとかあるし、バージョンによって
異なる可能性もある。
にゃるへそ
>>567-568 トンクス
同一性が保証されてるのはNone/True/Falseくらいなもんか。
保証してるのかな? 思いつきでよく考えたわけじゃないが、 RPCとか分散python(not parallelpython)みたいなものなら 違う動きをしてもおかしくない気がする。
>563 正直あの辺のネーミングセンスは何とかならんのかのう と思ったら DeprecationWarning: The popen2 module is deprecated. Use the subprocess module. なのね
urllib2とかもそうだがその場しのぎの名前が多くて笑える
バージョン間の互換性のためにやってるからねぇ、 〜2 系のモジュール名は。 とりあえず Python 3 になったら整理されてるから、3が主流になるまでは我慢。
名前なんてただの飾りです
飾りはきれいなほうがいい
>>575 おっぱい好きな人にはそれがわからんとです
ん?てことは名前が飾りだと思ってる人間はおっぱい好きじゃないってことか? それはおかしい
逆だ、おっぱいが好きな人は名前にも拘るんだよ
名は体を表す
>>575 つまりこういうことか
import urllib2
urllib = urllib2
>>581 2と3両対応のコード書きたいときとか必須だな
>>581 import urllib2 as urllib, urllib2
PILではKMeans法で作ったパレットでディザリングって やっぱできないのかねぇ パレットに設定された色はすげーきれいなんだけど
>>581 うろ覚えだが、urllib2使ってても
時々urllibも同時に使う必要が有った気がする。
VPython触ってみたけど、これまじすげーね。
>>588 matplotlibと比べてどうなの?
用途はぜんぜん別だな、VPythonは超簡単に3Dで玉や長方形や線を描いたり動かしたり出来る。
>>587 それはpython2だ
urllibにしかない関数がある。
>>589 そう、matplotlibはグラフ作成だけどVPythonは3DCGを作れる。
一応グラフ作成昨日もちょっとあるけど、普通のグラフならmatplotlibの方が良いと思う。
OpenGLモジュールは面倒くて挫折したけどVPythonはほんと簡単。
グラフだと matplotlib 対抗(?)で Chaco(Enthoughtのやつ)なんてのもあるみたいだよ どうインストールするのかよくわからんかった… orz
VPython って Windows 環境だと C: 以外のドライブにインストールすると正常に動作しない なんとかならんのかね
前スレの120あたりから Vpythonで遊んでる人がいる
3DといえばOpenGLをpytonで使うなら、どれがお勧め? using Pyglet instead of PyOpenGL とか言ってる人もいるけど
blender
pygletのサンプルみたら @window.event というのが良くわからない
名前からエスパーするとデリゲートっぽい
デリゲートゾーンのかゆみ
blenderの中でvpython使うという手もあるか
角電池はまだ無理っす。
pygletって何がいいの?
なまえがかわいい
PyPyのほうがかわいい
pytonもかわいさでは負けてない
ChinChinはないの?
pychinkoならあるけど
pygmonはないの?
pyO2
ダンジョーが可愛い
616 :
デフォルトの名無しさん :2009/12/11(金) 12:34:59
alpha 1 ね。一般人はまだ2.6使おう。
3とはまた別にバージョンアップしてたのか
>>618 これが2系の最終版になる予定。2.8は無い。
2.6 ならともかく 一部のアプリが対応していないから2.5っていう 個人的事情を「一般人」を自称して言うのは問題人だね
Debianとかまだ2.5だよ
pythonを使うのは一般人じゃないよパイソニアだよ
2.7って何が変わったん? でも現実的には色んなモジュールが対応しない限り 2.5が使われ続けるよね。
Pythonは下位互換性が高い言語だから、 2.5 用のモジュールの大半は何もしないでも 2.7 でも 動くよ。deprecated warningは大量に出るだろうけど。 Python 2.7 は Python 3.1 の機能のうち OrderedDictとか Python 2系でも動くものが移植されてる。 ほかにも、パフォーマンス向上とかしてる。
626 :
デフォルトの名無しさん :2009/12/11(金) 19:33:55
python で MIME メールのデコードをしてたら charset=windows-874 っていうのが混ざってて LookupError: unknown encoding: windows-874 で堕ちてしまいました unicode 化するときに python が知らないよってことなんだと思うのですが こういう場合代替手段なんかはあるのでしょうか? 例外拾って無視するしかないですか? (結局オリジナルのソースを見ると 中身は SPAM だということが分かったので 無視でもいいんですが・・・)
windows-874 : タイ語 (Windows) だな
例外拾ってasciiとして処理しちゃえばいいんじゃね?
from encodings.aliases import aliases aliases['windows_874'] = 'cp874' encodings._cache がキャッシュだから必要に応じて消してね
>>827 -
ありがとうございます
UnicodeDecodeError しか拾ってないのが原因でしたので
exception (UnicodeDecodeError, LookupError), e:
hogehoge
で解決しました
>>629 そんな方法もあるんですね
でも今回たまたま 874 だっただけで
今後不明なエンコーディング指定があるかも知れないし
悪意のあるメールだとエンコーディング情報も出鱈目の可能性を考えないといけないので
無意味なエンコーディング情報が渡されたときも正常に動作しないといけないのです
632 :
デフォルトの名無しさん :2009/12/12(土) 01:08:19
ちょっと質問なんですけど、pythonでrubyみたいに 組み込みオブジェクトにメソッド追加したりはできるんでしょうか?
Ruby最高!
オチを先に言うなよwww お前らホントにRubyキライなのな
Rubyが嫌いっていうよりディスる連中がいるから嫌いになったという感じかな まぁRuby自体もパッしないと思うけどなー
そんなこと言いつつ本当はみんなRubyが大好きでたまらないんです
637 :
632 :2009/12/12(土) 01:55:38
え、ここでrubyってタブーなんすか。 例えば文字列オブジェクトに変換処理を追加したいんですよ。 >>> "aiueo".to_kana() あいうえお とかやりたいんですけど、なにか方法はないでしょうか?
まぁRuby厨はRoRでアホなソーシャルネットワークを作って商売してればいいさ
639 :
632 :2009/12/12(土) 02:15:12
ひどいなぁ。 別に僕がruby厨かどうかは良いとして、どうなんでしょう、 組み込みオブジェクトをオーバーライドはできないんですか? class strとかは意味なかったです。
>オブジェクトにメソッド追加 そもそもPythonにメソッドチェーンの文化ないし、無理やりメソッドにしてもそんなにメリットないよ。 PythonならPythonらしく関数使いな。
641 :
632 :2009/12/12(土) 02:27:49
>>641 それだと(新しく定義した文字列クラスを ore_string として)こんな感じになるね。
>>> ore_string("aiueo").to_kana()
でもそれだったら
>>> to_kana("aiueo")
で十分じゃね?
643 :
632 :2009/12/12(土) 03:26:37
>>642 ありがとうございます!
そうなんですよね。結局"aiueo".to_kana()が出来なかったら、
コンストラクタ書く分どうしても見通しが悪いんですよね。
python3.0とかでいじれるようにとかは、、ならないですよね。
関数で行く事にします!
半オブジェクト思考
そこら辺はjoin()論争に通じるところがある気がするな。 我が道を行くって所があるから思想理解してないと違和感感じる事が多いと思う
>>> "aiueo".to_kana() あいうえお 俺Rubyやってるけどこう言うのマジキモイ こういう表現出てくる度に吐き気がする でもPythonのタブブロックはもっとキモイのでしょうがなくRubyやってる
たいしたことするわけじゃないのにクラス/メソッド定義とかだるいわー でも時々クラスも使いたくなる漏れには最高の言語です
$ ruby -e '"aiueo".to_kana()'
-e:1: undefined method `to_kana' for "aiueo":String (NoMethodError)
>>646 は何を言ってるんだ?
>>648 Rubyは既存のクラスにあとからメソッドを追加できるんだよ。
Stringクラスに便宜的なメソッドとしてto_kana()を追加する ↓ "aiueo".to_kana()が可能になる。 FUCK
書き捨てのスクリプトならともかく、普通は見通しが悪くなるだけだよねぇ
653 :
632 :2009/12/12(土) 13:52:54
考え方にもよると思うんですけど,ore_string作るってなった時に、 "aiueo".to_kanaとかできると、そのクラスとかテストのコードが 非常にすっきりします。 確かになんでもかんでもやるとあれですけど、閉じたコンテキストの中で 使用する分には便利な機能だと思います。 あとはweb系でvalidationとかにも、個人的には使いたいです。
だからRubyを(r
656 :
632 :2009/12/12(土) 14:53:48
組み込みの場合は継承使わないと無理だろ
生 ruby は好きだけど rails は嫌いっていうひとは多い
理由は
>>652 とおなじだと思う
Railsは気持ち悪いなあ なんか注目される前にフェードアウトしそうな雰囲気だけど Djangoはどうなんだろうな
今の状態で注目されてないんなら、注目されることはないな
ロリってのはきもい
version:Python 2.5.2 in Ubuntu
Tkinter.Tkを継承したAppというクラスのコンストラクタにおいて、
super(App,self).__init__()とすると、typeじゃなくて
これはclassオブジェクトだとエラーがでる。
なにがまずい?
http://gist.github.com/255551
classic style classはsuper使えますん Tk.__init__(self)にしろ
Tkinter of laugh of laugh
665 :
デフォルトの名無しさん :2009/12/14(月) 10:02:05
Pythonでimportかけてモジュールを読み込むとき、 読み込んだタイミングでそのPATHを再帰的に標準出力やログに書き出す方法ってない? import文に割り込みをかけるような感じだと思うんだけど。
その文脈で「再帰的に」ってどういう意味?
目的を書かないと何がしたいのか分からない
>>666 importするモジュールがまたimportを呼びだすから、必然的に再帰的になる。
>>667 今書いているプログラムが読み込んでいるモジュールのスクリプトファイルの一覧が欲しい。
exe化を行うため。
py2exe使え modulefinder嫁
C:\> python -v
sys.modules()
pylabのグラフをパワーポイントに貼りたいんだけど 画像としてしか貼れないので、貼った後の編集ができない pylabはsvg形式では保存できるらしいけどsvgをパワーポイントに貼る方法がわからない
python関係なくなっちゃった
pylabがオフィスでも扱える形式でグラフ吐いてくれるといいのに
pythonって教育用言語として設計されたのか。 知らなかった。
pythonのおかげでオブジェクト指向の思想や構造が分かった気がするよ。 じゃあさようならpython
Rubyにようこそ!
678 :
デフォルトの名無しさん :2009/12/14(月) 14:27:53
日記は自分のブログで
初めてのプログラミングとしてPythonをはじめようと思うのですが、 2.5.xを入れるべきか2.6.xを入れるべきか迷っています。 もしよろしければアドバイスをお願いいたします
プログラミング入門用としてならどちらでもいいよ
ていうかPC Unixならシステムのパッケージでpythonってのを入れると 入る奴を素直に使えばいいんじゃないかと。
2.4以下は糞 勝手に入る香具師だと2.3とかだったりする
Ubuntuは2.5だけど
最新のUbuntuは2.6だ。
なぜLinuxしかも特定ディストロの話
CentOSには2.4.3
どのOSのユーザが一番おおいのかな
windows vistaかな
自分でコンパイルしたら最新のが入るから ちゃんと入れ直した方がいいよ
バイナリのパッケージでいいよ セキュリティーパッチやアップデートのたびに面倒くさいことになる 環境構築が趣味のやつなら止めないけど
Rubyでいいよ
Rubyは至高の言語
↑こういう馬鹿が来るからrubyだけは要らん lispとpythonとperlだけでよし
perlはいいのかよ
lispとpythonは用途が少し被っちゃうよ…
いや、まずperlっしょ
rubyってperlとSmalltalkの混ぜそこないだよな 好きな人にはそれがいいのかもしれんが
実はまつもとゆきひろが自演してるだけで rubyのユーザはたった1人なんだよ
みなさんありがとうございます。 買った書籍が2.5を対象に書かれているようなので、2.5.x入れることにしました 今回はWindowsなのですが、Unixにも手をだすつもりだったのでとても参考になりました。
>>697 糞 perl に納得がいかなくてブランチしたはずなのに
もろ perl を引き摺ってるお
701 :
デフォルトの名無しさん :2009/12/16(水) 00:25:18
age
ぱっぱいっぱいぱぴいあっっっぱぴあいあぱいあそん
質問です 昔segwayのプロトタイプのプログラムはpythonですべて書いたと聞いたことがあるのですが、 pythonではモーターの制御とかロータリエンコーダの入力やジャイロセンサの入力 の処理までできるものなのでしょうか?
yes we can
>>703 Arduino使ってるとかかもね。
シリアルで通信すればおk
ファイル開くのって、 f=open("foo.txt") か f=file("foo.txt") かどっちがいいの?
>>707 open。以下マニュアルより
> file 型のコンストラクタです。
> ...
> ファイルを開くときは、このコンストラクタを直接呼ばずに open() を呼び出すのが望ましい方法です。
> file は型テストにより適しています (たとえば "isinstance(f, file)" と書くような)。
fileに移行したのも今となってはいい思い出w
マックでctypes経由で使うようなpythonのライブラリは 時々うごかないらしいけど pythonは基本的にwindowsかlinuxが前提になってるってことでいいの? マックはあまり使われない?
>>710 そんなことない。
LinuxやWindowsを前提としたライブラリはたくさんあるけれど、標準ライブラリのほとんどは
クロスプラットフォームに作られている。
Unix系>Win>Mac
Image-SIG MLによると PILがmacで動かないらしい
しょっちゅうwin x64バイナリがないモジュールに出くわしてワロス
Pythonモジュールコンパイルするのって、依存ライブラリが複雑でない限りは簡単だろ。 Visual C++ をインストールしていれば勝手にレジストリから検索してコンパイルしてくれるし、 Windows SDK も環境変数一つ設定しておくだけであとは全自動だし。
py2exeの"bundle_files"ってなんですか? 2にするとwxPythonらしきファイルが消えて GUIの表示もwxっぽくなくなりました
PythonのC、C++組み込みについて書いてある本をアマゾンで探したけど見つからないんですがそもそもそういう本ってありますかね?
ないと思うな Cならヘッダとpython.exeとかのソース見た方が早い。ドキュメントにも大体載ってる C++は知らん
boost python
720 :
デフォルトの名無しさん :2009/12/25(金) 20:10:16
test
722 :
721 :2009/12/25(金) 22:19:37
!omikuji !dama
dist-packagesとsite-packagesの違いってなんですか?
/usr/lib/python Python標準ライブラリ /usr/lib/python/site-packages Python非標準ライブラリ ユーザー・管理者用 /usr/lib/python/dist-packages Python非標準ライブラリ 一部のディス鳥が作成・使用 (ユーザー・管理者の管理下であるsite-packagesへ勝手に入れるわけにもいかないので)
>>725 ありがとうございます。
site-packagesにぶち込めばいいんですね!
iso-2022-jpで送られてくるデータを data.decode( "utf-8" )すると、文字化けるんですが どうにかなりませんか
>>727 どうして
data.decode('iso-2022-jp')
しないんだ?
iso-2022-jpでデコードすればいいんじゃないかい!?
>>> print u"文字化けるんですが".encode("utf-8").decode("utf-8") 文字化けるんですが
>>730 print u'\u6587\u5b57\u5316\u3051\u308b\u3093\u3067\u3059\u304c'.encode('utf-8').decode('utf-8')
>>730 それ、ひょっとしてidle上でやってる?
Pythonに内蔵されているインタラクティブシェルは大丈夫なんだけど、PythonでPythonの
インタラクティブシェルを作るとそうなってしまう。
Python3では発生しない問題だし、Python2系でも回避可能な問題だけど、idleはハマる。
>>728 ありがとうございます。
data.decode( "iso-2022-jp" )したところ、例外が多発しました。
たとえば、"思" などの漢字を変換できません。
それはほんとにiso-2022-jpで送られてきてるのか?
>>733 '\x1b$B;W\x1b(B'.decode('iso-2022-jp')
とかやると UnicodeDecodeError が発生するってこと?
736 :
733 :2010/01/07(木) 01:30:39
ircから送られてきてるデータをutf-8に変換したいんです。
'iso2022_jp' codec can't decode bytes in position 5-6: illegal multibyte sequence こんなメッセージでした。2連投さーせん
>>737 それは、 irc がiso-2022-jpを強制しているわけではないので、
iso-2022-jp以外のエンコーディングのメッセージもircに流れているから
だと思われます。
try:
umsg = msg.decode('iso-2022-jp')
except UnicodeDecodeError:
try:
umsg = msg.decode('utf-8')
except:
umsg = msg.decode('iso-2022-jp', replace)
>>738 >umsg = msg.decode('iso-2022-jp', replace)
NameError: nane 'replace' is not defined
739はアホの子
741 :
738 :2010/01/07(木) 11:10:44
ナネ?
間違いを指摘してアホ呼ばわりされるのがPython。
間違いを指摘して必死に言い訳するのがRuby
745 :
デフォルトの名無しさん :2010/01/07(木) 18:58:42
App Engineの本がアマゾンから届いた。 お勧めPython本が「初めてのPython 第二版」になってた。 そのまま読むのを止めたので、他にどんな古い情報が書いてあるのか知らない。
GAEはJavaの本しかないな
黄緑色かなにかの google app engine本は 一応 python がターゲットなんじゃなかったっけ? 読んでないけど
Google App Engineでpythonが動くそうですが このGoogle App Engineというのはcgiで動かせばHPとして使うこともできるのでしょうか?
一見分かりやすい釣りと見せかけて 実際は本当の初心者なんです って雰囲気の裏の裏をかく高度な釣りだな?
は? そんなこと書き込む暇があったら答えろや、カス
このあと、バカは放置され、放置されたバカが「答えられないんだろう」と涙目でシャウト、 だがそれも放置され哀愁漂うエンディングへと繋がります。
752 :
748 :2010/01/08(金) 15:00:39
>>749 htmlしかやってこなくて、プログラム自体は始めてなもので釣りではありません
マジレスしとくと、いきなりGAEなんて始めずに まずはPer/CGIやPHPから始めたほうがいいよ。
身近にperlとphpが出来る人がいるのでpythonを覚えたいのですが perlやphpよりも難しいでしょうか?
755 :
デフォルトの名無しさん :2010/01/08(金) 16:17:52
>>745 >お勧めPython本が「初めてのPython 第二版」になってた。
書店で手に取って,同じところが気になった.
そして買わずに帰ってきた.
蛙だけに
名前を見ても「誰それ?」っていう人の書いた本をみんなが買うほど経済状態はよくないよね 何エキスパートか知らないけど
またパイソニアが一人増えると良いなあ
このスレ超和むwwwwwww
あ?
webprog板のphp住民と比べるとこのスレの住民が神に見える俺
「あ、これGAEでやりたい」ってネタが出てから 公開するならきちんとやらなきゃ、って思い始めると 関連知識が足りないから資料集めて、 最低この本は読んどかなきゃって本が読み切れなくてまだ手がつかない。 ってことない?
ない。 画面をクリアしようと思ったらclsかclearをos.systemで呼ぶ。 ctypesとFillConsoleOutputCharacterの使い方は後で調べる。
洋書でも和書でもいいので、 詳しい話(言語仕様、バイトコードとか)が載ってるおすすめの本、教えてください 言語の進化が早く陳腐化が激しいそうであまりなさそうですが・・・
それこそ公式ドキュメント + ソースじゃん
このスレ読んで書店に行ってみた。GAEの新刊本があったよ。 値段の割に薄かったので買わなかったけど。ぼったくりか?
>>759 _, ._
( ・ω・) んもー
○={=}〇, ( ´・ω・) もー
|:::::::::\, ', ´ |o={=}o ,',,
、、、、し、、`(.@)wwwwwwwwwしw((@)wwwwwwwwwwwwwwwwwwww
草が増えてね?
dosで「python test.py」と打つとtest.pyが実行されますが これをtest.pyのコードを直接dosに書いて実行することってできませんか?
関連付けする
764みたいなやつは目標設定が高すぎて結局なにも作り出せない脳内学者
そんな、何かに駆り立てられるようにレッテル貼っても^_^;
シャドーボクシングが得意なんだろw
自分とは戦ってないな。 どっちかというと通り魔。
Perlでできる事はPythonでもできますか?
どちらでもあなたのできることしかできません
>>777 言語本体にできることは大差ないと思うよ
でもPerlにある○○ライブラリがPythonにないからといって怒らないでね
>>777 PHPにできなくてPerlで出来ることがあると聞いたので疑問に思ってました
ありがとうございます
ライブラリについては必要なものは自分で移植してみます
pythonのsqlite3でcommit()に失敗することがある(journalファイルができていてINSERTされない)あるのですが、commit()が失敗したかどうかどうすればわかるでしょうか?
例外処理すればいいんでないの
自前でdllをロードしてexecute関数に'commit'を渡して戻り値で確認
>>782 commit()は失敗しても何も例外出していないようです・・・
C++のsqlite3だと戻り値ありますが、pythonのはあるんでしょうか
OperationalErrorとか投げられてない? 再現コードが欲しい
マルチポスト先で解決済みかよ せめて結果報告くらいしてくれればいいのに
>>738 の方法使えばアスキーアートもutfにできる?
>>786 はcommit失敗の原因は何かが問題であって
>>781 はcommit失敗の検出が出来ないって問題でしょ?
内容が全然違うように思うんだけど。
いやあ同じ症状だから参考になるかと思って もしファイルシステムの問題ならどうしようもないなと
ファイルシステムに原因があるのは別に良いとして(w commitエラーを検出できないとなると結構深刻。 Python-2.6.4/Modules/_sqlite/connection.c 391-433 Python-2.6.4/Modules/_sqlite/util.c 48-105 ラッパーを見る限りは、NULLを返す(例外)か、Noneオブジェクトを返すみたいだけど。
だからpython的にはsqliteからエラーが返ってくれば例外投げてるからそれ以上は対処しようがないんじゃないかと
rc = sqlite3_prepare(self->db, "COMMIT", -1, &statement, &tail); rc = pysqlite_step(statement, self); rc = sqlite3_finalize(statement); とりあえずこの行の直後に、エラーならprintf、とか入れてみたら
794 :
デフォルトの名無しさん :2010/01/10(日) 23:29:51
Genshiつかってる人いたら教えてください。 phpで言うnl2br()みたいなのをやりたいんだけど、どうしたらいいでしょうか。 たとえば、 <div>一行目 二行目 三行目</div> とあるそれぞれの\nの箇所に<br />を挿入するようなことをしたいんですが。 テンプレートに突っ込む前に改行を<br />に置換してみたらエスケープされてしまいました。
\でエスケープされるのが嫌なら、raw文字列にしてみたら?
796 :
794 :2010/01/11(月) 00:41:00
あ、なるほど。 やってみます。ありがとう!
797 :
794 :2010/01/11(月) 00:56:45
って、raw文字列に変換する関数なんてあったっけ? preタグでお茶を濁すことにします・・・。
使ったこと無いけどApiDocs見てみた <div> の中の文字列を\nで配列に分けて tag() の引数に入れて 配列の要素の間(改行になっていた場所)に tag.br() とか Element('br') を入れてみるとか?
strip_markup=Trueあたりも試してみるといいかも
うん。いいかもね。
801 :
794 :2010/01/12(火) 01:00:01
なんとはなしに見にきたらうおおありがとう! それやってみます。やる前にSQLAlchemyでコケてて先になるけど。メモして取っとく。
try: f = open(...); finally: f.close(); これでエラーでないんだけど、こういう書き方って一般的?
>>802 f = open() が IOError を投げたら、 f は未初期化変数になる。
それを f.close() しようとしたら、エラー名忘れたけどランタイムエラーになるはず。
Python 2.4 でも動くようにするなら、
f = open(...)
try:
fを使った処理
finally:
f.close()
Python 2.4 を切り捨てるなら、
from __future__ import with_statement
with open(...) as f:
fを使った処理
>>801 >SQLAlchemyでコケてて
何かコツが分かったら漏れにも教えてくれ
>>802 なんで;が・・・
try:
f = None
f = open(...)
finally:
if f:
f.close()
これで2.4以下でも以上でも動く
>>806 いま困ってる内容はレベル低いw
manytomanyとかリレーション張るの設定するじゃん。あれの書き方とかでこけてるんだよ。
整理ついたらここかstackoverflowで質問しようと思う。ひとさまの役に立つ内容だったら書きにくるよ。
家でpython職場でphp書いてるとsyntax errorでまくるな
複数行にわたって書く場合の「\」のあとにコメント書こうとしたら怒られた・・・
そらそうよ
そらそうよ、とは思うけど >809 の気持ちも分かるんだよなー
812 :
デフォルトの名無しさん :2010/01/13(水) 00:26:13
hogehoge = fugafugafuga - # comment \ hagehage # 上の続き って書けばいいのかな
それだと\もコメントとみなされる
hoge = (fuga - # comment hage) でOK
ハゲ言うのやめれ!!!くそ… orz
# comment hoge = (fuga - hage) じゃイヤなのか
>>816 それならこう書くべきでは
''' comment '''
hoge = (fuga - hage)
たしかにそうだ。
>>812 そもそも1行に収まらないような計算式は2行に分ける。
Pythonはそういう言語だ。 まあ、2項演算子から書き始めたら一応前の行に続けることはできるけどな。 やっと書けた……
ReportLabを使ってPDFを生成しようとしてるんだけど、 文章を縦書きにPDF化した人いる? 2点ほど不明な点があって困ってます。 ・縦書きにすると横方向に左寄せになっている ・システムのフォントで縦書きに出力する方法が分からない
Pylonsって人気ないのかのう スレ立っては落ちると昔どっかで見た記憶があるけど
web板のTurboGearsとかPylonsとかのスレは何度も堕ちてる
Pylonsって向こうでもあんまり人気ないんじゃない? Djangoと比べてだけど。
wep.py は?
wsgiをラップして自分用のFramework創ったらdjangoもweb.pyもいらなくなった
テスト
→↓ ↑←
822す。
phpから移ってきた俺みたいな底辺プログラマにはweb.pyありがたかった。
web.pyでひととおり作って、だいたいの仕組みを把握したところでほかのPylons触ってる。
>>824 そなのか。PylonsとTGとがそのうち統合するとかいう話があったので、主流になるに違いないと勘違いして取り組んだ俺が間抜けだっただけなのかもしれない。
TurboGearsはとっくにPylonsベースになってるよ。
えwPylonsがTGを取り込むもんだと思ってた!うーんCatWalkあるのいいよなあ ここ数日構築ばっかりやってる気がする。選定は大事ですね
お前らIDE何使ってる?win上で。
meadow
835 :
デフォルトの名無しさん :2010/01/16(土) 02:03:44
pyscripter
エディタで充分 xyzzy
この世にマトモな統合開発環境(笑)なんてあるのか?www Visual Studioですら統合なんてお笑いなのに。
eric4
この世に無いものをマトモとするのは あまりマトモじゃないかもな。
gvimにautocomplpopとctagsとtlistだな
Eclipse + PyDevだろ常考
は?
NetBeans IDE 6.8
xyzzy
EmEditor
サクラエディタ
Pylons分かる人いたら教えてください。 (Pylonsスレないし) DBに対してINSERTして、その一部を取り出すという一連の動作をやりたいんだが、こういうのってどこに記述するのが適当なんでしょう。 ワンタイムコード発行して返すというのをやりたいのね。 まさかcontrollerで毎度毎度似たようなこと書くわけにもいかないし、helperに書けばいいのかな。
>>821 > ・縦書きにすると横方向に左寄せになっている
横書きしか試したことないけど、
フォントを"HeiseiMin-W3"とか"HeiseiKakuGo-W5"とかにして
LinuxBoxとかで生成したPDFをWindowsで表示させると文字が左に寄る。
このこと?
なら、Windowsが上記フォントをMS Pゴシックへ関連付けしているのが
原因らしい。文字の開始位置は固定幅フォントを想定しているのに
実際の描画では可変幅フォントを使うので「う」とか記号とかが
やけに左にくる。
で、HeiseiMin-W3とかじゃなくてMS 明朝とかを登録・指定して
PDFを作ったら表示の問題は出ない。あたりまえ。
PDF生成するサーバにもMS 明朝とかを導入せねばならないのが少々
いやーんだけど。
PDFを見る側のWindowsのレジストリいじってフォント関連付けを
直してもいいのだろうが。
> ・システムのフォントで縦書きに出力する方法が分からない
ぐぐると普通に縦書きしてるページあるけど?
ぇ ただ縦書きフォント使うだけなら フォント名の前に「@」付ければ
VisualStudio並にインテリセンスが働く、Python用IDEはどれだよ インテリセンスの働かないテキストエディターとか、使ってられっかよ
IDEなんて言葉を使っている時点でお前には一生満足できるものは見つからない
前にもどっかでVisualStudioがどうのって暴れてる子いなかったっけ
俺じゃないことは確かだな。 俺以外にも同じように思っている連中が大勢いるってことだろ。
vimの補完機能を改造したら、結構良いものができそうだが。
>848-849 どうもありがと。 チャットで嫌なことがあったから親切に答えてくれる人がいると心が和みます。 >MS Pゴシックへ関連付け たぶんそれが原因の可能性が高いですね。haru free pdf libraryではずれないんだけど、 フォントの位置設定をかなり細かく指定しているみたいだし。 >で、HeiseiMin-W3とかじゃなくてMS 明朝とかを登録・指定して >PDFを作ったら表示の問題は出ない。あたりまえ。 >フォント名の前に「@」付ければ 試してみたけど、だめだった。 というかReportLabはシステムフォントをフォント名で指定する機能が無いみたいだから無理。 最初にも書いたけどフォントファイルのPATHで指定するしか無い。
Windowsならフォント名->フォントファイルのパスに変換できるAPIがありそう
WindowsのPython25なんですが、コマンドプロンプト上で XXX.py option と打ったときに使われるインタプリタはどこで指定できるんでしょうか?
>>857 Windowsは拡張子.pyにインタプリタが関連付けられてる
関連付けの状況はassocで調べられる
C:\>assoc .py
.py=Python.File
関連付けを変更するにはftype
C:\>ftype Python.File
Python.File="C:\Python26\python.exe" "%1" %*
>>858 アドバイスありがとうございます。
assoc.py
拡張子.pyのファイルの関連付けが見つかりかません
なのでやはりこれ関係の問題のようです。GUI上ではpython.exeに結びついているはずなのに・・・
もう少し調べてみます。
>>859 もちつけ
assoc .py
assoc.py
こんなコマンドがあったとは・・・!
assoc.py assoc .py でもどっちでも同じ結果でした・・・ Python26入れてからかWindows7にしてからおかしくなったような ちょっとPython25再インストールしてみます 別のXPのパソコンでやったらちゃんと関連付けられていたので
おーーー 再インストールしたら関連付け直りましたー 普段GUIで設定してましたが、こんなコマンドもあったんですね ありがとうございました。
他にHKEY_CURRENT_USER\Software\ClassesはHKEY_CLASSES_ROOTにオーバーレイされてる GUIもassocもHKEY_CLASSES_ROOTを直接いじろうとするから手動で設定するしかないけど この辺はカオス過ぎる
3.2導入は確定なの?
これでやっとマルチスレッディングでメニーコア使い倒せるんか? multiprocessingだとnumpyのデータ共有するとか面倒なんだけど、メモリ共有並列処理も簡単になるんか。
869 :
868 :2010/01/24(日) 10:43:35
あ、ムリでもないのか。 CPU処理のうちでも、numpyみたいにGILを開放する系の処理では マルチスレッドで並行処理できるから、 new GIL を使うとパフォーマンス上がる。 GILを開放しない系の処理では、new GILを使ってもシングルスレッドには 原理的に勝てない。
マルチスレッドでマルチコア使えるようになるんなら もしかして結構大事件?
>>870 いや、マルチスレッドの効率が向上するだけで、基本は今までと変わらない。
Pythonのコードを実行したりPythonのオブジェクトを操作できるスレッドは
一個のままだし、逆にシステムコールを呼び出したりC言語で書かれた
重い処理を実行する場合は今までも並列化できていた。
『programming python』読み始めた。 おもしろいんだけど、終わるのに半年くらいかかりそうだ。
では半年後にまたお越しください
なんであれだけわかりやすい資料でNew GILについて理解してないやつが沢山いるんだ?
>>870 スピード命なら、PyCUDAを使うんだ。
CUDAのドライバーAPIを使って、nvccでコンパイルしてGPUに放り込むのがPyCUDA。
でかい行列の積を取るなんてのはアホ速いぞ
そしてハード障害からくる計算の不一致に悩む一週間
最近はATI使ってる人のほうが多そうだけど大丈夫か
泣きながらTeslaに買い替えですね。わかります。 でもPythonでガス星雲生成のシミュレーションとか出来たら超ぱねぇっすよ
882 :
デフォルトの名無しさん :2010/01/26(火) 20:26:28
触発されたので wxPython in Action の日本語訳サイトつくってみる
wxPython in ActionがGPLにでもなったのか?
Dive into Python 3がもう訳されてるなら、 後は公式ドキュメントの日本語版が揃えばひとまず充分だな。 それで、まだ翻訳始まってないの?
質問です python入門者がこれからバリバリやっていこうと思うなら どのバージョンのPythonから手をつければいいでしょうか?
使い方によって違うんじゃね
888 :
886 :2010/01/27(水) 01:09:54
全く何のしがらみもないのですが・・・
考えるの面倒だったらRubyでいいよ!
ひょっとして、pysqlite2はパスワード付きSQLite3 DBをサポートしてない?
2
>>886 python 2をおすすめする。python 3はライブラリが対応してないし、日本語のドキュメントもほとんどない。
それに、python 2がある程度分かるようになったら、python 3に移るのもそう難しくないし。
C++とCのどっちから勉強するのがいい? と聞かれてCからと答えるのと似てるかな
似てなくね?
3から始めると最初すごく戸惑うよ。 3から始めた俺が言うんだから間違いない。
お前はなにを(ry
おれは、(ryとか嫌いだぜ。 言いたいことがあるならちゃんと(ry
3は2の上位互換ですか?
互換性はない
互換性ないです。 いくつか細かい点が改正された。
日本語っつーかunicodeまわりで苦労しないのは3のはずなんだが それ以外は2をお勧めする (とりあえず今の時点での話 / 来年の今頃同じ答えが返ってくるとは限らない)
903 :
デフォルトの名無しさん :2010/01/27(水) 19:34:25
2で動くコードが3では動かなかったりその逆もしかりなわけで、 学習という観点では似ている別の言語だと思うべき。 で、フレームワークやライブラリの都合で2を使うハメになるのが現状。 そしてそこに書かれているコードを理解するために結局2に精通する必要がある。 Pythonのライブラリとかは、ソース見て理解しろ、が基本スタンスだからな。
Python飽きた
> Pythonのライブラリとかは、ソース見て理解しろ、が基本スタンスだからな。 マジかこれ? もうPython勉強するのやめる MSDNが充実しているマイクロソフト系の言語いくわ・・・
>>906 F#メチャクチャ早いしおもろいぞ
OCamlでもいいけど
MSDNのライブラリは読みにくいと思うのは俺だけか なんとなくだが
ダメ人間は逃げたまま帰ってこなくていいよ。
>>908 天然か?
機械翻訳なんだから当たり前だろう
>>906 MSDNは仕様の記述に間違いが多いので(ry
>>906 でも「ソース読んだら解説サイトにのってない機能発見した!」
みたいな楽しみもあるんだけどな。
シェルでdirやhelpすればいい
>>912 そういう機能はある日突然なくなったりする心配はない?
地球が明日なくなる可能性も厳密に言うとゼロじゃないよ。
そうだ、俺に彼女ができる可能性もゼロじゃないぞ。
918 :
デフォルトの名無しさん :2010/01/28(木) 19:35:49
努力しないとゼロは1にならないぜ?
0はゼロ、1はイチ、ゼロはイチにならない
※ただしイケメンに限る
構文解析やりたいんだけど、PLYがいいかね?
922 :
デフォルトの名無しさん :2010/01/29(金) 12:35:21
pythonってピヨンって読むの?
ぴちょーん
ぺ・チョンでしょ?
925 :
デフォルトの名無しさん :2010/01/29(金) 17:09:51
おい、再帰バリバリのコードかいてたら再帰が深すぎますとか言われたぞ 末尾再帰最適化してないのかよ!!マジぶちぎれ
Scheme使えよ
schemeはライブラリが少ないだろ なんで世の中のすべての言語はどこかしら欠陥があるんだ
末尾呼出最適化な
末尾再帰最適化されれば7行のコードが2行に収まるのに。 ちっくしょう
Stackless Pythonの話もほとんど聞かなくなったしな
>>925 確かデフォルトが1000段までだけど
どっかの設定ファイルで変えられたはず
stackless python使えよ
Stackless Python 使っても sys.setrecursionlimit() しないと同じエラーになる。
sys.setrecursionlimit(10000) とかしたときに SEGV するかしないかの違い。
そういや、末尾再帰最適化するデコレータがどっかにあったな。
>>929 7行 vs 2行、できたら見せて。
webのテキストエリアなどから入力されたpythonコードを安全に実行する フレームワークはありませんか。公式ドキュメントを見てもそれっぽい モジュールがdeprecatedになっていて使うのが不安です。
代行れす
>>931 import sys
sys.setrecursionlimit(depth)
ごめん すぐ上にあったわ
次スレ勃て誰か代行してくれんかのぅ
>>939 ライブラリのインストールに手間取りたくない
pythonはとにかくライブラリの導入がめちゃくちゃ楽
禿堂
htmlを簡略表記から生成してくれる lisp のcl-who みたいなものないの?
EXIF解析のuptodateなやつないかね。 EXIF.pyだと新しめのやつが読めないっぽい。
今書いてるから少し待って
pythonスクリプトがCネイティブより速い件について
>>945 pythonモジュールのいくつかはCネイティブだからね
>>945 それはお前のCのコードがへたくそなのでは?
すげえ入れ食いだ
どこのuncyclopediaだよ
だから何?
> Python expert programmer これFirst Year Haskellerじゃね
Pythonコミュニティの有名人 * まつもとゆきひろ - 2000年ごろまで、USENET ニュースグループ comp.lang.python に出没していた。その熱心な投稿姿勢には誰もが引き込まれたという。
Python-ml-jpでも見かけたぞ
まぁ優秀な学者だし、不思議でもない。
Matzは学者ではない。プログラマだ。
964 :
デフォルトの名無しさん :2010/01/31(日) 12:17:12
Ruby厨死ね
Matz嫌いじゃないけど、写真全面ってのはやりすぎ。 そこまで耐えられるビジュアルじゃないだろ・・・
そうだな どうしておまえはそんなに顔を出したいんだ? とだけ訊いてみたい。
過疎ってるだけじゃん
> malloc() MY ANUS
汚い void * だなあ
そういうことにしたいのですね
tkinterってなんて読むの? てぃーきんたー?
てぃーけー いんたー だろう
975 :
質問 :2010/01/31(日) 21:45:46
http://wiki.wxpython.org/Getting%20Started#Sizers のサンプルを実行したら以下のようなエラーが出ました。
Pythonのバージョンはstackless python 2.6.4です。
原因がわからないのですが、どなたかお分かりになる方いらっしゃいませんか?
Traceback (most recent call last):
File "boxsizer.py", line 69, in <module>
frame = MainWindow(None, "Sample editor")
File "boxsizer.py", line 26, in __init__
self.Bind(wx.EVT_MENU, self.OnOpen, wx.ID_OPEN)
File "○○○\Python26\lib\site-packages\wx-2.8-msw-unicode\wx\_core.py", line 3917, in Bind
id = source.GetId()
AttributeError: 'int' object has no attribute 'GetId'
976 :
質問 :2010/01/31(日) 22:39:49
self.Bind(wx.EVT_MENU, self.OnOpen, wx.ID_OPEN) という呼び出しなのに、 def Bind(self, event, handler, source=None, id=wx.ID_ANY, id2=wx.ID_ANY): if source is not None: id = source.GetId() の id = source.GetId() の部分で exceptions.AttributeError: 'int' object has no attribute 'GetId' というエラーメッセージが出るのはよくわかりません。 すみません、Python勉強始めたばかりなので見落としあるかもです・・・
977 :
質問 :2010/01/31(日) 22:52:20
もしかすると、サンプルが想定するPythonバージョンがちょっと古いのかも。
例が間違ってる悪寒 sourceがID_OPENって定数なのはピンとこない self.Bind(wx.EVT_MENU, self.OnOpen, id=wx.ID_OPEN) とすれば動きそう
26 self.Bind(wx.EVT_MENU, self.OnOpen, id=wx.ID_OPEN) 27 self.Bind(wx.EVT_MENU, self.OnExit, id=wx.ID_EXIT) 28 self.Bind(wx.EVT_MENU, self.OnAbout, id=wx.ID_ABOUT) 33 self.buttons.append(wx.Button(self, -1, "Button &"+`i`)) とやると動く。
980 :
質問 :2010/01/31(日) 23:30:01
教えて下さい。ネットにあるバイナリーファイルをダウンロードしたいんですけど 今は f = urllib.urlopen(url) fp = open(filename+'.exe','wb') fp.write('%s' % (f.read())) fp.close() としています。でもファイル容量が大きいと大変なことになってしまいます。 逐次バッファーをファイルに書くやりかたがわかりません。 よろしくおねがいします。
恐ろしいことをしてるな
exeかいな。 f.read()の引数でサイズ指定して fp.write()してfp.flush()ってループ回せば 良いんでない
拡張子の箇所を見て震撼した
fp.writeのところの、 '%s' % は要らない。 while True: buf = f.read(1024*1024) if not buf: break fp.write(buf)
ありがとうございます。 帰宅したら試してみます。
つーかurlretrieveではいかんのか
shutil.copyfileobj
989じゃないがurlretrieveのシグネチャを良く見るんだ
平和な世の中だ。というか、 exeファイルをダウンロードするなら、チェックサムとか一応確認しようね。(したいよね。)
ttp://hikozaemonchan.blogspot.com/2008/11/python-urlliburlretrieve.html import sys, urllib
def _reporthook(blocknum, bs, size):
sys.stdout.write("%4d%%\r"%(blocknum*bs*100/size))
sys.stdout.flush()
if __name__ == "__main__":
uri = sys.argv[1]
urllib.urlretrieve(uri, uri[uri.rfind('/')+1:], _reporthook)
print
ttp://www.python.jp/doc/2.5/lib/module-urllib.html urlretrieve(url[, filename[, reporthook[, data]]])
URL で表されるネットワーク上のオブジェクトを、必要に応じてローカルなファイルにコピーします。URL がローカルなファイルを
指定していたり、オブジェクトのコピーが正しくキャッシュされていれば、そのオブジェクトはコピーされません。タプル (filename,
headers) を返し、filename はローカルで見つかったオブジェクトに対するファイル名で、headers は urlopen() が返した (おそらく
キャッシュされているリモートの) オブジェクトに info() を適用して得られるものになります。 urlopen() と同じ例外を送出します。
2 つめの引数がある場合、オブジェクトのコピー先となるファイルの位置を指定します (もしなければ、ファイルの場所は一時ファイル
(tmpfile) の置き場になり、名前は適当につけられます)。 3 つめの引数がある場合、ネットワークとの接続が確立された際に一度呼び出
され、以降データのブロックが読み出されるたびに呼び出されるフック関数 (hook function) を指定します。フック関数には 3 つの引数が
渡されます; これまで転送されたブロック数のカウント、バイト単位で表されたブロックサイズ、ファイルの総サイズです。3 つ目の
ファイルの総サイズは、ファイル取得の際の応答時にファイルサイズを返さない古い FTP サーバでは -1 になります。
url が http: スキーム識別子を使っていた場合、オプション引数 data を与えることで POST リクエストを行うよう指定することが
できます (通常リクエストの形式は GET です)。 data 引数は標準の application/x-www-form-urlencoded 形式でなくてはなりません;
以下の urlencode() 関数を参照してください。
バージョン 2.5 で 変更 された仕様: 'urlretrieve()' は、予想 (これは Content-Length ヘッダにより通知されるサイズです) よりも
取得できるデータ量が少ないことを検知した場合、 ContentTooShortError を発生します。これは、例えば、ダウンロードが中断された
場合などに発生します。
Content-Length は下限として扱われます: より多いデータがある場合、 urlretrieve はそのデータを読みますが、より少ないデータ
しか取得できない場合、これは exception を発生します。
このような場合にもダウンロードされたデータを取得することは可能で、これは exception インスタンスの content 属性に保存されています。
Content-Length ヘッダが無い場合、urlretrieve はダウンロードされたデータのサイズをチェックできず、単にそれを返します。
この場合は、ダウンロードは成功したと見なす必要があります。
>>992 ありがとうございました
埋め。1000ならオレはPythonの達人
梅。1000なら、Pythonで人と会話できる
999 :
デフォルトの名無しさん :2010/02/03(水) 12:57:10
↓こいつ童貞
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。