Pythonのお勉強 Part34at TECH
Pythonのお勉強 Part34 - 暇つぶし2ch75:デフォルトの名無しさん
09/07/11 01:42:23
>>73
宣伝乙

76:75
09/07/11 01:43:58
>>73
明日書店行って立ち見してくるわ

77:デフォルトの名無しさん
09/07/11 03:29:09
見るだけな。絶対買わない。

78:デフォルトの名無しさん
09/07/11 04:10:38
うちに余ってるからあげようか?

79:デフォルトの名無しさん
09/07/11 21:19:42
PythonTシャツを試作してみてるんだけど、
買うとしたらどのくらいの人間が買う?ということが気になっている。

80:デフォルトの名無しさん
09/07/11 21:30:33
URLリンク(t-shirts.cafepress.com)

81:デフォルトの名無しさん
09/07/11 21:39:38
URLリンク(www.python.org)

82:デフォルトの名無しさん
09/07/12 07:41:09
標準出力を変数に代入することは出来ますか?

変数に代入するときは標準出力に吐き出されず、
以降は print などで普通に出力される動作を期待しています。

83:デフォルトの名無しさん
09/07/12 08:09:59
できますよ

84:デフォルトの名無しさん
09/07/12 09:31:52
どうすればできるでしょうか?

85:デフォルトの名無しさん
09/07/12 09:59:08
回答まだでしょうか?

86:デフォルトの名無しさん
09/07/12 13:26:10
from cStringIO import StringIO
stdout = sys.stdout
sys.stdout = StringIO()
print "test"
test = sys.stdout.getvalue()
sys.stdout.close()
sys.stdout = stdout

これで、できました。失礼します。
あと、>>85は自分ではありません。

87:デフォルトの名無しさん
09/07/13 11:27:36
>かなり厳しいstrictな規格
strictって”厳しい”って意味ですよね
意味が重複してますよね

88:デフォルトの名無しさん
09/07/13 12:56:10
人に使わせるプログラムをPythonで書いて,とりあえずコンソールプログラムとしては完成したので,
今度はそれをEasyGuiでGUI化しようとしてるんだけど,コンソール(コマンドプロンプト)ウィンドウが
邪魔くさいので非表示にしたいんです。

ググってもわからなかったので,どうすればいいのかエラい人教えてください。

環境はWindows XPでPython 2.6.2動かしてます。
起動は.pyファイルをダブルクリックするようにしてるので,コマンドプロンプトを開いて
起動しているわけではありません。

89:デフォルトの名無しさん
09/07/13 13:03:27
>>88
拡張子を .pyw にする。
もしくは ctypes で FreeConsole() を呼ぶ。

90:88
09/07/13 13:10:58
>>89

> 拡張子を .pyw にする。

うわー,そんなんでよかったのか!

> もしくは ctypes で FreeConsole() を呼ぶ。

こっちも調べてみます。
速攻レスサンクス。

91:デフォルトの名無しさん
09/07/13 17:38:58
俺も知らんかった、.pywってそういう意味だったのか・・・


92:デフォルトの名無しさん
09/07/13 17:40:26
でも.pywはpythonw.exeに関連付けされてるだけだよ

93:88
09/07/13 18:50:03
うん。後から気がついた。

94:デフォルトの名無しさん
09/07/13 22:29:01
tyowww

95:デフォルトの名無しさん
09/07/14 16:26:04
import hashlib とすると、
>>> import hashlib
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.5/hashlib.py", line 133, in <module>
md5 = __get_builtin_constructor('md5')
File "/usr/lib/python2.5/hashlib.py", line 60, in __get_builtin_constructor
import _md5
ImportError: No module named _md5

と怒られます。解決策を教えてください。
cygwinでpython2.5.2です。


96:デフォルトの名無しさん
09/07/14 17:03:41
>>95
エラーを再現できない。

/usr/lib/python2.5/lib-dynload/_hashlib.dll
があるかどうか確かめてくれ。

97:95
09/07/14 17:15:55
>>96
お返事ありがとうございます。
存在します。


98:95
09/07/14 17:23:09

URLリンク(code.krypto.org)
から、hashlibのソースコードを持ってきてビルドしようとすると

$ python setup.py build
running build
running build_py
running build_ext
building '_sha' extension
gcc -shared -Wl,--enable-auto-image-base build/temp.cygwin-1.5.25-i686-2.5/Modul
es/shamodule.o -L. -lpython2.5 -o build/lib.cygwin-1.5.25-i686-2.5/_sha.dll
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find
-lpython2.5
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status 1

というエラーでできないのですが、関係ありますか?

99:デフォルトの名無しさん
09/07/14 17:25:01
wget URLリンク(code.krypto.org)
setup.pyを編集
#   113     # The _hashlib module wraps optimized implementations
#   114     # of hash functions from the OpenSSL library.
#   115     exts.append( Extension('_hashlib', ['_hashopenssl.c'],
#   116                include_dirs = [ ssl_inc_dir ],
#   117                library_dirs = [ os.path.dirname(ssl_lib) ],
#   118                libraries = osNameLibsMap[os.name]) )
#   119     exts.append( Extension('_sha', ['shamodule.c']) )         
#   120     exts.append( Extension('_md5',                  
#   121           sources = ['md5module.c', 'md5.c'],
#   122           depends = ['md5.h']) )

URLリンク(inforno.net)

100:デフォルトの名無しさん
09/07/15 13:32:46

cpythonで作ったメインのプログラムからJythonで作ったモジュールを呼び出すことは可能ですか?

101:デフォルトの名無しさん
09/07/15 22:38:57
Unladen Swallowの更新が来たな

102:デフォルトの名無しさん
09/07/16 17:56:39
Neatxって凄い名前だな・・・

103:デフォルトの名無しさん
09/07/17 16:09:59
psyco v2の最初のリリースがきた
URLリンク(codespeak.net)

104:デフォルトの名無しさん
09/07/17 23:07:58
Psyco is not supporting 64 bit, yet. But it is well being considered.
期待して良いのか?

105:デフォルトの名無しさん
09/07/17 23:29:42
yahooの知恵袋っていつから珍回答で質問者をからかう場所になってんだ

106:デフォルトの名無しさん
09/07/17 23:31:34
なんでいきなりそんな話が出てくるの?

107:デフォルトの名無しさん
09/07/18 02:21:29
うー!2chには誤爆という文化があるのですよ!はうぅー!

108:デフォルトの名無しさん
09/07/18 14:19:57
↑これ、書き込んでんの30過ぎのおっさんだよ

109:デフォルトの名無しさん
09/07/18 15:05:03
ようつべでモンティパイソン見たら、結構酷いネタ多いなw

110:デフォルトの名無しさん
09/07/18 17:19:48
>>108
40過ぎだよ。

111:デフォルトの名無しさん
09/07/18 17:35:32
しかし、心はヤング

112:デフォルトの名無しさん
09/07/19 01:48:56
40過ぎてもせんずりしますか

113:デフォルトの名無しさん
09/07/19 03:15:30
はうぅー!Python 3.1で遊ぶのですぅ!うーうー!

114:デフォルトの名無しさん
09/07/19 15:41:25
>>112
俺らにゃpython.comがある

115:デフォルトの名無しさん
09/07/20 02:50:13
VPythonってなんかすごいですお
俺のようなVTKとかインストールすら出来ずに挫折した人にはナイスであります。

116:デフォルトの名無しさん
09/07/20 02:58:00
ビタミンのVか

117:デフォルトの名無しさん
09/07/20 03:21:32
D:にインスコすると死ねる

118:デフォルトの名無しさん
09/07/20 12:51:15
なんだか頭の悪そうな書き込みが豊満してますね

119:デフォルトの名無しさん
09/07/20 12:52:57
いつものruby厨が荒らしてるんだろう

120:デフォルトの名無しさん
09/07/20 15:48:56
VPythonマジ強力っていうか馬鹿な俺でも使えるのでした。
ローレンツアトラクタを書かせたら、20行くらいでくるくる回って感動ww

121:デフォルトの名無しさん
09/07/20 16:16:11
データが文字列であることを確認するには
isinstance(obj, (str, unicode)) # 2.x
isinstance(obj, (str, bytes)) # 3.x
となりますが、ひとつのファイルで2と3の両方をサポートしたい場合はどうかけばいいでしょうか。

122:デフォルトの名無しさん
09/07/20 16:24:20
前スレより転載

URLリンク(docs.python.org)
>>It is not recommended to try to write source code that runs unchanged under both Python 2.6 and 3.0;

sys.version_infoを見れば一応はできる

123:デフォルトの名無しさん
09/07/20 16:27:48
両方をサポートしたいなんて考えをやめるべきだ!

124:デフォルトの名無しさん
09/07/20 17:56:56
>>123
え、なんでだめなんですか?

125:デフォルトの名無しさん
09/07/20 18:03:36
URLリンク(docs.python.org)
ドキュメントにはこう書いてあるけど、
書けないことはないから、やってみれば

126:デフォルトの名無しさん
09/07/20 23:07:45
っ basestring

127:デフォルトの名無しさん
09/07/21 01:09:26
NameError: name 'basestring' is not defined

128:デフォルトの名無しさん
09/07/21 11:20:51
>>> basestring
<type 'basestring'>

129:デフォルトの名無しさん
09/07/21 14:36:46
The builtin basestring abstract type was removed.

130:デフォルトの名無しさん
09/07/21 14:39:35
> sys.version_infoを見れば一応はできる

131:初めてのPy
09/07/21 23:06:41
importで2回目の実行からエラーがでるんですが
コンパイルの設定とかあるんでしょうか
UnicodeDecodeError: 'utf8' codec can't decode byte 0x83 in position 24: unexpected code byte

Eclipse Classic (SDK) 3.4.2 (clean)
python-3.0.1

132:デフォルトの名無しさん
09/07/22 00:29:08
こーど

133:デフォルトの名無しさん
09/07/22 01:09:59
VPython、いまいち分かりにくかったけど、
・XY平面のグリッドをcurveで書く
・Zを上にするよう、scene.up=(0,0,1)を指定
・X,Y,Z軸をcurveで書く
・物体の影をXY平面に書く
したらすごく分かりやすくなった!

134:デフォルトの名無しさん
09/07/22 01:17:51
UnicodeDecodeErrorって3になってからでもでるの?

135:デフォルトの名無しさん
09/07/22 01:19:17
>>133
GJ!!
kwsk

136:デフォルトの名無しさん
09/07/22 01:21:23
>>134
そりゃ、Shift-JISで書かれたファイルをencode='utf-8'とかを指定して
読み込もうとしたらDecodeErrorになるよ。

137:デフォルトの名無しさん
09/07/22 01:35:27
>>134
b'\x82\xa0'.decode("ascii") とかでも UnicodeDecodeError

138:デフォルトの名無しさん
09/07/22 01:56:25
b'\x82\xa0'.decode("cp932")

139:デフォルトの名無しさん
09/07/22 02:49:31
>>135
おk、事務所に置いて来たので、10時頃まで待ってください。

140:デフォルトの名無しさん
09/07/22 11:11:02
まず、sceneを作るところ。
import math
#==============Set up scene===============
scene.title='Lorenz Attractor'
axr=50 #Max Range of Axis
scene.width = 800
scene.height = 800
scene.center = (0, 0, 0) #center, where camera looks always.
scene.forward = (-axr, axr, -axr) #where camera views at initial.
scene.up = (0,0,1) #z is up.
scene.range = axr*1.25 # zoom out a little, to get all axis in sight
#draw x-y plane grid
for i in range(-axr, axr+1, axr/20):
curve(pos=[(i, -axr,0),(i,axr,0)],color = (0.3,0.3,0.4)) #parallel to Y
curve(pos=[(axr, i,0),(-axr,i,0)],color = (0.3,0.4,0.3)) #parallel to X
#axis (x,y,z), and small arrow
xaxis = curve(pos=[(-axr,0,0), (axr,0,0)], color=color.red)
curve(pos=[(axr,0,0), (axr*0.95,axr*0.05,0)], color=color.red)
curve(pos=[(axr,0,0), (axr*0.95,-axr*0.05,0)], color=color.red)
yaxis = curve(pos=[(0,-axr,0), (0,axr,0)], color=color.green)
curve(pos=[(0,axr,0), (-axr*0.05,axr*0.95,0)], color=color.green)
curve(pos=[(0,axr,0), (axr*0.05,axr*0.95,0)], color=color.green)
zaxis = curve(pos=[(0,0,-axr), (0,0,axr)], color=color.yellow)
curve(pos=[(0,0,axr), (-axr*0.05,0,axr*0.95)], color=color.yellow)
curve(pos=[(0,0,axr), (axr*0.05,0,axr*0.95)], color=color.yellow)

