Pythonのお勉強 Part31at TECH
Pythonのお勉強 Part31 - 暇つぶし2ch202:デフォルトの名無しさん
09/01/16 19:29:36
>>149-156
結局どれが一番お勧めなの?
ステップライン実行デバックができるのがいいな


203:デフォルトの名無しさん
09/01/16 19:33:11
>>202
Wing IDE

204:デフォルトの名無しさん
09/01/16 21:07:10
その年の、ある月の末日を取得するにはどうすればいいんでしょうか
たとえば、2000年の2月の末日は28日みたいな感じのです


205:デフォルトの名無しさん
09/01/16 21:31:27
>>199-200を再読してください
なお2000年は閏年ですので2月の末日は29日です

206:デフォルトの名無しさん
09/01/16 22:36:49
ドラマのブラッディーマンデイで主人公がputhon多様していたみたいだが、
彼が使っていたエディタはなにかわかるひといる?
URLリンク(imagepot.net)

207:デフォルトの名無しさん
09/01/16 22:51:13
vimじゃん

208:デフォルトの名無しさん
09/01/16 23:25:13
>>207 はあ?

わかるひといます?

209:デフォルトの名無しさん
09/01/16 23:41:10
vimだろ

210:デフォルトの名無しさん
09/01/16 23:42:08
俺AB型だからPythonに惹かれたのか。

211:デフォルトの名無しさん
09/01/16 23:42:31
どう見ても vim だな。

212:デフォルトの名無しさん
09/01/16 23:52:00
gvimだな

213:デフォルトの名無しさん
09/01/16 23:54:44
俺O型だけど

214:デフォルトの名無しさん
09/01/17 00:15:05
>>206
フォントかっこいいな。なんてやつ?

215:デフォルトの名無しさん
09/01/17 01:38:47
>>214
このフォントのどこが格好いいんだ
アンチエイリアスが中途半端で汚いじゃない

216:デフォルトの名無しさん
09/01/17 01:58:36
これビットマップフォントだぞ

217:デフォルトの名無しさん
09/01/17 02:19:17
はあ?かっこいいといってるだろ。
なにこれ?

218:デフォルトの名無しさん
09/01/17 02:28:15
はあ?

219:デフォルトの名無しさん
09/01/17 03:48:25
うんこレンダリングフォント
ulf

220:デフォルトの名無しさん
09/01/17 06:27:30
>>206
1-6行目不明
7行目以降
try: host,frm,to=sys.argv[1:4]
except ValueError:
print 'Usage: %s <host> <from> <to>' % (sys.argv[0])
sys.exit(1)

print 'Connecting to %:25 ...' % (host)

sock = socket.socket()
try: idx = host.index(':')
except ValueError: addr = (host, 25)
else: addr = [host[:idx], int(host[idx+1:])]
sock.connect(addr)

print 'Connected'

1-6行目わかる?

221:デフォルトの名無しさん
09/01/17 06:33:51
import socket
import sys

あとコメントが数行入って終了じゃないか

222:デフォルトの名無しさん
09/01/17 07:14:08
本物のハッカーならGPLが書いてあるはず

223:デフォルトの名無しさん
09/01/17 07:23:49
>>222
本物のハッカーの多くは、GPLみたいな自由度の低い
ライセンスは採用しないよ。

彼等は単に何も書かないか(こっちの方が多い)、
MITやBSDライセンスにしてることだろう。

224:デフォルトの名無しさん
09/01/17 07:26:49
25って決め打ちなんか

225:デフォルトの名無しさん
09/01/17 12:18:38
>>220
普通にこれで使えるな

226:デフォルトの名無しさん
09/01/17 13:18:20
print 25のとこおかしいね。

227:デフォルトの名無しさん
09/01/17 13:19:10
これで女子高生にvim使いが増える!

228:デフォルトの名無しさん
09/01/17 14:58:57
>>226
元の画像には%sになってたからただの写し間違いだと思うが
host="hoge.fuga:587"
とかだったときにやっぱり表示は変になるね

229:デフォルトの名無しさん
09/01/17 15:00:35
1行目は #!/usr/bin/env python だと予想。

