1 :
fool :
2005/09/07(水) 15:19:16 Pythonの入手方法からPythonでのプログラミングの仕方 について0から教えてください お願いします
2 :
デフォルトの名無しさん :2005/09/07(水) 15:33:00
apt-get install python
3 :
デフォルトの名無しさん :2005/09/07(水) 15:34:54
自己解決しました。
もうあきらめたか。 まあ、あきらめが肝心だな。
5 :
fool :2005/09/07(水) 16:05:16
あ、いや、まだ・・・・
6 :
デフォルトの名無しさん :2005/09/07(水) 16:32:27
テメーが適当な書き方でスレ立てるから適当なレスしか帰ってこないんだよ 入手方法から知りたいなら環境くらい書いただろうだ
7 :
fool :2005/09/07(水) 16:43:34
>>6 あなたには聞いていませんよ。とても迷惑だから消えてください。
8 :
fool :2005/09/07(水) 16:46:52
9 :
fool :2005/09/07(水) 16:49:36
11 :
デフォルトの名無しさん :2005/09/07(水) 17:29:49
日本語化されたPythonってないですか?
12 :
fool :2005/09/07(水) 17:30:42
13 :
デフォルトの名無しさん :2005/09/07(水) 17:39:26
インストールしたけどどれ実行したらいいかわかんねー IDLE(Python GUI) Module Docs Python(command line) Python Manuals Uninstall Python
14 :
デフォルトの名無しさん :2005/09/07(水) 17:41:46
文字列リテラルを挟むのに""と''がありますがどんな差がありますか? もし同じ物ならどちらが一般的に使われていますか
15 :
デフォルトの名無しさん :2005/09/07(水) 17:43:07
>>14 違いは、""は中に"が書けない、''は中に'が書けない。
19 :
fool :2005/09/07(水) 20:03:36
Pythonはやっぱ面倒になってきたので PHPに変えます。
それじゃあ削除依頼してきてくださいね^^
次スレは PHPについて0から教えてください だな
文字列の変更ができないのはナゼですか? できたほうが便利じゃないの?
多分マイナスから教わってもいいように配慮してるんだと思う。
日本語ファイル名だとうまく動かない
ユークリッドの互除法できた たった2行で書けるなんてすげー a=input("a=") b=input("b=") if b>a: a,b=b,a while b>0: a,b=b,a%b print a
28 :
デフォルトの名無しさん :2005/09/08(木) 06:19:31
classメソッドの第一仮引数になぜselfが必要なの? 実際には引数としてselfにあたるものは必要ないようですが……
おっと、クラスメソッドでは意図した意味にならないようだ ただ単にメソッド、もしくはメンバ関数と言い換えたい サンクス
>>1 まずPCには一切触れず
机とPC本体への雑巾がけから始めろ
全てはそこから始まる
31 :
デフォルトの名無しさん :2005/09/08(木) 19:15:09
パイ損なんて 勝手にインデントすると起こられるし fじゃこし
32 :
名無しさん@そうだ選挙に行こう :2005/09/11(日) 09:00:38
Tkinterってなんて発音するの?
てぃーけーいんたー じゃね?
34 :
名無しさん@そうだ選挙に行こう :2005/09/11(日) 17:10:28
エディタのOption -> Code Context って何? 上部に灰色のエリアが現れるんだけど
Idleだと思われます。 そのエリアは、自分の作業している階層のヒントが表示されるものです。 長いコードを書けば分かる。 たとえば、次のようなコードをいれて改行しまくると分かりますよ。 def foo(): for i in range(10): print i
>>36 レスありがとうございます
色々試してみたんですがやっぱり変化ないです
うーん、なんでだろう……
そのコードの後に改行を入れたらいいんですよね
38 :
デフォルトの名無しさん :2005/09/16(金) 21:29:44
みなさん!協力を、お願いします
隠れないと出てこないな、もっと縦長なソースを書いてみそ。
40 :
デフォルトの名無しさん :2005/09/16(金) 23:44:21
ここの文章でちょっと疑問があるんだけど
http://www.unixuser.org/~euske/doc/pygame/newbieguide-j.html rect = pygame.Rect(10, 20, 30, 30)
rect = pygame.Rect((10, 20, 30, 30))
rect = pygame.Rect((10, 20), (30, 30))
rect = (10, 20, 30, 30)
rect = ((10, 20, 30, 30))
この4番目と5番目ってどう違うの?
5番目は((10, 20)(30, 30))の間違いかなぁとおもって聞いてみた
漏れの勘違いで、本当は何か違いがあるなら教えてくれ
>>36-37 そのソースコードだと print i の後に37個改行入れて初めて分かる
>>40 4番目のrectの中身はリスト、
5番目のrectの中身はリストのリスト
43 :
42 :2005/09/17(土) 10:54:39
ごめ、リストじゃなくてタプルだった。
5 番目の外側の括弧は冗長なものだから 4 番目と 5 番目は等しいよ (両方とも 1 次元のタプル) 著者がどういう意図なのかはわからないけど
You is-a fool man, hahaha.
47 :
42 :2005/09/19(月) 23:06:27
しまった。。
>>40 さんの指摘通りですた。
要素が1つのタプルは tuple = (x, ) としないと作れないから、
>>40 のは4番目と5番目、等しいんだorz
何にせよ、そのサイトの著者の意図がわからないよね
4番目は1番目、5番目は2番目、しかし3番目をタプルで渡すことは出来ません。 ということでは。
> from pygame.locals import * > r = Rect(0,0,10,10) > tr = (5,5,10,10) > r.colliderect(tr) 1 > tr = ((5,5),(10,10)) > r.colliderect(tr) 1 > tr = ((5,5,10,10),) > r.colliderect(tr) 1 > tr = (((5,5,10,10),),) > r.colliderect(tr) 1 > tr = ((5,5,10),10) > r.colliderect(tr) Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: Argument must be rect style object ((5,5),(10,10))も ((5,5,10,10),)も (((5,5,10,10),),)でも問題なし
52 :
デフォルトの名無しさん :2005/09/22(木) 11:29:29
質問です。 Python信者はどうしてLispを目の敵にするんですか? 正直かなりキモい言動で、Pythonの普及に水を差していると思うのですが。 Python信者はRuby信者がPerlに対してそうであるように、 Lispに激しいコンプレックスを感じているヒステリックな集団なのですか?
〃∩ ∧_∧ ⊂⌒( ・ω・) はいはいわろすわろす `ヽ_っ⌒/⌒c ⌒ ⌒
LispってEmacs以外なんか使えるの?
はいはいわろすわろす
56 :
デフォルトの名無しさん :2005/11/01(火) 16:31:21
【問題】 わかったから初心者どもはまず”HelloWorld!”を画面に出すプログラムを作りやがれ 【言語】 python 【回答】 print '”HelloWorld!”'
【問題】 1から50までの和を計算して表示 【言語】 python 【回答】 sum=0 for i in range(51): sum+=i print sum
>>58 print sum(range(51))
>>59 print list(reversed(sorted((int(n.strip()) for n in file('numbers.txt').readlines() if n.strip()))))
>fp.close これだとcloseされないんじゃない?
# 物体が通る軌跡を求めろ from math import * from Tkinter import * def traj_generator(segments, ix, iy, iu, iv): x, y, u, v = (ix, iy, iu, iv) while 1: minm, mink, s, t, p, q = 1.0, 2**31, 0, 0, 0, 0 for ss, tt, pp, qq in segments: if not pp*(y-tt)==qq*(x-ss): m = (u*tt-v*ss+v*x-u*y)/(v*pp-u*qq) k = v and (tt+m*qq-y)/v or (ss+m*pp-x)/u if 0<m<=1 and 0<k<=mink: minm, mink, s, t, p, q = m, k, ss, tt, pp, qq VS, SS = u*p+v*q, p*p+q*q nx, ny, nu, nv = s+minm*p, t+minm*q, 2*(VS/SS)*p-u, 2*(VS/SS)*q-v x, y, u, v = nx, ny, nu, nv yield nx, ny, nu, nv translate = lambda x, y, u, v: (25+x, 125-y, u, 0-v) box_seg = [ (0, 0, 100, 0), (100, 0, 0, 100), (100, 100, -100, 0), (0, 100, 0, -100), (50, 0, 0, 50)] initial = (0, 0, 0.31, 1) traj = traj_generator(box_seg, *initial) cur = translate(*initial) root = Tk() canvas = Canvas(root, width=150, height=150); canvas.pack() canvas.create_rectangle(25, 25, 125, 125) canvas.create_line(75, 75, 75, 125) for i in range(10): px, py, pu, pv = cur nx, ny, nu, nv = translate(*traj.next()) canvas.create_line(px, py, nx, ny) cur = nx, ny, nu, nv root.mainloop()
#まずは字句解析と行こうか import re ptn_list = [(re.compile(p), t) for (p, t) in ((r'(if|else|while|const|var|procedure)(?!¥w)', 'keyword'), (r'[a-zA-Z]¥w*', 'name'), (r'¥d+(¥.¥d*)?', 'number'), (r'[=+¥-*/]{1,2}', 'operator'), (r'[{}();]', 'delimiter'), (r'[¥s]+', 'punctuation'))] def token_generator(s): cursor=0 while cursor<len(s): found=None for ptn, typ in ptn_list: found = ptn.match(s, cursor) if found: break if not found: raise ValueError, "Lexical Error at %d." %(cursor) token = s[found.start():found.end()] cursor = found.end() yield typ, token code = """ const repeat=2**10; var yousayso; procedure isayso { while (yousayso==1){ if repeat-- { repeat /= 7 + 1; } } """ tg = token_generator(code) for ttype, value in tg: print "token: %s, value: %s" %(ttype, [value])
# ジャンケンゲーム from random import seed, choice def hand_generator(): hands=list('@V%') # rock, scissors, paper respectively seed() while 1: yield choice(hands) msgdict = {0:'you win!', 1:'you lose...', 2:"that's even!"} ratings = {'@': 'V%@', 'V': '%@V', '%': '@V%'} for hand in hand_generator(): r = raw_input('enter your hand (@: rock, V: scissors, %:paper)').strip() print "My hand is %s," %(hand), if r and r in '@V%': print msgdict[ratings[r].index(hand)] else: print "Eh?"
# じゃぁ、1+3-5+7-9+11-13+・・・を50回 print 1+sum((0-(2*n+1)*((-1)**n) for n in range(1, 50)))
import sys for line in sys.stdin: line = line.replace("&", "&") line = line.replace("<", "<") line = line.replace(">", ">") print line.replace(" ", " ").strip()
# ソートするプログラム import itertools, re print sorted([list(v) for (k, v) in itertools.groupby(sorted(int(s) for s in re.findall('¥d+', raw_input("Enter several numbers: "))))], cmp=lambda x, y: cmp(len(x),len(y)), reverse=True) # または print sorted(int(s) for s in re.findall('¥d+', raw_input("Enter several numbers: ")))
71 :
デフォルトの名無しさん :2005/11/02(水) 14:38:42
このスレすげー!もっときぼん!!
# 三角形の判定 import re, sys def trigon_type(values): if (values[0]+values[1])<values[2]: # trigonometric inequality return -1 else: return len(set(values)) if __name__=="__main__": while 1: msg = "Provide five... no! Three numbers." vals = sorted([int(i) for i in re.findall('¥d+', raw_input(msg)) if i>0][:3]) if not len(vals)==3: print >>sys.stderr, "Provide (more than) five... no! Three items." else: print trigon_type(vals)
# 三目並べ import re, random newflags = lambda :[[0, 0, 0], [0, 0, 0], [0, 0, 0]] bingos = [[(i, j) for i in [0, 1, 2]] for j in [0, 1, 2]] + [[(j, i) for i in [0, 1, 2]] for j in [0, 1, 2]] + [[(0, 0), (1, 1), (2, 2)], [(2, 0), (1, 1), (0, 2)]] judge = lambda f: len([f[p][q]*f[r][s]*f[t][u] for ((p, q), (r, s), (t, u)) in bingos if f[p][q]*f[r][s]*f[t][u] in (1, 8)]) def think(flg, turn): if not flg[1][1]: return (1,1) # as theory hands = [(i, j) for i in range(3) for j in range(3) if flg[i][j]==0] if hands: return random.choice(hands) return (-1, -1) # no hands left def stage(flg): print '¥n'.join([''.join([{0:'-',1:'o',2:'x'}[flg[i][j]] for j in range(3)]) for i in range(3)]) if __name__=="__main__": print "Shall we play a game?" flags = newflags() winner = 0 while winner==0: stage(flags) pos = [int(i) for i in re.findall('[012]', raw_input("Your hand (ex. 1-2 for [1,2])"))[:2]] if len(pos)<2 or flags[pos[1]][pos[0]]>0: print "eh?"; continue flags[pos[1]][pos[0]] = 1 if judge(flags): winner=1; break # player win i, j = think(flags, 2) if (i, j)==(-1, -1): break # draw flags[i][j] = 2 if judge(flags): winner=2; break # computer win stage(flags) print ("That's draw. How about chess?", "You win!", "I win!")[winner]
# コードブレーカー import re, random def judge(c, a): return (len([True for i in range(3) if c[i]==a[i]]), len([True for d in list(c) if d in ''.join(set(list(a)))])) code = ''.join(str(random.choice(range(9))) for i in range(3)) while 1: ins = re.findall('¥d{3}', raw_input("enter code?: "))[:1] if not ins: print "eh?" continue hits, blows = judge(code, ins[0]) if hits==3: print "That's it!" break print "%d hits, %d blows." %(hits, blows)
まちがえた. import re, random def judge(c, a): return (len([True for i in range(3) if c[i]==a[i]]), len([True for d in list(c) if d in ''.join(set(list(a)))])) code = ''.join(str(random.choice(range(9))) for i in range(3)) while 1: ins = re.findall('¥d{3}', raw_input("enter code?: "))[:1] if not ins: print "eh?" continue hits, blows = judge(code, ins[0]) if hits==3: print "That's it!" break print "%d hits, %d blows." %(hits, blows)
# 回文判定 judge = lambda s, enc: unicode(s, enc)==''.join(reversed(list(unicode(s, enc))))
お前ら
>>56 に書いてあるルール読んだか?
>大まかなスレの流れ
>誰かが問題を出す
>→答えを考えて書き込む
>→それぞれ思い思いの視点で採点する(または便乗質問する)
>→話題が収束する頃に次の問題を出す
出題されても無いのに答えるな。出題されないなら自分で出題しろ
仕切り直して超簡単な問題行くぞ
【問題】
標準ライブラリを使ってsin 60°を求めろ
標準ライブラリって、import math でもいいのか?
使っていいなら import math math.sin(math.radians(60)) もしくはmath.sin(math.pi/3)
sum((-1)**(n-1)*(6.28*60/360.0)**(2*n-1)/reduce(int.__mul__, range(1, 2*n)) for n in range(1, 8))
π=3.14だと結構違うもんだな。
いや、nがたった8までってところで誤差が大杉。
適当なこと言うな。nは8でもべき展開の次数は倍の16。 3.14の代わりにmath.piを使えばsin(pi/3.0)との誤差は10^-12だ。
熱いということで、次は華氏と摂氏の温度変換なんてどうだ?
87 :
デフォルトの名無しさん :2005/11/02(水) 22:27:06
>>86 簡単そうなので勝手に難しくしてみる。
[お題]
摂氏を入力すると、華氏で出力。華氏を入力すると、摂氏で出力。
動作例: "41F"を入力すると"5C"、"5C"を入力すると"41F"と表示する。
※ちなみに、C:摂氏, F:華氏, F=9/5*C+32, C=5/9*(F-32) だってさ。
というコードを1行で。セミコロン使用禁止、import行は行数に含まない
>>> print [{'F': "%dC" %((int(deg)-32)*5/9.0), 'C': "%dF" %(9*int(deg)/5.0+32)}[unit] for deg, unit in __import__('re').findall(r'(¥d+)([FC])', raw_input("enter temparature:" ))][0] enter temparature:37C 98F
Rubyで書くとどうなるのかな?
90 :
87 :2005/11/02(水) 23:44:41
>>88 ナイス
出題者はこんなの考えてました。
print [lambda s:{"F":lambda f:str(5.0/9.0*(f-32.0))+"C",\
"C":lambda c:str(9.0/5.0*c+32.0)+"F"}[s[-1]](float(s[:-1]))]\
[0](raw_input(">"))
正直,ワンライナーはあまり初心者向けの勉強にならないしキモイ と,自分で書いてて思った
「普通に書けたら次はワンライナーでやってみよう」 ぐらいのゆるい気分で次行ってみよう。
>>91 ワンライナーと同価の「読めばそのまま解説になる」コードも一緒に書いてくれるといいな
と初心者は思った
Lisp, Ruby, Perl的コードはPython的には(・A・)イクナイと思うのは漏れだけですか?
普通にPythonicに書けばええやん
初心者の勉強になりそうな問題を投下 【問題】 テキストファイル”text.txt"の中にPythonと言う文字がいくつ含まれるか調べるプログラムを作って欲しいお
print str.count(file("test.txt").read(), "Python")
# 素直に書いてみた. """sin(60) をべき級数で求める """ pi = 3.1415926535897931 def factorial(k): """k の階乗を再帰で求め,float で返す. """ if k>0: # 再帰 return k*factorial(k-1) else: # 0! := 1 return 1.0 (つづく)
(つづき) def naive_sin(x, order=15): """べき級数和による正弦の計算 sin(x) のべき級数展開,sinx = x-(x^3/3!)+(x^5/5!)...(-1)^(n-1)(x^(2n-1)/(2n-1)!)+.. によって n=order までの近似を求める.ここで x はラジアンである. """ partial_sum = 0 for n in xrange(1, order+1): fn = factorial(2*n-1) partial_sum += (-1)**(n-1)*(x**(2*n-1)/(fn)) return partial_sum if __name__=="__main__": deg = 60.0 rad = 2*pi*deg/360.0 print naive_sin(rad) from math import sin # compare with math.sin() print sin(rad)
>>88 の書き下し
# 入力
instring = raw_input("enter temparature")
import re
# (数字), (F または C) からなるグループを instring から探し,
# [('92', 'F'), ('33', 'C'), ...] のようなリストを返す.
groups = re.findall(r'(¥d+)([FC])', instring)
# 上のリストの最初の要素 (実際には一要素しかない) を取り出し,
# 数字部分と単位部分に分ける
deg, unit = groups[0]
# deg が摂氏の場合の計算式
f2c_result = "%dC" % (int(deg)-32)*5/9.0
# deg が華氏の場合の計算式
c2f_result = "%dF" % (9*int(deg)/5.0)+32
# unit が 'F' なら華氏→摂氏, 'C' なら摂氏→華氏
result_dict = {'F': f2c_result, 'C': c2f_result}
result = result_dict[unit]
# 出力
print result
>>100 おおっ、ありがとうございます
初心者なので
>>86 ,87 を縛りなしで書いてみて
>>88 ,90 をなんとなく理解しました
ちなみに自分のはこんなのになりました
正規表現オブジェクトの使い方がいまいち判ってないです
import re
tempre = raw_input("Tempreture? >")
match = re.match(r"^(\d+)(f|c)", tempre, re.I)
if match:
answer = (match.group(2).upper() == "C") and \
"%.2fF" % (9*float(match.group(1))/5+32) or \
"%.2fC" % (5*(float(match.group(1))-32)/9)
else:
answer = "invalid input"
print answer
>>101 正規表現オブジェクトが分かってないなら、matchよりsearchを使った方がいい。
matchを使うと不幸になる。
>>102 むしろ「違いを知っておいた方がいい.知らないと不幸になる」と教えたらいいんじゃないの.
106 :
101 :2005/11/03(木) 19:37:43
>>105 ありがとうございます。「ありがちな問題」のところにわかりやすい説明がありました。
そもそもmatch()では"^"が不要であるし、search()で代用できそうなmatch()が何故あるのかという点も理解できました。
t = raw_input() if t == "python": print "UXGGyRWL3c"
>108 テストルーチンを書いたつもりと解釈してやるから出直してこい。
>>107 なんか長くなっちゃった。しかも旧鯖用のを書いちゃったみたい。
char2saltcharのところはもっとやり様がありそうな気がするんですが、
とりあえず貼っちゃいます。
import sys, crypt
def char2saltchar(char):
codenum = ord(char)
if (codenum <= 45) or (codenum >= 123) :
codenum = 46
elif (codenum >= 58) and (codenum <= 64):
codenum = codenum - 58 + 65
elif (codenum >= 91) and (codenum <= 96):
codenum = codenum - 91 + 97
return chr(codenum)
def getsalt(key):
return "".join([char2saltchar(char) for char in key[1:3]])
def gettrip(key):
return crypt.crypt(key, getsalt(key))[-10:]
if __name__ == '__main__':
key = sys.argv[1]
print gettrip(key)
>>107 のfcrypt使用。旧鯖用
from fcrypt import crypt
s="."*0x2e+"./0123456789ABCDEFGABCDEFGHIJKLMNOPQRSTUVWXYZabcdefabcdefghijklmnopqrstuvwxyz"+"."*132
k=raw_input("Key: ")+".h"
print crypt(k[:-2],s[ord(k[1])]+s[ord(k[2])])[-10:]
pythonのコードをエディタで作成したのはいいのですが どうやって実行したらいいんでしょうか? コードはprint "Hello World!"だけで、ファイル名はtest.pyです。 Python.exeを起動した後にそのexeと同じ場所にtest.pyを置いた上で >>>のプロンプトに test.pyでリターンもしくは python test.pyでリターンとしましたが File "<stdin>"<line 1 python test.py SyntaxError: invalid syntax と出ました。
cmd.exeから
>>113 コマンドプロンプトからだったんですね。起動できました。ありがとうございます。
あと少しUnicodeについてなんですが
>>> "あいう"
'あいう'
>>> u"あいう"
u'\x82\xa0\x82\xa2\x82\xa4'
>>> str(u"あいう")
'???¢??'
>>> str("あいう")
'あいう
>>> u"\x82\xa0"
u'\x82\xa0'
u←こいつはいったいなんの役割があるのでしょうか?
普通に"\x82\xa0"とすれば'あ'とでますが
uを付けるとコードになって出てきます。
自分では\x82などをuを付けることによって'あ'と表示させる働きがあると思ったのですが
違うみたいです。今いち働きが分かりません。
'
>>> s = "あいう" >>> s '\x82\xa0\x82\xa2\x82\xa4' >>> len(s) 6 >>> u = u"あいう" >>> u u'\u3042\u3044\u3046' >>> len(u) 3 u付けないと1文字=1バイトの ASCII 文字列 uつけたら1文字=2バイトの Unicode 文字列
普通に "\x82\xa0" とすれば,それはバイト列 82 a0 だから 'あ' と出る u"\x82\xa0" とすれば,それはバイト列 00 82 00 a0 で 'あ' と違う
>>115 ちょっと見てやって見たのですが結果がすこし違ってしまいました
>>> s = "あいう"
>>> s
'あいう'
>>> len(s)
6
>>> u = u"あいう"
>>> u
u'\x82\xa0\x82\xa2\x82\xa4'
>>> len(u)
6
当方WindowsXPのコマンドプロンプトなんですが環境の影響でしょうか?
>>116 ご紹介ありがとうございます。勉強してみます。
それでご紹介いただいたサイトの日本語環境でのPythonに
あるサンプルを実際にやってみたのですが、ここでも
>>> print len('あいうえお')
10
>>> print len(u'あいうえお')
5
の所が
>>> print len(u'あいうえお')
10
になってしまいます。
>> import sys >> sys.getdefaultencoding() 'ascii' になっていませんか?
>>121 JapaneseCodecsは関係ないよ。
>>121 2.3 では、コンソール上での u"..." は常に ascii でユニコード化されるっぽい
utf-8 ではなく mbcs にして unicode("...") とすれば良い
2.4 をインストールしたらどうか 2.3 の頃は CJKPython のほうが いろいろお手軽に環境できてよかった
初心者用の問題出して欲しいお。
問題1: 0≦X≦100, 0≦Y≦100 となるX, Y をランダムに選んで、(X, Y)という座標を20個作れ。 問題2: 問題1で作った座標を2次元平面の点として、すべての点を内部か境界にもつ円のうち、 最小の半径を持つものの中心座標と半径を求めるプログラムを作れ。
>>128 それ75で解かれてたり。
条件に「クラスを使って」というのを追加してみるのはどうだろ?
>>127 やってみた。
リスト内包表記が便利なのでつかってみたけど読みづらくなった。
---- kokokara ----
# -*- coding: cp932 -*-
import random
import math
#問題1
points = [(random.randint(0,100), random.randint(0,100)) for n in range(20)]
#問題2
#中心座標 = すべての点の重心 をもとめる
center = (sum((t[0] for t in hh))/len(points), sum((t[1] for t in hh))/len(points))
#半径 = centerとの距離が最長のもの をもとめる
radius = math.sqrt(max((pow(x - center[0], 2) + pow(y - center[1], 2) for x,y in points)))
---- kokomade ----
>>130 > #問題2
> #中心座標 = すべての点の重心 をもとめる
そうじゃない。
仮に、19個の点がすべて原点(0,0)で、1個だけ(100,0)だったら
中心(50,0)、半径50の円が答えになるけど、重心で考えたらそうはならないだろ?
>>127 の問題2は仮の中心を設定して、仮の中心と最も遠い点の距離が最小になるように
仮の中心を移動させれば良いのかな?
主成分分析で主軸を求め、それを直径とする仮の球を作り、 全ての点が仮の球に内包されているか調べ、 外にある場合は点が内包されるように球の拡大を繰り返す。 みたいなのが"そこそこ"の解法じゃなかったっけ。 最適解とかあるのそれ?
# -*- coding: cp932 -*- import random import re N = 3 def uniq(L): R = [] for i in L: if i not in R: R.append(i) return R def make_code(): while 1: s = str(random.randint(0, 10**N)) if len(uniq(s)) == N: return s def make_trial(k): while 1: print "%s回目のトライ> " % k, s = raw_input() s = re.sub("[^0-9]", "", s) if len(s) != N: print "%d桁の数字を入れてね" % N else: return s
def hitblow(A, B): hit = sum([1 for (a,b) in zip(A,B) if a == b]) blow = sum([1 for (a,b) in zip(A,B) if a != b and a in B]) return (hit, blow) def main(): k = 1 ; code = make_code() print "答えは%sです" % code print "答えは%s桁の数です(同じ数字は使ってません)" % N while 1: trial = make_trial(k) (hit, blow) = hitblow(code, trial) if hit == N: print "正解!" ; return else: print "%sヒット %sブロー" % (hit, blow) k += 1 main()
問題:
>>127 の問題1を横目に見つつ、円周率を5桁まで求めよ。
>>136 from random import random
TRYNUM = 10000000
points = ((random(), random()) for n in range(TRYNUM))
circleareacounter = 0
for point in points:
if point[0] ** 2 + point[1] ** 2 <= 1:
circleareacounter += 1
pi = circleareacounter * 4.0 / TRYNUM
print pi
>>123 そうでしたか。あれからいろいろやってみてファイルからならu'あ'のlenが1と結果が
出たのですが、コンソールからだと途中でエラーが出るという現象にあってまた悩んでいました。
utf-8はmbcsにしました。unicode("...")というのはどの部分のことなのかちょっとよく
分からないですが。
>>124 すみません。昨日から始めたのでpythoneについて0から教えてくださいというスレが
最適だと思い書き込んでしまいました。以後はご紹介いただいたスレでがんばりたいと
思います。
>>125 2.4をインストールしてみました。
u'あ'の文字列の長さが2ではなくきちんと1になりました。
>>138 前に入ってたバージョンはいくつでした?
>>139 前のバージョンは2.3だったと思います。
こちらのpython234jp-20040927.exeでインストールさせていただきました。
>>137 スバラシイ!
出題者はx**2を誤ってx^2と書いていたことは秘密。
>>134 これはちょっと汚ないなあ。
とりあえず、数字を重複させたくないなら、
strnumseq = map(str,range(10))
s = "".join((strnumseq.pop(random.randrange(10-x)) for x in range(N)))
で一発。
>>142 ''.join(str(r) for r in random.sample(range(10), 10))
>>143 > r=(random()**2+random()**2)**0.5
> if r<1:
わざわざ "**0.5" してる意味が無いです。 お
r=(random()**2+random()**2)
で十分。 お
スペースが潰れてると見づらいから、 書き込むときはお勉強スレで出てたこれを使おうよ import sys src = file(sys.argv[0]) dst = file(sys.argv[0]+".txt", "w") for line in src: line = line.replace("&", "&") line = line.replace("<", "<") line = line.replace(">", ">") dst.write(line.replace(" ", " ").strip()+"\n") src.close() dst.close()
147 :
143 :2005/11/06(日) 13:03:22
>>145 確かにルートは蛇足だったお、指摘してくれて嬉しいお
ちょと実験するお
半角スペース
2つの半角スペース
全角スペース
2つの全角スペース
それと、文末の 「お」 が目障りだから消してほすぃ
vipperなんでしょ
次の問題カモーン
文末の目障りな「お」を消す・または付けるプログラム(ぉ
152 :
143 :2005/11/06(日) 16:27:15
>>148 気にするな
>>149 vipperでは無い
インデントは全角スペースで入れないと消えるのか
>>146 sys.argv[0] ではスクリプト自身を変換してしまうのでは。
でスペースのインデントもいれれるんだ。
初めて知った。ありがとお
問題:自分自身のソースコードと同じ文を出力するプログラム
>>153 投稿したいソースファイルに
>>146 を追加して実行すればいいのさ。
win環境の人ならこっちのが便利だと思う。
ということで
>>154 の応用問題。
「投稿したいコード」と「変換コード」の両方が記述されている「ソースファイル」から
「変換コード」を除去し「投稿用のテキスト」だけの「ファイル」を生成するよう
>>146 の「変換コード」に追加・修正せよ。
>>155 コードじゃないけど、
>>146 をcontibution.pyという名前でセーブし、
投稿したいコードの先頭に、import contributionを追加。
def orthocenter(p1, p2, p3): """三角形 (p1, p2, p3) の垂心を求める""" (x1, y1), (x2, y2), (x3, y3) = p1, p2, p3 a1, a2, b1, b2 = 2*(x2-x1), 2*(x3-x1), 2*(y2-y1), 2*(y3-y1) c1, c2 = x1*x1-x2*x2+y1*y1-y2*y2, x1*x1-x3*x3+y1*y1-y3*y3 if (a1*b2-a2*b1)==0: # 頂点が直線上に並ぶ場合 return (max((x1, x2, x3))+min((x1, x2, x3)))/2, (max((y1, y2, y3))+min((y1, y2, y3)))/2 else: return (b1*c2-b2*c1)/(a1*b2-a2*b1), (c1*a2-c2*a1)/(a1*b2-a2*b1) import math def circumcircle_generator(coords): """与えられた頂点を持つ全ての三角形から,全ての点を内包する外接円を返す""" for p, q, r in [(coords[i], coords[j], coords[k]) for i in range(len(coords)) for j in range(i+1, len(coords)) for k in range(j+1, len(coords))]: (cx, cy), (px, py) = orthocenter(p, q, r), p RR = (cx-px)*(cx-px)+(cy-py)*(cy-py) for i, (vx, vy) in enumerate(coords): rr = (cx-vx)*(cx-vx)+(cy-vy)*(cy-vy) if rr>RR: break # 円の外に点が見つかった if i==len(coords)-1: # 全ての点が円内にある yield (math.sqrt(RR), cx, cy) import random, Tkinter # 問題 1 z = zip(*((float(random.randrange(101)) for i in range(20)) for j in range(2))) # 問題 2 circles = sorted(circumcircle_generator(z), key=lambda k: k[0]) print "Minimum circle: radius=%f, coord=(%f, %f)" %(circles[0])
表示用も書いたけど,行数制限で切った.制限うざいなぁ. (上の続き) canvas = Tkinter.Canvas(Tkinter.Tk(), width=120, height=120); canvas.pack() for px, py in z: canvas.create_oval(px+9, py+9, px+10, py+10, fill="black") for i, (r, cx, cy) in enumerate(circles): canvas.create_oval(cx-r+10, cy-r+10, cx+r+10, cy+r+10, outline=(i and "black" or "red")) canvas._root().mainloop()
みづらいなぁ
行数制限内におさめようとすると,変に詰めて書くはめになるんだよな.
分けて書けば良いじゃん。
「Tkinterでへぇボタンを作って下さい」
>>154 def greeting():
print "Hello World!"
def printSelf():
print open(__file__, "r").read()
if __name__ == "__main__":
printSelf()
l='l=%s;print l%%`l`';print l%`l` こんなのがあったよね.
>>157 それじゃ駄目だよ。最小の円が三点を通るとは限らない。
例えば4つの点((10.0,50.0), (30.0,50.0), (20.0,51.0), (20.0,49.0))を含む
最小の円は中心(20.0,50.0)、半径10だけど、そのやり方では求められない。
for p, q, r in ((coords[i], coords[j], coords[k]) for i in range(len(coords)) for j in range(i, len(coords)) for k in range(j, len(coords))) でどう?
167 :
165 :2005/11/07(月) 17:07:14
なるほど、上手いな。それなら正しいと思う。 #あと細かい事で悪いけど最初の関数で求めてるのは垂心じゃなく外心だよね。
すっかり冷え込んできましたね。
耐えられずにコタツ出したらぶっ壊れてた(´;ω;`)
Pythonはコタツも修理できないから困る
だって寒い時は冬眠するんだろ?
>>172 先生、Gmail持ってないのでください
>>172 垢持ってないと面白くもなんともないんですが。
流れをぶった切る質問で恐縮ですが,Windows で使える Python の違いって なんなのでしょうか? ちょっと調べたところ, 1. cygwin の python 2. ActivePython 3. PyJUG にある日本語環境 Python がありました.1 と 2 は 2.4,3 は 2.3 ベースなので新しい方がいいかなと思ったの ですが,日本語が使えないのは嫌だなぁとも思います.この違いを猫でもわかるよう に噛み砕いて説明してくださると大変ありがたいです. あと,プログラムも日本語を扱うものがあるとうれしいかも. ということで,自分じゃできない問題を出します. 【出題】 日本語(文字コードは任意)用 wc を作りなさい.必要なモジュールの インストール方法も記述のこと.
宿題なら自分でやってくれ クソマルチが…
>>175 はちょっとアレだけど、気になったので適当に作ってみた。CP932用
import sys,re,codecs
prog_u_wd=re.compile(u"\s+")
src=codecs.getreader("CP932")(file(sys.argv[1])).read()
chars=len(src)
lines=src.count("\n")
words=len(prog_u_wd.findall(src))
print "c:%d, l:%d, w:%d" %(chars,lines,words)
マルチに答えるやつも同罪 腹を斬って死ね 地獄の業火で焼かれろ
>>144 str.join("", random.sample("0123456789", N))
175 の叩かれっぷりを見ると聞くのが恐ろしいけど、 よかったら日本語関連の問題教えて。 cygwin の python 2.4.1 で次を実行すると >>> a=["あ","い","う"] >>> print a[0] あ >>> print a ['\x82\xa0', '\x82\xa2', '\x82\xa4'] となります。この print a の結果を ["あ","い","う"] と 表示させることってできないんでしょうか?
宿題っぽい丸投げで何も考えてなさそうだから普通にたしなめられただけだよ。
>>180 print (','.join(['"%s"' % x for x in a])).join(('[',']'))
>>180 普通にはできないっぽい。どうしても必要なら、
>>181 みたいに
'['+a[0]+','+...+']'
という文字列を返す関数を書くか、PyJUG にある日本語Python
を使うべし。(こっちではちゃんと表示されました)
>>175 wc はいいとして、始めに入れる Python 環境をどうするかって
結構重要でいい質問だと思うけど。(何しろ0から教えてなんだし)
一番の違いは python が何でコンパイルされているかでしょう。
cygwin版 ⇒ 当然 gcc
日本語Python、ActivePython ⇒ MSC
なので、新しいモジュールインストール時に MSC のコンパイラが
ないと下の2つは辛いかも。ただし、下の二つには Windows 用の
拡張モジュールが使えるという利点があります。Python から Excel を
立ち上げるとか普通にできておもしろいです。 ActivePython は始めから
この機能が使えます。(当たり前か) 日本語Python は後から追加が必要
だけど MSC は不要です。ただ、PyJUG に置いてあるのは少し古いので
ちゃんと最新版を入れた方がいいでしょう。
ということで。。。
とにかく日本語をトラブルなく使いたい!⇒日本語Python
2.4 を使いたい。MSC は持ってない。⇒cygwin Python
Windows 機能を使いたい。⇒日本語Python、 ActivePython
となると思います。(ちなみに私は普段 ActivePython 使ってます)
あと、Mark Hammond のホームページをみると Python for .NET
というのがありますね。これは使ったことがないので、もし使ったこ
とのある人がいたらレポートよろ。
185 :
184 :2005/11/11(金) 17:31:01
# -*- coding: cp932 -*- import sys, types, __builtin__ def pstr(x): if isinstance(x, types.StringType): return '"%s"' % x elif isinstance(x, types.UnicodeType): return 'u"%s"' % x.encode("cp932") else: return `x` def displayhook(o): __builtin__._ = None if isinstance(o, types.ListType): print "[%s]" % str.join(", ", [pstr(i) for i in o]) else: print `o` __builtin__._ = o sys.displayhook = displayhook L = [u"日本語", "あ", [u"い", "う"], 12345] 上をロードして,L と打ってリスト L を表示させると(print L じゃダメ) 一部日本語で出てくる
リスト A = [a_1, ..., a_k],B = [b_1, ..., b_l], C = ... について [(a_1,b_1,c_1, ...), (a_2,b_1,c_1,...), ..., (a_n,b_1,c_1,...), (a_1,b_2,c_1,...), ..., (a_2,b_2,c_1,...), ..., (a_k,b_l,c_m,...)] のように,それぞれから1つづつ取ってきたリストを簡単に生成する方法を教えてください
>>187 zip(A,B,C)
と
map(None,A,B,C)
を試してみそ
189 :
187 :2005/11/12(土) 14:13:28
>>188 それだと添え字が揃ってしまいませんか?
A = [1,2,3], B = [4,5] から [(1,4), (2,4), (3,4), (1,5), (2,5), (3,5)] を作りたいのですが。
190 :
187 :2005/11/12(土) 14:18:16
すんません解決しました。 [(a,b,c,...) for a in A for b in B c in C ... ] でいいんですね。 a in A と 次の for b in B そのまま続けて書くのが思いつかなかったのですが、やったら出来ました。お騒がせしました。
>>189 ゴメン、よく読んでなかった。
190のやり方でもいいと思うけど、少し使いやすい関数にしてみた。
def combi(A,B):
if isinstance(A[0], tuple):
return [a + (b,) for a in A for b in B]
else:
return [(a , b) for a in A for b in B]
def combination(*lists):
return reduce(combi,lists)
A=[1,2,3]
B=[4,5]
C=[6,7]
print combination(A,B,C)
>>191 のような書き方を避けられるのが190の内包表記の利点の一つだと思うんだけど.
193 :
191 :2005/11/12(土) 17:53:39
>>192 >>187 の要望を見て、読み込むリストの個数が不定だと思ったからああ書いたの。
>>190 の書き方だとリストの個数(A,B,Cの3つとか)が決まってないと駄目でしょ?
def combination(lists)と書き換えとけば、例えば、なんかのデータを読んで
lists=[[1,2],[3,4],[5,6,7],[8,9,10],,,(不定長)]という配列を得ても、
combination(lists)でいける。
194 :
デフォルトの名無しさん :2005/11/14(月) 18:22:01
問題: リスト [['Python','import'],['Python','sys'],['Python','re'],['Perl','use'],['Perl','require']] から 辞書 {'Python': ['import', 'sys', 're'], 'Perl': ['use', 'require']} を 出来るだけ短いスクリプトで作ってみれ。
l = [['Python','import'],['Python','sys'],['Python','re'],['Perl','use'],['Perl','require']] d = {} for lng,lib in l: if lng not in d: d[lng] = [] d[lng].append(lib) print d 何も考えずにやったらこんな感じになた
196 :
194 :2005/11/14(月) 19:13:48
195さんのをヒントに出来ました for lng,lib in l: d.setdefault(lng, []).append(lib) キーが無い時の処理を d[lng] = [lib] としてたので、setdefaultで上手くいかなかったんです どう見ても完璧です 本当にありがとうございました
質問を問題にすり替えるのってなんかズルくないか?
198 :
194 :2005/11/15(火) 02:29:13
まあ、勉強スレで質問しようかとも迷ったんだが Pythonのプログラムテクニックに関わる実践的な問題になると思ってこっちに書いた スレの流れ的には、こっちが合ってると思った 気分悪くしたらごめんなさい
ちょっと肩透かしをくらうんじゃないかな みんなで違う方法で解く、なんていう楽しみももう、あまりないし。 ともあれ、乙です。
そこでワンライナー厨の登場ですよ l = [['Python','import'],['Python','sys'],['Python','re'],['Perl','use'],['Perl','require']] dict((i[0], [j[1] for j in i[1]]) for i in __import__('itertools').groupby(sorted(l, key=lambda x: x[0]), lambda x: x[0]))
なんとなく7行オセロ思い出した
pypyencode
きぼん
上級者向けのスレになったなぁ ワンライナーってpythonの意味が無いような
おんなじ問題解いても初心者と上級者で答え方が違ってくるんだから仕方がないよね。 まあ、あえて普通な解き方を書き込む人が少ないのかも。 というわけで、どノーマルな解き方も希望します。
「ワンライナーは読みにくいからやめて」 「lambdaは読みにくいからやめて」 「リスト内包やジェネレータは読みにくいからやめて」 Pythonなら誰が書いても読みやすいコードになるってのは幻想だなw
Pythonなら誰が書いても(上級者が)読みやすいコードになる
>207 が正解
ワンライナーは明らかにネタだろ 大仁田とかハッスルみたいなもんだ。
ワンライナー==上級者って発想が痛すぎ。
モンダイマダー?
>>212 import shelve
d=shelve.open("tel.txt")
while 1:
print"Search(0) Add(1) Delete(2) End(3)"
f=input()
if f == 0:
print "Name?"
name = raw_input()
flag=d.has_key(name)
if flag == 1:
print name,d[name]
else:
print "Not found"
tel=d[name]
elif f==1:
print "Name?"
name=raw_input()
print "Tel?"
tel=raw_input()
d[name] = tel
elif f == 2:
print "Name?"
name = raw_input()
del d[name]
elif f == 3:
break
d.close()
raw_input は raw_input("Name?") のように使えますよ
>>213 なんかいろいろインデントが変だよ。
将来の為にもユーザーからの入力はsys.stdin.readline()を使っといたほうがいいかも。
あと、それわざわざinput()使って(evalして)る意味がないんで、
f = sys.stdin.readline().strip()
にしてf == '0'とか評価するほうがいいと思う。
flagのとこは
if d.has_key(name) is True:
がPython的。
そんなことより shelved object のファイル拡張子が .txt なのが気になる
>>215 >
>>213 > なんかいろいろインデントが変だよ。
漏れは普通だと思うんだけど。 >213 は インデント=4スペース でやってるように見える。
>>217 どういうこと?
if flag == 1:の次の行のインデント、
また、それに対応してるハズのelse:の場所とか
elif f == 3:
の行とか、指摘するのもアレだが、そもそもこれ構文エラー起こすでしょ。
ところで、
tel=d[name]
この行も謎だなあ。
219 :
217 :2005/11/19(土) 23:31:23
>>218 本当だ。よくみてなかった。
早とちりでした、ごめんなさい。確かにすごく変なコードだ。
220 :
212 :2005/11/20(日) 00:05:28
>>213 乙
俺はこんなふうにしてみた。
# coding: sjis
# コマンド a:追加,d:削除,s:検索,l:リスト,Ctrl+C:終了
import sys,shelve
cmds={
"a":lambda tel:"".join([tel.update({raw_input("name>"):raw_input("tel>")}) or "OK."]),
"d":lambda tel:"del %s"%tel.pop(raw_input("name>")),
"s":lambda tel:"tel: %s"%tel[raw_input("name>")],
"l":lambda tel:"".join(map(lambda x:"%s:%s\n"%x,sorted(tel.items()))),
}
telephone=shelve.open("telephone.dat")
while 1:
try: print cmds[raw_input("cmd>")](telephone)
except KeyError: print "Error."
except KeyboardInterrupt: break
telephone.close()
221 :
213 :2005/11/20(日) 00:09:49
>>213 の修正版
import shelve
d=shelve.open("tel")
while 1:
f=raw_input("Search(0) Add(1) Delete(2) End(3)")
if f == '0':
name=raw_input("Name?")
if d.has_key(name) == True:
print name,d[name]
else:
print "Not found"
elif f=='1':
name=raw_input("Name?")
tel=raw_input("Tel?")
d[name] = tel
elif f == '2':
name = raw_input("Name?")
del d[name]
elif f == '3':
break
dictをpickleするのとshelveを用いるのって メリットデメリットがあったりするの?
224 :
デフォルトの名無しさん :2005/11/22(火) 08:30:09
Hello Worldしか書けないオレでも参加できる問題出してくれ
>>224 あなたの名前は?
と入力待ちにして、例えばTarouと入力したら
Hello, Tarou!! I love you 4 ever!
と出力されるようにする課題
問題って・・・ 解きたい問題がないならなぜ言語覚える必要があるのか。
227 :
デフォルトの名無しさん :2005/11/22(火) 11:25:43
>>194 ls = [['Python', 'import'], ['Python', 'sys'], ['Python', 're'], ['Perl', 'use'], ['Perl', 'require']]
print dict([[x[0],[y[1] for y in ls if y[0] == x[0]]] for x in ls])
どんな方法でも良いなら、これも解だと思う。dictかけてる内包表記のリストには自分で書いててちょっとヒイタ。
setsを使ったらもうちょっとマシになるのかな?
228 :
227 :2005/11/22(火) 11:47:24
最適な解が出てるじゃん。>自分
>>223 解説ありがとー^-^
参考にさせて頂きました。
i = input() print "Hello," i "!! I love you 4ever!!" あれ、なんで出来ないんだ!!教えて!
>>231 >>> print "Hello," i , "!! I love you 4ever!!"
変数 i の後ろにカンマがないぞ。
これ、ようは列挙だからな。 そのへんに気づき始めると理解速度が上がる。
>>232 いや、iの前にもないだろ。
とりあえず、「,」で区切るのと「+」で連結する
方法を覚えておけばいいんでないの。
printが関数だったらこういう間違いは減りそうなんだが
i という変数名もどうかと思ってみる
それはyouにしておけということか。
import random import string char = string.digits + string.ascii_uppercase pas = "" for i in xrange(8): pas += random.choice(char) print pas パスワード生成
ジェネレータ化やリスト内包表記で書き直したい気持ちに駆られる…。 でもやめておこうとおもう。
すくなくとも関数にしろよ とは思う
>>238 ,239
むしろ遠慮せずに書いてほしい。
def generatePassword(): from random import choice from string import digits, ascii_uppercase return "".join((choice(digits + ascii_uppercase) for i in xrange(8))) if __name__ == "__main__": print generatePassword()
べつに、どこにも問題は無いと思うが。
>>237 が発作的にコードをUpして、その他が反応というところだろう。
コレをパスワード生成って呼ぶのはどうなのよ、と言いたくなる・・・。 でもやめておこうとおもう。
>>245 のリンク先は、使用メモリ+コードの短さで競ってるようだから
pythonでの比較はアレだけど、一応作ってみた。
import sys,re
def check_val(tree,ans,val=0):
if len(tree)!=3:
return False
elif len(tree[1])+len(tree[2])==0:
return ans==val+tree[0]
else:
return check_val(tree[1],ans,val+tree[0]) or check_val(tree[2],ans,val+tree[0])
in_str=sys.stdin.read()
in_val,in_tree=re.search("\s*(\d+)\s+\((.*)\)",in_str.replace("\n","")).groups()
in_tree=eval( in_tree.replace("(",",(") )
print {True:"yes",False:"no"}[check_val(in_tree,int(in_val))]
何語? orz Hello Pythonからで直してきます
>>246 みたいに凄くないけど一応できた。入力の条件無視してるけど…。
def Henkan(chr):
for (x, y) in [(" ", ""), ("()()", "-+-"), ("()", ""),(")", "-*-")]:
chr = chr.replace(x,y)
list = chr.split("(")
list1 = []
for i in list:
list1.extend(i.split("-"))
list2 = []
for i in list1:
if i in (""):
pass
elif i in ("*", "+"):
list2.append(i)
else:
list2.append(int(i))
return list2
続き def Hantei(list): answer = list[0] list.pop(0) list1 = [] list2 = [] for i in list: if type(i) == int: list1.append(i) elif i in ("+"): list2.append(sum(list1)) elif i in ("*"): list1.pop() if answer in list2: return "yes" else: return "no" chr = raw_input() list = Henkan(chr) print Hantei(list)
関係ないけど、インデントが中途半端に残ってるのが印象深い
>>251 ちと富豪プログラミングっぽいが、こんなのはいかが?
def hexDump(fs, start, count):
fs.seek(start)
offset = 0
data = fs.read(count)
while True:
hex = " ".join(["%02x" % ord(c) for c in data[:16]])
if hex == "":
break
asc = "".join([['.', c][c.isalnum()] for c in data[:16]])
print "%08x : %-23s - %-23s : %s" % (start + offset, hex[:23], hex[24:], asc)
offset += 16
data = data[16:]
def main():
f = open("hexdump.py", "r")
hexDump(f, 0, 100)
if __name__ == "__main__":
main()
s = "22 (5 (4 (11 (7 () ()) (2 () ()) ) ()) (8 (13 () ()) (4 () (1 () ()) ) ) )" ss = eval(s.replace("(", ",(")) def sum_generator(node, partial_sum): for prop in node[1:]: if len(prop)==0: yield partial_sum+node[0] else: for trace_sum in sum_generator(prop, partial_sum+node[0]): yield trace_sum print {True:"YES", False:"NO"}[ss[0] in sum_generator(ss[1], 0)]
from string import ascii_letters as asc def hd(f, start, length, n_cols=16): f.seek(start, 0) data = f.read(length) cursor=0 while True: part = data[cursor:cursor+n_cols] if len(part)==0: break posstr = '%08x' %(start+cursor) hexstr = ''.join("%02x " % ord(c) for c in part).ljust(3*n_cols) clabel = ''.join((c in asc and c or '.') for c in part).ljust(n_cols) print ' : '.join((posstr, hexstr, clabel)) cursor+=n_cols
ascii_letters じゃなくて printable だ.
>>253 ちょっと違う。子ノードが1本しかないノードも葉として判断してしまってます。
この式でいうと、2番目の4(子ノードは1のみ)がそれに該当。
あ、最初の4も葉では無いです。子ノードは11のみ
258 :
デフォルトの名無しさん :2005/11/28(月) 23:15:32
プログラミング初心者がpythonを学ぼうと思ってるんですが 書籍じゃないと勉強し辛いですかね webページって少ないですよね
お勉強wikiに参考サイトがいっぱい載ってるじゃないか。 いまや日本語でかかれたPython本の方が少ない。
260 :
デフォルトの名無しさん :2005/11/29(火) 00:05:22
>>259 本当だ いっぱい載ってますね
「初めてのPython」5000円出すのはちょっと辛いんです
サイトだけで勉強してる人も多い?
サイト見ながら遊んでみて、自分に馴染みそうだなと思ったら、恥π買えば良いんでないかい?
色んなご意見ありがとうございます サイトで様子見して給料入ってから書籍購入検討します 呼ばれたのでお勉強スレにも行ってみます
プログラミングの勉強をするなら本に金はかかるもんだ。 いやなら会社の金で買うとか、図書館にリク出すとか。
言語仕様やライブラリのドキュメントだけなら、けっこうネットで読める。 でもその先の「アルゴリズムとデータ構造」や「プログラミング技術」みたいな レベルに入ると、本が必要だよね。
問題は「はじぱい」に値段相当の価値があるかどうか。 とりあえず「はじめて」というタイトルで、あの厚さと値段は、 出来れば買わずに済ませたい、むしろPythonを使うのは止めようと 思わせるに十分。
厚さは問題ないけど、日本語だとアレしか選択肢がないとか。 値段が高すぎるってのは同意。
値段はともかく分厚すぎるという点には同意。 スキャナ買って取り込もうかと真剣に検討中。
ちょうど昨日、本屋行って中身みてきたんだけど、Pythonをそこそこ使えるように なった今では買う気が余りおきないんだよなー。
272 :
デフォルトの名無しさん :2005/12/02(金) 00:35:05
たのむ!俺にpythonを教えてくれ!
ここのオープンソースのプログラムをコンパイルしたいだけなんだけど、どーしてもうまくいかない!
sepy ActionScript Editor 1.5.1
http://sourceforge.net/project/showfiles.php?group_id=90749&release_id=192540 ソースをさらっと読みしたり、一日いじくり回してわかったんだけど、
py2exe で使用している以下の二つのパッケージが見あたらなくて、コンパイルは正常終了するんだけど実行できないようなのね。
'win32com.gen_py'
'_xmlplus'
必要と思われるパッケージはインストールしました(下記参照)
誰かわからないかなぁ
・Python 2.4.2
・wxPython 2.6.1 (←2.6.2でコンパイル推奨なのだが見あたらない・・)
・PyRXP 1.07
・py2exe 0.6.3
そもそも、gen_pyってなんのパッケージなのよ?
>>272 > 'win32com.gen_py'
> ---- snip ----
> そもそも、gen_pyってなんのパッケージなのよ?
win32comが入ってないきがする…
274 :
デフォルトの名無しさん :2005/12/02(金) 00:54:45
>>273 あ、ごめんです。抜けてた。
・pyWin32 (win32com ) のビルド205を入れました。
gen_py ってフォルダはできるんだけど、中身は空っぽですた。
>>274 > gen_py ってフォルダはできるんだけど、中身は空っぽですた。
うちのgen_pyフォルダには __init__.py がありました。こんな風になってた。
# pywin32-204.win32-py2.4.exe でインストールしました。
----↓ win32com\gen_py\__init__.py ----
# Generated file - this directory may be deleted to reset the COM cache...
import win32com
if __path__[:-1] != win32com.__gen_path__: __path__.append(win32com.__gen_path__)
----↑----
COMコンポーネントまわりが関係してるっぽいです。
gen_pyフォルダには、makepy.pyで生成したCOMコンポーネントのキャッシュが置かれる
らしいので、もともと空っぽ(__init__.py だけ)でもかまわないみたい。
ここらへんも参考になるかもしれない。
http://starship.python.net/crew/theller/moin.cgi/IncludingTypelibs
>>272 > py2exe で使用している以下の二つのパッケージが見あたらなくて、コンパイルは正常終了するんだけど実行できないようなのね。
> 'win32com.gen_py'
> '_xmlplus'
> 必要と思われるパッケージはインストールしました(下記参照)
> 誰かわからないかなぁ
> ・Python 2.4.2
> ・wxPython 2.6.1 (←2.6.2でコンパイル推奨なのだが見あたらない・・)
> ・PyRXP 1.07
> ・py2exe 0.6.3
'_xmlplus' モジュールを使うなら、PyXML が必要なんじゃないの?
PyRXPもXML系のライブラリだけど、今回の目的には合わないと思う。
277 :
272 :2005/12/02(金) 02:19:41
ちなみに、問題のpyファイルの部分は下記の通りなんです。
setpu.py 内
import py2exe
setup(
〜〜〜
options = {
"py2exe": {
"packages": ['encodings', 'dbhash', 'win32com.gen_py', '_xmlplus'],
"dist_dir": packageroot,
}
},
〜〜〜
ここ、'win32com.gen_py', '_xmlplus'を抜くと正常にコンパイルが走るんで、原因はここで間違いなかったです。
さすが、プロ板。一人で悩んでたんで、多少なりとも光が見えた感じです。
>>275 'win32com.gen_py'
って事は、何かのcomコンポーネントをキャッシュさせるということなのでしょうか?
>>276 なるほど。ネットで情報収集してた際にはpyXMLもでてきていましたが、SEPYのオープンソース上のコメントを信じてpyRxpで粘っていました。試してみます。
ところで、PyRXPのインストールって、pydファイルをインストール先のDllsフォルダに設置するだけでいいんだろうか?それが間違ってる?
> ここ、'win32com.gen_py', '_xmlplus'を抜くと正常にコンパイルが走るんで、原因はここで間違いなかったです。 なんだそりゃ…。 py2exeで固める前に、スクリプトがちゃんと動くかどうか確認した方がいいよ。 # コンパイルコンパイル言ってるから、なんか不安なんだが、ひょっとして # コンパイラとインタプリタの区別もついてないんじゃなかろーか。
279 :
272 :2005/12/02(金) 23:39:38
すいません、解決しました。
うまくコンパイルできましたです。
目的だったSEPYエディタのSjisコードの使用も実装できましたです。
'_xmlplus'は PyXML インストールで解決、
'win32com.gen_py' は 'win32com' に書き換えて全部インポートしちゃう事で解決しました。
>>278 ぶっちゃけ、区別ついてないですww
pythonと出会って今日で二日目でした。うは。
pycってコンパイル生成物だとばかり思ってた。。違うのか?
んじゃ、pyファイルってのは全部スクリプトな訳なのね。
.pyファイルが何なのかわからないのに、どうしてSJIS対応させるパッチとかができるんだろう…。
将来的にpy2exe的なやり方ではなくて、C言語のように機械語へコンパイル出来るようなコンパイラって登場する予定はないんですか? Ironpythonみたいな感じになっちゃうんですかね?
えーと、板違いかもしれませんが、無料レンタルスペース(広告なし)で
Python おkなところがあるみたいです。
ttp://www.x7net.com/ 何がどこまで出来るのかよく分かってないんですが、とりあえず
申し込んでみたので、審査通ったら勉強する予定。
>>284 これって個人運営だよね。
サーバ1台で稼働してるっぽいけど大丈夫かな。
勉強するなら自分のPCでやったほうがいいよ。 CGIなんか特にそう。 何がInternalErrorなのかさっぱりです。
287 :
284 :2005/12/04(日) 14:59:45
>>285 広告無しで、どう成り立ってるのかも不思議。
飛んで困るようなモノは置かないようにします。
>>286 ありがとう。
まずは自分の PC でやってみます。
288 :
デフォルトの名無しさん :2005/12/05(月) 08:19:22
.py以外をimportする方法教えてクレ
cgi = { } execfile( "Lib\cgi.py" , hoge )
ミスった cgi = { } execfile( "Lib\cgi.py" , cgi )
リスト内包は嫌いだと散々言っていたのに最近使いまくってる。 某MLに関連して、二次元配列はこんな感じで答えに最短になるのかな。 [[0]*width for i in range(height)]
よみづれー
配列は素直にnumeric使うのが一番いいと思う。
297 :
デフォルトの名無しさん :2006/01/26(木) 01:34:55
[お題]干支関数 西暦(or元号)を引数にすると干支(十二支十干でも十二支だけでも可)を返す。
def (seireki=u'西暦'):return u'干支'
def eto(year, encoding="utf-8"): return u"子丑寅卯辰巳午未申酉戌亥"[(x-4)%12].encode(encoding)
こういう所で文字コードの処理までは書かんでもよかろ。
一行野郎ってやつ?
Pythonで一行野郎(・A・)イクナイ
じゃあこれで B.C. 12000 (-12000) から A.D. 11999 年まで対応. print (u"申酉戌亥子丑寅卯辰巳午未"*10000)[1972].encode('euc-jp')
305 :
301 :2006/01/29(日) 19:24:39
あらら、勘違いさせてしまったか def eto(year): return u"子丑寅卯辰巳午未申酉戌亥"[(x-4)%12] これでよかろうという意味ね
明日,使える関数ばかりですね
307 :
デフォルトの名無しさん :2006/01/30(月) 15:52:55
これの出力が£ccと化けてしまうのはなぜでしょうか? 文字化け対策としてはどうすればいいでしょうか? #!/usr/bin/python # -*- coding: euc-jp -*- import curses stdscr = curses.initscr() stdscr.addstr("AAA") stdscr.refresh() curses.napms(2000) curses.endwin()
>>307 端末の文字コードが euc-jp に対応してるか確認し、(8bit 文字列通る?)
表示フォントも適切に設定する。
>>308 環境は Cygwin/ck/screen ですが,
テスト時は screen なしでも確認してます.
euc-jp には対応しており,不思議なことに,
AAAをAAと2文字にすれば化けずに表示されます.
curses を使わず print "AAA" でも大丈夫です.
cygwin + rxvt(ja_patched)だと普通に通る件
すみません。質問です。 参考書に載っていた約数を返す関数の def factor (aNumber): factorList = [] for i in range(2, aNumber/2+1): if(aNumber % i) == 0: factorList.append(i) return (factorList) 4行目の if(aNumber % i)はどういう意味なんでしょうか?
aNumber % i で aNumber を i で割った余りという意味 if (aNumber % i) だと,aNumber % i が 0 で無いなら〜 という意味
>>314 早いレスありがとうございます。
理解できました。
316 :
デフォルトの名無しさん :2006/02/15(水) 22:03:01
C言語の#defineに相当する処理はどうすれば良いですか?
どうしてもバイソンと言ってしまう
それ違うものになっちゃうから。
319 :
デフォルトの名無しさん :2006/02/15(水) 22:26:46
#defineと同等の事はできないって事ですか できないなら出来ないなりに間に合わせるので良いですけど
#define にもいろいろな使い方があるわけだが、 何を目的としているんだ?
自己解決御苦労様です( ・ω・ )ゞ
322 :
デフォルトの名無しさん :2006/02/15(水) 23:52:34
>>320 単純に
#define AAA 360
というようなマクロ定義に使えればそれでよいです。
複雑な事をしようとしてる訳ではないので。
AAA=360
324 :
デフォルトの名無しさん :2006/02/16(木) 00:45:58
しかしあれだな、pythonでインデント削除されると物凄い よみ辛さだなw
「:」を頼りに脳内補完か……
327 :
デフォルトの名無しさん :2006/02/16(木) 23:57:19
初心者すぎる質問です。 日本語環境用インストーラ(Win32)をダウンロードして、 起動した画面の「プロパティ」の「現在のコードページ」に 「(ANSI/OEM-日本語 Shift-JIS」とありますが、 どうやって日本語を入力できるのかがわかりません。 いろいろキーを押してみたのですが、アルファベットしか 出てこないのです。マニュアルにも 『Pythonで学ぶプログラム作法』にも載っていなさそうです。 本当に「0から」って感じですが、お答えいただけたらうれしいです。
328 :
デフォルトの名無しさん :2006/02/17(金) 00:28:39
えーと・・・コマンドプロンプトで日本語入力の方法がわからないってこと?
329 :
327 :2006/02/17(金) 00:30:57
>>328 そうです。わからないというか、できないというか。
alt+全角
331 :
327 :2006/02/17(金) 00:55:06
本当に0からの質問が来るとは。 日本語pythonならidleってのがついているから、 コマンドプロンプトじゃなくてそれ使ったら?
333 :
327 :2006/02/17(金) 03:16:30
>>332 重ねてありがとうございます。
(idleという項目をマニュアルで見つけましたので、後日熟読します。)
(実は今の段階では、読んでもなんのことか判らないので…)
MVCフレームワーク2頭Turbogear と Django どっちがナウでお勧めですか?
336 :
デフォルトの名無しさん :2006/02/19(日) 20:14:33
俺はpychinkoに未来を感じている
>>334 TurboGearだけはSDに載ってたんだが……
def mojix(keyword): import google, os google.setLicense(os.getenv("GOOGLE_LICENSE")) return google.doGoogleSearch('%s site:mojix.org' %(keyword)).meta.estimatedTotalResultsCount >>> mojix('TurboGears') 101 >>> mojix('Django') 14
def ats(keyword): import google, os google.setLicense(os.getenv("GOOGLE_LICENSE")) return google.doGoogleSearch('%s site:coreblog.org' %(keyword)).meta.estimatedTotalResultsCount >>> ats('TurboGears') 602 >>> ats('Django') 1060
すいません、質問させて下さい。
cherrypy で <img src = "url"/>って書きたいときって、
src = "url" の部分はどう書けばいい?
>>335 web.py よさげ
この類ってDjangoとか色々あるけど、
全国的に使用されてる割合ってどのぐらいなんだろ
ジェダイ教の信者数くらいだろ.
ジェダイ教のが多いだろ
343 :
デフォルトの名無しさん :2006/02/21(火) 23:13:52
シス教だろ
Django 萌え。 仕事で使ってみている。(まだ未公開。) BSD ライセンスなので選んでみたが、 Django 自体のコードもいい感じだ。 デザインとして結構関数指向が強いので、 メンテできる人が限定されそうなのが欠点かも。 TurboGear ってどんな感じよ?
345 :
デフォルトの名無しさん :2006/03/10(金) 23:12:14
本日からここをPythonの本スレと認定します(`・ω・´)
346 :
デフォルトの名無しさん :2006/03/10(金) 23:13:37
347 :
デフォルトの名無しさん :2006/03/10(金) 23:14:34
上級者さんがイヤなら変なPart9を保守するのもありかと思うので、 総意を聞かせていただきたかったり。テンプレこっちの方がいいけど。
次スレはここか
どっちもスレタイがアレだが、まだこっちのほうがマシだな。
346 >上級者さん 呼んだか?
変なスレタイで立ててるの毎回同じ奴?いい加減うんざりなんだけど
大事なのは名前より中身。 2chのスレ名ごときに黙ってられない奴の方がいい加減うんざりだ。
4つもpythonスレがあったころが懐かしい
内容がなくなったよな Pythonスレに限ったことじゃないけど
pythonで科学技術計算するっていう本(洋書)のタイトル覚えてる方います? 前すれで話題になったんですけど
日本語で書かれていて安くてわかりやすくて科学技術計算について書かれた そんなPython本があればなぁ
分野は? 科学技術計算といってもいろいろあるだろ
>>362 多変量解析・統計解析
Rじゃちょっとなぁとおもって
> 多変量解析/統計解析 単に統計量を出したいのならNumericやらnumarrayやらを使えばいいんだけど, それでは統計解析とはいわないよね.Pythonには分散分析や検定のパッケージが あまりないから,しっかり勉強して自分で組む必要がある. 理論とコードの両方をカバーするのがしんどいなら,情報の面でもコードの書き やすさの面でも R を勉強した方が近道だと思うよ. Python Scripting for Computational Science は,データ処理やデモアプリの作成 にPythonを活用しようという趣旨の本.トピックが幅広くて実践的だけど,個別の データ解析手法のトピックにはあまり詳しく触れてない. ちなみに Numerical Methods in Engineering With Python なんて本もある. これはシステム解析がテーマ.行列を使ってシステム方程式を解くのに numarray を使いましょうという話で,大学生/大学院生の教科書レベル.
pychinko... 日本語の文書ないかなぁ
>>357 お前は俺か?(つまり少なくとも3人は居るっつーことだなw)
>367 何に使えるの?
True = 0の後だとwhile Tureループ回らないのが気持ち悪い。 予約して欲しかった。あとwhile trueって書いて悶える奴絶対いそう
373 :
デフォルトの名無しさん :2006/03/13(月) 00:27:32
そりゃー、 「while Ture」 だもん、ループせんわな
>あとwhile trueって書いて悶える奴絶対いそう 漏れはほかの言語みたいにfor (;;)やdo構文的な別アプローチをあえて 用意せず、無限ループの書き方は常に1つってのが、Python的で いいと思うなー 個人的にfor(;;)みたいな若干トリッキーな書き方をするぐらいだったら while Trueの方がずっと素直だしわかりやすいと思うお
True, False という名前で変数を宣言できちゃうのはなかなかやばいよな。 いつにになったら True, False が予約語に入るんだろ。
>True = 0 うわ、そんなことできるのか。。 True, False = False, True 真偽を反転させた状態を利用して何か面白いことができないかと一瞬思ったけど 頭が混乱するだけか。。
>376 自分の書いているコードの範疇ならまだいいんだけど 呼んでいるライブラリのなかとかも崩壊するから マジ死亡でっせ
えー知らなかった… while 1: にするかな…
>>377 > 呼んでいるライブラリのなかとかも崩壊する
どういうこと? 例きぼんぬ。
例えばこんな >>> def hoge(var): if var == True: print "A" else: print "B" >>> v = 1 >>> hoge(v) A >>> True = 0 >>> hoge(v) B
>>377 False = True とかやっても汚れるのはその名前空間だけだよね。
__builtins__.False = True とかやると、ガクガクブルブルw
>>380 なるほど、そういうのも「ライブラリのなか」と呼んでるわけね。サンクス
>381 あれ? そうなの? グローバル空間で True/False を書換ちゃうと 世紀末がいきなり来ちゃうのかと思ってた。 tutorial か何かにも (int = 3 みたいに) builtin なものを 上書きしちゃうとそういうのを参照するような ライブラリの中とかもうまく動かなくなるよーって かいてあった気がしたんで >377 って書きました…
真偽値判定が反転するようにtrue=not trueなんてどんなヘボだよ マジでメリットあんの?
>>383 Python のグローバルスコープ(と呼んでいるもの)はモジュール毎だからね。
明示的に __builtins__ を汚さない限り影響はそのモジュール内にとどまるはず。
個人的には「グローバルスコープ」という名称が誤解を招きやすいと思う。
386 :
383 :2006/03/13(月) 21:30:36
>385 説明ありがとうございます。勉強になりますた。 勘違いしてました。 ということで >377 は嘘です撤回しますです… orz
名前空間って最高ですね。と、初めて思った。
同じく。 てか予約語にせい
bool型じゃないから仕方ない。 というか、C++に慣れてるのでTrue、Falseと先頭大文字にするのがめんどい。 タイプ量的にもC的にもwhile無限ループはwhile 1: そうか、最初にtrue=True, false=Falseとかしちゃえばいいのか。馬鹿みたいだが。
__slots__を使ってTrue,Falseやtrue,falseの上書きを抑止したりできないもんかな。 #使い方をよく理解してないから、サンプルコードで例示できない…。
はじめてのPython第2版をはじめてみたよ… 第1版とは段違いのわかりやすさに見えた.
True や False に代入するってのはどういう状況? まともに Python を勉強していたら「"True" という変数を作ろう」なんて発想は 逆さに振っても出てこない気がするんだが。 True や False が無かった古い Python ならいざ知らず、 わざわざ上書きで再定義するなんてのは単なるわがままか不勉強だろう。
「やるかどうか」ではなく「できるかどうか」が問題なんじゃないのかな。 例え誰もいじらないってわかってても、隠蔽して「いじれないようにする」のがカプセル化。 それと同じ理由じゃない?
「Trueを上書きできちゃう」ってことに驚いてただけだ。 必要ないけど好奇心で無駄に深追いしてるんだよ。
ばかばかしい遊びをやってるところに、常識論を振りかざされてもなあ。 しらけるだけだよ。
396 :
392 :2006/03/14(火) 01:29:53
>>393 > 例え誰もいじらないってわかってても、隠蔽して「いじれないようにする」のがカプセル化。
その意味では Python に「カプセル化」の機能はないよ。
いじれない部分はない。
いじれると分かっていてもいじらないのが Python 式。
>>394 了解。名無しに戻って ROM るよ。
399 :
372 :2006/03/14(火) 05:13:26
殺 伐 万 歳
!=を使う奴は貴族。<>を使う奴は豪族。
labmda a,b: a-b を使う奴はラ族。
>>402-403 モチツケ.
再帰関数をλとreduceで置き換えて心を落ち着けるんだ。
余計 落ち着かなくなりました!
>>407 終了条件が不明だからだ!!
仕様から見直せ!!!
環境Win XP です。音速でパイソンを覚えたいです。 まず何からDLしたらいいのですか?
410 :
デフォルトの名無しさん :2006/03/16(木) 15:54:07
早く教授汁('A`)
音速…
412 :
デフォルトの名無しさん :2006/03/16(木) 15:59:03
>>411 とりあえずパイソンの実行できるインタプリタなる物をDLしてくるんで
仕切り終わったら徹夜でお願いします。
413 :
デフォルトの名無しさん :2006/03/16(木) 16:34:35
414 :
デフォルトの名無しさん :2006/03/16(木) 16:35:16
415 :
デフォルトの名無しさん :2006/03/16(木) 16:36:23
2連投稿してしまいました。すいません('A`)
英才教育だ…
418 :
デフォルトの名無しさん :2006/03/16(木) 16:48:22
>>416 ありがとうございます!!とりあえず1時間見てみます!!やたーーー!!
419 :
デフォルトの名無しさん :2006/03/16(木) 17:14:28
>>> test.py Traceback (most recent call last): File "<pyshell#2>", line 1, in -toplevel- test.py NameError: name 'test' is not defined F5キーで実行っていうのがありますが実行できません・・・。 手順を説明しますと、解答してIDLEを実行し、C\:直下にパイソンのインストールされた ディレクトリが生成されました。そしてスクリプトとして実行しようとデスクトップに Pythonというディレクトリを生成してtest.pyを作りました。(中身はprint "HELLO") 実行すると上に示したエラーが出てしまったのですが、ファイルを格納するPythonのディレクトリを どこへ置けばいいのでしょうか? スクリプトではなく、普通に実行するには問題無く実行できるようです。 対処の仕方を教えて頂けないでしょうか?お願いします。
IDLE(Python GUI)を起動して,メニューのFile -> New Window で作ったファイルならF5を押せば実行できます.
すげ〜音速で質問だ・・・
422 :
デフォルトの名無しさん :2006/03/16(木) 17:21:21
>>420 実行する事が出来ました!!ありがとうございます!!何とか次に進めそうです(^ω^)
「>>>」 っていうのはDOSのコマンドプロンプトじゃないんだよ。 それはpythonのプロンプトだから、pythonの命令しか入力できない。 test.pyにプログラムを書いて実行したいなら、コマンドプロンプトで c:¥> cd プログラムのある場所 c:¥> python.exe test.py と実行するか、IDLE使ってるなら、メニューの「File」->「Open」で ファイルを開いておいてから、F5で実行する。
424 :
デフォルトの名無しさん :2006/03/16(木) 17:34:03
>>423 コマンドプロンプトからでは内部コマンドが〜というエラーでできないみたいですorz
F5ができたので、今の所はこちらにして見ます!!
425 :
デフォルトの名無しさん :2006/03/16(木) 17:46:35
一時間経ちました・・が・・・・・・テラムズス。あんな数1時間じゃ覚えられないお('ω`) では次は何をしたらいいのですか?
427 :
デフォルトの名無しさん :2006/03/16(木) 17:55:14
>>425 分かりました。では死んできます。あとは独学でなんとかします。
430 :
デフォルトの名無しさん :2006/03/16(木) 18:05:21
プログラムの実行の仕方、格サイトの提供をして頂いて、ありがとうございます。
おかげ様で実行できる所までは満足行く環境になり大変助かりました。
>>428 細かい説明がなされているので、そちらのサイトを基盤にし、理解を深めるように
して行こうと思います。オブジェクト指向も初めてなので頑張りたいと思います。
いろいろとご迷惑おかけしました。
付き合って頂いて本当にありがとうございました。
>>429 そうは行きません。頑張ります。
ではありがとうございました。
>>430 しっかり氏んでこい。
2度とくるなよ。
台風一過
ぱいチンコびろーん ∩___∩ | ノ ヽ/⌒) /⌒) (゚) (゚) | .| / / ( _●_) ミ/ .( ヽ |∪| / \ ヽノ / / / | _つ / | /UJ\ \ | / ) ) ∪ ( \ \_)
台風二号は「PythonのIDEは何が最強ですか」になりそなヨカン # "最強"という単語の誤用がミソ
全部な。
438 :
デフォルトの名無しさん :2006/03/17(金) 01:16:03
PythonのIDEは何が最強ですか?
edlin
電設巨人
オソレスだが > あきらめろ。お前に音速は出せない。 これにシビれた :-O
>>438 普段はpython-mode on emacsだけど
PyScripterなんかもなかなかいいよ。
インデントって4文字が普通だよな?
一般的には4つだね.Google社内では2つとか.
文字列囲むのに ' と " どっち使ってる?使い分けてる?
めんどうなのでいつも""
俺は常に ' だな。文字列をどちらで書くかで俺の頭はCやJavaとモードスイッチ されるようだ。w
>>443 PyScripter試してみたけど、ソース中の日本語は文字化けしちゃうけど、なんか解決策ある?
(;・∀・).。o○"'混在してるなんて言ったら叩かれそうだ
一文字定数なら' 複数文字なら" というクセが抜けないでぷよ
>>449 ん、便乗して試してみたけど、
Tools -> Options -> Editor Options
を選んで、DisplayタブのEditor Fontでフォント変えたら大丈夫でしたよ。
PythonでHTMLのような長文の文字列を扱うときどうしてる? 俺は、 print """\ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" CONTENT="text/html; charset=Shift_Jis"> <title>タイトル</title> """ 見たいにやってるけど、なるべく"""は使いたくないと思って。 なんかいい方法ある?
>>453 """を使いたくない理由がよくわからんけど、使いたくないなら別ファイルに
書いておいて読むとか。
円マークってなんじゃらほい
456 :
http://www.vector.co.jp/soft/win95/util/se072729.html :2006/03/18(土) 19:30:52
64bitに対応したトリップ検索プログラムありますか? TextSS のWindowsXP(Professional)64bit化おながいします もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
> 455 俺にはバックスラッシュに見えるのだが‥‥‥
>>455 円マークにしてもバックスラッシュにしてもw、要するに1行目に空行が入る
のを避けるためだろう。俺もよくやるよ。
print "Lancelot and " ¥ "Garahad and " ¥ "I...." って書いてる。複数文字列をつなげるだけなので、改行は明示的に入れないと入らない。
ソースコードエンコーディング何にする派? あと、どう書いてる?(例: # -*- encoding: utf-8 -*-)
普段はIDLE任せなんだけど、そういうソースエンコード表示って 先頭行にコメントで、半角1つ(って決まってもないかも)空けたあとは # coding:(encode)でもいいんだよね?-*-も必須?
なぜですか?
emacs も -*- を見てファイルエンコーディングを解釈してくれるんだよ。
なるほどー ありがとうございます
class の selfが良くわかりません.なんですかこいつ
>>453 """使え。
今思いついたけど、
print "".join((
"abc",
"def"
))
とか。
# vim: fileencoding=utf-8 ちなみに↑Vim君でも機能するようにできてる。けど少数派。
perlのcgiにありがちな書き方で print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">' print '<html>' print '<head>' print '<meta http-equiv="Content-Type" CONTENT="text/html; charset=Shift_Jis">' print '<title>タイトル</title>'
インスタンス自身への参照… ?_?
472 :
デフォルトの名無しさん :2006/03/19(日) 13:12:18
>>471 C++とか、Javaの this みたいなもんだ。厳密にはちょっと違うがな。
C++なんかでは this->foo = 10 なんて書けるわけだが、このthisが指しているのが、
自分自身(インスタンス自身)ってのは判ってるか?
Pythonでは、thisのような宣言なしで使える特殊変数は無くて、メソッドの第一引数で
インスタンス自身を受け取るようになってるだけ。だから
class foo:
def bar(this, baz):
pass
みたいにしちゃってもいい。名前はselfである必要はないんだけど、まぁ慣習として
selfにすることになっているというわけだ。
C++もJavaも知らない… インスタンスってのはオブジェクト内の変数なのでしょうか. よくわからないや
476 :
474 :2006/03/19(日) 13:44:19
あれじゃ解りにくいから、以下で。
class Person:
name = ''
def __init__(self, name):
self.name = name
def who_are_you(self):
return self.name
>>>p1 = Person('Shingo')
>>>p2 = Person('おれおれ、おれだよ、おれ')
>>>print(p1.who_are_you())
Shingo
>>>print(p2.who_are_you())
おれおれ、おれだよ、おれ
以下、超適当な解説。
p1もp2も同じPersonクラスだけど、それぞれ、メモリ上の別の場所にロードされている。
クラスがメモリ上にロードされている状態を、インスタンス化された状態という。
classで明示されているselfというのは、自分自身のメモリ上の場所を特定するための変数。
なんでメモリ上にロードされた場所を特定できないと困るのか、は自分で考えて。
変数だから
>>472 の言うように、selfをthisで書いてもおkだけど、Pythonではselfと書くのがスタンダードみたい。
チュートリアルがわかりづらい
インスタンス オブジェクト クラス コンストラクタ あぁあモウネルワカンネ
>477 あのチュートリアルの問題なのかなぁ… その意味では "5分で分かるオブジェクト指向" って類いで まともに分かるものが殆んどないんじゃない? 一応は分かったような気にはなるんだけど、いざプログラムコードと 向き合うときにしっくり来るような意味で染み込んでくれる説明が あるなら紹介して欲しい。 俺が構造化・手続き型言語から来ているから理解がニブいって 問題だけじゃないと思うんだけど (オブジェクト指向分かりにくいって意見はよく見るじゃん)
>>479 以前どこかで読んだんだけど、ことばのハンデもあると思われ。
OOP用語の object, class, instance, constructor, inheritance 等々は
英語としてはフツーの直感的に理解しやすいことばなのらしい。
ところが俺たち日本人のバヤイは、カタカナ語(「オブジェクト」
「クラス」等)または普段あまり使わない漢字語(「継承」等)を
通じてOOPを理解しないといけない。ぶっちゃけ、直感的に分かりやすい
考え方とは言いがたい。
誰か大和ことばだけでOOPの初歩を解説してくれねーかな。
他の言語を触ったことのある漏れには、チュートリアルは超わかりやすいとおもったんだけどねぇ
スレタイに相応しい展開ですね
話題がないのでループしてるだけとも言う
どうでもいいからわかりやすく教えてください
オブジェクト指向は習うより慣れろって所が強い かなり説明しずらい 野球を説明する時にどうやってバットでボール打つんですか?って質問に答えるぐらいむずかしい
486 :
デフォルトの名無しさん :2006/03/19(日) 16:50:45
普通に簡単な実験プログラムを作りたいんなら OOP せんでもいいよ。
>>486 Pythonはオブジェクト指向でないプログラムもできるのも良いね
selfもclassもいらんもん
489 :
デフォルトの名無しさん :2006/03/19(日) 17:06:07
俺は関数型スタイルが一番好きなんだけど、 Python の lambda の内容は expression の みで中途半端だったので、初めはムカついてた。 けどまあ、これは複雑な関数は lambda にすんな、って作者の暗示なんだろうね。もう慣れたよ。
>>487 > 「オブジェクト」とは日本語で言えば「もの」です。
この名言が日本人のOOに対する理解度を低下させている元凶です。
subject/object(主体/客体)のオブジェクトなのに。
>>486 >>488 同意。
使い捨てのコードなんかでclass使わない場合がしばしばあるな。
所詮自分専用だしいいかーみたいなノリで。
で、使い捨てのコードをがしがし書いてて、しばらくやってると、
クラス定義とかもしといたほうが便利かもなーなんて考えたりするもんかも。
元々、「クラス」ってのは何度も使い回しするであろう「もの」 の抽象系であるから >で、使い捨てのコードをがしがし書いてて、しばらくやってると、 >クラス定義とかもしといたほうが便利かもなーなんて考えたりするもんかも。 みたいに、経験からくるもんなんだよ。それを考慮せず、いきなり 「クラス書け」と強制する Java とかは不自然な言語だよ
>>492 Java が不自然な言語なのではなく、オブジェクトもクラスもわからんレベルの素人
が Java で書こうというのが不自然なだけでしょ。
誤解を招くのを承知で書くと - クラスは設計図。 - インスタンスは製品。 - メソッドには製品についてるボタンとかレバーとかを操作したときの振る舞い(仕様)が書かれている。 - インスタンス変数は製品の状態。 * 設計図から製品を作るのがインスタンス化。 * 製品を作るために呼び出す関数がコンストラクタ。 * 別の設計図に手を加えて新しい設計図を作るのが継承。 * メソッド定義は製品のボタンやレバーを操作したときに何をするかを書く。 + 設計図には製品の一般的な振る舞いしか書いてない。だから「"この製品"のXXが YYならZZしろ」という仕様を書きたければ、 設計図には"この製品"を表す名前が 必要になる。これがself。 + ユーザにとって、製品の回路の内部電圧とかレバーの回転角とかはどうでもいいし、 直接操作するものでもしてほしいものでもない。むしろユーザにとっては「ボタンを 押したら次の曲」とか「インジケータには曲名が表示されている」とかいう情報が 必要なので、ユーザにはインスタンス変数を直接操作させるよりもメソッドから操作 できるようにしておく。これがカプセル化。 + 「ボタン」というインタフェースはどこにでもあるけど、それで電話を掛けるか ミサイルを発射するかは製品次第。これがポリモルフィズム。
やっぱむつかしいな
なんとなくわかってきたよ selfってのはclass HogegeのHogegeなんだね? んで class Hogege: def __init__(self, name, age): self.name = name self.age = age とかするのか!? とりあえず何かプログラム書いてみます
>>496 Hogegeのメモリ上の物を指す
class Hogege:
def __init__(self, name, age):
self.name = name
self.age = age
if __name__ == "__main__":
h = Hogege("Python",10)
print h.name
print h.age
498 :
497 :2006/03/19(日) 19:53:31
メモリ上のHogegeを指すの方が良いのか? h = Hogege("Python",10) の h が __init__(self, name, age): のselfとなっている b = Hogege("P",30) print b.name print b.age が別になる
オブジェクト指向っていうのとはたぶん違うけど TRON 世界では OS のいろいろなものを日本語表現で言うよね。 実身/化身 とか。 他の言語も含めて共通語になってくれないと 単なる変態用語になりかねなくて危険だけど、 ああいう感じで「ナゾのカタカナ語」から脱却できるといいんだけどね。 >490 この手の「もの」説明をいくら読んでもしっくり来なかったんだけど 最近無理に「もの」とか考えなくていいんだ、と思うようになって 少しクラスが分かった気がしてきてる。 >494 一番迷うのって "クラスとは何か" っていうより "何をクラスにすべきなのか" "どういうクラス構成にすべきか" っていう部分で、その捉え方(クラス分け)が設計そのものってイメージだけどな。
化身じゃねーよ、仮身だろ。w
ericキモイ・・・なんだあの起動画面は
みんな手続き型言語から入ったからオブジェクト指向が理解できないんでしょ。 最初っからオブジェクト指向言語で入った人たちはあまり問題ないんじゃない? っていうようなことがIBM developerWorksのどこかに書いてあった。
最初からオブジェクト指向で入ると 「おぶじぇくととは モノ なのです」が しっくりくるんだろうか… 結構疑問
>>504 しっくりこなくても「オブジェクト指向の概念」を理解してる人にはわかるでしょ。
所詮、自然言語で説明(しかも初心者に!)なんて限界があるよ。
個人的にはいろんな例を見せるのが一番だと思う。
プログラム読むのが嫌いな人は絶対にプログラムを書けるようにはならないよ。
まあオブジェクト指向はたくさんの例から学ぶのが最適だわな。 くどくど説明しようとすると悪い意味で哲学的な方向にばかり行ってしまう。 「オブジェクトとはモノである」ってのは初学者の興味をちょっと引く程度の意味以上は持たないと思う。
>>505 > プログラム読むのが嫌いな人は絶対にプログラムを書けるようにはならないよ。
イイコト言った!
>>499 > 一番迷うのって "クラスとは何か" っていうより
> "何をクラスにすべきなのか"
> "どういうクラス構成にすべきか"
> っていう部分で、その捉え方(クラス分け)が設計そのものってイメージだけどな。
これもいいな。
やはり、アレコレ言ってるよりも、「いっぱいコード書け! いっぱい読コードめ!」が王道なんだね。
Pythonは他人のコードが読みやすいので良いですね。
訂正 >508 : ○ 「いっぱいコード書け! いっぱいコード読め!」 × 「いっぱいコード書け! いっぱい読コードめ!」
自分でいろいろプログラムを書いてみれば、 「これと似た処理何回もあるな。 毎回コピペして改造するの面倒だし、はじめから再利用できるようにしておこう」 ってこと出て来ると思うし、それでだんだんオブジェクト指向につながって行くんだよ
>>510 その視点だと、partialが導入されたらクラス要らなくなりそうだ。
オブジェクト指向は不要の方向に行くようなヨカーン C#とかが関数型言語の方向にかなりいっている気がするのもその方向かもしれない
複雑な方式(多重継承とか)はいらんけども、 せめて構造体に関数をつける程度の機能は残して欲しいな、なくすとしても。 あれはかなり便利だから。
はいっ、先生! >513 程度のレベルでしかクラスを理解していませんが 「クラスを使ってる」 「オブジェクト指向してる」 って言い張ってもいいんでしょうか?
>>514 >程度のレベルでしかクラスを理解していませんが
>「クラスを使ってる」
>「オブジェクト指向してる」
>って言い張ってもいいんでしょうか?
短い答え:好きにしなさい。
長い答え:自分の言葉ぐらい自分で責任取れ。
引用部分も含めて
>>507-508 に同意。それで思いついたんだけど、
「これは」というオブジェクト指向の用例をみんなで出し合わない?
標準ライブラリの中で俺的に勉強になったのは:
- StringIO.StringIO
文字列をあたかもファイルであるかのように扱うことのできるクラス。
インタフェース(メソッド名、引数、戻り値)がファイルオブジェクトと同じなので、
ファイルオブジェクトを読み書きするプログラムは StringIO クラスのインスタンスも
特段の修正なしに読み書きできる。このクラスも標準ライブラリ中に用例が多い。
ファイルオブジェクトのインタフェースを模倣する file-like object の例は
socket, httplib, gzip, codecs.StreamReader, codecs.StreamWriter 等多数ある。
- rfc822.Message, mimetools.Message
電子メールに代表される RFC 822 形式のデータを表現するクラス。
httplib, cgi, mailbox, BaseHTTPServer 等、標準ライブラリの中で用例が豊富。
シンプルなデータ構造と柔軟なアクセスを可能にするインタフェースによって
高度な汎用性を実現している。カプセル化と再利用の好例。
- htmllib.HTMLParser, formatter.AbstractFormatter, formatter.DumbWriter
HTML を解釈 (parse) して整形 (format) し、出力 (write) するクラスライブラリ。
インタフェースを定めて複数のクラスを入れ子状に連携させる例になっている。
3つのクラスがそれぞれ HTML の解析に関するクラス、データの整形に関するクラス、
整形されたデータの書き出しに関するクラスに分かれていて、各クラスが容易に
再利用できる(つまり自分流に手を加えてアレンジできる)ようになっている。
正直言って、最初に読んだときはさっぱり理解できなかった。実際に自分でアプリを
書いてクラス群を再利用してみてようやくクラス設計のスゴさが分かった。
連投&長文スマソ。新しいモジュールはほとんど読んでないので全体的に知識が古い。 最近のもので面白いものがあったら教えてホスィ。
本文が長すぎると怒られた上に連投失敗・・・orz - SocketServer.TCPServer, SocketServer.StreamRequestHandler ソケット通信に基づくサーバを作るためのクラスライブラリ。 接続を待ち受けるサーバクラス (TCPServer) と、個々の接続に対する応用依存の 処理を記述するハンドラクラス (StreamRequestHandler) の2つでサーバを構成する。 一つの接続に対して一つのハンドラクラスのインスタンスが作られる。 これらのクラスの用例に BaseHTTPServer, SimpleHTTPServer 等がある。 これも最初に読んだときは理解が及ばなかったが使ってみて納得し、感心した。 連投&長文スマソ。新しいモジュールはほとんど読んでないので全体的に知識が古い。 最近のもので面白いものがあったら教えてホスィ。
最近のというか,new-style class が導入されてから,組み込み型をサブクラス化できる ようになったね.
selfが一体何なのかわかる例を出してください
521 :
デフォルトの名無しさん :2006/03/20(月) 14:00:21
>>520 >>> class Foo:
... def __init__(self):
... self.x = 1
...
>>> Foo.x
Traceback (most recent call last):
File "<stdin>", line 1, in ?
AttributeError: class Foo has no attribute 'x'
>>> Foo.x = 2
>>> Foo.x
2
>>> foo = Foo()
>>> foo.x
1
>>515 長い答えがあまり長くないのには好感が持てる
>>> Foo.x Traceback (most recent call last): File "<stdin>", line 1, in ? AttributeError: class Foo has no attribute 'x' >>> Foo.x = 2 >>> Foo.x 2 が良くわからないけどほかのところはわかりました. ありがとうございました
個人的には、zipfileモジュールがtarfileと違うのが気に入らん。 ファイルの書き出しストリームに暗号化処理を一段かまして、とかがさくっとできないから。
一般的な英語はともかくとして、コンピュータサイエンスにおける"Object Oriented"の "Object" の正式な訳語は「算体」だよ。普及してないけど。
Pythonのイロハより、恋愛の必勝テクを0から押して下さい。
押して押して押しまくれ
どなたか女子高生と仲良くなる方法を教えてください。 マジレスきぼう。
530 :
デフォルトの名無しさん :2006/03/20(月) 16:59:57
emacsの中でpythonを使うときのパスを指定するにはどうするか教えてください。
若い娘が好きなんです。若すぎると犯罪なのでぎりぎりのところで。
高校に入学しなおせばいいんじゃね?
結婚して娘作ればいいんじゃね?
春休みか
オブジェクト指向に限らず、数学とかにも言えるけど「悟った」と思える瞬間があるよね。
悟りはちょっとご勘弁を
>>535 その理解に至るきっかけになる刺激を最初から電気ショックで与えてくれてれば
どんなに楽かと一体何度思ったことか。
たしか、そういうヘッドギア付けてくれるところがどこかにあったっけなぁ。
>>520 selfというのはクラスのインスタンス自体を表す引数だよ。
print文で印字してみれば一目瞭然。
>>> class Foo:
def bar(self):
print self
>>> foo = Foo()
>>> print foo
<__main__.Foo instance at 0x00C18AA8>
>>> foo.bar()
<__main__.Foo instance at 0x00C18AA8>
>>>
わかったようなわからないような
女子高生よりぱいそんが好き。
>>540 クラス定義のあと、スクリプトの実行部分で使う場合に
「foo.bar()」と「個別のインスタンス名.クラスで定義されたメソッド名」になる。
こういうメソッドをクラスで定義するためには「個別のインスタンス名」が無いわけだから
その代わりに「self」を使う。
でいいのかな
>539 ある意味 いんすたんす という言葉より python での 「self って書け、それは self(自体・自分)なんだ」 っていうところから いんすたんす って そういうものなんだと理解した
>>530 M-x customize-group python
>>547 前に使ったことあるよ。結構いい感じだったんだけど、日本語が
全くだめだったので、やめた。今はどうなのかな。
言語は、pythonじゃなくてC++だけど。
アプリの配付を考えているなら、あまり向かないと思うぞ。wxWidgetを
一緒に配るか、埋め込まないといけないから。
埋め込んだ場合、窓一つでも数メガは行ったと思う。stripしても2,3メガくらいかな?
(ちなみにwindowsでの話)
あとwxWidgetは、ツリービューは他のOSとの互換のため、独自に描いているので、
見栄えが少し違う。そのときは気になって、何度もいじっていたら落ちたw
IDEの出来は、かなりよかった印象がある。印象だけかもしれんがw
使ったのはずいぶん前だから、興味があったら試してみたら?
GUIはボトペタでつくれたと思う。(最初に「サイザー」とかいうのを置かないといけないとか、
wxWidget独特の癖があるけど)
>>> class Foo:
def bar(self):
print self
>>547 >>> foo = Foo()
>>> foo.bar()
<__main__.Foo instance at 0x00C02F10>
>>> Foo.bar(foo)
<__main__.Foo instance at 0x00C02F10>
pow(x,y)とかこれに類する関数イラネ 演算子使えない状況なんぞあんのかと
550 は明かに関数プログラミングを知らないようだね
>>530 windows?
コマンドプロンプトでpythonって打鍵してpythonが起動するならパス指定って不要でない?
(setq py-python-command "C:/Python24/python.exe")
>>550 すくなくともLispかSchemeは触れておいた方がよいよ
>>549 やっぱ一番最後の例がわからない…orz
Lisp/Scheme厨だ。逃げろ〜〜〜
>>555 >>> class Foo:
def bar(self):
print self
の引数のselfは、
呼び出し側で引数に指定が無い場合は、その関数を呼び出したインスタンス自身をselfとして、
呼び出し側で引数に指定がある場合は、その引数をselfにして、
関数内の処理を実行する。
>>> foo = Foo()
>>> foo.bar() // fooインスタンスのbar(self)関数を、引数なしで呼び出したので、self=呼び出したインスタンス=fooが自動的に割り当てられる。
<__main__.Foo instance at 0x00C02F10>
>>> Foo.bar(foo) // Fooクラスのbar(self)関数に、fooインスタンスを指定したので、self=foo。上と同じインスタンスがprintで出力される。
<__main__.Foo instance at 0x00C02F10>
そういう仕様なんですね
あーそうかわかったぞー!
学習しないって恐ろしいことだねぇ。
なにげに良スレの予感
562 :
デフォルトの名無しさん :2006/03/21(火) 07:39:20
>>546 >>553 マックで自分で入れたほうを起動させたかったのです。これでできそうです、thx!!
py厨がlispだってよ。テラワロスwww
564 :
デフォルトの名無しさん :2006/03/21(火) 08:36:15
このスレみてるとpythonユーザとlisp/schemeユーザって 結構かぶってる気がする。
PythonはLispのパクリだからな。
おまいら paul graham 読みすぎ
>>565 本当はLispが好きなんだが、仕事ではライブラリの豊富さに釣られて
Pythonを使ってる。でもPythonもだんだん好きになってきたよ。
俺も Lisp の方が言語的に華麗だとは思うが、作業効率とか library の充実ぶり とかソースコードの読みやすさや自然度は断然 Python の方が上だと思うな。 とかいって (E)Lisp と Python は五分ぐらいにプログラミングしてるけど
でもまあ、どっちにしろ Lisp とかの関数型言語は学んでおくべきだね。 関数型言語の知識があれば Python でも lambda を取り組んだ map、 filter、 reduce などを活用した綺麗なコードが書けるようになる
中学生のころ、クラスに二人のマドンナ的存在の女の子がいたんです。 ひとりはマリコ、もうひとりはジュンコ。どっちもかわいいし、スポーツ万能。 マリコはクールビューティ的な感じがあって、俺はより親しみやすい性格だった ジュンコのほうが好きだった。
これだからLisperは
LispとSchemeはどっちのがいい?
lispとかlambdaっていいたいだけのやつが多いな。
>>575 lispとかlambdaっていたいだけのやつが多いな。
に見えた
577 :
デフォルトの名無しさん :2006/03/21(火) 18:28:51
578 :
デフォルトの名無しさん :2006/03/21(火) 18:44:24
lambdaなんてどうでもいい。Pythonにはマクロが無いんだ。 これが俺にとってのPythonとLispの最大の違いだ。
>>578 parserモジュールのASTを使って作れないかな。
>>577 自分で作成する事になるんでないかな。。
581 :
580 :2006/03/21(火) 21:30:09
全機能は確認してないがとりあずそれでも動くみたいだ
583 :
580 :2006/03/22(水) 06:23:03
584 :
デフォルトの名無しさん :2006/03/22(水) 13:49:06
Peter Norvig さんに惚れました。 どうすれば彼と結婚できますか?
585 :
デフォルトの名無しさん :2006/03/22(水) 14:49:33
1,NTT 2,KDDI 3,Vodafone みたいにキーが一意で、名前が対応しているCSVファイルがあってこれをdictにしたいのです。 今は f = file("names.csv","r") d = dict() for f in csv.reader(f.readlines()): d[f[0]] = f[1] って書いてdictにしているのですが、どうも汚い感じがして別の書き方があるような気がします。 別の書き方は可能ですか?
587 :
ゼウス :2006/03/22(水) 15:04:22
d = eval('{' + ','.join( map(lambda line: "%s:'%s'" % (line.split(',')[0],line.split(',')[1].strip()) , open('temp','r').readlines() ) ) + '}')
for line in f.readlines(): (k,v) = line.strip().split(",") d[k] = v
Q.ヤらせて! A.チッ、しょうがねぇな
'"' で ',' が含まれる項目を quote してある csv だと 討ち死にしたりするよね?
∩___∩ | ノ ヽ / ● ● | こいつすげぇアホ!! | ( _●_) ミ 彡、 |∪| / \ / __ ヽノ / \ \ (___) / │ │ │ │ / ヽ l lUUU U
>>585 d = dict(i for i in csv.reader(file("names.csv")))
>>592 for generator って f( ... ) の中でも使えたのかい。。。知らんかったよ
Python 版 JavaCC みたいなパッケージありますかね?
595 :
585 :2006/03/22(水) 19:23:30
>>592 カッコイイ!!
そういう事ができるんですね。ありがとうございます。
なんか >594 が微妙に自演くさいけど、とにかく Python Lex-Yacc のドキュメント翻訳したひとには敬意を表したい。 乙でつ!
翻訳版がでたのはかなり前だから、>594 >596 は自演でもなんでもないな。 はやとちりしてしまった。
599 :
585 :2006/03/22(水) 21:01:33
すこし欲がでて来たので仕様を単純にした物で質問します。 names.csv 1,NTT 2,KDDI 3,Vodafone match.csv 2005,09,11,1,,D501 2005,10,11,1,,P502 2005,10,11,1,,P503 2006,03,11,2,,A5518SA 2006,03,11,4,,AAAAAAA out.csv はこうでてほしい 2005,09,11,1,NTT,D501 2005,10,11,1,NTT,P502 2005,10,11,1,NTT,P503 2006,03,11,2,KDDI,A5518SA 2006,03,11,4,,AAAAAAA import csv d = dict(i for i in csv.reader(file("names.csv","r"))) outf = file("out.csv","w") for f in csv.reader(file("match.csv","r")): if d.get(f[3]) != None: f[4] = d.get(f[3]) csv.writer(outf).writerow(f) outf.close() これでも結構綺麗にしたんですけど、出力のあたりもっと綺麗にできますでしょうか?
600 :
デフォルトの名無しさん :2006/03/22(水) 22:57:50
import csv vd = dict(csv.reader(file('names.csv','r'))) csv.writer(file('out.csv','w')).writerows((y,m,d,i,vd.get(i,'unknown'),t) for y,m,d,i,x,t in csv.reader(file('match.csv','r')))
_,. -- 、__,.、 /´ , , ヽヽ / ,' / l l | l | ,ハ ヽ. l l l l l l l /l l い ', l l l krH-ノノ/ j⊥ l l i │l l レ⌒ト ' r=kl l | l ,ノ l l、lゞ-' し'lj l j ' // l ,ハ、ト、 ゙ σ ゙ノリ l ,ハ きゃいーん ,/イ /l /⌒ヽ7rュ≦、/ l/ l ノハ リ /ヘ 、\ハヽ`ーヘ. ' ′{ヽ{ ハ、 ` ー`ヽゝ、 \_ ヽ ト-、 ` 、 \ \_ 〉、 >-、_ー- \ `\__ _,、 V ,r;ェニニゝ、 、 ,>ュ_-`ー'7,ム 〈_l_/ヽ. \ \_ lY´ `⊃ /ヒノ、 lヽ ヽ、 `ヽ、_>fl ヽ.ヽ/ー^ー' l ト、 \ /Y__{ ム`ー)′ | i y'⌒'ヘ ! `‐' ̄ l _レヘ ヽ| ´ __ヽ l! ___r-/´ ノ ,.ィ「 ヒf _. -‐ ´| ,イ l| i ハ_>、r'  ̄ | | | | l|、y‐-v'´ l l 7l. lLL._j l l | l ヒL二」 l l ヽヽヾ==ヘ j、 | \`ー‐'/ 上エエ} ` ̄´ {_ r─ュ} : : . . 〈 ヾf三ユ‐ュ、 . . : : : : : : : : : : : : ト、 _{__ } : : : : : : . . : : : : : : : : : : `¬-、二フ : : : : : : : : . . .
603 :
585=599 :2006/03/23(木) 11:06:21
>>601 最初理解できなかったのですが、分解してみたら理解できました。
ありがとうございます。
ワンライナー file('out.csv','w').write( '¥n'.join([','.join(m[:4]+[d.get(m[3],''),m[5]]) for m in [l.split(',') for l in file('match.csv','r').read().strip().split('¥n')] for d in [dict(r.split(',') for r in file('names.csv').read().strip().split('¥n'))]]))
どうみても6行です
ムーニー独自のウンチポケットが、ゆるゆるウンチを広げない。
どなたかyahoo! search apiをpythonで使っている方がいらっしゃいますか? 文字コードの問題なのですが、検索ではUTF-8を使わなくてはいけないようで、 EUC-JPをサイトで使っているので、 文字列queryで検索する時に、 unicode(query, "euc_jp") として検索結果を取得し、結果の文字列をresultとすると result.encode("euc_jp") としているのですが、 UnicodeError: EUC-JP encoding error: invalid character \u017f となり、変換できない文字があるようです。回避策はあるでしょうか?
>>608 >>> unicodedata.name(u"\u017f")
'LATIN SMALL LETTER LONG S'
この文字は EUC-JP では表すことのできない多数の文字のひとつ。
result.encode("euc-jp", "ignore") として無視するか、
result.encode("euc-jp", "replace") として所定の置換文字に置き換えるか、
def replace_by_name(exc):
c = exc.object[exc.start:exc.end]
u = "[U+%04X %s]" % (ord(c), unicodedata.name(c))
return unicode(u), len(c)
codecs.register_error("replacebyname", replace_by_name)
result.encode("euc-jp", "replacebyname") のように置換方法を定義して用いるのが良かろう。
qsort [] = [] qsort (x:xs) = qsort elts_lt_x ++ [x] ++ qsort elts_greq_x where elts_lt_x = [y | y <- xs, y < x] elts_greq_x = [y | y <- xs, y >= x]
>>609 丁寧な解説でわかりやすいです。
基本ですか?。。。
その方法でうまくいきました。ありがとうございました。
基本はね、環境変数LAN^]B
チョト ワロタ
>>607 # (1)一番最初のバージョン
vd = dict()
for f in csv.reader(file("names.csv","r").readlines()):
vd[f[0]] = f[1]
outf = file("out.csv" ,"w")
for f in csv.reader(file("match.csv","r")):
if vd.get(f[3]) != None:
f[4] = vd.get(f[3])
csv.writer(outf).writerow(f)
outf.close()
# (2)ワンライナー
csv.writer(file("out.csv","w")).writerows((y,m,d,i,dict(csv.reader(file("names.csv","r"))).get(i,""),t) for y,m,d,i,x,t in csv.reader(file("match.csv","r")))
# (3)他人が読みずらいので(1)と(2)をちょっとずつ合せてみた
vd = dict()
for vcd,vnm in csv.reader(file("names.csv","r").readlines()):
vd[vcd] = vnm
outf = csv.writer(file("out.csv","w"))
for y,m,d,i,x,t in csv.reader(file("match.csv","r")):
outf.writerow((y,m,d,i,vd.get(i,""),t))
outf.close()
どれが好きです?
意外といろんなやり方があるってわかったのと、for iterator 便利って事がわかったので他のプログラムもしてみます。
names.csv ってどんな形式だったかしら と思ったら585にあった。 カンマじゃなくてコロンや空白で区切られていたら、 vcd,vnm を vcd:vnm とか vcd vnm にすればいいのかな?勉強になるなぁ 後import が書いてないんですが…?
正直,ワンライナーはあまり初心者向けの勉強にならないしキモイ と,自分で書いてて思った
正直,ワンライナーは惚け防止目的で書いてるだけ.
>>615 それは
(vcd, vnm) = 要素が2個のリスト
の形の代入の省略形であって、csvのフォーマットとは無関係だよ
文字列の変更ができないのはナゼですか? できたほうが便利じゃないの?
なぜ tuple と list があるのか、みたいなもんだな
>>619 変更できないことが明確であるほうが便利なこともあるからだよ。
>>619 変更したいときは代入しなおせばいいだけだろ
pythsonというものをはじめて知りました。知ったのは昨日です。
ともかくHello Worldしないといけないということでやってみました
で、これは成功して、次の適当な簡単なtest用プログラムをやったらもう動きません
で、これは拡張モジュールがないと動かないですよ、適当に入れて下さい、とさらっと書いてそれでおしまい
そこでgoogleして、行き着いた先が
http://www.python.jp/Zope/articles/tips/mxcgipython ここです。で、上記のリンク先の
http://www.egenix.com/files/python/mxCGIPython.html でFreeBSD版を落としました。でMy鯖に一応upしましたが動きません。
同じディレクトリに解凍したバイナリをそのまま放り込んだだけです。
この落とした拡張モジュールの入れ方を教えてください
pythsonはほんの数行のtestプログラム動かすにも本当に拡張モジュールなんかが必要なんでしょうか?
根本的に勘違いしていますか?
My鯖はFreeBSD、Apache、ISP鯖じゃないが共有連鯖、参考にしているサイトは2ちゃんのまとめサイト他
Hello Worldは#! /usr/local/bin/pythonで動いた。動かしたい動作test用プログラムはこれ
import time
(Year, Month, Day, Hour, Minute, Second, Weekday, Day, Dst) = time.localtime(time.time())
print "Content-type: text/html\n\n"
print "<HTML><H1>現在時刻 ", Hour, "時", Minute, "分", Second, "秒です</H1></HTML>"
HPの設置のために鯖を借りてるだけであまりこういうことは詳しくありません。
間違った×pythson○python
imp = u"インポートコンテンツ" imp[3:6] = "" ってできないのは不便だっていいたいんでしょ。
>>624 下のリンク先の「Unix Target:」ってあたりから読め。
そのプログラムを見る限り、標準モジュールしか使ってない。 つまり拡張モジュールは要らない。 サーバにログインできるなら、サーバでテストプログラムを実行してみ。 動かないならエラーが出るはずだから、それを晒せ。話はそれからだ。
日本語化されたPythonってないですか?
630 :
624 :2006/03/24(金) 15:19:55
>>627 (;^ω^)読んでもいまいち意味がわからないんです
>>628 >テストプログラムを実行してみ
今それをやってる最中でして
HELLOは出来るのでpythonが動く鯖であることは間違いないと思います
投稿文が長くなるので貼り付けできませんでしたが、imoprtしてなかったらそこは
無視されて、動くところだけ動くので、別にエラーは出ませんでした
624に貼り付けたものはあれこれやったら動きました
おっしゃるようにこれには拡張モジュールは別に必要ないようでした
>>630 サーバーでpythonが動くなら、mxCGIっていうのは必要ないよ
>>629 日本語化って何?(どういうことを期待している?)
633 :
624 :2006/03/24(金) 15:46:11
>>631 >mxCGIっていうのは必要ないよ
(;^ω^)わかりました
でもpythonを使っているうちには拡張モジュールが必要な場面が出てくるのですよね
拡張モジュールの入れ方を解説したサイトはUNIXを理解できる人じゃないと無理みたいですね
仮に理解できても共有鯖だとtelnetも出来ないし鯖のroot権限がないので
フリーのftpソフトでバイナリをupすることくらいしか出来ないのでは無理なようでした
624のtestプログラムも動いたし、一応My鯖でpythonが動くかどうかのtestをしたい
という今日の目的は達成できましたのでとりあえずはよかったです
おさわがせしました
>>615 importは省略しました。
とりあえずCSVモジュルは自分で動かしてみると大夫理解できます。
637 :
624 :2006/03/24(金) 16:21:46
>>636 これは大変わかりやすいサイトです
助かります
さくらとMy鯖が違うのはシェルが使えるかどうかだけで
後は似たような環境のようです
これを見るとどうも出来そうな気がしてきました
ありがとうございました
638 :
デフォルトの名無しさん :2006/03/24(金) 16:22:26
ってか、 Norvig タンのコードテストの仕方すげーよ。 マジでこれほど簡単で効率的なテスト見たことない
>>638 Norvig タンのコードテスト が見たいのですが、どこで見られますか?
640 :
デフォルトの名無しさん :2006/03/24(金) 23:32:04
16045の+2σは16630ですが、 それをpythonで計算するにはどうすれば良いですか。
>>634 全部参照するなんてこのスレを愛しているんですね。
過去スレって結構おぼえてないです。
16045 ってナニ?
はじめてのPythonってお買い得ですか? チュートリアル読んだけど、どうも日本語がしっくり来ませんで、 それで本を買おうかと思いました。
>>644 他言語でのプログラミングの経験のある人が、きちんとPythonの全体を学ぶのに
向いていると思う。個人的には良い本だと思うよ。
今売ってるのは第2版だから、古本屋で間違って第1版を買わないように。w
646 :
デフォルトの名無しさん :2006/03/25(土) 01:25:08
>>641 σにこだわらずに標準偏差だけやれれば十分です。
マニュアルにそれらしいのがあったんですが、使い方が分からなかったので。
16045は経済関係の数値です。
>>646 どうせ日経平均株価でしょ.統計をきちんと勉強してから出直そうね.
一瞬UARTかと思たが、あれは16550だったorz
与えられた変数の名前を返す関数ありますか? 例えば foo(var_name) --> "var_name" みたいな動作をする、 lispで言えば symbol-name みたいな関数です。
>>> def myfunc(hodge, podge, foo='spam', bar='egg', baz='1'): ... pass ... >>> import inspect >>> inspect.getargspec(myfunc) (['hodge', 'podge', 'foo', 'bar', 'baz'], None, None, ('spam', 'egg', '1')) >>> def f(a,b,c): ... return inspect.currentframe() ... >>> fm = f(1,2,3) >>> fm <frame object at 0x304d10> >>> inspect.getargvalues(fm) (['a', 'b', 'c'], None, None, {'a': 1, 'c': 3, 'b': 2}) >>> こういうこと?
652 :
デフォルトの名無しさん :2006/03/25(土) 13:54:34
>>647 日経平均株価の26日移動平均値です。
時系列データくらい見てから出直そうね。
エクセルでは同等の事は出来るんで、Pythonでのやり方を知りたい
標準偏差を使った指標をエクセルで作る作業を簡便にしたいと思ったからPythonでやれれば便利と思った
答えられないから煽りですか。
煽りはゴミ
>652 はライブドア株でも買ってればいいのに
>>652 Pythonだろうがなんだろうが、標準偏差の計算方法がわからない奴なんて滅多にいねーぞ。
知 っ て る が お 前 の 態 度 が 気 に 入 ら な い (AA略)
ってことだろうなあ。ボリンジャーバンドかなんか出したいの?素直にどっかのチャートツール
でも使えば?
>>652 標準偏差の計算法を知らない人だったのか。わろす。
>652 出直さんでいい。一生エクセル使ってろ。
煽りじゃねえよ. > 16045の+2σは16630ですが、 > それをpythonで計算するにはどうすれば良いですか。 みたいな質問する奴が,偏差や平均を計算するのにn個データが必要だと 理解してるようには見えんかっただけ. せめて「n個の時系列データがあるんですが,そこからEx+2σを求めるには どうしたらいいですか」くらいに説明したほうがいいよ. ちなみに Ex = sum(X)/float(len(X)) Vx = sum((x-Ex)**2. for x in X)/float(X) だよ.これ以上は言わなくても分かるよな.
うわwwGoogleかよsuckitらしい回答wwwwww
俺はゆとり教育前のオジサンだが、高校で習ったぞ。今は教えないのか?
やった記憶無いよ。習ってなくても計算するだけなら簡単だけど 質問者は出来合いのライブラリを使ってやりたいんじゃないの 出来合いのライブラ探すより自分で作った方が早そうだけど
662 :
デフォルトの名無しさん :2006/03/25(土) 17:28:26
おっさん世代でも、標準偏差も知らずにシステムのパフォーマンス検証とかやってる奴多いでっせ。 提出された資料に平均値しかなくてのけぞったことある。
大体やっても覚えてない人の数の方が多い気がする。
やってなくても覚えてなくても、調べれば計算式は見つかるだろ
与えられた変数の名前を返す関数ありますか? 例えば foo(var_name) --> "var_name" みたいな動作をする、 lispで言えば symbol-name みたいな関数です。
>>> def myfunc(hodge, podge, foo='spam', bar='egg', baz='1'): ... pass ... >>> import inspect >>> inspect.getargspec(myfunc) (['hodge', 'podge', 'foo', 'bar', 'baz'], None, None, ('spam', 'egg', '1')) >>> def f(a,b,c): ... return inspect.currentframe() ... >>> fm = f(1,2,3) >>> fm <frame object at 0x304d10> >>> inspect.getargvalues(fm) (['a', 'b', 'c'], None, None, {'a': 1, 'c': 3, 'b': 2}) >>> こういうこと?
私には、彼氏がいます。彼とわたしは、デートの時、どちらかの家に行き、だれもいないとき 、部屋で横になって裸でだきあいます。それがだんだんエスカレートしていって、学校の体育倉庫で 服をぬがされ、まだ3年生ですが学年で1番大きいおっぱいを、つかむように触られたり、しゃぶった りされます。最初は、苦手だったんだけどだんだん気持ちよくなりサイコーです。しかも、わたしは 、学年1美人でもてます。彼も同じで、美男美女でよくみんなにうらやましく、思われます。 : : このカキコ見たあなたは4日後に不幸がおとづれ44日後に死にます。それがイヤならコレをコピ ペして5ケ所にカキコして下さい。私の友達はこれを信じず4日後に親が死にました。44日後友達は 行方不明・・・・。いまだに手がかりもなく私はこのコピペを5ケ所に貼り付けました。すると7日後 に彼氏ができ10日後に大嫌いな人が事故で入院しました。 : : 信じる信じないは勝ってです
669 :
デフォルトの名無しさん :2006/03/25(土) 23:06:53
>>653 買ってましたよ。
>>654 分かりますが、何か?
チャートツールも使ってるさ
>>657 解答ありがとうございます。
確かに聞き方も悪かった
マニュアルを標準偏差で検索すると引っかかるのがあるので、それが使えないものかと思った
エクセルのSTDEVPと同等の事を簡便に出来れば便利と思った
他の煽りはやはりゴミ
教えてくださいスレで初心者煽っておもしろいですか。
>>661 そういうことです。
>>669 ここはPythonの初心者は歓迎するが、統計の初心者に標準偏差の計算法を教える
スレではないのであしからず。
>>669 つーか、Pythonのヘルプに書いてある以上のことをしたいなら
自分で作るかモジュールを探すかしろ。それかmath.pyを見れ。
672 :
デフォルトの名無しさん :2006/03/25(土) 23:56:21
標準偏差のもとめかた知らないなと思って、教科書開いたら 2SDってピッタリ95%になるんじゃないんだね、すごいびっくりしました。スレ違いですが。
>>666 だから? 答え知らないんだったらレスしなければいいのに。
675 :
デフォルトの名無しさん :2006/03/26(日) 08:33:01
質問です。
複数ファイルからTATAという文字列を検索するための、下記のようなサンプルプログラムが
http://www.pyzine.com/Issue008/Section_Articles/article_SnakesAndMolecules.html というサイトにあったのですが、ループになって終了しませんでした。
import glob
fastaFiles = glob.glob("*.fa")
tataCount = 0
slideWindow = 4000
overlap = 3
for fastaFile in fastaFiles:
currFile = open(fastaFile, "r")
idxLine = currFile.readline()
currSeq = currFile.read(slideWindow).strip().replace("\n","")
while currSeq:
tataCount += currSeq.count('TATA')
currFile.seek(-3,1)
currSeq = currFile.read(slideWindow).strip().replace("\n","")
print tataCount
なんか最後のseekでちょっとづつ戻ってるので、コレぜったい間違って
ると思うんです。ループの最後にif len(currSeq) < 4: breakを足したらできたんですが、
もしなんか勘違いしてるようでしたらご指摘ください。
676 :
デフォルトの名無しさん :2006/03/26(日) 08:35:18
「ループになって終了しませんでした」→「無限ループになって終了しませんでした」 すいません。
「検索するための」→「カウントするための」 度々すいません。
>669 >初心者煽っておもしろいですか。 どう見ても煽りのプロです 本当にありg(ry
>672 ぉぃぉぃ… 正規分布とかあーだのこーだの… それに "95%ピッタリ" なんて奇妙な数字になるわけないじゃん まあ統計の話はスレ違い過ぎるから教科書とか見てくれとしか 言いようがないが。
これはTATAボックスの数を数えるプログラムだね. TATAを検索するだけでは,あるループで読んだスライディングウィンドウの末尾 が '...CCGTAT' で,次のループで 'ATCGG....' のようになってると,ウィンドウの 境界にある TATA ボックスを見逃してしまう.それを防ぐために -3 してるだけ なので,-3 するのは間違いではないよ. if len(currSeq) <4: break すると,最後から2つ目のウィンドウが T で終わっていて, 最後に読んだ配列が ATA のとき,末尾の TATA を見逃してしまう.
標本分散と普遍分散ってわかりますか? 僕は良くわかりません。
と言うやつは大概 最近知ってそこだけは詳しくて薀蓄垂れたいから 自分でネタふってるってのは、2ちゃんの常識
>>682 >普遍分散ってわかりますか?
>僕は良くわかりません。
不偏分散なら知ってるけど,普遍分散なんてGoogleでしか見たことない。
異常分散 とか(違
それを言うなら得意分散じゃねぇの 違った特異分散
web.py と Django? と あとなんだっけ これらの中で将来性があるのはどれですか? またどういうものなのですか?
688 :
デフォルトの名無しさん :2006/03/26(日) 14:49:47
Zopeに決まっておろうが。このタワケめ!
>>688 「あとなんだっけ」に全てを汲んでやれよ。
Python は好きだが Zope はちょっと・・・
○。・。○。・。○。・。○。・。○。・。○。・。○。・。○。・。○ このレスをみたあなたは・・・3日から7日に ラッキーなことが起きるでしょう。片思いの人と両思いになったり 成績や順位が上ったりetc...でもこのレスをコピペして別々のスレに 5個貼り付けてください。貼り付けなかったら今あなたが1番起きて ほしくないことが起きてしまうでしょう。 コピペするかしないかはあなた次第... ○。・。○。・。○。・。○。・。○。・。○。・。○。・。○。・。○
よかったね
>>690 あれはモジタンが悪いんであって
Zope自体は結構いけると思うぞ。
Zope3は結構いい感じ ただ日本じゃコミュニティが壊滅的な状況だけどorz
たーぼぎあーず っていうのがあるって効いたんですけど
697 :
デフォルトの名無しさん :2006/03/26(日) 18:18:06
プログラミングなんて極力したくないっていう層の俺にとっては、 djangoもTurboGearsもweb.pyもZope3も敷居が高いんだよな。 Zope2はブラウザだけでチョイチョイと弄れるので楽チンでいい。
::::::::::::::::::| | _,.、 ::::::::::::::::::| | ,.</__\ ::::::::::::::::::| |-‐く /  ̄| ::::::::::::::::::| |:::::::;:`'ー-....,,,,___iヽ、 ::::::::::::::::::| |::::::;、:::;::::;::::::;::::::::::::ハ ::::::::::::::::::| |:::/!,.ゝ!、ハ::::ハ::;i:::,::::ト, ::::::::::::::::::| |;:イ〈 {,_r/ レ' レ_.!,ハイ:::! ::::::::::::::::::| |::|"" 〈ン'〉!/|:ハ 天狗じゃ、天狗の仕業じゃ! ::::::::::::::::::| |::ハ . _ ` "!:::::|:| ::::::::::::::::::| |::ヽ!ヽ、._ _,,..イイ:::ハ| ::::::::::::::::::| |Y7´! ,.イ⌒ヽレi::レ' ::::::::::::::::::L,.!、! !_/ 〉ノ,....、__ :::::::::::::::::と_ ヽ.,ムゝ-=、_ンイ:::・:(< ::::::::::::::::::k,_ i /^'^'7!:::::`'::::::::!ソ ::::::::::::::::::| i\ `ヽ /! `>:::::ノ ::::::::::::::::::| | _ヽ、_ノ 〉く/ゝゝ ::::::::::::::::::| |ヽ、 /::::\
文たんなにやってんの、こんなとこでw
>>681 うーん、でも止まっちゃうんですよね。もう少し考えてみます。
最近はバイオが一番計算機使ってるという説もあるからなー。 がんばれー。 厳密には、eofに到達したかどうかチェックしながらseek しないといかん気がするけど、僕は675の対処法で良さそうに 思うのだけど。 ところで、「複数のファイル」に意味はあるの?
あ 確かにおかしいわ。 while len(currSeq)>3: のようにしたらどう?
>>701 一つのゲノム配列が(たとえば染色体毎とかで)複数のFASTAに分割されることは
よくあるので,意味はあると思うよ.
もし ファイル1 ...AGTA ファイル2 TAGC.. となってる TATA も抽出したいんなら、件のアルゴリズムじゃ無理だと 思うんだけど、どうなの? (つーか、cat てstdinから喰わせたり、shellのforで一つづつ数えたのを合計したり、もうちょっとマシな方法はありそうな気がするが)
,,,──-____ _/´- \ ―――― / / ./ヽ `ヾ ヽ そんなエサはイナバウアーで / / |∩| 彡\ | スルーだクマー ―― | ミ ( ● ) | ヽ ). | | | | ● ● / / / .| (_/ ヽ /| (_/\ | ∪ ̄ ̄_|U⌒´|. | | .(___) |`⌒´|_ ──────── ┻┻ .(___) ──────── ┻┻
普通はFASTA間の繋がりは考えなくてもいいんだよ。 ゲノムの大きな生物のFASTAファイルは数百MBytesになることもあるから、cygwinで catしたりするとメモリの小さいマシンでは動かなくなってしまう。
>706 繋がりを考えなくていいんならあのアルゴリズムで良さそうね。 ところで、cygwinのcatはFSFのcatなので、デカいファイルを読んだからって別にメモリをバカみたいに喰うっつーことはないと思うよ。
>>707 >繋がりを考えなくていいんならあのアルゴリズムで良さそうね。
>ところで、cygwinのcatはFSFのcatなので、デカいファイルを読んだからって別にメモリをバカみたいに喰うっつーことはないと思うよ。
>
あれ?cygwinで"cat hogehoge |"したときって、パイプの直前に巨大なウンコが溜まらない?
巨大なウンコ ) ( ,, ) ) ゙ミ;;;;;,_ ( ミ;;;;;;;;、;:..,,.,,,,, i;i;i;i; '',',;^′..ヽ ゙ゞy、、;:..、) } .¨.、,_,,、_,,r_,ノ′ /;:;":;.:;";i; '',',;;;_~;;;′.ヽ ゙{y、、;:...:,:.:.、;:..:,:.:. ._ 、} ".¨ー=v ''‐ .:v、,,、_,r_,ノ′ /;i;i; '',',;;;_~⌒¨;;;;;;;;ヾ.ミ゙´゙^′..ヽ ゙{y、、;:...:,:.:.、;、;:.:,:.:. ._ .、) 、} ".¨ー=v ''‐ .:v、冫_._ .、,_,,、_,,r_,ノ′ /i;i; '',',;;;_~υ⌒¨;;;;;;;;ヾ.ミ゙´゙^′.ソ.ヽ ゙{y、、;:..ゞ.:,:.:.、;:.ミ.:,:.:. ._υ゚o,,'.、) 、} ヾ,,..;::;;;::,;,::;):;:;:; .:v、冫_._ .、,_,,、_,,r_,ノ′
/:.:.:.:.:/:.:.:'"~ ヽ:.:.:.:.:\:.:.:.:.:.:.:.',
|-ー':.:.:.:.:.:ヽ _ノ:.:.:.:.:.:.:.:`ー-:.:.:!
!:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:!
l--ー― ''''''""""````'''''' ―ー-l
__,,,, -―''''''"" ̄ ̄ ̄ ̄ ̄ ̄ ̄` ''';;;;―- ,,,,__
, ''":.:.:.:.:.:.:.:.:.:._,, -ー=ニニ;, ""i!r=ニニ==''ー-、:.:.:.:.:.:.:.:.:.゛` 、
(:.:.:.:.:.:.:.:.:.:.:.:.:.ヾ'i;;;| ;=ニ( )ヽノi ミ{;<( )ニ=、 |;;;il/:.:.:.:.:.:.:.:.:.:_ノ
``''' ―ー- ;;_:i`! /` - '", ';;; ⌒ ;;;`,;;`''' ヾ l,'"`;―ー '''"´
l | /i ;;ハ ` ノ l.ソ .l
.| l. ./`-=、_,=-ノ、 i !/ .,'
!.' , i! l ! ゙i! l! .,' / まるでそびえ立つクソだ!
>>709 `-ゝ i! ;,'"⌒゛ヽ,; .i! .,' ‐"
', i! (~i ̄ ̄i~! .| ./
,,-―、 /:..l .l! |! ',t--ーt/ i! / ,'
/i :::', ,./:.:.:.', ',', ` -ー' . ノ .,' /,,,__
ノ.i ', :::! '゙:.:.:.:.:.:.ヽヽ `''''''" / ,' ',`-ヽ二二ニ'' ー-、
__,,,.! .ヽゝ ,,,_:!:.:.:.:.:.:.:.:.:.:` \.、 __ノ./ ',:.:.:.:\:.:.:.:.:.: ̄ ̄` 、
, '":.:.:/ ;; ::::|:.:.:.:.:.:.:.:.:.:.:.:.:\ニ二ニ- '"ヽ、 ',:.:.◎:.:、:.:.:.:.:.:.:.:.:.:.:.:.\
, '":.,!ヾ ...:::::::::!ヽ,:.:◎:.:.:.:.:.:.:.:.\ /ヽ_,,,,_|::\',:.:.:.:.<:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.i
まるでもなにも
春っぽいな
いやもう春でしょ、桜も咲いてるし
まるで春休みのようだ。
それは書き込みからわかるでしょう
2ちゃんの書き込で季節感を感じる 外では桜が咲いてるんですね(w
お ま え た ち そ ん な に ひ ま な ら て つ だ え よ
おそて まんつ えなだ たにえ ちひよ まなら
たまつたから おなに したよ
暇だな?
春だな
春らしいお題い このスレを取得し”春”を含むレスに”春爛漫おぱいそん”とレスするプログラムを作れ
>>723 レス無限増殖の悪寒。作っても動かしちゃ駄目だぞ。w
自分のレスに春が含まれてるじゃねーかよw
4/8の会合?行く人居るかな?
pythonでメール受信(pop)スクリプト書いている人居ない? なんか日本語対応のサンプルがあれば見せてもらいたんだが… お願いします。
標準ライブラリの poplib.py の末尾についてるサンプルプログラムじゃ不足なの? 日本語対応って、例えば From: や Subject: をデコードして表示するとか そういうことを言っているの?
IronPython1.0rc1あげ
731 :
デフォルトの名無しさん :2006/04/11(火) 19:33:03
raise NotImplementedError
python勉強用に1998年発行のPython入門ってどの程度使えますか?
プログラミングが初めてだった私には難しかったです。
翻訳がクソなのでいらいらします。
゙'. ,ト `i、 `i、 .、″ | .,.:/"" ゙‐,. ` / ` .,-''ヽ"` ヽ,,,、 ! 、,、‐'゙l‐、 .丿 : ':、 、/ヽヽ‐ヽ、;,,,,,,,,,-.ッ:''` .,"-、 ,r"ツぃ丶 `````` ../ `i、 ,.イ:、ヽ/ー`-、-ヽヽヽ、−´ .l゙`-、 _,,l゙-:ヽ,;、、 、、丶 ゙i、,,、 ,<_ l_ヽ冫`'`-、;,,,、、、、.............,,,,、.-`": │ `i、 、、::|、、、ヽ,、、. ```: : : ``` 、.、'` .|丶、 .l","ヽ、,"、,"'、ぃ、、,、、、、.、、、.、、、_、.,,.ヽ´ l゙ ゙).._ ,、':゙l:、、`:ヽ、`:、 : `"```¬――'''"`゙^` : ..、丶 .l゙ `ヽ ,i´.、ヽ".、".、"'ヽヽ;,:、........、 、、...,,,、−‘` 、‐ |゙゙:‐, ,.-l,i´.、".`ヽ,,,.".` `゙゙'"`'-ー"``"``r-ー`'": _.‐′ 丿 ,! j".、'ヽ,".、".、"`''`ー、._、、、 、._,、..-‐:'''′ .、,:" 丿 ゙l,"`"`''ヽヽ"`"` ```゙'''"ヽ∠、、、、ぃ-`''''": ` 、._./` ._/` `'i`ヽヽヽ`''ーi、、、: : 、.,-‐'` 、/` ``ヽン'`"` : `~``―ヽ::,,,,,,,,,,.....................,,,,.ー'``^ ,、‐'"` `"'゙―-、,,,,..、、 : ..,、ー'"'` : `‘"`―---------‐ヽ``"''''''""
人 :: --, -ヽ 、 l _, ( ) ヽ/⌒ヘ~ : ──--, -- ., 't,_,ノ丶 ( : ) / ! '` | ──-- -- ' ノ ,/ ● L_/ 'i, / l ,/ ● i, 'i しii 丿 うんち気持ちいい!! |`:、\ 'ii __,/ 'i、 ̄~~ ij 乙__ノi ちょ〜〜気持ちいい!! ^-ァ __,ノ ' 'l ! l '!, ,_ ,!_ \ l,~^''‐--::,,⊃ ) ) ) ) `'‐’
とぐろだけに切っても切れんな。
頭切ったらほぼコンパチだしな
それは後方互換性があるって言いたいわけ?
うんこに頭つけたらPythonってことだな?
742 :
デフォルトの名無しさん :2006/04/13(木) 22:31:45
Djangoの使い方さっぱりわかんない $ python manage.py runserver のあとは、なにすればいいの? とりあえず動くサンプルコード or URLちょうだいm(_ _)m
743 :
742 :2006/04/13(木) 22:35:05
$ python manage.py init もやりました
ぱいちんこ ., , メ-‐'" _"',| .、、._,i.""│._、 ._,,,/`,イ―'' ,`",l゙、、,,ジ'"`.```.|゙゛ .,,,-,i´,―--―''" 、、,!冖'"`、_、,,,/'゚,,."゙l-‐'' _,,,,,,,,,,,,,、 _,,,,,--''"`'",/゙ 、、.',j/′.、,,∠''"` .'_ヽ.',゙l.._,,、 ,,-'"゙` `゙゙''lーイ"` .‐′ _,..,,/ .ヽ、,i,i´ ``゙’ 、、シ":"'.「 .,,i´ `'i、\ ゙!, ._,-'"ン'` 、、`_,/`,i´ _,___,ニ='" .'゙、゙".゙l,,-'` .,/′ `'i,\ ′ .,,,,-',,,,、.,i´、_:_'_v`"゙i、| ```` ` 、_,Jィ""゙l, _,,,,、 : ,i´ ゙l. ヽ丶 .r‐'"、.l゙、、:,p=l┴丶 .!,,! `'"''''''冖''?'''゙~."""'."'/゛ ` : |,,r ゙l, 、 i、、、、:,,_,xl!ヴi,、 、、っ,,,, 、`',,,,、`、`、|、 |、 、"| .i、 lrr-''"゙,,ハ;、-'"゙゙'''''''"丶ヽ.,,冫``~`"`"~"``` `/ `'''' `''r,,、 、 、、 .、丶、.``ヽ,レ"° `` .j゚'=∠、````,,,,,∠ ~'ヽ```````、_,r‐'ヘi、 `゙'ーi,,_、、、、、: :._,,,r〃 " /^゚"'广 ,/ .,/゙゙゙'''ヶ―''''″ ` `゙^""""''"'"
745 :
デフォルトの名無しさん :2006/04/13(木) 22:55:39
$ python manage.py syncdb Error: Your action, 'syncdb', was invalid. Run "manage.py --help" for help. と、なるのはなんでか?
747 :
デフォルトの名無しさん :2006/04/14(金) 02:21:16
ねむい
人 (__) (__) ( ・∀・) )) /つ( ̄`ヽO_ノ⌒ヽ さてと、そろそろ寝るか ノ ) \ )) (__丿\ヽ :: ノ:::: ) 丿 ,:' )) (( (___,,.;:-−''"´``'‐' 人 (__) (__) < 寝る前にウンコー!! ( ・∀・ ) / _ノ⌒⌒⌒`〜、_ ( ̄⊂人 //⌒ ノ ヽ) ⊂ニニニニニニニニニニニニニニ⊃
749 :
django :2006/04/14(金) 16:19:30
$ python manage.py createsuperuser で、MySQLdb/connections.py が ValueError: year is out of range とでて、先に進めない。orz djangoなひとって、やっぱりpostgresなの?
ぜんぜんわからんが yearの値を正しくすればいいんじゃないのか?
>>749 SQLite使ってチュートリアルした時は、特に問題でなかったお( ^ω^)
752 :
django :2006/04/14(金) 18:24:49
Mac OSX 10.4.6なんだけど、MySQLdbが腐ってるのか、MySQLが腐ってるのか、OSXが腐ってるのか。。 もうだめだ、DB変えてやってみる
20060414 みたいな日付を 20060414 年として扱ってて datetime.datetime がエラー出してる気がする.
Macが腐っているのでは?
もしくは Date/DateTimeField に blank=True か auto_now/auto_now_add=True を入れてみるとか?
756 :
django :2006/04/14(金) 20:12:42
特定のUsernameをいれると、
>>749 のエラーが出るみたい
たとえば「_h_h_h_h」とか入れるとなる
なんだったんだろ?
こりゃいい。管理画面だけで鼻水が出た。 urls.pyのところはイマイチよくわからなかったけど。
django使って初めてadminページにログイン出来たときは勃起したよ。 環境設定までの道のりをもっとPLONEみたいに簡単になれば最高なんだけどな。 で、話し変わるけど、仕様がサッパリのthreadモジュールについて質問。 import thread logs = "" def func(a, b): global logs do this do that … for i in range(10): args = (a,b) thread.start_new_thread(func, args) f = open("log.txt","w") #全スレッドが終了した後に保存したい f.write(logs) f.close() 的なことをやりたいんだけど、各スレッドの作業が終わる前にメインが終わっちゃうんだけど、 みんなはスレッド使うときどうしてる?
そういうときは Thread.join() を使えばいいんじゃ
threading.Thread使ってるよ。 デーモンスレッドにわざわざ設定しなければ、メインスレッドは待ってる
762 :
759 :2006/04/15(土) 01:00:46
>>760 ,761
無事threadingモジュールで出来た。ありがとうございます。
)ヽ / _) / ..::::ヽ, ゝ――::::::く ( ..:::::::) ・. 。ゝ―― ..:::::'、゚ + ウンコキタ.*゜( O lーl O ::) * ゜ * ゝ,, ヽ/ ..:'、 。 (⌒ ⌒) `^> r '
764 :
デフォルトの名無しさん :2006/04/15(土) 22:53:43
python のスクリプトにリダイレクトで入力を渡せないんでしょうか? for line in sys.stdin.readlines(): print line, を main.py とかいう名前で保存して、 main.py < "test.txt" などとやると Traceback (most recent call last): File "C:\work\main.py", line 3, in ? for line in sys.stdin.readlines(): IOError: [Errno 9] Bad file descriptor といわれます。どうすればよいのでしょうか?
/ ̄ ̄ ̄ヽ . λ 〜 /⌒⌒""☆ ( ヽ 〜 プーン //ノノノ"\ヽ ( ) 〜 |(| ∩ ∩|)| (____) 〜 从.、 ▽ ノjl| /\⌒彡 / \ | || .|\/ ̄ へ _ V ノ / < ウンコ投げまくり♪ /  ̄ 只 | / ) || | | / ノ \_〓ノ\ /\/ / | \\) \/ / | \/ 彡 / \ ________|___ / | | | | | |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ l | |l / / / // || l l l l | | ||/- .._/ / 〃 || l ト l | | | ||| /_,.===一' L ___LLl | | ─w√レ─ | | | / /::::::::丶 /::::_|ハ l |─v─w√レ─ | 」 | / {:::::::::::::| l::::::::l i ハ/ | | / | | ヽニニソ lr-‐ソ i ハ | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
>>764 DOSでは
python main.py < test.txt
とやらなければいけない。
なぜかは知らん。
新しく作るウェブサイトのシステムを任されたから、Pythonで作っていいですか?って聞いたら「いや、PHPでやろう」って言われた。
Pythonで作られた有名商用サイトってどこかある? 次期案件の提案に使いたいのだけど。
ウンコをもらった俺は元気を取り戻した。 人 ウンコー! (___) (___) 今日は久しぶりに (○) (∀・,, ) 外に出たんだ ヽ|〃 (∩∩ )
772 :
デフォルトの名無しさん :2006/04/20(木) 09:50:02
うんこー♪ うんこイエーィ♪♪ 人 (__) | (__)∩⊂⊃ ⊂´⊃( ・∀・)/ | ♪ 人 | !⌒!!⌒!つ ,-=- (__) 〔〕 ||,─、(⌒)─、 | | (__)|||o ( ○ )( ○ )||.| 人 ( ・∀・||| / `ー ´ `ー- /へ (__) ( つ/|||ゝ ∩(__) > / ぺ> |(・∀・ )〜♪ し´し´ 人 ._ ┌┴--っ ) (__) 非 | [|≡(===◇ (__) // `(_)~丿 ( ・∀・)ハ_/Cハ ∪ ⊂ .) 呂~/ .) .(__.) 〜♪ (_/\_.)
>770 最近話題の各種フレームワークとかはあちこちで 使われてるんじゃないの? django だと washington post とかだったっけ?
つTurboGeras
777 :
770 :2006/04/20(木) 22:30:00
>>776 おお、ありがとうございます。
引き続きもう少しメジャー系のあればよろしくお願いします。
海外でも構いません。
>>776 あまりに重いんで普通に開いてるだけで
サーバに負荷を与えてるんじゃないかって
人 (__) (∞_) 川*‘ヮ‘) うんこ初心者だけど ( つ旦O よろしくです〜 と_)_)
IDLEで開発しています。プログラムを実行させるときは、毎回ソースの ウィンドウからF5を押します。 import先のファイルを修正したのち、メインのプログラムを上記の方法で 実行しても、修正が反映されないことがあるのですが、IDLEを再起動する以外に 打つ手はあるのでしょうか?
パイパイやパイチンコがあるんだから、 PyMan・・・Python Manual や PyUnCo・・・Python Universal Collection みたいなの、だれか作ってくれよ。
784 :
デフォルトの名無しさん :2006/04/22(土) 09:17:50
pythonの人は日本びいき
py穴
786 :
デフォルトの名無しさん :2006/04/22(土) 16:53:39
PILを使って画像処理をしようとしてるんですが,以下の プログラムをカラー画像で実行するとうまくいくのですが, モノクロ画像を入力するとputpixelが呼ばれた時点で終了してしまいます. とりあえず今はopenして開いたimageをimage2にコピーしてputしているのですが 何が問題か分かるかたいますか? import sys, Image im = Image.open(sys.argv[1]) (w, h) = im.size for x in range(h): for y in range(w): v = im.getpixel((x, y)) im.putpixel((x,y), v)
ちくとお聞きしたいのですが, Python2.4.2インストール済みの環境で, 利用したいモジュールが2.3.xまでしか対応していなかったため, 別ディレクトリに2.3.5をインストールしたいと考えています. 利用する時に適当にパスを通してやれば大丈夫かな,と考えているのですが, 複数のバージョンをインストールすると何か不具合等が出たりするのでしょうか?
''';;';';;'';;;,., ザッザッザ・・・ ''';;';'';';''';;'';;;,., ザッザッザ・・・ ;;''';;';'';';';;;'';;'';;; ;;'';';';;'';;';'';';';;;'';;'';;; vy;vy;v:yy;vy;v;yv;yv、 うんこスレと聞いて λVv vλ v;y v Vv vλv;y λv、 参りました λ Λ __ λ_ Λ _ヘ λ λ ヘ__ λ_ヘ λ λ 人 人 λ 人 人 人 __λ人 人 人 人 人 人 人 人 人 人 人 人 人(__人(_人 ) 人 (人.人__).人___) 人( 人 (__)__(__)_(__)(__)(__)__) (__)__(__)(__) (__)(__(__)___(__)__)(__)(__)__) ( ・∀・ ( ・∀( ・∀・ )∀( ・∀・ )・( ・∀・ ) ・∀・ )∀・ )
>>788 きちんと分けてあれば特に問題ないお( ^ω^)
''';;';';;'';;;,., ザッザッザ・・・ ''';;';'';';''';;'';;;,., ザッザッザ・・・ ;;''';;';'';';';;;'';;'';;; ;;'';';';;'';;';'';';';;;'';;'';;; vy;vy;v:yy;vy;v;yv;yv、 λVv vλ v;y v Vv vλv;y λv、 λ Λ __ λ_ Λ _ヘ λ λ ヘ__ λ_ヘ λ λ 人 人 λ 人 人 人 __λ人 人 人 人 人 人 人 人 人 人 人 人 人(__人(_人 ) 人 (人.人__).人___) 人( 人 (__)__(__)_(__)(__)(__)__) (__)__(__)(__) (__)(__(__)___(__)__)(__)(__)__) ( ・∀・ ( ・∀( ・∀・ )∀( ・∀・ )・( ・∀・ ) ・∀・ )∀・ )
792 :
788 :2006/04/23(日) 12:10:15
>>790 ご教示ありがとうございます。
これで安心してインストール出来ます。
うちのvineなんか2.2と2.3と2.4がインストールされてる気がするし全然平気だろ
795 :
786 :2006/04/23(日) 13:53:26
すいませんxとy逆でしたね.直したのですが,画像自体が 縦横同じ幅なのでやはり同じエラーがでてしまいました. import sys, Image im = Image.open(sys.argv[1]) (w, h) = im.size for y in range(h): for x in range(w): v = im.getpixel((x, y)) im.putpixel((x,y), v)
どんなにくるしくても おいしいものたべて うんこしたらなおるよ! 人 (__) 人 (__)∩ 人 (__) .( ・∀・ )/ (__) 人 (__) ⊂ ノ .(__) .人 (__) .('(・∀・∩ (つ ノ ∩・∀・)') .(__) .(__) ヽ 〈 (ノ .〉 / (__) ('(・∀・∩ ヽヽ_) (_ノ ノ ∩・∀・)') 人O,_ 〈 〉 ,_O.人 (__) `ヽ_) (_/ ´ (__) .(__) な お る よ ! (__) ⊂(・∀⊂⌒`⊃ ⊂´⌒⊃∀・)⊃
>>793 コピペにうつつを抜かしている香具師が約一名いるだけだろう。
正直つまんないしウゼェんだけど、罵倒するのも面倒なんでスルーしてる。
>>795 Pythonのバージョン(実行環境)とPILのバージョンは?
俺の環境では二値画像でもグレイスケール画像でもエラーは起きない。
>>795 は自分の判断で省略したプログラムを出して質問してない?
im を開いて,im からピクセル値を読み出してまた im に書き込んでるけど,実際は im_a を開いて, im_a からピクセル値を読み出して, im_b に書き込んでいるんじゃないの.
Image.getpixel() は,グレイスケール画像の場合は輝度値を表す数値を返す:
>>> im_b = Image.open('grayscale_img.png')
>>> im_b.getpixel((10, 10))
108
カラー画像だと,RGBまたはRGBAの各チャネルの強度を表すタプルを返す:
>>> im_a = Image.open('rgbcolor_img.png')
>>> im_a.getpixel((10, 10))
(115, 109, 93)
Image.putpixel() は,カラー画像の場合,タプルか数値を指定できる.タプルを指定する場合は RGB または RGBA の各チャネルの強度.数値を指定すると,R の強度を指定したものとみなされる.
>>> im_a.putpixel((10,10), (50, 80, 100))
>>> im_a.getpixel((10,10))
(50, 80, 100)
>>> im_a.putpixel((11,11), 100)
>>> im_a.getpixel((11,11))
(100, 0, 0)
グレイスケールの場合,数値で輝度値を指定できるが,タプルを指定するとエラー.
>>> im_b.putpixel((100,100), (256,10, 10))
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/PIL/Image.py", line 1165, in putpixel
return self.im.putpixel(xy, value)
TypeError: an integer is required
というわけ.
799 :
786 :2006/04/23(日) 18:14:15
pythonは2.4.2で実行環境はwindowsです.PILは1.1.5です. プログラムの省略はしていません. エラーが出るというか,実行時に 問題が発生したため,python.exeを終了します みたいなエラーがでて終了する感じです.
人 (__) (___) ウンコー(・∀・ ) ⊂ \ (⌒__) (_) 人 (__) (___) ( ・∀・)ウンコー / ⊃ (__⌒) (_)
801 :
786 :2006/04/24(月) 00:35:25
うーんLinuxで実行してみるとうまくいくんですが、、
Windows 2000
Python 2.4.2 (#67, Sep 28 2005, 12:41:11) [MSC v.1310 32 bit (Intel)] on win32
PIL-1.1.5
で
>>796 を実行したけど,特にエラー出さずに正常に完了しました
×
>>796 ○
>>795 他の画像ファイルで試したらどうか?
どの呼び出しでエラーが出るか追ってみたらどうか?
Python を再インストールしてみたらどうか?
♪ ∧ ∧ ウンコ ♪ヽ(゚∀゚ )ノ ゲリウンコ ( ヘ) ピーピーウンコ く ∧警∧ ( ・∀・) ∧∧ ( つヽ(゚∀゚ ;)ノ | | | ( へ) (__)_) く
// / .人 / (__) パカ / ∩(____) <ウンコ〜〜〜 / .|( ・∀・)_ // | ヽ/ " ̄ ̄ ̄"∪
betaのバージョン上がるの早ぇなぁ
808 :
デフォルトの名無しさん :2006/04/28(金) 22:47:24
でもなんかそういうのって、タグ書くのとタイプ量たいしてかわらないんだよね
(^w^) ( * ) ソフトクリーム食べて。 ,, ゙ミ;;;;;,_ ミ;;;;;;;;、;:..,,.,,,,, i;i;i;i; '',',;^′..ヽ ブリュブリュ ゙ゞy、、;:..、) } ブリュッ .¨.、,_,,、_,,r_,ノ′ /;:;":;.:;";i; '',',;;;_~;;;′.ヽ ゙{y、、;:...:,:.:.、;:..:,:.:. ._ 、} ".¨ー=v ''‐ .:v、,,、_,r_,ノ′ /;i;i; '',',;;;_~⌒¨;;;;;;;;ヾ.ミ゙´゙^′..ヽ ゙{y、、;:...:,:.:.、;、;:.:,:.:. ._ .、) 、} ".¨ー=v ''‐ .:v、冫_._ .、,_,,、_,,r_,ノ′ /i;i; '',',;;;_~υ⌒¨;;;;;;;;ヾ.ミ゙´゙^′.ソ.ヽ ゙{y、、;:..ゞ.:,:.:.、;:.ミ.:,:.:. ._υ゚o,,'.、) 、} ヾ,,..;::;;;::,;,::;):;:;:; .:v、冫_._ .、,_,,、_,,r_,ノ′
811 :
デフォルトの名無しさん :2006/04/28(金) 23:20:59
柔らかくてうまそうだ
>>809 まあでも、フレームワークがタグをしっかり閉じてくれたりとか、
pythonコードとタグが混在して見にくくなるのを防いでくれたりして
いいと思うんだけどね。
そこら辺は個人の感覚の違いかな〜
TALオススメ
''';;';';;'';;;,., ザッザッザ・・・ ''';;';'';';''';;'';;;,., ザッザッザ・・・ ;;''';;';'';';';;;'';;'';;; ;;'';';';;'';;';'';';';;;'';;'';;; vy;vy;v:yy;vy;v;yv;y ウンコー! λVv vλ v;y v Vv vλv; λ Λ __ λ_ Λ _ヘ λ λ ヘ__ ウンコー! ウンコー! 人 人 λ 人 人 人 __λ人 人 人 人 人 人 人 人 人 人 人 ウンコー! 人(__人(_人 ) 人 (人.人__).人___) 人( 人 (__)__(__)_(__)(__)(__)__) (__)__(__)(__) ウンコー! ウンコー! (__)(__(__)___(__)__)(__)(__)__) ( ・∀・ ( ・∀( ・∀・ )∀( ・∀・ )・( ・∀・ ) ・∀・ )∀・ ) 「ウンコから来ますた」「うんこから来ますた」「ウンコから来ますた」「うんこから来ますた」
>>813 >>815 サンクスです。
なんかDOMっぽくやるのしか想像してなかったんですが、
template書いてそこに変数値を突っ込むのが便利そうですね〜
>>799 実は、python.exeへのパスを通してないとか、そういうオチは無いですか?
もしくは、PILを導入したPythonバージョンへのパスではないとか。
試しに、コマンドプロンプトから「path[ENTER]」とやって、python.exeへのパスが
通っているかチェックしてみてください。
うんこって、うんこしますか?
tail recursion うんこ
( ^ω^) ここはかわいいうんこスレですね
>>821 おれもそう思うが、他の奴はそうでもないらしいぞ。
825 :
デフォルトの名無しさん :2006/05/02(火) 22:32:32
ゲームをつくっているんだが、クラスの設計がよくわからないプログラム初心者です。 ゲームって、ただのボードゲームなんだけど、たとえば、どんなクラスをつくればいいのか とか、メソッドの命名規則とかって最初に決めておかないとすぐぐちゃぐちゃになる気が する。っていくか現にぐちゃぐちゃなんです。普通、クラスとかの構造は全部先に決めるもの なの?それとも、慣れてくるとクラスをいきあたりばったりに作ってもぐちゃぐあにならないの? 助けてください。やっぱり紙とかにクラスの継承図とかを書いたほうがいいんでしょうか。
>>825 そんなあなたにはユニットテストがオススメ。
どんなにぐちゃぐちゃにしても、ちゃんと動くことだけは保障されるので
好きなように破壊できます。
>>825 行き当たりばったりでOK。
クラス設計ってのは、クラス間の相互作用(インスタンスの数や主従関係、
メソッドの呼出し関係など)を頭の中でシミュレートして、コードを書く前に
動作を検証するとゆーことであって、よほどの経験者でなければ無理な芸当。
中途半端にクラスの継承図なんかを描いたところで、コードを書き進めるうちに
主従関係が逆転したりカプセル化を無視したデータ参照が必要になっちゃったり
最初から全部書き直したい衝動に駆られたりする。
まあ俺やお前のような初心者は泥縄式の試行錯誤に甘んじておきなさいってこった。
ボードゲームならルールがはっきりしててクラスが作りやすそうだけど プレイヤーを主観にするか、ボード上のオブジェクトを主観にするかで迷いそう と適当なことを言ってみる
>>825 皆の言うように、とりあえず行き当たりばったりやってみて学ぶというのでも良いと
思う。でも、一度書いたコードを捨てる勇気だけは忘れないように。w
あと、デザインパターンとか知らないのであれば一通り学ぶ価値はある。
// / .人 / (__) パカ / ∩(____) <ウンコ〜〜〜 / .|( ・∀・)_ // | ヽ/ " ̄ ̄ ̄"∪
デザインパターンはバッドノウハウだと思う 上級者同士で、お互いが別々にたどり着いたやり方が同じ事ある事を確認するのに 用いるならいいのだが、 初心者が「こういう場合はどのパターンですか?」と先輩に聞く、みたいな形になってしまうと 結局何にも生きない気がするんだよな
>>831 そこまで頭悪い奴を基準にする必要はない。
初心者かどうかと頭悪いかどうかは別問題だよ。w
プロダクトの製造品質を誰が作っても一定にしたいがために パターンにするんじゃなかったっけ? 作品ではなく製品を生み出すためのひとつの方法だと認識してる
>>833 それは偏狭な考えだと思うよ。
確かにパターン信者みたいなのはうざいけど、どういう作品を作るにせよ
参考になる部分はあるよ。
>>825 この状況だとデザインパターンよりリファクタリングじゃないかな。
他人の書いたクラスとかを読んでみるほうがいいかも。
836 :
835 :2006/05/03(水) 03:16:07
パターンと、それを適用したときのメリット、デメリットを示しているのが デザインパターンなどのパターンカタログの役割だと思う。 パターンより粒度が小さい部分はリファクタリングのカタログの出番。 こちらもメリット、デメリットが書いてある。 より粒度が小さい最初はリファクタリングのカタログ本の方から入った方が 取っつきやすいと思うよ。 あるいは最近出たプレファクタリング本も面白い。 CRC (Class-Responsibility Card) もどき、UMLのクラス図もどき(クラス名と メソッド名を箇条書きだけ)だけ扱ってて、ゆるくてPythonにも合いそうだ。
゙'. ,ト `i、 `i、 .、″ | .,.:/"" ゙‐,. ` / ` .,-''ヽ"` ヽ,,,、 ! 、,、‐'゙l‐、 .丿 : ':、 、/ヽヽ‐ヽ、;,,,,,,,,,-.ッ:''` .,"-、 ,r"ツぃ丶 `````` ../ `i、 ,.イ:、ヽ/ー`-、-ヽヽヽ、−´ .l゙`-、 _,,l゙-:ヽ,;、、 、、丶 ゙i、,,、 ,<_ l_ヽ冫`'`-、;,,,、、、、.............,,,,、.-`": │ `i、 、、::|、、、ヽ,、、. ```: : : ``` 、.、'` .|丶、 .l","ヽ、,"、,"'、ぃ、、,、、、、.、、、.、、、_、.,,.ヽ´ l゙ ゙).._ ,、':゙l:、、`:ヽ、`:、 : `"```¬――'''"`゙^` : ..、丶 .l゙ `ヽ ,i´.、ヽ".、".、"'ヽヽ;,:、........、 、、...,,,、−‘` 、‐ |゙゙:‐, ,.-l,i´.、".`ヽ,,,.".` `゙゙'"`'-ー"``"``r-ー`'": _.‐′ 丿 ,! j".、'ヽ,".、".、"`''`ー、._、、、 、._,、..-‐:'''′ .、,:" 丿 ゙l,"`"`''ヽヽ"`"` ```゙'''"ヽ∠、、、、ぃ-`''''": ` 、._./` ._/` `'i`ヽヽヽ`''ーi、、、: : 、.,-‐'` 、/` ``ヽン'`"` : `~``―ヽ::,,,,,,,,,,.....................,,,,.ー'``^ ,、‐'"` `"'゙―-、,,,,..、、 : ..,、ー'"'` : `‘"`―---------‐ヽ``"''''''""
pythonは糞ということでつね!
840 :
デフォルトの名無しさん :2006/05/03(水) 18:36:00
すんません、Python初心者です。n 個の空要素を持つリストを得るときに list = [] for i in range(n): list.append([]) みたいにやってるんですが、これをスマートに書けませんか?
何で「先人の設計を調べてパクれ」と言わないの? てめぇが試行錯誤しかしたことのない初心者ばっかりだから?
842 :
デフォルトの名無しさん :2006/05/03(水) 18:40:50
python class でも記述するようになってから C++ のクラスまで、殆んどのメンバーを public で書くようになってしまった。 最初から、絶対に private にするメンバーは python でも under score を付ける。でも 多くのメンバーは最初に private/protected にしても、途中で public 側にシフトして いくことが多い。(get/set method を介在させるなんて public にするのと似たようなも の。) 現在は public をデフォルトにコーディングしておき、最後にまとめて private/protected 宣言したほうが合理的な気がしている。 python/C++ 両方を使う方で、他にも私のような方がいるでしょうか。
>>840 とりあえず内包表記だと
List =[[] for i in range(n)]
かな。
スマートな回答: list = [[] for i in range(n)] 間違った回答: list = [] * n
845 :
デフォルトの名無しさん :2006/05/03(水) 18:49:34
どうよ List = list(eval("[],"*n))
>>843-845 ありがとうございます。 [ [] for i in range(n) ] でいかせてもらいます。
847 :
825 :2006/05/03(水) 20:37:25
みんなアドバイスありがとう。とりあえず、 試行錯誤して先人のソースを見てみるよ
>>844 …Pythonの思想的に、そういう書き方は肯定されているのでしょうか
なんだかPerlの香りが漂ってきて、ちょっと気になりました…
人 :: --, -ヽ 、 l _, ( ) ヽ/⌒ヘ~ : ──--, -- ., 't,_,ノ丶 ( : ) / ! '` | ──-- -- ' ノ ,/ ● L_/ 'i, / l ,/ ● i, 'i しii 丿 うんち気持ちいい!! |`:、\ 'ii __,/ 'i、 ̄~~ ij 乙__ノi ちょ〜〜気持ちいい!! ^-ァ __,ノ ' 'l ! l '!, ,_ ,!_ \ l,~^''‐--::,,⊃ ) ) ) ) `'‐’
pythonはうんちということでつね!!
回す必要ないじゃん♪ a = [[]] * 10 print a もういないか。
>>850 pythonはうんちということでつ!!
>844 2番目の昔やってハマったっす…
休みなんだからそんな顔しないで♪
>>851 は
a.append("_")
print a
するとかわいいぞ
a[0].append("_") だごめん
>>> a = [[] for i in range(10)]
>>> a
[[], [], [], [], [], [], [], [], [], []]
>>> a[0].append('_')
>>> a
[['_'], [], [], [], [], [], [], [], [], []]
>>> a = [[]] * 10
>>> a[0].append('_')
>>> a
[['_'], ['_'], ['_'], ['_'], ['_'], ['_'], ['_'], ['_'], ['_'], ['_']]
つまり
>>851 は微妙に意味が変わるので要注意
あー、なるほど。参照になってるってことですね。 a = [[]] b = a + a + a b[0].append(1) これも同じでした。 実は好きではあってもほとんど使っていなくて調べていなかったんですが 前にちょっと試したときはコピーしたつもりでも参照になっていて メモリー使用量がぜんぜん増えないのを思い出しました。 全てをオブジェクトとして扱う?と言うことからそうなっているんですかねー Pythonあったまいぃぃ♪
まだ俺が慣れてないからだと思うけど、ちょっと気をぬくと配列が 全部参照になってたりして、頭抱えることになる……。
タプルなら参照になっても安心
おいしいものたべて うんこしたら ちがでたよ! ハ_ハ /⌒ヽ ( ゚∀゚)') チガデター { (/⊃ ノ ___ ヽ (__⌒ワ') (三(@ に二二二) _) r' └───` ハ_ハ ('('д`∩ ヒリヒリ… ヽ 〈 ヽヽ_)
pythonはうんちということでつね!!
x|y、x&yとx or y、x and yの違いを実感する瞬間って?
>>> x = 3 >>> y = 5 >>> x|y, x&y, x or y, x and y (7, 1, 3, 5)
s ="abc" if len(s) and s[4] == 'd': print s if len(s) & s[4] == 'd': print s
len(s)じゃなくて len(s) > 3 とかだな
>>> s = 'hodge' >>> t = 'podge' >>> u = False >>> s and t and u False >>> s | t | u Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: unsupported operand type(s) for |: 'str' and 'str' >>>
うんこもGW
870 :
デフォルトの名無しさん :2006/05/07(日) 01:25:13
Python Shellでちょっと弄ってるだけの初心者なんですが、 >>> a = [1,3,5,6,7,9,7,10,4,3] >>> b = a >>> b.sort() >>> b [1, 3, 3, 4, 5, 6, 7, 7, 9, 10] >>> a [1, 3, 3, 4, 5, 6, 7, 7, 9, 10] aまでソートされてしまうのは何故でしょうか? されないようにするにはどうすれば良いでしょうか?
872 :
デフォルトの名無しさん :2006/05/07(日) 01:50:33
>>871 そんなテクニック?は初めてのpythonに載ってないので・・・
ありがとうございました。
>>872 書いてある
7.5節リファレンスとコピー(第2版では139ページ)のところを目を皿のようにして読め
875 :
デフォルトの名無しさん :2006/05/07(日) 02:16:44
>>874 載ってました。
流し読みしてたんで、記憶に残ってませんでした。
やはりきちんと読まないとダメですね。
きちんと読んでも、実際こうやって問題にぶつからないと 書いてあることの本当の意味はわからないことがあるよ。
紙面だけじゃ、何をやってるのか理解しにくいからな。 実際に動かして、いろいろ条件を変えてみてどういう動作になるかを見ないと。
チュートリアルの最初に 「Pythonは参照渡しが普通」 って書いてあったと思うんだけど。
人 (_) (__) (;o;)つ うんこー♪ 人 (_) ( ;o;) うんこ〜〜 ( ) 人 (;o;) うんこになったよぉ〜 (__) 人 (_) ( ) / ̄ ̄ ̄ ̄ ̄ ( ;o; ) < ママぁ〜、生まれたよぉ〜!! | | | \_____ (__)_)
プログラミング初心者に参照渡しとか逝ってもなにそれ('A`)って感じだと思う
プログラミング初心者とPython初心者は別物
そもそもプログラミング初心者でpythonに手をつける人は日本人にいるのか疑問。
ウンコー ウンコー 人 人 (__) (__) ≡≡(__) ≡≡(__) ≡≡ミ,( ,,・∀・) ≡≡( ,,・∀・) ≡≡ミ_u,,uノ ≡≡ミ_u,,uノ ピョンピョン "~" """ ::: "~""~" """ ::: """ ::
参照渡しとか知ってるなら、
>>870 さんの「aまでソートされてしまうのは何故でしょうか?」は無いんじゃないかな。
解決方法はまた別だけど。
うんこおおおおおお
そもそも日本人著者の書籍が無い。
そういやcookbookはまだかいな。 ちまちましか進んでないように見えるのは、中の人は専業じゃないからかな。
それ用の関数もあったんか。 >import copy > >x = copy.copy(y) # make a shallow copy of y >x = copy.deepcopy(y) # make a deep copy of y でも関数化すれって事のような気がする。
deepcopyはオブジェクトのコピーぐらいにしか使えない っていうか、処理が重いのでループに組み込むとスピード落ちる。 速度を気にしないアプリなら問題ないけどね。
Python使いは本なんか買わないのかと思てたよ。
>>889 そうなんですか。使ったことすらないのでさっぱり。
pythonの日本語の本は全部うんこ
じゃ ションベン レベルのものを一つ頼むよ ショーン・ペン みたい
うんこお疲れ!
宣言が必要ないので油断してたら、参照する変数がねえよグルァって怒られた。 初期化っていうか代入式書かないと、参照だけで自動作成はしてくれないのね。 適当に選んでくれるから普段は意識しないけど、型があるからなのか?
参照だけで自動作成なんてやったら変数名打つときにひどく神経使うことに なるだろうな
ほとんど perl だけしかやってなくて python 始めたらそのエラーばっかりだった。 変数の場合は大抵代入使うから慣れた。 しかし、リストや辞書をループで LIST.append(Value) みたいに要素代入するときは、ループの前に LIST=[] って初期化しておく必要あるね。
>897 >896
だらしない言語を最初に学んだ奴はだらしないな
>>896 エディタの単語補完使うとそうでもないよ
まあ、いろんなとこで使う変数にaとかacとかaadとか付ける人には向かないな。
perlはそれを防ぐ為にuse strictとuse warningsが常識じゃ
>>899 まあpythonはだらしないうんこだね。
904 :
デフォルトの名無しさん :2006/05/09(火) 23:37:45
(・∀・)ニヤニヤ
>902 なにそのVBふざけてるの
>>899 違うな。
だらしない奴が好むのがだらしない言語ってことだろ。
類は友を呼ぶって言うからことわざどおりだな。
だらしない言語って何だ? だらしないプログラムが書ける言語ってことなら ほとんどの言語が当てはまるよーな・・・。
むしろpythonにようやっとだらしない奴らが大勢参入してきたってことだな
>895 意味がよく分からないんだけど なにも代入していない変数に 何かを参照しようとする場面って どういう状況?
だらしないC/C++/Javaプログラマをどうにかしてくれ。 奴らの書くスパゲッティコードは難読すぎて理解できん。
>>909 >895じゃないけど、例えば条件分岐や try〜error の構文で、
通常起こりうる場合のブロックにのみ変数を代入で定義していて、
ブロックを抜けた部分でそれを参照してる場合とか。
もちろんプログラムのミスなんだけどさ。
>>911 明らかにエラーになったほうが嬉しい状況だな
カウント数えたりするときの Count += 1 も未定義だとエラーになるな。この演算子は未定義なら1にするでいいんじゃないのかな
>>913 明らかにエラーになったほうが嬉しい状況だと思う
メリットよりはるかにデメリットの方が大きいのを理解してくれ
>>913 もしtypoしてCoumt += 1と打ってしまっていてもエラーにならない、
と言えばデメリットと思えまいか
>>916 その場合は、他でtypoしてない「Count」を参照するときにエラーが出るだろう。
つか、自動初期化のメリットが全く理解できない。 単なる行数節約?
エラー処理をしなくても良いので、エラー処理のコードを書かなくてよい。 もちろんエラーが発生してくれた方がありがたいことも多いが。 NullObjectパターンの一種と考えればいいんじゃなかろか。
>>907 たんに「pythonこそは最高だ。それ以外の言語はすべてだらしないし、
だらしない言語を使う奴もだらしない」って言いたいんでしょ。
選民志向でもあるのかね。py厨は。
>920 なら素直にNoneつっこんどけと
pythonこそは最高だ。それ以外の言語はすべてだらしないし、 だらしない言語を使う奴もだらしない
2行のものが1行になるなら10,000行が5,000行になる可能性もあるので 「単なる」ですまない無限の可能性(~e~)
>>925 その代わり可読性が80%減少する諸刃の剣
>>913 Pythonの+=は後付けだからね
Count =+ 1ならエラーにならないって知ってた?
さすが、だらしなくない言語はすばらしい仕様をお持ちですね。
Perl 使うと頭も腐っちゃうんだな。可哀想に。
誰がpython以外の言語の悪口を言えといった。 そんな誰もが分かることを改めて書かなくてもよいぞ。 ↓ 引き続きpythonの話題でお楽しみください。
さいたまのAAが一番似合う言語であることについて
ごめん、俺のせいで荒れた。出自が手間を省けるawkじゃないんだから、 不当な文句だったよ。
>>927 確かにエラーにならないんだけど、
何度繰り返しても、1にしかならないです(´・ω・`)
=+ってもしかして、Count = 1って事?
pythonこそが最高の言語です。それ以外はだらしない言語。 何この偉そうな態度。
はやく = +1 に気付け。
// 知られざるC言語の演算子 // 標準仕様には入っていない(と思う)のですが、 // 初期ccでサポートされていたこともあり、 // たいていのコンパイラで実装されている知られざる演算子をご存じですか? int main(void) { int a=10,b=7; printf("割ってかける演算子、かけて割る演算子\n"); // 3で割ってから3でかける演算子 a/*=3; // 5でかけてから5で割る演算子 b*/=5; printf("a=%d b=%d\n",a,b); return 0; } ってのを思い出した 激しくスレ違いだが ってのを思い出したw スレ違いだが
まあ、ぶっちゃけそんな暗号文書かれると困るわけだが。
結局、=+って+=の代替にはならないよね(´・ω・`)
939 :
936 :2006/05/11(木) 10:15:16
だらしない言語はすぐに暗号文になるんだよね。
>>940 つまりC言語はだらしない言語ってことだな、君が言うには。
942 :
デフォルトの名無しさん :2006/05/11(木) 12:44:30
人間がコンピュータの都合に合わせて枝葉まで細かく指示しなきゃいけない言語はだらしないといえる。 人間が創造的な部分にのみ集中できる言語が良いものだ。
えっ だらしないって lazy のことじゃないの
scipy使ってる人居ませんか? matlabに大規模な方程式とかせたりするのを scipyにやらせようと思うんですよ. どっちのがいいのかね
>未定義なら1にするでいい ってネタで言ってるんですよね? >938 とかはまさか本気じゃないですよね?
はぁ?
scipyを使った教科書?みたいなのが前紹介されていたな。 文献少ないし、例も少ないのがだるいわ
950 :
944 :2006/05/11(木) 18:28:41
行列の要素数が5000000くらいのものです
>>950 次数は?
いや、MATLAB/SciPyのアドバイスはできないんだけど興味があったんで。
952 :
944 :2006/05/11(木) 18:46:34
詳しくはいえないんですけど、 今のところ線形か2次です。 matlabだと行列データをワークスペースにロードするだけで メモリを食うもんで、python好きだから使ってみようと思って。
>>952 要素数5,000,000の行列って倍精度実数の密行列だと40MBだよね。
メモリが少なすぎるのかMATLABがメモリ食いなのかどっちなんだろう。
単に方程式が解ければいいだけ、ならSciPyの方が軽いかもね。
>>941 python以外の言語はすべてだらしない言語だそうだよ。
このスレの住人の見解としては。
>>954 なかなかだらしない発言だな。w
文脈から考えれば「だらしない言語」は代入しなくても参照できる某言語のことを
指しているのは明らか。
そーゆーとこでRuby厨の真似はいらんから!
>>956 結局他の言語を馬鹿にしたいのに変わりはないわけだろ。
排他的なとこってあるよね。 python。
わざわざpythonのスレにきて 煽ってる連中が一番だらしないってことだろ ちゃんと働けよw
>>958 馬鹿にするというか見下すという感じかな(同じか)。
Py厨が他言語をほめるところなんて見たことないし。
2.4のドキュメント日本語化終了したいみたいですね。
963 :
デフォルトの名無しさん :2006/05/12(金) 04:42:55
だらしないの一言でエラク釣れたなw 普段から回りにだらしないだらしない言われてて気にしたのか? だらしないのはお前ら自身のせいじゃないぞw お前らのパパやママの愛情が足りなかったからだ 恨むんならパパやママを恨むんだなw
次のスレタイには「だらしない」を入れよう。
python ってなんてよむんですか? ぱいそん?
ぱいそん!
だらしないのが嫌いなら、 まずは、だらしないの定義を しっかり詰めてもらわないと。
>>967 だから代入しなくても参照できることだろ
969 :
デフォルトの名無しさん :2006/05/12(金) 17:39:46
こんな自分がpythonを使うことをお許しください。 DOS窓で、日本語を入力することができません。 検索をしたり、マニュアルを見ても、その方法を書いてあるところが わかりません。お手上げです。 どうすれば平仮名などを入力できるのか、教えてください。
971 :
969 :2006/05/12(金) 17:53:21
>>970 ありがとうございます、できました!!!
日本語が入力できないと、やりたいことが先に進められなかったので、
本当にうれしいです。
つーか、pythonには似たような二つのスレを維持するほどの 流量と話題も、さらに言えば必要も無いよ。
( ´_ゝ`)フーン
pythonって、static scope && dynamic bindingってことでいいの?
pythonって、だらしなくない言語ってことでいいの?
>>975 イクナイ
言語がだらしないとだらしなくないとかナンセンス。
バカっぽいからこの話題終わりにしない?
自分が好きな言語以外の言語をほめるなんて 普通どの人もやらんだろ。 むしろpython好きはpythonに満足して他の言語に興味が無いだけだ。 他の言語をバカにする傾向があるのはC++やJavaやってる奴ら。 自分たちが主流だと信じていつつも、なぜか開発の方法論は乱立し しかもどれをやっても楽にならない。 横目を見ればインタプリタのスクリプト言語やってる奴らが楽しそう。 そんな状況ではひねくれずにはおられまい。
うんこAAじゃ荒れないと見て、 ついに言語論争を煽動し始めたか。
PythonとJavaとC++とJavaScriptが好きでたまらない俺はどうすればよいですか。
たしかにC#好きになれそうな気がする(`・ω・´)
C# + IronPython 最強。 Java + Jythonから乗り換えますた。
>>978 うんこAAは無視できても、他言語をだらしないと貶めるのには
ついついのってしまうわけですね。Py厨は。
次スレ誰か立てる?敗北者スレを流用?
>>982 IronPythonって使い心地とかどう?
>>984 ふたつもスレが必要なほどレス数もないので流用でいいんじゃ
ないの?
>>985 まさにglue言語としての本領発揮。
IronPythonでさくっとプログラム作って、GUIの皮をVSで楽チンに作れるのはメチャいい。
.NET Frameworkのライブラリ全部を簡単に使えるのは、想像以上に快適だったよ。
ASP.NET + IronPythonはまだやってないけど、同じノリでできれば嬉しいな。
はじめてのぱいそん13章突入 報告に上がりました。 ironpythonを使えるのはいつのことやら
>>987 へー、結構よさそうだな。ちょっとやってみるかな。
ありがとう。
ああ、SubEthaEditね。 Mac用のエディタで複数の人が編集できる。 編集した人ごとに色付けすることが出来るし、エディタのイメージに忠実なHMTLファイルを作ることも出来る。 Pythonの文法モードに対応してるMac用のフリーエディタは(Emacs系を除けば)これくらいだよ。
流石にインデンテーションの設定はできるんじゃないかなぁ…
995 :
デフォルトの名無しさん :2006/05/14(日) 20:15:22
インデントをスペース2個分にして、無駄なインデントを減らせばいいのさ。
996 :
デフォルトの名無しさん :2006/05/14(日) 20:19:22
pythonで書いてあるアップローダーのプログラムってない?
1000
ぴチョン
゙'. ,ト `i、 `i、 .、″ | .,.:/"" ゙‐,. ` / ` .,-''ヽ"` ヽ,,,、 ! 、,、‐'゙l‐、 .丿 : ':、 、/ヽヽ‐ヽ、;,,,,,,,,,-.ッ:''` .,"-、 ,r"ツぃ丶 `````` ../ `i、 ,.イ:、ヽ/ー`-、-ヽヽヽ、−´ .l゙`-、 _,,l゙-:ヽ,;、、 、、丶 ゙i、,,、 ,<_ l_ヽ冫`'`-、;,,,、、、、.............,,,,、.-`": │ `i、 、、::|、、、ヽ,、、. ```: : : ``` 、.、'` .|丶、 .l","ヽ、,"、,"'、ぃ、、,、、、、.、、、.、、、_、.,,.ヽ´ l゙ ゙).._ ,、':゙l:、、`:ヽ、`:、 : `"```¬――'''"`゙^` : ..、丶 .l゙ `ヽ ,i´.、ヽ".、".、"'ヽヽ;,:、........、 、、...,,,、−‘` 、‐ |゙゙:‐, ,.-l,i´.、".`ヽ,,,.".` `゙゙'"`'-ー"``"``r-ー`'": _.‐′ 丿 ,! j".、'ヽ,".、".、"`''`ー、._、、、 、._,、..-‐:'''′ .、,:" 丿 ゙l,"`"`''ヽヽ"`"` ```゙'''"ヽ∠、、、、ぃ-`''''": ` 、._./` ._/` `'i`ヽヽヽ`''ーi、、、: : 、.,-‐'` 、/` ``ヽン'`"` : `~``―ヽ::,,,,,,,,,,.....................,,,,.ー'``^ ,、‐'"` `"'゙―-、,,,,..、、 : ..,、ー'"'` : `‘"`―---------‐ヽ``"''''''""
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。