xlabel = label(pos=(axr,axr/10,0), box=0, opacity=0.25, text = 'x')
ylabel = label(pos=(-axr/10,axr,0),box=0, opacity=0.25, text = 'y')
zlabel = label(pos=(-axr/10,0,axr),box=0, opacity=0.25, text = 'z')
#===========end setting up scene============

141:デフォルトの名無しさん
09/07/22 11:14:42
あ。貼り付けるとスペースは消えちゃうのか。forの次はindentしてください。
sceneの中心が原点、xy平面を見下ろし、z軸が上向き、ちょっとズームアウト。
軸のレンジ÷20で、XY平面にグリッドを書く。
X軸、ちょこっと矢印、Y軸、ちょこっと矢印、Z軸、ちょこっと矢印、「X」とかラベル付け。

142:デフォルトの名無しさん
09/07/22 11:17:32
#=====Objects to show=====
ball = sphere(pos=(0,0,0), radius=1, color=color.red, opacity=0.8)
shadow = cylinder(pos=(0,0,0), axis=(0,0,1), radius = 1, color=color.white, opacity=0.2)
trail = curve()
x, y, z = 0.1, 0,0
count = 0
pointslist = []

while(count < 10000):
#animation maximum rate per second
rate(1000)
# do the lorenz attractor
dx = 10.0 * (y - x)
dy = x * (28.0 - z) - y
dz = x * y - (2.666666 * z)

x = x + dx * 0.005
y = y + dy * 0.005
z = z + dz * 0.005
pointslist.append((x, y, z))
#do not "print" every time. it can be very slow.
if math.fmod(count,500)==0:
print count, x,y,z

ball.pos = (x,y,z)
shadow.pos = (x, y, 0) #shadow is drawn to X-Y plane
trail.append(pos=ball.pos, retain=100) # last some points

count = count + 1

points(pos=pointslist, size = 2, color=(1,0.5,0))

143:デフォルトの名無しさん
09/07/22 11:24:51
ボールを用意、陰(円盤)を用意、しっぽを用意。
ローレンツアトラクタを10000回計算。
結果の座標をListに足し、ボールと影と尻尾の座標をセット。
終わったらpointsで軌跡を描画です。
URLリンク(up2.viploader.net)
実行するとボールがくるくる動いた後、こうなります。

144:デフォルトの名無しさん
09/07/22 12:12:02
>>133
tt

145:デフォルトの名無しさん
09/07/22 12:17:16
これはおもろいすなぁ。
URLリンク(up2.viploader.net)
こんなブキミな物体(Torus Knot)も簡単に書ける。描画部分を下のように変えます。

pointslist = []
A = 3.0
B = 8.0
drawcount = 1000
for i in range(drawcount):
theta = 2 * math.pi * i * A / drawcount
x = ( 2 + math.cos(B*theta/A))*math.cos(theta) * 20
y = ( 2 + math.cos(B*theta/A))*math.sin(theta) * 20
z = math.sin(B*theta/A) * 20
pointslist.append((x, y, z))

for i, p in enumerate(pointslist):
c_hsv=(i/float(drawcount),1,1)
sphere(pos=p, radius=6, color=color.hsv_to_rgb(c_hsv), opacity=0.7)

146:デフォルトの名無しさん
09/07/22 12:25:42
フレンチクルーラーを思い出した

147:デフォルトの名無しさん
09/07/22 12:36:30
>>146
あれはさっくりして美味しいですよな。
URLリンク(up2.viploader.net)
(A,B)=(9,19)にしたら全然違うものが出来てしまったよorz

148:デフォルトの名無しさん
09/07/22 13:41:37
URLリンク(up2.viploader.net)
sphereで、opacity=0.12、material=material.emissive、追加でlocal_light(pos=p,color=color.white)
としたら結構綺麗なのが出来ました。こんなんが数行で書けるんだから時代の
進歩というのはすごいものでありますなぁ…

さて次はNumpyで遊んだ結果をVPythonで表示してみようかな?

149:デフォルトの名無しさん
09/07/22 15:32:47
負荷の大きい鯖のプログラムはperlなところが多い気がするのですが
pythonも高負荷に耐えれるのでしょうか

150:デフォルトの名無しさん
09/07/22 15:38:28
むしろPerlよりも軽い

151:デフォルトの名無しさん
09/07/22 15:54:38
phpよりも軽い?

152:デフォルトの名無しさん
09/07/22 19:23:51
>>149
「pythonも高負荷に耐えれるのでしょうか」じゃなくて
「pythonが高負荷を発生するのでしょうか」だろ。

153:デフォルトの名無しさん
09/07/22 19:25:40
Python電磁波クラブ

154:デフォルトの名無しさん
09/07/22 19:25:56
>負荷の大きい鯖のプログラムはperl

かなり曖昧だな



155:デフォルトの名無しさん
09/07/22 23:20:12
このページによると、
速度だけなら
python > perl > php > ruby
な感じ。
perlはメモリ消費優秀。
phpはメモリ消費大杉。

156:デフォルトの名無しさん
09/07/22 23:23:45
ページ張り忘れた。
URLリンク(shootout.alioth.debian.org)

157:デフォルトの名無しさん
09/07/22 23:35:17
つーか、PHPって別に速くないんかいw

158:デフォルトの名無しさん
09/07/23 00:12:16
良くある色が変わっていく表示は、RGBじゃなくてHSVで作ればいいのか。
良く分かったよ感謝

159:デフォルトの名無しさん
09/07/23 00:14:04
PHPの速さはapacheのSAPI経由から開始される高速な起動と、(他のmod_***より明らかに早い)
負荷のかかる処理をC言語の拡張に任せるというスタイルによるレスポンスのよさだからな。
オブジェクト指向を気取ってコードをたくさん書けば書くほど遅くなる罠。

まあそれはLWLではみな同じことが言えるわけだが。

160:デフォルトの名無しさん
09/07/23 00:36:57
PyCUDAとか使ってみたいですな
100倍速い!!とか言ってみたい。

161:デフォルトの名無しさん
09/07/23 06:39:44
> 負荷のかかる処理をC言語の拡張に任せる
それってどれも同じなんじゃね?

162:デフォルトの名無しさん
09/07/23 07:26:55
失敗した…
おれもVPython入れてみようと思って、Ubuntu9.0.4のsynapticで「あるじゃん」と思って入れたら、
これバージョン3だよ。opacityとか無いよ。

163:デフォルトの名無しさん
09/07/23 08:20:00
>>161
pythonがcgi.pyでやっているような処理を、phpではCで書かれた関数で行なっている。
測定してみればわかるけど、これはけっこう性能に効く。

164:デフォルトの名無しさん
09/07/23 08:29:04
wsgi

165:デフォルトの名無しさん
09/07/23 08:45:53
今どきcgiなんて使わないだろ。

166:デフォルトの名無しさん
09/07/23 08:50:58
PHPで数値計算と文字列処理のベンチを取ると激遅なんだよな。
まぁWebで数値計算はしないが。

ソースを忘れたけど

167:デフォルトの名無しさん
09/07/23 09:57:17
こんな感じでデータが入ったファイルを
-50,-28,13,0.66
 :

こんな風に読んで、VisualPythonの玉に入れてみたら
from visual import *
f = open("test.dat")
for oneline in f.readlines():
 plist = oneline.strip().split(',')
 p = [int(s) for s in plist[:3]]
 c_hsv = [float(plist[3]),1,1]
 sphere(pos=p, radius=2, color=color.hsv_to_rgb(c_hsv), opacity=0.7)

いきなり可視化できてしまったぞ。ちょwwマジかwwいいのかこれでww

168:デフォルトの名無しさん
09/07/23 10:17:57
なぜ、PythonはRubyの
# -*- coding:utf-8 -*-
をパクってるのでしょうか?文字コード指定は楽なのはわかりますが。

169:デフォルトの名無しさん
09/07/23 10:20:25
>>168
emacs や vim の文字コード指定方法をソースコードの文字コード指定方法に
一致させると楽だから。

170:デフォルトの名無しさん
09/07/23 10:26:48
>>168
去年からPythonで導入された方法。

171:デフォルトの名無しさん
09/07/23 10:26:53
>>168
ていうか、それRuby1.9からだよな。
Pythonのほうが古い。
てか、釣りだろ。

