テンプレを多少改変しました。あと色々あるのでしょうが python.jp と書籍へのリンクは日本語ドキュメントをのぞいて省きました。 文句とかテンプレ改良とか次スレに向けてぼちぼちやっていきましょう。
// / / パカッ //⌒)∩__∩ /.| .| ノ ヽ / | | ● ● | / | 彡 ( _●_) ミ まピョーん☆ / | ヽ |∪| /_ // │ ヽノ \/ " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
2.5.2 on FreeBSD環境です 5つの値を任意に変えられる関数は、なんでしょうか? import sys print sys.getfilesystemencoding() print sys.stdin.encoding print sys.stdout.encoding print sys.stderr.encoding print sys.getdefaultencoding() 実行結果 US-ASCII US-ASCII US-ASCII US-ASCII ascii
>> sys.getfilesystemencoding()
プラットフォームと言語に依存しているはずで通常は変更する必要はない
>> sys.stdin.encoding
>> sys.stdout.encoding
>> sys.stderr.encoding
環境依存でPythonランタイムや埋め込んでいるアプリケーションが用意する。stdin/stdout/stderrは上書きできる
>> sys.getdefaultencoding()
sitecustomize.py で sys.setdefaultencoding()
できれば
>>3 の後ろ2つも参照してくれ
× できれば
>>3 の後ろ2つも参照してくれ
○ できれば
>>2 の後ろ2つも参照してくれ
9 :
デフォルトの名無しさん :2009/01/16(金) 16:45:09
日本語のエンコードについて教えてください。 お願いします。
>>7 ,8
うーん
>>7 > >> sys.stdin.encoding
> >> sys.stdout.encoding
> >> sys.stderr.encoding
> 環境依存でPythonランタイムや埋め込んでいるアプリケーションが用意する。stdin/stdout/stderrは上書きできる
具体的な例文を書いてもらえませんか?
ググっても、例文が出てこなくて、困っています
とりあえず、sitecustomize.pyに下のを書いてみた
軽く試したところ、思うように動作するので、この設定で騙し騙しやってみようと思います
reがちゃんと動くのか、まだ試してないけど・・・
from encodings import aliases
aliases.aliases['us_ascii'] = 'euc_jp'
import sys
sys.setdefaultencoding('euc_jp')
if x == undefined: x = "Foo" みたいなことがしたいんですがどうすればいいですか? x = x or "Foo" x or x = "Foo" x = x if x else "Foo" if not x: x = "Foo" if x != None: x = "Foo" どれもダメでした LLって難しい…
>>> vars().has_key('hoge') False >>> hoge=4 >>> vars().has_key('hoge') True
13 :
デフォルトの名無しさん :2009/01/16(金) 21:05:52
14 :
デフォルトの名無しさん :2009/01/16(金) 22:05:10
ユニコード相当の8ビット文字列とユニコード文字列はなぜ別に扱われるのですか。
>>16 VirtualBoxでもUbuntuのイメージが用意されてるよ。
VMWareより、VirtualBoxの方がデスクトップ弄ってる時は素直に動いてくれる。
>>17 そうだね
VirtualBoxは、サクサク動作でいいよね
いや、それがVMWareもかなりすんなり使えて、ビックリしている
VMwareのバージョンは、1年前ぐらいのヤツなんだけどなあ
Cent OSとか、いろいろ試したときにこんな機能あったっけかな・・・
プログラミングとあんまり関係ないけど、サウンド関係とかも使えるのが好きなんだよなあ
動作は、ちょっともっさりだけど、触り慣れているVMWareにします
Ubuntuは馬鹿用だからなぁ
coLinuxとかandLinuxが高速
すれち
希望の動作した
常駐させるならcoLinuxだな。
∫x/x-1 dx t=x-1とし ∴x=t+1 また dt=dx ∫t+1/t dt =∫1+(1/t) dt =t + log|t| =x-1 + log(x-1) 正答は最初に部分分数分解してx + log(x-1)ですが 上記の場合なにが違ってるんでしょうか?
誤爆乙
誤爆じゃありませんが。 何が違っているんでしょうか。
積分定数
答えが出せないってことは、Pythonスレの人のレベルが相当低いんですねえ。 ありがとうございました。
正しい板に質問を投げることができない奴が来るくらい低いな。
>>28 が答えだということも分からないくらいレベルが低いようだな。
最近、本当に知りたくて質問してる人の割合が低すぎる気が
>>25 =∫1+(1/t) dt
=t + log|t| + C
=x-1 + log(x-1) + C
=x + log(x-1) + C
34 :
デフォルトの名無しさん :2009/01/18(日) 22:08:28
『Pythonで学ぶ大学数学』って本があったら面白そうと思ってしまった。
英語だったら、ありそうだね
36 :
デフォルトの名無しさん :2009/01/18(日) 23:31:50
スクリプトファイルとモジュールの違いは何ですか? 教えてください。
Pythonでは同じ扱いです 関数も何も定義せず、 べた書きしてたらモジュールにはなりえない (オブジェクトへのリファレンスは除く)
Pythonでtestfirstコード書くのに標準的なのはありますか
ちょっといいですか
41 :
デフォルトの名無しさん :2009/01/19(月) 18:22:23
>>1 の和訳チュートリヤルに嘘ばっかり書いてあるな
print 'Hello, world!'
ってやってもエラーになる
嘘ばっかだなと思って
英語のほうを見たら
print ('Hello, world!')
って書いてあったので
そのとおりやったらできた。
>>1はうそつき超汚染人だ!
3.0乙
そりゃまあ 2.X 用のチュートリアルだからな
>>41 チュートリアルにprint 'Hello, world!'なんて書かせる項目なんてなかったと思うが
というか、普通にprint 'Hello, world!'で通るだろ
あと嘘ばっかりについてkwsk上げてもらおうか
46 :
デフォルトの名無しさん :2009/01/19(月) 18:39:03
47 :
デフォルトの名無しさん :2009/01/19(月) 18:40:37
48 :
デフォルトの名無しさん :2009/01/19(月) 19:00:01
2.xでprint文を使うとして、一応、3.0のことも考えて L = ('spam',('pypy','thth')) print(L) と書いたほうがいいの?
50 :
デフォルトの名無しさん :2009/01/19(月) 19:12:44
def print(hoge): print hoge
2to3で変換できるからそのままでいいと思うが、 2.6なら from __future__ import print_function してもよい
print_function 使ってる場合 2to3で変換されますか
騙り多すぎだなこの板。
56 :
デフォルトの名無しさん :2009/01/20(火) 12:15:52
http://webpy.org/cookbook/forms ここのサンプルの f = register_form() の意味が分かりません.
一般に class A のインスタンス a を呼び出す a() と
Python ではどんな意味があるのでしょうか?
インスタンスのアドレス(参照というかハンドルのIDみたいなもの?)は
変わっているようです.ということはクローンが得られてるのでしょうか?
C++ のように operator() をオーバーロードして
ファンクタになっているということなのでしょうか?
57 :
デフォルトの名無しさん :2009/01/20(火) 12:19:28
すんまそん、パッケージのソースながめたら def __call__(self, x=None): o = copy.deepcopy(self) if x: o.validates(x) return o って書いてありました。子ね俺。
You should not die.
59 :
デフォルトの名無しさん :2009/01/20(火) 16:48:25
importってなんなの?しぬの?
importanceの略です
impotenceですねわかります
3文字の総当り chars = 'abcdefg' for char1 in chars: for char2 in chars: for char3 in chars: word = char1+char2+char3 print word これを word_list = create_word_list(3, 'abcdefg') word_list = create_word_list(4, 'hijklmnop') のような感じで好きな長さで生成する関数「create_word_list」をどうかきますか? 知恵を貸してください。よろしくおねがいします。
2.6/3.0ならitertools.combinations
http://www.usamimi.info/~mirrorhenkan/2ch/python/prog1/read.php/1126073956/ ここの187-193で拾った
>>> def combi(a, b):
... if isinstance(a[0], tuple):
... return [x + (y,) for x in a for y in b]
... else:
... return [(x, y) for x in a for y in b]
...
>>> def combination(*l):
... return reduce(combi, l)
...
>>> def create_word_list(n, s):
... l=[xrange(len(s)) for i in xrange(n)]
... c=combination(*l)
... return [''.join([s[i] for i in t]) for t in c]
...
>>> create_word_list(2, 'abc')
['aa', 'ab', 'ac', 'ba', 'bb', 'bc', 'ca', 'cb', 'cc']
>>> create_word_list(3, 'abcd')
['aaa', 'aab', 'aac', 'aad', 'aba', 'abb', 'abc', 'abd',
'aca', 'acb', 'acc', 'acd', 'ada', 'adb', 'adc', 'add',
'baa', 'bab', 'bac', 'bad', 'bba', 'bbb', 'bbc', 'bbd',
'bca', 'bcb', 'bcc', 'bcd', 'bda', 'bdb', 'bdc', 'bdd',
'caa', 'cab', 'cac', 'cad', 'cba', 'cbb', 'cbc', 'cbd',
'cca', 'ccb', 'ccc', 'ccd', 'cda', 'cdb', 'cdc', 'cdd',
'daa', 'dab', 'dac', 'dad', 'dba', 'dbb', 'dbc', 'dbd',
'dca', 'dcb', 'dcc', 'dcd', 'dda', 'ddb', 'ddc', 'ddd']
65 :
62 :2009/01/21(水) 00:22:26
>>63 ごめんなさい、バージョン思いっきり忘れてました。2.5を使用してます。
>>64 すごすぎます。
内容がまったく理解できてないけど、実現できました。
ありがとうございます!
66 :
デフォルトの名無しさん :2009/01/21(水) 08:04:39
あるクラス変数が定義されているかどうかを調べるのって どうすればいいのでしょうか? __init__ の中で、あるクラス変数が定義されていなければ そこで定義する、既に定義されていたらなにもしない、 という挙動をしたいと思っています。 「定義」という言葉が適切かどうかわかりませんが・・
67 :
デフォルトの名無しさん :2009/01/21(水) 08:47:58
>>> class a: ... hoge=2 ... def __init__(self): ... print a.__dict__.has_key('hoge') ... print a.__dict__.has_key('fuga') ... >>> class a: ... hoge=2 ... def __init__(self): ... fuga=3 ... print a.__dict__.has_key('hoge') ... print a.__dict__.has_key('fuga') ... print a.__dict__.has_key('hage') ... >>> b=a() True False False
69 :
デフォルトの名無しさん :2009/01/21(水) 09:02:33
>>> class a: ... hoge=2 ... def __init__(self): ... fuga=3 ... self.hage=4 ... print a.__dict__.has_key('hoge') ... print a.__dict__.has_key('fuga') ... print a.__dict__.has_key('hage') ... print a.__dict__.has_key('moge') ... print self.__dict__.has_key('hoge') ... print self.__dict__.has_key('fuga') ... print self.__dict__.has_key('hage') ... print self.__dict__.has_key('moge') ... print self.__class__.__dict__.has_key('hoge') ... print self.__class__.__dict__.has_key('fuga') ... print self.__class__.__dict__.has_key('hage') ... print self.__class__.__dict__.has_key('moge') ... >>> b=a() True False False False False False True False True False False False
has_keyはもうやめよーぜ
>>> l=['hoge','fuga','hage','moge'] >>> class a: ... hoge=2 ... def __init__(self): ... fuga=3 ... self.hage=4 ... print [k in a.__dict__ for k in l] ... print [k in self.__dict__ for k in l] ... print [k in self.__class__.__dict__ for k in l] ... >>> b=a() [True, False, False, False] [False, False, True, False] [True, False, False, False] こうですか?
72 :
デフォルトの名無しさん :2009/01/21(水) 10:10:22
>>> l=['hoge','fuga','hage','moge'] >>> class a: ... hoge=2 ... def __init__(self): ... fuga=3 ... self.hage=4 ... print [k in a.__dict__ for k in l] ... print [k in self.__dict__ for k in l] ... print [k in self.__class__.__dict__ for k in l] ... print [k in vars() for k in l] ... >>> b=a() [True, False, False, False] [False, False, True, False] [True, False, False, False] [False, True, False, False] >>> 'fuga' in vars() False fugaは何処へ消えたんだろうと思った俺アフォ杉orz
>>> [hasattr(a, k) for k in l] [True, False, False, False] >>> [hasattr(b, k) for k in l] [True, False, True, False]
なんかみんなすごいねw その遊びについていけね
>>65 spamメールのアドレス生成とか
パスワードクラッキングとかに
使われそうですねだめですよ
ただの組み合わせ演算のコードだろ。 素因数分解のコードの質問でもしたら「RSAの解読に使われそうですね」 とか言うのか?w
そうですね RSAはあと2年もたないと言われていますが
>>77 > RSAはあと2年もたないと言われていますが
ソース。てか何ビットのRSA?
2010問題のこと?
80 :
◆UNKOVIP9RM :2009/01/22(木) 14:32:44
RSAのソース出してみろよこら md5と勘違いしてね?
81 :
◆UNKOVIP9RM :2009/01/22(木) 14:43:21
82 :
◆UNKOVIP9RM :2009/01/22(木) 14:44:49
83 :
◆UNKOVIP9RM :2009/01/22(木) 14:45:53
84 :
◆UNKOVIP9RM :2009/01/22(木) 14:48:04
Python/Tkでソースの間違いを見つけられないのですが、 探してもらってもいいですか?
86 :
◆UNKOVIP9RM :2009/01/22(木) 16:59:17
うんこ食わせろ
”” ””  ̄  ̄ ,,
88 :
デフォルトの名無しさん :2009/01/23(金) 18:29:44
辞書やリストを str() で文字列として表示させるとき (あるいは print 「文」で表示するとき) 文字列をシングルクォートではなくダブルクォートで 囲ませる方法ってありませんか? そういう出力をするように __str__() を再定義 するしかないものでしょうか?
>>> s={'abc':'def','ghi':['jkl','mno'],"pqr":["stu"],"vwx":"yz"} >>> s {'pqr': ['stu'], 'abc': 'def', 'vwx': 'yz', 'ghi': ['jkl', 'mno']} >>> import json >>> json.write(s) '{"pqr":["stu"],"abc":"def","vwx":"yz","ghi":["jkl","mno"]}'
90 :
デフォルトの名無しさん :2009/01/23(金) 18:56:43
ううむ,json っすか. import json となると 2.6 系にしなきゃだめか・・・ 検討してみます.ありがとうございました.
93 :
デフォルトの名無しさん :2009/01/23(金) 21:42:52
みんなのpythonを読んだあと、 次に何を読んだらいいですか? 中級ぐらいの参考書ってありますか?
実技
あの、みんなのpythonに書かれている標準ライブラリってそれを利用するのに必要な基礎知識がなかったとしても必ず覚えるべきなんでしょうか。 もしその作業が後回しにしてもとりあえずは支障のない程度のものであるのでしたら標準ライブラリについての勉強を後回しにして他の勉強を始めたいのですけれども
いちいち覚える必要ねえよそんなもん 必要に応じてリファレンスマニュアル見て使えりゃ十分だろ
有難う御座います。気が晴れました
100 :
デフォルトの名無しさん :2009/01/23(金) 23:52:50
setuptools でスクリプトとして a.py を指定してしまうと easy_install で /usr/bin/ 直下に a.py がコピーされて, アンインストールしたい時に困りませんか? easy_install ってアンインストールの機能は 提供してくれていませんよね?
101 :
デフォルトの名無しさん :2009/01/24(土) 00:36:41
easy_uninstall
>>97 覚える必要ないけどライブラリリファレンスのインデックスだけでも
目を通しておくと後で損しないかも
何故以下のプログラムでabcdと並ばないのか教えてください import Tkinter as Tk class unko: def __init__(self): self.root = Tk.Tk() frame = Tk.Frame(self.root) l = Tk.Label(frame, text="a ") l.grid(row=0, column=0, stick=Tk.N+Tk.E+Tk.S+Tk.W) l = Tk.Label(frame, text="b ") l.grid(row=1, column=0, stick=Tk.N+Tk.E+Tk.S+Tk.W) login_button = Tk.Button(text="c") login_button.grid(row=2, columnspan=2, stick=Tk.N+Tk.E+Tk.S+Tk.W) l = Tk.Label(frame, text="d ") l.grid(row=3, column=0, stick=Tk.N+Tk.E+Tk.S+Tk.W) frame.grid(row=1, padx=2, pady=2, stick=Tk.N+Tk.E+Tk.S+Tk.W) def main(self): self.root.mainloop() if __name__ == "__main__": unko().main()
>>103 login_button = Tk.Button(text="c")
↓
login_button = Tk.Button(frame, text="c")
0.txt 、 1.txt 、 2.txt ・・・ x.txt というテキストファイルを新規に作ってそこに何か書き込みたいんですけど、どうしたらいいでしょうか? 0〜xまで open('0.txt','w+') open('1.txt','w+') open('2.txt','w+') ... って書き込むのは避けたいんです
[open("%d.txt" % i, 'w+') for i in range(x)]
107 :
デフォルトの名無しさん :2009/01/24(土) 08:49:33
文字列に簡易的なスクランブルをかけるライブラリーってありますか? 本格的なものでなくてかまわないのですが。 自分のデスクトップ検索に不用意に引っ掛からないようにしたいだけなので。 単純にbase64でも掛けておけとも考えたのですがもう少し冗長度を下げたいです。
>数学的思考法 1 答えはあるので、問題の条件を吟味して、解法を見抜いてしまう 2 大抵は厨房の幾何問題で解けてしまう 3 答え合わせをする >数学者的思考法 1 たいていは答えがでないほうがおおい 2 くりかえされた手法はあっさりすてる 3 べつのみかたで問題をたてなおす
>>107 英数字のみならrot13とか
日本語文字混じるならurllib.quoteとか
かとるみてえかべ並らかぎみ
114 :
デフォルトの名無しさん :2009/01/24(土) 23:33:24
文字の境界を判別する処理ってどのように作りますか?
もうちょっと曖昧でない表現を頼む
文字/の/境界/を/判別/する/処理/ってどのように/作/りますか/? もうちょっと/曖昧/でない/表現/を/頼/む ということ それとも 文字の/境界を/判別する/処理って/どのように/作り/ます/か/? もうちょっと/曖昧でない/表現を/頼む ということ
MeCab
119 :
デフォルトの名無しさん :2009/01/25(日) 01:20:39
>>115 エンコードされた日本語の文字の処理です。
文字列を分割したり置換するときに文字の境界を適切に判別しないと文字化け
が起こると聞いたので詳しく知りたいです。
>>119 Ruby/Perl/PHPはそうらしいけどPythonは2.5以降なら大丈夫
Pythonの内部使用文字リテラルをUnicodeにするっていう 移行手順は比較的すんなりいったけど、↑の三言語はけっこうめんどくさい
そんなわけない。特にRubyは利用者のことを考えた スムーズな移行方法をとってる。pythonより上。
124 :
デフォルトの名無しさん :2009/01/25(日) 17:24:21
kwsk plz
125 :
デフォルトの名無しさん :2009/01/25(日) 18:14:01
てーか、CSI(Code Set Independent)を墨守してI18N化したLLってRuby以外にあるのか?
Python3
CSIってBSDのCitrusとかでやってる奴だよな PerlやPythonはUCSベースだからCSIではないっしょ
内部コードとして特定の文字コードが仮定できないと 現実的には不便極まりないように思えるが……
130 :
デフォルトの名無しさん :2009/01/25(日) 19:58:28
Ruby厨ってどうしてこんなに気持ち悪いの・・・
python厨のが気持ち悪いよ。日本で使ってる人いないのになんでつかうの
Rubyでもshebangのあとに # -*- coding: utf-8 -*- 書いてるコード見るけど 書いた方が良いというか書くべきなんだよね?
133 :
デフォルトの名無しさん :2009/01/25(日) 20:10:50
内部使用文字リテラルとは無関係
誰か日本語処理の比較して php5,perl6,python3,ruby1.9
>>104 遅くなりましたがどうもありがとうございました。
136 :
デフォルトの名無しさん :2009/01/26(月) 00:06:05
データの性質によって処理の内容を変える仕組みとは具体的にどういうことですか?
137 :
デフォルトの名無しさん :2009/01/26(月) 00:43:16
3 + 6 -> 9 'A'+'B' -> 'AB'
お勧めのOSを教えてください
FreeBSD
>>139 はあ?あなたもしかしてRuby厨ですか?
すまん Rubyスレと間違えたw
PythonのUnicode文字列は、UTF-16とUTF-32の2種類あるよ。 UTF-32は、1 code point = 1文字 になってるけど、UTF-16だと サロゲートペアのときに 2 code point = 1文字 になるから注意が必要。 この問題は、Windowsの〜W系APIとか、Javaや.NETの文字列も 同じ問題を抱えている。 というか、Windowsの〜W系APIとの親和性や、Javaや.NETでの 効率を考えて、UTF-16を許可しているという面もある。
「2種類ある」というのは、Pythonをビルドするときの設定で選べるって事ね。 Pythonを使うときに2種類から選べるわけではない。
sys.maxunicode UCS-2かUCS-4かがわかる
しかし、なんでUnicodeみたいな糞仕様作ったんだろうな。
その前の仕様がShiftJISみたいなクソ仕様とかEUCみたいな 日本語と中国語の区別がつかない仕様とかISO-2022みたいな 無闇に拡張性ばかりある仕様とかそんなのばかりだったから
無理だって言ってるのに 2バイト固定長の文字コードにしようとしたから。
Rubyだけだよなあ、安全に文字コード扱える言語は。
もう20年も経ったんだからそろそろ見直すべき
150 :
デフォルトの名無しさん :2009/01/26(月) 16:02:44
YEN SIGN問題 Shift_JISではJIS X 0201における円記号 "\" が0x5Cに置かれている。 これをUnicodeのマッピングに合わせるとYEN SIGN (U+00A5) にマップされる。 しかし、0x5CはASCIIではバックスラッシュ "\" に相当し、 C言語などのエスケープシーケンスに使われる事から、 この文字のコードを変更すると問題が起きる。 そのためUnicodeを利用するアプリケーションはU+007F以下のコードに関しては 移動させないという暗黙のルールができている。 そうなると、Unicode環境では円記号がバックスラッシュの表示に 変わってしまうように思われるが、これは日本語用のフォントデータの 0x5Cの位置には円記号の字形を当ててしまうことで対処している。 これによって、それまでの文字コードを使用していたときと同じ感覚で 円記号を用いることができる。 この問題は日本語環境に限った事ではない。もともと、ISO646上で0x5Cを 含む数種の文字は自由領域(バリアント)として各国での定義を認めていた。 そのため、日本語以外でもASCIIでバックスラッシュに相当するコードに 異なる記号を当てているケースが多い。例えば、韓国ではウォン記号 (WON SIGN, U+20A9, "₩") である。
151 :
デフォルトの名無しさん :2009/01/26(月) 16:04:16
WAVE DASH - FULLWIDTH TILDE問題 JIS X 0221規定のJIS X 0208とJIS X 0221の対応表では、 波ダッシュはWAVE DASH (U+301C, "〜") に対応させているが、 マイクロソフトはWindowsのShift_JISとUnicodeの変換テーブルを作成する際に、 JIS X 0208において1区33点に割り当てられている波ダッシュ "〜" を、 Unicodeにおける全角チルダ (FULLWIDTH TILDE, U+FF5E, "〜") に割り当てたため不整合が生じる。 この結果、Mac OS等のJIS X 0221準拠のShift_JIS ⇔ Unicode変換テーブルをもつ処理系と、 Windowsとの間でUnicodeデータをやり取りする場合、文字化けを起こすことになる。 そこでWindows以外のOS上で動くアプリケーションの中には、CP932という名前で マイクロソフト仕様のShift_JISコード体系を別途用意して対応しているケースが多い。 この原因とされているUnicode仕様書の例示字形の問題に関しては、 波ダッシュ#Unicodeに関連する問題を参照すること。 また、マイクロソフトは同様にEM DASH (U+2014, "—") をHORIZONTAL BAR (U+2015, "―") に、 DOUBLE VERTICAL LINE (U+2016, "‖") をPARALLEL TO (U+2225, "‖") に、 MINUS SIGN (U+2212, "−") をFULLWIDTH HYPHEN-MINUS (U+FF0D, "−") に 割り当てており、これらの変換時にも問題が起こる。Windows VistaやMicrosoft Office 2007に 付属するIMEパッドの文字一覧におけるJIS X 0213の面区点の表示は、上記の文字についても JISで規定されているものと同じマッピングを使用している。
無理やり2バイトに当て嵌めようとしたとかそういうレベルじゃなくて それ以前のもっと根源的な問題 (従来のいくつかの文字コードでの問題点がなんら改善されていない)
153 :
デフォルトの名無しさん :2009/01/26(月) 16:07:32
へんな文字コードをさらに増やしただけ
pythonがだめな言語であることがよくわかりました。
これから始めようと思ってるんだけど2.6と3.0どっちがいいの?
157 :
デフォルトの名無しさん :2009/01/26(月) 19:21:36
2.5
2.6
2.71828182845904523536
e
METAFONT乙
またruby厨が荒らしてるのか
またruby厨が荒らしてるのか
164 :
デフォルトの名無しさん :2009/01/26(月) 21:22:20
py乙
しかし、なんでUnicodeみたいな糞仕様作ったんだろうな。
python.jp のサイトの python ダウンロードリンクは どう読んでも python 初心者向けなのに初心者用じゃない説明 日本語を扱うために別途 codec ダウンロードが必要な気がしてくる
馬鹿ですね分かります
173 :
デフォルトの名無しさん :2009/01/26(月) 22:03:28
日本語のエンコードについて教えてください。 お願いします。
またruby厨が荒らしてるのか
176 :
デフォルトの名無しさん :2009/01/26(月) 22:34:32
>>144 >>> import sys
>>> sys.maxunicode
65535
>maxunicode >Unicode文字の最大のコードポイントを示す整数。この値は、オプション設定 >でUnicode文字の保存形式としてUSC-2とUCS-4のいずれを指定したかによって >異なります。
UCS-2 だな
179 :
デフォルトの名無しさん :2009/01/27(火) 01:37:32
for a in range(10): return a でエラーが出るのはなぜですか?
SyntaxError? IndentationError?
またruby厨が荒らしてるのか
182 :
デフォルトの名無しさん :2009/01/27(火) 09:51:27
>>> for a in range(10): ... return a ... File "<stdin>", line 2 SyntaxError: 'return' outside function
for a in range(10): yield a でエラーが出るのはなぜですか?
>>185 エスワインタックスエッロラー?
なんですかそれ?
++++[>++++[>+++++>++++>+++++>+++++<<<<-]<-]>>-----.>+.>+++.>-.
Python好きなんだけど命名規則はそろえてほしい
関数やメソッド名にCamelcase使っちゃいけないのはどうして? _を使うよりもタイプしやすいんだけどな。
自分しか使わないんだったら使えばいい
BeautifulSoupとかキャメルなのが気になる あと_で区切るとこと区切らないとこってなんか決まりある? dict.has_keyは区切ってるのにdict.iterkeysとか区切らないのはなんで?
きちんとした命名規則に則ってるのは3.0のライブラリからだろ 2.Xまでは標準ライブラリですらバラバラだし BeautifulSoupとかの野良ライブラリは従う必要ない has_keyは3.0で廃止だから存在を忘れろ
194 :
デフォルトの名無しさん :2009/01/29(木) 16:07:38
python でオブジェクトがある属性を持つかどうかって どのようにして調べるのが良いのでしょうか? __dict__ にしてキーを持つかどうかですか?
195 :
◆UNKOVIP9RM :2009/01/29(木) 16:15:55
196 :
◆UNKOVIP9RM :2009/01/29(木) 16:25:34
>>195 おまえもしかしてgetattrのことか?
197 :
◆UNKOVIP9RM :2009/01/29(木) 16:26:12
↑こういうのって草民ってやつ? ほんとうにきもちわるいんだねはきそう
モンティパイソン精神を忘れるな!
200 :
デフォルトの名無しさん :2009/01/30(金) 06:25:13
pydoc で関数の引数に対する説明も表示させるって できるんでしょうか?関数を定義するときに それぞれの引数に対するドキュメント文字列(docstring)を 設定できればいいなと思っているのですが。
201 :
デフォルトの名無しさん :2009/01/30(金) 07:02:28
func("ほげほげほげほげ", ["はげはげはげはげ", "長い文字列長い長い"], xxx="シシシシシシシシシシ", yyy="パパパパパパパパパパパパパパ" のように、しばしば文や関数呼び出しが長くなることがありますが、 これは途中で改行していいんでしょうか?というのは Python って インデントが意味を持つので、じゃぁ適当に改行したとして インデントはどうすりゃいいんだよ!と悩んでいます。
>>> ' SyntaxError: EOL while scanning single-quoted string >>> " SyntaxError: EOL while scanning single-quoted string >>> """ """ '\n' >>> ( ) () >>> [ ] [] >>> { } {} >>> int( 1 ) 1
>>> def hoge(fuga, hage): ... '''hoge(fuga:FUGA, hage:HAGE)HOGE''' ... return 1 ... >>> help(hoge) Help on function hoge in module __main__: hoge(fuga, hage) hoge(fuga:FUGA, hage:HAGE)HOGE
>>201 問題なし
>>> def func(a, b, xxx='hoge', yyy='fuga'):
... print a, b, xxx, yyy
...
>>> func("ほげほげほげほげ", ["はげはげはげはげ", "長い文字列長い長い"], xxx="シ
シシシシシシシシシ", yyy="パパパパパパパパパパパパパパ")
ほげほげほげほげ ['\x82\xcd\x82\xb0\x82\xcd\x82\xb0\x82\xcd\x82\xb0\x82\xcd\x82\
xb0', '\x92\xb7\x82\xa2\x95\xb6\x8e\x9a\x97\xf1\x92\xb7\x82\xa2\x92\xb7\x82\xa2'
] シシシシシシシシシシ パパパパパパパパパパパパパパ
>>> func("ほげほげほげほげ", ["はげはげはげはげ",
... "長い文字列長い長い"
... ], xxx="シシシシシシシシシシ",
... yyy="パパパパパパパパパパパパパパ")
ほげほげほげほげ ['\x82\xcd\x82\xb0\x82\xcd\x82\xb0\x82\xcd\x82\xb0\x82\xcd\x82\
xb0', '\x92\xb7\x82\xa2\x95\xb6\x8e\x9a\x97\xf1\x92\xb7\x82\xa2\x92\xb7\x82\xa2'
] シシシシシシシシシシ パパパパパパパパパパパパパパ
>>>
俺はそんなことよりもインタラクティブモードで
リストの日本語が出ないことの方が問題だと思っている
>>> ["はげはげ"] ['\x82\xcd\x82\xb0\x82\xcd\x82\xb0'] >>> print str(_).decode("string-escape") ['はげはげ'] >>> [u"はげはげ"] [u'\u306f\u3052\u306f\u3052'] >>> print str(_).decode("unicode-escape") [u'はげはげ'] 3.0なら >>> ["はげはげ"] ['はげはげ']
thx!
207 :
デフォルトの名無しさん :2009/01/30(金) 13:20:16
str() と repr() はどうちがうのですか?
TerboGearでわからない所があるので、教えてください。
211 :
◆UNKOVIP9RM :2009/01/30(金) 13:47:02
212 :
◆UNKOVIP9RM :2009/01/30(金) 13:54:10
モンティパイソン精神ってなんだよ。 見たけど、人生適当で良いんだなぐらいしか思わなかったんだけど。
213 :
デフォルトの名無しさん :2009/01/30(金) 14:07:16
人生は航海の連続です
・人の中で浮いてしまう ・幼児期は他の子と遊ぶより一人遊びが好きだった ・同年齢の人と波長が合わない ・人との接し方のマナーやルールがよくわからない ・意図せず人を傷つけて嫌われてしまう ・暗黙のルールにいつまでたっても気づけない ・変なところで積極的すぎる ・自分の関心のあることだけを一方的にしゃべり、しゃべり終えたら満足して相手の話をきけない ・会話が長続きしない ・話し方が簡潔でなく回りくどい ・曖昧なこと、ファジーなことが苦手 ・細かいところにこだわる ・独り言を言う ・駄洒落や語呂合わせが好き ・融通がきかない ・電車、河や水の流れ、風にゆれる草木、雲などを延々と見続ける ・こだわりが強すぎる ・柔軟性に乏しい ・予想外の事態に対処ができない ・コレクション癖が普通より強い ・機械的記憶力が優れていることが多い ・自分の行動パターンに沿えない時は不機嫌になる ・ものまね遊びが好き ・ビデオやDVDに録画しまくって見ない ・模倣して習得することは苦手だが、模倣なしに自分一人でやると出来る ・独学でないと学べない
215 :
◆UNKOVIP9RM :2009/01/30(金) 14:36:55
わかってんじゃん
TurboGearsとpysqliteを組み合わせて使っているのですが、 tg-admin sql create とコマンドプロンプトでコマンドを打っても、 This command to be run from inside a project directoryと出て、 devdata.sqliteを生成できません。どうしたらいいでしょうか?
超初心者ですがGoogleカレンダーみたいなWebアプリを 作りたいんですが・・・・ カレンダーの日付の場所をクリックすると吹き出しみたいのが 出てきて、予定の詳細を入力できるような感じです。 Pythonだけで作れるんでしょうか? JavaScriptとかと組み合わせないと無理なんでしょうか?
219 :
◆UNKOVIP9RM :2009/01/30(金) 15:58:16
220 :
◆UNKOVIP9RM :2009/01/30(金) 15:59:49
>>218 まずpythonインタプリタが動くブラウザを作るんだよ。
>>218 最低限HTML、CSS、JavaScript、CGIの知識
その他ウェブサーバ、データベースについての知識も欲しい
HTTPもな
223 :
デフォルトの名無しさん :2009/01/30(金) 18:52:04
アプリケーションの設定ファイルってどこに保存するのが いいんだろうなぁ。どこでも同じ設定になるようにって 以前 Googel Base に保存するような変り種のアプリを Python で作ったことがあったんだけど、認証無しで 見れるところに保存するのもなぁとおもってやめた。 ローカルで使うアプリケーションもあまねくウェブ インターフェイスを備えて、ブラウザのクッキーに 蓄積するなんてことも考えたけど、面倒でやめた。 結局は $HOME/.hogehoge になるのかねぇ。
だったらGoogleCalendar使えばいいじゃん GoogleCalendar用PythonAPIは公開されてるよ
def combi(a, b): return [x + (y,) if isinstance(a[0], tuple) else (x, y) for x in a for y in b] combi(combi('0123', '0123'), '0123') [('0', '0', '0'), ('0', '0', '1'), ('0', '0', '2'), ('0', '0', '3'), ('0', '1', '0'), ('0', '1', '1'), ..., ..., ('3', '3', '1'), ('3', '3', '2'), ('3', '3', '3')] これを '0123'の桁が大きくても逐次結果が出てくるように def combi(a, b): for x in a: for y in b: if isinstance(a[0], tuple): yield x + (y,) else: yield (x, y) と書き換えました combi('012', '012') <generator object at 0x009BAE40> [t for t in combi('012', '012')] [('0', '0'), ('0', '1'), ('0', '2'), ('1', '0'), ('1', '1'), ('1', '2'), ('2', '0'), ('2', '1'), ('2', '2')] までは結果が得られたのですが [t for t in combi(combi('012', '012'), '012')] Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 4, in combi TypeError: 'generator' object is unsubscriptable なぜこうなるのでしょうか?
[t for t in combi([s for s in combi('012', '012')], '012')] [('0', '0', '0'), ('0', '0', '1'), ('0', '0', '2'), ('0', '1', '0'), ('0', '1', '1'), ('0', '1', '2'), ('0', '2', '0'), ('0', '2', '1'), ('0', '2', '2'), ('1', '0', '0'), ('1', '0', '1'), ('1', '0', '2'), ('1', '1', '0'), ('1', '1', '1'), ('1', '1', '2'), ('1', '2', '0'), ('1', '2', '1'), ('1', '2', '2'), ('2', '0', '0'), ('2', '0', '1'), ('2', '0', '2'), ('2', '1', '0'), ('2', '1', '1'), ('2', '1', '2'), ('2', '2', '0'), ('2', '2', '1'), ('2', '2', '2')]
作ったものをEXEファイルにするときはどのツールを使うのが一番いいんでしょうか?
230 :
デフォルトの名無しさん :2009/01/31(土) 19:43:00
py2exe が便利だと思うけど 一部下位のモジュールを上に引き上げてくるようなパッケージ (たとえば pyasn1 とか pysnmp とか)が含まれてると うまくいかない(それらのモジュールを含め損ねる)ね。 標準のライブラリだけをつかってるなら余裕。
231 :
デフォルトの名無しさん :2009/01/31(土) 20:07:36
232 :
デフォルトの名無しさん :2009/02/01(日) 20:07:58
クラスの__inti__ってなんで初期化っていうのですか? アトリビュートに値を代入しているだけだとおもうですが。
233 :
デフォルトの名無しさん :2009/02/01(日) 20:36:01
>>232 ということはアトリビュートを初期化してるでしょ?
そもそも初期化ってなんだろうね __inti__とはどういう関係があるんだろう
僕は至って真面目に質問してるので、回答お願いします
inchをローマ字して訓令式で綴ったのですねわかります
__inti__って何?今2.4勉強途中だからわからないんだけど、新仕様なの?
真面目に質問してるんだからいい加減答えろよksども
240 :
◆UNKOVIP9RM :2009/02/02(月) 11:09:09
__init__の間違いでしょう。
242 :
◆UNKOVIP9RM :2009/02/02(月) 13:10:27
243 :
◆UNKOVIP9RM :2009/02/02(月) 15:34:44
あの……すいません 1〜100までの素数を返させたいのですが、なかなかうまくいきません 知恵を貸していただけませんか 以下が途中までのプログラムです なぜか、これだと素数以外の数が返されてしまうんです できれば特殊な関数とかは使いたくないんです #-*- coding: utf-8 -*- #1〜100までの数の素数を割り出す import time while True: for i in range(100):#Iを割り出す数とする if i == 99:#iが99になったら終了 break else: for o in range(2,i): p = i % o if p == 0:#あまりがでなかったら(1とその数自身以外で割りきれてしまったら) print i time.sleep(0.5) break else: continue break
あ、すいませんインデントが……orz
247 :
◆UNKOVIP9RM :2009/02/02(月) 19:23:11
>>244 amazonでDjangoって本を検索しる
import time while True: for i in range(100):#Iを割り出す数とする if i == 99:#iが99になったら終了 break else: for o in range(2,i): p = i % o if p == 0:#あまりがでなかったら(1とその数自身以外で割りきれてしまったら) print i time.sleep(0.5) break else: continue break
249 :
◆UNKOVIP9RM :2009/02/02(月) 19:26:05
250 :
◆UNKOVIP9RM :2009/02/02(月) 19:39:52
ありがとうございます!!
Google App Engine の Django は 1.0 なんでしょうか?
254 :
デフォルトの名無しさん :2009/02/02(月) 20:41:58
関数オブジェクトってどういうものですか?
Google App EngineってDjangoで作ってあるんですか?
Django使っても良いし使わなくても良い
ウィジェットってPython的にどういうモノなんでしょうか?
wxWidgets ↓ wxPython
なんでpythonなんか勉強するの? ZOPEとか使っちゃうの? PLONEとか使っちゃうの? redhatのインストーラーとか作っちゃうの?
>>259 初心者向けって言われたからとりあえずpythonやってるだけ
何でもできる汎用スクリプト言語というと、 Perl, Python, Rubyあたりになると思うけど、 この中でコードが一番読みやすそうだと思ったから。
Lispなんかどうだい? 括弧は怖くない、友達だよ!
Lispはやっといて損はないよな。 ただ続けないとすぐ忘れてしまうけど。
Syntax が一種類しかないから楽<Lisp
265 :
デフォルトの名無しさん :2009/02/04(水) 09:15:53
Pythonではモジュールの __version__ や __author__ は pydoc で認識されますが、パッケージでも同様なのでしょうか? たとえばパッケージの __init__.py で __version__ などを 指定しておけば、それは pydoc が認識してドキュメントを 作成してくれるのでしょうか?
Lisp って基本構造は (A B C) しかなくて (A B (a b c)) になってたり (A (a b c) C) になってたり (A (i j k) (a b (x y z))) になってたりするだけだと思う それが分かってやっと読めるようになったかもって感じ 書けないけど
267 :
265 :2009/02/04(水) 10:55:42
すんません,話しの流れをぶったぎって. p1/__init__.py p1/m1.py のようにパッケージ p1 とモジュール m1 を作ってます. import p1 で p1/__init__.py が呼び出されます. import p1.m1 でモジュール m1 が使えます. m1 の中で単に一行 v1 = "abc" と書くと, v1 は m1 というモジュールの中でのグローバルスコープになりますよね? そして名前空間としては p1.m1 にあって, p1.m1.v1 という名前で参照することができます. 普通は __init__.py では変数の定義など書かないのかもしれませんが, p1/__init__.py で v2 = "def" と書いたとすると,それは 度のスコープになるんでしょうか? 実際にやってみると名前空間としては p1 の下にあるので p1.v2 として参照できます. このとき p1.v2 のスコープは パッケージをインポートしたモジュールから見て どうなるのでしょうか? C++メインだったので,名前空間はファイルシステムとは関係なく 明示的に指定するということに慣れているのと,パッケージという システムが理解できていません.
268 :
265 :2009/02/04(水) 11:13:04
269 :
デフォルトの名無しさん :2009/02/04(水) 11:30:45
みんなのpythonを読んだ後って初めてのpythonを読む必要ってありますか?
ないです。クックブックがいいよ
271 :
デフォルトの名無しさん :2009/02/04(水) 12:05:41
同じ要素の繰り返しからなるリストを生成する シンプルな記述方法はあるでしょうか? 123,5 という入力から [123,123,123,123,123] というリストを得たいと思っています。 ジェネレータで5回生成するようにもしてみたのですが ワンライナーでほんもの?のリストを得たいです。
[123] * 5
273 :
デフォルトの名無しさん :2009/02/04(水) 12:10:19
も、もしかして 5 * [123] で終わりっすか? もしそうなら死にたい。 そんなことに気付かなかった自分に絶望した。
鬱だ
275 :
デフォルトの名無しさん :2009/02/04(水) 12:30:50
MySQLdbで辞書のキーと値に基づいて自動的に SELECTクエリを発行してくれる関数ってあります? たとえば {"col1":"111", "col2":"222"} から "SELECT myid FROM mytable WHERE col1="111" AND col2="222" を生成してくれれば便利だなと思うのですが。
[1,2,3,4] * 4 がどうして[1,2,3,4,1,2,3,4,1,2,3,4]になるんだろうね ベクトルの定数倍になってほしい
ベクトルじゃなくてシーケンスだからしょうがない
a * 4 = a + a + a + a こういう事だと思う。 文字列とか連結リストオブジェクト同士を足すとそうなる。
280 :
デフォルトの名無しさん :2009/02/04(水) 17:23:59
'SELECT myid FROM mytable WHERE col1=%(col1) AND col2=%(col2)' % vars()
>>277 >>> map(operator.mul, [1,2,3,4], [4]*4)
[4, 8, 12, 16]
和とかスカラーの積の場合は単純だけど、 リスト*リストだと内積をとるべきなのか外積をとるべきなのか迷うなあ いやベクトルの要素同士を掛けてベクトルを返すというのもありなのか 行列を考えるとさらに面倒だな やはり現状のが自然か
283 :
デフォルトの名無しさん :2009/02/04(水) 18:30:01
284 :
デフォルトの名無しさん :2009/02/04(水) 20:50:22
プログラムでいう「受ける」とはどういう意味ですか?
典型的には関数やメソッドなどの戻り値(返り値)を変数に代入することです >>> 'a,b,c'.split(',') # メソッドの返り値を受けずに捨てている ['a', 'b', 'c'] >>> result = 'a,b,c'.split(',') # 返り値を受ける >>> result ['a', 'b', 'c']
286 :
デフォルトの名無しさん :2009/02/04(水) 21:47:19
_/ ̄ ̄~\-、 rイ/ ̄ ̄ ̄\ 丶丶 {ミ/// // 丶 丶| | Y LLハLLハLL丶 || | | V● ィ●丶 6)| |f⌒ (_ ⌒i イ | || トェェェイ | | し /||\  ̄ ノ| し彡 `ノノ//`ー―-′丶ヾ\ /| // (/ ヽ___/ \ノ
内積の求め方ってこれであってますか? reduce(lambda x,y: x+y, map(operator.mul,[1,2,3],[4,5,6]))
それで合ってるけど sum(map(operator.mul, [1,2,3], [4,5,6])) でもいいよ
numpy.dot
ttp://www.python.org/dev/peps/pep-0008/の定数の項で Constants
Constants are usually declared on a module level and written in all
capital letters with underscores separating words. Examples include
MAX_OVERFLOW and TOTAL.
とあるけど、module levelって何のこと?
291 :
デフォルトの名無しさん :2009/02/05(木) 11:47:54
>>285 「例外クラスを受ける」の「受ける」も同じことが言えますか?
>>291 それは多分「try節で送出された例外をexcept節で捕捉する」の意。
>>287 reduce(operator.add,map(operator.mul,[1,2,3],[4,5,6]))
294 :
デフォルトの名無しさん :2009/02/05(木) 17:16:38
>>292 ありがとうございます。
では、「例外を受けるクラス」はどういう意味ですか?
tryが書いてあるメソッドを持つクラスのことです
英語講座だか日本語講座になってきたな
ある科学計算をさせるpackage(以降pyhoge)を作成しようと思っているんですが、
その計算で使用する数値テーブルも同梱しようと思っています。
.pyの中にべた書きするのは大変なので、
table.datのようなASCIIファイルを同梱する予定です。
このような場合、setup.pyにはtable.datをどのように処理させればいいのでしょうか。
http://www.python.org/doc/2.5.1/dist/node13.html を読むと.py以外の配布物も含められるようなのですが、
site-packages/pyhoge/以下を指定する方法はあるのでしょうか。
またできたとして、site-packages/pyhoge以下のファイルを、
.pyの中から指定させるようにするには、.pyをどのように書いておけばいいでしょうか。
過去ログ読まずに質問して申し訳ないがRubyのpとかppみたいなオブジェクトの中身を表示してくれる関数ってPythonにはあるの?
300 :
デフォルトの名無しさん :2009/02/05(木) 23:11:35
>>301 すんません、関数名を教えてください。後はぐぐります。
class Hoge(object): def __init__(self, arr): self.arr = arr みたいなclassを作るときに、arrがlistだったりすると、 >>> arr = [1, 2, 3] >>> h = Hoge(arr) >>> h.arr [1, 2, 3] >>> arr[0] = 10 >>> h.arr [10, 2, 3] のように中身が変わることがありますよね。 C++のように値渡しにしておきたい場合は、 copy.copyを多用すればいいんでしょうか。
一般的に、型チェックはどの程度真面目にやるものなのでしょうか。 もちろん用途によるのですが、Python使いの人の流儀としての一般論です。 正しい型を引数に渡すかはユーザ次第と考えるのか、 ユーザが間違った引数を渡したときは丁寧に教えてあげるのか。
308 :
◆UNKOVIP9RM :2009/02/06(金) 15:50:54
309 :
◆UNKOVIP9RM :2009/02/06(金) 15:55:21
なんでpythonの勉強会で円陣を組まないのかが全く分かりません。 勉強会はエンジンを組むべきだし。
s = "1 2 3" f = float(s.split()) みたいにやって、fが[1, 2, 3]となるようにしたいのですが、 どのような方法があるでしょうか。
>>> s = "1 2 3" >>> [float(i) for i in s.split()] [1.0, 2.0, 3.0] >>> map(float, s.split()) [1.0, 2.0, 3.0] >>> [int(i) for i in s.split()] [1, 2, 3] >>> map(int, s.split()) [1, 2, 3]
ちぃ map もう覚えた
Pythonって、for文の中でreturnしても大丈夫なんだっけ?
315 :
デフォルトの名無しさん :2009/02/07(土) 00:20:26
ok yieldもok
thanks!
jk
なるほど ありがとうございました
IDLEからF5で実行して右上の×で終了させると ウィンドウだけじゃなくIDLEも終了しちゃうんだけどどうすればいいんですか?
再起動
321 :
デフォルトの名無しさん :2009/02/07(土) 09:07:54
Python使いの諸君! 速く2chでタブが表示されるように左翼活動を開始せよ!
2ちゃんでタブのインデントが崩れないようにしようぜ、と言ってるのかと
それはHTMLの仕様上どうしようもないような pre使うとAAに影響出るし 2chの規模を考えると埋め込みコードとかの重そうな機能追加は望み薄
Python使いの諸君! 速く2chでタブが表示されるように左翼活動を開始せよ!
326 :
デフォルトの名無しさん :2009/02/07(土) 12:39:22
thread.start_new_thread(func,()) で生成したスレッドの中でさらにスレッドを作ろうとするとエラーになります。 これは仕様なのでしょうか
投稿の行の先頭に #! があったらそれ以降はそのレスだけ pre適用してもいいんじゃね?
いらん機能追加して脆弱性が生じても困るので勘弁。
すみません。仕様なのでしょうか。
>>326 >エラーを解決したいときはエラー表示や環境を略さずに書き込んで下さい。
331 :
319 :2009/02/07(土) 13:55:08
説明不足でした 実行してるファイルだけ終了したいんだけどどうすればいいんですか?
複雑だと思うならつかわなきゃいいんじゃねーの? なんでアホはあるもの全部使わなきゃ気がすまねーの?
333 :
デフォルトの名無しさん :2009/02/07(土) 14:30:29
Windows 版の Python で pydoc どうやって起動すんの? python.exe -m pydoc なの?
try-exception以外に変数が存在するかどうかをテストする方法はありますか?
こんなん? >>> a = 1 >>> 'a' in vars() True >>> 'b' in vars() False
in locals()
おおそんな手が! でもインスタンス変数に対してはどうやったら・・ blenderが必ずしもすべてのインスタンス変数を生成しているわけではないので アクセスするとトラップばっかりなんですよね。 嫌らしい事に条件によって生成されたりされなかったりなので これを回避しようとするとtry-exceptだらけになってすごいことになる。 とりあえずvars()を調べてみます。 任意のインスタンスのインスタンス変数にも適用できるスマートな方法があったら教えて頂きたく・・
>>> 'sort' in dir([1,2,3]) True >>> 'read' in dir([1,2,3]) False 間違ってるかもしれないからエロい人のレスも待ってね
342 :
341 :2009/02/07(土) 16:06:43
hasattrだった
getattr(インスタンス,メソッド,無かった場合に返す値) 無かった場合に返す値が定義されてないとエラー返す。
>>342 ばっちりですた。
これでいってみようと思います。ありがとうございました!
if hasattr(aMesh , 'dgre'):
print aMesh.dgre
else:
print '普通セットされないよ'
print getattr(aMesh , 'dgre', '普通セットされないよ')
>>319 Tkinterのアプリを作っている?
もしそうなら IDLE からではなく別途実行するのがいいかと。
IDLE も Tkinter で作られていて
自作アプリが異常終了したりすると IDLE も巻き込まれて死ぬことが多い。
予め開いたコマンドプロンプト(DOS 窓)から実行するのがオヌヌメ。
(例えば Windows だと .py のダブルクリックでも実行できるけど
異常終了したときエラーメッセージを読む前に DOS 窓が閉じてしまうから。)
なるほど ありがとうございました
universal feed parser使ってる人いる? パースした結果を普通のpythonオブジェクトに変換できないかな? パース結果が<class 'feedparser.FeedParserDict'>で戻ってくるのでjsonにうまく変換できない。。。
351 :
350 :2009/02/08(日) 14:22:17
そういうことがあるだな。
なるほど ありがとうございました
354 :
デフォルトの名無しさん :2009/02/08(日) 16:38:35
a = {"123":"abc"} str(a) で出力される文字列が普通にjsonだったらいいのに・・・
JSONって"でないとだめなの? 'でもいける?
だめですよ
SocketServerを使ってサーバーを作ったのですが今接続しているクライアント全てに同じメッセージを送る方法が分かりません。 ご教示のほどよろしくお願いします。
358 :
デフォルトの名無しさん :2009/02/08(日) 22:30:20
>>355-356 だよな。
読む方は下手にevalすると危ない気もするけど、
書く方はてがるに str() でJSONになればべんりなのにな。
a = [{"123":"abc"}, 4, 5, {"hage":"fuga",'suka':'pontan',"piyo":[123,456]}] str(a).replace("'",'"') ↓ [{"123": "abc"}, 4, 5, {"suka": "pontan", "hage": "fuga", "piyo": [123, 456]}]
>>> a = {"12'3":"ab'c"} >>> str(a).replace("'",'"') '{"12"3": "ab"c"}'
>>> a = {"12'3":"ab'c"} >>> str(a) '{"12\'3": "ab\'c"}'
おもしろいやつらだなお前らは
でもこれだとTrue -> true, False - > false, None-> 'none' ができてねえぞ
俺のやることにいちいち口を出さないでほしい。 ここは初心者スレなのだから間違えたとしても許される。
json.dumpsが標準になったんだから使えよ
なぜ昔からあるstrを使わない?
| | ∩___∩ | | ノ _, ,_ ヽ (( | プラプラ / ● ● | (=) | ( _●_) ミ _ (⌒) J )) 彡、 |∪| ノ ⊂⌒ヽ / ヽノ ヽ /⌒つ \ ヽ / ヽ / \_,,ノ |、_ノ
for i in range(1,101):print"Fizz"*(i%3<1)+"Buzz"*(i%5<1)or i こういうふうに"*"をprintの中で使う場合について解説しているサイトを教えてください。 入門書を一冊読んだのですが、上記のような使い方については書かれていませんでした。たぶん。
"Fizz"*1 表示 "Fizz"*0 非表示 になってるだけ。 "hoge"*2 -> hogehoge たぶん。
>>368 > "*"をprintの中で使う場合について
こういう条件付けはあまり意味がないな
print文の構文は
print 式,式...
または
print >>式 式,式...
だ(正確な定義はリファレンスマニュアル参照)
つまりprint文では任意の式が使えるから使っているだけのことで、
この場合は式 "Fizz"*(i%3<1)+"Buzz"*(i%5<1)or iを評価した値が印字される
372 :
368 :2009/02/09(月) 01:05:10
>>369-371 ご教示ありがとうございます。
*が特別な意味を持っていて、たとえば
"Fizz" if i%3<1 else ""
のelse以降を省略したような意味で使われているのかと思ったのですが、
ただ掛けていただけだったんですね。
そう思ってても問題ないよ今回の場合は
amazonのHTMLを解析するプログラムを組んでいるんですが、 正規表現がうまくいきません。 re_word = re.compile(r'href.*?/dp/.*?>') リンクに/dp/が含む行だけを抜き出しいのですが、 うまく抜き出せません。 正規表現はチェッカーを使ったところ正しいようです。 for m in re_word.finditer(htmlcontent): print m.group(0) 何か使い方が悪いでしょうか python2.5
ElementTreeをHTMLパーサとか言うのは勘弁してください
re.compile(r'href[^<>]*?/dp/[^<>]*?>')
HTML -> HTMLParser(
[email protected] )
XML -> xml.parsers.expat, xml.dom, xml.sax, xml.etree.ElementTree, lxml(推奨)
lxmlはwell-formedでないXMLもうまく扱える。
これで合ってますかね。
dictionaryのkeyに可変なインスタンスを登録することができないのですが、 同様な機能はどっかの標準パッケージにあるでしょうか。 例えば class Nuclei(object): def __init__(self, A, Z): self.A = A self.Z = Z というような、質量数と原子番号を保持するものがあるとします。 原子の周期表をdictionaryで作るとして、 d = {} d[Nuclei(2, 1)] = 0.0015 # 例えば重水素の存在比を登録 のようにしたとき、再び >>> d[Nuclei(2, 1)] 0.0015 と取り出せるようにしたいのですが。
from collections import namedtuple # 2.6 feature Nuclei = namedtuple("Nuclei", "A Z")
>>380 ありがとうございます。
2.5までしか使えない環境なので、
__hash__を定義して解決しました。
382 :
デフォルトの名無しさん :2009/02/10(火) 08:04:53
そんな機能があったとは。 おまえら物知りだなぁ。
モジュールが豊富にあるので 個々人で全てを把握しきれるとは思えないからな。 一応namedtupleについては追加するとか 一部(ML)で話題にあがったりしたが。
384 :
374 :2009/02/10(火) 11:08:40
BeautifulSoupを使っているんですが、 <div class="hoge">this soup is beautiful</div> (1) とあった場合 this soup is beautiful を抜き出すにはどうすればいいのでしょうか? (1)まで抜きだしはできていてclassつきの場合のやり方がわかりません。 (1)を格納している変数はsoupsとすると soups["div"]に近い形で抽出できると思うんですが、 よろしければ教えていただけませんか?
>>385 Tagの子要素はcontentsで取れるんで、単に
soups.contents[0]
でいいんじゃないか
クラスはNavigableStringになる
387 :
385 :2009/02/10(火) 15:30:50
>>386 意図どおり、取れました。
ありがとうございます!。
pythonをUSBメモリに入れてMsysで使いたいです
pymixiって今配布されているバージョン動きますか? BeautifulSoupのエラーなのか, Pymixiのエラーなのか, Mixiのタグが変わったのか切り分け中です。
391 :
390 :2009/02/12(木) 17:11:39
自己解決しました
pythonからwindowsのコマンドを実行することはできますか? またできるのなら方法を教えてください
どうしてpythonにはpopenがいっぱいあるのはなぜですか?
396 :
デフォルトの名無しさん :2009/02/12(木) 20:22:10
3=9-6
愚民が権力握っても 不正や腐敗がはびこるだけよ♪
399 :
◆UNKOVIP9RM :2009/02/12(木) 22:57:52
人生は後払い
python3000ってpymacs使える?
402 :
デフォルトの名無しさん :2009/02/14(土) 16:34:44
無理 あきらめろ
辞書のコピーってのは、やっぱりimport copy使うか、バラして自力でやるしかないでしょうかね? d = {なんとか}で、 c = { d.items() }みたいな感じで簡単に書くのは無理でしょうか?
dict(d)
>>404 ありがとうございます!
もっと簡単な方法があったんですね。
d.copy() でもいい
407 :
◆UNKOVIP9RM :2009/02/15(日) 20:57:05
http://galprop.stanford.edu/web_galprop/galprop_home.html に置いてある、
http://galprop.stanford.edu/codes/v50.1p.tgz の中のpp_meson.fをf2pyにかけたいのですが、
$ f2py -c -m pp_meson pp_meson.f
をやると大量のエラーが出ます。
running build
running config_cc
unifing config_cc, config, build_clib, build_ext, build commands --compiler options
running config_fc
unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
running build_src
building extension "untitled" sources
f2py options: []
f2py:> /var/folders/wH/wHx7+EnOGj8QSwsYqxTqmE+++TI/-Tmp-/tmpYvDAdM/src.macosx-10.5-i386-2.5/untitledmodule.c
(略)
File "/Library/Python/2.5/site-packages/numpy-1.2.1-py2.5-macosx-10.5-i386.egg/numpy/f2py/crackfortran.py", line 2072, in analyzevars
for k in implicitrules[ln0].keys():
KeyError: '1'
どのような修正を加えて走らせ直せば良いのでしょうか。
OS X 10.5.6 + gfortran
Linux g77 3.3.5
のどちらでも同じ症状です。Python 2.5 + numpy 1.2.1を使っています。
409 :
408 :2009/02/16(月) 18:23:29
どうやらf2pyは継続行をうまく扱えないようで、 1行目 !comment & 2行目 みたいに書いてあるところのコメントを取り除けばいいようです。
site-packages/my_package site-packages/my_package/__init__.py site-packages/my_package/module1.py site-packages/my_package/module2.so のような構成でパッケージを作りました。 __init__.pyには、 from module1 import * from module2 import * とだけ書いてあります。しかし、 $ python >>> import my_package Traceback (most recent call last): File "<stdin>", line 1, in <module> File "my_package/__init__.py", line 8, in <module> from module2 import * ImportError: No module named module2 となってしまいます。どこを直せば、module2.soを読みに行ってくれるのでしょうか。 python 2.5.1をOS X 10.5.6で使用しています。
411 :
410 :2009/02/16(月) 20:16:54
追記 $ cd site-packages/my_package $ python >>> import module2 とやると、ちゃんと動きます。
412 :
410 :2009/02/16(月) 20:46:46
あ、嘘。できた。
例1) >>>wordlist = ["H","K","L"] >>>[word.lower() for word in wordlist] ['h', 'k', 'l'] 例2) >>> x = [1,2,3,4,] >>>[x for x in x if x % 2 == 0] [2, 4] 例1を >>>[for word in wordlist word.lower()] 例2を >>>[if x % 2 == 0 x for x in x] とやると、動きませんでした。 forの部分を前に書く場合と後ろに書く場合があるような気がするのですが、 どういった決まりがあるのでしょうか。
Python ではマルチスレッド化しても複数コアを使うことはなくて(なんかGILとか言うらしい)、 複数使うにはマルチプロセスにすれば可能 という理解であってます?
まちがってるよ。Ruby使えば問題かいけつ。
いい加減にしろRuby厨! 巣から出てくるな! あんなパクリだらけで出来の悪い言語なんか信者以外使わないわ
まぁまぁ
こうしてみるとRubyって存在そのものが悪だな まぁ作った奴からしてアレだしw ひたすら他の言語をDisりまくりだもんな、そりゃ嫌われるわ
だが、そこがいい
自分で作成したモジュールの同梱データファイルを使いたいときに、 mydata = pkg_resources.resource_filename("my_module", "data/data.txt") としてパスを取得しています。 しかしこの方法だとpkg_resourcesを入れる必要があるため、 他の人のマシンにmy_moduleを入れた場合にすぐに動きません。 この他に、データファイルのパスを簡単に取得する方法があるのでしょうか。
データファイルをモジュール化する。
os.path.join(os.path.dirname(__import__("my_module").__file__), "data/data.txt")
426 :
デフォルトの名無しさん :2009/02/19(木) 23:21:08
ありがとうございました
すごいくだらないんですけど PyPy Pychinko以外になんか卑猥なのあります?
え?どこが卑隈なの?
o2.py
430 :
デフォルトの名無しさん :2009/02/21(土) 19:26:29
AutoComplete.elをwindowsのMeadowで使ってる人いません? rope のインストールの仕方教えて臭い
>>430 pythonユーザはMeadow率が低いみたい.
俺も以前,このスレでpdbがらみの質問したけど
まともなレスが無かったよ.
素直にeclipseを使うことをお勧めする.
emacsキーバインドもあるから,移行はそんなにつらくない・・・かもしれない.
とか言ってる俺自体,Meadowとの相性の悪さにウンザリして
Python触らなくなっちゃったけどね.
下手に高機能な分,動かないときは絶望的ってイメージ.
つか,このスレでたまに出てくるRuby厨は Python厨の騙りじゃねw まぁ,どっちでもいいけどさ. 国内でのライブラリやツール類の開発者(成果物?)は Ruby >>> Python ですよね. 当然,世界レベルで見たら Perlに変わってLinuxのシステムツールの地位を獲得している Pythonの方が圧倒的だけど,やっぱり,国内じゃ弱い. まぁ,何が言いたいかってぇと,ブログなんかに書き散らかすんじゃなくて 有用な情報が一元的に収集されてるといいなぁ・・・ってことです.
434 :
430 :2009/02/22(日) 05:19:23
自己解決しました
setup.pyを実行じゃだめで、easy_install入れたらできました。
>>432 まぁ私は困ってないのでこのままMeadowを使おうとおもいます
参考までになにが不満だったかお聞かせください
435 :
デフォルトの名無しさん :2009/02/22(日) 05:58:36
>>434 gdbインターフェースでpdbを使いたかったんですが
俺には無理でした。
436 :
デフォルトの名無しさん :2009/02/22(日) 09:12:29
>>432 ,434
Windows用のGNU Emacsを使うという手は?
>>436 確かに、Win32 emacsでやりたいことはできるんですが
Meadowとの細かい差分が気になって…
せめてマウスカーソル消去に対応して欲しかった。
438 :
デフォルトの名無しさん :2009/02/22(日) 14:05:35
boost.pythonスキだぁ
439 :
デフォルトの名無しさん :2009/02/23(月) 15:46:55
441 :
デフォルトの名無しさん :2009/02/24(火) 19:47:36
なんかMeadowの話があったみたいですが、NTEmacsでの質問をさせてください。 VistaにNTEmacs、Python2.5.4、PyQt-Py2.5-gpl-4.4.3、matplotlib-0.98.5.2、python-modeを入れてNTEmacsからpy-shellを使えるようにしました。 ところがmatplotlibで図を表示してみようと思っても、imshowで止まってしまって何も表示されません。 同じ事をIDLEからやるとちゃんと表示されます。 理由と対処法分かりませんか? 実行しようとしているのはネットで拾ったサンプルの一部で from pylab import * A = rand(5, 5) figure(1) imshow(A, interpolation='nearest') grid(True) show() です。NTEmacsの*Python*バッファからだとimshow()で止まってしまいます。
>>> a = {1 : []} >>> b = dict(a) >>> b[1].append(2) >>> b {1: [2]} >>> a {1: [2]} 中のリストが参照渡しになってしまうようなのですが、これを回避する方法はありますか? ちなみに a.copy() copy.copy(a) もだめでした。 よろしくお願いします
copy.deepcopy(a)
445 :
442 :2009/02/25(水) 13:08:05
446 :
デフォルトの名無しさん :2009/02/25(水) 15:19:34
pythonで[0x78, 0x56, 0x34, 0x12]みたいな配列を0x12345678のような数値にしたいのですが何か良い方法ありますか?
たたき台として >>> from struct import * >>> buf = pack('4B', *[0x78, 0x56, 0x34, 0x12]) >>> buf 'xV4\x12' >>> unpack('<I', buf)[0] 305419896 >>> hex(_) '0x12345678'
a = [0x78, 0x56, 0x34, 0x12] "0x%02x%02x%02x%02x" % (a[3],a[2],a[1],a[0])
>>> a = [0x78, 0x56, 0x34, 0x12] >>> reduce(lambda x, y: (x << 8) + y, reversed(a), 0) 305419896 >>> sum(i * 2**j for i, j in zip(a, (0, 8, 16, 24))) 305419896
reduce(lambda x, y: x + '%02x'%y, reversed(a), '0x')
「数値にしたい」と言ってるのに文字列化してるのは何故なんだぜ
0x12345678のような数値にはならないから。
0x12345678は数値?
'0x12345678'になってりゃ int('0x12345678',16)で医院で内科脳
>>> int('0x%s'%''.join(map(lambda x: '%02x'%x,reversed(a))),16) 305419896
とりあえず reversed() は禁止した方が良いと思う
言い出しっぺが「数値にしたい」と言ってるのに文字列化してる
問題文の日本語が正しいとは限らない。
初心者スレだからな
素直に
>>449 でいいと思う
bytes([0x78, 0x56, 0x34, 0x12]).long()
class A(object): def f(self): """ document """ class B(A): def f(self): pass という2つのclassを作ったとします。このとき、 help(A)やhelp(B)でAとBの説明を見ると、 当然かもしれませんがB.fの説明は空欄になってしまいます。 Bのような継承が何個もあり、その関数fの説明は全て同じにしたいのですが、 全部の継承classに対して同じ説明書きをしないといけないのでしょうか。 説明が変わるたびに全てのclassを修正する必要があるので面倒です。 何か良い方法があるでしょうか。教えて下さい。
>>463 class B(A):
def __init__(self):
misutta まぁコードはいいや。 Bでfを再定義しなければAのfが実行されるで。
fを再定義するってことは、少なくとも内容に変更があるってことだからな。
>>462 なにその便利関数、って思ったら3.Xか
468 :
463 :2009/02/27(金) 00:49:43
ありがちな例で申し訳ないですが、 class Animal(object): def naku(self): """ 動物が鳴くお """ raise NotImplementedError class Cat(Animal): def naku(self): printf "にゃー" class Dog(Animal): def naku(self): printf "わんわん" ってときに、いちいち"猫が鳴く"とか"犬が鳴く"っての書きたくなくない?と。
469 :
463 :2009/02/27(金) 00:50:14
>>468 癖でprintfとしてしまった。printです。
>>463 class B(A):
def __init__(self):
Python 3.0 だとこんな感じでいけるっぽい。エラーチェック等は省略。 def docstring(cls): for name in dir(cls): if not name.startswith("_"): f = getattr(cls, name) super_f = getattr(cls.__base__, name) f.__doc__ = super_f.__doc__ return cls class A: def f(self): "docstring" pass @docstring class B(A): def f(self): pass print(A.f.__doc__) print(B.f.__doc__)
>>471 スレチかもしれないけど、471のPythonコードのスペースがつぶれていないのは、どうやってるんでしょうか?
自分がコードを貼り付けると、
def docstring(cls):
for name in dir(cls):
def f(self):
こんな風になる。
>>472 ギコナビの特殊文字変換を使ってます。
書き込み時にスペースを に置換してくれます。
書き込み後にどう見えるかをプレビューでチェックできたりして便利です。
変換自体は手作業でやっても大した手間じゃないですよ。
エディタでスペース4個を に置換とかすればOKです。
全角スペースでもいい。そのままコピペには使えないけど。
>>472 もスペースなくなってる訳じゃないからね
ブラウザが消してるだけで
httpで送られてくるデータには含まれてるから
ソース見れば復元可能
全角スペースが一番迷惑
ラベルごとに集合を作って、その集合に関数を適用する良い方法があったら教えてください。 たとえば、下の表のように、a,b,c3チーム(ラベル)それぞれの平均スコアを出したい。 team score a 10 b 2 a 9 c 8 b 3 c 6 計算結果 a b c 9.5 2.5 7.0 ラベルにもう一次元足して、クロス表を作れるともっとうれしいです。 想定している機能は、エクセルのピボットテーブルのような感じです。 Rでいうと、tapply(score, team, mean)みたいな感じです。 よろしくおねがいします。
>>477 標準ではお手軽な方法はないような気がする
なんかライブラリはあるのかもしらんけど
標準でやるならこんな感じです
from itertools import groupby
from operator import itemgetter
data = """
a 10
b 2
a 9
c 8
b 3
c 6
"""
records = [(x, int(y))
for (x, y) in
(line.split()
for line in data.strip().splitlines())]
# -> [('a', 10), ('b', 2), ('a', 9), ('c', 8), ('b', 3), ('c', 6)]
grouped = [(k, map(itemgetter(1), g))
for k, g in
groupby(sorted(records, key=itemgetter(0)),
key=itemgetter(0))]
# -> [('a', [10, 9]), ('b', [2, 3]), ('c', [8, 6])]
result = [(x, float(sum(ys))/len(ys)) for x, ys in grouped]
# -> [('a', 9.5), ('b', 2.5), ('c', 7.0)]
import collections def main(): h = collections.defaultdict(list) for line in open("a.txt"): team, score = line.split() h[team].append(int(score)) for team, scores in sorted(h.iteritems()): print team, float(sum(scores)) / len(scores) if __name__ == '__main__': main()
>>478 , 479
ありがとうございます。
itertools, operator, collections....
よくわからない奴らがたくさん出てきたぜ・・・・(汗)
試してみます。
ぱっと見、478の方が汎用性がありそうかな・・・。
data = """ a 10 b 2 a 9 c 8 b 3 c 6 """ h={} [h.setdefault(x,[]).append(int(y)) for (x,y) in (line.split() for line in data.strip().splitlines())] r={} [r.setdefault(x,float(sum(y))/len(y)) for (x,y) in h.iteritems()] r
[1, 3, 5, 2, 5, 2, 1, 4, 1, 1, 2, 4, 3, 2] ↓ [4, 8, 7, 7, 7, 3, 5, 5, 2, 3, 6, 7, 5] のように隣の数同士を足して新しいリストを作る操作を 一行でさくっと書きたいのですがどんな書き方をすればよいでしょうか?
リストの内包表記 これでググレばおk
[e + L[i + 1] for i, e in enumerate(L) if i < len(L) - 1]
[e + L[i] for i, e in enumerate(L[1:])
[a[i] + a[i+1] for i in xrange(len(a)-1)]
一旦 a とか e に入れないといけないのですね [e + [1, 3, 5, 2, 5, 2, 1, 4, 1, 1, 2, 4, 3, 2][i] for i, e in enumerate([1, 3, 5, 2, 5, 2, 1, 4, 1, 1, 2, 4, 3, 2][1:])]
489 :
デフォルトの名無しさん :2009/02/28(土) 09:50:52
Mercurial って Python で書かれていたのか・・・・ 俺みたいな Subversion儲かつ Python儲 はどうすればいいの?死ぬの?
>>489 1.バージョン管理は枯れてないとだめだよとか言っとけばおk
2.ファイル名に日本語混じったのを扱うようにして、subversionじゃないとだめなんだと言い出す
3.死ね
fooってなんですか?
hogeってなんですか?
>>482 >>> [4, 8, 7, 7, 7, 3, 5, 5, 2, 3, 6, 7, 5]
[4, 8, 7, 7, 7, 3, 5, 5, 2, 3, 6, 7, 5]
>>> map(lambda(x,y):x+y,zip(_,_[1:]))
[12, 15, 14, 14, 10, 8, 10, 7, 5, 9, 13, 12]
>>> map(lambda(x,y):x+y,zip(_,_[1:]))
[27, 29, 28, 24, 18, 18, 17, 12, 14, 22, 25]
・・・・・・・・・・・・・・
[9856, 8802]
>>> map(lambda(x,y):x+y,zip(_,_[1:]))
[18658]
>>> a = [1, 3, 5, 2, 5, 2, 1, 4, 1, 1, 2, 4, 3, 2] >>> [i+j for i, j in zip(a, a[1:])] [4, 8, 7, 7, 7, 3, 5, 5, 2, 3, 6, 7, 5] >>> from operator import add >>> map(add, a[:-1], a[1:]) [4, 8, 7, 7, 7, 3, 5, 5, 2, 3, 6, 7, 5]
本人を装った荒らし乙
bzrもPythonだけどな。
Python 2.5 で sqlite3 を使ってるのですが date 型ってないのですか? integer に time.time() を代入したりして 使えってことなんでしょうか?
よくしらんけどSQLiteってデータ全部テキスト型なんじゃなかったっけ
>>497 ライブラリリファレンスの「13.13.4 SQLite と Python の型」
図星だったwww
>>499 ありがとうございます
sqlite3 モジュールには二つの Python 標準型 datetime.date と
datetime.datetime に対するデフォルト適合関数があります。
いま datetime.datetime オブジェクトを ISO 表現でなく
Unix タイムスタンプとして格納したいとしましょう。
import sqlite3
import datetime, time
def adapt_datetime(ts):
return time.mktime(ts.timetuple())
sqlite3.register_adapter(datetime.datetime, adapt_datetime)
con = sqlite3.connect(":memory:")
cur = con.cursor()
now = datetime.datetime.now()
cur.execute("select ?", (now,))
print cur.fetchone()[0]
これは sqlite3 の real になっているということですね
sqlite3.register_adapter(datetime.datetime, lambda s: int(time.mktime(s.timetuple()) * 1000)) これでいいのかな
PythonでCGIを作りたいんですけど 質問とかはこのスレでいいんですか?
505 :
デフォルトの名無しさん :2009/03/01(日) 00:31:15
>>504 ここじゃダメなのか
thx! 逝ってくる
506 :
デフォルトの名無しさん :2009/03/01(日) 10:49:52
# -*- coding: utf-8 -*- print u'ABな'.isalnum() というのなんですが、Emacsのpy-execute-***で実行するとはUnicodeDecodeErrorがでて、 シェルで実行するとTrueになってしまいます。 なにがまずいんでしょうか?
>>507 ありがとうございます
ですが、そのページは見たところユニコード文字列の表示の件な気がします
IDLEの場合は対応してないというより、
ユニコードをデフォルトの文字コードでエンコードしようとするから文字化けするという話のはずです
>>506 は別にユニコード文字列の表示はしないですし、たぶん関係ないでしょう
一応print len(u'そうだね')なんかだとはちゃんと動くようでしたし
UnicodeDecodeErrorはバイト列(str)から文字列(unicode)への変換時のエラーだから、 coding: utf-8 としてるけど実は utf-8 になってない、とか 実際に utf-8 だけど別の文字コードでデコード(str→unicode変換)しようとしている、とか その手の問題だと思われ。 表示のときに起こるのはエンコード(unicode→str変換)のエラー。
510 :
デフォルトの名無しさん :2009/03/01(日) 21:26:31
蕃爽麗茶
さげ
PyScripter で、日本語が文字化けするのですが対処法はありますか? UTF−8に設定しているのでu"ほげ"は正常にほげと出力されますが、 ”ほげ”は文字化けしてしまいます。 開発環境は pyscripterの1.9.9.3 Python2.6 です。よろしくおねがいします
513 :
デフォルトの名無しさん :2009/03/01(日) 23:37:03
'ほげ'.decode('utf-8')
514 :
デフォルトの名無しさん :2009/03/02(月) 22:49:21
pythonのRADツールってなにがありますか? あと、「みんなのpython」を読んである程度、オンラインリファレンスを呼みながら、pythonプロ倉ミンgうができるようになったのですが 頭の中で言語仕様どうもまとまっていません、ある程度pythonのわかるものが言語仕様をコンパクトに確かめられる本はありませんか?
オンラインリファレンスじゃだめなんか
オンラインリファレンスの日本語はどうしても、肌に合わなくて。 あとできればアナログ媒体で読みたいのです。
517 :
デフォルトの名無しさん :2009/03/02(月) 23:24:35
英語のオンラインリファレンスじゃだめなんか
すいません英語はみょめないんです
519 :
517 :2009/03/03(火) 00:30:32
>>518 は僕じゃないですけど。
同じく英語が読めないんです。クイックリファレンス目的だったら、通読するようなものでもないので英語でがんばって読むというのもありなんですが。
どうしても、通読することを考えた場合、日本語の方が良いですね。
「Pythonチュートリアル」略してパイチューはその目的としてはどうなんでしょうか?
英語のオンラインリファレンスを印刷したものじゃ(ry
日本語の場合‥はオライリーの邦訳が一番マトモな本なので買っておいて、 不足している場合はpython.orgの2.6 or 3.0のドキュメントを見る様にしてる。 あとはGoogleGroupのlang.pythonグループの記事を読む様にする、 日本国内のMLを購読する様にするとか‥色々あるよ
あそこのWikiに書き込んでいけばみんなHappy
あそこのWikiに書き込んでいけばみんなHappy あそこのWikiに書き込んでいけばみんなHappy あそこのWikiに書き込んでいけばみんなHappy あそこのWikiに書き込んでいけばみんなHappy あそこのWikiに書き込んでいけばみんなHappy あそこのWikiに書き込んでいけばみんなHappy あそこのWikiに書き込んでいけばみんなHappy
524 :
デフォルトの名無しさん :2009/03/04(水) 16:03:53
したらばの掲示板にurllib2をつかってつなごうとしています。
最初に試したときは、まともな結果が返ってきたのですが
二回目以降は以下のようなエラーが返ってきます。
どうにかして二回目以降もつなげるようにしたいのですが、どうすればいいでしょうか?
Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib2
>>> url = "
http://jbbs.livedoor.jp/sports/35590/ "
>>> r = urllib2.urlopen(url)
>>> r.code,r.msg
(200, 'OK')
>>> print r.info()
Date: Wed, 04 Mar 2009 06:53:41 GMT
Server: Apache/1.3.41 (Unix) mod_perl/1.30
Content-Type: text/html
Connection: close
Transfer-Encoding: chunked
>>> print r.read()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python25\lib\socket.py", line 291, in read
data = self._sock.recv(recv_size)
File "C:\Python25\lib\httplib.py", line 509, in read
return self._read_chunked(amt)
File "C:\Python25\lib\httplib.py", line 544, in _read_chunked
line = self.fp.readline()
File "C:\Python25\lib\socket.py", line 331, in readline
data = recv(1)
socket.error: (10054, 'Connection reset by peer')
>>525 本当にありがとうございましm(_ _)m
なんとかなりました。
やっぱりだめでした、連続投稿しようとしたら制限かけられてしまいました。
連続投稿って掲示板側で制限かけられてるんじゃないのか
PyScripterで開発していますが、 コードの横に行数を表示させる設定はどこでできますか?
ツール->オプション->エディタオプション->「表示」タブの「行番号の表示」
532 :
デフォルトの名無しさん :2009/03/05(木) 15:43:51
def foo(): print 何かの方法 で、自身の関数名(この場合はfoo)を取得する方法ってありますか?
>>> import sys >>> def foo(): ... print sys._getframe().f_code.co_name ... >>> foo() foo
>>536 >>537 拝見しました、なるほど、Python情報はまだまだ英語サイトの参照が
欠かせないんですね。
今後の日本での普及に期待&何らかの形で貢献できればと思います。
ありがとうございました。
自分自身の型はどうすれば分かりますか?
type
ありがとうございます っていうか やりたかったことはちょっと違ってたんです yaml で型情報を含めて出力出来ないかと思ったのですが pickle で出来ることが分かりました
zipfileでzipを作れると思いますが パスワード付きにすることは出来ますか?
MeCabのPythonバインディングのインストール方法を教えてください。 >setup.py install running install running build running build_py running build_ext building '_MeCab' extension c:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:unrecognized /LIBPATH:option /LIBPATH:`--libs-only-L` /LIBPAT H:C:\Python26\libs /LIBPATH:C:\Python26\PCbuild unrecognized.lib option.lib `--libs-only-l`.lib /EXPORT:init_MeCab build\temp.win32-2.6\Release\MeCab_wrap.obj / OUT:build\lib.win32-2.6\_MeCab.pyd /IMPLIB:build\temp.win32-2.6\Release\_MeCab.lib /MANIFESTFILE:build\temp.win32-2.6\Release\_MeCab.pyd.manifest LINK : fatal error LNK1181: 入力ファイル 'unrecognized.lib' を開けません。 error: command '"c:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\link.exe"' failed with exit status 1181 と出ます。
Rubyを使いなさい。
ruby厨は他の言語もいっぱい使ってみなさい
SQLiteの文文字コードでつまずいています。 変数を経由すると満足に書き込めなくて困っています。 どなたかたすけてくだちぃ。 # -*- coding: utf-8 -*- import sqlite3 db = sqlite3.connect('hogehoge.db') db.execute('create table tablehoge(val1, val2)') db.execute("insert into tablehoge values ('ふが1', 'おっぱ1')") v = (u'ふが2'.encode('utf-8'), u'おっぱ2'.encode('utf-8')) db.execute("insert into tablehoge values " + str(v)) db.commit() a = db.execute('select * from tablehoge') for i in a: print i db.close() とすると、 >>> (u'\u3075\u304c1', u'\u304a\u3063\u30711') (u'\\xe3\\x81\\xb5\\xe3\\x81\\x8c2', u'\\xe3\\x81\\x8a\\xe3\\x81\\xa3\\xe3\\x81\\xb12') と表示されます。 どうすれば、変数を解した(しかも一旦ユニコード化した)文字列を SqLiteに書き込めるのでしょうか。
db.execute("insert into tablehoge values (?,?)", v)
>>547 ありがとう。
その使い方が正当だったのですね!
恥ぱいは文字コード変換についてまったく書いていないクソ本ですね。
db.execute("insert into tablehoge values (%s)" % ','.join("'%s'" % s for s in v)) すげー無駄
教えてください。Google App Engine上で簡単な採番を実現したいと考えています。 Oracleのsequenceのような自動採番の仕組みを見つけられなかったので、以下のようなコードを書いて採番することにしたのですが、コードをsyncronizedにする方法がわかりません。 ぶっちゃけJavaのように syncronized{ hoge() } とか、C#のように lock(){ hoge() } とか書きたいんですけど、Pythonでこれを実現するにはどうしたらいいんでしょうか? from google.appengine.ext import db class IdGenerator(): def generate(self): cursor = db.GqlQuery("SELECT * FROM IdModel") id = None if cursor.count() < 1: id = 0.0 idModel = IdModel() else: idModel = cursor[0] id = idModel.id id = id + 1.0 idModel.id = id idModel.put() return id class IdModel(db.Model): id = db.FloatProperty()
db.run_in_transaction
はやくしてください。
554 :
551 :2009/03/07(土) 00:35:19
>>552 ありがとうございます、まさに求めていたものでした!
556 :
551 :2009/03/07(土) 00:54:26
>>555 ありがとうございます、ビデオも見せていただきます!
Pythonはじめてな上に慣れないDatastoreなので
悪戦苦闘してますw
>id = db.FloatProperty() >id = id + 1.0 だれかここに突っ込めよ
ディレクトリの名前が FooDir だとすると 内部の app.py (エントリーポイント) で import FooDir とすると __init__.py が呼び出されますか? FooDir.py とか見当たりませんでした…
すみません…意味がわかりません
普通は教えてもらってそれほど感動したなら、今度は自分が教える側に回ろうとか思うもんだけどな 1年半経って未だに質問するだけか 猿だな 答えて貰えなきゃ感謝してるはずのスレで罵詈雑言撒き散らして荒らすあたりが本当に猿
565 :
デフォルトの名無しさん :2009/03/07(土) 16:29:26
sys.path.append(os.path.dirname(__file__)) sys.path.append(os.path.join(os.path.dirname(__file__), 'application')) plugins_root = os.path.join(os.path.dirname(__file__), 'plugins') if os.path.exists(plugins_root): plugins = os.listdir(plugins_root) for plugin in plugins: if not re.match('^__', plugin): exec('from plugins import %s' % plugin)
気象予報士って13歳でも受かるんだな
確かにPythonの綺麗なインデント、コードスタイルには興味があるけどー Rubyと比べると正直価値は無いと思うがなぁ。 ていうかSmalltalkと同じ発想でしかも低レベルなのが物凄く悲しい 俺みたいな凡人には推し量れない意味があると信じたい
俺みたいな凡人には推し量れない意味があると信じたい
インデント、コードスタイルで Python 選んだ訳じゃないからなぁ
ぶっちゃけ、俺の書くコードの見た目はだいたい全部同じになる。(関数系は除いて) ただ、モンティパイソン精神でこれ使ってる。
Rubyと比べると正直価値は無いと思うがなぁ。 Rubyと比べると正直価値は無いと思うがなぁ。 Rubyと比べると正直価値は無いと思うがなぁ。
ドキュメンテーションが半端なライブラリ等はプロジェクトに 持ち込むべきじゃないし、ドキュメンテーション活動が活発なところ からチョイスした方が楽が出来る
Python で抽象クラスを定義するにはどのように書けばよいでしょうか?
import ImageTk as Itk とすると ImportError: No module named ImageTk となるのですが、どうすればいいですか?
PIL入れろ
タプルとかのコレクションを可変個引数に上手く渡すにはどうしたらいいです? perlでふつうに&func(@array)みたいに。
func(*array) かな
func(**hash) かな
普通に渡すならそれで良いんですけど、可変個引数を取る関数にタプルを上手く渡せないものかと。 (a, b, c) = get_tuple() want_varg(a, b, c) # 可変個引数な関数 この時に一時変数 a, b, c を介さずに引数を渡せないものですかね?
want_varg(*get_tuple())
>582 それです! ありがとうございます。
目の前にあっても見えないことってあるんだな
先生!教えてください。 WindowsでPython使う場合、ActivePythonのPythonどちらを使えばいいですか? あと、2.6.1と3.0.1のどちらが良いですか? 初心者です。 よろしくお願いします。
>>585 JythonかIronPythonのほうがいいよ
>>585 公式の2.5.4オススメ
WindowsAPIやCOMを使うつもりがあるならActivePython
自ら進んで苦労したい物好きなら3.0
なんで2.5系薦めるんだよ・・・・・・
>>586 はふざけてるんだろうけど
まだ2.6に対応してないライブラリが多いから
すんません、教えてください。Win32 python2.6.1です。 リストの要素をCSVに落としたいんだけど。 こんなデータ(リスト)を ["a1", "b2", "c3", "d4", "e5"] ↓ こんな文字列(CSV形式)に変換 "a1,b2,c3,d4,e5" にしたいんですけど、一発でできる関数ってありますか? いや、forでまわして末尾にカンマつけてって、 そんで最後までやったら末尾のカンマを取るってのは、流石にちょっと野暮ったいと思ったので。
L = ["a1", "b2", "c3", "d4", "e5"] ','.join(L)
joinじゃだめ?
>>594 トン。ダイレクトにCSVに書き込む奴もあるのか。
流石というか、誰もが使うようなものは標準としてあるもんなんだな。
車輪の再発明(しかも超低脳)してばっかだわ、俺。
バイトコードってどうやって、つくるの? python -O foo.pyでは、ダメなの?
compileall, py_compile
598 :
デフォルトの名無しさん :2009/03/13(金) 18:41:39
>>> 'ほげ'.decode('cp932') u'\u307b\u3052' >>> ('%s' % 'ほげ').decode('cp932') u'\u307b\u3052' >>> (u'%s' % 'ほげ').decode('cp932') Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeDecodeError: 'ascii' codec can't decode byte 0x82 in position 0: ordinal not in range(128) >>> (u'%s' % 'ほげ'.decode('cp932')) u'\u307b\u3052' >>> ('%s' % 'ほげ'.decode('cp932')) u'\u307b\u3052' >>> ('%s' % u'ほげ').decode('cp932') Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128) >>> ('%s' % u'ほげ').encode('cp932') '\x82\xd9\x82\xb0' >>> (u'%s' % 'ほげ').encode('cp932') Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeDecodeError: 'ascii' codec can't decode byte 0x82 in position 0: ordinal not in range(128) >>> (u'%s' % u'ほげ').encode('cp932') '\x82\xd9\x82\xb0' >>> ('%s' % u'ほげ'.encode('cp932')) '\x82\xd9\x82\xb0' >>> ('%s' % u'ほげ') u'\u307b\u3052' >>> type('%s' % u'ほげ') <type 'unicode'> >>>
py2exeで実行ファイルをつくってみたんですが、別のWindows 2000マシンで実行したらmsvcr90.dllを要求されました。 再配布パッケージを入れればよいようですが、そもそもこのDLLを要求されないようにすることはできないんでしょうか?
python26.dllを/MTでビルドすれば可能かも知れないけど 拡張モジュールとFILE*でやりとりしてるとことかあるから多分無理じゃね
ありがとうございます。 やっぱりダメですか。配布先にDLLのインストール要求できるならそもそもPythonインストールして貰えばいいし、py2exeって何なんでしょうね。 Vistaだと最初からDLL入ってるのかな。
>>601 インストールしないまでもexeとセットでdll配るんじゃダメなんだっけ?
同一フォルダにあれば動きそうだけど。
同一フォルダでOKな気が。
漏れは setup.py の data_files に書き足してる 最近の atom の net book とかだと msvcpXX.dll なんかも持っていかないと動かないみたいだし
msvcpってC++ランタイムだからいらないと思うよ どっちにしろmsvcのランタイムは配布条件が面倒くさい
Microsoft.VC90.CRT.manifestを添付するのだけ気をつけて exeと同一ファイルに配置するのはOKだから別に面倒くさくはないよ。
ファイル->フォルダ
>>605 が言ってるのは方法じゃなくて条件(ライセンス)でしょ
詳しいこと忘れたけど
>>605 無いと動かなかった
そのファイル一個だけ追加したら動いた
importしてるmoduleが要求してたの鴨試練
調べてみたけどmsvcr90.dllをコピーして再配布していいかどうかわかりませんでした。 ユーザにMSのサイトからパッケージをダウンロードしてもらうなら問題なさそうですが、手間ですよね。残念。
>>609 もし面倒じゃなければ依存関係調べてみれば?
>>910 Microsoft Visual C++ 2008 Express Editionのredist.txtには
C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT
を手を加えずにディレクトリ名も変更しないでそのまま再頒布しろって書いてあると思う
>>610 py2exeにsetupツールも入れてexe化して
MSのサイトからパッケージをダウンロードするように作っておけば?
614 :
606 :2009/03/15(日) 01:19:17
貴様らワシの言うことが信じられんと申すか……
>>614 素直にRuby使った方がよろしいのではないでしょうか。
Windows上でRubyとかまたご冗談を
rubyのexerbで実行ファイルつくるとDLLなしで動作するよ。 しかもどうやってるのかLinux上でつくれたりする。
>>617 あれは実行ファイルじゃないから
自己解凍圧縮ファイルみたいな発想
620 :
デフォルトの名無しさん :2009/03/16(月) 18:36:56
pythonでTkinterを使用しGUIを勉強しています。 タブブラウザのようなインターフェイスにするにはどうすればいいでしょうか? 少しググったらmaya.cmdsをimportしてtablayoutうんぬん・・・というページがあったのですが、 mayaとか持ってませんし・・・
>>622 ありがとうございます。
BWidgetはTcl/Tkの拡張用のようなのですが、Tcl/Tkも導入しなければなりませんか?
DLしたのはBWidget1.7.0でした
624 :
デフォルトの名無しさん :2009/03/16(月) 21:17:35
解決というか
>>622 さんのおっしゃられた
http://tkinter.unpythonic.net/wiki/NoteBook のサンプルが表示されるようになりました。
原因はBWidget1.7を入れるフォルダを間違えていました。
bwidgetフォルダとsetup.py tabdemo.py test.pyはpythonのLibフォルダへ
BWidget-1.7.0はpythonのtclフォルダに入れればよかったのですね。
レスくださったみなさまありがとうございました。
連続で質問ばかりしてしまいすみません。 タブを選択(クリック)すると、そのGUIのページを表示するのにはどうすればいいでしょうか? 以下現在のコード(サンプルを修正したもの)です。 # -*- coding:UTF-8 -*- import bwidget, Tkinter, sys, os app = Tkinter.Tk(); app.wm_title("Tabs") notebook = bwidget.NoteBook(app, arcradius=2); notebook.pack() Tabs = ['a','b','c'] for i, f in enumerate(Tabs): page = notebook.insert(Tkinter.END, i, text=f) sw = bwidget.ScrolledWindow(page) text = Tkinter.Text(sw) #text.insert(Tkinter.END,f) sw.setwidget(text) sw.pack(side=Tkinter.TOP, fill=Tkinter.BOTH, expand=True) notebook.compute_size() app.mainloop() aタブを選択したら、Frameを表示して、ボタンを配置して、といういつものGUI作成 (または、それをすでに定義してある関数) を表示させたいのですが、bwidget.ScrolledWindow(page)ではもちろん表示されることはありません。 簡単なサンプルコードがのっているページや方法があれば教えてください。よろしくおねがいします。
tabs = ['a', 'b', 'c'] for i, f in enumerate(tabs): page = notebook.insert(Tkinter.END, i, text=f) p = Tkinter.PanedWindow(page) p.pack(fill='both', expand='yes') b1 = Tkinter.Button(app, relief=Tkinter.SUNKEN, text='Quit-' + str(i), command=app.destroy) b1.pack() p.add(b1) b2 = Tkinter.Button(app, relief=Tkinter.SUNKEN, text='Quit-' + f, command=app.destroy) b2.pack() p.add(b2)
>>629 コードまでありがとうございます。
一応カタチにはなりました。ありがとうございました
631 :
デフォルトの名無しさん :2009/03/18(水) 18:51:19
質問です。 osはwindowsxp、 PythonのversionはPython 2.5.2を使っています。 subprocessモジュールを使ってコマンドプロンプトでの以下のような二行を実行したいと思っています。 C:\Python25>doskey mpc = "C:\Program Files\mplayerc_20080104_jpn_r3\mplayerc.exe" $* C:\Python25>mpc test.wav 一行目は subprocess.Popen('doskey mpc = \"C:\Program Files\mplayerc_20080104_jpn_r3\mplayerc.exe\" $*',shell = True) で解決できるのですが 続けて実行するように二行目(mpc test.wav)をどう書けばいいのかがわかりません。 どなたかわかる方お願いしますm(_ _)m
よくわからんがos.system()を使ってはどうかに?
>>631 目的は、単にmplayerc.exeで音楽を鳴らしたいの?
ならdoskeyはいらんのじゃないか
import subprocess
mpc = 'C:/Program Files/mplayerc_20080104_jpn_r3/mplaeyrc.exe'
subprocess.call([mpc, 'test.wav'])
でできると思うが
634 :
633 :2009/03/19(木) 12:24:38
- mpc = 'C:/Program Files/mplayerc_20080104_jpn_r3/mplaeyrc.exe' + mpc = 'C:/Program Files/mplayerc_20080104_jpn_r3/mplayerc.exe' typoってた 後は、test.wavのフルパスを指定していないので、そこがカレントディレクトリに なっていることを確認汁
popen2.popen3 使うのと subprocess 使うのはどっちがどのくらいいいの?
今はsubprocess推奨で、他はレガシー扱いのはず
subprocessでいいんじゃない? キッチンシンク的だが、何かに不足することはない。 他の何かだと、ちょっとした設計変更で別の何かに書き換える必要が あったりしていろいろ面倒なことが多い。
ありがとう勉強になりました ちょっとためしてみたけど subprocess.Popen のあと stdout.read() すると非同期で動くんですね
tupleを戻す関数を呼ぶとき hoge, fuga = hage() と書くのか (hoge, fuga) = hage() と書くので何か違いはありますか? また return hage, fuga return (hage, fuga) でも違いはありますか?
まったく同じ。dis.disで調べろ
ありがとうございます
itertools.teeの使い道がいまいちよくわからないのですが どういった際に有用なのでしょうか?
>>642 俺も使ったことねー
_1, _2 = tee(xs)
_1の処理
_2の処理
みたいに逐次的に2-pass処理するんなら
結局リストと同様に全要素メモリに持っておかないといかんし、それならリストでいい
なんかもう少し高級な場合に必要なのだろうと思った
644 :
643 :2009/03/20(金) 22:10:54
あー多分あれだ、前後の要素みながらやる仕事にいいんじゃないか 全部は要素を持っておく必要が無いが、近傍のN個程度の要素が欲しい、という場合 tee使わんでも書けるけど使ったほうが綺麗に書けるのかもしれない
>>643-644 回答ありがとうございました。
具体的な例が今のところ思いつきませんが、そういうような処理を要する時に使ってみたいと思います。
python の正規表現で、以下のような条件をすべて満たす文字列はど のように表現すればいいのでしょうか。 o 英小文字を一字以上含む o 英大文字を一字以上含む o 数字を一字以上含む o ngword(case無視)をふくまない o 全体で6文字以上である ruby とか perl だと以下の正規表現でうまく動くみたいなのですが、 python の場合、どのように書けばいいのかがわかりません... /(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?i)(?!.*ngword)^[ -~]{6,}$/
一つの正規表現でやらなきゃならない理由は?
自己解決しました。(?i) が正規表現全体に効いてしまうのですね。 >>> re.compile(r'(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?i)(?!.*ngword)^[ -~]{6,}$').search("eka2d______") <_sre.SRE_Match object at 0xb7ef6870> # 英大文字が含まれていないのにマッチ ちょっと面倒ですが、以下のようにする事でうまく動くようになりました。 >>> re.compile(r'(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*[nN][gG][wW][oO][rR][dD])^[ -~]{6,}$').search("eka2d______") >>> re.compile(r'(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*[nN][gG][wW][oO][rR][dD])^[ -~]{6,}$').search("eka2dA______") <_sre.SRE_Match object at 0xb7f0cd78>
>>647 レスありがとうございます。正規表現で書ければ、コード本体をいじらなくて
も済むという事情があったからです。
Pygameのインストールが上手くいかないので教えてください WindowsにPython2.5.4をいれ、pygame-1.8.1.win32-py2.5.msiでインストールして >>> import pygame と呼び出しているんですが、何度やっても Trackback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named pygame と出ます。 解決方法があれば教えてください
652 :
デフォルトの名無しさん :2009/03/22(日) 20:08:25
>>651 site-packageを足がかりに調べてみたところ
TracLight入れたときに環境変数が色々と書き換えられてたのが原因でした
元に戻したところ無事に動きました
ありがとうございました
質問させてください。 Pythonでsubstring(文字列の切り出し) を実装するには、どのような方法で実装するのが一般的 なのでしょうか? 普通にstrNew = strVal.substring(1,5) とかできるのかと思ってたらできなくてびっくりしてます。
strVal[1:5+1]
>>654 ありがとうございます。
末尾を指定せずに切り出すのもこれでいけるんですね。
助かりました。
こういうの知ってないとググり様がない気がする
と言っても .substring() が良いっていう意味じゃないからね
>>656 Python 文字列 切り出し
でぐぐればいい
リファレンス読めば書いてあるじゃない
リファレンスのどこにあるかを問題にしている訳で
>>662 シーケンス型と文字列型のところみたら乗ってるだろ。
最近のヤツは検索以外の方法で情報を探す能力無いのか。
Python初めて使うんなら、タダで読めて和訳もされてるチュートリアルぐらいは ざっと読んどくといいぞ 序盤の「形式ばらないPythonの紹介」って所に文字列スライスの例も 出てくる 基本中の基本だからな
もう少し読みやすくなってるといいよね 次のバージョンの日本語に期待
666 :
デフォルトの名無しさん :2009/03/25(水) 14:08:40
プロセスは動かしっぱなしで定期的にメモリを食う処理をしているんですが Pythonで使わなくなったメモリはOSに返されて居るんでしょうか? インタプリタがヒーブとして握ったままとか無いですか? OSはWindows XPとLinuxです。インタプリタのバージョンは2.6です。
667 :
デフォルトの名無しさん :2009/03/25(水) 23:59:16
enthoughtのETS-3.2.0使えてる人いますか? Enable-3.2.0のインストールで /private/tmp/easy_install-OkiW1r/Enable-3.1.0/build/docs/html/.doctrees/index.doctree が無いっておこられる…
>>666 pure Python で、不必要なオブジェクトの参照を掴んだままだったらメモリは解放されない。
Javaとかと一緒。
>>669 それはやめといたほうがいい、やりたいというならよく調べてからだな
Noneでも入れとけばいい
オブジェクトがGCで解放されるかどうかと「OSに返され」るかどうかは イコールじゃないよ Pythonは最終的にはlibcのmalloc()/free()を使っているから、どういう 戦略を採っているかはlibcの実装によるが、普通はOSにはいちいち返さないはずだ 解放された領域は、再確保時に使いまわせるようにプールされる
バッファとかキャッシュみたいなもんだね いちいちOSに伺い立ててたら遅いから 借りたものは死ぬまで返さない方針の方が速い
Rubyかどっかのスレで似たこと聞いてたひといたけど 同じひとかな
>>671 うん、ある程度はプールされる。
でも大幅にメモリが空いたらOSに返される。
Windows上ではCPythonとIronPythonがあるけどどっちがいいんだ? やれることに違いはあまりなさそうだが。
普通はCPythonじゃねーか? 漏れの場合は仕事でJavaとかJythonもやるのでEclipse上であれこれソースをいじるし、 サーバーサイドも書くので互換性を意識してCPython使っている。 IronPythonはプライベートのお遊び用ってスタンスだけど。 普段の生活でWindowsしか触らないなら、どっちも違いはないかな。
なるほど。Ironの方でないと実現できないってケースにぶち当たるまではCPythonをやっとくか。 日本語資料の豊富さでもCPythonが上手のようだし。
IronPythonはお遊び専用
IronPythonかなり遊べるけど、やっぱ遊び専用だな。 使えないという意味ではまったくない。
遊びには使えるが 仕事には使えない
620 :nobodyさん:2009/03/27(金) 23:54:31 ID:KMOu2qJC
「pygameでろくでなしブルース」
http://www.freepe.com/i.cgi?rokublues プログラマーはあなたでお願いします。
あと、BGM(効果音はくにおから取ってほしい)製作出来る方を募集します。
参加は俺のドット絵のセンスを認めて頂いた場合だけで構いません。
誰も乗らないならそれまでだと受け止めます。
ただ、やるなら夢はでっかく、
最終的に、ネット経由の多人数プレイで、
学園対抗の乱闘騒ぎが出来るゲームにしたいなあ。
684 :
デフォルトの名無しさん :2009/03/29(日) 06:37:34
685 :
デフォルトの名無しさん :2009/03/29(日) 19:08:38
Pythonしか知らないのですがメンバ変数とかのメンバとはどういうものでしょうか?
C/C++用語だろ
win上で走らせるスクリプトで、ファイルを削除じゃなくてゴミ箱に 入れるようにしたいんだけどどうすればいい?
>>688 Pythonのことは知らないが、Win32APIならSHFileOperation
>>689 なるほど、Pythonでやるなら拡張モジュール用意しなくちゃだめか。
さんくす。
>>690 標準ライブラリにある ctypes でできない?
できるよ
693 :
デフォルトの名無しさん :2009/04/02(木) 08:27:09
おはようございます。 春からpythonで開発していくことになりましたが、全て英語で書いてるので全く理解できません。 日本語のマニュアルとか、本とかは出ていますか?
>全て英語で書いてるので 理解してないのに良くかけるな
英語の勉強も並行したほうがいいのでは。 喋れないのは仕方ないが、ドキュメントも読めないレベルだと 転職も難しいぞ。
698 :
デフォルトの名無しさん :2009/04/02(木) 10:50:23
ありがとうございます!
日本語からやり直した方がいい
>>693 Python やめた方がいい。職業も変えたほうがいい。
もっと自分の能力にあった仕事を選んだ方が幸せだぞ。
whileを使って、足し算をするソース教えて。 <条件> ・inputで計算の回数を入力する。 〜例〜 Input any number :3 //計算回数 Input any number :5 //1つ目 Input any number :6 //2つ目 Input any number :4 //3つ目 15 ってなヤツ。
a=int(raw_input('Input any number :')) b = 0 for i in xrange(a): b+=int(raw_input('Input any number :')) print(b)
ごめんwhile使ってなかったわ
a = int(raw_input('Input any number :')) b = 0 i = 0 while i != a: b += int(raw_input('Input any number :')) i += 1 print b
while i < a: の方が自然。
a = [] while True: a.append(int(raw_input('Input any number:'))) if len(a[1:]) == a[0]: break print sum(a[1:])
cookieからキーを指定して情報を読むにはどうすればいいんでしょうか import urllib2, cookielib cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) request = urllib2.Request(url) html = opener.open(request).read() こんなかんじでHTMLを取得してるのですが cookieの中に入ってる情報をどうやって取り出せばいいのかわからず困ってます
環境変数のHTTP_COOKIE os.environ.get('HTTP_COOKIE') a=hoge;b=fuge という形でドメインごとにとれるよ
できませんでした。
>>712 だとそんな環境変数ないと怒られました。
きちんとシェル上から操作しました。HTTP_COOKIEなんて存在しません。
714 :
711 :2009/04/06(月) 03:37:55
712は私ではありませんが、できませんでした。 html = opener.open(request).read()のあとに os.environ.get('HTTP_COOKIE')してみましたがNoneが返ってきます。
for cookie in cj: ....print cookie.name, cookie.value, cookie.domain ....print dir(cookie)
>>716 できました!ありがとうございます。
簡単そうなことなのに、検索してもドキュメントを探しても見つからないので
ほとほと困ってました。
なんで他の人間はレベルが低いんでしょうかね。 私にわからないということで馬鹿にしてるのでしょうか。
719 :
デフォルトの名無しさん :2009/04/07(火) 06:32:08
pythonで書かれているmailmanつかっているんですが、 メールに変なコントロールコードが入ると処理が止まってしまいます。 なんとか無視させる方法ってないんでしょうか?
一日待ちましたが、答えが出てきません。
・バージョンも環境も分からない ・どこで止まってどういうログが出てるのか分からない ・「変な」という主観が具体的に何を指しているのか分からない ・1日経ってない うちでは別に問題なく動いてますよ(事実)って答えればいいのか?
本文まるごと base64 で援交しる
ファイルのsha1を計算するのにぐぐってみたら f = open(filename,'rb') b = f.read() f.close() みたいなことをやって計算してたけど この方法だと、一度メモリに保存してからしかできないので 2G以上のファイルではメモリエラーが出てしまいます。 IronPythonはもっとひどく、bがStringとして実装されているせいか200MB程度でもアウツです。 sha1をファイルから直接計算する方法は無いのでしょうか?
update使って少しずつデータを食わせて
import hashlib import sys f = open(sys.argv[1], 'rb') h = hashlib.sha1() while True: d = f.read(1024) if d: h.update(d) else: break f.close() print h.hexdigest()
ある文字列が与えられたときに それをモジュール名としてimportってできますか? またその中にある関数とかクラスを呼べますか? def hoge(fuga,hage,hoge): import fuga h=fuga.hage() #fugaの中にhageクラスがあります h.hoge() #hageクラスのインスタンスメソッド いろいろ作業 みたいなことです
__import__()
>>> m = __import__('myapp', {}, {}, []) >>> app = getattr(m, 'application')() >>> from wsgiref import simple_server >>> simple_server.make_server('', 8080, app).serve_forever() うまくいきました ありがとうございます
数字のprintについて質問です。 正確性は犠牲にして出力時に有効数字二桁になればいいというような場合に f = 0.50 f *= 2 print str(f) としたときに1.00と出したいのですが decimal.Decimal(0.00)をベースに演算するしかないのでしょうか? あとC言語でいう%02dのようにしたいときは print str(d).rjust(2,'0') とするしか無いのでしょうか?
print "%.2f" % 1 print "%02d" % 1
あれ?
%なんてものがあるとは・・・ orz すっかり見逃してました。 ありがとうございました。
文字列に剰余演算子を適用すると、左側をフォーマットのためのテンプレート、 右側をそれを埋めるための値として扱うなんて、奇天烈な仕様は誰が考えたんだ?
文字列中で式展開とかするよりよっぽどいいよ
>>736 C++のBoostとか使ったことないの?
BoostがPythonに倣ったんじゃないの?
その仕様は嫌いじゃない。
こやつめw
まぁ将来廃止されるけどね > %によるテンプレート
743 :
デフォルトの名無しさん :2009/04/12(日) 23:51:03
kwsk
str.format
%にTemplateにstr.formatに、と同じことをする方法が多すぎるのがPythonらしくなくて違和感あったけど %のほうは廃止の方針なのね。 剰余演算子を使いまわすのがキモいからなのか、 テンプレート形式がC言語由来で動的型のPythonに合わないからなのか、 辞書を渡すよりデフォルト値を使うほうが自然だからか、 メソッド形式のほうがファーストクラスとして使える分汎用性があるからなのか、 タプルを渡すとき必ず括弧がいるのに違和感があるからなのか? Templateのほうはどうなるんだろう
正規表現で6桁の数字を [0-9]{6}ってやっても引っかからない。 [0-9]{1,6}ってやっても引っかからない。 pythonで6桁の数字の正規表現求む
ヒットさせたい文字列と該当箇所のコードがあったほうがいいかと
748 :
746 :2009/04/13(月) 10:39:47
ごめん、普通にできた
[0-9]{6}
>>747 アドバイスありがとうございます
pythonが生き残れるのか不安になってきた やっぱperlとphpに押しつぶされるんじゃないかって
Rubyは知らないけど、Python, Perl, PHPはこれからも生きていくと思う。それぞれ長所が異なるし。
Pythonの長所ってなに?
キサマには教えない。
Pythonの長所は無しと
胴体が長所
>>753 キサマの言うとおりPythonに長所なんてないからさっさとドカタ仕事に戻れや。
Rubyは消えそうですね
Pythonは組み込みスクリプト用途として3DCG系ではよく使われてるらしい。 RubyはRPGツクールw
>>751 長所は汎用インタプリタ言語としてのバランス。大きな短所が存在しないことが長所。
・機能性と可読性と一貫性のバランスが取れた言語仕様
・言語、組み込みオブジェクト、標準ライブラリの、正しさと使いやすさのバランス
・標準ライブラリの充実
・外部ライブラリの充実
・拡張モジュール作成をサポートするツールの充実 (SWIG/Pyrex/Cython/boost.pytho/Py++/SIP)
・マイナーバージョンアップに置ける下位互換性の高さ
・メジャーバージョンアップでの移行のサポート (2.x -> 3.x)
・LLの中では実効速度もメモリ効率も高い水準
・Windows環境も手厚くサポート
-- MSVCで拡張モジュールをコンパイルする機能が標準ライブラリに入っている
-- レジストリアクセスも標準ライブラリでサポート
-- パッケージをWindowsインストーラ形式にするのも標準ライブラリでサポート
-- Unicodeパスに自然に対応(日本語環境で不安無し)
numpy,scipy,matplotlib
ctypesが標準なのもWindows環境では有難い
pythonでテキストエディタ作るのとCでテキストエディタ作るのではどっちがすごいですか?
>>759 その三つに加えて
Mayavi2があれば化学屋の俺は満足だ
短所: ・ブロックに閉じ括弧がない。 ・おかげでlambda式がかっこわるい。 ・import 文が微妙。 ・ユニコードの扱いが微妙だった。 他はわりと好き。%も好き。
久しぶりに来たら
>>1 のテンプレから日本語のアノHP(笑)がなくなりましたね
GJ!!です
765 :
デフォルトの名無しさん :2009/04/14(火) 14:37:40
今からpythonを始める場合 バージョン2とバージョン3どちらから始めたらよろしいでしょうか?
2
最低 2.5 以上から 個人的には 2.6 使うくらいなら 3 使っちゃった方が良いと思う
2と3ってphp4とphp5.2ぐらいに違いあったっけ?
769 :
765 :2009/04/14(火) 15:06:16
ありがとうございます 両方とも試しで入れてみたのですが3の方はコマンドラインの方で「print 1」と入力してもエラーがでて実行できなかったので 2.6のほうをインストールしました
6個のreal型変数x1、y1、x2、y2、x3、y3を定義しそれぞれに実数つを読み込んで、xy平面上の3点 (x1、y1)(x2、y2)(x3、y3)を頂点に持つ三角形の面積を計算して、その値を表示するプログラムを作成してください。 ・公式:底辺x高さ÷2を使って計算してください。 お願いします!!
wxPythonとpywin32が対応するまで移行できない
ダンジョー臭がするなこのスレ
pythonで浮動小数点の多倍長演算をする方法はありますか?
Decimalモジュールがありましたorz
C++Builderみたいな感じでマウスでぴょこぴょこってGUIアプリ作りたいんだけど、Pythonだとそういうの無理? wxPythonとかめんどくさくてさあ
wxPythonにもXRCedというResourceEditorが付属してるだろ
>>770 >>778 てなことを、10スレ以上で言って回ってるのかおまえらは? おヒマですね
マルチポストがどーたらを言ってる奴自身、ろくな回答してねえのが多いんだよな
# 加えてクロスポストを知らなかったりするし
テロリストの論理で文句言ってら
すげー 2chってクロスポスト出来たんだ
マルチというかすでにスパムか荒らしの域
>>772 python3.1が出たら使ってみたいなあ。
はあ?
788 :
デフォルトの名無しさん :2009/04/16(木) 01:14:08
module foo BAKA = false def self.bar return true end end p foo::bar p foo::BAKA class foo: BAKA = false def bar(self): return true cls = foo() print cls.bar() print cls.BAKA
Ruby厨うぜ
790 :
デフォルトの名無しさん :2009/04/16(木) 14:55:27
誰か教えてください。 httplib2でヤフーにログインしようとしてみたら 10054のエラーが帰ってきました。 どうやったらログインできるのでしょう。 httplib2のパッチを当ててwikiのサンプルでやってみました。
うちではもんだいなかったよ
793 :
デフォルトの名無しさん :2009/04/18(土) 02:47:40
class MyTask: def calc(self): みたいなのが既に存在していて、calcの部分に結構時間がかかります。 この計算は条件を変えて何十個も走らせたいので、threadを分けようと考えています。 ただし現在使っているPCが4コアなので、 最大で3コアまでしかこの計算に占有させたくありません。 1つのcalcが実行し終わると最大3 threadを保ちつつ、新たなcalcを走らせたいのですが、 何か良い方法、標準的な方法はあるでしょうか。 class MyTaskは、自作のものではなく、中身の変更はできません。
multiprocessing
>>795 Pythonはマルチスレッドにする方法自体はあるが、やっても一つのコアしか使わないので
処理を分散したければマルチプロセス化してください
>>795 一回の時間がかかるんだよな?
なら普通に三つ実行して、終了待ちして一つ終了するたびに次のを実行すればいいだけじゃない?
800 :
デフォルトの名無しさん :2009/04/19(日) 00:11:28
戸田恵梨香
def X(x, y, z): print x, y, z t = (1, 2) X(*t, 10) 見たいな感じで、タプルを分解したものにさらに引数を追加して渡したいのですが これは通りません どういう方法がありますか?
803 :
デフォルトの名無しさん :2009/04/22(水) 12:03:30
t = (1, 2) x, y = t X(x, y, 10)
>>802 def X(x, y, z):
print x, y, z
t = (1, 2)
X(z=10, *t)
>>803 たしかにそれで通りますね、どうもありがとう
>>804 ありがとう
こうすればよかったのか
pygameの質問です 星の形をした画像の当たり判定をきちっとやりたいときはどうすればいいんでしょうか?
星の形のポリゴンとの衝突判定をすればいいだろ もちろん、最初に矩形で衝突判定をしてからな
datetime オブジェクトとエポック秒に直すにはどうしたらいいですか?
809 :
デフォルトの名無しさん :2009/04/22(水) 20:02:23
datetime オブジェクトをエポック秒に直すにはどうしたらいいですか? でしたすいmせん
time.mktime(datetime.datetime.now().timetuple())
>>807 聞いてばかりですいません
ポリゴンとの衝突判定というのはどうすればいいんでしょうか?
エポック秒をdatetimeオブジェクトに直すにはどうしたらいいですか?
>>813 datetime.datetime(time.localtime(0))
>>811 何かスレ違いじゃないか?
アルゴリズムの話であって、Python関係ないし。別スレに誘導してくれれば
そこで答えても良いが・・・
そもそも星の画像はアルファ抜きしてあって、それと何か別のBBoxを衝突判定
させたいってことか?完全に2Dでの話なら、ポリゴン使わなくて良くて、
星の外形を成す線分とBBoxの交差判定をすればいけるだろ。
星の内部にすっぽり収まる場合などの判定は自明だし。
というか、画像と何の衝突判定なのか分からんと、適切なことが言えない。
>>816 説明不足でした、すいません
2Dでの話です
画像同士の衝突判定で四角い絵なら問題ないんですが
丸や星型だとどうすればいいのか分からなかったので質問しました
多分知りたいのは「星の外形を成す線分とBBoxの交差判定」というやつだと思います
よろしくお願いします
星形はともかく、丸が重なってるかどうかなら高校数学レベルでわかるだろ。 おそらく、回答にあるキーワードを検索することすらしてないようだし、 もっと基本を自分で調べないと答えてもらっても理解出来ないとおもう。
図形で衝突判定するより,ビットマップで衝突判定すべき。 スプライトのマスクがあるだろ,それを使ってドットの重なりがあるかどうか調べるんだ。
画像が小さいならピクセルレベルでやったほうが早いね 3Dばかりやってるから、ついついベクトルで考えてしまうんだよな
Pythonやるのに高校の数学の知識がいるの? 俺、中卒なんだけど...
hello worldなら小学生でもできる
高校の数学のプログラムを作るのなら、高校の数学がいる。
物理的な位置や動きを表現するなら高校数学レベルは必要になるんじゃないの?角度とか。
825 :
デフォルトの名無しさん :2009/04/23(木) 16:41:16
import cookielib, urllib, urllib2
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar()))
php_url = '
http://polls.dailynews.yahoo.co.jp/quiz/quizresults.php '
params = {'poll_id' : '3717',
'typeFlag' : '1',
'user_choice' : '4',
'.add' : u'回答する'.encode('euc-jp')}
params = urllib.urlencode(params)
fd = opener.open(php_url, params) # urllib.urlencode()がいらないのが特長
import re
for line in fd:
line = line.decode(ENC, 'replace')
rob = re.search(ur'(すでに[^<]*)', line)
if rob is not None:
print rob.group(1).encode('cp932')
というプログラムがあるんですが、二回起動するとクッキーが残ってるようですでに投稿していますと
いわれてしまいます
Cookieの情報はどこかに保存されているのでしょうか?
また、スクリプト上でクッキーを削除して再投稿できるようにするにはどうしたらいいでしょうか
826 :
デフォルトの名無しさん :2009/04/24(金) 02:59:33
そうなのか、数学一番苦手だ 中2レベルで止まってるや
827 :
816 :2009/04/24(金) 03:28:52
>>817 なんだ、星型のマスクを作ってpygame.sprite.collide_mask使えばいいんじゃん。
ただし、画像が大きいと遅すぎて実用にならんだろうから、その際には線分を
使った判定をすべき。やり方は、BBoxと交差するような線分を場合分けするだけ。
線分の数が非常に多い場合には区間木を使えば効率的に検出できるが、
今回の用途にはやりすぎ。
Python初めて2日なんだが、 Google App EngineのPython版とJava版を比較するというミッションを与えられてしまい、 案の定俺の環境では両方ともSDKが動いてくれない手詰まり状態なんだ。。。 誰か助けてくれ。 とりあえずPythonの方のログ Traceback (most recent call last): File "C:\Program Files\Google\google_appengine\dev_appserver.py", line 50, in <module> execfile(script_path, globals()) File "C:\Program Files\Google\google_appengine\google/appengine/tools/dev_appserver_main.py", line 351, in <module> sys.exit(main(sys.argv)) File "C:\Program Files\Google\google_appengine\google/appengine/tools/dev_appserver_main.py", line 330, in main require_indexes=require_indexes) File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2645, in CreateServer return BaseHTTPServer.HTTPServer((serve_address, port), handler_class) File "C:\Python25\lib\SocketServer.py", line 330, in __init__ self.server_bind() File "C:\Python25\lib\BaseHTTPServer.py", line 101, in server_bind SocketServer.TCPServer.server_bind(self) File "C:\Python25\lib\SocketServer.py", line 341, in server_bind self.socket.bind(self.server_address) File "<string>", line 1, in bind socket.gaierror: (11001, 'getaddrinfo failed') 環境は Vista Ulitimate 34bit/Python2.5.5/GAE SDK1.1 インストール時のオプションは全部デフォのまま。特にライブラリ等は追加していない。 見た感じソケット関係のエラーで、Java側も同じようなエラーが出ているんでVista起因のエラーじゃないかと思ってる。 ちなみにネットワークセキュリティ関係は全部切って試してる。サイバーノーガード。 Vistaも使い始めて2日目なんで正直良く分からん。 自宅のXPじゃ一発で動いたんで何かやらかしてる臭いのよね。 とりあえず曖昧ですまんがみんな、オラに力を!
新人教育か何か? だったら自力でがんばれよ。 と言いたいところだが vistaのbad knowhowっぽいので助言すると、 たぶん、右クリック→管理者権限で実行。
>>829 thx
UAC?とかいうのだと思うんだが、
それはもう切ったんだわ
んで
>>828 のような現象が出てる感じ
あと新人教育ないぞw
831 :
デフォルトの名無しさん :2009/04/25(土) 00:52:30
あと新人教育じゃないぞw
11001 はアドレス解決のエラーだからDNSがうまく引けてないだけのように思える 確認するなら、 他のアプリ(ブラウザとか)が外部ネットワークににアクセスできるか、とか、 参照したいアドレスを全部 hosts ファイルに書いて、挙動が変わるかとか、 ネットワーク設定の確認とか、そのあたりかな ネットワークスレにいったほうがよいかも
了解
とりあえずブラウザで同じアドレスにアクセスできるかどうかって所からじゃない?
ランチャー作りたいので、D&Dとトレイアイコンが使えて、あとホットキーとかマウスの位置で表示させたりしたいんだけど、 対応してるGUIライブラリはどれ?
qt
さっきインストールしたのですが、ハローワールドでつまづきました。 シンタックスエラーっていわれますが何がおかしいのか分からないです。 #!/usr/bin/python print 'Hello World'
838 :
835 :2009/04/25(土) 21:17:57
>>836 試しに入れてみます、にしても日本語サイトは情報が古いせいかリンク切れて所が多かった。
>>837 エスパーするとPython3.0を入れたんじゃないか
print('Hello world')
のようにしてみてくれ
840 :
837 :2009/04/25(土) 21:29:09
動きました、一番新しいのをインストールしたけど、まさかそんな落とし穴があるとは思いませんでした、どうもありがとう
最新のlinuxディストリだと3がインストールされてたりするんだろーか
Ubuntu 9.04が出たばっかりだから見てみるといいのでは
>>841 ,842
パッケージ検索してきたら9.04には2.6.2が入っているみたい。ちなみにDebian sidにはきてないぽい。
3は互換性ないし当分先だろう。システム管理アプリにPython使ってるディストリも多いしな
この際、javaみたいにpython3までを名称にしちゃえばいいじゃない。 python3 5.0みたいな。
Java のネーミングとかバージョニングは詳しくない側からすると訳わからんので勘弁
846 :
デフォルトの名無しさん :2009/04/26(日) 08:00:10
mp3のタグをいじるライブラリにeyeD3ってあるよね。 じゃ、aac/m4aのタグをいじるライブラリってあるのかな? 知っていたら教えてください
847 :
817 :2009/04/26(日) 14:15:11
皆さんレスありがとうございます あれから色々検索してみたんですが pygameの公式サイトぐらいしか引っかからなくて マスクの作り方とpygame.sprite.collide_maskの使い方が良く分かりません 教えてもらえないでしょうか? 何度も聞いてすいません、よろしくおねがいします
shift-jisで保存されているfilenameの文字数をカウントしたいと思っています。 下のコードではどうしても行末の改行や文中の空白が削除されないのですが、 よい方法はありますか? for filename in filenames: words = open(filename).read().strip() words = unicode(words, 'shift-jis') print filename + ": " + str(len(words)) + u"文字"
公式リファレンスを読んだところ、strip()は行毎に行われていると分かりました。スレ汚しスマソ・・
stripとstriplines
fnamtchのfnは、何の略なんでしょうか?
typoしてしまいました。すみません。 ○ fnmatch × fnamtch
fnmatchのことなら、file name matchではないでしょうか
>>854 凄く納得しました。
回答ありがとうございました。
857 :
デフォルトの名無しさん :2009/05/01(金) 02:10:19
>>856 サーバー側でクライアント情報をきちんと管理していて、
それに沿った通信をやらないと弾くようになっているのでは?
859 :
857 :2009/05/01(金) 04:06:46
自己解決できました。
またなりすまし厨が湧いてるな。 こんなにスレに張り付いてたら pythonにも相当詳しくなったんじゃないか?www
>>857 Python 2.6 を使う。
py3kはまだ初心者お断り。
>>858 一回目は投票できるんです
ただ二回目以降、スクリプトをもっかい起動しても再投稿ですと言われます
ブラウザをつかってクッキー削除さえすればIP同じでも再投票ができるのはわかっています
yahoo投票を例に出しましたが、他のクッキーでも似た感じなんですよ
クッキーの削除ってどうすればできるんですか?
クッキーないと投稿できないんでしょ しかし、そんなツールは自力で作れ!
865 :
863 :2009/05/01(金) 19:28:39
>>864 そんなツールは自力で作れには激しく同意。
>>825 のツールってCookieJarつくっていきなりpollのrequestしてる
ようにしかみえない。それで1回はうまくいくなら、Cookieは要らないはず。
あと、CookieJarは何も保存してないから、本当にスクリプトをもう一度起動
したらCookieは残らないはず。
つまり、以下の3つのうち一つ以上に該当する。
1.
>>825 は大事な部分が省略されている
2. Cookie削除したら投票できるというのが嘘
3. 「スクリプトをもっかい起動」といいつつ、ループで回しているだけ
そんなしょうもないツールについて他人に聴く and しかも必要な情報を
提示していない
>>825 は逝ってよし。
HTTPのリクエストに従って勝手に作って勝手に保存してくれたと思うよ 場所はLWPCookieJarとかならスクリプトの位置にわかりやすいファイルができたと思うが 普通のCookieJarはしらね!コード読めば?
基本的に、ソースベタ貼りで動かないのでどうにかしてくださいってのは宿題だから答えなくてよろしい。
pythonの宿題なんてどこで出るんだ!?
会社で
自宅で
>>865 ありがとうございます
そのあたりと検討してみようと思います
>>866 とりあえずLPWCookieJar試してみます
>>867 Cookieの保存位置どこ?って聞けばよかったの?そしたらうまくいってないソース貼れって言うんでしょ?w
>>872 死ねっていうかお前の母さんはこんなキチガイを産んだクソ
ソース貼れって言われるのは、質問の説明からしてイミフな場合だけな。 言われてる時点でうんこ。
鯖に迷惑かける連投スクリプトなんざ人に聞いて作るもんじゃないわな
そういう用途ならレンタルの鯖より自前の鯖でやったほうが 保守も楽だし誰にも文句を言われずに済むんだが。
自己解決しました
>>869 自分への課題は自分への宿題だと、私はそう思います!
自分で書いたモジュールを別ディレクトリに置き、importしたいのですが どれが正しい方法かよく分かりません。 myproj/myapp.py <- import mylib.mymodule myproj/mylib/__init__.py <- 空ファイル myproj/mylib/mymodule.py <- 自作モジュール というようにファイルを配置していますが、myapp.pyでimport mylib.mymodule をしてもImportError: No module named mymoduleというエラーが出ます。 importする前にsys.path.append(os.path.join(os.getcwd(), 'mylib')) とすれば問題無いのですが、これは強引な方法な気がします。 もしスマートな方法があったら教えてください。 Linux上でPython 2.5.4を使っています。
>>872 CookieJar は、その CookieJar の中だけに Cookie を持っていて
どこにも保存しないよ。
本当にPythonスクリプトを再起動しているんであれば、Cookieはクリア
されているはず。
内容的にループさせてるのは確実でしょうな
>>882 してないっての、うpしたので全部だぼけ
単に一票ずついれてもらうために晒したに1000ペリカ
>>880 いけるはずだと試してみたが、やっぱり普通にいけたよ
windowsでしか試してないけどバージョンは2.5.4
site-packagesにでもmyprojのパス書いた.pthファイルおいておけばいけるはずだが
スマートではないか・・・
886 :
デフォルトの名無しさん :2009/05/04(月) 05:09:20
>>880 どこかのパス内にmylibっていう同名のファイルもしくはディレクトリがあるのかも。
888 :
880 :2009/05/04(月) 08:27:29
>>885 >>886 >>887 わざわざ確認して頂いてありがとうございます。
もう一度コードを見直したところ、当初myproj/mymodule.pyで定義してあった
クラスのインスタンスをpickleでシリアライズしたファイルを
myproj/mylib/mymodule.pyに移動した後にも読み出そうとしていたのが問題でした。
再度シリアライズし直して問題なく動作するようになりました。
大変お騒がせして申し訳ありませんでした。
なんで質問者って肝心なことを隠すんだろw
>>889 隠したわけではないです。気付かなかっただけです。
大抵の質問は本人が問題無いと思っている場所に問題がある
だからといって全文あげると、宿題市ねを言われる
>>892 てめぇまだいたのかよいい加減消えろカス
荒らし乙
初心者スレにまでPython叩きに来る信者って 惨めだな
スレチかもしれんが、Django日本HP死んでる?
テンポってるな
くそー、GW中に個人開発進めるためにJPドキュメント見たかったんだが。。。 根性でENドキュメント読むか。。
content_type = "%s; charset=%s" % (settings.DEFAULT_CONTENT_TYPE, settings.DEFAULT_CHARSET) Djangoでこんなコードを見かけたんだが、文字列とカッコの間の%ってなんだろ?
Python フォーマット文字列 でぐぐるんだ
>>902 ああ、書式関数と一緒だったのか。サンクス。
ところで都内に住まう諸兄、都内近郊で勉強会とかはあるのかい?
PythonさんはスマートでLLの中では一番賢いと思うんだが、
なかなか社内で理解されなんだ。
せめて同士が近くにいれば安心なんだが。
死ね
まぁこんなやつがPythonいいよとかいっててもなぁw
色々と勉強不足だわな 10年ROMってくるわ
落ち着け10年後には君は死んでる恐れがある!
布教活動の鉄則というか王道 社内で理解されたければ 社員とコミュニケーションとって信頼関係を築け
まずは温泉ですねわかります
お互いのPythonでガチンコ勝負ですねアッー!
以下電池挿入およびダンジョーネタ禁止
ドジャンゴの人達はなんであんなに頻繁に合宿をしているの? 友達がいないの?
ドジャンゴいうなw
Django云々でなくPython使いにはゲイが多いよ あとPython使いの女はカワイイのが多い これ豆知識な
などと訳のわからない事を供述しており・・・
合宿行くとズリ合いばっかしてるもんな 汗臭いしイカ臭いしホモにはたまらない空間だよ
918 :
デフォルトの名無しさん :2009/05/05(火) 22:13:08
30個のコマから1〜3個づつ取っていくニムゲーム(最後に取らされた方が負け)で 先手の場合に勝つための取り方と 後手の場合に勝つための取り方を pythonで調べるプログラムを書いてください
GWの宿題乙
先手がまず1個取って、あとは4-(後手の取った数)だけ取るようにすれば先手必勝かな
大航海時代スレから来ました
925 :
デフォルトの名無しさん :2009/05/06(水) 19:29:54
質問 日本語メール受け取ってヘッダ解析してFromアトリビュートをunicodeにデコードしたいんだが、 Pythonだとどうやる?
>>925 import poplib, email
server = "mail.xxxx.co.jp"
user_id = "xxxx"
user_pass = "xxxx"
p = poplib.POP3(server)
p.user(user_id)
p.pass_(user_pass)
mail_list = p.list()
(no, msg_size) = mail_list[1][1].split(" ")
mail_data = p.retr(no)
msg = email.message_from_string("\n".join(mail_data[1]))
print unicode(msg["From"])
930 :
sage :2009/05/08(金) 00:53:50
pythonのCGIでログインページを作りたいのですが サンプル等ないですか?
931 :
デフォルトの名無しさん :2009/05/08(金) 01:11:16
ありますよ
933 :
sage :2009/05/08(金) 02:00:25
ありがとうございます! これ、どこからダウンロードするんですか?
C/C++よりも高級な言語を学びたいと思いpythonを考えています。 C/C++の十分な知識を仮定していいので、 そんな私に向いている(=オススメな)最初の解説サイトはありませんか?
>>936 それなら標準ドキュメントで十分だろう
IDLEとかで色々試してみるといいよ
>>936 とりあえず標準のドキュメントのチュートリアル。
940 :
936 :2009/05/09(土) 16:52:40
3.0.1の質問だけどいい?
urllib.request.FancyURLopenerを使ってBasic認証が必要なページをopenしようとしてるんだが、
シェルからユーザー名とパスワードを入力した途端TypeErrorで落っこちる・・・
urllib/request.py内でbytesが必要なbase64.b64encodeにstrを渡して怒られてるらしい事は分かるんだが、
以下のコードに何か不備あるんでしょうか。
import urllib.request
opener = urllib.request.FancyURLopener()
opener.open('
http://認証したいURL ')
>>941 悪いのは3.0.1だから2.6.1 を使うといいよ。
2.6.2は2.7/3.1から色々backportしたついでにエンバグしてるから
今は2.5.4か2.6.1がお勧め。
>>942 原因はライブラリ側ってことでいいのかな?
うーん、今回はおとなしく2.6を使う方法で解決することに決めます。ありがと。
python.orgのIssue Trackerを少しあたってみたけど、既知の問題ってわけじゃなさそうだね。
最も開発版ではとっくに修正済みだとかそんなオチかもしれんが・・・
環境:Win2kとPython 2.6.2とsqlite3で質問です。
データベースとpythonの勉強のために郵便番号のデータを使って実験しています。
sqliteにデータを格納した後、select文でいくつかしかヒットしなくて困っています。
原因がわかる方いらっしゃいますでしょうか?
1.データは、ここにある全国一括データです。
http://www.post.japanpost.jp/zipcode/dl/oogaki.html 2.そのデータを必要な項目だけ切り出し、pythonにて別ファイルに保存。
以下ソース。
# -*- coding: shift-jis -*-
# CSVファイルの読み込み
import csv
readcsvfile = csv.reader(file("E:\download\ken_all\ken_all.csv", "r"))
writecsvfile = csv.writer(file("E:\download\ken_all\cut.txt", "w"), quoting=csv.QUOTE_NONNUMERIC)
for row in readcsvfile:
writecsvfile.writerow(row[2:9])
続く。
続き。 3.別ファイルに保存したデータをsqliteへ保存。 以下ソース。 # coding:shift_jis import sqlite3 import csv readcsvfile = csv.reader(file("E:\download\ken_all\cut.txt", "r")) db=sqlite3.connect('E:\download\ken_all\yuubinNo.db') # データベースに接続 db.text_factory = str db.execute('create table yuubinNo(keta7, kana_ken, kana_chouson, \ kana_chouiki, kanji_ken, kanji_chouson, kanji_chouiki)') # テーブルを作成 for row in readcsvfile: db.execute('insert into yuubinNo(keta7, kana_ken, kana_chouson, kana_chouiki, \ kanji_ken, kanji_chouson, kanji_chouiki) values (?,?,?,?,?,?,?)', \ ( row[ 0 ], row[ 1 ], row[ 2 ], row[ 3 ], row[ 4 ], row[ 5 ], row[ 6 ])) # テーブルにデータを挿入。 db.commit() # データの保存 db.close() # データベースの切断 以上、データの保存までできました。 以下、正しくデータが検索できるか実験。 続く。
続き。 4.検索してみる。 以下ソース。 # coding:shift_jis import sqlite3 db=sqlite3.connect('E:\download\ken_all\yuubinNo.db') # データベースに接続 db.text_factory = str # データの検索 #1. cur = db.execute('SELECT * FROM yuubinNo WHERE kanji_chouiki like "%井草%"') #2. cur = db.execute('SELECT * FROM yuubinNo WHERE keta7 like "167%"') cur = db.execute('SELECT * FROM yuubinNo WHERE kana_chouiki like "%イグサ%"') # データの出力 for row in cur: print '%s %s %s %s %s %s %s' % row # 1行のデータ構造はタプル db.close() ここで、問題が出たのですが、データ検索の際に#1.では2件しかヒットしません。 本当であれば、東京都杉並区だけでも3件ヒットするはずです。他県も含めると さらに数件ヒットするはずなのですが、ヒットしません。 原因がわかる方いらっしゃいますでしょうか?
レコードによってコラムが不足してたりして 別のコラムに"井草"が格納されてたり 格納に失敗していたりするんじゃないの?
py2exeみたいにmac用の実行ファイル作れるのってある?
>>948 >>950 どうも。
SQLiteのデータの中身を見られるGUIソフトで中を覗いてみたら、文字コードの関係でしょうか?
正常に見ることができませんでした。
SQLiteの格納時に文字コードを正しいものにしないといけないようですね。
UTF-8が良いのかな?
もうちょっと調べてみます。
ちょっとはヒットするんで、データがおかしいとは気づきませんでした。
やはり、文字コードの問題でした。 SQLiteに格納されたデータが、Shift-JISだったためで、UTF-8に格納し直したら、 正常に検索できるようになりました。 python, SQLite, は、UTF-8が良いようですね。 解決しました。ありがとうございました。
もう一つ質問良いでしょうか? nkfでShift-JISからUTF-8に変換したら、半角カナが全角カナに自動的に変換されたのですが、 UTF-8を使う場合、今後は半角カナを使用しない方が良いのでしょうか? Pythonを使う上で、UTF-8の扱い方を知っておいた方がよいと思っての質問です。
そのオプションがあるのは、調べていてわかりました。 なおかつ、UTF-8には、半角カナもサポートされているのはわかったのですが、 作法とかあるのかな?と思ったもので。 というか、使っている人の判断で良いんですかね? 文字コードって初心者には、悩ましい。なんかたくさんあるし。 プログラムが間違って動かないのか、文字コードが原因で動かないのか、 その判断さえつきづらい。
>>955 Unicodeで半角カナは互換文字だから、互換正規化で全角に変換されるだけ。
なるほど。過去との互換を保つために、取り入れられているので、 今後は、積極的に使わない方が、良いってことですね。 どうもです。
958 :
デフォルトの名無しさん :2009/05/11(月) 03:09:46
>文字コードって初心者には、悩ましい。なんかたくさんあるし。 毛唐はもっと悩んでるだろな だからUTF-8が出来たんだよ これでかなりスマートになった
こんにちは。質問があります。 utcのtime.struct_timeをローカルのtime.struct_timeに変換したいのですがどうすればいいのでしょうか? とりあえず今は以下のようにしていますがこれより良い方法があれば教えてください。 time.localtime(time.mktime(spam)+60*60*9)
time.localtime(time.mktime(spam) - time.timezone) とか?
うめの季節
あかちゃん
ばぶぅ
うほ
unko
次スレの季節だけどテンプレはこれでいいのか?
テンプレなどいらん
import time def fact(n): m = 1 while n: m *= n n -= 1 return m s = time.clock() p = fact(10000) e = time.clock() print(e-s) def f1(x, y): if not x: raise y *= x return f1, (x-1, y) s = time.clock() func, args = f1, (10000, 1) try: while True: func, args = func(*args) except: e = time.clock() print(e-s) 処理時間の計り方はこれでいいんでしょうか かなりぶれがあるんですが
>> sys.getfilesystemencoding() プラットフォームと言語に依存しているはずで通常は変更する必要はない >> sys.stdin.encoding >> sys.stdout.encoding >> sys.stderr.encoding 環境依存でPythonランタイムや埋め込んでいるアプリケーションが用意する。stdin/stdout/stderrは上書きできる >> sys.getdefaultencoding() sitecustomize.py で sys.setdefaultencoding() 具体的な例文を書いてもらえませんか? ググっても、例文が出てこなくて、困っています とりあえず、sitecustomize.pyに下のを書いてみた 軽く試したところ、思うように動作するので、この設定で騙し騙しやってみようと思います reがちゃんと動くのか、まだ試してないけど・・・ from encodings import aliases aliases.aliases['us_ascii'] = 'euc_jp' import sys sys.setdefaultencoding('euc_jp') テンプレを多少改変しました。あと色々あるのでしょうが python.jp と書籍へのリンクは日本語ドキュメントをのぞいて省きました。 文句とかテンプレ改良とか次スレに向けてぼちぼちやっていきましょう。
うめ
うめ
うめ
うめ
まてまて 先に次スレ立ててくれ。
って俺かよwww まんまとはめられた!
すまん、スレ立て規制に引っかかった。 誰かよろしくorz
IP変えてがんばれ!
うめ
漏れもだめだった orz スレ立て規制の範囲って意外と広いんだね
この流れなら逝ける うめ
立てた奴適当すぎだろw
この流れなら逝ける うめ
次いらんだろうにと何度言ったら(ry
うめ
うめ
996 :
デフォルトの名無しさん :2009/05/25(月) 09:34:37
まだ 2.5.2 な俺が来ました 世の中では 3 だそうですね
いや 2.5が無難だとおもうよ
998 :
デフォルトの名無しさん :2009/05/25(月) 10:34:30
ume
うめ
1000 :
デフォルトの名無しさん :2009/05/25(月) 10:36:21
ume---
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。