230:デフォルトの名無しさん
09/01/17 16:10:24
1. #!/usr/bin/env python
2. '''hogehoge
3. fugafuga
4. '''
5. import socket
6. import sys

でFA?

231:デフォルトの名無しさん
09/01/17 16:14:28
1. #!/usr/bin/env python
2. # -*- coding: hoge -*-
3.
4. import socket
5. import sys
6.

232:デフォルトの名無しさん
09/01/17 16:25:29
>>231
それっぽいw

233:デフォルトの名無しさん
09/01/17 16:58:53
PEP8守ってないから訓練されたPythonistaじゃないな

234:デフォルトの名無しさん
09/01/17 18:54:52
パイソニスタじゃなくてパイソニアンがいい

235:デフォルトの名無しさん
09/01/17 19:03:38
Pythonista, Pythonian, Pythonese, Pythonist, Pythoner
どれでも好きなのを選ぶといい

236:デフォルトの名無しさん
09/01/17 19:06:40
日本語なら「Py使い」でいいでしょ。

237:デフォルトの名無しさん
09/01/17 19:15:42
お、py使い

238:デフォルトの名無しさん
09/01/17 20:18:26
訓練されてないのは、盲py

239:デフォルトの名無しさん
09/01/17 20:51:27
PEP8守って書き直すとどうなりますか

240:38
09/01/18 16:23:33
へんじがない、ただのぱいそにすたのようだ

241:デフォルトの名無しさん
09/01/18 22:58:52
URLリンク(www.dotup.org)
PEP3を出来る限り守ったらこんな変なコードになってしまったんですが
どうすればいいですか?

242:241
09/01/18 22:59:26
PEP3じゃなくてPEP8でした

243:デフォルトの名無しさん
09/01/19 00:01:43
geditかこれ

244:デフォルトの名無しさん
09/01/19 00:24:11
ただものじゃないEmEditorです

245:デフォルトの名無しさん
09/01/19 00:28:20
どうすればいいですか?

246:デフォルトの名無しさん
09/01/19 00:31:27
一見して>>241のどこがヘンなのかわからなかったw
Lispならカッコは右下に連打するだろうな、とは思ったが……

一行79文字縛りがキツい、という話?

247:デフォルトの名無しさん
09/01/19 00:40:05
はい…

248:デフォルトの名無しさん
09/01/19 00:40:11
>>246
変じゃないなら別にいいです

249:デフォルトの名無しさん
09/01/19 00:42:41
>>241
正規表現を事前にコンパイルしてre.subの引数を減らせばいいんじゃね?

250:デフォルトの名無しさん
09/01/19 00:50:41
入れ子のre.subの呼び出しを、複数の文に分ければいいと思うよ
x = re.sub(a, re.sub(b, c, d), x)
みたいなのを
y = re.sub(b, c, d)
x = re.sub(a, y, x)
と書く

どうせ一行に収まらないのなら、入れ子で書いても読みにくくなってるだけでしょ
「流れるインタフェース」でもないのだし

251:デフォルトの名無しさん
09/01/19 01:40:56
まともな回答はありません‥

252:デフォルトの名無しさん
09/01/19 04:19:25
)に違和感

253:デフォルトの名無しさん
09/01/19 04:40:45
>>241
うわっ、汚い。。。
普通は re_subs みたいな関数書いて、順にre.subが適用されるようにする。
あと、そのエディター酷いね。。色付けすらちゃんとされてないじゃん。


254:241
09/01/19 04:50:38
>>253
そのカンスゥー貼って下さい…

255:デフォルトの名無しさん
09/01/19 05:16:45
>>254
そのぐらい自分で書けないと。
初心者レベルの難易度だよ。

256:デフォルトの名無しさん
09/01/19 08:15:14
>>255
あのー、かんすーお願いします‥
なぜPythonスレの人たちはレベル低いのだろう

257:デフォルトの名無しさん
09/01/19 08:40:29
お前のレベルが低いだけ

258:デフォルトの名無しさん
09/01/19 08:41:27
お前のレベルが低いだけ