172:デフォルトの名無しさん
09/07/23 10:31:12
┐(´д`)┌

173:デフォルトの名無しさん
09/07/23 10:58:09
>>170
Python 2.3 からだから、5年くらい前じゃね?

174:デフォルトの名無しさん
09/07/23 11:07:38
乞食のruby厨にレス付けたら負けだよ

175:デフォルトの名無しさん
09/07/23 11:34:23
Rubyを使うとどこかの国のような思考回路になるってことですね。

176:デフォルトの名無しさん
09/07/23 11:37:40
Why do you stay in wrong thread?

177:デフォルトの名無しさん
09/07/23 11:37:49
Ruby書かされると脳みそが痒くなるんですよ。

178:デフォルトの名無しさん
09/07/23 12:04:47
ubuntuのaptでいれたpylabがバージョン古いから
最新版をsetup.py で上書きインストールしてしまうかと思う
しかし、何か不具合おこないか心配
aptで入れたパッケージを消してからpython setup.py install したほうがいいんだろうか

179:デフォルトの名無しさん
09/07/23 12:34:02
>>168
>なぜ、PythonはRubyの
># -*- coding:utf-8 -*-
>をパクってるのでしょうか?文字コード指定は楽なのはわかりますが。

これは恥ずかしい
マネしたのはRubyのほう

180:デフォルトの名無しさん
09/07/23 12:56:30
URLリンク(www.python.jp)

181:デフォルトの名無しさん
09/07/23 23:04:55
Python信者必死杉

いいじゃんパクったならパクったで

182:デフォルトの名無しさん
09/07/23 23:10:16
いつもRuby厨からケンカ売ってくるもんで^^

183:デフォルトの名無しさん
09/07/23 23:11:28
180の先にemacsの形式って書いてあるじゃん...

184:デフォルトの名無しさん
09/07/23 23:26:53
OSSじゃパクりパクられはむしろいいことだぞ?なにいってんだ?

185:デフォルトの名無しさん
09/07/23 23:33:53
出典は明記するべきだよね

186:デフォルトの名無しさん
09/07/24 01:36:05
てか、Emacs時代から無かったかそれ?
Ruby厨はなんでもRuby一番にしたがるから困る

187:デフォルトの名無しさん
09/07/24 07:01:48
Scipyってどうですか?
有限要素法とかあったりしますか?

188:デフォルトの名無しさん
09/07/24 08:26:07
なぜ、PythonはRubyの
変数とか代入とかハッシュとかの概念を
をパクってるのでしょうか?スクリプト作成は楽なのはわかりますが。

189:デフォルトの名無しさん
09/07/24 09:08:08
自演乙

190:デフォルトの名無しさん
09/07/24 10:12:31
現在のファイル名、関数名、行番号をlogするのに
os.path.basename(__file__) , (__name__).replace('__','')+'()' , inspect.getlineno(inspect.currentframe())

spam.py main() 19

こんなことしてるんですが、俺ダサ杉ですよね。華麗な表示方法をご教示くださいですよ。

191:デフォルトの名無しさん
09/07/24 10:32:23
Rubyだともっと簡素にかける

192:デフォルトの名無しさん
09/07/24 10:52:39
>>191
おれもそう感じた

193:デフォルトの名無しさん
09/07/24 11:03:43
>>190
logging モジュール
URLリンク(www.python.jp)

194:デフォルトの名無しさん
09/07/24 11:50:03
$:.unshift "./hoge/hoge/hoge/hoge/hoge/hoge"
require "hage.rb"

見たいなことはPythonで出来ませんか?

195:デフォルトの名無しさん
09/07/24 12:09:12
>>193
なるほど!

%(module)s モジュール名 (ファイル名の名前部分)
%(funcName)s ログ記録の呼び出しを含む関数の名前
%(lineno)d ログ記録の呼び出しが行われたソース行番号 (取得できる場合)

196:デフォルトの名無しさん
09/07/24 14:21:43
>>194
import sys
sys.path.append('./hoge/hoge/hoge')
import hage
でどうでしょう?

197:デフォルトの名無しさん
09/07/24 17:36:51
import os
hogedir = os.path._getfullpathname("./hoge/hoge/hoge/hoge/hoge/hoge")
os.sys.append(hogedir)
import hage

198:デフォルトの名無しさん
09/07/24 18:23:13
>>195
これ3.0に移行してstr.formatを使うようになっても%書式のままでいくのかなぁ
今見たけど変わってなかった

199:デフォルトの名無しさん
09/07/24 19:38:00
    ┌─┐
    │●│
    └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!


200:デフォルトの名無しさん
09/07/25 13:56:37
ftpでファイルをローカルにコピーするのはこれでできたんですが
session.retrbinary('RETR '+file, open(file, 'wb').write)

標準出力にファイルの中身を吐き出すにはどう書けば良いんでしょうか?

201:デフォルトの名無しさん
09/07/25 14:10:11
>>198
どうするか悩みどころだよね。
将来的に % によるフォーマティングは廃止される予定だけど、
デフォルトのFormatterはどうしようも・・・
logging.basicConfig(newstyle_formatter=True)
とかでお手軽に新フォーマッターに移行できないかな・・・

202:デフォルトの名無しさん
09/07/25 15:08:13
>>200
session.retrlines('RETR foo.txt')

203:デフォルトの名無しさん
09/07/25 15:49:11
>>202
できました!
ありがとうございます。

204:デフォルトの名無しさん
09/07/26 00:30:35
         (⌒,,⌒)~っ
        (⌒,_, ,⌒て ,,_,)
         ! ノ U。`yヘ_,、_ノ !
        し|~~~ 。 ヘ⌒iヽフ
            |! ゚o 。.゚(・ω|・ ) びーるきたよー
           |! 。o゚ ⊂ ゚ とノ
          |i 。゚ ゚ o .゚|.。|. |
         |i、..゜。。゚ ゚し|'J
.           |,,._二二二_,!
       。゚o

205:デフォルトの名無しさん
09/07/26 07:45:15
a = ["abb","acc","add"]
print map(lambda x:x.replace("a",""), a)

これと同じ処理でもっといい方法ありますか?

206:デフォルトの名無しさん
09/07/26 09:40:07
>>205
lambda + map 使うくらいなら内包表記を使う
print [x.replace('a', '') for x in a]

lambda も map も悪いものではないけど、map+lambdaは推奨されない。

207:デフォルトの名無しさん
09/07/26 09:44:50
>>206
内包表記なんていうのがあるんですね。ありがとうございます。

LISP畑から来てるので map に lambda が推奨されないって変な感じですが
Pythonではあまり使わないようにします。

208:デフォルトの名無しさん
09/07/26 09:50:32
> LISP畑から来てるので map に lambda が推奨されないって変な感じですが

schemeのinternal defineのように関数内で関数定義して名前を与えて使うのがいいみたい


209:デフォルトの名無しさん
09/07/26 10:32:17
>>208
それは >>206 とはちょっと違う話で、少しでも複雑な関数を作るときは
ちゃんと名前を付けましょうねという意味で、lambda が単文しか実行
できなくなってる。

map + lambda が推奨されないのは、
1) 単純に map(lambda x: と書くタイプ数 が for x に削減される
2) map はリストが不要なときも一時リストを生成してしまう。
  (>>206ではリストが必要だったけど、必要ないときはジェネレータ内包が使える)
3) map 内で繰り返し関数呼び出しが発生する。内包だと式の評価なので lambda より速い
4) Lisp脳ではない人間にとっては、 map(lambda x: を読むときに頭の中で分解再構築が必要になる。
  内包表記の方がやりたいことをすっきりと書き下せる。

210:デフォルトの名無しさん
09/07/26 10:37:19
とりあえずIDLEでimport thisしようぜ

211:デフォルトの名無しさん
09/07/26 10:41:13
>>209
頭大丈夫? 自分が何を主張するために何を持ち出しているのか読み直した方がいいよ。


212:デフォルトの名無しさん
09/07/26 11:21:42
>>211
オレは>209の入ってる事がよく分かったが、何か問題でもあるのか?

213:デフォルトの名無しさん
09/07/26 11:44:48
>>209
1)については、そもそもlambdaとか6文字も必要なsyntaxにしたのが間違いだったんだと思う
Haskellみたいに記号使っとけば……
2)はpython3000ではmapもイテレータ作るし

まぁ内包のほうが速いし、そっち使ったほうがいいんだけど

214:デフォルトの名無しさん
09/07/26 13:18:29
-> だったっけ

215:デフォルトの名無しさん
09/07/26 14:19:08
>>213
Pythonにとって、lambdaは便利で強力だけど一つの文が複雑になるし遅いので
あまり推奨できないから、記号を導入してまでみんなに使ってもらおうとは
思ってないんだろう。

216:デフォルトの名無しさん
09/07/26 15:22:31
Pythonの場合、lambdaとインデントの相性が悪いのもあるんじゃない?
でも、他の言語使ってても複雑な式ならどのみち関数定義するから、
そのために何かして欲しいとは思わないけど。

217:デフォルトの名無しさん
09/07/26 15:50:27
f = λ x:a*x+b

これでいくか。

218:デフォルトの名無しさん
09/07/26 16:12:54
Perl
my $f = sub { $_[0]+1 }
$f->(42)

Ruby1.8
f = lambda { |x| x+1 }
f[42]
f.call 42

Ruby1.9
f = ->(x) { x+1 }
f[42]
f.call 42

Python
f = lambda x: x+1
f(42)

Haskell
f = \x -> x+1
f 42

219:デフォルトの名無しさん
09/07/26 16:27:54
どれも、これだ!ってのがないな。

220:デフォルトの名無しさん
09/07/26 16:45:23
というかλ記法って^が変化してλになったんだから
^記号をつかえばいいやんとか思う
ビット演算とまぎらわしいなら$で

221:デフォルトの名無しさん
09/07/26 16:46:13

Python
def f(x): return x+1
f(42)


222:デフォルトの名無しさん
09/07/26 16:47:28
$があるとperlみたいで汚いから嫌だ

223:デフォルトの名無しさん
09/07/26 18:47:47
>>192
いくのかなあ、って変わってないんだからそうに決まってるでしょ。
URLリンク(docs.python.org)

224:デフォルトの名無しさん
09/07/26 19:24:26
逆に>>221でなにが不都合があるんだろ。
名前を考えないといけないから思考が停止しちゃうとか?

225:デフォルトの名無しさん
09/07/26 19:37:45
>>224
内包表記のときはやっぱりラムダがあった方がいい。
名前も、じゃあ全てのfor文に名前を付けるか?みたいな話だと思われ。

それくらい気楽な関数。

226:デフォルトの名無しさん
09/07/26 20:31:36
俺が恵まれていないだけかも知れんが、俺の周りで
関数名つけるの面倒くさいっていうやつは、98%の確率で
ろくなプログラマではない

だいたい、面倒って言ったって、xxx2yyy くらいを考えれば十分だし、
一言で表せないような関数を渡すのは構造的に失敗してると思うし

227:デフォルトの名無しさん
09/07/26 20:38:30
>>226
どっちかというと、かぶらないか失敗っていう心配だな。
Pythonならあんまり気にしなくてもいいんだけどw

228:デフォルトの名無しさん
09/07/26 22:30:21
Python3に対応したpygame出てないのかよ
Python使いからの不満も多いみたいだし、こんなので3は普及するのかねぇ

229:デフォルトの名無しさん
09/07/26 22:33:35
pgreloaded はまだ開発中か

230:デフォルトの名無しさん
09/07/26 23:45:40
>>225
> 内包表記のときはやっぱりラムダがあった方がいい。
ラムダが内包表記で便利な経験が無いんだけど、
ラムダ+内包表記のcoolな例あったら挙げてみて。

231:デフォルトの名無しさん
09/07/27 02:30:48
可読性と内包表記、
やっぱり、[fnc(x) for x in a if check(x)==0]
のようにして、[ ]内はごちゃごちゃしないようにしたほうがイイすよね?

232:デフォルトの名無しさん
09/07/27 08:38:42
www.djangoproject.jp

まだ落ちてるよ
日本人でDjangoをやっているひとたちは
サイトが長時間落ちてもオッケー的な感覚の持ち主なんだろうな

