1 :
ミスターパイソン :
2005/11/24(木) 13:13:49
2 :
ミスターパイソン :2005/11/24(木) 13:14:15
★Pythonって死滅しちゃうの?Part8★ とはどう分けるん?
6 :
デフォルトの名無しさん :2005/11/24(木) 23:16:56
人として。
7 :
デフォルトの名無しさん :2005/11/25(金) 08:53:32
WinXP+CygwinでPythonをインストールしたら通常のコマンドラインからPythonが動かないんだけどそういうもの? Cygwinにログインしたらちゃんと動くけどログインしてないとコマンドプロンプトのウィンドウが一瞬点滅して即終了してしまう。 他のスクリプト言語(Ruby、PHP、Perl)はログインしてなくても動くんだけど。 原因わかる人プリーズ。
オリも初心者でよくわかんないけど、普通にwindows版つかったほうが いいんじゃないのかい?
>>8 win版もあったんだ・・・OTZ
なんかwin版インストールしてみたらリードミーにcygwinでインストールするときの注意点書いてあるし。
(cygwin自動でやってよ・・・)
でも面倒だからwin版使うことにする。
どうもありがd!助かった
cygwinとは何かを誤解してる気ガス
>>10 マジで?できれば詳しく。
と言いたいところがスレ違いなのでやっぱやめとく。
Cygwin慣れていないのにCygwinでPythonってのは無謀っぽいから まずCygwinかPythonかどっちか決めて遊んだ方がいいと思われ。 一応今試してみたけど pyてょn2.4のほうはcmdで動くぞ。
pyてょん ぱいてょんorz
14 :
デフォルトの名無しさん :2005/11/25(金) 16:52:02
>>他のスクリプト言語(Ruby、PHP、Perl)はログインしてなくても動くんだけど。 逆にこっちの方を詳しく聞きたい。なんか設定したのか
15 :
7 :2005/11/25(金) 17:10:28
>>12 いやwin版で十分動くんだけど(^^;
一応聞くけどconfigureで何指定した?
>>14 cygwinのsetup.exeのデフォで全部動いたよ
ある程度インストールし直しもしたけど
まあ気が向いたらcygwin側のpythonインストールもし直してまた報告しに来ます
とりあえずpythonいじり中なんで
CygwinはWin上で*nix環境を動かす為のツールだから 単にPythonを触ってみたいだけならCygwin環境はお勧め出来ない。
FreeBSD6.0R で ports 使ってインストールした python 2.4.2 で質問です。 'pydoc -g' を使って検索して、ドキュメントを見るのに使うブラウザは 自分で指定できるんでしょうか? mozilla と firefox と opera を入れてるのですが、 何も指定しないと mozilla が起動します。 非力なPCなので、動作の軽い opera を使いたいのです。
>> 0から教えてスレの258 プログラミング初心者、ってどの程度なのかな? 他の言語の経験はあるかい? JavascriptとかPerlとか、 もし中学生より上なら、学校の授業でLOGOとかBASICとか触ったことない?
>>20 失礼な奴だな。
もしかしたら、COBOLのスーパーハカーかもしれないぞ。
>>20 誘導ありがとうございます
全くの初心者です
Javaの書籍の上巻(Ifとかforとか配列)をさらっと読んだ程度です
もう学生ではないです 授業ではやったかな?程度であまり覚えてません
>>23 Javaも中途半端で生かせる知識が無いに等しいので;;
「インスタント〜」から勉強していこうと思います
分かりやすそうです
すごい親切にありがとうございました
27 :
25 :2005/11/29(火) 07:33:17
28 :
18 :2005/11/29(火) 09:04:14
>>19 御指摘の通りに環境変数を指定することで、
希望のブラウザを立ち上げることが出来ました。
ありがとうございました。
# デフォルトの mozilla はどこで設定されてたのだろう?
30 :
25 :2005/11/29(火) 16:24:01
質問というほどじゃないのですが、 スクリプトで、range(4) と [0,1,2,3] だったらどっちを書きますか? 3以下だったら [0,1,2]と直接リストを書いた方が効率よさそうだし、 これ以上なら効率よりも range(5) と短く書けるほうが楽に思います。
>>31 俺だったら常に range 使う。
効率気にするなら、profile や timeit なんかで計測して
本当にやる意味があるのか考慮する必要もあると思う。
[0, 1, 2, 3] を使う理由が明らかに「0~3の範囲」を表すためなら range. あるリストから順に値を取り出す処理で,たまたま値が 0, 1, 2, 3 なだけなら [0, 1, 2, 3] (というより (0, 1, 2, 3) ) かな. ロジック以外の理由でコードの書き方を変えるなんて,手間も気配りもデバッグも面倒くさそう.本当に効率上がると思う? 「何千行,何万行とコードを書くようになったら大変だ」と思ってるのかもしれないけど,実際その規模のコードをメンテナンスするようになったら,逆にタイプ数の差なんてどうでもよくなると思うよ.
まぁ、range()はなるたけ使わないように心がけるべきだと思うよ。 もちろん、[0, 1, 2, 3]もだけど。
>>35 では,あなたは range を使わないでどうやって範囲を表すのですか?
>>35 ,36
xrange(4)とか(0,1,2,3)を使えって意味なんだろうか.
>>36 だから、なるたけって。
そもそも、範囲を表すってなんの範囲?リスト?
リストだったら、
for obj in objs[3:10]:
みたいにすればいいわけだし。
当然、純粋に数字列が必要な時は絶対必要だけどね。
for i in range(10): hoge(objs[i]) みたいなコードを Python で書く人がいるなんて考えてすらいなかった
python使い始めたころは、 for i in range(len(objs)): hoge(objs[i]) とか、格好悪いことやってたな。そういえば
「あの女と私のどっちがいいのよ!」という質問に「俺はなるべくどっちともつき合わない」と答える。
それが
>>35 クオリティ。
>40 でも前はその書き方で正しかったんじゃないの? for i in objs: って書けても 今度はindex counter が欲しいと思ったりすることもあるし。
>>40 >>42 正しいも何も、チームメンバーのスキルがばらばらの場合、
リストの要素を1つずつ処理するということを記述する際には、
その書き方がいい場合もあると思うが?
特にC/Java/Basic系の経験者が多い場合。
そりゃ、もっと効率というかPython的書き方もあるだろうけど、
ベタなコーディングしたほうがいい場合もある。
>>42 インデックスカウンタが欲しいなら今は
for i, obj in enumerate(objs):
メンバ変数だけでいいんだけど、変数の宣言の強制ってできますか? (VBでいうとこのOptionExplicitみたいな感じ) ローカル変数ならともかく、 クラスのメンバ変数があちこちで(クラス内部、外部含めて)作られてしまうと さすがにソースを追いにくいです。 (selfをgrepかけて対応しているけどデバッグがキツイ。綴り、大文字小文字間違いとか) #でも、Python脳だと、この仕様が利点なのかな?
use strict;
>>46 __slots__の事?
class C(object):
__slots__ = ["test"]
def __init__(self):
self.test = 1
>>> c = C()
>>> c.test = 2
>>> print c.test
2
>>> c.typo = 3
Traceback (most recent call last):
File "test.py", line 37, in ?
c.typo = 3
AttributeError: 'C' object has no attribute 'typo'
みなさんIDEつかってますか? Eclipseにはいくつかプラグインがあるようですね
IDLE一筋
Eric使ってマ
IDLEは良くできてるよなぁ。
osx の idle は日本語使えない。
WindowsでPythonスクリプトをIDLEで開くと、スクリプトごとにシェルウィンドウが開いてうざいです
>>58 拡張子を.pywにするとシェルウィンドウを開かなくできる。
で、すでにidle.pywもあるはずだし、それを起動するidle.batも
あるはず。
60 :
59 :2005/11/30(水) 17:00:24
あ、間違った...orz
>>59 は無視してください。
>>57 > osx の idle は日本語使えない。
えー。Tk自体はかなり前からUnicode(UTF-8)対応じゃなかったっけ?
フォントの設定がおかしいだけじゃないの?
Windowsでのことなんですけど、2.4系と2.3系で共存できますか? 普段は2.4系をポツポツ使ってるんですけど、2.3オンリーのよさげなモジュールがあったんで・・・。
2.4に移植する以外にない だよな?みんな
PYTHONPATHをうまくスイッチしてやれば共存できるんじゃないか?
>>50 いい振りをありがとう
Ericの存在を知る機会と、IDLEの良さを見直すきっかけになったよ
unPythonicだから。 >Examples which translate the original Perl closely but which are unPythonic are prefixed with a comment stating "DON'T DO THIS". In some cases, it may be useful to know the techniques in these, though it's a bad solution for the specific problem.
>>68 ありがとうございました
お手数おかけしました
Ericってマスコットが気持ち悪い奴だっけ。何で顔からちんちん生えてんねん。
ericって名前の由来は、モンティ・パイソン の エリック・アイドル からきてるのかな。
>>65 そりゃ、Linuxも同じだな。
そろそろ、PyGTKも標準で含めてくれないかなぁ。
で、IDLEをPyGTKに移植して欲しい。
>>72 Debian Sarge の idle-python23 (idle 1.0.5) で試してみましたが、
日本語入力もprintも問題ないですよ。
>>49 亀でスマソ(ちと、悪名高い携帯PJに飛ばされてしまって。しょっぱなから徹夜。。。orz)
それです、それ。
それがほしかった。
ありがとうございました。
75 :
72 :2005/12/02(金) 21:01:25
>>73 お?Debianはできるのか。
こっちは、FC4+SCIM-Anthyだけどダメだ。SCIM-Anthyにする前も
確かダメだった気が。
うーん、よくわからん。
mod_pythonってメモリへのキャッシュ機能はついてますか?
PythonならApacheよりZopeとかじゃないの?
mod_python侮れないぞ。
>>75 FC4+uim-SKK、Python 2.4.1 IDLE 1.1.1だけども、
ファイルの編集と表示、実行は問題ないように見える。
# ただ、他のエディタでencodingを書いておいて
# 保存したのを開いた場合。他の場合はわからない。
## あと、sys.defaultencoding='utf-8'になってる。
IDLE上のPythonプロンプトはダメくさい。
# もしかしたらそういうものなのかもしれないけれども。
以下、IDLEでの結果。
>>> import sys ; print sys.getdefaultencoding()
utf-8
>>> s = "テスト" ; u = u"テスト"
>>> s
'\xe3\x83\x86\xe3\x82\xb9\xe3\x83\x88'
>>> u
u'\xe3\x83\x86\xe3\x82\xb9\xe3\x83\x88'
>>> t = unicode('テスト','utf-8')
>>> t
u'\u30c6\u30b9\u30c8'
>>> print t
テスト
|∀・)・・・・・
冬眠か。
83 :
79 :2005/12/09(金) 16:06:14
>>80 いや、
print文以外で"テスト"とか表示させるのは期待していないんだけども。
どっちかというと、
s = "テスト";u = u"テスト" ; t = unicode('テスト',sys.getdefaultencoding())
の結果がu == tではないのがIDLEの正しい動作なのかな、と。
>>83 >>79 と同じ環境で、site.pyを書き換えてsys.getdefaultencoding()が
utf-8を返すようにしたら、u == tはTrueになったけど。
ちなみに、s == tでもある。
ムチャクチャだな。
s == t の場合、暗黙で unicode(s) == t になるであってる?
"テスト" == unicode("テスト", sys.getdefaultencoding()) はあり得ないと思われ。
確認だけど、IDLEのシェル(対話モード)のリテラルの話をしているんだよね?
だったら多分
>>83 の言う通り「u != tがIDLEの正しい動作」でFA。
>>84 # site.py内のsys.defaultencodingは'utf-8'にしてある状況で
端末上だと確かにこちらでもそうなりました(s == u == t)。
IDLEの対話モードだとs != u、u != t、s == tになってます。
>>87 はい。IDLEの対話モードの話です。
どうもありがとうございます。
>89 GJ!
91 :
84 :2005/12/10(土) 15:01:00
>>87 えーと、すみません。
IDLEで実行はしたけどシェルモードではなかった...orz
それに、coding: utf-8も指定してた。
IDLEのヘルプとか日本語の情報とかありますか?
前からなかったっけ?
癖のあるエディタに慣れちゃったおかげで他のもの使えねえ・・・
97 :
94 :2005/12/10(土) 17:44:20
>>95 > 前からなかったっけ?
まじすか。sys の後に ドット. を打っただけでぴろっとリストが出てきたことに感激して
たんだけど。現行のIDLEでも何かキーを打てばできたのかな。
pythonwinって人気ないの? その、ぴろっとリストが出てくるのもできるよ
calltipがでないのはアレだけど、pythonwinのデバッガは便利だった気がする。
emacsでPython-modeに慣れてしまって他所に移れん‥‥‥。
102 :
デフォルトの名無しさん :2005/12/11(日) 00:15:55
pythonwin は default.cfg ファイルをエディタで書き変えることで key assign ができます IDLE は key assign ができますでしょか?
できる
emacsに呪われた漏れは、IDLEでもemacsライクなキーバインドを選択しています。
でも、本当はemacsにインテリセンスが欲しい…。
>>101 python-mode使ってる? どんな感じですか?
105 :
104 :2005/12/11(日) 01:53:31
python-mode入れてみた。 ○speedbarでクラスの内部構造とかも表示してくれるのは便利だ。 ○emacs内でPythonShellも動かせて便利だ。 △デバッグとかはpdbとの連携でやるらしい(pdbは入れてない) ○手がなじんでしまったemacsでコードが書けるのがイイ! ×コード補完がない…。インテリセンスがほしい…。 知らないライブラリをあれこれ探りながらやるときには、補完機能があると 安心感がちがうんだよなー。
106 :
デフォルトの名無しさん :2005/12/11(日) 08:12:28
IDLE の key assign のために、どのファイルを弄れば良いのか、教えていただけますでしょうか。 いろいろと調べたのですが判りません。
python-mode 使いこなしガイドみたいなの誰か書いてないのかな?
>>106 Option->Configure IDLE->key
>>106 C:\Python24\Lib\idlelib\config-main.def
に、以下のように書いてあった
# user configuration
# -------------------
# ~/.idlerc/config-main.cfg the user general config file
# ~/.idlerc/config-extensions.cfg the user extension config file
# ~/.idlerc/config-highlight.cfg the user highlighting config file
# ~/.idlerc/config-keys.cfg the user keybinding config file
#
# On Windows2000 and Windows XP the .idlerc directory is at
#Documents and Settings\<username>\.idlerc
#
# On Windows98 it is at c:\.idlerc
110 :
デフォルトの名無しさん :2005/12/11(日) 17:15:55
>108さん, 109さん、御教授ありがとうございます。 Win2K 上の python2.3/idle1.0.2 では python\lib\idlelib\ ディレクトリに config ファイルがありました。 でも、一番使う cursor の left/right, up/down の設定はできないようです。矢印キーを使いたくないならば「自分で python source なりに手をいれるべし」とのことのようです。 ありがとうございました。
教示
112 :
101 :2005/12/11(日) 17:18:01
>104 > python-mode使ってる? どんな感じですか? ただのEmacsに毛が生えたぐらいの使いごこちです。 いろいろ補完してくれるのもいいんだけど、どうせjavaと違って あまり長いキーワードはないので打っても苦になりにくいというのも ある。(M-/とかもあるし) xemacs -nw なのでSpeedbarとかは使ったことないや。
>>110 > でも、一番使う cursor の left/right, up/down の設定はできないようです。
キーバインドを Built-in Key Set の 「IDLE Classic UNIX」 にすると、
「Ctrl-p で ↑」, 「Ctrl-n で ↓」, 「Ctrl-f で →」, 「Ctrl-b で ←」
とかできてますが。
tp://uo.lycaeum.net/archives/008155.html を見て思ったんだけど、UOってあからさまにクリスマスとか書かれること無いよね? あ、どーみてもFormosaです。ありがとうございました。
背 誤爆
117 :
デフォルトの名無しさん :2005/12/12(月) 13:09:12
>114 >「Ctrl-p で ↑」, 「Ctrl-n で ↓」, 「Ctrl-f で →」, 「Ctrl-b で ←」 >とかできてますが 御指摘ありがとうございます。でも IDLE1.0.2 では出てきませんでした。version up が必要なようです。 MayaVi などが使える Enthought のパッケージを使っています。そのため python が 2.3 のままです。 2.4 との混在に挑戦すべきかと迷っています。
emacs厨はlispで動作をいじれないと納得しないことが多いかと思われ。
pymacs...
120 :
デフォルトの名無しさん :2005/12/13(火) 16:42:40
あるオブジェクトのメソッドをループを使って実行することはできますか? dir(Obj) = [A, B,・・・] となるとき Obj.A(), Obj.B(),・・・と実行していきたいのです。 質問を言いかえれば、メソッド名を変数に入れて実行できますか? ともなります。 for Method in dir(Obj): Obj.Method #とか という感じで出来ませんか?
import types for name in dir(Obj): if name[0:2] == "__": # is builtin continue Method = getattr(Obj, name) if type(Method) == types.MethodType: Method() Obj.var = Obj.Method とかしてたらどうしよう
>>121 なるほど、getattrってのがありました。
ありがとうございます。
>>121 builtinの正確な定義はこうだな。
if name[0:2] == "__" and name[-2:] == "__": # is builtin
Objのメソッドかどうか判定するには if Method.im_self == Obj: でok?
>>123 if name.startswith('__') and name.endswith('__'): # is builtin
の方が良くないか。一時オブジェクトが少ないし。
def recurse(n): if n == 0: return for i in range(n): yield i recurse(n - 1) print list(recurse(3)) => [0, 1, 2] ジェネレーターと再帰関数は混ぜられないですか?
>>127 再帰呼び出しで得られたものを yield してないのが問題なのでは。
なにを得たいか分からないんだけど、例えば recurse(n - 1) を
yield recurse(n - 1) とか for i in recurse(n - 1): yield i と
すればよい。
訂正。 誤:yield recurse(n - 1) とか 正:yield list(recurse(n - 1)) とか
>>127 def recurse(n):
if n == 0: return
for i in range(n):
yield i
for x in recurse(n - 1):
yield x
print list(recurse(3))
=> [0, 1, 2, 0, 1, 0]
こうする以外ない(はず)。
これは、ジェネレーターのドキュメントで見たような気がする。
ありがとうございます。 recurse(n - 1)でもrecurse(3)と同じようにジェネレーターが返ってきてたわけですね。 気付いてみれば当たり前なんだけど、うっかりしてました。ムズカスィ。
お勉強wikiがRSSを導入しましたが、 FSwikiの生成するRSSって全然役に立たないな。 なんでdescriptionに更新時間が入ってるんだ。 あんなしょぼい情報を生成するために負荷がかかるくらいなら無い方がマシだ。
>>134 てゆーか外部からアクセスすると怒られるしねー
いや、管理人タンが悪いわけじゃない。わかってるんだ。
追記しとくとWikiのRSSなんてどれもあんなもんだよ。
HikiのRSSはけっこうちゃんとしてると思う
>>136 > 追記しとくとWikiのRSSなんてどれもあんなもんだよ。
ごもっとも。
FSwikiじゃロクなRSS出力できないし、負荷を気にするならあきらめなよ > 管理人タン
# Hiki並みにリッチなRSSを吐けるというなら欲しいけど
139 :
デフォルトの名無しさん :2005/12/15(木) 11:18:03
スレ違いかもしれませんが、 reStructuredText で 取り消し線(HTMLでいうところのdel)を書くにはどうすればいいのでしょう? 適切なスレあったら誘導してくださいm( )m
140 :
デフォルトの名無しさん :2005/12/15(木) 17:20:48
チュートリアルにもある、GNU Readlineの支援を得た「行編集機能」をもつインタプリタをインストールするにはどうすればいいんでしょうか? 環境はFedora3 + Python2.4.2です。
>>140 普通にディストリのrpmでインストールした奴は
最初っからreadline対応じゃないのか?
python起動して何か実行したあとにctrl+P(or up arrow)で
以前に実行されたコマンドが再表示されて編集できるかやってみれ
>>140 行編集機能が欲しいなら、IPythonをインストールするというのもアリかと。
ところでIDLE以外の統合環境でリファクタンリングを備えてるIDEの オススメのやつってあるかね。 IDLEでTDDはなかなかキツイ。
>>144 EclipseのPydevにリファクタリング機能がついてるらしい。
ところで、IDLEにリファクタリング機能があるなんてのが初耳なんだが。
IDLEではどうやって使うの?
>>144 は
> IDLEにリファクタリング機能がある
とは言っていないような・・・。
>>144 eric3 もリファクタリング機能とユニットテストをサポートしてるみたい。
>>146 マジでそう読んじゃって、「おお、IDLEスゲー」とか思いました…。
いや、IDLEでリファクタリング機能がないならないでいいんだ。はやとちりしてごめん。
IDLEにそんなのまで要求しちゃいかんな。
import this
150 :
140 :2005/12/16(金) 04:18:02
>>141 ]
直接ソースをコンパイルしたためはまってしまったようです.
rpmでインストールしなおしたらうまくいきました.
>>150 readline-devel パッケージが入ってないでしょ?
readline-devel をインストールしてコンパイルすれば
支援機能が有効なPythonをコンパイルでける.
もちろん,rpm版でも別に問題無いけど.
>>145 >EclipseのPydevにリファクタリング機能がついてるらしい。
確かにPyDevにリファクタリング機能は付いてるけど、現時点では完璧じゃないお
変数の名前変更やってみたら、中途半端に置換されて困った
VIPPERか?
童貞か?
>>139 通常のシンタックスにはないみたいだけど、HTML 出力だけなら default.css に
span.del { text-decoration: line-through; }
を加えて、カスタムロール?を使えば
.. role:: del
あいうえお :del:`かきくけこ` さしすせそ
こんな感じで使うことができる
因みに .. role:: xxx をドキュメント内に記述しておくと
:xxx:`...` を <span class="xxx">...</span> に変換する
恐縮ですがwindows XPにおいて PySol Solitaireを遊ぶための知識を伝授してください
>>156 何とか気合でやってみた。
とりあえず。soundのエラーがでまくるのでimport pysolsoundserver
をつぶしまくる。
gamedb.pyの422行目の
if not isinstance(gi, GameInfo):
raise GameInfoException, "wrong GameInfo class"
を例外を投げずにreturn。
main.pyの250行目付近の
init audio 2)
をばっさり削除。
カードセットは下から落としてきた奴のdataフォルダの中身をsrcにぶちまければOK
http://ftp.ccc.uba.ar/download/pub/linux/debian/debian/pool/main/p/pysol/ python pysol.py --nosound
でとりあえず、最初のゲームは、できるようになった。
でも、ゲームを変えようとすると落ちるorz。
>157 自己レス。 ちなみにcygwinでやった。 コマンドラインから起動しようとすると失敗する。 一応、ほとんどのゲームが遊べた。 何個かのゲームが落ちるっぽい。 落ちたらcygwinのホームディレクトリの.pysolってディレクトリを消して再起動すればOKっぽい。
coLinux入れたほうが手っ取り早い悪寒
160 :
デフォルトの名無しさん :2005/12/18(日) 22:49:23
py 初心者です。質問。 引数で指定したファイル内の単語をそれぞれ数えるスクリプトを作るつもりで以下のように書いてみました。 perl の hash のつもりで、辞書を使おうと思ったのですが、エラーになってしまいます。 import sys d = {} for arg in sys.argv[1:]: f = open(arg) for word in f.read().split(): d[word] = d[word] + 1 f.close() for word in d.keys().sort(): print word + " : " + d[word] d[word] = d[word] + 1 の行がエラーとなり、メッセージは「KeyError」です。 辞書の使い方がまずいのかなとは、思いますが、どう書くのが正しいのか教えてください。
>>161 ありがとうございます。
あと、sort()の戻り値はリストじゃなのか・・
for word in d.keys().sort():
はだめで、
keys = d.keys()
keys.sort()
for word in keys:
と、テンポラリが必要なんですね。
Python 2.4 以降なら sorted(d.keys()) でリストが返る sorted(d.iterkeys()) にすると上の方より効率がよくなる
かぶったorz
たしか副作用があることを使う人に意識させるように、 sort()は値を返さないんだよな。
sortedみたいなことをやりたい場合には mylist.sort() or mylist と書く人もいるんだよな。mylistが変更されちゃうけど。
ruby の変な記号をつけるメソッドはカッコ悪いが sort() と sorted() もカッコイイとは言えないね
PythonもRubyもカッコ重視でプログラムしないしな。 Lispじゃないんだから。
Lisp カッコイイ!
Lispython
検索すると幾つかヒットするな…
>>157 >>159 回答ありがとうございます
linuxに触ったこともなく、むずかしくてだめでした
175 :
デフォルトの名無しさん :2005/12/22(木) 08:03:12
うは... 現役 hacker 皆 google 集結則かよ
ぜんぜん詳しくないのだけれど, 他にどういった有名人がいるの?
>>177 現役っていうと、日本人ならsatoru氏とか。
(gonzui,namazuを作ったり、最近はBinary2.0とか言いだした人)
ずっとテツだと思ってた
お前は俺か?
>>> number = [1, 2, 3, 4, 5] >>> print number[0:5] [1, 2, 3, 4, 5] >>> print number[:5] [1, 2, 3, 4, 5] >>> print number[:-1] [1, 2, 3, 4] >>> print number[:-2] [1, 2, 3] プログラミング初心者なのでpythonで学ぶプログラミング作法という本から 読み始めたのですが、サンプルプログラムが上のように配列の要素を 取り出せる事を前提に書かれてて、それが理解できなくて物凄い自分で 色々試して苦労しました。それも勉強だと思えば価値あったのかなと思い ますが、初心者向けにはちょっと難しいような・・・
前提を説明していないとしたら初心者向きではないな、その本は。
トミヤテツというのも読み方違うので驚いた
>181 すみません、何が分からない(説明不足)と思われたのかが 分からないんですが... "配列の部分(要素)を取り出す機能がありますね"、 ということの紹介みたいな部分ではないの?
for line in sys.stdin: sys.stdout.write(line) このコードを端末からインタラクティブに実行すると、 EOFを送るまでiteratorが何も返さないようで、1行 入力しても出力が表示されません。 stdinをline-bufferedにするにはどうすればいいのでしょう?
input() か raw_input() を使ってみては?
>>186 ありがとうございます。inputだとstdin以外のオブジェクトに
適用できないんですよね。
調べてみると、fileクラスの入力iteratorをline-bufferedに
できないのはそういう仕様のようなので諦めました。それで、
1行だけ読む関数のiteratorでラップすると上手く行きました。
for line in iter(sys.stdin.readline, ''):
sys.stdout.write(line)
sys.stdout.flush()
ただ心情的にはsys.stdin.setvbuf(IOLBF)とかしたい…
おぉ!! すごいことなのか?
Pythonはクラスの継承をすると、親クラスのコンストラクタを 自動で呼ばないのを今日知りましたが、この設計はどういう 理由によるものなんでしょうか。
HTMLParser で <SCRIPT> タグの中身を抜き出しているのですが、 document.write('</a>') のような JavaScript が開始タグの イベントとして通知されてきて困っています これを止める方法はないでしょうか?
スクリプト内部かどうかを示すフラグを保持して スクリプト内でのイベントだったらデータとみなす、とかかなあ…。
>>190 たぶん、
PythonはC++やJavaみたいにメソッドオーバーライドができず、
コンストラクタはたったひとつしか書けないので、親クラスには
自動で呼べるコンストラクタ=引数なしで呼べるコンストラクタ
を必ず用意しなければならない、という制限はきつすぎるから
だと思う。
オーバーロードのことじゃなくて?
>コンストラクタはたったひとつしか書けない その代わりメソッドに可変長引数、キーワード引数が使えるから漏れはあんまり 不便な思いはしてないですが。。 なにか決定的に不便なシチュエーションってあるんですかね?興味あります。
親クラスのコンストラクタを 自動で呼ばない
呼ばれなかったなら、呼びにいけ
父ちゃーん!
おまえは俺の子クラスじゃない。
え…うそ…うそだ…そんなの嘘だ!
嘘だと言ってよ父ちゃん!
>>196 たぶんこんなシチュエーション
pythonではwhileの条件式に代入文を書けませんよね while data = infile.read(100): print data これはダメで while True: data = infile.read(100) if not data: break print data と書くと思うんですが、どうもしっくり来ません。 これはこういうものと割り切るしかないでしょうか?
助長に感じるのはCに染まりきってるからかも。 個人的には代入文が式を返すのは気持ち悪いです。 Delphiとか等号記号が = の言語をやってると特に。
×代入文が式を返す ○代入文が値を返す
>>202 はCの誤解されやすい点を忠実にふさいだだけだと思う
むしろ、
>>202 のような状況ではfor使う手を考えろってことでは?
>202 iteratorで書くのが今日日のpython流なんだろうけど、read(100)する iterator作るのもウゼェってのもあるかもね。
209 :
202 :2005/12/25(日) 02:22:41
なるほど for+iterator ですか。 for data in iter(lambda: infile.read(100), ""): print data 一応これで意図通り動くようですが、 これが今後のPython流? それともwhile True推奨なのか…
個人的にはwhile True推奨。 シンプルに、バカっぽく。
lambda 廃止とか言ってなかったっけ?
list で [ 2,3, 4,5, 10,11, 15,16 ] みたいな一次元データがあります。 でも実際には [ (2,3), (4,5), (10,11), (15,16) ] みたいな構造のデータで for pair in [ (2,3), (4,5), (10,11), (15,16) ]: print pair[0], pair[1] みたいにしたいです。 この場合って index counter を回すんじゃない 記法があるんでしたっけ?
>>215 for i, j in pairs:
print i, j
>>215 こういうことですか?
for left, right in [ (2,3), (4,5), (10,11), (15,16) ]:
print left, right
>>203 K&Rでは推奨されていないので,使わない人も多いのでは
ほんとに間違いの元ですね.
Cならまだしも,PHPなどでこれをやられると,エンバグしやすいし,デバッグが困難
だから,Pythonが言語使用的にこれができなくなっているのは,
生産性あげると思う
>>215 >>> from itertools import *
>>> a = [ 2,3, 4,5, 10,11, 15,16 ]
>>> for x, y in zip(islice(a, 0, None, 2), islice(a, 1, None, 2)):
... print x, y
...
2 3
4 5
10 11
15 16
>>>
または
>>> for x, y in zip(a[:-1:2], a[1::2]):
... print x, y
...
2 3
4 5
10 11
15 16
>>>
a.apple = apple a.orange = orange a.melon = melon ... っていうパターンがいっぱいあるのですが、 どうすればイテレータなどでまとめることができますか?
dictionary
windowsで使うなら ・cygwin環境 ・PyJUGにあるWindows用 ・ActivePython のどれがよいのでしょう?というかどういう違いがあるのでしょうか?
223 :
215 :2005/12/25(日) 21:42:31
>219 thx! 1つめで、そっか zip か、と思いつつもそれだけじゃだめなのか、 と思いつつ 2つ目の記法は ??? 調べてみまっす。
224 :
` :2005/12/25(日) 21:49:15
from itertools import * a = range(500000) (5.4s) for i,j in zip(a[::2],a[1::2]): print i,j (4.6s) for i, j in zip(islice(a, 0, None, 2), islice(a, 1, None, 2)): print i, j (3.2s) for i, j in izip(islice(a, 0, None, 2), islice(a, 1, None, 2)): print i, j (3.5s) i = 0 ; n = len(a) while i < n: print a[i], a[i+1] ; i += 2 ()内は実行時間
>>222 「0から教えてください」スレからコピペ
一番の違いは python が何でコンパイルされているかでしょう。
cygwin版 ⇒ 当然 gcc
日本語Python、ActivePython ⇒ MSC
なので、新しいモジュールインストール時に MSC のコンパイラが
ないと下の2つは辛いかも。ただし、下の二つには Windows 用の
拡張モジュールが使えるという利点があります。Python から Excel を
立ち上げるとか普通にできておもしろいです。 ActivePython は始めから
この機能が使えます。(当たり前か) 日本語Python は後から追加が必要
だけど MSC は不要です。ただ、PyJUG に置いてあるのは少し古いので
ちゃんと最新版を入れた方がいいでしょう。
ということで。。。
とにかく日本語をトラブルなく使いたい!⇒日本語Python
2.4 を使いたい。MSC は持ってない。⇒cygwin Python
Windows 機能を使いたい。⇒日本語Python、 ActivePython
となると思います。
s = "abc" s is not None => True s = None s is not None => False いったいどこから評価してるんだよ。。。 き、きんもーっ☆
なんか趣味に走ってるよね。 そのくせ、 flag is not not True みたいなのは文法エラーとかぬかすし。
229 :
デフォルトの名無しさん :2005/12/26(月) 01:34:49
初歩的な質問ですが、 gtk2とpangoを使っているpythonアプリを 高速なwindowsネイティブexeにコンパイルすることはできますか?
>228 趣味に走るのは作った奴の特権。 うやらますぃ。
何がきもいのか直ぐには分からず素直に受け止めた俺
最初は評価順が気持ち悪かったが、
>>227 が示してくれているドキュメント読んで納得した俺。
ドキュメントが整備されているって、なんて素晴らしいんだと改めて認識ますた。
pythonでEUC-JPの文字例を16進数で表すときはどうすればいいですか? できればその逆もお願いします。
>>234 "\xa4\xb3\xa4\xa6\xa4\xa4\xa4\xa6\xa4\xb3\xa4\xc8\xa1\xa9" # EUC-JPで "こういうこと?"
236 :
234 :2005/12/27(火) 01:06:34
そういうことです。
string.join(map(lambda c: string.replace(hex(ord(c)), '0x', '\\x'), "あいうえお"), '')
"".join(["\\x%02x" % ord(c) for c in "あいうえお"])
ぎゃくは?
eval()
>>> eval("\xa4\xb3\xa4\xa6\xa4\xa4\xa4\xa6\xa4\xb3\xa4\xc8\xa1\xa9") Traceback (most recent call last): File "<stdin>", line 1, in ? File "<string>", line 1 こういうこと? ^ SyntaxError: invalid syntax
>>> eval('"\xa4\xb3\xa4\xa6\xa4\xa4\xa4\xa6\xa4\xb3\xa4\xc8\xa1\xa9"') '\xa4\xb3\xa4\xa6\xa4\xa4\xa4\xa6\xa4\xb3\xa4\xc8\xa1\xa9' >>> print eval('"\xa4\xb3\xa4\xa6\xa4\xa4\xa4\xa6\xa4\xb3\xa4\xc8\xa1\xa9"') こういうこと? >>>
243 :
234 :2005/12/27(火) 15:02:58
出来ました! 丁寧にありがとうございました。
print "\xa4\xb3\xa4\xa6\xa4\xa4\xa4\xa6\xa4\xb3\xa4\xc8\xa1\xa9" では何故だめだったのか知りたい
input() とか eval でユーザから数値入力を受け付けると、ゼロ詰めで痛い目にあうね。 >>> while 1: ... print input("input number?") ... input number? 100 100 input number? 0100 64
ありがちな誤用だね。
知らんかった…。
input() は設計ミス あんな関数が平気で転がってるのが見てらんない
,j;;;;;j,. ---一、 ` ―--‐、_ l;;;;;; {;;;;;;ゝ T辷iフ i f'辷jァ !i;;;;; ヾ;;;ハ ノ .::!lリ;;r゙ `Z;i 〈.,_..,. ノ;;;;;;;;> ,;ぇハ、 、_,.ー-、_',. ,f゙: Y;;f そんなふうに考えていた時期が ~''戈ヽ `二´ r'´:::. `! 俺にもありました
マイナーな関数だし、べつにいいんでね?>input() それともBASICの呪いを思い出しそうになってイヤになるとかか?
raw_inputがデフォルトならよかったのに んでinput廃止
廃止には、したがってるようなんだけど。
生で入力
( ゚д゚) (゚д゚ ) ( ゚д゚ )ぬるぽ
Pythonで書かれた、コーディングの良いお手本になるようなソフトウェアって 何がありますかね?
いきなりZopeは。。。もう少し短いものはないですか? さくっと読めて、コーディングのコツはしっかり吸収できるような。
標準ライブラリとかでいいんじゃね?
>>258 なるほど。。その手がありましたね
題材も豊富で参考になりそうです
アドバイスありがとうございました
>>255 そりゃネタにもならんよ〜。
Zopeはある意味Pythonの範疇を超えちゃっている世界だし。Zope3でさらに独自の世界に行っちゃってるし。
いっそのことJavaとかで再実装→判子握っているオッサンの評価向上 とか考えてくれてもよさそうなものを。
うは、アンカーミス。
>>256 だった。
(゚д゚)マズー
>260 >いっそのことJavaとかで再実装 つ [言い出しっぺの法則]
またsuckitか。
266 :
デフォルトの名無しさん :2005/12/31(土) 13:26:55
>>225 なにも考えずにpython.orgにある2.4のwin版をインスコしたんだけど、なにか
違いあるの??いまのところ日本語も問題なく使えてるお
違いはある。問題はない。
違いはある。問題はない。
269 :
デフォルトの名無しさん :2005/12/31(土) 14:35:35
IronPython更新されたいみたいね、誰か使ってる人いる? ライブラリは.NET FrameWorkのしか使えないのかな
271 :
デフォルトの名無しさん :2006/01/01(日) 01:31:42
みんなプログラム書くエディタは何使ってるの?マックとウィンドウズで 使えるのってvi,emacsぐらいしかないのかな
あけおめ win:Idle、linux:emacs、mac:持ってない
みみかき
Komodoってどうよ
インデントがおかしい.
278 :
277 :2006/01/01(日) 13:19:23
このプログラム,インデントだけじゃなくて,アルゴリズム自体おかしいね. 素数の数を調べる範囲を NUM=int(sys.argv[1]) で引数から拾ってるくせに, ふるい処理では範囲が8192だし,for foo in xrange(): のループも無意味. もとの書き方にできるだけ合わせて書くと,正解はこうなるはず: def main(): NUM = int(sys.argv[1]) flags = (NUM+1)*[1] count = 0 for i in xrange(2, NUM+1): if flags[i]: k = i + i while k<= NUM: flags[k] = 0 k = k + i count = count + 1 print "Count:" , count main()
279 :
277 :2006/01/01(日) 14:09:24
set() 型を使ってちょっとPython風に書いてみた. import sys def sieve(sieve_size): """ Returns sequence of the primes. The algorythm is based on the Sieve of Eratosthenes. """ non_primes = set() for i in range(2, sieve_size+1): if i not in non_primes: # populate non-primes with multiples of the prime i non_primes = non_primes.union(range(i+i, sieve_size+1, i)) return sorted(set(range(2, sieve_size+1)).difference(non_primes)) if __name__=="__main__": ssize = int(sys.argv[1]) primes = sieve(ssize) print "Number of primes up to %d: %d" %(ssize, len(primes))
御苦労。
>>279 ご苦労さん。動けばいいのでこらなくてもいいですよー
282 :
277 :2006/01/01(日) 14:21:50
dictでも書けた. def sieve(sieve_size): ndict = dict((i, None) for i in range(2, sieve_size+1)) for i in xrange(2, sieve_size+1): if i in ndict: for k in range(i+i, sieve_size+1, i): if k in ndict: ndict.pop(k) return sorted(ndict.keys())
>>225 Excelを使えると便利そうなので、コマンドを教えてください。
スタート -> ファイル名を指定して実行 -> excel.exe と入れて[OK]汁
>>238 import win32com.client
xls = win32com.client.Dispatch("Excel.Application")
xls.Visible = True
ここから後ろはVBAのコードになる罠
VBAというか、COMなので。 MSDNのリファレンスがそのまま使いまわせてかなりウマーです。 COMってすげーなと思った。
Pythonスクリプトを実行形式のファイルへ変換できるようですが、 その場合、スクリプトのソースはどの程度隠避できますか?
.pyc 程度じゃね?
>>287 pt2exe使ってみたけど,string丸見えだった
stringくらい普通のコンパイラでも 丸見えじゃねーのかな
うん、○三重
せいぜい考えられるのは、 1) 商業用途での配布 2) 「HSPの方から来ました」 3) 「VBの方から来ました」
VB〜HSPを経てPythonへたどり着きました シェアウェアなんでソース見られると困ります おしえてください!!!!
Iron Pythonのいいところって何だろう?
>>297 今までのC/C++でPythonを拡張したり、逆にC/C++でPythonの機能を呼び出したりする
といったことを.NET Frameworkで出来るようになること
具体的には、現状だとCのWin32APIの関数を使うような場面で、より使いやすい
.NET Frameworkのライブラリを使うことが選択肢に入ってくる、とか
あとはJITと最適化による速度面の向上に期待ですかね
>>298 ふむふむ…説明ありがとうございました。
今まではC++をUNIXで使ったりしてきて
Pythonはほとんど使ったことがないのですが、
Pythonの知名度も上がったりして!
>>299 リンク先のYahooのページに「UNIX版Pythonを開発する
Salim Fadhleyによると」って書いてあるんだけど,
Guido先生じゃないのかよ.
Salim Fadhleyって誰だ?俺が知らないだけで,
実はPython界隈では有名人?
Guidoは教祖であってディベロッパーではない
とりあえず python は MS 公認言語になったということでよろしいか? (といってもおいらは unix 人だけど)
304 :
デフォルトの名無しさん :2006/01/06(金) 20:17:52
Kid使ってるんですが… Kidでテンプレートを読みこむ ↓ pythonインタプリタを終了せずにテンプレートの方を更新 ↓ Kidでふたたび読みこみ しても,変更が反映されないんですが,なぜ? キャッシュを消しても同じ.Pythonインタプリタを終了して,もう一度読みこむと 反映されてます.load_template(file="XXX", cache=0)でも変らず. ちょろっとソース見てみたけどわからねっす
ironpythonとjythonどっちがいいんだろ。
Javaみたいにならなければいいね・・・
そうだよね。jythonちゃんとしてからやればいいのに。 もうjythonどうでもいいのかな。
ちがうよ。JVMの独自拡張でSunと確執を生んだみたいに MSが突っ走らなければいいねってことだよ。
>>308 それは大丈夫じゃない?
MicrosoftがPythonを独自拡張して突っ走ったとしても
別に誰とも確執は生まないと思う。
111111111111111111111111111111
2
cpythonユーザーは嫌がるんじゃないの
まぁ、C#使うけどな。
Python for .NETのほうがつかえそう
そもそもPythonにCやJavaやC#みたいな厳密な言語仕様があるの?
CやJavaやC#と比較してどうかは知らないが、 DocumentationのところにLanguage Specificationはちゃんとあるよね。 ときどきわかんなくなって参照するが、language lawyerの素質がないのか ますますわからなくなる。
yield ってどう実装されてるんでしょうか?
確実に言えるのはPEPS読んでないってことだな。
318 :
デフォルトの名無しさん :2006/01/08(日) 01:07:53
^←ってなんでしょうか? べき乗のつもりで使ったら変な数が べき乗は**なんですね
321 :
デフォルトの名無しさん :2006/01/08(日) 17:36:07
IronPythonとcPythonの互換性テストとかあんの?
初心者をうまくひきつけられるような環境とかができればいいね。
ActiveStateのVisualPython消えてたのかー。
次期Visual StudioにVisual Pythonが採用されるからとか
なんか盛り上ってきたな。 とりあえず、互換性だけは死守してほしいもんだ。 Linuxで作ったものが、Winで動かなかったりするのは 悲しいし。その逆も然り。
そんなに盛り上がってはいないだろ。 いうなればツール厨状態。プログラミングする人は少ないまま。
言語仕様はオープンかつフリーです。 でも、ライブラリはプロプライエタリでーす。 .NETのときに騙されたからなぁ。
329 :
326 :2006/01/09(月) 13:21:19
>>327 まぁまぁ。Pythonは入門者用言語でもあるわけだし。
入り口が増えることはいいことだヽ(´▽`)ノ
Pythonは入門者用言語だなんて冗談だよね
C言語に比べれば入門だろ
ラムダとか内包とか使ってゴリゴリ書けば C よりひどいワンライナーになるけどな・・・
そんなこと言ってたらC言語なんてインラインアセンブラ書けるし そうでなくても,複雑なポインタ操作するだけで十分難読になる
>>332 Python入門の本やサイトでそれはないだろ
そこまで出来るんだったら入門レベル卒業だよ
>>329-334 Python はプログラミングの初学者にとって学びやすい(=入門しやすい)言語だということだよね?
「入門者用言語」というと語弊があると思われ。
>>333 インラインアセンブラが書けることは C の仕様に規定されてないので例として不適切
ポインタもそんな悲惨になることは滅多に無いと思うけどなあ
>>336 じゃあ,言うまでもない指摘をするけど,
C言語は改行なくてもプログラムになりますから
続きの結論は自分で考えてね
>>337 つ indent
分かって言ってると思うけどさ その可読性の無さは本質的じゃないよね
休日はレベルが低いですね
はいはい頭良いね
一意なファイル名をつけたいとき、どの様な名前を付けますか? 例えば、時間と、urlを元に、hashみたいな一意のファイル名を付けたいです。 あんまり00001.jpgみたいな名前ではなくて、xq0b02fb.jpgみたいなので、重複しない名前を付けたいです。
342 :
329 :2006/01/09(月) 19:23:22
>>335 そういうことだけど、「入門者用言語」じゃ限定しちゃうからまずいかな。
学びやすい言語って事です。
>>341 import tempfile
を使うべきなんじゃない?
ファイルの入力空間を提示しないと回答不能
344 :
341 :2006/01/09(月) 19:55:02
>>343 入力空間って何でしょう?
webから、jpgファイルをひたすら集めるアプリを作っていて、MySQLを使って、urlやhtmlとファイル名を関連付けたいです。
select jpgname where url='hogehgoe.html';
みたいなSQLで、xq0b02fb.jpgというファイル名が取れれば、それをアプリで利用できると考えています。
それで一意なファイル名が欲しいなって思いました。
345 :
304 :2006/01/09(月) 20:53:44
>>342 レスどうもです
import tempfileって、load_templateとか
Template(file="tempfile").serializeとかの単なるラッパーだと
思ってたんですけど違うもんなんでしょうか?
単に一意なだけなら1から順に数字で付ければいいじゃん
時間とurlでmd5はいかんの?最初言ってるけど。
>時間と、urlを元に、hashみたいな一意のファイル名を付けたいです。
>>347 の言う通り自己解決してるみたいだけど、
極まれな重複時の振る舞いを考える必要はあるね。
tempfileは条件満たしてないっしょ。
MD5の衝突確率だって無視できる程度だろうけど、心配ならSHA-256とか使えば?
>>344 MySQLみたいなDBMSを使うんだったら、一意なファイル名とかめんどくさいこと考えずに
1.URLの構造を保ったままどこかのディレクトリにJPGを保存していく
2.そのフルパスをDBに順次格納していく
これでいいんじゃないですかね?
DBのスキーマがちゃんとしてれば、SQLを発行することで複雑な集計もできますし。
手段はさておき、やりたいことを実現するにはこれで十分な気がします。
×フルパス ○1.の「どこかのディレクトリ」からの相対パス
353 :
341 :2006/01/09(月) 23:24:09
レスどうもです。md5でやってみます。
>>351 レスどうも。なんか、ディレクトリが深くなりそうです。
ディレクトリを含めたファイル名って、最長何バイトでしたっけ?
なんかファイル名が長くなりそうだなって思って。
単に一意でいいのなら、 ランダムで名前つけてかぶったらずらすとかやり直すとかすせばいいのでは?
いや、だから一意なだけなら1から順に数字つければええやん・・・
剥げ堂 ごちゃごちゃした文字列出さないとダメだとか 思ってる馬鹿がこんなにいるとはwww
>>>print '一意な名前' 一意な名前
>>355-356 ところがどっこい、>341には、
「00001.jpgみたいな名前ではなくて」と
書かれていよう。
これは心の問題なのです。
>>358 ロボット対策とか、生成と削除を繰り返したりとかかな。
すいません、どなたかPythonによるソケットプログラミングについて解説しているサイト知りませんか?
>>362 うえのソケットプログラミング入門読んで、socketモジュール使って書けばいいだけ。
selectシステムコールも selectモジュールでOKなので、Cで書かれた例をPythonで
書き換えて実験してみるといい。
仕事は自分でやろうな。
>353 ひとつのdirectoryにファイルが溢れる方が、ファイルシステムによっては問題だと思うが。 ところで、エロ画像DBでも作ってんの? :-)
プログラムを書くのに,PythonWinを使ってます. プログラムを修正しながら作っていると, 変数がいつまでも開放されず,結果がおかしくなります. Pythonに付属しているIDLEのように,プログラム実行の度に変数等を全てクリアするような方法あるでしょうか? 現時点では,PythonWinを再起動するしか方法を思いつかないのですが….
reload
del
368 :
デフォルトの名無しさん :2006/01/12(木) 06:36:53
無限ループの中でキー入力があったら それに応じた処理をするにはどうすればいいでしょうか?
>>368 コンソールアプリなのか、何らかのGUIツールキット使うのかを示してくれないとなんとも。
>>369 すいません.コンソールです.
Python は Cygwin で Python 2.4.1 を使っています.
君が知りたいのは kbhit() のことかな?
>>371 それです.
でもCygwin版にはmsvcrtモジュールがなくて使えませんでした.
Win32版じゃないと駄目なんでしょうか?
unixではこういう場合どうするんでしょうか?
cursesとか勉強しないといけないんでしょうか?
cygwinならstdinをselectできるんじゃないだろうか。 例えばUNIXなら下のような感じで。 import select, sys, tty tty.setraw(sys.stdin) while 1: irdy, ordy, erdy = select.select([sys.stdin], [], [], 0) if sys.stdin in irdy: c = sts.stdin.read(1) if c=='q': raise SystemExit print 'you typed %s' %(sys.stdin.read(1))
OSがWindowsである以上、selectは無理だろ
>>375 Cygwinのライブラリがエミュレートしてるはず。
>374,375 そのコードでうまくいきそうですが少し問題があります. まず,while の中で print time.strftime("%H:%M:%S") time.sleep(1) としている場合,raw モードにしていると $ ./test.py 01:28:16 01:28:17 01:28:18 こんな風にずれていきます. これは setraw の代わりに setcbreak を使えば直りましたが, プログラム終了も raw/cbreak モードが解除されません. もうひとつはキーをタイプしたとき1回では反映されず, 1回目の入力後はループが停止してしまい, 2回目の入力で1回だけ you typed がプリントされます. Linux で実行しても同様の現象でした. どちらの場合も Windows の ck 上でテストしています.
#include <curses.h>
int main(int argc, char *argv[])
{
initscr();
noecho(); cbreak(); keypad(stdscr, 1);
printw("Hit any key...\n");
refresh();
printw("You typed 0x%02x\n", getch());
refresh();
echo(); nocbreak();
endwin();
}
import curses
stdscr = curses.initscr()
curses.noecho(); curses.cbreak(); stdscr.keypad(1)
stdscr.addstr("Hit any key...\n")
stdscr.refresh()
stdscr.addstr("You typed 0x%02x\n" % stdscr.getch())
stdscr.refresh()
curses.echo(); curses.nocbreak()
curses.endwin()
参考文献:
http://www.amk.ca/python/howto/curses/
fd = sys.stdin.fileno() old = tty.tcgetattr(fd) ... tty.tcsetattr(fd, tty.TCSANOW, old) じゃダメ?
動けば何でもいいです.
>>379 cursesのサンプルありがとうございます.
まずはselectでなんとかならないかやってみます.
>>380 最初に属性を保存しといて終了時に戻すということですね.
それで q で終了したときはうまくいきましたが,
Ctrl-C するとまずいですね.
例外処理でなんとかするんでしょうか.
また,キー入力が1回では反映されない問題は依然として同じで,
以下のような挙動をします.
$ ~/test.py
05:54:28
05:54:29 <= 'o' を入力すると停止
you typed p <= 'p' を入力すると表示
05:54:32
05:54:33 <= 'o' を入力すると停止
you typed q <= 'q' を入力すると表示
05:54:34
05:54:35 <= 'q' を入力すると終了
import sys, tty def my_getc(): fd = sys.stdin.fileno() old = tty.tcgetattr(fd) try: tty.setcbreak(fd) c = sys.stdin.read(1) finally: tty.tcsetattr(fd, tty.TCSANOW, old) return c while 1: c = my_getc() if c=='q': raise SystemExit print 'you typed %s' % c 無駄が気になるかも
あ、これじゃブロックしちゃうから駄目なのか。 threadやeventやらと併用すればいちおう。
自然数 N が与えられたとき、 1 から N までの数字を N 個並べる組み合わせをすべて 列挙するプログラムは Python で書くとどうなりますか? 例えば N = 3 のとき 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 となるようにです。 よろしくおながいします。
解法を教えてくれたら書いてあげます
>>385 最近は小学校の宿題もPythonなのか? 凄い時代だな。
>>387 小学校で教えるならむしろSmalltalakoきbんぬ。
小学校ならLogoだろLogo
既出だと思うんだが。
>>385 はwshスレにもあったから
何かの調査だろ
しくだいわじぶんでやれ
395 :
デフォルトの名無しさん :2006/01/14(土) 00:24:21
urllib2かhttplibかsocketを使ってmixi.jpとhttpでしゃべればいい
氏いわく、「まずググれ」 "python mixi"でググったらそのものずばりがトップにでるんですが。
mixiのセッション管理はcookie? だったらドキュメントのcookielibのところに例あるよ
>>396-398 さん
できました.Python ほど他人のソースコードが読み易い (作業効率のよい) 言語はありませんね.
すばらしい
読み易くするのに結構時間使ってるけどね。 私は書き易さPerl、読み易さPythonだな。
Perlはぐだぐだになるので書ける気がしない‥‥‥
>>401 それ単純に設計なりコーディングが悪いだけです。
誰が書いても同じ形になるのがPythonのアピールポイントの一つだろ。 他の言語でも全員が必ず使う同一ルールの整形ツールがあれば別だけども。
俺もPerlは書ける気がしないなぁ。(数十行レベルじゃなくて千行以上の話ね) ちゃんと自分のスタイルを確立しちゃえばいいんだろうけど。
やさしいPythonが出れば絶対にPython人口も増えるのに!
Python 比較的新しい言語 好き者がオンラインドキュメント読んで手を出す 使える ハカーが群がっておもちゃにする 開発が四方八方に進んでゆく 常に発展途上 本を書いてもすぐに時代遅れ
Pythonのどこが新しい言語なんだ
Python 依然として比較的利用者の少ない言語
やらしいPythonの方が人気出るんじゃね?
おもしろいPython 略しておっぱい
そういえば結城さんが 「ツンデレPython」 という本を・・・
>>412 長大なワンライナーをはじめとしたダーティーハックがてんこもり
>>413 まじだ……(今ぐぐった
か、かなわねぇw
常に開発中というのもマイナーの一因だよな 安定した仕様が存在しない言語は 学習と業務適用に難があるから広まらない
>>417 逆に聞きたいが、言語仕様が確定してから広まった言語ってなにがある?
俺の知る限りメジャーな言語は時代によって変化していったものしか無いのだが
JavaとかPHPとかは開発中だけどメジャーだな Perl6って今どうなんだろう?
>>421 モンティーパイソンのアニメにありそうだなソレ
>>418 アセンブラ・C言語・PASCAL・BASIC
>>423 その4例すべてメジャーになって以降に言語仕様がころころ変っている。
COBOL
機械語
>>424 C言語の仕様は登場時から変わってないと聞いたが
lispは
>>427 デマだ。K&R初版なんて読んだら卒倒するぞ。
ANSI と K&R とかね。 あと、C は実装が違いすぎるから autoconf とゆーバッドノウハウが。
言語仕様は変わっても大丈夫だけど、ベストプラク ティスがころころ変わる言語は広まらない。
Lisp屋の俺から見ればPythonなんて十分広まっている言語だと思うのだが。
Lispって.emacsを記述してるヤツですか?
クレープ屋の俺から見ればemacs-lispなんて十分広まっている言語だと思うのだが。
PHP4 と PHP5 ではオブジェクト指向の書き方で互換性がないけど
クレープ屋のが圧倒的に多いだろ スケール考えろよ
Crepe >> (超えられない壁?) >> Python
クレープって言語があるんじゃないのか?
そこにオレ言語屋登場
みんな仕事首になったの?
いや,これからなるところだけど?
>>382 ,383,384
結局,curses 使って以下のようにすることにしました.
import curses, curses.ascii, time
def main(stdscr):
curses.noecho()
curses.cbreak()
stdscr.timeout(1000)
stdscr.scrollok(1)
while 1:
stdscr.addstr(time.strftime("%H:%M:%S\n"))
stdscr.refresh()
c = stdscr.getch()
if c == -1:
continue
if curses.ascii.isprint(c):
stdscr.addstr("%c\n" % c)
stdscr.refresh()
if c == ord('q'):
break
return 0
curses.wrapper(main)
隠れGHC(言語の方)学習中の俺がやってきましたよ。
戦後GHQとの折衝で苦労した俺もやってきましたよ。
>>447 ギブミーチョコレート。とか?
ガイジンサンイッカイ5円ダヨーとか。
産後のセックス(NHK教育)を見て半勃起した俺までやってきましたよ
いつもシングルクォーテーション使ってるんだけど シングル・ダブルを使い分ける場合ってどんな時だろ?
print "--'こういう時'---"
452 :
450 :2006/01/15(日) 19:44:07
その書き方はエラーになると思ってた。 どっちも等価な shortstring だったのか。 ありがとん。
めんどくさいんで大抵 """ """ を使ってる
"""〜"""の時に先頭1文字が改行だったら、その改行を無視してくれればいいのにと思うのであった
そういう時は """\ ... ... """ みたいにしている
python に perl -x みたいなオプションないの?
なにそれ
-x[directory] strip off text before #!perl line and perhaps cd to directory
459 :
デフォルトの名無しさん :2006/01/17(火) 02:27:09
pythonには(正確には)代入はない、と聞いたのですが、 再束縛し放題、束縛ごとのスコープ生成も無いように見え、代入そのものにしか見えません。 どこらへんが代入と違うのでしょうか。
ポインタ渡しを代入と言うか否かで答えが変わってくるような…
>>459 はじぱいを立ち読みすれば最初の方にちゃんと書いてあるよ。
イデア界にある値に参照を作るみたなイメージ。
メモリを書き換えないからかな。
>>> a = 1 >>> b = 1 >>> a == b True >>> a is b True >>> a = 10 ** 10 >>> b = 10 ** 10 >>> a == b True >>> a is b False
>>462 C風に言えば、ポインタ変数の割当たったメモリを書き換えまくリングでは。
代入ではなくて、名前付けと言ったほうがいいような気がする。
ユニコード文字列から実体参照の文字列に変換するにはどうすればできますか?
>>463 の
>>> a = 1
>>> b = 1
>>> a == b
True
>>> a is b
True
って代入じゃないの?
つーか、Java厨に言わせれば、
>>> a = 10 ** 10
>>> b = 10 ** 10
>>> a == b
True
>>> a is b
False
だって代入じゃん、て感じ。
言語によらない「代入」の定義ってあんのかね。
←綺麗 変数束縛 = Lispの変数束縛 ⊃ Pythonの変数束縛 = Javaの変数代入 ⊃ Cの変数代入 →汚い
こんな感じか?
Scheme だと 代入: (set! a 10) (set! f (lambda () a)) (set! a 20) (f) => 20 束縛: (let ((a 10)) (let ((f (lambda () a))) (let ((a 20)) (f)))) => 10 となるので、Python の >>> a = 10 >>> def f(): return a >>> a = 20 >>> f() 20 は代入に見える
>>> a=1 >>> b=a >>> a is b True >>> a += 1 >>> b 1 >>> a is b False aの値を変えたら bの値も連動して変えたいときってどうするの?
お話の途中ですが質問です。 Python2.3をアンインストールして、Python2.4をインストールしました。 PythonWinも入れ直して、無事に動くのですが、 Python2.4に付属のIDLEが起動しなくなりました。 具体的には、起動しても何の表示も出ずに、スルーされる感じです。 デバック中に、エラーの部分で変数情報を表示するツール(StackViewer?)を使いたいのですが・・・。
>>466 >>> u"∴"
u'\u2234'
ってのを ∴ のような文字実体参照に変換したいってこと?
うげ、文字時実体参照は ∴ だ。
MutableとImmutableという差が全てなのかと思いきや、 >>> a = [1, 2, 3] >>> b = a >>> a.append(4) >>> b [1, 2, 3, 4] >>> a = "Hello World" >>> b = a >>> a += "." >>> b 'Hello World' 感覚としてはこれでOKなんだが、なんか釈然としないな。
あ、Pythonの文字列はImmutableだった。 恥ずかし。
小さめのオブジェクトはキャッシュに入れといてそこへの参照を返す って確かはじパイに書いてあった >>> a = 'spam' >>> b = 'spam' >>> a == b True >>> a is b True >>> a = 'Vorpal Bunny' >>> b = 'Vorpal Bunny' >>> a == b True >>> a is b False
タコな質問でごめん。 is ってどんな場合に使えばいいの? なんか上の結果見てると is の結果を有効に使えそうなケースが思いつかないんだけど。
>>476 "is"で十分であれば"is"のほうがずっと速い。
>>477 漏れは質問者じゃないけど
そぅだったのか。
確かにオブジェクトの内容の一致を取るよりも
オブジェクトのIDの一致取る方が遥かに速そうだな
そんなかんじです。 あるいは、番号による表記です。
実体参照か値参照かはまったく別物なのに、速い遅いだけで判断するのはいかがなものかと。 なーに、かえって判断力がつく。
>>479 "".join(["%d;" % ord(c) for c in s])
equal と eq の違いだろ
>>470 関連付けを確認してみな。
ひょっととするとひょっとしてスペースが言われ忘れてたりする。
breakについて質問です。 while <test> while<test2> if <test3> break else: <statements1> else: <statements2> else: <statements3> <statements4> がある時、4行目のbreakが実行されたあと実行されるのは何ですか? プログラミングは大学で習う程度(C言語)の知識しかありません。 よろしくお願いします
あれ・・・すいません。 1番目のelseはtest3ifと同じ深さで 2番目のelseはtest2のelseと同じ、 3番目のelseはtest1のelseと同じ深さです breakはifにネストしてあります。 あとwhile、ifに:を付け足してください
試してみたらいいじゃん・・・
<statements3>
>>483 レスありがとうござました。
ただ、私の知識では何をどうしろ、とおっしゃっているのかちょっとわかりません。
よろしければ、もう少し詳しく教えて頂けますか?
>>489 Pythonのコマンドラインからidle.pyを実行したらエラーでる?
import hoge と from hage import hoge とではメモリロードに違いとかあるんでしょうか?
あるよ どう使い分けるかってのは置いといて、簡単に見えるとこだけ言うと 前者はモジュールごと取り込むから参照はhoge.hageになるけど 後者はそのオブジェクトだけを取り込むからhageとなる
>>490 ありがとうございます。
コマンドラインから実行すると、以下のエラーが出ます。
Warning: configHandler.py - IdleConf.GetThemeDict -
problem retrieving theme element 'builtin-background'
from theme 'my custom'.
returning default value: '#ffffff'
Warning: configHandler.py - IdleConf.GetThemeDict -
problem retrieving theme element 'builtin-foreground'
from theme 'my custom'.
returning default value: '#000000'
これが10回ぐらい繰り返された後、一応Idleの起動はしますが、
何かする度に、コマンドプロンプトにエラーが出ます。
何が原因なんでしょうか?
ActivePython 2.4.2 で https 扱うのどうすればいいのでしょうか? Cygwin 版だとあった、urllib2 の HTTPSHandler がないんですが... socket の ssl もないし ActivePython ってそーゆーもんなんでしょうか?
496 :
494 :2006/01/19(木) 01:06:53
>>495 ありがとうございます。
M2Crypto 試そうとしたんですが、 Python 2.4&Windows は無料
じゃないんですね... というわけで別案を探します。 どうもでした。
>496 SVNリポジトリからもらってきたM2Cryptoをコンパイルすればいいんじゃないの?
498 :
デフォルトの名無しさん :2006/01/19(木) 02:59:30
そういうのは自分で作った方がいいような
>>493 何が原因って…。書いてあるじゃん。
自分で作った'my custom'というHilighting Themeの
定義でエラーが出ているんじゃないの?
>>500 どうもありがとうございます。
残念ながら、'my custom'に関する定義ファイルに覚えがありません。
そもそも、Idleを立ち上げる際に読み込むべきファイルを編集するだけの技量もないですし…。
何か、他のインストールされたソフトが、どこかで影響しているんですかね。
>>501 IDLEの設定はWindowsなら全部%HOME%\.idlercディレクトリにある。
そこのconfig-main.cfgとconfig-hilight.cfgを
見たら何が起こっているかは分かるはず。
すいません。助けてください。 Googleは検索文字列をutf-8に変換するとのことで、例えば『森博嗣』は『%E6%A3%AE%E5%8D%9A%E5%97%A3』となります。 なにのPythonだと、 >>> a = "森博嗣" >>> a '森博嗣' >>> a.encode("utf-8") '譽ョ蜊壼離' となってします。Googleのような文字列に変換するにはどうしたらよいでしょうか? またスクリプト内でエンコードを行う場合、スクリプト自体のエンコーディングも関係するのでしょうか?
urlencodeで探ればよさそう。
>>503 ファイルがShift JISだと仮定して、
import urllib
a = unicode('森博嗣', 'Shift-JIS')
print urllib.quote(a.encode('utf-8'))
>>> import urllib >>> a = >>> urllib.urlencode({'q':u'森博嗣'}) 'q=%E6%A3%AE%E5%8D%9A%E5%97%A3'
507 :
503 :2006/01/20(金) 00:19:04
実際なにが起こっているのか良くわかりませんが、ご指摘の方法で解決いたしました。 ありがとうございます。
>>503 『森博嗣』→『%E6%A3%AE%E5%8D%9A%E5%97%A3』 のように、
「Googleのような文字列に変換する」操作は 「URLエンコード」という名前の操作 である事も
知っておいた方がいいと思う。
初めてワンライナーを一行野郎と呼ぶことを知った35さいの冬…
カタカナで書かれると列車の名前っぽくない?
女の子の場合は一行乙女で。
ワンライナーワイランナー
一筆書き? とりあえず動けばいい一発ネタのことを「ワンライナー」と思っていた。
ワンライナー≒便所の落書き
2chの書き込みとほぼ等価ってことか
二度と読み返さないという点では同じかも。
泣きなさーいー、わんらいなーぁさぁい♪
0点。退場。
本体の機能はシンプルに、使いたい拡張は自発的に導入&可読性重視 そんな主義に共感して、機械伯爵の読み物を軽く理解してみようとしたが、 #4で頭脳の限界を感じた。 職業で必要に迫られていない数学ダメだった30歳には、あの生徒役の登場人物の センスが信じられない。
てゆーか、あの文章が可読性低い。 スタイルシートぐらい使ってほしい。
件の読み物はしらんが、公式?のリファレンスで入門は十分だと思う。
Pythonハンドブックの人、PDF版つくってくれないかなー。 印刷して使えたら便利なんだけど。
524 :
デフォルトの名無しさん :2006/01/22(日) 22:24:26
>>523 個人的にWindows用のActive Pythonマニュアルが比較的見やすくて印刷できる形式にも
なっているから気に入っているんだけど。HOWTOも結構あるし。
しかし、リファレンスの理想はJavaDoc形式かも。Pythonのは総じて見難い(気がする、どうせソース見るからええけど)
Active Python for win32 のマニュアルって、Python.orgの公式マニュアルじゃないの?
526 :
524 :2006/01/23(月) 23:45:41
>>525 プラスαが書いてある。キーワード検索などもできるようになっていたりする。
まあ、英語だけど中学英語と片手辞書で読めるから。
これですね。
http://aspn.activestate.com/ASPN/docs/ASPNTOC-APYTH2.4.0/ ざっと見たところ、ActivePythonの付属マニュアルは、Python.org版に付いてくるオフィ
シャルドキュメントに以下の分が追加されてる模様。
ActivePython 2.4 - Online Docs と Python.orgの差分
- Python COM
- PyWin32 Documentation
- Win32 API
- ISAPI filters and extensions
- ActivePython User Guide
- Installation Guide
- Release Notes
- What's Included
- Getting Started
- FAQ
- Helpful Resources
- Non-Programmer's Tutorial for Python
- Dive Into Python
- Python FAQs
- Python HOWTOs
- Python Enhancement Proposals(PEPs)
- Pythonwin and win32ui
リスト字下げして書いたのにめちゃくちゃ orz
三項演算ってどうなったんだろ?2.5でのるはずなんだけど。
>>530 What's New in Python 2.5をざっとよんだだけでした....
27 ** (1 / 3)が1ってなんでだよ…。 ()の中をどっちか小数点にすると、ちゃんと3になるんだが納得できん。
1/3 == 0だから
pyid3tagを使って大量のmp3ファイルのメタデータを読み込んだら、 2200曲オーバーぐらいのところで Fatal Python error: deallocating None とか出て終了しちゃいました。 どうやら参照カウントが問題らしいとは分かったのですが、 Python/C API リファレンスマニュアルを見ても、そもそもCが分からんので どこが悪いのか分かんないです。どなたか教えていただけないでしょうか。
>>534 作者にバグを報告して直してもらえばいいジャマイカ。
もっと怪しいところを絞り込もうぜ
Py_None返してるとこでPy_INCREFするようにしたら、 ファイル一つ読む毎に4ぐらい減ってたのが1になった。 まだ見落しがあるみたいだが、ま、いっか。
>>530 ナイス記事ポインタ。
しかし、なんか気持ち悪いな。
文は値を持たないっていうPythonの大原則が・・・・。
これやるんだったら、代入文も値持つようにしてくれないと、納得いかないよ!
とにかく一番短く書いたやつが優勝というのはいかがなものか。
質問です. 最近になってようやく2.4をいれてみたんですが, デコレータってみなさんどんな時に使ってますか? 用例をググッてみても型チェックやログ取りぐらいしか なくて,いまいちどんな時につかうといいのかなと、、、
ごめんなさい僕つかってません、に一票いれときます。
Javaのannotationと同じような物だね。 O/RマッパとかとかXMLマッパとか作ると面白いのではないかと思う。
ていうか引数に関数を取って関数を返す関数ってあんまつかわね
そうですか,あまり使かわないですか。。。
どこかで,デコレータつかうとアスペクト指向っぽくなる
ってあったんですが,AOP自体あんまり理解してないもので、、、
たとえば,WyPy(pythonでかかれたコード最小のwiki)の作者
のSean B. Palmerさんが書いてるAzimuthっていうblosxomに
似たblog用のスクリプトを見つけたんですが,
ttp://inamidst.com/inside/notes/azimuth この中でdispatcherって関数がデコレータとして使われてる
るんですが,別にデコレータにしなくてもいいんじゃないかと、、、
547 :
532 :2006/01/26(木) 02:52:55
>533 ホントだ。目から鱗。この時点でもう、プログラムが怖くなるよ。 これはbinaryの特性で「全部の数値(小数)は2のべき乗で作ってる」のが 原因なんだろうかね。他のスクリプト言語でもこんなんだったら、 こういうものとして覚悟するしかないかぁ。
>>547 スクリプト言語では少数派かもしれんが、普通のプログラム言語(Cなど)
では一般的挙動。だから注意するのが普通のプログラマの常識。
そういえば//の導入に伴ってPython 3.0?では挙動が変わるんだっけか。
WinXP,Python2.3使ってます。 os.environ['QUERY_STRING']以外にGETで渡された内容を取得する方法はないですか?
>>546 だから、
>>538 は一見文に見えちゃう式が気持ち悪いと言っているんだと思うんだけどな。
リスト内包とか、ジェネレータ式は [ ] とか ( ) で囲まれているから、まだ目視ですぐに
判断できるんだけど、あれは目印が少なすぎるかと。
import cgi or import mod_python
>549 // ってコメント? >547 Write Great Codeを嫁。
>>553 //は切捨て割り算だよ。
現状(2.4)では
>>> 1/3, 1//3, 1.0/3, 1.0//3
(0, 0, 0.33333333333333331, 0.0)
のようになるが、Python 3あたりで1/3は1.0/3と同じになる予定なので
明示的に切り捨てたいときは//を使っておきましょうってことになってる。
>>554 ちなみに2.4でも
>>> from __future__ import division
>>> 1/3, 1//3, 1.0/3, 1.0//3
(0.33333333333333331, 0, 0.33333333333333331, 0.0)
となる。
557 :
デフォルトの名無しさん :2006/01/27(金) 18:35:12
IronPython 1.0 Beta 2出てんじゃん
>554 えー。ヘンな仕様。 切り捨てであることを前提に書いてるコードなんて山ほどあると思うが、 どうすんだろ。forとか。
むしろ//が小数除算だと思ってた...
そのうち有理数サポートが入ったら、1/3は浮動小数点数0.333...じゃなく 3分の1になるんじゃなかったっけ。
>>558 Python の未来のことを考えて,自然な割り算に自然な割り算記号を割り当てたかったんだろうな.
過去書かれたコードはとりあえず __past__ みたいなので凌いでもらって.
仕様のヘンさで言うと,1/3 が 0 になるのは相当気持ち悪く思えたなあ.今はだいぶ慣れちゃったけど.
Write Great Codeね。高いけど買うわ。切り捨てだから0だったんだね、忘れてたw
VHLLの入門者がハードウェアとの関係まで勉強する必要性ってどーよ。 知識は無駄じゃないにせよ、Cとかほど必須じゃねえしよ。 あんま手を広げても、一杯一杯になるのがオチじゃねえの。 あせんねえで無理せずコツコツやってけば、十分じゃね?まあ、他人事だがよ。
今日初めて知ったトリビア。 IBM PredesktopにはPythonが含まれている。 既出だったらスマソ。
よしパパ、有理数を扱うための新しいnotation \[ \frac{1}{3} \] を提案しちゃうぞー。
>>566 そんな打ちにくくて読みにくいのは嫌だ。
どうみてもLaTeXです h(ry
569 :
デフォルトの名無しさん :2006/01/29(日) 00:09:46
質問です。 python.exe -c "print '%02d' % 3" このコマンドを実行したらこんなエラーが出ます。 Traceback (most recent call last): File "<string>", line 1, in ? TypeError: not all arguments converted during string formatting 対話モードだったらちゃんと実行されるのですが・・・ 何が原因なんでしょうか?
>>569 うちでは動くぞ。何か変なシェルを使ってエスケープされてるとか。
試しに echo "print '%02d' % 3" とかやってみれば?
>>570 さん ありがとうございました。
Nyacusが%0をエスケープしていたようです。
cmdではちゃんと動きました。
x = 'String'のあと、 x<enter>だと"String"と出て、print xだとそのままStringと出るのは面白い。 なんか使い分けの使い道(??)ありそうだ。 ところでみんな、=とかの前後って必須じゃない時も半角スペース入れてる?
>>572 ま、好き好きなんだけど、故意に独自のスタイルにして得られるものはほとんどない。
これから学ぶならば
>>573 のような標準的スタイルに慣れたほうがいいと思う。
じゃあ全てのコメントは英語で書かないといけないね。
そういうこと。
>>575 ストレス無く可能ならばそのほうがいい。
君のプログラムを読むのは日本人だけだと限定する理由はあまりないでしょ?
Guidoだってオランダ語で書かずに英語書いているじゃん。
Why don't you speak English in this thread too?
Guidoだって英語で書かずにオランダ語書いているじゃん。
きょうび、一行80文字ルールは無理があると思うのだが‥‥‥。
na、nandatte-!?
>>585 それ日本語だし。w
というわけで早くも解禁。
587 :
デフォルトの名無しさん :2006/01/31(火) 15:29:38
カタ、ミシャラーニ ベンオ ト サタミミ?
気の毒な日本人ばかり.
I was pen.
Sorry, Japanese only.
>>589 Reincarnated to a human being? To a computer?
593 :
デフォルトの名無しさん :2006/01/31(火) 23:16:52
A : Is this a pen? B : No, that is an apple. A : Oh! sorry, apple...this is an apple... B : Yes, that is an apple. A : By the way, is this a pen? B : No!!! That is an apple!! A : Oh! sorry! This is an apple!! B : Yes, good. you are smart. good..good. A : Yes, this is an apple...But is this a pen? B : Nooo!!! that is an apple!! apple!! apple!!! A : Pen!! this is a pen!!! pen!!! pen!!! B : NOOOOOOOOO!! NO!!!!! Fuck!!! apple!! apple!! apple!!! this is an apple!!!!! A : Fuck!!This is Fucking pen!! pen!! Fuck pen!!
壮絶なキレ合いワロスw
おめーらくだらねぇ論議してるヒマあったら早くWxPythonとTwisted使ってPython版かちゅーしゃ作れよ! うるせーIronPython野郎! キレェオだろ?お前なんで所詮はキレェオなんだろ?早く言えよ!カミングアウトしちまえよ! 抜くぞ?いいのか?抜かれちまうぞ?本当にいいんだな?絶対だな? 証拠出せよ!早く出せよ! Numericとnumarrayの互換性が無い事くらいド素人でもしってるんだよ! それを何がPyPIだ?Pychinko以下!Pymanko未満!タプルたんに土下座して謝れよ!馬鹿! 日9ゲそえよ!見えねーじゃねぇだんろ?う?あ?あ?あ?
A : これってペンだよな? B : ちげーよ。 りんごジャンw。 A : おー わりー, リンご...これはりんご... B : そう りんご。 A : あのさ, これペンだよな? B : ちげーって!!! りんごだって!! A : おー! わりー!! りんごだ!! B : そうだよ わかってんジャン。 イイジャンイイジャン A : そう りんごだ...ペンだよな? B : ハァァァァ!!! リンゴジャン!! リンゴ!! リンゴ!!! A : ペンだ!! これぺンダ!!! ペン!!! ペン!!! B : ハァァァァァァァァァァ!! ちっげって!!!!! 調子こいてんじゃねーぞ!!! リンゴ!! リンゴ!! リンゴ!!! リンゴ!!!!! あとよろしく
リンゴがSPAMってこと?
笑いのツボが分かんないんだが、MLに似た趣旨のスレッドでもあるのか?
関係無いけど、Apple ][ と Pentium!!! の罵り合いに見えた。
以上コピペですた
>>603 えらい時代の違うもの同士が罵り合ってるんだな。w
MacBook持ってるマカーと素人の会話だろ。
>602 たしか中学英語の教科書で一番最初にでてくるのが >593(の前半部)みたいなのがあったんで それを思い出して笑う、と
A : これはペンでございましょうか? B : いいえ、リンゴでございます。 A : これはこれは!申し訳ありません。リンゴ…これはリンゴでございますね。 B : ええ、リンゴでございます。 A : ところで、これはペンでございましょうか? B : いえいえ! それはリンゴでございます! A : これはこれは!申し訳ありません! これはリンゴでございましたか! B : ええ、そうでございます。ご賢明であられますね。天晴れ天晴れ。 A : なるほど、これはリンゴでございます…しかし、ペンでございますね? B : いえいえ!! これはリンゴでございます!リンゴ!リンゴ!! A : ペン!これはペンでございます! ペン!ペン!! B : いえいえいえいえいえ! お死にあそばせ! リンゴ!リンゴ!リンゴ! リンゴでございます!!! A : ご逝去なさって!! これはペンでございます! ペン! ペン!!!
なんで標準的な記述方法の流れがリンゴとペンに化けるんだよぉw
pythonに関係のある何かを揶揄してるの? そうでなきゃ、このスレと関係もないしそもそも面白くもない。
>>575 から発展(脱線?)した英語ネタだな。もはやほとんどPythonには関係ない。
中1の英語教科書ネタってパイクンソンクンってお笑い芸人がやってな
Python と言えば、 The Hungarian Phrasebook sketch を思い浮かべた。
※このスレ住人の英語力は厨房レヴェルです
そうそうネイティブの厨房レベルだ
ぺらぺらでやんす
CraftLaunchExをいじりはじめたらPythonが面白くてたまらない
うすっぺらみたいな?
Pythonが組み込まれてるソフトウェアって、どんなのがあるの? * Blendar * OpenOffice * KaaEDIT これくらいしか知らん。たしかGimpでもつかえるとか聞いたんだが。
英語版のWikipediaとか見れば良いじゃん
むむ、閉じ括弧がURLの一部になっちゃった。スマソ
Iriaにもあったけど、IrvineでJavaScriptに乗り換えられた
PaintShopProとか Metasequoiaとか Nokiaのケータイとか……あ、これハードウェアか
Poserもね
そういやNDSでPython動かそうってのは、結局どうなったんだろう。 前に記事を目にした時は、エミュレータでは問題なく動くのに、実機ではなぜか 安定しないって話だったけど。
いまいちメリットとデメリットが見えないけど (他環境でズレるズレないとか?)、tab押下時に 埋め込むコードは、半角スペース4(8)個と タブ文字とあり、前者推奨混ぜるな危険。 選べないようなエディタもあると思うんだが、 俺が使ってるのを調べたらその設定があった。安心。 ただ、python用の色分け設定(分かりづらいね。 でも正式な呼び方分かんない)がないんだ。 色分けしてくれるけど、IDLEは重すぎる。 自作できるけど、使える三色を何に割り振ると いいのか考えると億劫だ。
>>631 天下のILM御用達だからな。w
昔はSymbolicsとかLisp系が牛耳ってた分野だ。
他言語で宗教論争になるハードタブとソフトタブ関連でも 平穏なのがpythonのいいところかもね。 Guidoに次善と言われつつも、俺はハード派だけどさ。
つ RewriteEngine
大学生の春休みは長いぜーふぉー! ということでPythonはじめます! チュートリアル見てきますね!
638 :
635 :2006/02/04(土) 19:42:21
>>636 ありがとうございます。このモジュールで出来そうです。
が、試したところ上手く行かないので、つづきはApacheスレで聞いてきます。
WinXP、python 2.4.2、Japanese Codec Packなしの環境下で、 arg = u"some.exe 日本語名.txt" pin, pout = os.popen4 (arg, "t") とやると、some.exe には "譌・譛ャ隱槫錐.txt" というふうに、 引数の"日本語名.txt"が化けて渡されてしまうんだけどなんで? sys.getdefaultencoding () は utf-8 で、 sys.getfilesystemencoding () は mbcs になってるんだけど関係あるかな
>>637 学生時代に休みを数えたら半年あった。
今は土曜日も休みだから、7ヶ月近くが休みなのかな。
>>639 2.4以降ならCJKCodecsがデフォルトで入っているので、
os.popen4(args.encode(sys.getfilesystemencoding()), "t")
とすればいいのではないかな。
>>639 プログラムの冒頭に
# -*- coding: ms932 -*-
と書くべし。
>>639 ソースの最初の行に
# -*- coding: Shift-JIS -*-
って書くと直ったりしない?
(ソースをShift JISで書いている場合)
ありま。かぶった。
645 :
637 :2006/02/05(日) 13:40:52
チュートリアルもいいけど, tibet.que.ne.jp/otani/2004python/2004pythonmenu.html こっちもよさげです.Cをかじった程度なのでそれを超えるように頑張ろう. shis-jisじゃなくてeuc-jpで書いてもいいのでしょうか.
>>> '20060101' > '2005' True >>> '20060101' > '2007' False この動作はずっと保証されると考えてよいのかな
てゆーか、保証されるか迷うくらいなら別の確実な方法をとるべきだと思うな。
書いてから気付いた。 ただの文字列ソートとかに使われる規則そのままか。 時刻だからとか、文字列の長さがとか考えすぎた。 お騒がせ致した。
650 :
639 :2006/02/05(日) 16:57:23
>>641-644 ありがd
冒頭にはいつもUnicode宣言しているので大丈夫と思う
# -*- coding: utf_8 -*-
あと args.encode(sys.getfilesystemencoding()) を使うと、
日本語名.txt では問題ないんだけど、中国語名 だと
"cp932 コーデックはエンコードできません:不正なバイト列です"
と怒られるんだよな
やっぱり、try 文を多用してそれぞれの文化圏の文字に
合わせてコーデックを指定してあげないといけないのかな?
651 :
639 :2006/02/05(日) 20:24:26
何がやりたいかと言うと、テキストエディタ xyzzy のような
インターフェースと拡張性をもつ、ファイラ他、いろんな機能を
もったアプリを作ってみたいのね
で、それにTTA (オーディオファイルコーデック) のフロントエンド機能を
実装しているところなんだけど、
>>650 に書いた問題で1週間悩んでるんです
もしよかったらソースを見ていただいて、何か良いご指摘いただけそうで
あればお願いします (解凍パスはpython)
http://sund1.sakura.ne.jp/uploader/source/up3763.zip wxPython が必要。main.pyw 実行後、シェルに「tta.FrontEnd ()」と
打つと問題の小窓が開きます
うごかねーんだけど.(OSX Python2.3.5 wxPython 2.5) あと,#===== にかなり引いた. Traceback (most recent call last): File "main.pyw", line 76, in ? execfile (siteinit) File "./site/siteinit.py", line 9, in ? import tta ImportError: No module named tta それはそれとして,wxPython-unicode で GetText したら,unicode オブジェクトじゃなくて utf-8 の string が返ってくるんじゃないの.ひょっとして wxPython-ansi 使ってるのかな?
>>651 Windows では unicode オブジェクトをそのままファイル名として
open() に渡せるので、encode() する必要はないのでは?
654 :
639 :2006/02/05(日) 22:59:47
>>652 sitecustomize.py が起動時に読み込まれてないみたい
sitecustomize の中でsiteinitをパスに追加するのを行ってるので。。
あと、wxPython 自体はunicode 使ってます
引数もprint type (arg) 等でunicode 型なのは確認してるんだよね
#===== はカンベンw
それと、tta.py の161行目が、
× os.system (fi.encode (sys.getfilesystemencoding ()))
○ os.system (arg.encode (sys.getfilesystemencoding ()))
と修正でした、スマン
そのままだと指定ディレクトリ内の全ファイルをどんどん実行してしまう
>>651 そのままだと、DOS窓のエンコードと合わないと聞いたので
エンコード指定してた
http://lowlife.jp/nobonobo/zine/5/6.html でも、エンコード指定しなくてもエラーになっちゃうんだよ
655 :
639 :2006/02/05(日) 23:25:31
>>652 すまん、sitecustomize.py の、
gettext.install ("main", os.path.join (os.getcwdu (), "locale"), True)
が原因だたよ
削除してくれ、すまん
診断:ポストン症候群 主な症状: 1.周囲の人をバグ取りに動員する。 2.自己解決する。
657 :
639 :2006/02/06(月) 01:24:17
ごめんよー、ここなら同じことで悩んだ先輩もいるかと思って まだ解決はしていないのだけど、まあ、 おそらくDOS窓がユニコード受け付けてくれないのかなー、と いうことで結論しときます thx
ちょっとおもしろいから続けちゃだめかな。 問題を整理すると、以下のような感じだとおもう。 os.system() や os.popen4() に、unicode文字列を上手に渡すにはどうしたらいいんだろうか。 -------- ここから nihao.py -------- # -*- coding: utf-8 -*- import os # "c:\temp\中文的〓好.txt" を作成 (※「〓」 -> 「イ尓」) ustr_nihao = u'c:\\temp\\\u4e2d\u6587\u7684\u4f60\u597d.txt' file_nihao = open(ustr_nihao,"wb") file_nihao.write("nihao !") file_nihao.close() ## ここからが問題 ## notepad.exe で "c:\temp\中文的〓好.txt" を 開く ## 失敗1 : os.system() + encode("utf-8") # utf-8で渡すと文字化け # 「ファイル c:\temp\荳ュ譁・噪菴■螂ス.txt が見つかりません。」 str_exec = 'notepad.exe ' + ustr_nihao.encode("utf-8") os.system(str_exec) -------- ここまで nihao.py --------
659 :
639 :2006/02/06(月) 02:22:37
>>658 そう、それが言いたかった!
一つの解決策としては、 win32com.client 等で notepad.exe を
com 操作してファイルをオープンさせるとか
=> ただし可搬性がない、os が限定される
Windows 限定だけど GetShortPathName でショートネーム取得すれば認識されるんじゃない?
661 :
658 :2006/02/06(月) 02:33:59
>639 最初からこんな風にして欲しかったな…。 なんとなく、os.system() や os.popen4() にunicode文字列を渡すのは無理な気がするよ。 現実的な解としては、 1. tta_enc.exeを呼び出す前に"hogehoge.$$$"みたいな無難なファイル名にリネーム 2. tta_enc.dll を直接使う 3. win32com.client を使用して、COM経由で呼び出す くらいかもねー。
662 :
639 :2006/02/06(月) 02:53:06
>>660 はじめてwin32api.GetShortPathName (path) を使ってみたけど、
なぜか英語以外の path の場合はエラーになるみたい
この関数の使い方もうちょい調べてみます
>>658 すまんぽ。書きながら自分で頭の整理ができてきたっていうのもあって。。
それと、解1がとてもベストな気がするね
win32comはできれば使いたくないし
>>641-661 長い間悩んで、結局無理とわかったのだけど、
無理とわかっただけでも楽になったよ
本当にどうもありがとう
import codecs os.system( 'notepad.exe ' + codecs.mbcs_encode( ustr_nihao )[0] ) ↑で動くと思うが Windowsの内部エンコーディングはUTF-8じゃなくてUCS-2
664 :
639 :2006/02/06(月) 03:07:28
winXP, Python2.4.2 の環境だけど、 残念ながら "中文的?好 は見つからない" となってしまう
encode("mbcs") すると、「イ尓」に相当するはずの文字が 半角の「?」 になっちゃうね。 これがどうも気になるんだけど。変換テーブルまわりの問題かな。 >>> ustr_nihao = u'c:\\temp\\\u4e2d\u6587\u7684\u4f60\u597d.txt' >>> ustr_nihao u'c:\\temp\\\u4e2d\u6587\u7684\u4f60\u597d.txt' >>> ustr_nihao.encode("mbcs") 'c:\\temp\\\x92\x86\x95\xb6\x93I?\x8dD.txt'
666 :
664 :2006/02/06(月) 04:12:21
openだとうまくいくからその辺追えばいいんじゃまいか
>666は名前663
668 :
639 :2006/02/06(月) 06:25:07
>>665 日本語Windowsなら当然の動作だと思われ。この場合mbcsとは実質的に
ms932のことだから中国語の文字は表せない(?に置き換えるしかない)。
>>659 Unicode なファイル名はそもそも OS 依存。
OS 依存なものを扱おうとしているのだから可搬性がないのは当たり前。
Jythonならうまくいったりしないかな。
672 :
639 :2006/02/06(月) 19:14:46
Jython 2.1 on java1.5.0_04 (JIT: null) >>> import java.lang >>> import os >>> r = java.lang.Runtime.getRuntime () >>> r.exec (u"中文的你好.txt") Traceback (innermost last): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~略 java.io.IOException: java.io.IOException: CreateProcess: 中文的?好.txt error=2 >>> os.system (u"中文的你好.txt") '中文的?好.txt' は、内部コマンドまたは外部コマンド、~~~~ 嗚呼
だめかー
win32api.GetShortPathName は unicode 渡しても str に変換されるみたいなので ctypes を使って GetShortPathNameW を使えば unicode のファイル名から短い名前を取得することはできる で、この短い名前を使えば startfile でも正常に呼び出せたよ import ctypes import os ustr_nihao = u'u4e2d\u6587\u7684\u4f60\u597d.txt' GetShortPathNameW = ctypes.windll.kernel32.GetShortPathNameW shortName = ctypes.create_unicode_buffer(256) GetShortPathNameW(ustr_nihao, ctypes.byref(shortName), ctypes.sizeof(shortName)) print shortName.value os.startfile(shortName.value)
Modules/posixmodule.c の posix_system じゃないかな ちなみに startfile は同じファイルの win32_startfile ともに PyArg_ParseTuple で文字列を取得するときにユニコードから変換される fileobject.c の open_the_file の実装みたいにユニコードかチェックして _wsystem、ShellExecuteW を呼び出してくれれば多分エラーにならない
677 :
658 :2006/02/06(月) 21:11:42
679 :
639 :2006/02/06(月) 21:19:07
>>674 これいいね、ありがとう!使ってみます!
>>675-677 すごいことにやってるね。。
これってPython側のバグだたの?
できれば、どういう事だったのか教えて欲しい
それにしてもマクロだらけになったCのコードを追っかけてると、
Python 使えることに感謝
680 :
658 :2006/02/06(月) 22:04:43
>>678 PEPが最後にでてくるか。泣けるなぁ…
Chief Executive ワロス
Pythonにちょっと興味があったのでKomodo Professionalの評価版とSPEというのを ちょっといじってみたのですが、フリーのSPEの方が便利そうな印象を受けてしまいました。 純粋にPythonだけにフォーカスしてるからなのでしょうか。結構なお値段するのに>Komodo 逆にPythonしか使わなくてもKomodoじゃなきゃやってらんねぇぞゴルァって機能があれば 教えてください。参考にしたいので。
>>683 氏のレスを見て初めてSPEというものを知り、を試してみたのですが、
かなりイイですねこれ。今までなんで話題に上らなかったんだろうってくらい。
Eclipseのpydevプラグインから乗り換えました。ありがとうございました。
すいません。助けて下さい。 やりたいこと:VPサーバー(Linux)にtelnetもしくはssh経由でPython2.3.5をインストール。 やったこと: usr/local にPython-2.3.5.tgzを解凍し、新しく出来た usr/local/Python-2.3.5 内で configure を実行。結果は、 checking MACHDEP... linux2 checking EXTRAPLATDIR... checking for --without-gcc... no checking for --with-cxx=<compiler>... no checking for c++... no checking for g++... no checking for gcc... no checking for CC... no checking for cxx... no checking for cc++... no checking for cl... no checking for gcc... no checking for cc... no checking for cc... no checking for cl... no configure: error: no acceptable C compiler found in $PATH See `config.log' for more details. ./configure: sort: command not found ./configure: sort: command not found との表示でインストール出来ません。 同じような環境でインストールしたことのある方いましたら知恵を貸してください。Pythonのバージョンは異なっても構いません。
>>685 エラーの通り、gccがインストールされてないのでは?
シェルで where gcc とかやって、コンパイラがインストールされているかを確認して、
入ってなかったらパッケージからインストールすればいい。
>>685 >configure: error: no acceptable C compiler found in $PATH
・外部接続者がコンパイルできないように、パスからgccを見えなくしてある
・gccそのものを入れていない
↑ whereis gcc だな。 インスコされてれば gcc: /usr/bin/gcc みたいな感じの結果が表示される。
689 :
685 :2006/02/08(水) 19:03:57
ありがとうございます。 完全なunix初心者で全くわからない状態ですが、 puttyっていうソフトで接続(おそらくssh)し、試したところ、 sh-2.05$ whereis gcc sh: whereis: command not found と表示され、『where』『whereis』ともにコマンドがないとの事で実行できませんでした。 また、FTPで接続し、いろいろ探してみましたが『gcc』は見当たりませんでした。 恐らくインストールされていないので、それをクリアしてから再度試してみます。 ちなみに『gcc』を必要としないもっと簡単なインストール方法っていうのはないでしょうか? 例えばローカル(WinXP使用)でインストールしてからアップロードするですとか…
mxcgipython使えば?
691 :
690 :2006/02/08(水) 20:11:57
693 :
685 :2006/02/08(水) 21:55:03
>>690 ありがとうございます。
gccのインストールはディスク容量不足で不可能と判明。
mxcgipythonも調べましたが、
配布されているバイナリが拡張子『.gz』となっており、ローカルでもサーバー上でも解凍不可でした。
最終的にはmod_pythonをインストールしたかったのですが、自分の知識では無理そうです。
素直にレンタルサーバの運営会社に問い合わせることにします。
ご迷惑おかけしました。
>配布されているバイナリが拡張子『.gz』となっており、ローカルでもサーバー上でも解凍不可でした。 だれか何か言ってあげて
>>694 もう済んだことだ、あいつのことは忘れろ!
彼女を捨てて海外で医者になることを選んだのだから!
レンタルサーバーの中の人もこういう客相手に大変だなあ・・・
echo "それが商売ですから"
gzipすら入ってないサーバってあるの?
>698 gzip を知らない香具師には入っていても使えまい
ことによってはbz2だった,とかいうオチもありそうだな
うちではできた。chmod する以外には、特に気をつけるとこはなかったぞ。
$ wget
http://phd.pp.ru/Software/Python/misc/mxCGI/cgipython-2.4.1-Linux-2.4.29-i686-with-debian-3.0.gz $ wget
http://phd.pp.ru/Software/Python/misc/mxCGI/mxCGItest.py $ gzip -d cgipython-2.4.1-Linux-2.4.29-i686-with-debian-3.0.gz
$ chmod +x cgipython-2.4.1-Linux-2.4.29-i686-with-debian-3.0
$ mv cgipython-2.4.1-Linux-2.4.29-i686-with-debian-3.0 cgipython
$ ./cgipython mxCGItest.py
('__builtin__', '__main__', '_codecs', '_csv', '_locale', '_socket', '_sre', '_symtable', '_weakref', 'array', 'binascii', 'cPickle',
'cStringIO', 'cmath', 'errno', 'exceptions', 'fcntl', 'gc', 'gc', 'grp', 'imp', 'imp', 'marshal', 'math', 'md5', 'mmap',
'operator', 'parser', 'posix', 'pwd', 'select', 'sha', 'signal', 'struct', 'sys', 'syslog', 'thread', 'time', 'unicodedata',
'zipimport', 'zlib')
いや、そういうことじゃなくて・・・
>>694 ブラウザとかのダウンロードを使ったせいで,
実は伸張済のアーカイブファイルだったというオチを思いついた
いまでもそんなアホな挙動するブラウザってあるんかな?
707 :
デフォルトの名無しさん :2006/02/10(金) 10:44:00
IronPython 使い始めた人いる? あれ、すごいらしいよね
どうすごいんですか? プログラミング初心者に優しくて,上級者のハートをつかんで離さない といった具合なのでしょうか.
見てみます,さんくす
C言語で数値計算くらいしかやったことないから, さっぱりわからんかった…ウァアンb
すげえ. 感動した.
.NET+XAMLになった時点で相当に簡略化されると思うけど。
>>711 数値計算てどうせ、
for (i = 0; i < 10; i++){
printf("nibai: %d\n", i * 2);
}
みたいなのをCUIでやってみただけだろw
716 :
711 :2006/02/10(金) 22:13:56
多次元変数でのニュートン法とかだから対して変わらないね〜 pythonで何しようかなー
じゃあ特定されてないや 失礼します
これで特定
内輪な話はよそでやってくれよ
IronPythonがVisual〜に追加されるとかいうニュースはないのか!?
>>716 情報系の大学だと数値計算の授業があったりするね。
714はそういう事情を知らんのかな?(かなり痛い・・・)
> pythonで何しようかなー
そういうバックグラウンドがあるなら
H.P. Langtangen の「Python Scripting for Computational Science」とか
見てみると面白い鴨。
読んでみます
>>724 俺は711氏じゃないけど面白そうだね。注文しよっと。
IronPythonおもしろいなこれ。 VisualStudioの中でブレークポイントしかけたりデバッグできちゃうのかよ!
Visual Python .NETの予感
MATLABの代わりにごりごり使えるような日が来るんだろうか
>>728 これ、ほんとに出して欲しいよ。
フリーでなくてもいい。金出して買う。
どういう経緯でこうなってるのか知らないけど、現時点のscipyって実装が 中途半端じゃね? リファレンスに記述があったとしても、実装がなされていない関数が多数ある
>>724 面白そうだけど,一冊8000円超えるね.
学生にはきついんじゃなかろーか.
def f(): f.x = 1 def g(): f() ; print f.x g() # 1と表示 関数staticな変数のシミュレートができる? そんだけ
シミュレートでも何でもないね 何でこんなの書いたんだろう
MSに関わって欲しくない 徹底的に飼い殺しされて潰されるか 巧妙に乗っ取られてしまうぞ
うむ。たぶんC++のようにはならんな。 OpenGLのような運命をたどるだろう。
739 :
デフォルトの名無しさん :2006/02/11(土) 23:39:03
> Microsoftでは「Visual Studio」へのIronPythonのサポート追加をまだ表明していないが、同社がこれをサポートするというのが大方の見方だ。 最高。久しぶりに Visual Studio に戻れるかも
740 :
デフォルトの名無しさん :2006/02/12(日) 10:23:49
Python 作者が Google に入社したし、 MS 的にはもう Python に注力しなくなるんじゃね?
Python 自体は Guido がグーグルに入社したかに直接影響はされないだろーが。 .NET にあるいろんなオブジェクトを簡単にいじくることのできる IronPython はかなり魅力的。 ちなみに Guido は時間の 50% を Python の改良に費やし、他の 50% を Python を 使用した社内で使うツールなどのプログラミングをしている。
.NetにIronPythonって、JavaにGroovyやBeanShellみたいな感じなんだけど、この先どうなるんだろう。
>>740 2.5への変更点は俺がほしいと思っていた機能の追加/変更ばかり。
よさげだね
ちなみに IronPython って標準の Python より 1.8 倍速いらしいのな。
ってことは Windows 上だったらこれ使用したほうがいいってことになるな
Java には完成度のかなり高い Jython があって、 C# には IronPython があるだろ? 多分無理だと思うが、これ二つ結合して Java も C# も自由自在に 操れるようにすれば、 Python は天下取れるんじゃね?
>>744 > ちなみに IronPython って標準の Python より 1.8 倍速いらしいのな。
それ0.6頃の話でしょ。今はどうなのよ。
既にC#があるのにPython.NETって意味あるの? だってクラスライブラリなんて最初から.NETの方が豊富なわけで
.NETのライブラリもpythonのライブラリも使えてコンパイル不要
Python.NETは他のプラットフォームからのベタ移植用途以外には意味無いかもしれない。 IronPythonは.Net上で新規に書くならかなりいいと思う。
.NETってなんやねん
ドメイン名の一番右端じゃね?
MS が Java を捨てたように Python も捨てると思うなぁ。 Google ってライバルだし。
- any()/all() builtin truth functions なにこれ?述語論理?
Microsoftの技術に乗っかる気ないんだけど
ごめん途中で書き込んだ。
>>753 any - 渡されたイテレータの中身のどれかが真なら真を返す。全部偽なら偽を返す。
all - 渡されたイテレータの中身のどれかが偽なら偽を返す。全部真なら真を返す。
よく使われるような簡単なアルゴリズムを関数にまとめたんでしょ。
C++のSTLみたいな発想で。
……でも述語関数も欲しいです、先生……
>>752 MSにとってはGoogleがライバルなのでなくてインターネットがライバルな印象
>>754 Pythonの移植品がMSに利用されるってだけでしょ
好きに利用させてあげれば良いじゃん
JavaScritpだてJScriptとかって別物として移植されたけどMSつかいこなせなったし
でも利用者がある程度いた事でAJAXに移行しやすかった人もいるみたいよ
MSが採用すればそれなにり利用者増えるでしょ。便利な物も出てくるよ。
本当に役にたたせるのはきっと別の会社なんだろうけど(
MSと付き合い始めたらいろんな意味で使い辛くなりそうだな
)
print """ Hello, Python!!! """ というわけで今日はprint文とif文について学びました. 失礼
>>> help Type help() for interactive help, or help(object) for help about object. フムフム >>> help(None) Welcome to Python 2.4! !(゜∀゜)
>>759 まあでもMSの仕込んだ使い辛い機能が本家の
Pythonにフィードバックする人もいないだろうし
本家のPython的には全然変わらないんじゃない?
>>762 Python に Easter egg があったとは!!
>762 すまんがそれ、 help() のこと。
どっちかってーと import this がそれに近いものだよね
pythonで zope/plone以外のイカしたCMSありまつか? zopeは多機能杉
コンソールで書いてるとゴミが溜まってくるから、 遊び始める前にimport os<enter><tab>os.system("cls") っておまじないをしてる。 ちょっと前にこういうの詳しい人が見たとき、理由の説明は無くて 「最後にreturn書けやヴォケ」と言われた。「無いと気持ち悪い」って。 書かなくても画面きれいになるけど、なんかダメ?
>>768 ああ、いるね。そういう些末な作法の違いに
やたらこだわって茶々入れてくる人。
それでいて自分は肝心なところが抜けてんのな。
気にしないで適当にあしらっときゃいいよ。
>>736 -
スラド臭い流れだなwwwwwwwwwwwww
>>768 コンソールで書くときなんて見せるのが目的じゃないんだから別に傍目は
気にしなくていいんじゃない?
>>768 俺の環境では ^L できれいになるけど、そういう意味ではないのかな?
773 :
768 :2006/02/15(水) 01:22:55
動く分には問題ないですかー。宗教的な要素のようで安心しました。 戻り値が必要な場合でも.pyでもなし、機能するならそれでいいじゃない…。 ちなみにctrl-Lには、素のwin版プロンプト上ではバッファお掃除機能は 割当たってないみたいです。linux版は便利なんですね。
>>773 cygwin版だとCtrl-L効くよ。
少しスレ違いですが適切な場所が見つからなかったので質問させて下さい。 linuxでpython-2.4.2を自分でコンパイルしたら、pyexpatというパーサが 勝手にインストールされたんですが、2.3.5ではインストールされませんでした。 pyexpatを2.3.5から使いたいのですが、これは本体に含まれてるのでしょうか? それとも別途ダウンロードが必要ですか?もし後者なら、DL先を教えてもらえる と嬉しいです。 あと、pyexpatとpy/xmlは別物ですか?
>>777 分かりやすい解説どうもです。2.3.5にもpyexpatは含まれてました。
ありがとうございました。
779 :
デフォルトの名無しさん :2006/02/17(金) 14:33:03
「0からPython」よりも下にあるのなんかゆるせんage
新しい方が良いって聞いたから日本語2.3.4消して 標準2.4.2入れたらヘルプまで英語かよ。 orz チュートリアルとかよく見てたのに、上書き食らった。 .msiだからヘルプだけ抽出して戻せないしって、 ああ、日本人に誤解の元となるバージョン違いの ヘルプを使わせないための親心か。 イラネ-
日本ユーザー会のダウンロードにあるから、ドキュメントを探せ。 2.3でも2.4でも好きな系列選んでな。 Docディレクトリに入れれば、なおよし。ファイル名のケツからjp削って Python24.chmを上書きし返すと、IDLEから呼べるようになるしな。
意見を聞かせてください。 Apache + mod_python と Zope ならどっちが高性能でしょうか? 或いはウェブ上でPythonを使うのにもっと良い組み合わせってありますか?
自分で測定しよう
>>784 に理解できるかどうか分からんが,少なくともZopeの方が高水準.
>>784 に理解できるか判らんが、性能必要ならapacheで逆串とか刺せば?
>>784 あなたの言う高性能がどういうことなのか説明してくれ
みんな意地悪だな。
単純な単位時間あたりのPV数ってことで、性能って言っているんだと思うがな。
、
パフォーマンス勝負でも、下手に書かれたPythonプログラムをmod_pythonで動かすのと、
Zopeでうまく作ってやるのとでは、ほとんど変わらない場合もあると思われる。
ま、
>>785 のいう通りってこった。
DjangoとTurboGearsとSubwayとかありますが、これらの比較記事とかどこかにないですか?
下手なゲームより面白いな。 昔98でバッチファイルを書いてたのを思い出すぜ。
>790 調べて次の python workshop で発表よろ
>>791 そんな理由で開発やったり辞めたりする奴のプロダクトには依存したくないよねぇ。
>>794 君が選択できるオプションは以下のとおりだ。
1)フレームワークから自分で作る
2)開発放棄されてもソース読んで自分でメンテする
3)クレクレ君であることを自覚し今後そういった文句は控える
真のクレクレ君よ、私は君にはないオプションがあるんだよ。 4) 有料でサポートしてくれるフレームワークを使う。
今月のSDのLL特集で、Python記事がないのに JythonとTurboGearsはあったのはなんかバランス悪いね
そもそもフレームワークって何(に使うの)?RoRみたいなもの?
おおすじでYes
RoRがわからん… Rise of Rome
Reverse OR
Ruby off the Rails
web.pyねぇ・・・。 具体的にどこら辺がいいんだろう。
作者がおひとよし
>>784 apache+mod_pythonの良い所は、他のモジュールと組み合わせる事が
出来る事じゃないかな。例えば、俺が作ってる加速器実験用の鯖だと、
apache+mod_gridsite+mod_ssl+mod_pythonで GSI authenticationかまして、
DNで jobの優先度を振り分けたりとかしてるよ。
時代はlighttpd+mod_fastcgiですよ
809 :
デフォルトの名無しさん :2006/02/20(月) 11:58:18
IronPython1.0 beta3出てますよ
Iron やべーな。。。俺 (IronPython経由での) .NET のプロになっちまいそう。。。
正直リソースエディタがついてないと話にならん
812 :
デフォルトの名無しさん :2006/02/20(月) 16:22:42
今 Visual Studio 2005 入れてます。 この上でIronPythonできるんだよね?
無理だろ。
できたよ
なんだExpressじゃできないのか
試してわかった事。ifって書く順番も大事なんだ。 他の条件に含まれちゃうような限定された返り値が 欲しい分岐は、先頭の方に書かないと無視されるね。 カウンタが例えば5から減らして自分を再帰呼び出しする関数で、 0じゃないときA 1のときB 0のときC(&終了)の順だとAAAAAC(Bは呼ばれない) 1のときB 0じゃないときA 0のときC(&終了)の順だとAAAABC(無事できた) 設計が悪いと言われればそうだけど、else使わないで遊んでみたら 意外な結果になったんで。
自分がスキルアップした気持ちは良くわかるが、「そりゃそうだろ」としか言えない
死蔵状態とは言え半分以上水没は痛い
>>817 コードの振る舞いを説明するときはコードで例示してくれ。
説明能力もスキルアップしてほしいっす。
817じゃないが、 if x != 0: A elif x == 1: B でBが実行されることは無い。そりゃそうだろ。
そうですね!
>>817 「意外な結果」だと思われたことが意外だったり。
Triangleだな。コンパイラの勉強にはなったが
すまん、誤爆した
>821 ちょっとワラタ けど cc -O みたいな最適かというか、 lint というか そういう無意味なコードは恐らくはバグなので 論理的に無意味なものを検出して warning 出してくれる コードチェッカなんてのはあってもいいかなとは思った (もっとも >821 が無意味かどうかを判定するのはちと辛いか)
>>779 98: Pythonについて0から教えてください
132: Pythonのお勉強 Part8
おもろないねん
パンおいしいねん
ありまきねん
dive into pythonのpdf版とかHTML版のファイルが壊れているんだけど, どこかミラーサイトとかご存知ありませんか?
>>832 そうですか〜解凍に失敗するんですよね…
ううむ
別に普通に解凍できますが。
Windowsだったら統合アーカイバから最新DLL落として試してみたら? うちでも問題なし。
lhaplusでうまくいきませんでしたが,lhacaでうまくいきました. 荒らして申し訳ありませんでした.
ZIPファイルはPythonで展開しる!
ネタじゃないなら何をimportするかくらい…、調べたらそれらしいのマジであるのな。さすが世界標準zip。
import os, zipfile f = zipfile.ZipFile("diveintopython-pdf-5.4.zip") for path in f.namelist(): print path dname, fname = os.path.split(path) if not os.path.exists(dname): os.makedirs(dname) if fname: # i.e. not a directory open(path, "wb").write(f.read(path))
>>840 もすなるunzipといふものを、一行野郎もしてみむとてするなり。
python -c "import os,sys,zipfile;f=zipfile.ZipFile(sys.argv[1]);[(os.path.exists(d)or os.makedirs(d)is None)and open(os.path.join(d,b),'wb').write(f.read(d+'/'+b))for d,b in [os.path.split(p)for p in f.namelist()]if b]" diveintopython-pdf-5.4.zip
842 :
デフォルトの名無しさん :2006/02/25(土) 11:57:38
初心者ですが質問です。 常々疑問に思っていたのですが、メソッドのまえにアンダースコアを1つつけるのは どういう意味あいなのでしょうか。2つでないとプライベートにならないですよね。
機能的に特別な扱いはないよね。 書いた人の趣味というしかないかも。
モジュール内限定で使うユーティリティ的な関数があるけど,そのモジュールが import * されたときに呼び出し側の名前空間を汚したくない,といった要求に 応えるものかな
で、メソッドだとそんな効果はあったっけ?
>>847 プライベートなメソッドってこと?
class A:
def __spam(self):
print "SPAM"
a = A()
a.test()
は、ちゃんとエラーになるよ。
でも、a._A__spam()でアクセスできちゃうけど。
>>848 a.test() って a.__spam() の間違い?
あとアンスコ1個で開始のメソッドはなんもなし?
聞く前に試せよ。
アンダ―スコア1個はhelpに出なくなるよ
日本語ファイル名で格納されてるzipファイルをpythonで取り出してるけど、 デカいファイルはメモリが。 # つか、unzipにそのへんのパッチが存在する事は知ってはいるのだが。
チュートリアル読んでプログラム書いてみたりしてるんですが, 本当に使いこなせるようになるのだろうか…
PythonChalengeやると結構勉強になるかも。
>853が必要な事だけ勉強すれば良いと思うよ。 僕も今では普通に使うclassやlamda式やtupleは、最初はまったく使わなかった。 壁に当たってから調べるぐらいのペースで十分だよ。
>853 一緒にうまくなろうぜ。俺はbookmarks.htmlのコンバータを作るのを目的にしてるよ
かじった知識でとりあえず作る>新しい知識を得る>書き直す ってことを何度もやってる
858 :
853 :2006/02/28(火) 00:27:40
自分は、イテレータ、lispっぽいことができるリスト処理、 簡単に使えるネイティブスレッド、多重継承もシンプルにできるクラス・ モジュールシステムとか使いながらおぼえてくうちに、 なにこれ、すごい楽で便利じゃんって染まってしまった。 たとえばJAVAでも多重継承以外はほぼ同じことができるけど、 pythonみたいにやるAPIどこにあったっけとか探してる間に pythonのほうは書き終わっちゃうんだな。
>>859 機能並べるだけじゃなくて、実装レベルも大事だと思うよ。便利だけどね。
Python のネイティブスレッド対応は、以前はジャイアントロックするから使ってくれるな
的な事がマニュアルに書いてあって激しく萎えた覚えがある。
ジャイアントロックは Python 用語じゃなくて、一般的に マルチスレッドの粒度を話す時に使われる用語だよ。
863 :
853 :2006/02/28(火) 11:53:23
きみたち何語しゃべってるんですか
Japython
ジャンパーソンか!
ジャンパーソンか!
ジャンパーソンか!
やさしいPythonきぼんぬ
ツンデレPythonでも一生待ってろ
ぱいちんこ
ジャンパーソンか!
諸君 私はPythonが好きだ 諸君 私はPythonが好きだ 諸君 私はPythonが大好きだ CPythonが好きだ IronPythonが好きだ Jythonが好きだ MacPythonが好きだ PyPyが好きだ Python for .NETが好きだ SJIS版Pythonが好きだ Stackless Pythonが好きだ Vyperが好きだ 職場で 自宅で 研究で 開発で 趣味で 独学で 授業で 宿題で 客先で 徹夜で この地上で用いられるありとあらゆるPython言語が大好きだ 空白文字をならべたインデントの論理性がbegin/endと共に括弧を吹き飛ばすのが好きだ 偏見に満ちた多言語ユーザどもが可読性に魅せられて虜になった時など心がおどる 標準ライブラリを駆使した単純なスクリプトで難問を解決するのが好きだ 例外を起こしてスクリプトを止める障害をtry/except節で黙らせた時など胸がすくような気持ちだった
あらゆる機能をそろえた標準ライブラリの大海原に未知の機能を求めるのが好きだ 入門中の初心者がガイシュツの機能を何度も何度も再発見してハァハァしている様など感動すら覚える デコボコしていた言語機能が次々に整備されていく様などはもうたまらない 組込み型がクラスでないのは美しくないなどとあげつらっていた連中がかつての主張を過去形に直している様も最高だ 哀れな初心者達が市販の入門書を手にして健気にも勉強してきたのを lambdaスキーと内包表現スキーの一行野郎が「はじパイ」仕込みの達成感もろとも木端微塵に粉砕した時など絶頂すら覚える 百戦錬磨のGuidoパパに滅茶苦茶にされるのが好きだ 美徳のはずだった言語仕様が蹂躙され1.x以来の機能がdeprecatedになりobsoluteになっていく様はとてもとても悲しいものだ Pythonアプリの物量に押し潰されて殲滅されるのが好きだ 広大なソースツリーに迷い込みバグの様に地べたを這い回るのは倒錯の極みだ 諸君 私はPythonを、十徳ナイフの様なPythonを望んでいる 諸君 私に付き従う蛇使い諸君 君達は一体何を望んでいる? 至高のPythonを望むか? 情け容赦のない最強のPythonを望むか? 機能拡張の限りを尽くし数多のスクリプト言語を葬る悪魔の様なPythonを望むか? 『Python! Python! Python!』
よろしい ならばPythonだ
我々は渾身の力をこめて今まさに振り降ろさんとする握り拳だ
だがこの暗い闇の底で半世紀もの間堪え続けてきた我々にただのPythonではもはや足りない!!
大Pythonを!!
一心不乱の大Pythonを!!
我らはマ板のPythonスレ住人 千人に満たぬ人生の敗北者に過ぎない
だが諸君は一騎当千の古強者だと私は信仰している
ならば我らは諸君と私で総力100万と1人のPython軍団となる
我々を忘却の彼方へと追いやり眠りこけている連中を叩き起こそう
髪の毛をつかんで引きずり降ろし眼を開けさせ思い出させよう
連中にインデントの味を思い出させてやる
連中に我々のタブキーのタイプ音を思い出させてやる
天と地のはざまには奴らの哲学では思いもよらない事があることを思い出させてやる
一千人の人生の敗北者のPython軍団で
世界を萌やし尽くしてやる
「最後の敗北者スレ
>>1 より全Python軍団へ」
目標日本国47都道府県全域!!
Python 2.5 リリース間近 状況を報告せよ
なかなかいいね。 ところでちょっと前に勉強ネタが出てたが、 > あらゆる機能をそろえた標準ライブラリの大海原に未知の機能を求めるのが好きだ これで僕は勉強したな。Cで書いてある部分も増えてきたとは 言え、ほとんどの部分がpythonで書いてあるので、標準ライブラリを 解読するのと、言語仕様書読むだけでほとんど参考書いらずだった 気がする。まぁ、超詳しい先輩が両隣に座ってたってのもあるが。 (1.x時代に日本語のunicode処理のpatch作って送ってたらしいが‥‥‥)
このタイプのコピペをちゃんと最後まで読んだのは久しぶりだ。 ツボ多すぎて家族に怒られたじゃねえか…。 褒美として演算子使用禁止の緊縛プレイをお勧めする。 関数の有象無象に蹂躙され尽くしてくれい。そこにも萌えが。
877 :
842 :2006/03/01(水) 12:03:08
O'reilly の Python クイックリファレンスのクラスの説明で 「python 2.2 以降 "新しいクラス" が導入されました」、 とあります なんか __new__() とかが新しいっぽいんですが、どうも 意味がよく分かりません。 チュートリアルでも 2.2 以降の違いにはとくには触れていないみたいですよね。 英語でも良いので、 新しさの ココロ が分かりやすく説明されている資料って 何かありますでしょうか?
881 :
R :2006/03/02(木) 11:43:35
setがまだ使えないVersで、2つのlistの要素が等しいことを判定する方法として、 私はこんなのを考えましたが、もっといい方法があるでしょうか? if dict(zip(ls1,ls1)) == dict(zip(ls2,ls2)): 〜
IronPython (Beta3) を使用してみたのですが、 AvalonStartup がパス上に見つかりません。 デモでは何なくロードしてたのになぜでしょう? >>> from AvalonStartup import * Traceback (most recent call last): File , line 0, in input##793 ImportError: No module named AvalonStartup
python -i script ってやると script 実行終了後 インタプリタに落ちてくれますが、 python script ってやった場合にも 同じようにインタプリタに落ちてくれるように出来ますか? script 側の処理によってインタプリタに落ちるかどうかを 分たいんですが...
>>885 import code
code.interact()
>886 import code a=123 code.interact() (略) >>> print a Traceback (most recent call last): File "<console>", line 1, in ? NameError: name 'a' is not defined >>> code だと実行していた空間とは別になってしまうんですかね? python -i だと実行空間が見えるので 他のスレッドの実行状況とかを対話的に覗ける ところが良かったんです。
>>887 プロンプトが出たら最初に from __main__ import * って打ってもらうとか。
>>885 -i オプションを指定すると、C言語レベルでは Py_InteractiveFlag という
変数が真になるみたいだけど、この変数はインタプリタ側からは見えないっぽい。
C言語で拡張モジュールを書いたら参照できたけど、-i オプションなしの状態を
ありの状態に変えることはできないっぽい。-i オプションが指定されたかどうか、
だけなら知ることができますた。
>>881 >>> a = [[],[],[],[]]
>>> b = [[],[],[],[]]
>>> dict(zip(a,a))==dict(zip(b,b))
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: list objects are unhashable
>>>
>>883 Windows Vistaが出たら使える
>889 なるほど... 諦めがつきますた。
>>885 手抜きに
os.execv(sys.argv[0] ... hoge )
とか。正式な書式はしらんので調べてください。
リストの連結ではスライスは大括弧一つで書けるけど、インデックスは それ自体をまた大括弧でくくって二重にしないとならんのは気持ち悪い。 スライスはリストの構造を高い場所から見て指定してて、インデックスは 中に潜って中身を一つ一つ参照してるって風に次元が違うのか。納得できん。
>>887 code.interact(local=globals())
とすると名前空間を引き継げる
python workshopなるものが…
文字化け問題のチェックリストとかない? CGIでUnicode文字列をprintしたいんだけどどうしてもUnicodeEncodeErrorになる
2.4になってからはそんなに引っかかることなくなったと思うんだけど。 ここチェック: ・ファイルのエンコーディング指定 (ファイル先頭に "# -*- coding: euc-jp -*-" とか) ・文字列代入は strhoge = "日本語".decode("euc-jp") もしくは strhoge = u"日本語" ・外部から入力した文字列 strinput のエンコーディングが shift_jis なら、 hoge = strinput.decode("shift_jis") と明示的に書く ・print する際のエンコード指定: 例 strhoge.encode("utf-8") #utf-8エンコードで出力
JapaneseCodecsから2.4のCJKに変わって引っかかってたり…
901 :
898 :2006/03/03(金) 02:11:12
>>899 ご親切にありがとうございます。4番目の
>・print する際のエンコード指定: 例 strhoge.encode("utf-8") #utf-8エンコードで出力
でビンゴでした。
あとどうやら私はstr.encode()とstr.decode()の動作を逆に捕らえていたようです。。
902 :
898 :2006/03/03(金) 02:13:31
>>900 私の場合、逆のパターンでした。
手元の2.4からレンタルサーバーの2.3に変わったのですが、
微妙に勝手が違うような感じがしました。
903 :
R(881) :2006/03/03(金) 09:59:08
ls1=[1,2,3]でls2=[2,3,1]のような時、ls1!=ls2だけど中に入ってる要素を見ると同じです。これが見たいのです。
>>884 さらにls3=[1,1,2,3]も同じに見たいです。
setを使うとset(ls1)==set(ls2)でOKなのですが、業務で使っているPythonのVersionではまだ無いのです。
ありがとうございます。確認しました、確かに辞書のKeyに出来ない値に関してはこのままではダメでしたねぇ。
>>890
>>903 >>> def equal(s1, s2):
for e in s1:
if e not in s2:
return False
for e in s2:
if e not in s1:
return False
return True
>>> equal([1,2,3], [3,2,1])
True
>>> equal([1,2,3], [4,5,6])
False
>>> equal([1,2,3], [1,2,3,4])
False
>>>
905 :
R(881) :2006/03/03(金) 10:12:42
dict(zip([str((x,)) for x in ls1], ls1))で解決出来ました。
>>890 本来ならpickleかなにかを使うのかもしれませんが。。。
906 :
R(881) :2006/03/03(金) 10:19:42
ありがとうございます。
>>904 なにか上手い方法がないか探していたのですが、私のようなおかしなアイデアを使ってない点でその方法が結局、普通に上手い方法と言えるかも知れないですね。
と、言うかその方が絶対にいいですね。そうしますね。
比較する前に sorted() で順番を並べ直す。 unix の uniq 相当のも何かなかったっけ? ってやれば == で比較できそう。
python のソースコードを color highlight つきで 印刷したい時って普段どうされていますか? unix では % enscript -G -U2 --color -o- --highlight=python hoge.py | psnup -2 | lpr みたいな感じでやってます。 * もっと綺麗な・便利な・見易いツールあります? * Windows 環境だと何がお勧め?
>>908 俺は a2ps --prolog=color foo.py とかやってる。
a2ps 自体に psnup 相当の機能がある。
911 :
デフォルトの名無しさん :2006/03/03(金) 18:37:13
PythonのWindowsでの使い方を教えてください。 pathextに.pyを追加して .plをCygwinのpython.exeに関連付けました。 で、hello.pyといったファイルを作ってcmdを起動して hello と入れると問題なく起動しますが hello arg と引数を渡すと引数を認識してくれません。 python.exe hello.py arg とすると引数を認識してくれます。 出来れば hello arg のまま起動したいのですがどうやって関連付けるのが正しいんでしょうか?
>>911 フォルダオプションの関連付け設定で
"C:\Python24\python.exe" "%1" %*
みたいに %* をつけてあげれば
hello.py arg
でも arg を認識すると思うけど
インタプリタのあるフォルダのスクリプト読み込むだけならimport使おうがexecfile使おうが書き方違うだけで同じだな。
最近Tkinterの勉強をはじめたんだけど、この手のGUIアプリを 起動しようとして、*.pyファイルをダブルクリックすると毎回DOS窓も 一緒に表示されてとても邪魔。何かいい方法ある?
.pywにしてみれ
917 :
915 :2006/03/03(金) 22:05:09
>>916 即レス&サンクス!
こんなに簡単だっとは・・・orz
pythonスレの過去ログ検索がでてたね。 なにを検索すればいいか、さっぱり思いつかないけど。
外部アプリ、たとえば電卓(calc.exe)を起動したい場合、どうすればいいのですか?
920 :
↑ :2006/03/05(日) 09:54:00
ごめんなさい。すぐ自己解決しました。 os.system('calc.exe')
import Python
>>> import Python Traceback (most recent call last): File "<pyshell#0>", line 1, in -toplevel- import Python ImportError: No module named Python
import orz, please print orz, please
>>> import orz, plese Traceback (most recent call last): File "<pyshell#2>", line 1, in -toplevel- import orz, plese ImportError: No module named orz >>> print orz, plese Traceback (most recent call last): File "<pyshell#3>", line 1, in -toplevel- print orz, plese NameError: name 'orz' is not defined
timport bydoc
zabuton itimai
>>918 確かに、作ってみたものの、私もあまり使っていません。
オフィシャルドキュメント検索のほうは、
かなり便利に使っています。
>>> print 0.0000001 1e-007 上のような工学的表記ではなく、普通に0.0000001を表示 させたいのですが、どうすればいいのでしょうか?
>>928 print "%.8f" % 0.0000001
精度に注意
>>929 素早いレス、ありがとうございます。助かりました。
stan's python editorの解説/紹介サイト(できれば日本語)を ご存知ならば教えていただけませんか
lヽ ノ l l l l ヽ ヽ )'ーーノ( | | | 、 / l| l ハヽ |ー‐''"l /. S | | |/| ハ / / ,/ /|ノ /l / l l l| l S ヽ l ・ i´ | ヽ、| |r|| | //--‐'" `'メ、_lノ| ./ ・ / |. P l トー-トヽ| |ノ ''"´` rー-/// | P | | ・ |/ | l ||、 ''""" j ""''/ | |ヽl ・ | |. E | | l | ヽ, ― / | | l. E | | !! | / | | | ` ー-‐ ' ´|| ,ノ| | | !! | ノー‐---、,| / │l、l |レ' ,ノノ ノハ、_ノヽ / / ノ⌒ヾ、 ヽ ノハ, | ,/ ,イーf'´ /´ \ | ,/´ |ヽl | /-ト、| ┼―- 、_ヽメr' , -=l''"ハ | l ,/ | ヽ \ _,ノーf' ´ ノノ ヽ | | 、_ _ ‐''l `ー‐―''" ⌒'ー--‐'´`ヽ、_ _,ノ ノ  ̄ ̄ | /  ̄
perlばっか使ってるんですけどpythonも使いたいです。 perlと比較してpythonはどういう点が優れてたり 劣っていたりするのですか?
Python は データ・変数・関数の扱いがわかりやすい C と連携させやすい ↑がPerlよりいいと思うよ
でもまあPerlの達人は 複雑なデータ構造になっても$と@と&を間違えずに書けるだろうし PerlのC拡張を書いたりできるだろうから pythonが優位ってわけでもないかもな
初心者向けによくいわれることは、 長所 ・コードが読みやすく書きやすい 短所 ・日本ではマイナーで、本・サイトが少ない(入門向けなら十分だと思う) perlだと、だいたい思った通りに実行されるけど、思った通りでない場合にハマってしまうことが多い。 簡単なところだと、変数と、要素が一個だけのリストの区別が曖昧だったりする。 pythonは比較的厳格なので理論的に書けば思ったように動作する。
長所:A型と相性いい。 短所:B型と相性悪い。
優れている点:インデント 劣っている点:その他全部と、人によりインデント 好印象な点:作者がアニオタじゃないところ 悪印象な点:あまりないが、人により作者がアニオタじゃないところ
長所:LISPっぽい構文とJavaっぽい構文が混じっててきもい 短所:OOっぽい構文と、関数型っぽい構文が混じっててきもい でもPerlよりはきもくない。
便乗質問です. 最近,「Javaでなぜつくるのか」を読みました. 大学ではPythonで実験データ処理をしていたのですが, 本書を読んでも,Javaとの違いがいまいちわかりません. Javaの特徴といえる, ・コンポーネントの再利用 ・オブジェクト指向 ・マルチプラットフォーム に関して,Pythonとの違いがあれば教えてください.
>>933 何ゆえPythonを使いたいとオモタの?
javaってコンパイル要るよね
>>941 その3項目で比較してもねぇ・・・
JavaはPythonなどのスクリプト言語と比べて構文的にも意味論的にも大規模向けってのが一般論か。
裏返せばJavaは全体的に書くのが面倒くさい。
マジメに答える気があるようで、やっぱ無いだろ。 短所:IDEでコンプリートするのが面倒なんだよpythonって。
pythonを使い続ける特典:科学技術系マクロに困らない。Googleに入社できるかもしれない。 pythonを使い続ける弊害:"}"や";"を忘れる。
出たGooglewwwwwwwwwwwwwww
華麗にスルー
久々の撒餌で盛り上がったけど毎度のネタでそろそろ飽きてきた…
Pythonはあとからソース見ても 何をやってるかperlよりも分かりやすいんじゃない みつを
微妙にスレ違いかもしれないけれど、 djbdnsとかqmailで有名な前野さんのページって所属と一緒にアドレス変わりましたか? 彼のpython関係のページを見たいのだけれど。 新しいアドレスご存知の方あったら教えてください。
RubyだかPerlだと文が値を持つので def max(a,b) if a>b then a else b end end と書けるとか誇られちゃったりしてる記述がありますが、 def max(a,b): if a > b: return a else: return b で何か不都合とかあるのでしょうか? Pythonだけしか知らないと「式」も「文」も区別が付かないので 余計謎が深まります(「式」=「戻り値のある文」って説明になってないよぉ)。
式だけでは論理的には部品に過ぎない。 文となって初めてプログラムと呼べる。
>>952 言いたいこととはズレるけど
def MAX(a, b):
return (a>b and a) or b
で出来たよ
式だと a = if n > 0 then "big" else "little" end とか a = case n when 0 "zero" when 1, 3 "odd" when 2, 4 "even" end と書けるのが少し嬉しい
>>954 その使いかたは危険。
(0 > -1) and 0 or -1 => -1
そろそろ演算子の優劣とかがワケワカになってきた 従来の内包表記ですでに結構微妙 自分で書く分にはカッコを補ったりしてるけど…
and と or の短絡をそのままCの三項演算子みたいに使うと危ないんだよな if cond then expr1 else expr2 みたいのは (cond and (expr1, ) or (expr2, ))[0] だっけ?
これ以上短くしようとすると構文が歪むだけだから無理しなくていいよ
lightson.dip.jp/zope/ZWiki/006_e3_82_b3_e3_83_a1_e3_83_b3_e3_83_88 にあるコメントなんですけど, """と"""で囲まれた部分って複数行にわたるストリングスではないのですか? 関数部分にあるのは関数のdocstringですよね
学級新聞の内容に突っ込んでも仕方ないだろ。
ML で御大二人が熱くなってるけど… ym さんの言っていることを否定してまで 反論する理由は何もないと思うんだけどな。
どこのMLかもわからん
Python-ml-jp 3491 以降くらい
M L で や れ こ の ヘ タ レ が
! // | !/ / / /\ ', ヽ V │ // | / //| / _ヽ l | j| │ /.| |l ア メ / / /´ `、| ∨ ', //| |! / ‐ 、 ´ ! ´__ l| | ヽ/ | |,、‐'' "丶´ '´ ̄`ヾ| | / /| | | | { |/| | i │ ハ ∧ !l | | _ / | ヽ あらあら、うふふ♪ / : :V│ |  ̄‐´ /| l \ 〉 /::: : /´ | |> 、 ,.ィl: : l ,' ヽ /'"´ _\ | | : : : |` - 、 _,. ´ |l: / /\ / レ '´ ヽ! |ヽ: : :| V / \>
>>963 ちゃんと読んでないけど、
ymたんは「LANGの設定=OS全体のグローバルな設定」と短絡してる希ガス。
ムネオたんの解説は(問題の解としての好き嫌いは別にして)正しい。
,..-一-、 . |o |_ || || r――― .| ヽ r,===、. ll ll ==== ll''~~ヾ ,,.===.、 r,==.、 ( r―-一' ) .ll. ll || || || ll || || || ll || ヽ_| ____.ノ .ll、___,ll || || ||. ll ll ヾ_ , リ ll ll | o| ll`~~~ ``==ll ``= ~ ~ ~~~ ヽ__ノ ll =''~ iilll|||||||llllii
>>968 >ちゃんと読んでないけど、
>ymたんは「LANGの設定=OS全体のグローバルな設定」と短絡してる希ガス。
>ムネオたんの解説は(問題の解としての好き嫌いは別にして)正しい。
LANG=en_US.UTF-8 python だけでいいのなら、environment.plistで端末デフォルトを変更させようとする方がアレだと思うけどなぁ。
質問者が一番大人という滑稽さ
"この場合の" 解決策 "一番タイプ数の少ない" 解決策 "応用範囲の広い" 解決策 "今後の未来世界においてあるべき" 解決策 いろいろあるし弊害とかも理解しようよってのが本筋だと思う "xxが正しい" って言っちゃうのはちょっとイタイ... (投稿すると詳しく丁寧に教えてくださるので感謝・尊敬はしています。 あくまで今回の件に関しての感想ね)
ソースコード(test.py)を実行するときにはPythonシェル上では >>> import test 以外に何がありますか?
execfileとか、os.systemとか
名前空間汚れるような気がするからexecfileのが好きだが、ゴミ.pywできるんで20点減点
てめー!!インデントむちゃくちゃなもん貼るなっつーのつーの!!
皆最初は失敗するものさ
>>> import test >>> del test
print strhoge.encode('xxx-xx') するのは旧式なやり方、 というのがようワカランかった。 なんでこの書き方は古いって言われるの? OSや環境に左右されない確実な方法だと思って漏れは愛用していたんだが。
ムネオタン、永田議員みたいにはりきってたのに、あっさり足元すくわれてカワイソス (´・ω・)
>>969 皆ほめてくれないけど、頑張ったんだよね。よしよし…。
少なくともMac OS Xでは鈴木さんのやり方が一番まとも
OSXでLANG設定したらTeXの出力がみんな化けるようになった。
いやどっちが正しいとかいう話じゃなくて目的によって 分かれる話なんですよ。 ただ、"こうあるべき"っていう話は度がすぎると 押し付けがましくなっちゃうっていうわけで、 エロい方には珍しいパターンの展開だったなぁっていうだけだと思う。 そろそろ次スレかな
LANG=ja_JP.eucJP pythonで、、、 >>> print u'あいう' あいう >>> import sys >>> sys.stdout.write(u'あいう') Traceback (most recent call last): File "<stdin>", line 1, in ? UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128) 糞だなこの仕様。
perlのunicode対応よりまし
>>982 えー? [Python-ml-jp 3502]によれば標準出力をファイルにリダイレクトしたら
エラーになっちゃうんでしょ?それがまとも?
>>> import codecs, sys >>> Writer = codecs.getwriter("euc-jp") >>> sys.stdout = Writer(sys.__stdout__) >>> sys.stdout.write(u'あいう\n') あいう >>> print u'あいう' あいう >>>
ローマ字表記最強
早く寝なさい
だから全部現代英語にしちまえばいいんだよbyアイザック=アシモフ
他のMLの話、超うざい。読んでない奴だって居るんだ。そっちでやれ。
日本語じゃなくても Unicodeではまったことがあった。 データベースにSQL渡す時に「SQLは string type にしろ!」ってエラーが出た。 どう見ても文字列なのにどういうこっちゃって調べたら スクリプト内に書いたSQL文が Unicode Typeになってるのが原因だった。 それで結局 str関数で変換したら通るようになった。
>>> u'じゃあ次スレは0からを使いきりでよろしく' u'¥u3058¥u3083¥u3042¥u6b21¥u30b9¥u30ec¥u306f¥uff10¥u304b¥u3089¥u4f7f¥u3044¥u304d¥u308a¥u3067¥u3088¥u308d¥u3057¥u304f'
print "44Ki44OD44OB44On44Oz44OW44Oq44Kx".decode("base64").decode("utf-8")
>>> print "44Ki44OD44OB44On44Oz44OW44Oq44Kx".decode("base64").decode("utf-8") Traceback (most recent call last): File "<stdin>", line 1, in ? UnicodeError: ASCII encoding error: ordinal not in range(128)
u'\uff9c\uff9b\uff80'
999 :
☆次スレ☆ :2006/03/10(金) 13:20:01
たぷるタソ (;´Д`) ハァハァ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。