259:デフォルトの名無しさん
09/01/19 08:44:36
>>256
知能低いのかね。小学生でも書けそうな関数だとおもうが。

260:デフォルトの名無しさん
09/01/19 14:35:17
あの、カンスゥーまだですか・・・?

261:デフォルトの名無しさん
09/01/19 18:07:26
>>260 こんなんでいいのか?
URLリンク(stat001.ameba.jp)

262:デフォルトの名無しさん
09/01/19 18:07:44
URLリンク(jp.youtube.com)

263:デフォルトの名無しさん
09/01/19 18:08:51
>>262
このカンスゥーは無表情すぎて怖い

264:デフォルトの名無しさん
09/01/19 18:23:11
>>1の和訳チュートリヤルに嘘ばっかり書いてあるな
print 'Hello, world!'
ってやってもエラーになる
嘘ばっかだなと思って
英語のほうを見たら
print ('Hello, world!')
って書いてあったので
そのとおりやったらできた。
>>1はうそつき超汚染人だ!

265:デフォルトの名無しさん
09/01/19 18:24:56
>>1の和訳チュートリヤルに嘘ばっかり書いてあるな
print 'Hello, world!'
ってやってもエラーになる
嘘ばっかだなと思って
英語のほうを見たら
print ('Hello, world!')
って書いてあったので
そのとおりやったらできた。
>>1はうそつき超汚染人だ!

266:デフォルトの名無しさん
09/01/19 18:25:00
>>1の和訳チュートリヤルに嘘ばっかり書いてあるな
print 'Hello, world!'
ってやってもエラーになる
嘘ばっかだなと思って
英語のほうを見たら
print ('Hello, world!')
って書いてあったので
そのとおりやったらできた。
>>1はうそつき超汚染人だ!

267:デフォルトの名無しさん
09/01/19 18:35:47
>>264-266
初心者丸出し

と釣られてみる

268:デフォルトの名無しさん
09/01/19 21:01:28
初心者っていきなり 3 触るの?

269:デフォルトの名無しさん
09/01/19 21:43:20
最新版にβとつければ初心者はさわらないかもね

270:デフォルトの名無しさん
09/01/19 22:04:50
Python初めて1週間
3.0→2.3.4jp→2.6.1→2.5.1

271:デフォルトの名無しさん
09/01/19 22:14:51
2.5.1→2.6.1→3.0→2.5.1→2.6.1

printが強制的にカンスゥーになってたり
rangeがオブジェクト返すようになっててちょっと困惑するんだよね

272:デフォルトの名無しさん
09/01/19 22:52:18
printは自発的に関数になったと風の便りに聞いたよ…

273:デフォルトの名無しさん
09/01/19 23:16:29
#2.6
x = range(100)

#3.0
x = [i for i in range(100)]

274:デフォルトの名無しさん
09/01/19 23:34:58
list(range(100))

275:デフォルトの名無しさん
09/01/20 00:21:09
結構変わったんだな。3は。

276:デフォルトの名無しさん
09/01/20 01:17:08
>>273
3はなんだかちょっと面倒だなって気がしてきた

277:デフォルトの名無しさん
09/01/20 01:19:52
志村!

278:デフォルトの名無しさん
09/01/20 07:10:13
あのー、回答待ってるですがまだですか?
パイソンのスレッドって馬鹿しかいないなー

279:デフォルトの名無しさん
09/01/20 08:03:22
rangeでリストを作るなんて滅多にしないだろうに。

280:デフォルトの名無しさん
09/01/20 08:26:21
[i for i in range(100)]
に必死で突っ込むひとまだですか?

281:デフォルトの名無しさん
09/01/20 08:35:03
ところで、2.6って2.5に対して完全に上位互換?
2.5用のライブラリで2.6で動かなくなったのってある?

282:デフォルトの名無しさん
09/01/20 10:49:45
>>281

基本的には 2.5 -> 2.6 では減っているものはない。
The *** module has been deprecated for removal in Python 3.0.
という形で 3.0 でなくなる予定のライブラリは -3 オブションで警告がでるのみ。
実際に標準ライブラリから外されるのは 3.0 から。