233:デフォルトの名無しさん
09/07/27 12:54:32
東京で停電があったとき以来
復活してないサーバと比べりゃ(ry

234:デフォルトの名無しさん
09/07/27 13:16:15
>>231
読む人が「えーとこれは」と考え込まずに済むように書きたい。
したがってその位に留める(長くなるなら外に出す)という習慣は
良いことだと思われます。

235:デフォルトの名無しさん
09/07/27 13:33:44
def abc():
  hoge=fuga
  hage=moge
  def func(x):
    return x+1
  vwx=[fnc(x) for x in a if check(x)==0]
  return xyz

236:デフォルトの名無しさん
09/07/27 14:24:49
>>235
さすがにそれは内包表記の中で直接 x + 1 した方が良いだろ。

237:デフォルトの名無しさん
09/07/27 14:58:17
「長くなるなら」外に出す、なのに「x+1なのに外に出す」って何だよw

238:デフォルトの名無しさん
09/07/27 15:31:23
Pythonで無料レンタル鯖のいいとこ&有名なとこあります?

239:デフォルトの名無しさん
09/07/27 15:40:56
ドジャンゴが使っているところはやめたほうが良さそうだな。

240:デフォルトの名無しさん
09/07/27 16:20:11
レンタル鯖だと、Pythonはいまだに2.3や2.4ばかりで悲しい。

241:デフォルトの名無しさん
09/07/27 16:21:44
>>238
国内無料鯖は2.4どころか2.3、Python自体ないとかあってかなりの不遇で、自信を持っておすすめできるものはない。色々探してみるといい
ただSSHなどシェルアクセスできれば自力で導入できるとこもある(xreaとか。まあSSH使える無料鯖はほとんどないが…)
低価格鯖なら最近2.6が導入されたさくらがおすすめかな。

242:デフォルトの名無しさん
09/07/27 16:50:15
どうせ他にもいろいろしたくなるから、
まるまる仮想OS使えるところでいいんじゃないの。

243:デフォルトの名無しさん
09/07/27 17:14:51
月3000円も出せばVPS借りられるんだからそのくらい出せよ
それも出せないなら自宅鯖でも作れ
いやならPHPでも使ってろ

244:デフォルトの名無しさん
09/07/27 19:41:54
釣りか?

70 名前: デフォルトの名無しさん Mail: sage 投稿日: 2009/07/27(月) 15:02:19
PHPで無料レンタル鯖のいいとこ&有名なとこあります?

245:デフォルトの名無しさん
09/07/27 22:38:51
Pythonスレの方がレスが多くて
みんなやさしくて好きです

246:デフォルトの名無しさん
09/07/27 22:42:32
>>238
スレリンク(tech板:4-10番)

247:デフォルトの名無しさん
09/07/27 22:43:01
表向きは永久凍土な連中ということで通ってるんだから
そういうこと言っちゃいけません

248:デフォルトの名無しさん
09/07/27 22:47:20
>>238
Google App Engine 2アプ目
スレリンク(php板)

249:デフォルトの名無しさん
09/07/27 22:51:55
GAE はないわなぁw

250:デフォルトの名無しさん
09/07/27 23:37:18
@pagesとか言うところが2.5.1みたいだ

251:デフォルトの名無しさん
09/07/27 23:42:47
実際に sys.version 出力させてみたら
2.5.2 だったよ。

252:デフォルトの名無しさん
09/07/28 07:48:58
関数の中から実引数の数を調べることはできますか。

def f(a, b=1, c=None):
 print (a, b, c)

とあって、f(0) という呼び出し方をした時に、f() の中で実引数の数がいくつなのかを調べる方法があれば教えてください。

253:デフォルトの名無しさん
09/07/28 08:07:59
バイトコード調べれば何とか…
じゃなくて
def f(*args):
    defaults = (None, 1, None, )
    len(args) で調べる
    args = tuple(args) + defaults[len(args):]
とかした方がいい

254:デフォルトの名無しさん
09/07/28 08:59:52
>>252
URLリンク(www.python.jp)

標準モジュールも知らない低レベルプログラマは
今すぐPythonやめてPHPに戻れよ

255:デフォルトの名無しさん
09/07/28 09:04:44
found = None
for x in L:
 if something(x) == expected:
  found = x
  break
という処理をもっと簡潔にかけますか。
Ruby なら
found = L.find {|x| something(x) == expected }
という処理です。
内包表記で頑張ろうと思ったのですがbreakの仕方がわからず断念しました。
#Rubyは説明のために出したのであり、PythonとRubyとの比較をするつもりではないのでご了承下さい。

256:デフォルトの名無しさん
09/07/28 09:54:57
[i for i in xrange(10) if i >= 7][0]

257:デフォルトの名無しさん
09/07/28 10:15:34
>256 だといったん完全リストにしちゃうから
元が xrange(一億) とかだった場合にすげー重くならない?

イテレータ使ってても,リスト内包表記で一旦
リスト化しちゃうと遅延評価はされなくなっちゃうよね?

258:デフォルトの名無しさん
09/07/28 11:37:56
>>239
なんで?

おすすめは
zope
web.py
なの?


259:デフォルトの名無しさん
09/07/28 12:00:59
(i for i in xrange(10) if i >= 7).next()

260:デフォルトの名無しさん
09/07/28 12:12:43
>>259
スゲー
面白い書き方だなw

261:デフォルトの名無しさん
09/07/28 12:54:59
>>254
牛乳飲めよ

262:デフォルトの名無しさん
09/07/28 13:12:03
>>261
PHPに戻れよドカタ

263:デフォルトの名無しさん
09/07/28 13:18:20
>>258
Django自体は問題ナッシング
むしろすばらしい
問題は日本のヤツら

264:デフォルトの名無しさん
09/07/28 14:54:13
Djangoの中に遅延評価関数とか入ってるからwebやらなくても使ってみたい気はする

265:デフォルトの名無しさん
09/07/28 15:14:13
Formがもうちょっとイカしてくれてればなぁ
っていうか web 板の django スレが寂しすぎる件

266:デフォルトの名無しさん
09/07/28 18:01:09
Djangoのutilsには,便利なクラスや関数がたくさんあるので
utilsだけで使うことが良くあるよ

267:デフォルトの名無しさん
09/07/28 22:28:19
>>259
ありがとうございます!
でもPython3で動かない。。。。
Python2と3の両方で動く書き方はありませんか?
聞いてばかりですみません。

268:デフォルトの名無しさん
09/07/28 22:47:03
>>267
python3の場合

(x for x in range(10) if x>=7).__next__()

269:デフォルトの名無しさん
09/07/28 23:10:51
>>268
next(x for x in range(10) if x>=7)
だろ

270:デフォルトの名無しさん
09/07/28 23:18:40
ごめん

271:デフォルトの名無しさん
09/07/29 01:56:49
Don't mind.

272:デフォルトの名無しさん
09/07/29 06:29:23
>>255
found変数をどう使いたいのか判らないけど、Pythonのfor文には
else 節があるので、後で if found is None: return とかするのであれば
その for 文を
for found in L:
  if something(found) == expected:
    break;
else:
  return
みたいにはできるよ。

あと、 >>269 みたいなやり方をするなら、
found = next(x for x in L if somethong(x) == expected, None)
って二つ目に default を入れないと、見つからなかったときに next が
StopIteration 例外を出すよ。

273:デフォルトの名無しさん
09/07/29 06:34:35
sunkus

274:デフォルトの名無しさん
09/07/29 09:54:00
>>252 f() の中で実引数の数がいくつなのかを調べる方法があれば教えてください。

無理。デフォルト引数処理は関数呼び出しの直前に行われるから、f(..) の中ではデフォルト引数値が使われたか否かは判別できない。253 さんの示したように、関数の呼び出し方を変えて自分で調べるしかない。

ここらの Python の内部処理を知りたかったら URLリンク(www.nasuinfo.or.jp) を読め。少しマニアックだが。


275:デフォルトの名無しさん
09/07/29 11:49:53
class foo:
  def __init__(self):
    self.bar = range(5)
  def __call__(self):
    self.bar.reverse()
class hoge:
  def __init__(self):
    self.hage = foo()
    self.foobar = self.hage.bar
    self.hage()
cls = hoge()
print cls.foobar == cls.hage.bar


.foobarには、.hage.barの値をコピーしているだけですか?
それともポインタ的なものが入ってるんでしょうか?

276:デフォルトの名無しさん
09/07/29 12:10:48
barの型次第
上の場合はリストだから参照になるね

277:252
09/07/30 07:00:23
>>254
>標準モジュールも知らない低レベルプログラマは
>今すぐPythonやめてPHPに戻れよ

みなさんの怒りを買うような質問をしてしまい、申し訳ありませでした。


278:252の母
09/07/30 10:17:41
息子がご迷惑をおかけして申し訳ありませんでした。

279:252の父
09/07/30 11:06:55
息子にはPythonをあきらめてPHPに戻るようによく言い聞かせました

280:デフォルトの名無しさん
09/07/30 13:21:43
いやいや、誰もが最初はそんなもんですから。

281:デフォルトの名無しさん
09/07/30 13:35:18
話がまとまったところで、あとは若い人たちに任せるとしましょう。

282:デフォルトの名無しさん
09/07/30 15:24:22
おまえら表面は凍ってるのに中身は生暖かいのな。

283:デフォルトの名無しさん
09/07/30 23:55:49
今からpython勉強するなら、2.6.2と3.01どっちがおすすめ?

284:デフォルトの名無しさん
09/07/31 00:15:39
仕事で必要なら、必要な方なのは置いといて。
私は、stringが完全Unicodeになってる3をすすめます。

285:デフォルトの名無しさん
09/07/31 00:50:07
初めてPYTHONをやり、最初、2.4入れて
setが使えないので、1ヶ月で2.5に移行
その後、文字化けが面倒なので2ヶ月で3に移行
最初から3にすれば良かった
てかemacsで文字化けする
しかもWindowsのエラーで、プロンプトからemacs起動出来ないから直し方わかんね
結局UTF-8使ってない

286:デフォルトの名無しさん
09/07/31 00:58:21
なるほど、こういう人たちがいるがために今の状況があるわけか

287:デフォルトの名無しさん
09/07/31 01:07:20
ライブラリが全然ついて来ないから
未だに 2.x だけどな。

288:デフォルトの名無しさん
09/07/31 01:13:02
3.1は失敗作だったねえ。Python5.0に期待。
対するRubyは1.9.2でだいぶ動作がマシになった。
完全に抜かれちゃったなあ

289:デフォルトの名無しさん
09/07/31 06:29:42
pass

290:283
09/07/31 07:11:16
ありがとうございました
参考にします

291:デフォルトの名無しさん
09/07/31 11:55:24
>>283
用途次第だけど2.5がライブラリ豊富で一番良いよ

292:デフォルトの名無しさん
09/07/31 12:43:59
2.6 でなく 2.5 を勧める理由が意味不明

293:デフォルトの名無しさん
09/07/31 12:45:54

2.5 でなく 2.6 を勧める理由が意味不明


294:デフォルトの名無しさん
09/07/31 13:42:38
ダンジョーも動かない2.6を勧める理由が意味不明

295:デフォルトの名無しさん
09/07/31 14:29:15
2.5.2で間違いない

296:デフォルトの名無しさん
09/07/31 17:29:14
>>294
サーバが止まりまくりのDjangoなんて使えたって意味ないだろ

297:デフォルトの名無しさん
09/07/31 18:04:01
ジャンゴが止まりまくるってどんな環境よ

298:デフォルトの名無しさん
09/07/31 18:23:07
デベロップ用のサーバで公開したのかなw

299:デフォルトの名無しさん
09/07/31 22:28:32
URLリンク(djangoproject.jp)

どうして止まるんだろう...。

300:デフォルトの名無しさん
09/07/31 22:34:20
>>299
デベロップ用のサーバで公開したのかなw

301:デフォルトの名無しさん
09/07/31 22:46:12
マルチコアのCPUで並列実行させたいんですが、
Pythonのthreadやthreadingモジュールだと
実際には同時平行で複数のスレッドが実行されないって本当ですか?
並列化するのにお勧めのモジュールってありませんか?


302:デフォルトの名無しさん
09/07/31 23:03:13
>>301
URLリンク(ja.wikipedia.org)
URLリンク(docs.python.org)

303:デフォルトの名無しさん
09/08/01 01:35:18
>>302
すみません、わかりません。答えを教えてください。

304:デフォルトの名無しさん
09/08/01 02:47:30
>>303
URLリンク(ja.wikipedia.org)

305:デフォルトの名無しさん
09/08/01 06:49:35
GILが問題になるようなプログラムにPythonは向いてないよ

306:デフォルトの名無しさん
09/08/01 07:33:59
>>301
multiprocessing モジュールがお勧め。並列性のある問題を解くのに使えば
複数プロセスが同時に並列実行されてちゃんと台数効果が出ます。

307:デフォルトの名無しさん
09/08/01 07:42:54
>>299
まだ止まってんのかwwwwww

308:デフォルトの名無しさん
09/08/01 09:01:10
僕たちサーバ管理よりイベントが大好きなんです
アッーー!

309:デフォルトの名無しさん
09/08/01 10:37:07
>>302>>306
ありがとうございます。
GILがあって今一つ並列実行しにくいのでプロセスをフォークするんですね。
スレッドのタスクが重ければフォークのコストは大したことないですが、
リソースの共有が大変になるんでしょうか。
Core i7で8コアもあるのでそろそろ並列化をまじめに考えなくちゃと思っているので、とりあえずいじってみます。
それから>>303は私じゃないです。


310:デフォルトの名無しさん
09/08/01 11:04:31
ドジャンゴもマルチプロセス使えば落ちないんじゃねえのwwwwww

311:デフォルトの名無しさん
09/08/01 12:08:53
件のページはdjangoじゃなくてサーバ自体が落ちてんだろ
煽ってるバカ何なの

312:デフォルトの名無しさん
09/08/01 13:42:23
Djangoがサーバを落としたの???
なんたるマルウエア!!

313:デフォルトの名無しさん
09/08/01 14:34:43
またruby厨の荒らしっすか

314:デフォルトの名無しさん
09/08/01 14:47:37
>>311
>件のページはdjangoじゃなくてサーバ自体が落ちてんだろ

Apacheは応答してるっぽいから、サーバ自体が落ちているという事はないのでは?
Dangoの人は適当で信用ならない


315:デフォルトの名無しさん
09/08/01 16:28:33
djangoはジャンゴって読むんじゃないの?
昔の有名なギタリストにいるよね

316:デフォルトの名無しさん
09/08/01 16:35:36
アンガールズ「ハイ! ジャンゴジャンゴジャンゴジャンゴ」

317:デフォルトの名無しさん
09/08/01 17:30:33
そう、djangoは"ジャンゴ"と読みます
一方日本でdjangoを使っている人は"ドジャンゴ"や"ダンジョー"と呼ばれています

318:デフォルトの名無しさん
09/08/01 19:33:53
そう、djangoは"ジャンゴ"と読みます
一方日本でdjangoを使っている人は"ドジャンゴ"や"ダンジョー"とruby厨は呼びます

319:デフォルトの名無しさん
09/08/02 02:03:59
日本語でおk

320:デフォルトの名無しさん
09/08/02 02:11:46
民間人に送られる最高の爵位・ダショー。

ちなみに我らがPython神のGuido van Rossumは、BDFLと呼ばれる。

321:デフォルトの名無しさん
09/08/02 03:53:30
Djangoは1.1出てたのか・・・

322:デフォルトの名無しさん
09/08/02 08:35:11
318はイタいが、320はもっとイタいな(wwWwwWwwwwWwwWWww

323:デフォルトの名無しさん
09/08/02 10:52:39
ジャンゴといったらジャンゴ・フェット。

324:デフォルトの名無しさん
09/08/02 13:03:55
pass

325:デフォルトの名無しさん
09/08/02 16:25:09
ジャンゴジャンジャンゴジャンゴ

326:デフォルトの名無しさん
09/08/03 04:07:02
pat = re.compile(r'.*¥.html$')
としたときに、patからもとの文字列('.*¥¥.html$')を取り出すことはできますか。
よろしくおねがいします。

327:デフォルトの名無しさん
09/08/03 04:14:09
pat.pattern

328:デフォルトの名無しさん
09/08/03 04:47:12
>>327
ありがとうございました。
ところで dir(pat) としても pattern というのは出てこないのですが、どういうことでしょうか。

329:デフォルトの名無しさん
09/08/03 05:12:00
URLリンク(djangoproject.jp)

復活したみたい

330:デフォルトの名無しさん
09/08/03 08:26:53
>>328
(´・ω・`)知らんがな

331:デフォルトの名無しさん
09/08/03 09:44:20
>>329
(´・ω・`)知らんがな

332:デフォルトの名無しさん
09/08/03 10:48:23
静的htmlに必要最低限のcgiだけつけたいのだけど
どのフレームワークがお勧めよ

333:デフォルトの名無しさん
09/08/03 14:22:49
CGIHTTPServer

334:デフォルトの名無しさん
09/08/03 14:23:59
>>332
民間人に送られる最高の爵位・ダショー。

335:デフォルトの名無しさん
09/08/03 15:25:06
ダショー >>> ダンジョー >>> ドジャンゴの順で偉いのだが
ダショーレベルでも鯖運営に支障をきたすくらいの低スキル

336:デフォルトの名無しさん
09/08/03 18:29:06
意味わからん

ジャンゴの話題になるとどこからともなく湧いてくるな

337:デフォルトの名無しさん
09/08/03 19:31:03
>>328
不思議だね。

338:デフォルトの名無しさん
09/08/03 20:04:54
>>328
help(re)
でも出てこない

339:デフォルトの名無しさん
09/08/03 20:09:03
>>328
URLリンク(www.python.jp)
ここの一番下には書いてある

340:デフォルトの名無しさん
09/08/03 21:26:11
_sre.cのpattern_getattrが処理してるみたい

341:デフォルトの名無しさん
09/08/03 22:13:09
URLリンク(www.kent-web.com)
コメントを取得するコードを参考にして、拡張子を.cgiで実行しましたがスクリプトエラーになってしまいます。
どこが問題でしょうか?

342:デフォルトの名無しさん
09/08/03 22:19:23
>>341
人に尋ねる前に自分でデバッグしてご覧。
Webにアップするスクリプトも最初はローカルで動かして様子を見るものなんだよ。

343:デフォルトの名無しさん
09/08/03 22:22:02
>>342
ありがとうございます。
出直してきます。

344:デフォルトの名無しさん
09/08/03 22:24:23
>>341
そのコードのコピー元と思われるブログには続きがある
URLリンク(d.hatena.ne.jp)

345:デフォルトの名無しさん
09/08/05 18:45:37
def hello():
 """コメント"""
 print "hello"

Python では上のように関数定義の最初の文字列リテラルが関数のドキュメントになるそうですが、
これの呼び名ってありますか。
「関数コメント」とか「関数ドキュメント」で通じるでしょうか。

346:デフォルトの名無しさん
09/08/05 18:57:12
>>345
ほい。
URLリンク(www.python.jp)

347:デフォルトの名無しさん
09/08/05 18:59:31
ドキュメンテーション文字列

348:デフォルトの名無しさん
09/08/05 19:14:09
AndroidでPython使えるんだね。
一気にGoogleケータイ欲しくなった・・・
三月に変えたばかりなんだが。

349:デフォルトの名無しさん
09/08/06 03:39:03
>>348
ほほう。といっても何に使えばいいのか思い付かない俺ww

350:デフォルトの名無しさん
09/08/06 15:06:43
Launchpadがdojangoじゃなくてzopeなのは何か理由があるの?

351:デフォルトの名無しさん
09/08/07 13:19:04
作り始めた時期の問題じゃないかな。
Launchpad作り始めた時は、まだDjangoがマイナーだったとか。想像だけど。

352:デフォルトの名無しさん
09/08/08 08:11:08
www.python.org つながんないんだけど、なんかあった?
Python ダウンロードしたいんだけど、どこかミラーない?
ftp.python.jp は 2.5 までしかないみたいだし。

353:デフォルトの名無しさん
09/08/08 09:00:56
>>352
URLリンク(sunsite.informatik.rwth-aachen.de)
とかどう?
URLリンク(www.freebsd.org)
で見つけた。

354:352
09/08/08 09:47:13
>>353
助かりました。ありがとうございます。

355:デフォルトの名無しさん
09/08/08 19:41:22
BeautifulSoupって死んだんか・・・


356:デフォルトの名無しさん
09/08/08 21:44:16
おれも>>352とまったく同じ状況でした。
><>353 感謝ですっ

357:353
09/08/08 22:44:09
>>354
>>356
いえいえ。感謝はミラーを提供してくれている方たちにどうぞ。

358:デフォルトの名無しさん
09/08/09 01:40:12
>>355
lxmlでどうにか

359:デフォルトの名無しさん
09/08/09 02:03:21
>>355
何の話だw

360:デフォルトの名無しさん
09/08/09 14:53:36
>>359
知らないのか?
Python3.0でSGMLParserがなくなったんでBeautifulSoup3.1.0以降では
SGMLParserの代わりにHTMLParserを使うようになったんで、
これまでパースできたちょっと崩れたHTMLがパースできなくなってる。
開発者は、もうツマンネーからこれ以上の対応をする気はねーよ、らしい。

URLリンク(www.crummy.com)


361:デフォルトの名無しさん
09/08/09 15:20:46
最後のほう生々しいこと書いてあるね

BS使ってるモジュールがどれほどあるのか知らないけど
Py3.0への移行の支障になったりして

362:デフォルトの名無しさん
09/08/09 15:47:52
3.Xへの移行は年単位でかかるだろ…
Zopeなんてどんだけかかるんだか

363:デフォルトの名無しさん
09/08/09 17:07:26
Pythonで万人に分かりやすいスマートなコメント文を書きたいんだが、どう書いたらいいだろうか。javadocのような指標みたいなの無い?

364:デフォルトの名無しさん
09/08/09 17:54:18
>>363
PEP 257

365:デフォルトの名無しさん
09/08/09 18:11:09
doxygenが喰えるように書く

366:デフォルトの名無しさん
09/08/09 18:40:44
ううむ、BSは巷のちょっと
不作法なHTMLをパースさせるのに
役立っていたんだがのう

elemental treeって今のバージョンは
その辺耐性あるのかしら。

367:デフォルトの名無しさん
09/08/09 19:13:04
ElementTreeはXMLパーサですよ

368:デフォルトの名無しさん
09/08/10 07:49:28
>ちょっと崩れたHTMLがパースできなく

それはツマンネーな

369:デフォルトの名無しさん
09/08/10 09:26:40
まあ、HTMLのパーザなんて、泥縄の塊だしな。

370:デフォルトの名無しさん
09/08/10 09:50:49
スレリンク(tech板)
ここでopy2on(別名おっぱい)というのをやってます

371:デフォルトの名無しさん
09/08/11 00:38:42
Pythonのお勉強をしようと思って
2chに書き込むスクリプトをPython 3.0.1(Windowsです)で書いてみたのですが
urllib.parse.urlencode()でShift-JISの文字列を
期待通りにURLエンコード(パーセントエンコーディング)できません。
{"s":"あ"}をurlencode()して"s=%82%A0"がほしいのですが
普通にやると下のようになります。。
何か良い解決策はないでしょうか?

>>> import urllib.parse
>>> s = "あ".encode("shift-jis")
>>> print(urllib.parse.urlencode({"s":s}))
s=b%27%5Cx82%5Cxa0%27

いろいろ試してみたところ、quote()やquote_plus()では
期待通りの値(%82%A0)が返ってきましたが
urlencode()は中でdict内のstr以外の値にstr()をあててquote_plus()しているので
期待通りの値が返ってこないことがわかりました。
…2.6とかにしたほうがいいでしょうか><

372:デフォルトの名無しさん
09/08/11 00:54:04
なんかバグっぽいな・・・
報告されてた URLリンク(bugs.python.org)

373:371
09/08/11 02:11:52
>>372
ありがとうございます!バグですか。。
3.0.1での解決策って
必要なところだけquote_plus()して自分で文字列連結するくらいですかね?

374:デフォルトの名無しさん
09/08/11 04:25:55
ですね



375:デフォルトの名無しさん
09/08/11 06:32:45
import _socket
from _socket import *
(socket.py 45)

こういうふうに一つのモジュールで二つの方法でインポートするのは
どういう意図があってのことなんでしょうか?


376:デフォルトの名無しさん
09/08/11 06:56:37
_socket の名前空間をそのまま使いたいとき
普通はこういうこと考えなくていいよ

377:デフォルトの名無しさん
09/08/11 08:17:34
初心者なら、from は使うべきではないと思う俺だぜ

自分が何やっているのかわからなくなるぜ

378:デフォルトの名無しさん
09/08/11 09:53:52
言いたい事は理解できるが、無闇に記述量を増やすとLL使う意義そのものが怪しくならんか?

379:デフォルトの名無しさん
09/08/11 10:06:27
とはいえ名前空間の中がごちゃごちゃしてると後で困る
from/importの使い分けはいざ説明しようとなると面倒だな…

380:デフォルトの名無しさん
09/08/11 10:19:43
>>378
記述を減らす分には置換を掛ければ一発さ。
でも記述をフル識別子化するのはそうもいかない。

381:デフォルトの名無しさん
09/08/11 12:30:41
>379
それもわかる。記述量・速度と可読性のトレードオフなんだよね。

>380
タイプ量が多い事自体がまず問題じゃね?

IDEの入力支援がある前提なら、問答無用でfrom禁止でも良いと思うけど。


382:371
09/08/11 12:42:58
>>374
ですかー
自分でquote_plus()してやるようにします。
ありがとうございました!

383:デフォルトの名無しさん
09/08/11 15:14:04
>>7
Я шестьдесят лет.

384:デフォルトの名無しさん
09/08/11 21:52:40
っas

385:デフォルトの名無しさん
09/08/11 22:09:10
臨機応変に対応できてこそパイソニアンだ!
Javaみたいなのはうんざりだよ。

386:デフォルトの名無しさん
09/08/11 22:10:15
パイソニアンとかパイソニスタとかどれも今ひとつなんだけど
なんかいいのないの

387:デフォルトの名無しさん
09/08/11 22:45:37
蛇遣い

388:デフォルトの名無しさん
09/08/11 22:55:07
パイソンマン
パイソナー
パイン

389:デフォルトの名無しさん
09/08/11 23:17:57
「パイソン」さんが作ったんだから、元々人の名前なんだけどね。

390:デフォルトの名無しさん
09/08/11 23:51:01
>>388
×パイソンマン
○パイソンパーソン

どこかの怖いヒスおばさんに怒られるぉw

391:デフォルトの名無しさん
09/08/12 05:57:45
おpy星人でいいお

392:デフォルトの名無しさん
09/08/12 07:20:28
>>387
すごく、厨二くさいです…

393:デフォルトの名無しさん
09/08/12 10:10:33
アボリションオブルビー

394:デフォルトの名無しさん
09/08/12 10:14:22
へびんちゅ

395:デフォルトの名無しさん
09/08/12 10:55:57
>>378

1)
import longlonglongnamemodule
longlonglongnamemodule.hogehoge()

2)
from longlonglongnamemodule import hoge
hoge()

