09/10/24 11:20:45
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、
お礼は Python の布教と初心者の救済をお願いします。
エラーを解決したいときはエラー表示や環境を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>950 辺りで
前スレ
くだすれPython(超初心者用) その4
スレリンク(tech板)
関連スレ
Pythonのお勉強 Part35
スレリンク(tech板)
2:デフォルトの名無しさん
09/10/24 11:21:29
┌─┐
│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘ おっぱい!おっぱい!
3:デフォルトの名無しさん
09/10/24 11:22:33
2get
これはどう見てもおかしいだろ。 まず、主語が2。で動詞がget。
2が単数形だとしたら、getsにしないとおかしい上に、目的語がない。
直訳すると「2が得る」 何を得るんだよ!!!いいかげんにしろ。
それを言うなら
I get 2. だろ。しかも現在形だし。 過去形、いや現在完了形ぐらいまともに使ってくれよ。
I've got 2. 少しはましになって来たが、まだ気に入らない。その2だ。
いったいお前は何を手に入れたんだ?2という数字か?
違うだろ、手に入れたのは2番目のレスだろ。
どうも日本人は数詞と序数詞の区別がよく分かっていない節がある。
これらを踏まえて、正しくは
I've got the second responce of this thread.
ここでtheにも注目してもらいたい。このスレの2ってのは
特定の、このレスだけなんだから。だからaでも無冠詞でも なく、the second responceなんだ。
もう一度おさらいしてやる。
I've got the second responce of this thread.
4:デフォルトの名無しさん
09/10/24 11:23:14
◆関連リンク
Python の Home Page
URLリンク(www.python.org)
Python 日本語ドキュメント - Pythonistaのお友達
URLリンク(www.python.jp)
最新版直リン - 2.Xが推奨。3.Xはライブラリやドキュメントが使えないことも
URLリンク(www.python.org)
Python のコーディングガイド PEP8
URLリンク(www.python.org)
Python のコーディングガイド PEP8 - 日本語訳
URLリンク(www.oldriver.org)
日本語文字列コード問題まとめ
URLリンク(python.matrix.jp)
インタラクティブモードのエンコード
URLリンク(python.matrix.jp)
5:デフォルトの名無しさん
09/10/24 11:40:28
got 5
6:デフォルトの名無しさん
09/10/24 12:23:07
pychinko
7:デフォルトの名無しさん
09/10/24 15:01:53
前から思ってたんだけど、スレタイの
くだすれってどういう意味?
8:デフォルトの名無しさん
09/10/24 19:06:26
「くだらない質問スレ」の略では?
ところで、質問よろしいでしょうか
Fortranの実数(0.158073523876293e-2とか)を出力したファイルを
Pythonから浮動小数点実数として読み込むコードを書いているのですが、
次のようなエラーが出てしまいます。
Traceback (most recent call last):
File "./read.py", line 14, in <module>
numbers = [ float(item) for item in itemList ]
ValueError: invalid literal for float(): 0.1000000E+00 0.4225156E+01 0.1327376E-01 0.2886351E-01
正しく読み込むためには、どう書けば良いか教えてください。自分が書いたのは↓のとおりです。
import re
myRegExp = re.compile('^\s*#')
fname = open('loss.tl-dat', 'r')
for lines in fname:
if myRegExp.match(lines):
print 'match!'
else:
itemList = lines.split('\t')
numbers = [ float(item) for item in itemList ]
print numbers
9:デフォルトの名無しさん
09/10/24 19:10:32
\t で区切られてないんじゃね
10:デフォルトの名無しさん
09/10/24 19:17:11
ホワイトスペースで豚切るだけならこれでいい
itemList = lines.split()
11:デフォルトの名無しさん
09/10/24 19:35:19
おお!うまく読めました!>>9-10さんのいう通りでした。
ありがとうございました!
12:デフォルトの名無しさん
09/10/24 19:40:53
0.1000000E+00
↓
0.10000000000000001
これはどうすればいいのでしょうか?
13:デフォルトの名無しさん
09/10/24 20:02:05
学部1年レベル
B. 浮動小数点演算、その問題と制限
URLリンク(www.python.jp)
11. 標準ライブラリミニツアー - その 2
URLリンク(www.python.jp)
14:デフォルトの名無しさん
09/10/24 23:29:22
pygameをインポートして実行したウインドウを閉じると一緒に
pyscripterまで閉じちまうんだが・・・
だれかこんな漏れを救ってくれ
15:デフォルトの名無しさん
09/10/24 23:32:48
ギブです。プログラムを始めたばかりの初心者です。ご教授願います。
ファイル処理を勉強中で、試しにやろうとしたこと(下記)ができません。
・一日の為替の変動を表示する。
・usdjp.txt内には以下の内容が記載されております。
日付 高値 安値の順に記載されております。
2009年10月23日 92.13 91.28
2009年10月22日 91.70 90.77
2009年10月21日 91.28 90.49
・高値-安値を表示させたい。
試しに書いたのがエラーで実行できない。
#! /usr/bin/python
#codein:utf-8
f=open("usdjp.txt","r")
for i in f.readlines():
a=i.split()
print i
b=int(a[1]) - int(a[2])
print b
※インデントがうまく表示されていないかもしれませんが、やってます。
b=int(a[1]) - int(a[2]) でエラー発生
ValueError: invalid literal for int() with base 10: '92.13'
16:デフォルトの名無しさん
09/10/24 23:40:24
float
17:デフォルトの名無しさん
09/10/24 23:51:25
質問が2つあります
1.pythonで実行ファイルを作るときにVBみたいにランタイムとかそういうのって必要ですか?
2.負荷が高い処理を作るとき、HSPとどちらが実行速度が早いですか?
18:デフォルトの名無しさん
09/10/24 23:58:28
1. いらない
2. 変わらない
19:デフォルトの名無しさん
09/10/25 00:01:57
>>> int('78')
78
>>> int('78.9')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '78.9'
>>> float('78.9')
78.900000000000006
>>> float('78')
78.0
>>> isinstance('78', int)
False
>>> isinstance('78.9', float)
False
>>> '78'.isdigit()
True
>>> '78.9'.isdigit()
False
intかfloatかわからないものを
intはint
floatはfloatで取得したいのですが
20:デフォルトの名無しさん
09/10/25 00:06:01
>>17-18
msvcrのランタイムはいるだろ
21:デフォルトの名無しさん
09/10/25 00:11:23
>>19
intに変換、ValueErrorならfloat
22:デフォルトの名無しさん
09/10/25 00:15:19
>>21
最初に int または float のときに int に変換してみるということだと思うのですが
isdigit が int のときしか True にならないので
>>> float('0.789e+2')
78.900000000000006
>>> float('0.789g+2')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): 0.789g+2
の ValueError のときと区別したいのです
23:デフォルトの名無しさん
09/10/25 00:20:54
>>> s = ['78', '78.9', '0.789e+2', '0.789g+2']
>>> for n in s:
... try:
... r = int(n)
... print 'integer', r
... except ValueError:
... try:
... r = float(n)
... print 'float', r
... except ValueError:
... print 'not a number', n
...
integer 78
float 78.9
float 78.9
not a number 0.789g+2
24:デフォルトの名無しさん
09/10/25 00:25:15
>>> s = ['78', '78.9', '0.789e+2', '0.789g+2']
>>> f = [('integer', int), ('float', float)]
>>> for n in s:
... for c in f:
... try:
... r = c[1](n)
... print c[0], r
... break
... except ValueError:
... continue
... else:
... print 'not a number', n
...
integer 78
float 78.9
float 78.9
not a number 0.789g+2
25:デフォルトの名無しさん
09/10/25 01:23:16
>>8
1行目、ありがとう
26:デフォルトの名無しさん
09/10/26 01:45:29
みんpy改訂版にのっていた問題なんですが、
Pythonで10から100までの最小の素数を求めようと思い、以
下のようなコードを書き始めました。20まで書いたところで力
尽きて、関数を使えば簡単に書けることを思いつきました。
以下のコードを参考に、最小公倍数を求める関数を作り、10か
ら100までの最小公倍数を表示してください。
>>> n = 10
>>> for c in range(2, n):
... if n%c == 0:
... break
... if c == n:
... print 1
... else:
... print c
...
2
>>> n = 11
>>> for c in range(2, n):
... if n%c == 0:
:
この問題に対して質問です
まず、何をするプログラムですか?
問題文の意味から分かりません。何をするプログラムかわかれば
わかる気もするのですが、初心者なもので
問題読解からつまってしまう初心者ですがご教示お願いします
27:デフォルトの名無しさん
09/10/26 01:51:22
続けてレスすみません
インデントがうまく表示されていないみたいですが
本当はインデントされています
それと、解答例はこんなかんじです
>>> def leastcommon(n):
... for c in range(2, n):
... if n%c == 0:
... break
... if c == n-1:
... return 1
... else:
... return c
...
>>> for n in range(10, 100):
... print leastcommon(n)
28:デフォルトの名無しさん
09/10/26 02:01:10
日本語でどうぞ
29:デフォルトの名無しさん
09/10/26 02:40:04
>>26
素数でググレ
あと引用するならアレンジしないでそのまま書き写してくれ
コードも間違いが無いかチェックして
30:デフォルトの名無しさん
09/10/26 03:22:14
問題文は完璧です
コードのほうはLinuxからだとインデントがうまく表示
できないみたいなので、Winから書き込みます
以下、そのコードです
<参考コード>
>>> n = 10
>>> for c in range(2, n):
... if n%c == 0:
... break
... if c == n:
... print 1
... else:
... print c
...
2
>>> n = 11
>>> for c in range(2, n):
... if n%c == 0:
:
<解答例>
>>> def leastcommon(n):
... for c in range(2, n):
... if n%c == 0:
... break
... if c == n-1:
... return 1
... else:
... return c
...
>>> for n in range(10, 100):
... print leastcommon(n)
31:デフォルトの名無しさん
09/10/26 03:26:39
あああああ
またインデントささってませんね
すみませんもうこれでお願いします
32:デフォルトの名無しさん
09/10/26 03:51:50
専ブラ使え
33:デフォルトの名無しさん
09/10/26 03:56:53
>>26
>まず、何をするプログラムですか?
>問題文の意味から分かりません。何をするプログラムかわかれば
>わかる気もするのですが、初心者なもので
その本初心者向けじゃないから今すぐ窓から投げ捨てろw
っつーか問題文の意味を聞くならこんなところで聞かずに
本人に聞けよ
LL温泉の紹介ページを作ったら煩悩丸出しの内容になったでござるの巻
URLリンク(coreblog.org)
34:デフォルトの名無しさん
09/10/26 04:23:37
引用ミスであると信じたい
でなければ酷過ぎる
35:デフォルトの名無しさん
09/10/26 05:11:31
血から尽きて、っていうのも問題に書いてある本文なの?
問題文もひどければ解答例もひどいなあ
解答例からみると10から99までの数字のそれぞれの割り切れる最小の数を表示する何か
36:デフォルトの名無しさん
09/10/26 08:44:53
Pythonでプログラミングを始めようとする人向けの本がないよね。
37:デフォルトの名無しさん
09/10/26 12:59:15
文字列の連結でidはstring、yearはint型としたときに
"私のIDは" + id + "です。年は" + year + "です。"
みたいにしてやると思うのですが、正しい、書き方はどうなのでしょうか?
38:デフォルトの名無しさん
09/10/26 13:05:58
+で文字の結合をするのは効率が悪いので速度が落ちます
''.join("私のIDは", id, "です。年は", str(year), "です。"]
または
"私のIDは%sです。年は%sです。" % (id, year)
39:デフォルトの名無しさん
09/10/26 13:32:12
少なくとも >>37 の状況で効率が悪くなる件は直ってるはず
40:デフォルトの名無しさん
09/10/26 13:32:55
>>38
''.join(["私のIDは", id, "です。年は", str(year), "です。"])
41:デフォルトの名無しさん
09/10/26 13:33:45
>>38
効率が悪くなるのも初めて知りましたw
さんくすです
42:デフォルトの名無しさん
09/10/26 20:37:39
shiftjisの文字列をutf-8に変換する関数ありますか?
43:デフォルトの名無しさん
09/10/26 21:01:39
>>42
URLリンク(docs.python.org)
44:デフォルトの名無しさん
09/10/26 21:02:34
>>43
の前にこれ
URLリンク(docs.python.org)
45:デフォルトの名無しさん
09/10/26 21:09:06
if文でフォルダが無いときにtrueになる条件式は
if os.path.isdir(path1)=='False':
処理~
でいいのでしょうか?うまく動いてないので。
46:デフォルトの名無しさん
09/10/26 21:14:14
>>45
isdirの戻り値は True か False 。
'True' や 'False' などの文字列ではない。
47:デフォルトの名無しさん
09/10/26 21:15:24
>>43,44
ありがとうございます
48:デフォルトの名無しさん
09/10/26 23:28:00
if not os.path.isdir(path1):
49:デフォルトの名無しさん
09/11/01 18:52:00
コーディングの質問じゃないんですが…
当方昔少しだけperlをかじったようなものです
(文法はほとんど忘れていてアルゴリズムなら多少見れば思い出すかもしれないっていうほとんど0からと変わらないレベルです)
趣味でunix系OS上でこまごまとしたアプリを作っていきたいのですが
いきなりpythonから入って大丈夫ですか?
なんだか今見ると、今からperlをはじめるには欠点ばかり目立ってしまう感じがして…
pythonのコードを見たらすっきりしていて気に入りました
50:デフォルトの名無しさん
09/11/01 18:58:38
大丈夫v
51:デフォルトの名無しさん
09/11/01 20:13:35
って言ってほしいんやろ?
52:デフォルトの名無しさん
09/11/01 20:53:53
初心者を虐めるな
_, ,_ パーン
( ‘д‘)
⊂彡☆))Д´) >>51
53:デフォルトの名無しさん
09/11/02 00:26:44
虐めるな言ってもな…
例えばはじめるのに100万入会金払わないと行けないんやったら、そりゃ慎重にもなるわ
んでも、これだけ無料でばら撒かれてるんだから、自分で始めてみりゃいいじゃん
ましてや、過去に経験あるんやったらインストールだって楽勝だろ?
54:デフォルトの名無しさん
09/11/02 01:57:12
perlに関わるとろくなことにならんな
55:デフォルトの名無しさん
09/11/02 06:38:18
というか、いきなり入って大丈夫かどうかという指標は、
実際にいきなり入ってみた人の結果を集めて成り立ってるわけで、
コミュニティ側からすれば、>>49にはその2009年度版の一データになる役目が
与えられている。データを使う側ではなく。
だから答は「大丈夫かどうかを確かめたいから、さっさとやれ」。
56:デフォルトの名無しさん
09/11/02 12:59:22
PHP使ってた奴は総じてダメだな
57:デフォルトの名無しさん
09/11/02 15:11:48
お勉強スレが始まった頃は
perler移民ばっかりだった。
58:デフォルトの名無しさん
09/11/02 18:07:59
lineという文字列の変数に正規表現にマッチする部分があれば、
指定した形に置き換えて、もとのlineとしたいのですが、
どう書けばいいのでしょうか?
59:デフォルトの名無しさん
09/11/02 18:13:15
Pythonの文字列はイミュータブル。
lineという変数に、新しい文字列を代入することはできるが、
元の文字列を変えることはできない。
60:デフォルトの名無しさん
09/11/02 18:30:38
>>59
ありがとうございます。
置き換えたものをline_replaceとした場合、どのように書くのでしょうか?
61:デフォルトの名無しさん
09/11/02 18:46:28
import re
line = '適当な文字列'
line_replace = re.sub('パターン', '置き換える文字列', line)
複数の正規表現を同時に使う時は、
キャッシュが追いつかなくなるかもしれないので
事前にコンパイルしたほうがいい。
あと、第二引数には関数も指定可。
62:デフォルトの名無しさん
09/11/02 18:48:07
>>61
サンクスです。
63:デフォルトの名無しさん
09/11/02 21:04:21
関連して質問します。
re.sub() と pat = re.complie(); pat.sub() の違いについてなんですが、
re.sub() は毎回正規表現がコンパイルされますか?内部でキャッシュとかしてるんでしょうか。
pat = re.compile(); pat.sub() のほうが望ましいのは分かるんですが、正直面倒なので、
re.sub() のほうでキャッシュしてくれるんなら re.sub() で済まそうと思ってるんですが、どうでしょうか。
64:デフォルトの名無しさん
09/11/02 22:22:12
キャッシュするよ
re.purge()とか参照
65:デフォルトの名無しさん
09/11/03 11:48:33
要素数が range である空のリスト a を作る方法は?
range = 3 のとき
a = [空,空,空] のようなリストがほしい。
できますか?
後、Pythonでは空をどう表現するのですか?
66:デフォルトの名無しさん
09/11/03 11:55:20
r = 3
l = [ "" for i in range(r)]
print l
67:デフォルトの名無しさん
09/11/03 12:03:49
初心者スレで変数名に小文字のLは勘弁してたも
>>65
a = [None] * 3 とか
他の言語における空をPythonでどう表現するのか知りたいのなら
その言語の名前を挙げたほうがいいかも
68:デフォルトの名無しさん
09/11/03 12:35:11
まぎらわしいので range じゃなくて r を使うけど、
(range という関数があるため)
[None for a in xrange(r)]
69:デフォルトの名無しさん
09/11/03 18:59:32
すごくどうでもいいことかもしれませんが
エンコードの指定するときに、
# coding: utf-8
# -*- coding: utf-8 -*-
どちらの書き方でもOKなんですよね?
2つの書き方の意味の違いとか、こちらの書き方のほうが望ましい、
みたいなのって何かありますか?
70:デフォルトの名無しさん
09/11/03 19:01:52
>>69
2.1.4 エンコード宣言 (encoding declaration)
URLリンク(www.python.jp)
71:デフォルトの名無しさん
09/11/03 19:15:01
l = [] * 3
72:デフォルトの名無しさん
09/11/04 02:32:29
>>71
それだと長さ0の空リストが1つしかできない
73:デフォルトの名無しさん
09/11/04 06:47:41
>>71
URLリンク(www.python.org)
> Names to Avoid
>
> Never use the characters `l' (lowercase letter el), `O' (uppercase
> letter oh), or `I' (uppercase letter eye) as single character variable
> names.
>
> In some fonts, these characters are indistinguishable from the numerals
> one and zero. When tempted to use `l', use `L' instead.
74:66
09/11/04 18:15:47
>>73
かたいこというなよ・・・。
75:デフォルトの名無しさん
09/11/06 16:46:44
質問です
受け取ったファイルを CRC32 値にリネームするスクリプトを作りたいのですが、
反復処理でスクリプト自身を除くにはどうすればいいのでしょうか
現在↓のような状況です(とりあえずサンプルが見つかった MD5 でやってます)
import os
import sys
import hashlib
def getMD5(file):
try:
m = hashlib.md5();
f = open(file,'rb')
except IOError:
print ("Unable to open the file",file)
return
for line in file:
m.update(line)
f.close()
return m.hexdigest()
argvs = sys.argv
for x in argvs:
ext = x.split('.')[-1]
oldName = x
newName = getMD5(x) + "." + ext
os.rename(oldName,newName)
76:75
09/11/06 16:50:03
うぉ、ごめんなさい。インデント入ってねぇ orz
&nbsp; は無視されるのか
77:デフォルトの名無しさん
09/11/06 18:09:43
うちはちゃんと見えてるから問題なし
78:デフォルトの名無しさん
09/11/06 19:51:18
>>75
for x in argvs:
↓
for x in argvs[1:]:
79:75
09/11/06 20:36:32
>>78
サンクス、恐ろしく簡単な事だったんだな
大雑把に [start:end] ってことか
80:デフォルトの名無しさん
09/11/06 20:44:06
MD5sumの計算がしたいのなら
行単位じゃなくて固定長で数KBとか数MB単位で読んだほうがいいかもね
行毎でも結果がおかしくなることはない筈だけど
やりたいことに行が関係ないし効率はよくない
81:デフォルトの名無しさん
09/11/06 20:47:38
処理速度も桁違いに速くなるだろうね
82:デフォルトの名無しさん
09/11/06 20:48:11
>>80
ごめん、凄く非効率なのは分かってるんだけど、
見つけたサンプル適当に組み合わせて作ってる段階だから、そこまで直せない
CRC32 の求め方もまだ分かってないぐらいだし
83:デフォルトの名無しさん
09/11/06 20:53:44
zlib.crc32
84:デフォルトの名無しさん
09/11/06 20:54:49
>>82
URLリンク(d.hatena.ne.jp)
85:デフォルトの名無しさん
09/11/06 20:58:36
print binascii.crc32("hello world")
# Or, in two pieces:
crc = binascii.crc32("hello")
crc = binascii.crc32(" world", crc) & 0xffffffff
print 'crc32 = 0x%08x' % crc
86:デフォルトの名無しさん
09/11/06 21:01:41
真っ当なサンプルGJ
87:75
09/11/06 21:04:26
みんな優しいなぁ
ありがとう、参考にさせて頂きます
88:デフォルトの名無しさん
09/11/06 21:08:36
前は
俺は crc16 を求めたいんだよ プギャー
っつー変なのもいたけどな
89:デフォルトの名無しさん
09/11/07 17:52:19
リストの長さを得るのになぜ
len(list)
なんですか?
オブジェクト指向なら
list.len()
なのでは?
90:デフォルトの名無しさん
09/11/07 17:54:45
lenは関数指向だから無問題
91:デフォルトの名無しさん
09/11/07 18:05:24
obj.__len__()
92:デフォルトの名無しさん
09/11/07 18:10:43
len が py3k でも 関数のままである理由
URLリンク(d.hatena.ne.jp)
93:デフォルトの名無しさん
09/11/07 18:59:26
SGMLパーサーで分解したデータを外部から読むにはどうすればいいのでしょうか
94:デフォルトの名無しさん
09/11/07 19:07:34
どのSGMLパーサーを使ってるの?
外部ってのは具体的にどういう意味?
95:デフォルトの名無しさん
09/11/07 21:16:05
URLリンク(www.xxx.com)
のようなhtmlファイルを(変数).htmlのような感じで名前を変えてコピーしたいのですが
どのように書けばいいでしょうか?
96:デフォルトの名無しさん
09/11/07 21:27:19
import os
os.system(r'wget URLリンク(www.xxx.com) -O \(%d\).html' % n)
97:デフォルトの名無しさん
09/11/07 22:39:11
>>95
import urllib
var = 'abc'
urllib.urlretrieve('URLリンク(www.example.com)', '%s.html' % var)
98:デフォルトの名無しさん
09/11/07 22:56:56
>>96.,97
遅れました。
ありがとうございます。
99:デフォルトの名無しさん
09/11/08 00:14:21
path1="test"
path2="/test/tmp/"
if not os.path.isdir(path1):
os.mkdir(path1,0777)
if not os.path.isdir(path2):
os.mkdir(path2,0777)
testというディレクトリの下にtmpというディレクトリを作りたいです。
path2の指定が間違ってるようなのですが正しい書き方は何でしょうか?
100:デフォルトの名無しさん
09/11/08 00:41:44
path2 = "test/tmp/"
or
path2 = "./test/tmp/"
URLリンク(www.tohoho-web.com)
101:デフォルトの名無しさん
09/11/08 01:58:38
>>100
さんくす
102:デフォルトの名無しさん
09/11/08 03:56:08
MySQLからselect文でデータを取り出しているのですが、日本語のデータだと、
name undefined, r = ('japan', 'tokyo', '??????')
IndexError: tuple index out of range
みたいになってしまいます
con.execute("SELECT * FROM table WHERE city = \"tokyo\" ")
rs = con.fetchall()
for r in rs:
nation = r[1]
city = r[2]
name = r[3]
これで取り出しているのですが、どうしたらいいですか
103:デフォルトの名無しさん
09/11/08 07:58:43
それで取り出せているなら問題ないんじゃないの?
なにがまずいのか、さっぱりわからない。
104:デフォルトの名無しさん
09/11/08 08:38:28
None
105:デフォルトの名無しさん
09/11/08 14:58:44
>>103
r = ('england', 'london', 'becky')みたいな英字のみのデータは取り出せるのですが、
r = ('japan', 'tokyo', '??????')のように日本語が入っているとそこが???となって
name undefined, r = ('japan', 'tokyo', '??????')
IndexError: tuple index out of range
というエラー文がでて止まってしまいます
106:デフォルトの名無しさん
09/11/08 17:54:23
name = r[3]
↓
name = r[3] if len(r) >=3 else None
107:デフォルトの名無しさん
09/11/08 19:41:00
>>106
多大の配列番号のミスでした
すいません
108:デフォルトの名無しさん
09/11/09 10:21:43
エンコードを意識しようぜ
サーバのデフォルトのエンコードは?
クライアントのデフォルトのエンコードは?
109:デフォルトの名無しさん
09/11/10 18:23:57
loggingではき出されるログファイルのタイムスタンプってlogging作動中は
更新されないみたいなんだけどこのへんてこ仕様は何とかならないのかな?
110:デフォルトの名無しさん
09/11/10 19:35:34
>>108
エンコードの指定を間違えると例外を吐く仕様もどうかと思うけどな
111:デフォルトの名無しさん
09/11/10 19:54:50
Explicit is better than implicit.
112:デフォルトの名無しさん
09/11/10 20:00:49
DB、プログラムはutf8で、
shiftjisのファイルを開いて正規表現で抜いているんですが、
l[1].decode("Shift_JIS").encode("UTF-8")
みたいな感じではダメなのでしょうか?うまくいかないので。
またDBから抽出したのをまたDBにinsertしたいとき
title = r[1].encode("UTF-8")
としているのですが、まずいですか?
113:デフォルトの名無しさん
09/11/10 20:02:00
??
114:デフォルトの名無しさん
09/11/10 20:25:49
DBにinsertしたいとき自分指いいすかまで読んだ
115:デフォルトの名無しさん
09/11/10 20:40:25
>>111
そういう事はいい加減きわまりないリファレンスマニュアルを改善してから言えw
116:デフォルトの名無しさん
09/11/10 21:15:11
リファレンスのマニュアルの不備を指摘する前に、己の技術力不足を改善しろw
117:デフォルトの名無しさん
09/11/10 21:22:18
>>116
( ゚Д゚)ポカーン・・・頭大丈夫?
118:デフォルトの名無しさん
09/11/10 21:23:33
┐(´ー`)┌
119:デフォルトの名無しさん
09/11/10 21:25:48
またruby厨の荒らしですか
120:デフォルトの名無しさん
09/11/10 21:27:29
どこからRubyが出てくるんだよwww
121:デフォルトの名無しさん
09/11/10 21:30:44
>>112
> またDBから抽出したのをまたDBにinsertしたいとき
言ってることがよくわからんが、
UTF-8に変換してからDBに入れたんだろう?
DBからはunicodeで戻ってくるの?
122:デフォルトの名無しさん
09/11/10 21:34:05
>>110
例外を吐くのは、変換できなかった時だろ。
そうでなくとも知らないうちに、
他の文字に変換されるよりはましだと思うのだが。
123:デフォルトの名無しさん
09/11/10 21:40:34
>>115
どこが「いい加減きわまりない」ないんだろう?
ドキュメントの記述が間違っていることは見たことがないし、
もし見つけたのなら、こんな所で管を巻いてないで報告すればいい。
URLリンク(www.python.org)
124:デフォルトの名無しさん
09/11/10 21:49:04
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 113: ordinal not in range(128)
args = ('ascii', 'INSERT IGNORE INTO test(name,event,mysy...\xa8\xe3\x82\xb5\xe3\x83\xb3\xe3\x82\xb0\xe3\x83\xa9\xe3\x82\xb9\xe3\x81\xa7\xe5\xa4\x89\xe8\xa3\x85 [11/10])', 113, 114, 'ordinal not in range(128)')
encoding = 'ascii'
end = 114
object = 'INSERT IGNORE INTO
みたいな感じで帰ってきます。
125:デフォルトの名無しさん
09/11/10 22:32:39
title = r[1].decode("cp932").encode("UTF-8")
126:デフォルトの名無しさん
09/11/10 23:21:18
サングラスで変装?
127:デフォルトの名無しさん
09/11/10 23:21:56
>>123
1.exsampleが非常に少ない
2.表記が抽象的な所がある
たとえば文字列操作あたりで見てみると
Python - 3.6.1 文字列メソッド
URLリンク(www.python.jp)
C# - String メンバ
URLリンク(msdn.microsoft.com)(VS.80).aspx
Pythonのドキュメントの表記って抽象的だったり表記が統一されていないところが随所にある
オブジェクト指向の言語なのだからオブジェクト名で書くのが普通だと思うが
文字列?単語?"文字列=単語"で良いの?数って何?int?long?
C#に限らずリファレンスマニュアルならば暗黙の了解がある内容でも明文化するのが
普通だぜ?
128:デフォルトの名無しさん
09/11/10 23:24:23
>>127
> 1.exsampleが非常に少ない
>>116
> 2.表記が抽象的な所がある
静的型言語が好きならPython使うな
129:デフォルトの名無しさん
09/11/10 23:27:14
>>125
ありがとうございます。。
エラーが止まらないのですが、基本的に、文字型が違うので連結が出来ていない。
という認識でいいのでしょうか
130:デフォルトの名無しさん
09/11/10 23:33:39
>>127
君が >>1 にもあるような wiki かなんかで
exsample を作っていけば勉強になるよ ^ ^
131:デフォルトの名無しさん
09/11/10 23:33:55
>>127
日本語訳の批判はこちらへどうぞ
Pythonドキュメント翻訳プロジェクト
URLリンク(www.python.jp)
132:デフォルトの名無しさん
09/11/10 23:34:56
>>129
DBの種類も言わない
DBの文字コードの設定がどうなってるかも言わないし調べようともしていない
ソースも貼らない
どしろうと?
133:デフォルトの名無しさん
09/11/10 23:38:04
1つ言えることは、unicodeとstrを混ぜると高確率でエラーになる。
混ぜるな危険。
134:デフォルトの名無しさん
09/11/10 23:39:15
>>132
すいません。。
>>133
print type()
してみるとunicodeとstrが混在してました。。
出直してきます
135:デフォルトの名無しさん
09/11/10 23:50:14
>>131
日本語訳の問題じゃないよ。
あえて「文字列」としているのは、原文でも string といって str, unicode その他 basestring を継承した
文字列型を区別しないで書いているから。
厳密な型を書かないのは動的型付けだから。
136:デフォルトの名無しさん
09/11/11 05:09:37
>>128
ドキュメントの記載が不明瞭である事と技術云々は全く関係ないだろ
組み込みスクリプト最大手のPythonで
>静的型言語が好きならPython使うな
はWindowsが嫌いなら使うなと言っているのと同義だなw
>>135
ちゃんと分けられるじゃん。それをそのまま文書化すれば良いだけなのに
何でわざわざごちゃ混ぜにしたような書き方になっているのか理解に苦しむ
basestringが~
basestringを継承するstrが~
basestringを継承するunicodeが~
って書けば良いだけだろ。クラスが判る奴ならそれだけで通じる
137:デフォルトの名無しさん
09/11/11 08:27:12
言ってることは正しいと思うけどOSSだと言い出しっぺの法則で終わるだけだぞ
138:デフォルトの名無しさん
09/11/11 09:27:54
>>136
ちゃんと分けられないよ。
誰かが勝手に追加した新しい文字列型も「文字列」に含まれるんだぜ?
duck typingな動的型付け言語に慣れろ。
139:デフォルトの名無しさん
09/11/11 09:34:20
公式ドキュメントは、CPythonの特定のバージョンのドキュメントだけじゃなくて、
他のPythonの処理系も含めた「Python標準ライブラリ仕様」を定めてるだけだからな。
CPythonの現在の仕様を詳しく書き下すんじゃなくて、近い将来のPythonや他のPython処理系が
満たすべき一般化された仕様を書いているから、あまり具体的な話はできない。
逆に、Pythonのドキュメントに書かれていない詳細な実装依存の仕様に依存したらいけない。
140:デフォルトの名無しさん
09/11/11 12:02:11
>>138, 139
つっこみどころ多すぎだろw
多分>>136の言っている意味をあんたらは汲み取っていないね
たとえば
組み込み型には 6 つのシーケンス型があります: 文字列、ユニコード文字列、リスト、タプル、バッファ、そして xrange オブジェクトです。
この場合の「文字列」がstrで、「ユニコード文字列」がunicodeであるのは明白だ
「組み込み型」で「6つ」まで限定してる「CPythonの」ドキュメントなんだから
ちなみにこれは和訳が悪いというわけでもない
原文はこう
There are six sequence types: strings, Unicode strings, lists, tuples, buffers, and xrange objects. (For other containers see the built in dict, list, set, and tuple classes, and the collections module.)
>>139
ご冗談を。
ならたとえばcStringIOなんて実装バリバリ意識したものについて書く必要がないし
書いてはいけない
仕様だけならStringIOだけ見せればよいだろ
どう見てもあれはCPythonのドキュメントです
141:140
09/11/11 12:13:49
まあ以上を指摘した上で、俺は>>137に同意なわけだがw
オプソにMS並みのドキュメントの質を期待しても無駄だぜ
質が不満なら自分でやれやという話だ
142:デフォルトの名無しさん
09/11/11 12:15:33
MSのドキュメントがそんなに良いとは思えない
変なのお手本にする必要はない
143:デフォルトの名無しさん
09/11/11 12:24:30
日本語しか見てないひとだね
144:140
09/11/11 12:30:04
原文では確かにbuiltinだとは言ってないね
しかし"six"と限定しているだろう
basestringを意識しているのなら、なおその列挙の仕方はあいまいだし
一般名詞の"strings"と、"xrange"のような明白な特定の型を並列で混用しているのも
良い技術文書のやりかたではないね
145:デフォルトの名無しさん
09/11/11 12:30:19
一般のソフトのドキュメントに比べると開発環境のはかなりいいけどね。
146:デフォルトの名無しさん
09/11/11 14:06:26
>>140
>>127でstringメソッドの例を出していて、 >>138, 139 は string メソッドで具体的な
クラス名を使わない理由を説明しているのに、なんでいきなり別のドキュメントに飛ぶの?
147:140
09/11/11 14:41:46
>>146
ああすまん、別のところを見ていたみたいだね。
俺は>>127とかとは別人だが。
つっても同じPythonスタンダードライブラリのドキュメントの話で
ドキュメントの質を問う話をしてるんだから、引用箇所なんてどこでもよくね?
俺が引用したのはBuilt-in Typesのドキュメントだけど、本当にひどいよ。
Buit-in Typesというくくりの
Sequence Types ― str, unicode, list, tuple, buffer, xrange
というタイトルの文書なのに、
いきなり先ほどに引用したような書き出しになる。
型名がstrで、それがいわゆる文字列のための型であるとすら書かれず、strとか
stringsとかいう書き方が混用されている。非常にあいまいで不親切だ。
正確性、一覧性や網羅性とった点についても不満がある。
basestringに関しても触れられていないしね。
148:デフォルトの名無しさん
09/11/11 15:18:46
最新版でない、しかも有志による日本語訳に基づいた批判はフェアじゃない
149:デフォルトの名無しさん
09/11/11 19:35:16
>>36
みんなのPython とかいうのがあったような気がするが。
150:デフォルトの名無しさん
09/11/11 19:39:25
>>148
最新版の日本語訳されたドキュメントってどれさ
URLリンク(www.python.jp)
じゃないのか?
151:デフォルトの名無しさん
09/11/11 19:41:58
( ´,_ゝ`)プッ
152:デフォルトの名無しさん
09/11/11 19:46:32
>>149
別にチュートリアルで問題ないだろ。
あれが難しいなら、ウェブに転がってる文書読んでからでもいいし。
153:デフォルトの名無しさん
09/11/11 20:44:45
畑も耕さず、種も蒔かず、雑草も抜かず、肥料も巻かず、
水もやらず、添え木もせず、収穫もせず、金も払わず、
ただ実を食う。
そんな人間にも育て方が下手だと
批判をする権利はあります。
154:デフォルトの名無しさん
09/11/11 23:03:30
糞本の著者はどうしてみんぱいに粘着するの?
155:デフォルトの名無しさん
09/11/12 07:46:11
海外だとこれに凄い数のレビューがついてるけどどんな本なんだろ
URLリンク(www.amazon.com)
156:デフォルトの名無しさん
09/11/12 08:51:53
97 of 99 people found the following review helpful:
5.0 out of 5 stars Painless way to learn programming, September 4, 2003
75 of 76 people found the following review helpful:
5.0 out of 5 stars Best first Python Book (and not just for beginners), October 12, 2003
25 of 25 people found the following review helpful:
5.0 out of 5 stars Wow! What a refreshing approach to python!, October 2, 2003
俺は遠慮しとく
157:デフォルトの名無しさん
09/11/12 08:54:41
>>154
ダメな奴ほど暇なんだよ。
158:デフォルトの名無しさん
09/11/12 13:56:04
俺がダメなのは全部アイツのせい。
159:デフォルトの名無しさん
09/11/12 16:36:14
日本語訳の最新版ってこれじゃないの?
URLリンク(pythonjp.sourceforge.jp)
160:デフォルトの名無しさん
09/11/12 18:51:06
>>159
ちょw英語だらけだぞw
確かに2.6.x対応版みたいだが
161:デフォルトの名無しさん
09/11/12 19:25:21
Pythonスクリプトをタスクトレイに常駐させることはできますか?
162:デフォルトの名無しさん
09/11/12 19:33:06
>>161
タスクトレイを操作できるライブラリとGUIツールキットがあれば出来るかもね
163:デフォルトの名無しさん
09/11/12 19:34:59
ctypesを使えばできる
APIはShell_NorifyIcon
ツールキットに関してはシラネ
164:デフォルトの名無しさん
09/11/12 19:46:07
URLリンク(kansai2channeler.hp.infoseek.co.jp)
165:デフォルトの名無しさん
09/11/12 20:43:01
not enough arguments for format string
って具体的にいうとどんな感じのエラーでしょうか?
166:デフォルトの名無しさん
09/11/12 20:50:31
書式化文字列の引数が足りません
167:デフォルトの名無しさん
09/11/12 21:55:40
2.6と3.0が入ってる環境でPyScripterをインストールしてしまいました
PyScripterを使うと3.0で認識されます
2.6を利用して書きたいのですが、どうすればいいですか
168:デフォルトの名無しさん
09/11/12 22:12:23
mysqlのテーブルの照合順序をutf8_unicode_ci
insert文に日本語が含まれる場合、insert文をunicode型にする必要がありますか?
169:デフォルトの名無しさん
09/11/12 22:43:55
プログラムって何?の俺が始めるからお勧め本教えて。
まじで全然知識無い人が始める。
170:デフォルトの名無しさん
09/11/12 22:53:02
>>167
PyScripter.exe --python26
171:デフォルトの名無しさん
09/11/12 22:55:34
>>169
ありません
172:デフォルトの名無しさん
09/11/12 22:59:17
>>170
なぜかそのコメントからヒントを得て解決しました
くだらない質問して申し訳なかったです
173:デフォルトの名無しさん
09/11/12 23:08:55
>>169
具体的な目標を言ってください
174:デフォルトの名無しさん
09/11/12 23:26:20
プログラムの勉強をするに当たって本を読んでも学習効果は望めない。
脳と神経でつながっている指を動かし、
キーボードを打つのが至上の勉強法。
こういってもいいだろう。
「プログラミング=キーボード叩き」
ブラインドタッチが出来ると学習曲線が格段に良くなる。
タイプが無意識行動となるので、プログラミングに意識を集中できる。
よって、君が一番最初になすべきことは、
北斗の拳で全員ぶっ飛ばすことだ。
175:デフォルトの名無しさん
09/11/12 23:38:27
北斗の拳でシンに勝つところまで逝ったけど
最後だけクリアできないまま数年放置プレイ中
176:デフォルトの名無しさん
09/11/12 23:39:45
今の状況で、日本語の本をメインにpythonからプログラミングに入門するのが得策といえるか。
pythonの出版物となるとかなり限られているぞ。
rails関係を除いてもまだrubyの本の方が多い
まずは入門書の入門書みたいなのがたくさん出ているjavascriptとかperl、Cあたりで
プログラミングの基礎を学んでから来たほうがいいと思う
そのレベルになればいきなり初めてのpythonを読んで問題ないし(面倒ならpythonチュートリアルでおk)
177:デフォルトの名無しさん
09/11/12 23:40:32
まあ昔に比べたら天国みたいなもんなので
何でもいいんじゃないすか
ネットなんてなかったし
178:デフォルトの名無しさん
09/11/12 23:42:22
皆さんの意見をまとめるとruby最強ということですね
なるほど
179:デフォルトの名無しさん
09/11/12 23:44:18
rubyで入門書が多いのは
一冊ですっきりわかる良本が無いことの裏返しだろw
180:デフォルトの名無しさん
09/11/12 23:46:19
いや、ruby は仕様がころころ変わってしまうから、まともな本が出せない。
181:デフォルトの名無しさん
09/11/12 23:47:29
なおゲームは有料のものを購入すること。
せめて元を取らねばという気持ちが
ゲームクリアする方向に作用する。
さらに金は、お小遣いなどではなく自分で稼ぐべき。理由は先と同様。
これによって君は一段ずつ確実にピラミッドを登っていくだろう。
まるでシュウのように。
182:デフォルトの名無しさん
09/11/12 23:58:59
初心者にRubyとPerlはない。絶対にない
183:デフォルトの名無しさん
09/11/13 00:12:04
さて、もう一月ぐらい経っただろうか?
手が慣れたところで先に進もう。
ひょっとしたらプログラムをしたいという気持ちが
無くなっているかもしれない。
しかし、それでもいい。それでもOK。下を見てくれ。
書籍を買う(資金減少) → 読む(時間消費) → 飽きた → 脳みそ磨耗
激打を買う(資金減少) → 打つ(時間消費) → 飽きた → タイプ能力上昇
つまりタイプゲームを買うのは、本を買うよりずっとお得なのだ。
184:デフォルトの名無しさん
09/11/13 00:21:34
みんなのPythonはおすすめだよ
185:デフォルトの名無しさん
09/11/13 00:59:04
飽きてないならプログラミングに進みたいが、
残念ながら私にも勧めることの出来る本が無い。
ちなみに私の考える初心者向け良書とは、
読んで理解しなくてもよい本だ。
よって他の方に良さそうなものを聞くことにする。
ぐぐーる先生にお伺いしたところ、次のサイトを教えていただいた。
186:検索ワードは"Python ゲーム"
09/11/13 01:00:44
URLリンク(pygame.skr.jp)
ツ 許 P / ,、r'";;;;;;;;;;;;;;;;;;;;;;;;;;;;;`';,、 ,r';;r" _ノ 何
| さ .H L_ /;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\ ,';;/ ) と
ル れ P //;;/´ `' 、;;;;;;;;,,l;;' /ヽ と Pu
使 る. が /.,';/ ヽ;;;;,l;L_ .,,、,--ュ、 ';;;;;;;;;i な ki
い の l |;|┌--‐フ ┌----、、 |;ヾr''‐ヽ, ,、ィ'r-‐''''''‐ヽ ';;;;;;く !! Wi
ま は i |l ~~__´ 、 ``'__''''┘ |;;;;;l rO:、; ´ ィ○ヽ 'i;;;;;厶, ki
で l _|. <,,O,> 〉 <,,O,,> |;;;;;| `'''"/ `'''''"´ !;;;;;;;;ヽ
じ ._ゝ'|. / 、 |; ,' / 、 |;;;;;;;;;;;;;レ、⌒Y⌒ヽ
ゃ 「 | | ( ) .ソ l ,:' _ ヽ .|;;;;;;;//-'ノ
ぞ ヽヽ | _,ニ ニ,,,,,_ ', ゞ,' '"'` '" i;;;;;i, `' /
⌒レ'⌒ヽ厂 ̄ `| ,、ィ-‐''__'''‐-`,、 '' ', i、-----.、 `''"i`'''l
人_,、ノL_,iノ! ', :i゙''''''''''`l' ` _人__人ノ_ヽ ヾ゙゙゙゙ニニ'\ ,' ト、,
/ ヽ. L__」 「 止 笑 L_ ヽ〈 i| Vi゙、
ハ ワ {. ヽ. -、、、、 ' ノ ま い 了゙, ,ヽ===-'゙ ,' , // ヽ
ハ ハ ヽ. ハ ) ら が | ',.' ,  ̄ , ' ノ /./ ヽ,
ハ ハ > /|ヽヽ、___,,,,、 'く ん > ヽ.  ̄´ / ,、 ' / / \
ハ ハ / ノ. | ヽ フ / ノ:lゝt-,-‐''" / ,.ィ゙ /
187:デフォルトの名無しさん
09/11/13 01:07:53
python 2.5 以上で作られた wiki ってどんなのがありますか?
SQLite とかどんな環境でも動きますか?
インストールは簡単ですか?
188:デフォルトの名無しさん
09/11/13 02:31:42
Python製で一番有名なのはMoinMoinWikiってやつ。
データベース不要。
インストールはpukiwikiよりはめんどい
189:デフォルトの名無しさん
09/11/13 03:32:59
>>182
初心者にとってRubyの「日本語の資料が充実している」というのはかなり重要だよ
>>183
必死にググるのに疲れたw
Pythonの標準クラスリファレンス何処ー(・∀・ )っ/凵 ⌒☆チン
190:デフォルトの名無しさん
09/11/13 08:06:18
>>185
>ちなみに私の考える初心者向け良書とは、
>読んで理解しなくてもよい本だ。
絵本より長い本読んだことないとか?
どんだけゆとりだよ(wwwwwwwwww
191:デフォルトの名無しさん
09/11/13 08:50:58
畑も耕さず、種も蒔かず、雑草も抜かず、肥料も巻かず、
水もやらず、添え木もせず、収穫もせず、金も払わず、
ただ実を食う。
そんな人間にも育て方が下手だと
批判をする権利はあります。
192:デフォルトの名無しさん
09/11/13 08:53:14
>>188
ありがとうございました
MoinMoinちょっとみてみます
193:デフォルトの名無しさん
09/11/13 10:44:06
PythonスレでRuby薦めんなアホ
194:デフォルトの名無しさん
09/11/13 11:30:45
>>191
出典あんの? 自作ポエム?
195:デフォルトの名無しさん
09/11/13 11:39:10
最近ほかのスレで見たからコピペ
196:デフォルトの名無しさん
09/11/13 13:58:56
おや、またruby厨の荒らしですか
197:デフォルトの名無しさん
09/11/13 14:56:41
>>169
初めてのPython。オライリーが出してるやつ。
英語読めるならLearning Python。
198:デフォルトの名無しさん
09/11/13 15:06:02
基地害は全部厨房用言語(ruby)にいってくれってこった
199:デフォルトの名無しさん
09/11/13 15:10:25
そういう煽りするとPythonも使ってないんだろうなって思われちゃうよw
200:デフォルトの名無しさん
09/11/13 15:18:18
>>198
そう言うんならBlenderにRubyを組み込んでくれw
201:デフォルトの名無しさん
09/11/13 16:26:28
Pythonを使ってXMLをDOMで処理したいのですが、
xml.dom とURLリンク(pyxml.sourceforge.net)
とは違うものなのでしょうか?
またこれらはExpatのPythonバインディングとも違うものなのでしょうか?
Python 2.4 しか使えない環境で使いたいツールを
作ろうとしているのですが、どのライブラリを使うと
ポータビリティが最も高いのでしょうか?
10KB程度のそれほど大きくないXML文書を
読み込んで異なる表現のXML文書に変換するツールです。
XSLTでは処理できないような変換なので
Python を使うことを考えています。
Python は twisted でネットワークがらみの
小規模のツールを書いたことがある程度です。
202:デフォルトの名無しさん
09/11/13 16:28:34
>>199
いいんだよ。他人からどう思われようが、被害が少なければそれでいい。
203:デフォルトの名無しさん
09/11/13 16:44:07
lxmlって2.4で使えるっけ?
204:デフォルトの名無しさん
09/11/13 17:26:32
使える
Python Package Index : lxml 2.2.4
URLリンク(pypi.python.org)
205:デフォルトの名無しさん
09/11/13 17:37:38
ProgrammingError: (1064, "You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use
near '\xe3\x80\x90\xe7\xb5\x8c\xe6\xb8\x88\xe3\x80\x91\xe4\xb8\xad\xe9\x96\x93\xe' at line 1")
このエラーは具体的にはどんなエラーなんでしょうか?
206:デフォルトの名無しさん
09/11/13 17:46:36
near の後は 【経済】中間 の UTF-8 表現
207:デフォルトの名無しさん
09/11/13 17:54:00
>>206
ありがとうございます。
MySqlに日本語をinsertする場合はunicode型でないといけないのでしょうか
208:デフォルトの名無しさん
09/11/13 18:02:43
>>207
それはもはやPythonの話ではなくMySQLの話だな。
URLリンク(it.kndb.jp)
クライアントから送られるSQL文の文字コードを
指定するためにデータのベースへの接続後すぐに
set names utf8; を発行するのがいいんじゃね?
209:デフォルトの名無しさん
09/11/13 18:04:34
って、UTF-8でMySQLとやりとりしたということじゃなかったのか。
インターフェイスで使う文字コードがあってさえいれば
別に他の文字コードでもいいと思うけど。
210:デフォルトの名無しさん
09/11/13 18:09:30
>>207
show variables like '%char%';
で表示される円コーディングにあわせるのが正しい方法
211:デフォルトの名無しさん
09/11/13 18:12:18
>>208-210
たくさんありがとうございます。
試してみます。
212:210
09/11/13 18:26:15
あ、 >>208 見ないでレスした
[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8
character_set_server=utf8
skip-character-set-client-handshake
213:デフォルトの名無しさん
09/11/13 20:29:46
turtleモジュールは図形描写に誤差があるのですか?
三角形、四角形、五角形…を順番に描かせるとずれてしまいます
命令が間違っているのかもしれません・・・
from turtle import*
reset()
clear()
h=3
while h<10:
a=h
b=(a-2)*180
c=b/a
d=180-c
for i in range(a):
forward(100)
right(d)
h=h+1
214:デフォルトの名無しさん
09/11/13 20:46:33
>>213
正七角形の時に角度が整数の範囲に収まらなくなるが、
int 同士の演算なので、小数点が切り捨てられている。
from __future__ import division
をコードの先頭に置くか、
c の計算を、
c = float(b) / a
に置き換える。
215:デフォルトの名無しさん
09/11/13 20:50:09
>>213
ついでに
h = 3
while h < 10:
...
は、for i in range(3, 10): でOK
216:デフォルトの名無しさん
09/11/13 20:59:52
>>213です
助かりました、ありがとうございます。
217:デフォルトの名無しさん
09/11/13 22:18:33
【科学】道路に軍手が落ちているワケ、名城大研究チームが突き止める[09/11/05]
スレリンク(hidari板)
218:デフォルトの名無しさん
09/11/14 07:53:24
emacsのpythonモードなんですが、
a = 3
だとaをハイライトしてくれるのですが、
a,b = 1, 2
だとaを(bも)ハイライトしてくれません。
理由が知りたいです。
219:デフォルトの名無しさん
09/11/14 08:56:36
(a, b) = 1, 2
(a, b) = (1, 2)
220:デフォルトの名無しさん
09/11/14 16:13:53
Class内で 最前方に二重アンダーバー __ が付いている変数やメソッドはどういう意味なのですか?
221:デフォルトの名無しさん
09/11/14 16:27:08
上手く説明できた人には座布団2枚
222:デフォルトの名無しさん
09/11/14 16:33:24
触るなよ絶対触るなよの略
223:デフォルトの名無しさん
09/11/14 16:37:25
>>220
継承したときに、たまたま同じ変数名を使ってしまったために不幸な事故が起こるのを防ぐために、
変数名に暗黙にクラス名をつける。
継承を使わないなら、 _ は一個で良い。
あと、 __ が先頭と最後両方についているメソッドは特殊メソッド。
224:デフォルトの名無しさん
09/11/14 16:39:36
URLリンク(www.python.jp)
225:220
09/11/14 16:52:54
とりあえず、C++などでいうところのprivateなインスタンス変数、と理解しておきます。
226:デフォルトの名無しさん
09/11/14 18:20:12
>>225
アンダースコア1つは、C++のprivateメンバみたいなものを作るときに使う(厳密には、ネームマンぐりングされる)
前後にアンダースコア2つは、特殊メソッドを表すっていう慣例になってる。
特殊メソッドは、自分が呼び出すんじゃなくて、Pythonインタプリタによって間接的に呼び出されるメソッド。
C++のコンストラクタみたいなもの --> __init__
+演算子のオーバーロード --> __add__
JavaのtoStringみたいなもの -> __str__
len(myobj)したときの値 --> __len__
その他大量
227:デフォルトの名無しさん
09/11/14 18:26:30
アンダーラインひとつはマングルされないだろう
from foo import * で取り込まれないだけ
ふたつだとマングルされる
228:デフォルトの名無しさん
09/11/14 21:15:43
文字列のPythonコードをPythonから別プロセスで実行させる方法ってありますか?
ファイルにしてインタプリタを起動し直せば可能ですが出来ればファイルにしたくないので
メモリ上で処理できる方法がないか探しています
229:デフォルトの名無しさん
09/11/14 23:37:20
あります
230:デフォルトの名無しさん
09/11/15 05:01:31
UnicodeError: Shift_JIS decoding error: invalid character 0x878a
args = ('Shift_JIS decoding error: invalid character 0x878a',)
具体的にどんなエラーでしょうか?
231:デフォルトの名無しさん
09/11/15 06:15:45
>>230
文字コードの指定を間違えてるか、入力ファイルに不正な文字が含まれていてデコードに失敗
232:デフォルトの名無しさん
09/11/15 06:20:51
不正な文字じゃなくても
「~」が入ってるとだめだったりするな
233:デフォルトの名無しさん
09/11/15 06:24:15
>>> '~'.decode('mbcs')
u'\uff5e'
>>> '~'.decode('shift_jis')
u'\u301c'
>>> '~'.decode('cp932')
u'\uff5e'
>>> '~'.decode('cp932').encode('utf-8')
'\xef\xbd\x9e'
>>> '~'.decode('shift_jis').encode('utf-8')
'\xe3\x80\x9c'
234:デフォルトの名無しさん
09/11/15 06:25:04
>>230
WindowsのShift_JISは、厳密にはCP932っていうShift_JISの拡張になってるから
文字コードの指定で"cp932"を与えないと一部の特殊文字とかが読めない。
㈱って字が読めてない。
235:デフォルトの名無しさん
09/11/15 06:40:33
>>231-234
本格的なアプリを作るならともかく使い捨て程度のコードですら文字コードでトラブルというのは
良い仕様とは言えないよな・・・仕様に文句言ってもしょうがないんだけどさ
1Byte圏発のブツだとこういう事が良くあるんだよなぁ
236:デフォルトの名無しさん
09/11/15 06:49:33
>>235
なんか根本的なところが間違ってる、とまではいわないまでも、考え違いをしているような気がする。
もういちどスタートラインに戻って考え直してみてはいかが?
237:デフォルトの名無しさん
09/11/15 07:36:54
>>236
日本で使う言語として
print "こんにちは"
が動かないのはどうかと思うのよ
238:デフォルトの名無しさん
09/11/15 07:49:24
一行目にshebangがあるとして
ソースはUTF-8で保存した上で
二行目に
# -*- coding: utf-8 -*-
すると幸せになる
239:デフォルトの名無しさん
09/11/15 09:37:53
>>238
幸せになれるというかこれしないと
タイプ数アホみたいに増えるから必須だと思う
240:デフォルトの名無しさん
09/11/15 11:07:15
>>235
たしかにPythonの文字コードまわりの面倒くささは尋常じゃないね
俺は一旦すべてユニコードにしてから必要なときにエンコードする
ようにしてるけど、ここまで徹底する必要あるのか?と度々思う
241:デフォルトの名無しさん
09/11/15 11:18:40
そんなんじゃPython3000についてけねーぞ
標準ライブラリですら内部でstrに変換しやがるのがあるくらいだし別に徹底してない
242:デフォルトの名無しさん
09/11/15 11:36:05
>>240
そこまで徹底するのが、文字化け対策として一番楽なんだよ。
>>237
動かないわけ無いだろ。
Python3では問題ないし、Python2でもソースエンコーディングとターミナルのエンコーディングが一致
していれば動く。
Python2 でターミナルのエンコーディングと違うソースエンコーディング使いたいなら、最初に
from __future__ import unicode_literals
とするか、 u"こんにちは" と書けば良い。
243:デフォルトの名無しさん
09/11/15 11:37:02
>>240
正解
244:デフォルトの名無しさん
09/11/15 14:38:49
>>234
ありがとうございます。。
うまくいきましたが、こんどはMS932というので引っかかってしまいました。
.decode('cp932','ignore')ってやるとあとあと困ったりしますか?
245:デフォルトの名無しさん
09/11/15 15:00:02
困るかもって思うなら
URLリンク(www.python.jp)
ここ見て置換させるとか
2chのdatなんてcp932/shift_jis/shift_jis_2004/shift_jisx0213のどれ使ってもエラー吐くときあるし
246:デフォルトの名無しさん
09/11/15 15:14:09
>>244
これ便利 => chardet.detect()
別途インストールしないと使えない(多分)のが玉に瑕
247:デフォルトの名無しさん
09/11/15 16:29:09
chardetはある程度の長さがないと役に立たんのがなあ
まあ仕組上当たり前の事なんだが
ID3タグみたいなエンコーディングどころかロケール情報もないクソフォーマット触った時は頭抱えたわ
248:デフォルトの名無しさん
09/11/15 16:38:42
def decorder(u):
if isinstance(u, unicode): return u
for cd in ['utf-8', 'euc-jp', 'cp932', 'iso-2022-jp', 'latin-1', 'ascii']:
try:
u = u.decode(cd)
break
except UnicodeDecodeError:
continue
else:
u = u.decode('latin-1', 'replace')
return u
249:デフォルトの名無しさん
09/11/15 18:54:33
>>238
それを強要する仕様を初心者向けと謳うのはどうかと思うわけだが
今時のメインシステムはWindowsでSJISだし
250:デフォルトの名無しさん
09/11/15 18:56:40
とりあえずUTF-8で書いとけってのにはまだ賛同できるが
Emacsスタイルのコメントがむかつく
251:デフォルトの名無しさん
09/11/15 19:12:10
>>249
なんか今日の変な発言はみんなあんたなのかも知れんが
Pythonには初心者に優しい仕組みを提供するみたいな理念はないぞ
読みやすく、バランス良くって結果がたまたま初心者にもそこそこ使いやすいって状況になっただけ
252:デフォルトの名無しさん
09/11/15 19:49:58
簡単なものを複雑であるかのように見せかけてはいけない。
複雑なものを簡単であるかのように見せかけてはいけない。
253:デフォルトの名無しさん
09/11/15 19:55:57
thisってんじゃねーぞ
254:デフォルトの名無しさん
09/11/15 20:23:54
>>249
いや、コードページがCP932だからといって、スクリプトのエンコーディングまで
勝手にCP932だと仮定されてしまうようだとまずいだろ
スクリプトを書くのは自分だけじゃないんだぞ
日本語Windowsで実行しているからと言ってブラウザがHTMLを
全部CP932だと考えるようではまずいのと同じだ
エンコーディングなんて書いた奴しか分からない(推定はできるが)ので
指定させるのが確実で手っ取り速い、HTMLと同じだろ?
>>250
> Emacsスタイルのコメントがむかつく
別にEmacsスタイルである必要は無いよ
#coding: utf-8
とかでいい
実際には
coding[=:]\s*([-\w.]+) という正規表現で
エンコーディング指定らしきものとパターンマッチしている
255:デフォルトの名無しさん
09/11/15 20:31:28
そういうことじゃなくて幸せになれるのは誰かってこと
Windowsでそこらのエディタ使ってる初心者が幸せになれるわけじゃないよね
あとPEPから正規表現抜いてくるんなら
引用元書いたほうが勉強してる人が幸せになれるよ
256:デフォルトの名無しさん
09/11/15 20:35:15
WindowsっていつまでSJIS使うんだろうなwww
257:デフォルトの名無しさん
09/11/15 20:40:43
C の初心者は
#include <stdio.h>
を
#include <studio.h>
と平気で書いたりするからな
python でも
# code: shift_jis
とか書いて動かないとか言い出す香具師が出てきてもおかしくない
「初心者」と「アホ」は区別して良いと思う
258:デフォルトの名無しさん
09/11/15 20:54:56
>>254
ブラウザは実用に支障のないレベルで文字コードを自動判別してくれるぞ
そこまでは行かなくてもWindows向けインタプリタのデフォルト文字コードは
mbcsでも良いはずだ
259:デフォルトの名無しさん
09/11/15 21:00:38
どうですか?
URLリンク(boost.cppll.jp)
260:デフォルトの名無しさん
09/11/15 21:02:39
スレ的にはこっちが良かったかな
URLリンク(boost.cppll.jp)
261:デフォルトの名無しさん
09/11/15 21:10:44
>>258
> そこまでは行かなくてもWindows向けインタプリタのデフォルト文字コードは
> mbcsでも良いはずだ
それじゃ全然ダメなんだよ
他人が書いたモジュールやスクリプトのことも考えろ
mbcsの意味がCP932なのは日本語ウィンドウズの話であって
外国ではWindows-1252だったりするわけだ
Windows-1252な環境の連中の書いたモジュールやスクリプトを
CP932でデコードして動くとでも思うのか?
262:デフォルトの名無しさん
09/11/15 21:36:33
>>258
誤爆する可能性のある判別法を自動適用するとかアホすぎるぞ
263:デフォルトの名無しさん
09/11/15 21:44:40
ブラウザにhtmlの文字コード自動判定する機能があるからといって、それに依存して
きちんとヘッダを書かないのは間違い。
ブラウザは自動判定ミスっても間違って表示するだけだけど、
プログラムが自動判定ミスって間違って動作するとマズイだろ。
264:デフォルトの名無しさん
09/11/15 21:45:38
曲がりなりにもプログラミング言語なのに
まともにHTMLすら書けないレベルの奴はさすがに相手にしてないだろw
#coding: cp932のようにソースエンコーディングを指定するのも
#include <stdio.h>とか書くのも
何かを足すときに+と書くのも
全部言語仕様であり決まりごとに過ぎんと思うが
265:デフォルトの名無しさん
09/11/15 21:50:54
>>261
配布されているコードは文字コードが書いてあるんだからデフォルトの文字コードが
何になっていようが問題ないのではないかい?
266:デフォルトの名無しさん
09/11/15 21:59:59
> 配布されているコードは文字コードが書いてあるんだから
運用ルールで済ませるのではなく、「確実に」強制する方法を
Pythonが選んだというだけだろ
それ以外に「確実に」強制する方法は存在しないわけだし
1byte圏の人間がどんだけ文字エンコーディングに関心を持たないかなんて
知ってるだろ
こんだけやってくれてるのはむしろ有難いと思ったほうがいいぞ
267:デフォルトの名無しさん
09/11/15 22:27:30
そうだな、これだけ厳密にやってくれてるから、Python製で日本語でも問題起きない
アプリが多いんだよな。
268:デフォルトの名無しさん
09/11/15 22:45:24
>>260
そこヘッダにエンコードも書いてあるのに
なんで化けるんだろう?
269:デフォルトの名無しさん
09/11/15 22:50:10
エラーは明示的に、という設計思想だから一見文字コードのエラー(UnicodeEncode/DecodeEroor)が多いように見えるが、
どこがまずいのかを明確に指摘してくれるから俺のような初心者には逆にありがたい。
270:デフォルトの名無しさん
09/11/15 22:56:46
>>269の2行目は「それはどこがまずいのか明確に指摘してくれるってことだから~」にしてくれ
>>268
レスポンスヘッダがUTF-8になってるから
271:デフォルトの名無しさん
09/11/15 22:59:30
HTTPサーバのレスポンスヘッダの方が優先されるのね。不思議
272:デフォルトの名無しさん
09/11/15 23:03:30
>>271
URLリンク(www.asahi-net.or.jp)
HTML4.0仕様の5.2.2に優先順位が書いてある
サーバレスポンスが一番優先順位が高い
273:デフォルトの名無しさん
09/11/15 23:32:09
>>270
なるほど㌧
Apacheのバージョン変えたときに
AddDefaultCharset UTF-8 のままにしちゃってるパターンか
中のひと分かってるのかなぁ
274:デフォルトの名無しさん
09/11/15 23:33:50
馬鹿よけのためにわざとやってるサイトがあるという話を聞いたことがある
275:デフォルトの名無しさん
09/11/15 23:44:02
「原則unicodeで必要なときだけstrに変換すべき」
理想ではあるけど現実的じゃないよね
276:デフォルトの名無しさん
09/11/15 23:46:10
utf-8派がutf-8化の強制を目的としてわざとやることはある。
277:デフォルトの名無しさん
09/11/15 23:46:14
そう、従わない奴が多いからPython3はああいう仕様になった
そういう意味では現実的ではない
278:デフォルトの名無しさん
09/11/16 01:17:28
最近はUTF-8が増えてきたとは言え文字コードの扱いなんてそれぞれの言語圏で
育った文化の上に成り立っている物だし、それをガン無視して「仕様なんだから、こうしろ」とか
言っても不満が噴出して当然だよな
日本なんかいまだにJIS、SJIS、EUC-JP、UTF-8やらが入り乱れている状態だしなw
279:デフォルトの名無しさん
09/11/16 01:21:38
意味が分からん
少なくともプログラマが吐くセリフじゃない
280:デフォルトの名無しさん
09/11/16 01:26:17
Unicodeには言語学者とかも係わってくるから騒ぎが大きいけど、
Pythonには不満が噴出するほど人がいない。
281:デフォルトの名無しさん
09/11/16 01:42:07
プログラマなら UTF-8 一択だろ JK
282:デフォルトの名無しさん
09/11/16 01:48:08
>>281
バカか?w
扱う文字コードをすべてUTF-8に統一できるわけがないだろうjk
283:デフォルトの名無しさん
09/11/16 01:55:05
それはお前がおかしい。
284:デフォルトの名無しさん
09/11/16 02:14:35
>>281
みたいなのがプログラマだったら大変だな
「仕様書が悪い」とか言い出しそうだw
285:デフォルトの名無しさん
09/11/16 08:59:32
>>282
扱う文字コードではなく、ソースコードのエンコーディングの話をしてるんだぞ?
286:デフォルトの名無しさん
09/11/16 09:00:43
意味が分からん
少なくともプログラマが吐くセリフじゃない
287:デフォルトの名無しさん
09/11/16 18:28:36
SQLインジェクションやXSSの対策ですが、
XSSはGET引数を
query = cgi.escape(f.getfirst("q", "0"))
で対応しているのですが完璧でしょうか?
また、SQLインジェクションもこれでいけますか?
SQLやXSSのほかに対策すべきことはあるのでしょうか?
288:デフォルトの名無しさん
09/11/18 19:27:11
初心者過ぎてお恥ずかしいですが、助けてくださいorz
OSはwindowsXPです。
URLリンク(code.google.com)
これをやろうとしていますが、「アプリケーションのテスト」のところで、
「次のコマンドで helloworld ディレクトリまでのパスを指定し、Web サーバーを起動します。
google_appengine/dev_appserver.py helloworld/」
からわからなくなりました。
コマンドプロンプトで実行するんでしょうか。
helloworldフォルダをどこにおくべきでしょうか。どう指定するのでしょうか。
URLリンク(code.google.com)
「Python 開発用サーバー」ページにある「dev_appserver.py myapp
」をcmdで打ったら「dev_appserver_main.py:410] Application configuration file not found in myapp.」のエラーになりました。
よろしくお願いいたしますorz
289:デフォルトの名無しさん
09/11/18 19:35:24
>>288
>コマンドプロンプトで実行するんでしょうか。
そのとおりです。
> helloworldフォルダをどこにおくべきでしょうか。
ディレクトリ構成は
+ google_appengine/
- dev_appserver.py
+ helloworld/
- app.yaml
- helloworld.py
> どう指定するのでしょうか。
まずコマンドプロンプトで「python -V」と入力したら
Python 2.5.4
みたいなのが出ることを確かめましょう。
そのあと「python google_appengine¥dev_appserver.py -p 8080 helloworld」を実行すればおけ。
290:デフォルトの名無しさん
09/11/18 19:39:43
>>289
ご回答どうもありがとうございます。
Python2.6.4ですが、バージョンが違うからエラーになるのでしょうかorz
291:デフォルトの名無しさん
09/11/18 19:57:29
エラーメッセージをよくみようぜ。
Application configuration file not found in myapp
とあるんだから、app.yaml が myapp の下にないんじゃないの?
292:デフォルトの名無しさん
09/11/18 22:33:46
>>288
さっきからマルチポストしているお馬鹿さんへ
あなたがポストするべき場所はこちらです
スレリンク(php板)
さようなら
293:デフォルトの名無しさん
09/11/18 23:25:18
URLリンク(docs.python.org)
公式では無かったようなのですが、2.4とか2.5とかのライブラリのソースが
ハイライトされてるページが有ったと思います。
2,3年前に見た記憶がありますがどこか忘れてしまいました。
誰か知りませんか?
294:デフォルトの名無しさん
09/11/19 02:22:14
コストの大きい関数、largefunctionがあったとして
if largefunction(arg): otherfunction(largefunction(arg))
と同じようなことを、関数呼び出しが重複しないように書くにはどうすればいいですか。
ローカルな一時変数を作成するのもおかしな話だと思うので。
295:デフォルトの名無しさん
09/11/19 02:36:00
>>ローカルな一時変数を作成するのもおかしな話だと思うので。
おかしくないよ
296:デフォルトの名無しさん
09/11/19 02:46:06
largefunctionを実行するコストよりローカル変数作るコストの方が小さいことが多い
っていうか副作用を起こす関数もあるのでlargefunctionじゃなくても普通ローカル変数作る
297:デフォルトの名無しさん
09/11/19 02:49:01
おかしくないよな…
ローカル変数に一旦取るのが普通だと思ってた。
そんな風に考える人も居るんだという勉強になりました。
298:デフォルトの名無しさん
09/11/19 02:50:23
otherfunction(v) if (v = largefunction(arg)) or v else pass
299:デフォルトの名無しさん
09/11/19 02:52:56
代入文は式じゃありません
300:デフォルトの名無しさん
09/11/19 02:59:43
>>295-297
本人じゃないけど二行になるのが嫌って言ってるように感じる
301:デフォルトの名無しさん
09/11/19 02:59:44
(lambda v: otherfunction(v) if v)(largefunction(arg))
302:デフォルトの名無しさん
09/11/19 03:01:24
ダメじゃん
(lambda v: otherfunction(v) if v else None)(largefunction(arg))
303:デフォルトの名無しさん
09/11/19 03:02:05
>>301
SyntaxError: invalid syntax
304:デフォルトの名無しさん
09/11/19 03:04:14
lambda のコストってどんなもんなん?
305:デフォルトの名無しさん
09/11/19 04:00:20
素直に3行で書きましょう
306:293
09/11/19 04:12:55
誰か教えてくれよ!
307:デフォルトの名無しさん
09/11/19 05:06:09
見たことあるよ
でも忘れたよw
308:デフォルトの名無しさん
09/11/19 05:13:24
辞書でd3 = d1 + d2見たいな操作できないの? 今は以下のようにやってるんですが、不便です。
pyhotnを触り始めてまだ日が浅いので、足りない知識が多いかと思いますが、よろしくお願いします。
tmp = d1
tmp.update(d2)
d3 = tmp
309:デフォルトの名無しさん
09/11/19 05:17:35
URLリンク(www.koders.com)
310:デフォルトの名無しさん
09/11/19 05:19:08
>>308
過去スレにあったと思う
311:308
09/11/19 05:24:34
ありがとうございます。探してみます。
312:デフォルトの名無しさん
09/11/19 05:27:00
過去スレの結論は
d3 = d1
d3.update(d2)
だったような気がするw
313:デフォルトの名無しさん
09/11/19 09:43:53
もしくは、
d3 = dict(d1, **d2) だっけかな。
314:デフォルトの名無しさん
09/11/19 20:29:32
feedparserでパースしたtitle要素をwxpythonのListbox内に挿入したいのですが
どうすればいいのでしょうか?
315:デフォルトの名無しさん
09/11/20 08:46:18
システムのパスデリミタを気にせずに、ディレクトリ名やファイル名を結合する方法はありますか?
分割する方は割りと簡単にできたのですが、結合がよくわかりません。
316:デフォルトの名無しさん
09/11/20 08:55:02
os.path.append
317:デフォルトの名無しさん
09/11/20 09:01:37
できました。ありがとうございます。
318:デフォルトの名無しさん
09/11/20 17:19:47
os.path.join
?
319:デフォルトの名無しさん
09/11/20 22:39:04
>>294
if largefunction(arg): otherfunction(0)
320:320
09/11/20 23:01:19
wxPythonを使ってGUIツールを作っています。
自分の開発環境PCでは問題なく動作しているのですが、
wxPythonをインストールしていないPCで実行すると、
「ImportError: No module named wx」が出ます。
プログラムを実行させるには、
PCにwxPythonをインストールするしかないのでしょうか?
321:デフォルトの名無しさん
09/11/20 23:16:11
そうだね。
ImportErrorをキャッチして
メッセージを出すのもありかも。
322:デフォルトの名無しさん
09/11/20 23:32:20
py2exe
323:デフォルトの名無しさん
09/11/21 00:49:33
def Plus(args):
~
def Hoge(cmd = 'Plus'):
globals()[cmd](~)
は出来るのですが、Plus関数をHogeの内部に記述するとキーが見つからないと起こられてしまいます。
globals()をlocals()に変えてもダメでした。
関数内関数を文字列で指定して実行するにはどうすればよいのでしょうか?
324:デフォルトの名無しさん
09/11/21 00:59:36
駄目な方のソースも載っけてみ
325:デフォルトの名無しさん
09/11/21 01:04:15
駄目な例
def Hoge(cmd = 'Plus'):
globals()[cmd](~)
def Plus(args):
~
もしかしたらと思い、以下のようにしたらエラーになりませんでした。
def Hoge(cmd = 'Plus'):
def Plus(args):
~
globals()[cmd](~)
先に定義しておかないとダメってことでしょうか?
326:デフォルトの名無しさん
09/11/21 01:24:31
Yes
上から下に向かって実行されるから。
> def Plus(args):
> ~
の意味は、~を解析してPlusという名前の関数で登録しろという意味の実行文。
実行されなければ、存在することが出来ない。
327:デフォルトの名無しさん
09/11/21 01:37:18
なんか前も見た流れだな
C はコンパイラはとにかくコンパイルして
リンカが頑張って名前解決してるから
順序とかどうでも良くなってる
一方で Python の def/class は代入式だと思っていい
328:デフォルトの名無しさん
09/11/21 07:39:23
>C はコンパイラはとにかくコンパイルして
>リンカが頑張って名前解決してるから
>順序とかどうでも良くなってる
いや
ヘッダがあるから大丈夫なだけで
Cも順序が逆だと
プロトタイプが無いエラーになるか
暗黙の型定義で代用される
329:デフォルトの名無しさん
09/11/21 11:29:03
あるプログラム(A)の出力をpythonプログラム(B)で読み込みたいのですが
import sys
if __name__=='__main__':
while True:
l = sys.stdin.readline()
if len(l) == 0: break
print '>', l,
print 'fin'
とした場合、(B)だけで実行すると望んだ結果が得られるのですが、
> (A) | (B)
とすると
fin
close failed in file object destructor:
Error in sys.excepthook:
Original exception was:
最後のfinだけが表示されてエラーが出てしまいます。
パイプで繋げた標準入力から1行ずつ読み込むにはどうすればいいでしょうか?
330:デフォルトの名無しさん
09/11/21 11:41:57
Windowsだとパイプで変な挙動をすることがあったような
環境書いたほうがいいよ
で、もしWindowsなら > A | python B で試してみる
331:329
09/11/21 11:49:50
環境はWindowsXP SP3です。
>>330の方法で試したら望んだ結果になりました。
ありがとうございました。
332:デフォルトの名無しさん
09/11/21 13:16:25
float返すC++の関数があり、それをあるPythonのラッパーが呼び出します。
この返り値をunittestのassertEqualでテストしたいのですが、
assertEqual(3.141592, その関数())
とやると、第1引数は倍精度、第2引数は単精度になり、比較結果が一致しません。
assertAlmostEqualを使わないで、第1引数を単精度にする方法はあるでしょうか。
333:デフォルトの名無しさん
09/11/21 14:48:17
それ精度の問題じゃないよ
334:デフォルトの名無しさん
09/11/21 14:52:51
じゃあ何の問題なんだよ…はっきり言え
335:デフォルトの名無しさん
09/11/21 14:55:45
numpyあたり単精度も扱ってくれたりしないのかな
使ったことはまったくないが
336:デフォルトの名無しさん
09/11/21 17:30:01
浮動小数点数でassertEqualするのが間違いだろ
337:デフォルトの名無しさん
09/11/21 18:02:51
間違いってことはあるまい。
浮動小数点数なんてCPUが違うと結果違うのは当たり前だし、
x86なんかFPUを使うかSSEを使うかで結果違ってくるし、
言語によっても浮動小数点数の扱いが広げ方や丸め方が違うし、
最適化のかけ方によっても結果が変わってくるし、
そういうのをテストで弾きたいって意味でしょ?
となると、弾かれたのはまさに期待通りなわけだが。
338:デフォルトの名無しさん
09/11/21 19:02:29
ahoが湧いてる
339:デフォルトの名無しさん
09/11/21 19:06:19
assertEqual('3.141592', '%8.6f' % その関数())
340:332
09/11/22 08:21:04
ありがとうございます。
書き方が悪かったですが、第2引数は3.141592を計算した結果返すのではなく、
単精度で与えられた3.141592をそのまま単精度で返すだけです。
getterとsetterのテストをしています。
極端には、
float func(float val){ return val;}
みたいなのがあって、
assertEqual(3.141592, func(3.141592))
とやると弾かれるというわけです。
341:デフォルトの名無しさん
09/11/22 08:27:40
assertEqual(func2(3.141592), func(3.141592))
342:デフォルトの名無しさん
09/11/22 13:58:31
URLリンク(www.atmarkit.co.jp)
343:デフォルトの名無しさん
09/11/22 19:52:08
URLから嫌な悪寒が
344:デフォルトの名無しさん
09/11/23 00:32:32
本人乙
345:332
09/11/23 10:41:09
>>341
func2のユニットテストはどうやるのでしょうか。
346:デフォルトの名無しさん
09/11/23 12:07:09
今までの経緯を見ると
必ずしもリップサービスではなくて
本当にそのつもりで頑張っているような気もする。
目標10割、達成6割でOKというのが
アメリカ人の感覚なのかな。
347:デフォルトの名無しさん
09/11/23 15:07:15
正規表現使ってレクサ書こうとして
def lex(input):
if re.match(r'\d+', input):
return "digit"
elif re.match(r'\w+', input):
return "ident"
elif re.match(r'[+\-*/=@&|^~]+', input):
return "operator"
else:
return "error"
みたいにしようと思ったけどこれだとマッチした結果が使えない
こんなとき普通はどうするもん?
348:デフォルトの名無しさん
09/11/23 15:10:48
def lex(input):
pat = (
(r'\d+', 'digit'),
(r'\w+', 'ident'),
(r'[+\-*/=@&|^~]+', 'operator'),
)
for p in pat:
m = re.match(p[0], input)
if m:
return p[1], m
else:
return "error"
349:デフォルトの名無しさん
09/11/23 15:11:49
インデント消えたけど最後の else: は if じゃなくて for の else なので注意してね
350:デフォルトの名無しさん
09/11/23 17:04:38
>>348
サンクス参考にしてみる
351:デフォルトの名無しさん
09/11/23 19:06:50
誰かが書いたPythonのコード読んでいいところをマネしたいので
参考になるコードを知っている方いましたら教えてください
一通り入門書を読み終えた程度のものなのであまり大規模ではないものを
まずは見たいと思っています。バージョンは2でも3でも読めます
よろしくお願いします
352:デフォルトの名無しさん
09/11/23 19:21:11
標準ライブラリ
353:デフォルトの名無しさん
09/11/23 19:21:50
>>351
SourcrForgeで、関心がある分野(画像処理、とか)のプロジェクトのソースをダウンロード。
その次は、プロジェクトにパッチを送ってみる。
URLリンク(sourceforge.net)
354:デフォルトの名無しさん
09/11/23 21:29:15
def FeedBtn(self, event):
feedlist=[line for line in file("feedlist.txt")]
tlist = []
for feedurl in feedlist:
feed=feedparser.parse(feedurl)
for e in feed.entries:
feed.append(e.title, e.summary, e.enclosures[0].url,
e.enclosures[0].type, e.enclosures[0].length)
return tlist
self.Frame.titlelist.Clear()
self.Frame.titlelist.Appned(tlist(e.title))
何とかしてtitle一覧作りたいのですがGUIのListBoxにtitle一覧が表示されないです
ボタン押してもエラーが出ないので何が間違ってるか分からないです。
355:デフォルトの名無しさん
09/11/23 21:48:45
>>351
俺も標準ライブラリ読むのがいいと思う。良くないのも多いが
あと先に言っておくけどtwistedとZopeは参考にするな
356:デフォルトの名無しさん
09/11/23 21:59:13
ワープアは大変だな。
357:デフォルトの名無しさん
09/11/23 22:05:14
>>354
・GUI無しで、単純にtitle一覧リストデータは得られるか?
・ListBox以外のコントロールに表示は出来るか?
・title一覧でなくて、単純なリストの項目をListBoxに追加表示できるか?
これくらい調べてきてくれ
358:デフォルトの名無しさん
09/11/23 22:05:55
>>342
普通に面白かった
359:デフォルトの名無しさん
09/11/23 23:01:18
なにも言ってないに等しいな
360:デフォルトの名無しさん
09/11/23 23:55:46
変数の存在確認をする関数ってありますか?(phpで言うisset)
361:デフォルトの名無しさん
09/11/24 00:24:23
try:
hoge == "PHPの仕様がおかしい"
except NameError:
pass
362:デフォルトの名無しさん
09/11/24 00:30:08
方法1
初期化しとけ
方法2
例外を捕らえる>>361
方法3
'hoge' in locals()
363:デフォルトの名無しさん
09/11/24 00:56:19
>>362
>>361
方法1,2は知っていたのですが、
毎回書くのは面倒くさいのでべつの方法を探していました。
3を採用してみます
364:デフォルトの名無しさん
09/11/24 02:01:27
何か知らないけどPythonのコードは例外の補足を必要とする率が極めて高い
365:デフォルトの名無しさん
09/11/24 04:11:22
100%と思ってた方がいい
366:デフォルトの名無しさん
09/11/24 15:13:29
みんぱいの人は中学から雑誌に原稿書いているのかぁ
それに比べておれたちときたら...orz...
367:デフォルトの名無しさん
09/11/24 16:23:41
みんなのおっぱい乙
368:デフォルトの名無しさん
09/11/24 22:56:54
>>352,>>353,>>355
ありがとうございます。参考にさせていただきます
369:デフォルトの名無しさん
09/11/26 11:53:41
Editraで日本語入力ができないのですが
これはpythonのライブラリが原因だからでしょうか?
日本語を扱うソフトを作りたいのですがこれはプログラミング側でどうにもできないですよね?
370:デフォルトの名無しさん
09/11/26 13:36:31
for(int i = 10; i >=0; i--)
をpythonではどう書くんでしょうか?
371:デフォルトの名無しさん
09/11/26 13:54:34
>>370
for i in xrange(10, -1, -1):
>>369
Pythonライブラリというか、その下のC言語で書かれた部分の問題だと思う。
372:デフォルトの名無しさん
09/11/26 15:18:49
>>371
ありがとう
373:デフォルトの名無しさん
09/11/26 17:41:52
パイソンって強そうな名前ですが、本当につおいのですか?
でもちょっとHでもありますが。。
374:デフォルトの名無しさん
09/11/26 17:45:57
けっこうつおい。
375:デフォルトの名無しさん
09/11/26 17:46:24
750 デフォルトの名無しさん [] 2009/11/26(木) 17:39:38 ID: Be:
まったくズブの素人です。
これからブイバ初めても間に合いますか?
プログライミングをでけるようになりたいから
手始めにVBAから勉強するのか迷い中です。
何か時代は.NETでブイビーも.NET
それじゃ~ブイバももう手遅れなんでしょうか?
376:デフォルトの名無しさん
09/11/26 17:49:52
>>375
バイブだのズブズブだの初めてだの、エロいレスだな。
377:デフォルトの名無しさん
09/11/26 18:41:17
>>376
375のこいつ暇すぎて変なことばかりしとる
378:デフォルトの名無しさん
09/11/26 19:40:12
>>373
パイロンって読むんじゃないの?
379:デフォルトの名無しさん
09/11/26 19:42:32
またruby厨の荒らしっすか
380:デフォルトの名無しさん
09/11/26 20:42:05
パイソンはタイソンよりつおいから自信もってw
381:デフォルトの名無しさん
09/11/26 20:48:07
972 デフォルトの名無しさん [sage] Date:2009/11/23(月) 17:09:32 ID: Be:
ID強制になるだけで静かになるよ
973 デフォルトの名無しさん [] Date:2009/11/23(月) 18:02:02 ID: Be:
その変更はキミに任せるから提案してくれ。
974 デフォルトの名無しさん [] Date:2009/11/23(月) 18:18:58 ID: Be:
反対するのは荒らしたい奴だけだから強行しちゃって良いよ
382:デフォルトの名無しさん
09/11/27 15:52:29
クラスの初期化と同時にプロパティをセットするにはどうやったらいいんでしょうか?
例えばC#なら
A a = new A(){ Property = xxxx }
みたいなかんじで書きたいんですが
383:デフォルトの名無しさん
09/11/27 16:06:08
自分で作ったクラスなら__init__で引数取ってプロパティをセット
そうじゃないなら諦めろ
384:デフォルトの名無しさん
09/11/27 16:19:50
**kwargs
385:デフォルトの名無しさん
09/11/28 00:36:27
functools.partial
386:デフォルトの名無しさん
09/11/28 19:40:12
def setprop(obj, **kw):
for propname in kw:
setattr(obj, propname, kw[propname])
return obj
387:デフォルトの名無しさん
09/11/30 10:01:30
集合知プログラミング6章のtrain関数にMeCabで分かち書きした名詞の辞書渡そうとすると
TypeError: 'dict' object is not callableで怒られる。
どうすればいいんだorz
388:デフォルトの名無しさん
09/11/30 10:17:58
ソース
389:デフォルトの名無しさん
09/11/30 18:04:57
作成したあるライブラリを
python setup.py install
でインストールし、無事に使用できています。
しかし新しいバージョンのライブラリを同様の手順で
インストールすると古いバージョンのファイル
(もはや使っていないモジュール)が残ってしまいます。
これは手動で削除するしかないのでしょうか?
旧バージョンのアンインストール+新バージョンのインストール
という作業を自動化する方法はないのでしょうか?
390:デフォルトの名無しさん
09/11/30 18:27:37
easy_installでもuninstallは出来ないよね。なんでだろ。
手動でもいいのでuninstallの方法が知りたい。
391:デフォルトの名無しさん
09/11/30 18:58:10
setuptools を捨てて、 distribute + pip を使うんだ。
pip uninstall がある。
392:デフォルトの名無しさん
09/11/30 19:32:28
setuptoolsは俺も正直どうかと思う
いちゃもんみたいなもんだがいつまでもバージョン1にならんし
コードも汚い
393:デフォルトの名無しさん
09/11/30 19:48:59
パッケージのアンインストールは
easy_install -m packagenameして登録解除?した後
lib/site-packagesからeggまたはディレクトリを手動で削除、らしい
ほんとなんでこんなのがデファクトスタンダードになってしまったのだろうか
394:デフォルトの名無しさん
09/11/30 19:52:28
インストールがイージーだから
395:デフォルトの名無しさん
09/11/30 20:24:51
>>393
そんな簡単な手順なら
easy_uninstall を作って配布してください
396:デフォルトの名無しさん
09/12/01 14:57:43
>>393
ナイス情報ださんくす
397:デフォルトの名無しさん
09/12/01 18:14:17
透明なウィンドウを作り、その上に文字を表示する方法が分かりません。
pygameでもwxでもそれ以外でも何でもいいです。
OSはXPで、pythonのバージョンは2.6です。
一応PILを使い
myfont = ImageFont.truetype(font,size)
wsize = myfont.getsize(text)
img = Img.new('RGBA',wsize,(0,0,0,0))
draw = ImageDraw.Draw(img)
draw.text((0,0),text,fill=color,font=myfont)
img.save('temp.png')で文字画像を保存し
wxPythonで
style = wx.FRAME_NO_TASKBAR | wx.FRAME_SHAPED | wx.NO_BORDERのウィンドウを作成して
bmp = wx.BitmapFromImage(wx.Image('temp.png'))
self.SetClientSize(bmp.GetSize())
self.SetShape(wx.RegionFromBitmap(bmp))のようにしてやろうとしたのですが
背景が透明にならず、灰色になってしまいました。
画像ビューアではちゃんと背景は透明になっているのですが…。
あと、GIMPで作成した画像だとちゃんと背景が透明になります。
何が駄目なのでしょうか?
この解決方法もしくは他の良い方法があれば教えて欲しいです。
よろしくお願いします。
398:デフォルトの名無しさん
09/12/01 18:39:08
アルファ付きの画像を表示しただけでウインドウまで透明になったら苦労しないよ。
399:デフォルトの名無しさん
09/12/01 19:30:45
>>397
やりかた知らないけどwxPythonのサンプルにヘビ画像のウィンドウサンプルがあったから、それで出来ないかな?
400:デフォルトの名無しさん
09/12/01 20:27:00
RegionFromBitmapColourで透過色指定するのは?
401:デフォルトの名無しさん
09/12/01 20:55:28
>>397
この質問どこかで見たぞ?
402:>>397
09/12/01 20:58:11
>>400の方法で出来ました。
ありがとうございました。
403:デフォルトの名無しさん
09/12/01 23:12:44
>>396
ちょっとぐぐったらこんなのがあった
URLリンク(d.hatena.ne.jp)
404:デフォルトの名無しさん
09/12/03 06:09:26
re.compile(ur'(\d*)?')
が nothing to repeatと言われます
確かに無意味な部分がある正規表現ですが、意味を解釈できないというわけでもないと思えます
wshなんかでは通りますし
それでふとした疑問なんですが
"この正規表現が間違っている" と "Pythonが気を利かせせてくれている" ではどちらがより適切な理解だと思われますか?
405:デフォルトの名無しさん
09/12/03 09:35:16
エラーになるからには、Python(の正規表現ライブラリ)的には、間違ってる、
と解釈するのが妥当だろう。
解釈が一意に決まらない、というのは、場合によってはエラー扱いされて
おかしくない状況。
406:デフォルトの名無しさん
09/12/03 18:00:22
Pythonはいろいろとワガママすぎる
407:デフォルトの名無しさん
09/12/03 18:45:46
Rubyはすばらしい本当に素晴らしいですよ
408:デフォルトの名無しさん
09/12/03 19:13:02
Pythonと違って懐の深い言語だしな
409:デフォルトの名無しさん
09/12/03 20:13:57
すみません。教えてください。
呼び出されたdefの中で、誰(widget)から呼び出されたか
を知る方法って無いでしょうか。
410:デフォルトの名無しさん
09/12/03 21:03:26
esp
411:デフォルトの名無しさん
09/12/04 00:30:09
[[]] * n とすると中のリストの実体は一つでそれの参照がn個外のリストに入るんだな
おかげで小一時間なやんだ
412:デフォルトの名無しさん
09/12/04 09:07:34
そうやって初心者はオブジェクトと参照の概念を学んでいくのさ・・・
413:デフォルトの名無しさん
09/12/04 09:31:51
概念は分かってても
言語によって挙動が違うからなぁ
414:デフォルトの名無しさん
09/12/04 10:54:02
モジュールレベルの __author__ とか __copyright__ とかって
何がどのようなドキュメンテーションシステムで使われているのか
どこで決められているんでしょうか?
PEP で docstring その他のコードの書き方、スタイルについての
ガイドラインって有りますか?
自分としては
1)PyDev (Eclipse) の補完時に追加情報として表示して欲しい
2)あとで Sphinx でドキュメント生成するかもしれない
と思っていますが、とにかく何か取り決めがあるなら
それに従っておこうと思っています。