但し、細部では各ライブラリのバージョン・アップによる変更があるので、
ライブラリ自体が動かなくなったものは知らないが、# >>> import test.autotest を参考に。
それを使ったコードの方で修正が必要なものはあるかもしれない。

283:デフォルトの名無しさん
09/01/20 15:25:18
>>206
#!/usr/bin/env python
# -*- coding: ascii -*-

import socket
import sys

try:
    host, frm, to = sys.argv[1: 4]
except ValueError:
    print "Usage: %s <host> <from> <to>" % (sys.argv[0])
    sys.exit(1)

print "Connecting to %s:25 ..." % (host)

sock = socket.socket()
try:
    idx = host.index(':')
except ValueError:
    addr = (host, 25)
else:
    addr = (host[:idx], int(host[idx + 1:]))
sock.connect(addr)

print "Connected"

284: ◆TINKO/J0J6
09/01/20 16:54:58
import tinko

285: ◆UNKOVIP9RM
09/01/20 16:56:15
import unko

286:デフォルトの名無しさん
09/01/20 16:57:28
unkoはexportするものだろ

287:デフォルトの名無しさん
09/01/20 17:56:07
from anal export unko

288:デフォルトの名無しさん
09/01/20 17:56:14
自然数k,p,qについて
k=mp+nq(m,nは「0以上の整数」)を満たす(m,n)の組の数をv(k)とするとき
p=3, q=7, kが1から100までのときの結果vの一覧を出力したいです
どのように書いたらいいですか?


289: ◆UNKOVIP9RM
09/01/20 17:58:02
>>288
ggks

290:デフォルトの名無しさん
09/01/20 18:05:00
p=3
q=7
t=0
u=0
for k in range(1, 101):
v=0
for m in range(k/p+1):
if (k-m*p)%q == 0:
v+=1
print 'v(%d)=%d\n' % (k, v)
u+=v
if v:
t+=1
print 'total %d, %d\n' % (t, u)


291:デフォルトの名無しさん
09/01/20 18:11:16
v = lambda k, p, q: \
[(m, n) for m in range(k/p + 1) for n in range(k/q + 1)
if k == m * p + n * q ]

for k in range(1, 101):
print k, '->', ', '.join(map(str, v(k, 3, 7)))


292:291
09/01/20 18:13:44
あー計算量的に無駄なのか
まあいいや

293:デフォルトの名無しさん
09/01/20 18:26:22
>>> p,q=3,7 ; Max=101
>>> for k in range(Max): print k, len(filter(lambda x:(k-x)>=0and(k-x)%q==0, range(0,Max,p)))
...
0 1
1 0
2 0
3 1
4 0
5 0
6 1
7 1
8 0
9 1

294:デフォルトの名無しさん
09/01/20 18:37:45
すまん、こうだった

>>> p,q=3,7 ; Max=101
>>> for k in range(Max): print k, len(filter(lambda x:(k-x)%q==0, range(0,k+1,p)))
...
0 1
1 0
2 0
3 1
4 0
5 0
6 1
7 1
8 0
9 1