3)
import longlonglongnamemodule as m
m.hoge()




396:388
09/08/12 12:25:50
>>390
それ一瞬考えたけど、
バイキンマンがOKなんだから
乙パイソンより問題ないだろw

397:デフォルトの名無しさん
09/08/12 12:35:31
バイバイキン

398:デフォルトの名無しさん
09/08/12 12:59:45
パイパイソン

399:デフォルトの名無しさん
09/08/12 13:19:59
タオパイパイ

400:デフォルトの名無しさん
09/08/12 15:40:12
>> hoge(5, 2)
3
>> hoge(-5, 3)
-2

こういう関数ってありますか?

401:デフォルトの名無しさん
09/08/12 16:23:03
hogeじゃわからんw

402:デフォルトの名無しさん
09/08/12 16:44:16
釣られるなよ

403:デフォルトの名無しさん
09/08/12 16:57:04
hoge = lambda x,y:(abs(x) - y) * x / abs(x)


404:デフォルトの名無しさん
09/08/12 17:29:04
hage

405:デフォルトの名無しさん
09/08/12 17:32:47
中華なパイパイ

406:デフォルトの名無しさん
09/08/12 17:35:36
hoge = lambda x,y: - (y * x / abs(x))

407:デフォルトの名無しさん
09/08/12 17:36:52
hoge = lambda x,y: x - (y * x / abs(x))

408:デフォルトの名無しさん
09/08/12 17:58:53
hoge = lambda x,y: 3 if x==5 and y==2 else -2

409:デフォルトの名無しさん
09/08/12 23:29:10
>>400
ゆとりだなあ

410:デフォルトの名無しさん
09/08/13 00:31:35
その関数で一体何がしたいんだろう

411:デフォルトの名無しさん
09/08/13 09:57:16
草民が沸いてるね

412:デフォルトの名無しさん
09/08/13 10:06:21
床でも天井でもない

413:デフォルトの名無しさん
09/08/13 15:57:55
URLリンク(www.moongift.jp)

即日ってすでに炎上してるっぽいんだが
こういうのに手を出したがるおめでたいヤツって今時居るのかね

414:デフォルトの名無しさん
09/08/14 09:35:04
>現在、既に動いている案件に対する人員追加の募集になります。渋谷、恵比寿周辺で活動されている技術者の方、ご応募お待ちしています!応募は

Death march

415:デフォルトの名無しさん
09/08/14 21:42:05
>>413
naze django wo tsukattanoni enjou surunokana ?

416:デフォルトの名無しさん
09/08/15 00:42:42
>>415
black dakara

417:デフォルトの名無しさん
09/08/15 01:41:50
即日だからってデスマって言ってたら
世の中デスマだらけだな
いや、事実デスマだらけなのか・・・

418:デフォルトの名無しさん
09/08/15 02:52:34
手を出してみる

419:デフォルトの名無しさん
09/08/15 07:11:30
>>418
報告ヨロ

420:デフォルトの名無しさん
09/08/15 08:00:54
Open JDK見てたら、timsortってのがコミットされてた。
どっかで見たような気がしたから調べたら、Tim Petersのアルゴリズムだった。

意外とすごいぞPython

421:デフォルトの名無しさん
09/08/15 09:03:18
>>418
仕事のない駄目プログラマ乙www

422:デフォルトの名無しさん
09/08/15 09:08:09
TDN駄目プログラマオッー!!!

423:デフォルトの名無しさん
09/08/15 09:10:03
Web+DB Pressとか未だに恥ずかしくてレジに持って行けない

424:デフォルトの名無しさん
09/08/15 09:17:06
没落

425:デフォルトの名無しさん
09/08/15 10:30:46
>>418
キミはなにやってもムリだと思う。
コンビニのバイトとかもムリ。肉体労働はもっとムリ。

426:デフォルトの名無しさん
09/08/15 10:33:35
充実した人生を送っている者は、みずからを世界の一部と認識する。

427:デフォルトの名無しさん
09/08/15 11:21:38
送れてない者は自分より1mmでも惨めなものを必死こいて探す

428:デフォルトの名無しさん
09/08/15 11:37:00
そもそもジャンゴを業務でやってたって人間自体がほとんどいないんじゃw
そんなに使われてるん? 日本で。

429:デフォルトの名無しさん
09/08/15 11:58:17
ドジャンゴを使っている人々

- ブラック企業
- 低脳開発者(たいていはもとPHP使い)
- ITドカタ

厨房 / ブラック御用達フレームワークということですかね

430:デフォルトの名無しさん
09/08/15 12:16:46
おった!

431:デフォルトの名無しさん
09/08/15 12:56:08
みんな幸せになれると良いねえ

432:デフォルトの名無しさん
09/08/15 13:08:05
>>429
-サーバが落ちていることより角電池が気になるひとびと

これ追加。

433:デフォルトの名無しさん
09/08/15 13:18:57
直列四本はDanger! High Voltageだからやめろ

434:デフォルトの名無しさん
09/08/15 19:24:18
僕はほんたうにつらいなあ

435:デフォルトの名無しさん
09/08/16 08:19:01
>>429
つまりGoogleはブラック、と

436:デフォルトの名無しさん
09/08/16 10:42:48
>>435
揚げ足とれてない

437:デフォルトの名無しさん
09/08/16 11:44:58
ググルは黒だもんね

438:デフォルトの名無しさん
09/08/16 14:33:21
どうやら435はブラック
逃げたりバックれたりするレベル

439:デフォルトの名無しさん
09/08/16 16:22:35
py2exeをLinux上で使ってWindowsでも動くようにしたいんですが可能ですか?
ググっても情報がないので何か情報をお願いします

440:デフォルトの名無しさん
09/08/16 16:29:07
>>413
>こういうのに手を出したがるおめでたいヤツって今時居るのかね

ストックオプションという言葉に釣られる人が未だにいるくらいだから、居るんじゃね?

441:デフォルトの名無しさん
09/08/16 16:39:56
>>439
バイナリの実行プログラムをLinuxでもWindowsでも
実行可能にするのがどれだけ大変なことか考えたことはあるのか?

ただし、Linux上でWindows上で実行可能なexeを作る「だけ」なら環境を構築してあげれば可能かもしれない。
当然Linux上ではそのexeは動作しないが。

442:デフォルトの名無しさん
09/08/16 17:56:00
>>435はグーグルだろ

443:デフォルトの名無しさん
09/08/16 19:11:44
>>441
申し訳ない
どうやら私の書き方が悪かったみたいですね
書き直します

Linux上で作ったソフトをLinux上のpy2exeでバイナリ作成して
その作成したバイナリをWindowsで動かすことは可能ですか?


とりあえず今知りたいことは

・そもそもLinux上でpy2exeは利用可能なのか?
・それはWineなどを経由しなくても可能なのか?
・Linuxで作成が可能ならそういった情報が載ったサイトなどを知りたい


よろしくお願いします

444:デフォルトの名無しさん
09/08/16 19:18:29
まだDebianにはPython2.6もPython3のパッケージもない?


445:デフォルトの名無しさん
09/08/16 19:21:31
>>443 そもそもスクリプトでLinuxに依存するような機能を使ってたり、
Linuxに依存するようなことをやってたらどっちにしろ動かない。

446:デフォルトの名無しさん
09/08/16 19:21:37
クロスコンパイラは無いんじゃまい?

447:デフォルトの名無しさん
09/08/16 19:22:14
>>443
人の話を聞けよ。

>ただし、Linux上でWindows上で実行可能なexeを作る「だけ」なら環境を構築してあげれば可能かもしれない。
>当然Linux上ではそのexeは動作しないが。
って先に答えを書いてるじゃないか。

py2exeがやってることはpycをzipで固めて1exe化した
pythonインタプリタにくっつけているだけなので、やろうと思えば他のOS上でもできる。

448:デフォルトの名無しさん
09/08/16 19:29:05
>>444
・lenny
URLリンク(packages.debian.org)

・squeeze
URLリンク(packages.debian.org)

・sed
URLリンク(packages.debian.org)

・experimental
デフォルト
URLリンク(packages.debian.org)

etc...
URLリンク(packages.debian.org)
URLリンク(packages.debian.org)
URLリンク(packages.debian.org)

449:デフォルトの名無しさん
09/08/16 20:03:11
>>448
すんません、aptラインの書き方わかんないす・・・orz


450:デフォルトの名無しさん
09/08/16 20:08:25
>>449
experimentalパッケージでも入れると申すか!
悪いことは言わんまだ使うな

451:デフォルトの名無しさん
09/08/16 20:10:26
>>447
おまえも人の話聞けよ

452:デフォルトの名無しさん
09/08/16 20:31:47
GTKの人かw

453:デフォルトの名無しさん
09/08/17 13:26:19
>452

あ~、なるほど
なんかもやもやしてたのがすっきりした!

454:デフォルトの名無しさん
09/08/17 17:01:57
cmake

455:デフォルトの名無しさん
09/08/17 17:28:58
numpy関連のバージョンをlinuxのデフォルトバージョンから手動で上げようとしたら
めんどくさすぎて死んだ
asdfみたいな簡単な仕組みはないの?


456:デフォルトの名無しさん
09/08/17 17:50:09
「make」と鬱と「負け」って読んじゃうんだよな

457:デフォルトの名無しさん
09/08/17 18:34:23
3.x 系列でも type(hoge) == types.DictType とかで
型を判定することができますか?

458:デフォルトの名無しさん
09/08/17 18:41:59
それってisinstanceじゃダメなの?

459:デフォルトの名無しさん
09/08/17 19:12:45
>>443
Linux上でPy2Exeは動かない

WineでWinのPython実行環境を構築すれば、
Python作ソフトをPy2ExeでExe化可能かもしれない
(やったことはないので確証は無い)


元よりWin上でPyhtonスクリプトをExe化する
ものだから(どこの説明でもそう書いて
あるのだが…)、WinでのPython実行環境が無いと
Exe化した際の不具合の特定が面倒だよ。


460:デフォルトの名無しさん
09/08/17 23:51:13
Pythonのオブジェクトインスペクト関数「see()」
URLリンク(coreblog.org)
URLリンク(inky.github.com)

高機能なdir()って感じでなかなかよさげ

461:デフォルトの名無しさん
09/08/18 00:45:58
>>459
XP (note) で作った exe が他の XP (note) では動くのに
XP (netbook) で動かなくて焦ったことはある

462:デフォルトの名無しさん
09/08/18 00:47:21
vista でも動かない orz

463:デフォルトの名無しさん
09/08/18 09:13:06
動かないというだけじゃなくて、そのときの症状を具体的に言うのが、
初心者を抜け出す第一歩だよ。
とりあえず、VC++ Runtime Library の 2005 か 2008 の再頒布可能パッケージを
インストールしてみな。

464:デフォルトの名無しさん
09/08/18 10:30:43
こんな話か?
URLリンク(d.hatena.ne.jp)

465:デフォルトの名無しさん
09/08/18 10:39:09
DLL地獄ようこそようこ

466:デフォルトの名無しさん
09/08/18 11:02:09
俺のアイドル天使はいずこに?

467:デフォルトの名無しさん
09/08/18 11:07:16
角電池とかよっきゅんとかここは相変わらずカオスなスレですね

468:デフォルトの名無しさん
09/08/18 16:23:58
イケメンハッカーも忘れないで!
アッー!

469:デフォルトの名無しさん
09/08/18 16:26:12
またruby厨降臨?