最後の len(... 以降が v みたいなもん、

295:デフォルトの名無しさん
09/01/20 18:48:31
k=0は蛇足です

296:デフォルトの名無しさん
09/01/20 18:51:40
>>289-
Thank you so match.

297:デフォルトの名無しさん
09/01/20 18:56:16
>>280
待ち人来たらず

298:デフォルトの名無しさん
09/01/20 19:11:35
p,q,d=3,7,100
for k in range(1,d+1): print k,'->',','.join(map(str,[(m/p,(k-m)/q) for m in filter(lambda x:(k-x)%q==0, range(0,k+1,p))]))
こうですか
わかりません

299:デフォルトの名無しさん
09/01/20 19:13:47
>>283
ありがとうございました

300:デフォルトの名無しさん
09/01/20 19:37:45
>>298
あってるっぽい気がするけど?

301:デフォルトの名無しさん
09/01/20 19:42:11
URLリンク(www.toshin.com)

302:デフォルトの名無しさん
09/01/20 19:49:44
なるほどw

303:デフォルトの名無しさん
09/01/20 20:16:21
python的に解くとどうなりますか?
3^(3^3)の一の位の数字は?
7^(7^7)の一の位の数字は?
13^(13^13)の一の位の数字は?
17^(17^17)の一の位の数字は?
n^(n^n)の一の位の数字は?


304:デフォルトの名無しさん
09/01/20 20:30:34
pythonを学習しようかと考えていますが、巷で出回っているフリーの(GUI)ツール類
などはCなどで書かれていると思いますが、ptyhonでも同様のことができますか?
そこまで大規模なツールではなく簡単シンプルなツールです。
本屋でちょっと読んだ参考書にはwindows用のフォームやボタンの配置などが
書かれていなかったので、CUIのプログラミングだけかと…

305:デフォルトの名無しさん
09/01/20 20:35:40
Tkinter, wxPython, pywin32などでぐぐれ

306:デフォルトの名無しさん
09/01/20 20:37:08
そんなことないですよ

307:デフォルトの名無しさん
09/01/20 20:38:38
628 名前:デフォルトの名無しさん :2009/01/20(火) 20:10:12
VB6の代わりにならないかな
VB6ユーザーには、Delphiは難し過ぎるみたいだし
PythonにVB並のRADツールを備えた統合開発環境があればいいんだけど


629 名前:デフォルトの名無しさん :2009/01/20(火) 20:20:45
そこでIronPythonですよ。


630 名前:デフォルトの名無しさん :2009/01/20(火) 20:30:35
UbuntuではNativeで動き
WindowsではVMで動くPythonキボンヌ!

308:デフォルトの名無しさん
09/01/20 20:39:33
スレリンク(tech板)

309:デフォルトの名無しさん
09/01/20 20:40:18
スレリンク(tech板)

310:デフォルトの名無しさん
09/01/20 20:59:57
>>288
BASICでクソプログラム見せられたらやっぱPythonできれいに書きたくなるよね。


311:310
09/01/20 21:01:43
俺はIIの最後で2点と統計で2点落としちまったぜ

312:デフォルトの名無しさん
09/01/20 21:23:33
>>304
オマエが読んだクソ本を怨め

313:デフォルトの名無しさん
09/01/20 21:38:57
from collections import defaultdict

p = 3
q = 7
d = 100
answer = defaultdict(int)

for m in xrange(d / p):
    for n in xrange(d / q):
        k = p*m + q*n
        if k > d:
            break
        answer[k] += 1
        
for k in range(d+1):
    print k, answer[k]

314:デフォルトの名無しさん
09/01/20 22:21:03
>>303

from itertools import repeat

def _f(n):
    def _mul(n, m):
        return ((n % 10) * (m % 10)) % 10

    def _pow(n, m):
        return reduce(_mul, repeat(n, m-1), n)

    return _pow(n, _pow(n, n))


315:314
09/01/20 22:39:22
間違えた。_powの第二引数は一の位だけじゃ駄目だ。

316:デフォルトの名無しさん
09/01/20 22:40:16
うむ

317:デフォルトの名無しさん
09/01/20 23:44:56
pow(n, pow(n, n), 10)

318:デフォルトの名無しさん
09/01/20 23:49:54
>>> pow(3,pow(3,3),10)
7
>>> pow(7,pow(7,7),10)
3
>>> pow(13,pow(13,13),10)
3L
>>> pow(17,pow(17,17),10)
7L

あってる?

319:デフォルトの名無しさん
09/01/21 00:35:03
あってるけど、
アルゴリズム的には n が大きいときの pow(n, n) が課題。



320:デフォルトの名無しさん
09/01/21 01:37:05
遅いって言っても、1000ぐらいまでなら一瞬で出るぞ

>>> i=1
>>> while 1:print i,pow(i,i**i,10);i+=1
...
1 1
2 6
3 7
4 6
5 5
6 6
7 3
8 6
9 9
10 0
11 1
12 6
13 3
14 6
...
...
...
1197 7
1198 6
1199 9
1200 0
1201 1

321:317
09/01/21 01:57:21
nのべき乗の1の位が、ある周期で循環することを利用して指数を小さくしてみた。

# coding: utf8

def cycle(n):
    i = n*n % 10
    lst = [i]
    while n != i:
        i = i*n % 10
        lst.append(i)
    return lst

def main():
    cycles = [cycle(i) for i in xrange(10)]
    clen = [len(item) for item in cycles]

    for i in range(10):
        print i, cycles[i]
    print ""

    for n in xrange(1, 1000):
        cl = clen[n%10]
        nn = pow(n, cycles[n%10][n%cl])
        nnn1 = pow(n, nn, 10)
        print n, nnn1
        

if __name__ == '__main__':
    main()


322:デフォルトの名無しさん
09/01/21 02:25:02
ほぼ同じことだけど、自分もやってみた、これだと、googol(=10**100)ぐらいまでは一瞬

def f(n):
    c = cycle(n,10)
    return pow(n, pow(n, n, c) or c, 10)

def cycle(n, modulo):
    s=set() ; x = n % modulo
    while x not in s: s.add(x) ; x = x * n % modulo
    return len(s)

for i in range(7):
    print i, f(10**10**i+i)

$ python 303.py
0 0
1 1
2 6
3 7
4 6
5 5
6 6

323:デフォルトの名無しさん
09/01/21 02:28:11
URLリンク(www.kohgakusha.co.jp)


324:デフォルトの名無しさん
09/01/21 05:39:19
>>321
そこまでたどり着けば実はpow使わなくても答え出てるんだけどね


325:デフォルトの名無しさん
09/01/21 05:45:02
13=10+3だから、13^nの1の位は3^nの1の位と同じで4個周期。
13=12+1だから13^13を4で割った余りは1。
13^(13^13)の1の位は3^1の1の位と同じなので3。

17=10+7だから、17^nの1の位は7^nの1の位と同じで4個周期。
17=16+1だから17^17を4で割った余りは1。
17^(17^17)の1の位は7^1の1の位と同じなので7。


326:デフォルトの名無しさん
09/01/21 08:11:54
クソ本が改訂してクソでなくなるのかな?

327:デフォルトの名無しさん
09/01/21 09:36:24
まあ評価は見てからですかねー


328:デフォルトの名無しさん
09/01/21 10:30:01
はじぱい 第2版 (2004/11) \5,040
URLリンク(www.amazon.co.jp)
はじぱい原著 3rd Edition (2008/07/16) $26.39
URLリンク(www.amazon.com)

恥ぱい 初犯 (2007/11) \1,995
URLリンク(www.amazon.co.jp)
恥ぱいネットワーク 初版 (2008/06) \1,995
URLリンク(www.amazon.co.jp)
恥ぱい3 初版 (2009/01) \1,995
URLリンク(www.kohgakusha.co.jp)
恥ぱいが3.0用になったんですね


329:デフォルトの名無しさん
09/01/21 11:10:29
恥の上塗りというわけですね。

330:デフォルトの名無しさん
09/01/21 11:20:55
俺もウェブの無料チュートリヤル翻訳して金稼ぎたい

331:デフォルトの名無しさん
09/01/21 11:40:37
ライブラリレファレンスの和訳更新・改良を
ガンガンやってくれるならお布施くらいはするでよ?

332: ◆UNKOVIP9RM
09/01/21 11:53:01
>>312
惚れた

惚れた

惚れた


できれば結婚してくれ

333: ◆UNKOVIP9RM
09/01/21 11:54:09
>>328

買う 買うー

334:デフォルトの名無しさん
09/01/21 11:58:54
周期が4の公約数になるのを利用するとこれでもok?
pow(n % 10, (n & 3) or 4, 10)

335: ◆UNKOVIP9RM
09/01/21 11:59:03
>>> import >>329
>>> print (329.star())

"星3つ"

336:デフォルトの名無しさん
09/01/21 12:08:27
>>328
はじぱいの癖に5040円って翻訳書のはじ

337: ◆UNKOVIP9RM
09/01/21 12:18:59
>>336
円安だったんだよ


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