470:デフォルトの名無しさん
09/08/18 18:29:59
>>464のリンク見て不思議に思ったんだが
cx_FreezeはなんでVC++ランタイムライブラリを
配布できるんだ?
PSFライセンスの絡みであの手のライブラリは勝手に
配布しちゃいかんのじゃないの?
そのためPy2Exeはわざと除外してんだろう


471:デフォルトの名無しさん
09/08/18 19:01:57
>>468
顔写真貼ればもっと盛り上がるよ

472:デフォルトの名無しさん
09/08/18 20:56:04
pythonをsakuraエディタで使えるようにしたいんですが、
ちゃんとした色設定ファイルがありません。

原理的にどこかにあると思うんですけど、
(IDLEと同じくらいの)
keyword(演算子、組み込み変数、組み込み関数、予約語等)をまとめたファイルって
どこかにないのでしょうか?

473:デフォルトの名無しさん
09/08/18 22:09:04
> 原理的にどこかにあると思うんですけど

「原理的」の意味が分からない
というかサクラエディタのスレで聞いた方がいいのでは?

474:デフォルトの名無しさん
09/08/18 22:16:06
import sys, os, itertools, keyword

def importable(name):
    try:
        __import__(name)
    except Exception:
        return False
    return True

def toplevel_modules(path):
    for root, dirs, files in os.walk(path):
        names = itertools.chain(dirs, (os.path.splitext(i)[0] for i in files))
        for name in names:
            if importable(name):
                yield name
        break

if __name__ == '__main__':
    words = set(keyword.kwlist)

    words.update(dir(__builtins__))
    for i in dir(__builtins__): words.update(dir(getattr(__builtins__, i)))

    stdout = sys.stdout
    for path in sys.path: words.update(i for i in toplevel_modules(path))
    sys.stdout = stdout

    for i in sorted(words): print i
自前で作ればいいんだよ

475:デフォルトの名無しさん
09/08/18 23:28:28
Python 3.1 で書き始めて
MySQLdbがPython 2.6どまりなことに気づいた・・
どうしよ
SQLite用に書いていたソフトを
MySQL用にしたいだけなんだけど
既に本体は Python 3.x にべったりで書いてる
死にたい

476:デフォルトの名無しさん
09/08/18 23:40:06
もしかしてpyodbcでなんとかしろと?
と思ったけど 3.x 系はリリースされてなかった
URLリンク(code.google.com)

477:デフォルトの名無しさん
09/08/18 23:42:02
シリーズ3作目はフラグ

478:デフォルトの名無しさん
09/08/19 00:10:02
MySQL の c ライブラリを直接呼べ

479:デフォルトの名無しさん
09/08/19 00:28:14
ctypes大作戦

480:デフォルトの名無しさん
09/08/19 08:31:36
ctypesっていいよね。


481:デフォルトの名無しさん
09/08/19 18:20:43
WebARENAのsuitexが「Python の最新バージョンに対応w」らしいのですが
実際にどのバージョンが入っているかご存知の方はいらっしゃいますか?

482:デフォルトの名無しさん
09/08/19 18:28:33
文字通り「Python の最新バージョンに対応w」なら 3.0 なんて有り得ん罠
良くて 2.4 と予想

483:デフォルトの名無しさん
09/08/19 19:20:42
3.1.1

484:デフォルトの名無しさん
09/08/19 19:21:14
>>482
言ってる事おかしくね?

485:デフォルトの名無しさん
09/08/19 22:16:30
>>480
#include <ctypes.h>
こうですか?わかりません><

486:デフォルトの名無しさん
09/08/19 22:27:30
3.x系列への移行はあんまり上手くいってないのか

487:472
09/08/20 05:43:09
>>474
どうもありがとう。ようやくできた。。

488:デフォルトの名無しさん
09/08/20 12:10:46
最新版にアップしてくれるのはありがたいんだけど
こんな風にころころ変えられるのも困るかも
URLリンク(php-sql-gdgd.jugem.jp)
URLリンク(php-sql-gdgd.jugem.jp)

489:デフォルトの名無しさん
09/08/20 12:31:43
>>488
これで3.0系にアップデートされたら阿鼻叫喚になるなw

490:デフォルトの名無しさん
09/08/20 13:01:44
>>481
ご存知の方はいらっしゃいますか?

491:デフォルトの名無しさん
09/08/20 22:08:58
「Python 3.1.1」リリース
スレリンク(pcnews板)

492:デフォルトの名無しさん
09/08/20 22:25:42
[ "a" for x in range (10)]

[ "a" ] * 10
は下の方が早い?

493:デフォルトの名無しさん
09/08/20 22:26:29
自分でベンチマークすればいいだろうが

494:デフォルトの名無しさん
09/08/20 22:29:33
下の方が10倍以上速かった

495:デフォルトの名無しさん
09/08/21 02:24:43
[]の中がImmutableだったら*のほうがいいってことかな

496:デフォルトの名無しさん
09/08/21 07:45:47
[ chr(ord('a') + x) for x in range (10) ]

[ "a" ] * 10
みたいな書き方できますか?

497:デフォルトの名無しさん
09/08/21 08:33:54
URLリンク(www.pyside.org)
pyqtは使わないほうがいいのか?

498:デフォルトの名無しさん
09/08/21 09:54:31
スレリンク(tech板)

499:デフォルトの名無しさん
09/08/21 11:07:03
ジェネレータの中でエラーが発生すると、
エラーメッセージ中のスタックトレースが
ジェネレータ呼び出しまでの部分しか出力されません。

ジェネレータの内部以降のスタックトレースも
出力されるようにするにはどうすればいいのでしょうか。

処理系はIronPythonです。

500:デフォルトの名無しさん
09/08/21 13:19:35
>>492
下は1つを参照してるんじゃないかな?

501:デフォルトの名無しさん
09/08/21 13:23:51
>>500
文字列はimmutableだから、ひとつのオブジェクトへの参照のリストになって問題なし。
実際、上のも (CPythonの実装では) 全部同一オブジェクトを参照するよ。

リストのリストを作りたいときは、
[[] for x in xrange(10)]
の方が良いね。

502:デフォルトの名無しさん
09/08/21 22:16:40
>>499
ジェネレータの内部で
try
except
print traceback

503:デフォルトの名無しさん
09/08/22 12:58:44
人生の敗北者はもうPython使っちゃだめですか?

504:デフォルトの名無しさん
09/08/22 15:12:30
>>502
どもども。
手元で追試してみたら、499で書いた制限がCPythonでもIronPythonでも発生しない。
(それぞれ標準コンソールでテスト)

実はPythonインタプリタはC#プログラムから自前で呼び出してるんだが、
そこの初期化なりトラップ法なりが間違っているような気がしてきた。

505:デフォルトの名無しさん
09/08/22 17:02:41
モジュールの先頭に """あれこれ""" とか
クラスの先頭に """のれそれ""" 書いてドキュメントとしています.
pydoc にかけるとそれらはただ単なる文字列として表示されるだけ
なんですが,なんかこう,定められたフォーマットとかあるんでしょうか?

それとは別にどっかで見たので __author__ とか __licence__ とか
設定してみたんですが,pydoc はそういうのはガン無視らしいです.

いままで覚書をコメント文で書いていたんですが,
ドキュメントのこともそろそろちゃんと考えないと
自分的に破たんする(先月の自分は自分じゃない)とおもって
Python使いの方はどうやってるのかと.

506:デフォルトの名無しさん
09/08/22 17:11:24
>>505
EpydocとかPydoctorとか調べてみて。

507:デフォルトの名無しさん
09/08/22 17:39:33
公開する気がないんならautherとかlicenceとかいらんような気もするけど
このあたりを参考にして書けばいいんじゃないの?
URLリンク(www.python.jp)

508:365
09/08/22 19:09:34


509:デフォルトの名無しさん
09/08/22 20:43:56
なんでpythonってlist.rindex()ないの?

510:デフォルトの名無しさん
09/08/22 21:18:16
需要が無いんだろ。

rangeのようにパラメータの与え方で
逆に動くかとも思って試したが出来なかった。

ソース(Ver2.6,Ver3.1)を見るとこうなってる。
 for (i = start; i < stop && i < Py_SIZE(self); i++) {

start>stopでデクリメントされればな~とでも
MLに投げればそのうち実装されるんじゃねw

511:デフォルトの名無しさん
09/08/22 21:48:01
一連の処理の開始から,要所要所までにかかる時間を
できれば高精度で(1/100秒くらいで)計測したいと思っています.
datetime を使って現在時刻を取得するのではとても精度が
悪いのですが,Pythonの中だけで完結できる方法としては
ほかにどのような方法があるでしょうか?

timeit は上のような用途には適してないと思います.
ある関数内での処理時間を計測するには使えると思いますが,
複数のチェックポイントで次々とというのには不向きかと

512:デフォルトの名無しさん
09/08/22 21:55:11
どうしてdatetimeが出てきたのかよくわからないのだけれども
time.time()かtime.clock()じゃ不十分なのかな

513:デフォルトの名無しさん
09/08/22 22:17:56
いやぁ,単純に datetime.datetime.now() で得たオブジェクトなら
そのまま print しても見やすくフォーマットしてくれるなぁ,と.
で,datetime.datetime.now() でも十分な精度でした.

テストした環境がVMで,しかもその上で動かしてるLinuxカーネルの
タイマ割り込みの周期が1000回/秒だったせいで時計がずれまくってた
だけだった.

つーわけで俺のかんちguyでした

514:デフォルトの名無しさん
09/08/22 22:33:33
作ったスクリプトが遅いなぁと上の方法で計測してみたところ,
Pythonであれこれimportしているせいか
全ての import が終わるまで10秒くらいかかってます.
で,そのあとの処理はさくさくと.
bogomips が500を切るNASでやってるのが悪いのですが,
import を早く済ませるテクニックとかあるんでしょうか.
そりゃ絶対的に必要な時間はしかたないですが・・・
ちゃんと pyc もできてるし,打つ手はないかなぁ

515:デフォルトの名無しさん
09/08/22 23:07:16
importのコストのうち、pycで削減できるのはコンパイル時間のみ。
10秒もかかるってことは、どれかのモジュールのグローバルに重い処理があるんじゃない?

516:デフォルトの名無しさん
09/08/23 00:46:19
>>514
ある

517:デフォルトの名無しさん
09/08/23 02:47:03
>>514
テストした環境がVM?

518:デフォルトの名無しさん
09/08/23 11:09:27
(´・ω・`) God knows

519:デフォルトの名無しさん
09/08/24 02:12:48
質問です。
8時間悩んだバグが単なる変数の再初期化のし忘れでした。
このやりきれない気持ちをどうすればよいですか。

520:デフォルトの名無しさん
09/08/24 02:26:18
>>519
自動テストを書く。

521:デフォルトの名無しさん
09/08/24 02:52:14
再初期化をする必要がないスコープで書く方法を学ぶ

522:デフォルトの名無しさん
09/08/24 06:20:03
   ∧∧
  (´・ω・)  おやすみ・・・
  _| ⊃/(___
/ └-(____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄

523:デフォルトの名無しさん
09/08/24 08:54:40
   ∧∧
  (´・ω・)  おはヨーグルト!
  _| ⊃/(___
/ └-(____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄

524:デフォルトの名無しさん
09/08/24 09:28:29
>>519
変数名の使い回しなんて最悪だ

525:デフォルトの名無しさん
09/08/24 10:30:42
おまえら発火損逝った?

526:デフォルトの名無しさん
09/08/24 11:27:27
はっかそんいった?

527:デフォルトの名無しさん
09/08/24 14:20:39
同じモジュールでも、複数のファイルからimportするとその分だけメモリ消費しますか?
from hoge import *だとそのファイルの物になって、複数ファイルでfromするとメモリ消費しますか?

528:デフォルトの名無しさん
09/08/24 14:29:54
>>527
消費しない。
あるモジュールがはじめてimportされるとき、モジュールオブジェクトが作られて、
sys.modulesに保存される。

#a.py
print 'hello, I'm a'

#b.py
print "hello"
import a
a.foo = 'bar'
import c

#c.py
import a
print 'hello, I'm c'
print a.foo

$python b.py

してみて。
次に、 c の import a を、 import sys; a = sys.modules['a'] で置き換えてみて。

529:デフォルトの名無しさん
09/08/24 16:32:27
白化村征かなかったのか。駄目だなあ。

530:デフォルトの名無しさん
09/08/24 18:11:11
予想してみたけど分りません(>_<)

薄荷無羊駝(シソ科ハッカ属)、咲かなかったのか。
白化村(色素が抜けて全身真っ白の人しかいない伝説の村)、まさか無かったのか。


531:デフォルトの名無しさん
09/08/24 18:25:14
ハッカービレッジとかそんなのか?知らんけど

532:デフォルトの名無しさん
09/08/24 22:23:57
GAEあほだろ

533:デフォルトの名無しさん
09/08/24 22:46:28
3.1.1で大分マシになったようだが、まだまだ遅いな。
URLリンク(www.gtsystem.eu)

534:デフォルトの名無しさん
09/08/25 08:52:01
>>526
URLリンク(image.blog.livedoor.jp)

こんな風だった

535:デフォルトの名無しさん
09/08/25 11:20:32
>>534
アンチ自民キモイな。

536:デフォルトの名無しさん
09/08/25 15:16:56
つまらない質問で悪いんだが、
タプル同士をベクトルみたいに足し算するのはどうやるの?
ab = (1, 2)
ac = (3, 4)

abc = (ab[0]+ac[0], ab[1]+ac[1])

537:デフォルトの名無しさん
09/08/25 15:25:34
map(sum,zip(ab,ac))

538:デフォルトの名無しさん
09/08/25 15:51:31
numpy

539:デフォルトの名無しさん
09/08/25 15:53:23
タプルはベクトルでも行列でもねーぞ

540:デフォルトの名無しさん
09/08/25 15:53:48
ab = 1 + 2j
ac = 3 + 4j
abc = ab + ac

541:デフォルトの名無しさん
09/08/25 15:57:38
>>540


542:デフォルトの名無しさん
09/08/25 15:59:04
つまらない質問で悪いんだが、
タプルを複素数にするのはどうやるの?

543:デフォルトの名無しさん
09/08/25 15:59:25
>>536
tuple(ai + bi for ai, bi in zip(a, b))

おまけ:2ノルム
math.sqrt(sum(ai * bi for ai, bi in zip(a, b)))


544:デフォルトの名無しさん
09/08/25 16:03:02
>>542
tup = (1, 2)
complex(*tup)

545:デフォルトの名無しさん
09/08/25 16:12:47
>>542
complex(*ab)+complex(*ac)

546:デフォルトの名無しさん
09/08/25 16:13:35
>>544
thx!
つまらない質問で悪いんだが、
複素数をタプルにするのはどうやるの?

547:デフォルトの名無しさん
09/08/25 16:16:44
>>546
((complex(*ab)+complex(*ac)).real, (complex(*ab)+complex(*ac)).imag)

548:デフォルトの名無しさん
09/08/25 16:56:39
とりあえず吉川と布袋に囲まれたら泣いて謝ると思う

549:デフォルトの名無しさん
09/08/25 17:32:01
なんのこっちゃわからんが、みんなすごいね

550:デフォルトの名無しさん
09/08/25 21:57:23
ぬのぶくろは弱いぞ

551:デフォルトの名無しさん
09/08/26 05:00:02
ヘタれ布袋

552:デフォルトの名無しさん
09/08/26 15:14:20
パイヤング

553:デフォルトの名無しさん
09/08/26 17:20:30
matplotlibのbounding box調節関数のサンプルが見つからない

554:デフォルトの名無しさん
09/08/26 18:08:06
文字列 % 辞書 はなんの為に使うんでしょうか?
def gettext_noop(string, **kwargs):
retval = string
if kwargs:
retval %= kwargs
return retval

555:デフォルトの名無しさん
09/08/26 18:54:29
URLリンク(www.python.jp)

556:デフォルトの名無しさん
09/08/26 18:55:56
sprintfみたいなもんや

557:デフォルトの名無しさん
09/08/26 20:02:25
マンモスありがとうございます

558:デフォルトの名無しさん
09/08/26 20:24:36
"abc%sdef" % "hoge"
みたいなフォーマット文字列の書き方とはもうサヨナラ?
悲しすぎる.

559:デフォルトの名無しさん
09/08/26 20:57:35
"abc{}def".format("hoge")のほうが読みやすい
%sdefとかだと文字とフォーマット表記が混じって読みにくい

560:デフォルトの名無しさん
09/08/26 21:06:58
長いこと%sやら%dな変換指定子に慣れてるから
他の書式にされると覚えにくくて困る

ええC#のことです

561:デフォルトの名無しさん
09/08/26 23:53:37
正規表現も読みにくいな

562:デフォルトの名無しさん
09/08/27 01:08:25
LINK = "<%(tag)s %(attr)s>%(name)s</%(tag)s>"
dict_ = {}
dict_["tag"] = "a"
dict_["attr"] = 'href="URLリンク(localhost:8080)"'
dict_["name"] = "hack you"
LINK % dict_

MENU = "<menu>\n%(item)s</menu>"
ITEM = "<li>%(content)s</li>\n"

print MENU % {"item" :"".join([ITEM % {"content": LINK % dict_}]*10)}

563:デフォルトの名無しさん
09/08/27 01:55:17
LINK = "<{tag} {attr}>{name}</{tag}>".format(tag = "a",
attr = 'href="URLリンク(localhost:8080)"',
name = "hack you")
ITEM = ("<li>{content}</li>\n"*10).format(content = LINK)
MENU = "<menu>\n{item}</menu>".format(item = ITEM)
print(MENU)

564:デフォルトの名無しさん
09/08/27 01:57:03
インデントずれた
LINK = "<{tag} {attr}>{name}</{tag}>".format(tag = "a",
                                      attr = 'href="URLリンク(localhost:8080)"',
                                      name = "hack you")

ITEM = ("<li>{content}</li>\n"*10).format(content = LINK)
MENU = "<menu>\n{item}</menu>".format(item = ITEM)
print(MENU)

565:デフォルトの名無しさん
09/08/27 05:37:11
LINK = "<{tag} {attr}>{name}</{tag}>".format(
  {tag: "a", attr: 'href="URLリンク(localhost:8080)"', name: "hack you"})


566:デフォルトの名無しさん
09/08/27 06:19:49
ぶっちゃけ、変数展開型言語も色んなテンプレも別に見やすいわけじゃないんだよな。
なんか良い方法あればいいんだけど。

567:デフォルトの名無しさん
09/08/27 16:09:07
sqlite3でテーブルが作成されてなかったり、
データベースファイルがないのを検出する方法ってありますか?

568:デフォルトの名無しさん
09/08/27 18:25:50
>>567
> sqlite3でテーブルが作成されてなかったり、
SELECT * FROM sqlite_master;

> データベースファイルがないのを検出する方法ってありますか?
os.path.exists

569:デフォルトの名無しさん
09/08/29 01:00:08
10 Ways To Let People Know You're A Bad Python Programmer
URLリンク(artificialcode.blogspot.com)

570:デフォルトの名無しさん
09/08/29 02:06:58
1. Write "God" functions
hundred lines of code
2. Never return anything in a function, especially not some type of value that could demonstrate your function succeeded or failed.
3. Never write a test...EVER.
4. Call Perl from Python
5. Screw Control Flow
import os
if os.path.exists("/tmp"):
    def myfunc():
        x = 4
        return x
class Foo(object):
    y = 1
f = Foo()
print f.y + myfunc()
6. Abuse conditional logic to the point that you double or even triple an "unmaintainable" Cyclomatic Complexity Score of 50.
7. Use sleep statements like Holy Water.
8. Initiate the same logic more then once, "just to be sure".
count = 0
for i in range(5):
    if os.path.exists("/tmp"):
        print "bingo"
def foo():
    print "stuff"
if os.path.exists("/tmp"):
    import sys
    sys.exit(1)
9. Write Library Code that does a sys.exit(0) on an exception.
10. Reimplement the Python Standard Library in every piece of code you write.
Summary
If you can do just a couple of these things in every piece of code you write, you are well on your way to writing bad python code! Stay tuned for part II.

571:デフォルトの名無しさん
09/08/29 05:31:37
PyDev 便利に使っているけど、やっぱり餅は餅屋というか、
Eclipse で Java している時のような至れり尽くせり感がないなぁ・・
もっと、こう、至れり尽くせりなPython用IDEって何があるんでしょうか。

572:デフォルトの名無しさん
09/08/29 05:35:24
eric4

573:デフォルトの名無しさん
09/08/29 07:47:42
emacs

574:デフォルトの名無しさん
09/08/29 08:41:35
emacs+rope

575:デフォルトの名無しさん
09/08/29 09:16:35
emacs+rope+auto-complete+anything

576:デフォルトの名無しさん
09/08/29 10:30:38
おまえらがEclipseをろくに使ったことがないということはよくわかった

577:デフォルトの名無しさん
09/08/29 10:39:21
ううむ・・ericも含めて、それだったら PyDev でいいや・・・

578:デフォルトの名無しさん
09/08/29 13:07:55
実際 Eclipse 使ったことないんだが、至れり尽くせりって具体的にどんなことが出来るのかね?


579:デフォルトの名無しさん
09/08/29 13:47:20
eclipseを使ったら彼女が出来ました

580:デフォルトの名無しさん
09/08/29 13:48:22
>>578
ファイルを保存する段階でコンパイルエラーを指摘してくれるのを最初に見たときは感動したな。

Visual Stdio 2008でも同じことが出来るけど。

環境がIronPythonになるが、Visual StudioでPythonのスクリプトを動かすことが出来るよ。

581:デフォルトの名無しさん
09/08/29 14:05:37
なんだ、ドザか。

582:デフォルトの名無しさん
09/08/29 14:07:15
w

583:デフォルトの名無しさん
09/08/29 15:03:03
>>582

584:デフォルトの名無しさん
09/08/29 16:06:16
>>578
イタレリのキットが抽選で当たります。

585:デフォルトの名無しさん
09/08/29 16:29:36
見事に外したな

586:デフォルトの名無しさん
09/08/29 21:24:22
並列実行用のモジュールにMultiProcessingというのがあるようなんですが、
メモリ共有型の場合でも対応できるんでしょうか?
例えば大きな行列があって、並列処理で別々の部分を処理したりしたいんですが。。。
threadingでは実際には並列効果がないというのを知ってショックを受けてます・・・


587:デフォルトの名無しさん
09/08/29 21:26:11
yes you can

588:デフォルトの名無しさん
09/08/29 22:16:41
【JAVA質問スレより】
940 :デフォルトの名無しさん:2009/08/29(土) 22:08:40
>>937
一番もてるのはperl。
もっとも嫌われるのはpython。
C,C++は、相性とテクニック次第。


なんで?


589:デフォルトの名無しさん
09/08/29 22:18:57
なんでそいつに聞かないの?

590:デフォルトの名無しさん
09/08/29 22:19:07
モテる相手がバグだからさ

591:デフォルトの名無しさん
09/08/29 22:29:02
うまいな

592:デフォルトの名無しさん
09/08/29 22:31:09
>>586
URLリンク(docs.python.org)

俺は使ったことない。共有メモリマシンでうまく並列効果が出たら是非教えて。

593:デフォルトの名無しさん
09/08/30 00:34:25
>>588
なんでか知らんが、俺の周りでもpyてょnは変態呼ばわり。

594:デフォルトの名無しさん
09/08/30 00:42:05
凡人には使えない言語だ

595:デフォルトの名無しさん
09/08/30 00:44:18
言語じゃなくて使ってる人が変態(ry

596:デフォルトの名無しさん
09/08/30 00:45:57
変態専用か

597:デフォルトの名無しさん
09/08/30 00:48:05
変態じゃないよ
仮に変態だったとしても変態という名の紳士だよ


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch