Pythonについて0から教えてください

このエントリーをはてなブックマークに追加
1fool
Pythonの入手方法からPythonでのプログラミングの仕方
について0から教えてください
お願いします
2デフォルトの名無しさん:2005/09/07(水) 15:33:00
apt-get install python
3デフォルトの名無しさん:2005/09/07(水) 15:34:54
自己解決しました。
4デフォルトの名無しさん:2005/09/07(水) 15:50:29
もうあきらめたか。
まあ、あきらめが肝心だな。
5fool:2005/09/07(水) 16:05:16
あ、いや、まだ・・・・
6デフォルトの名無しさん:2005/09/07(水) 16:32:27
テメーが適当な書き方でスレ立てるから適当なレスしか帰ってこないんだよ
入手方法から知りたいなら環境くらい書いただろうだ
7fool:2005/09/07(水) 16:43:34
>>6
あなたには聞いていませんよ。とても迷惑だから消えてください。
8fool:2005/09/07(水) 16:46:52
>>7はにせものです
9fool:2005/09/07(水) 16:49:36
>>6
OSはWindowsです
10デフォルトの名無しさん:2005/09/07(水) 17:10:40
11デフォルトの名無しさん:2005/09/07(水) 17:29:49
日本語化されたPythonってないですか?
12fool:2005/09/07(水) 17:30:42
>>10
ありがとうございます
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
>>9
http://www.python.jp/Zope/download/pythonjpdist
とりあえずここからバイナリ落として来い
16デフォルトの名無しさん:2005/09/07(水) 18:26:28
>>14
違いは、""は中に"が書けない、''は中に'が書けない。
17デフォルトの名無しさん:2005/09/07(水) 18:35:14
18デフォルトの名無しさん:2005/09/07(水) 18:57:05
>>16
ありがとうございます
よくわかりました
19fool:2005/09/07(水) 20:03:36
Pythonはやっぱ面倒になってきたので
PHPに変えます。
20デフォルトの名無しさん:2005/09/07(水) 20:11:04
それじゃあ削除依頼してきてくださいね^^
21デフォルトの名無しさん:2005/09/07(水) 22:52:30
次スレは
PHPについて0から教えてください
だな
22デフォルトの名無しさん:2005/09/07(水) 22:54:39
>>21
phpについて教えてください!
http://pc8.2ch.net/test/read.cgi/tech/1125139051/
もう既にある。あきらめるしかないな。
23デフォルトの名無しさん:2005/09/07(水) 23:10:40
文字列の変更ができないのはナゼですか?
できたほうが便利じゃないの?
24デフォルトの名無しさん:2005/09/07(水) 23:47:16
>>22
0からじゃないじゃん
25デフォルトの名無しさん:2005/09/08(木) 01:16:12
多分マイナスから教わってもいいように配慮してるんだと思う。
26デフォルトの名無しさん:2005/09/08(木) 03:40:13
日本語ファイル名だとうまく動かない
27デフォルトの名無しさん:2005/09/08(木) 03:45:48
ユークリッドの互除法できた
たった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にあたるものは必要ないようですが……
29デフォルトの名無しさん:2005/09/08(木) 06:23:11
おっと、クラスメソッドでは意図した意味にならないようだ
ただ単にメソッド、もしくはメンバ関数と言い換えたい

サンクス
30デフォルトの名無しさん:2005/09/08(木) 19:02:58
>>1
まずPCには一切触れず
机とPC本体への雑巾がけから始めろ
全てはそこから始まる
31デフォルトの名無しさん:2005/09/08(木) 19:15:09
パイ損なんて
勝手にインデントすると起こられるし
fじゃこし
32名無しさん@そうだ選挙に行こう:2005/09/11(日) 09:00:38
Tkinterってなんて発音するの?
33名無しさん@そうだ選挙に行こう:2005/09/11(日) 10:58:01
てぃーけーいんたー
じゃね?
34名無しさん@そうだ選挙に行こう:2005/09/11(日) 17:10:28
エディタのOption -> Code Context って何?
上部に灰色のエリアが現れるんだけど
35デフォルトの名無しさん:2005/09/14(水) 16:32:03
>>34
何のエディタ?
36デフォルトの名無しさん:2005/09/14(水) 23:43:10
Idleだと思われます。

そのエリアは、自分の作業している階層のヒントが表示されるものです。
長いコードを書けば分かる。
たとえば、次のようなコードをいれて改行しまくると分かりますよ。

def foo():
  for i in range(10):
    print i
37デフォルトの名無しさん:2005/09/16(金) 03:30:22
>>36
レスありがとうございます
色々試してみたんですがやっぱり変化ないです
うーん、なんでだろう……
そのコードの後に改行を入れたらいいんですよね
38デフォルトの名無しさん:2005/09/16(金) 21:29:44
みなさん!協力を、お願いします
39デフォルトの名無しさん:2005/09/16(金) 21:34:48
隠れないと出てこないな、もっと縦長なソースを書いてみそ。
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))の間違いかなぁとおもって聞いてみた
漏れの勘違いで、本当は何か違いがあるなら教えてくれ
41デフォルトの名無しさん:2005/09/17(土) 01:40:28
>>36-37
そのソースコードだと print i の後に37個改行入れて初めて分かる
42デフォルトの名無しさん:2005/09/17(土) 10:52:27
>>40
4番目のrectの中身はリスト、
5番目のrectの中身はリストのリスト
4342:2005/09/17(土) 10:54:39
ごめ、リストじゃなくてタプルだった。
44デフォルトの名無しさん:2005/09/18(日) 00:22:46
5 番目の外側の括弧は冗長なものだから
4 番目と 5 番目は等しいよ (両方とも 1 次元のタプル)
著者がどういう意図なのかはわからないけど
45デフォルトの名無しさん:2005/09/18(日) 00:44:33
やっぱタプルのタプルと勘違いしてるのでは


ところで、いい加減あっちに合流してここは下に落としたい。
ただでさえ過疎ってるんだから。

Pythonのお勉強 Part7
http://pc8.2ch.net/test/read.cgi/tech/1125159015/
46デフォルトの名無しさん:2005/09/18(日) 23:53:15
You is-a fool man, hahaha.
4742:2005/09/19(月) 23:06:27
しまった。。
>>40さんの指摘通りですた。
要素が1つのタプルは tuple = (x, ) としないと作れないから、
>>40のは4番目と5番目、等しいんだorz
48デフォルトの名無しさん:2005/09/19(月) 23:13:24
何にせよ、そのサイトの著者の意図がわからないよね
49デフォルトの名無しさん:2005/09/21(水) 15:40:34
4番目は1番目、5番目は2番目、しかし3番目をタプルで渡すことは出来ません。
ということでは。
50デフォルトの名無しさん:2005/09/21(水) 18:25:47
> 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),),)でも問題なし
51デフォルトの名無しさん:2005/09/22(木) 01:42:11
>>50
おほ、それは失礼しました。
52デフォルトの名無しさん:2005/09/22(木) 11:29:29
質問です。

Python信者はどうしてLispを目の敵にするんですか?
正直かなりキモい言動で、Pythonの普及に水を差していると思うのですが。
Python信者はRuby信者がPerlに対してそうであるように、
Lispに激しいコンプレックスを感じているヒステリックな集団なのですか?
53デフォルトの名無しさん:2005/09/22(木) 11:36:34
   〃∩ ∧_∧
   ⊂⌒(  ・ω・)  はいはいわろすわろす
     `ヽ_っ⌒/⌒c
        ⌒ ⌒
54デフォルトの名無しさん:2005/10/12(水) 08:18:55
LispってEmacs以外なんか使えるの?
55デフォルトの名無しさん:2005/10/12(水) 11:32:01
はいはいわろすわろす
56デフォルトの名無しさん:2005/11/01(火) 16:31:21
このスレを再利用させていただきます
名無しさん同士で問題を出して解きあう下記のスレからの移動です
こちらではPythonをメインに多言語で解きあいたいと思っています(Ruby含む)
知識拡充が主目的ですのでトリッキーな方法や言語ごとのマナーなど
多彩な情報を交換できればと思っています

大まかなスレの流れ
誰かが問題を出す
→答えを考えて書き込む
→それぞれ思い思いの視点で採点する(または便乗質問する)
→話題が収束する頃に次の問題を出す

現在は問題のストックがないのでC言語用に出題された問題(下記のwikiにまとめてあります)を
解いていきます。みなさんもやってみてください
他の人が解いていても、色々なやり方を見るのは勉強になるので是非書き込んでください
また、Wiki以外でも良い問題集があれば教えてください(パイソンチャレンジは素晴らしい!)
そして気軽に問題を出したり回答にコメントをつけてください

それではPythonユーザーの方もそれ以外の方もみなさんよろしくお願いしますm(_ _)m

関連スレ
おまいら!今日からC言語を学んでいくぞー!パート2
http://pc8.2ch.net/test/read.cgi/tech/1128637438/

まとめwiki(C言語用)
http://gamdev.org/w/?%5B%5B%A4%AA%A4%DE%A4%A4%A4%E9%A1%AA%BA%A3%C6%FC%A4%AB%A4%E9C%B8%C0%B8%EC%A4%F2%B3%D8%A4%F3%A4%C7%A4%A4%A4%AF%A4%BE%A1%BC%A1%AA%A5%D1%A1%BC%A5%C82%5D%5D
57前スレから転載:2005/11/01(火) 16:35:37
【問題】
わかったから初心者どもはまず”HelloWorld!”を画面に出すプログラムを作りやがれ

【言語】
python

【回答】
print '”HelloWorld!”'
58前スレから転載:2005/11/01(火) 16:36:15
【問題】
1から50までの和を計算して表示

【言語】
python

【回答】
sum=0
for i in range(51):
    sum+=i
print sum
59前スレから転載:2005/11/01(火) 16:36:56
【問題】
ファイルから数字を読み込み大きい数から順に並べて画面に表示するプログラムを書け
http://gamdev.org/w/?%5B%5B%A4%AA%A4%DE%A4%A4%A4%E9%A1%AA%BA%A3%C6%FC%A4%AB%A4%E9C%B8%C0%B8%EC%A4%F2%B3%D8%A4%F3%A4%C7%A4%A4%A4%AF%A4%BE%A1%BC%A1%AA%5D%5D#content_1_18

【言語】
python

【回答】
filename='numbers.txt'
num=[]
fp=open(filename)
for line in fp:
    num.append(int(line))
fp.close

#print sorted(num)

for i in range(len(num)):
    for j in range(i):
        if num[i]<num[j]:
            tmp=num[i]
            num[i]=num[j]
            num[j]=tmp
print num
60デフォルトの名無しさん:2005/11/01(火) 16:55:43
>>58
print sum(range(51))
61デフォルトの名無しさん:2005/11/01(火) 16:59:32
>>59
print list(reversed(sorted((int(n.strip()) for n in file('numbers.txt').readlines() if n.strip()))))
62デフォルトの名無しさん:2005/11/01(火) 17:08:55
>>58
print 51*50/2.0
63デフォルトの名無しさん:2005/11/01(火) 18:31:10
>>61 すげえ・・・
64デフォルトの名無しさん:2005/11/01(火) 18:42:22
>fp.close
これだとcloseされないんじゃない?
65デフォルトの名無しさん:2005/11/01(火) 18:54:09
# 物体が通る軌跡を求めろ
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()
66デフォルトの名無しさん:2005/11/01(火) 21:48:01
#まずは字句解析と行こうか
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])
67デフォルトの名無しさん:2005/11/01(火) 22:08:26
# ジャンケンゲーム
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?"
68デフォルトの名無しさん:2005/11/01(火) 22:20:26
# じゃぁ、1+3-5+7-9+11-13+・・・を50回
print 1+sum((0-(2*n+1)*((-1)**n) for n in range(1, 50)))
69デフォルトの名無しさん:2005/11/01(火) 22:33:02
import sys
for line in sys.stdin:
    line = line.replace("&", "&amp;")
    line = line.replace("<", "&lt;")
    line = line.replace(">", "&gt;")
    print line.replace(" ", "&nbsp;").strip()
70デフォルトの名無しさん:2005/11/01(火) 22:37:23
# ソートするプログラム
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
このスレすげー!もっときぼん!!
72デフォルトの名無しさん:2005/11/02(水) 14:45:19
# 三角形の判定
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)
73デフォルトの名無しさん:2005/11/02(水) 16:18:28
# 三目並べ
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]
74デフォルトの名無しさん:2005/11/02(水) 16:50:07
# コードブレーカー
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)
75デフォルトの名無しさん:2005/11/02(水) 17:01:02
まちがえた.
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)
76デフォルトの名無しさん:2005/11/02(水) 17:04:19
# 回文判定
judge = lambda s, enc: unicode(s, enc)==''.join(reversed(list(unicode(s, enc))))
77デフォルトの名無しさん:2005/11/02(水) 19:27:38
お前ら>>56に書いてあるルール読んだか?
>大まかなスレの流れ
>誰かが問題を出す
>→答えを考えて書き込む
>→それぞれ思い思いの視点で採点する(または便乗質問する)
>→話題が収束する頃に次の問題を出す

出題されても無いのに答えるな。出題されないなら自分で出題しろ

仕切り直して超簡単な問題行くぞ
【問題】
標準ライブラリを使ってsin 60°を求めろ
78デフォルトの名無しさん:2005/11/02(水) 19:35:58
標準ライブラリって、import math でもいいのか?
79デフォルトの名無しさん:2005/11/02(水) 19:51:38
使っていいなら
import math
math.sin(math.radians(60))
もしくはmath.sin(math.pi/3)
8065-68,70,72-76:2005/11/02(水) 19:54:21
>>77 が偉そうなんでやる気なくした.
81デフォルトの名無しさん:2005/11/02(水) 20:38:12
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))
82デフォルトの名無しさん:2005/11/02(水) 20:46:13
π=3.14だと結構違うもんだな。
83デフォルトの名無しさん:2005/11/02(水) 20:47:22
いや、nがたった8までってところで誤差が大杉。
84デフォルトの名無しさん:2005/11/02(水) 20:57:08
適当なこと言うな。nは8でもべき展開の次数は倍の16。 3.14の代わりにmath.piを使えばsin(pi/3.0)との誤差は10^-12だ。
85デフォルトの名無しさん:2005/11/02(水) 21:05:41
>>84
熱いな。
86デフォルトの名無しさん:2005/11/02(水) 21:12:52
熱いということで、次は華氏と摂氏の温度変換なんてどうだ?
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行は行数に含まない
88デフォルトの名無しさん:2005/11/02(水) 23:26:08
>>> 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
89デフォルトの名無しさん:2005/11/02(水) 23:36:11
Rubyで書くとどうなるのかな?
9087: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デフォルトの名無しさん:2005/11/03(木) 06:16:45
正直,ワンライナーはあまり初心者向けの勉強にならないしキモイ
と,自分で書いてて思った
92デフォルトの名無しさん:2005/11/03(木) 09:04:08
「普通に書けたら次はワンライナーでやってみよう」
ぐらいのゆるい気分で次行ってみよう。
93デフォルトの名無しさん:2005/11/03(木) 09:14:53
>>91
ワンライナーと同価の「読めばそのまま解説になる」コードも一緒に書いてくれるといいな

と初心者は思った
94デフォルトの名無しさん:2005/11/03(木) 10:35:18
Lisp, Ruby, Perl的コードはPython的には(・A・)イクナイと思うのは漏れだけですか?
95デフォルトの名無しさん:2005/11/03(木) 13:24:51
普通にPythonicに書けばええやん
96デフォルトの名無しさん:2005/11/03(木) 13:48:52
初心者の勉強になりそうな問題を投下

【問題】
テキストファイル”text.txt"の中にPythonと言う文字がいくつ含まれるか調べるプログラムを作って欲しいお
97デフォルトの名無しさん:2005/11/03(木) 14:21:27
print str.count(file("test.txt").read(), "Python")
98デフォルトの名無しさん:2005/11/03(木) 16:12:48
# 素直に書いてみた.
"""sin(60) をべき級数で求める
"""

pi = 3.1415926535897931

def factorial(k):
  """k の階乗を再帰で求め,float で返す.
  """
  if k>0: # 再帰
    return k*factorial(k-1)
  else:  # 0! := 1
    return 1.0
(つづく)
99デフォルトの名無しさん:2005/11/03(木) 16:13:24
(つづき)
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)
100デフォルトの名無しさん:2005/11/03(木) 16:30:10
>>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
101デフォルトの名無しさん:2005/11/03(木) 17:04:24
>>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
102デフォルトの名無しさん:2005/11/03(木) 17:13:35
>>101
正規表現オブジェクトが分かってないなら、matchよりsearchを使った方がいい。
matchを使うと不幸になる。
103デフォルトの名無しさん:2005/11/03(木) 17:32:30
>>102
二つの違いが判然としていなかったのですが、いわれて調べてみるとリファレンスにあるんですね
http://www.python.jp/doc/nightly/lib/matching-searching.html
まだよくわかりませんが、気をつけるようにしてみます。
ありがとうございます。
104デフォルトの名無しさん:2005/11/03(木) 17:55:37
>>102
むしろ「違いを知っておいた方がいい.知らないと不幸になる」と教えたらいいんじゃないの.
105デフォルトの名無しさん:2005/11/03(木) 18:18:30
>>103
http://www.python.jp/Zope/articles/tips/regex_howto
これを読んでおけばよいかと
106101:2005/11/03(木) 19:37:43
>>105
ありがとうございます。「ありがちな問題」のところにわかりやすい説明がありました。
そもそもmatch()では"^"が不要であるし、search()で代用できそうなmatch()が何故あるのかという点も理解できました。
107デフォルトの名無しさん:2005/11/03(木) 21:29:15
[問題]
2chのトリップを生成するプログラム。トリップの作り方はぐぐって調べてください。
動作例: 入力"python"->出力"UXGGyRWL3c"
Windows環境の場合は↓これが必要かも。
ttp://carey.geek.nz/code/python-fcrypt/

さくっと作ると10行、上手く書けば3行ぐらいになると思います。1行も出来るはず
108デフォルトの名無しさん:2005/11/03(木) 22:25:25
t = raw_input()
if t == "python":
  print "UXGGyRWL3c"
109デフォルトの名無しさん:2005/11/03(木) 23:50:17
>108
テストルーチンを書いたつもりと解釈してやるから出直してこい。
110デフォルトの名無しさん:2005/11/04(金) 02:27:04
>>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)
111デフォルトの名無しさん:2005/11/04(金) 11:55:09
>>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:]
112デフォルトの名無しさん:2005/11/05(土) 04:55:30
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

と出ました。







113デフォルトの名無しさん:2005/11/05(土) 06:27:28
cmd.exeから
114デフォルトの名無しさん:2005/11/05(土) 09:00:43
>>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を付けることによって'あ'と表示させる働きがあると思ったのですが
違うみたいです。今いち働きが分かりません。

'
115デフォルトの名無しさん:2005/11/05(土) 10:47:00
>>> 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 文字列
116デフォルトの名無しさん:2005/11/05(土) 10:48:14
>>114
環境にあったエンコードを指定してやってください。
英語だけど、このページが超わかりやすいです。
http://diveintopython.org/xml_processing/unicode.html
英語読めなくてもコード見ればどういうことやってんのかわかると思います。

PyJUGの「日本語環境でのPython」もいちおう貼っとく
http://www.python.jp/Zope/articles/japanese/Python4Japanese-2
117デフォルトの名無しさん:2005/11/05(土) 10:49:42

普通に "\x82\xa0" とすれば,それはバイト列 82 a0 だから 'あ' と出る

u"\x82\xa0" とすれば,それはバイト列 00 82 00 a0 で 'あ' と違う

118デフォルトの名無しさん:2005/11/05(土) 11:53:53
>>115
ちょっと見てやって見たのですが結果がすこし違ってしまいました
>>> s = "あいう"
>>> s
'あいう'
>>> len(s)
6
>>> u = u"あいう"
>>> u
u'\x82\xa0\x82\xa2\x82\xa4'
>>> len(u)
6
当方WindowsXPのコマンドプロンプトなんですが環境の影響でしょうか?
119デフォルトの名無しさん:2005/11/05(土) 11:56:53
>>116
ご紹介ありがとうございます。勉強してみます。

それでご紹介いただいたサイトの日本語環境でのPythonに
あるサンプルを実際にやってみたのですが、ここでも
>>> print len('あいうえお')
10
>>> print len(u'あいうえお')
5
の所が
>>> print len(u'あいうえお')
10
になってしまいます。
120デフォルトの名無しさん:2005/11/05(土) 12:52:45
>> import sys
>> sys.getdefaultencoding()
'ascii'

になっていませんか?
121デフォルトの名無しさん:2005/11/05(土) 13:03:23
>>120
lib/site-packegesに作成するsitecustomize.py
の記述の所でしょうか?

ttp://lowlife.jp/nobonobo/zine/5/6.html
のサイトを参考に

import sys
sys.setdefaultencoding("utf-8")と定義しました。

後、こちらのサイトの
ttp://www.python.jp/Zope/download/JapaneseCodecs
JapaneseCodecを入れてみたのですが

>>> print u'あ'
Traceback (most recent call last):
File "<stdin>", line 1, in ?
UnicodeError: MS932 encoding error: invalid character \x82
のようなかんじのエラーが出てしまいました。

もうよくわからないorz
122デフォルトの名無しさん:2005/11/05(土) 14:50:22
>>121
JapaneseCodecsは関係ないよ。
123デフォルトの名無しさん:2005/11/05(土) 17:09:03
>>121
2.3 では、コンソール上での u"..." は常に ascii でユニコード化されるっぽい
utf-8 ではなく mbcs にして unicode("...") とすれば良い
124デフォルトの名無しさん:2005/11/05(土) 18:46:09
スレ違いっぽいのでお勉強スレいでやってくれないか
http://pc8.2ch.net/test/read.cgi/tech/1125159015/
125デフォルトの名無しさん:2005/11/05(土) 19:11:38
2.4 をインストールしたらどうか

2.3 の頃は CJKPython のほうが
いろいろお手軽に環境できてよかった
126デフォルトの名無しさん:2005/11/05(土) 19:12:50
初心者用の問題出して欲しいお。
127デフォルトの名無しさん:2005/11/05(土) 19:42:51
問題1: 0≦X≦100, 0≦Y≦100 となるX, Y をランダムに選んで、(X, Y)という座標を20個作れ。

問題2: 問題1で作った座標を2次元平面の点として、すべての点を内部か境界にもつ円のうち、
最小の半径を持つものの中心座標と半径を求めるプログラムを作れ。
128デフォルトの名無しさん:2005/11/05(土) 19:44:12
ふたたび http://gamdev.org/w/?%5B%5B%A4%AA%A4%DE%A4%A4%A4%E9%A1%AA%BA%A3%C6%FC%A4%AB%A4%E9C%B8%C0%B8%EC%A4%F2%B3%D8%A4%F3%A4%C7%A4%A4%A4%AF%A4%BE%A1%BC%A1%AA%5D%5D#content_1_32
より、出題。

出題:コードブレーカー(ゲーム)を作りやがれ
難易度★★☆☆☆

コンピュータがランダムに3桁の数(以後、コード)を生成
プレイヤーはコンピュータの出すヒントを元にコードを推理していく

・コードは同じ数字を使用していない
・プレイヤーが3桁の数字を入力すると、コンピュータはヒントをひとつ出力
・ヒントの出し方は下記の通り
 数字と桁が一致していれば、『ヒット』、数字は合っているが桁が違う場合は『ブロ ー』
 (例)コード=135の場合
    入力   ヒント
    246・・・0ヒット 0ブロー
    012・・・0ヒット 1ブロー
    123・・・1ヒット 1ブロー
    153・・・1ヒット 2ブロー
    135・・・正解!
129デフォルトの名無しさん:2005/11/05(土) 20:07:56
>>128
それ75で解かれてたり。
条件に「クラスを使って」というのを追加してみるのはどうだろ?
130デフォルトの名無しさん:2005/11/05(土) 21:00:14
>>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 ----
131デフォルトの名無しさん:2005/11/05(土) 21:20:01
>>130
> #問題2
> #中心座標 = すべての点の重心 をもとめる

そうじゃない。
仮に、19個の点がすべて原点(0,0)で、1個だけ(100,0)だったら
中心(50,0)、半径50の円が答えになるけど、重心で考えたらそうはならないだろ?
132デフォルトの名無しさん:2005/11/05(土) 21:44:15
>>127の問題2は仮の中心を設定して、仮の中心と最も遠い点の距離が最小になるように
仮の中心を移動させれば良いのかな?
133デフォルトの名無しさん:2005/11/05(土) 22:01:28
主成分分析で主軸を求め、それを直径とする仮の球を作り、
全ての点が仮の球に内包されているか調べ、
外にある場合は点が内包されるように球の拡大を繰り返す。

みたいなのが"そこそこ"の解法じゃなかったっけ。
最適解とかあるのそれ?
134デフォルトの名無しさん:2005/11/05(土) 22:08:26
# -*- 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
135デフォルトの名無しさん:2005/11/05(土) 22:09:01
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()
136デフォルトの名無しさん:2005/11/05(土) 23:51:09
問題: >>127の問題1を横目に見つつ、円周率を5桁まで求めよ。
137デフォルトの名無しさん:2005/11/06(日) 01:15:48
>>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
138デフォルトの名無しさん:2005/11/06(日) 01:22:46
>>123
そうでしたか。あれからいろいろやってみてファイルからならu'あ'のlenが1と結果が
出たのですが、コンソールからだと途中でエラーが出るという現象にあってまた悩んでいました。
utf-8はmbcsにしました。unicode("...")というのはどの部分のことなのかちょっとよく
分からないですが。

>>124
すみません。昨日から始めたのでpythoneについて0から教えてくださいというスレが
最適だと思い書き込んでしまいました。以後はご紹介いただいたスレでがんばりたいと
思います。

>>125
2.4をインストールしてみました。
u'あ'の文字列の長さが2ではなくきちんと1になりました。
139デフォルトの名無しさん:2005/11/06(日) 01:34:41
>>138 前に入ってたバージョンはいくつでした?
140デフォルトの名無しさん:2005/11/06(日) 01:37:28
>>139
前のバージョンは2.3だったと思います。
こちらのpython234jp-20040927.exeでインストールさせていただきました。
141デフォルトの名無しさん:2005/11/06(日) 02:54:21
>>137
スバラシイ!

出題者はx**2を誤ってx^2と書いていたことは秘密。
142デフォルトの名無しさん:2005/11/06(日) 03:38:44
>>134
これはちょっと汚ないなあ。
とりあえず、数字を重複させたくないなら、
strnumseq = map(str,range(10))
s = "".join((strnumseq.pop(random.randrange(10-x)) for x in range(N)))
で一発。
143デフォルトの名無しさん:2005/11/06(日) 09:43:47
>>136の問題、正解が出てるけど折角作ったから貼るお
from random import random

k=0
n=10000

for i in range(n):
r=(random()**2+random()**2)**0.5
if r<1:
k=k+1

print "pi=%2.4f"%(4.0*k/n)


ここを参考にしたお
ttp://e-words.jp/w/E383A2E383B3E38386E382ABE383ABE383ADE6B395.html
144デフォルトの名無しさん:2005/11/06(日) 10:16:21
>>142
''.join(str(r) for r in random.sample(range(10), 10))
145デフォルトの名無しさん:2005/11/06(日) 10:37:09
>>143
> r=(random()**2+random()**2)**0.5
> if r<1:

わざわざ "**0.5" してる意味が無いです。 お
r=(random()**2+random()**2)
で十分。 お
146デフォルトの名無しさん:2005/11/06(日) 11:05:10

スペースが潰れてると見づらいから、
書き込むときはお勉強スレで出てたこれを使おうよ

import sys
src = file(sys.argv[0])
dst = file(sys.argv[0]+".txt", "w")
for line in src:
    line = line.replace("&", "&amp;")
    line = line.replace("<", "&lt;")
    line = line.replace(">", "&gt;")
    dst.write(line.replace(" ", "&nbsp;").strip()+"\n")
src.close()
dst.close()
147143:2005/11/06(日) 13:03:22
>>145
確かにルートは蛇足だったお、指摘してくれて嬉しいお

ちょと実験するお
半角スペース
2つの半角スペース
 全角スペース
  2つの全角スペース
148デフォルトの名無しさん:2005/11/06(日) 13:26:51
それと、文末の 「お」 が目障りだから消してほすぃ
149デフォルトの名無しさん:2005/11/06(日) 14:59:40
vipperなんでしょ
150デフォルトの名無しさん:2005/11/06(日) 15:13:01
次の問題カモーン
151デフォルトの名無しさん:2005/11/06(日) 15:24:23
文末の目障りな「お」を消す・または付けるプログラム(ぉ
152143:2005/11/06(日) 16:27:15
>>148
気にするな
>>149
vipperでは無い

インデントは全角スペースで入れないと消えるのか
153デフォルトの名無しさん:2005/11/06(日) 17:28:50
>>146
sys.argv[0] ではスクリプト自身を変換してしまうのでは。

    &nbsp;でスペースのインデントもいれれるんだ。
初めて知った。ありがとお
154デフォルトの名無しさん:2005/11/06(日) 17:42:03
問題:自分自身のソースコードと同じ文を出力するプログラム
155デフォルトの名無しさん:2005/11/06(日) 20:44:51
>>153
投稿したいソースファイルに>>146を追加して実行すればいいのさ。
win環境の人ならこっちのが便利だと思う。

ということで>>154の応用問題。
「投稿したいコード」と「変換コード」の両方が記述されている「ソースファイル」から
「変換コード」を除去し「投稿用のテキスト」だけの「ファイル」を生成するよう
>>146の「変換コード」に追加・修正せよ。
156デフォルトの名無しさん:2005/11/06(日) 21:28:22
>>155
コードじゃないけど、>>146をcontibution.pyという名前でセーブし、
投稿したいコードの先頭に、import contributionを追加。
157デフォルトの名無しさん:2005/11/06(日) 21:54:18
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])
158デフォルトの名無しさん:2005/11/06(日) 21:55:25
表示用も書いたけど,行数制限で切った.制限うざいなぁ.
(上の続き)
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()
159デフォルトの名無しさん:2005/11/06(日) 21:56:33
みづらいなぁ
160デフォルトの名無しさん:2005/11/06(日) 21:59:17
行数制限内におさめようとすると,変に詰めて書くはめになるんだよな.
161デフォルトの名無しさん:2005/11/06(日) 22:23:24
分けて書けば良いじゃん。
162デフォルトの名無しさん:2005/11/07(月) 00:41:46
「Tkinterでへぇボタンを作って下さい」
163デフォルトの名無しさん:2005/11/07(月) 09:54:12
>>154
def greeting():
    print "Hello World!"

def printSelf():
    print open(__file__, "r").read()

if __name__ == "__main__":
    printSelf()
164デフォルトの名無しさん:2005/11/07(月) 13:31:16
l='l=%s;print l%%`l`';print l%`l`
こんなのがあったよね.
165デフォルトの名無しさん:2005/11/07(月) 15:05:43
>>157
それじゃ駄目だよ。最小の円が三点を通るとは限らない。

例えば4つの点((10.0,50.0), (30.0,50.0), (20.0,51.0), (20.0,49.0))を含む
最小の円は中心(20.0,50.0)、半径10だけど、そのやり方では求められない。
166デフォルトの名無しさん:2005/11/07(月) 16:11:31
 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)))
でどう?
167165:2005/11/07(月) 17:07:14
なるほど、上手いな。それなら正しいと思う。

#あと細かい事で悪いけど最初の関数で求めてるのは垂心じゃなく外心だよね。
168デフォルトの名無しさん:2005/11/09(水) 12:50:00
すっかり冷え込んできましたね。
169デフォルトの名無しさん:2005/11/09(水) 21:27:56
耐えられずにコタツ出したらぶっ壊れてた(´;ω;`)
170デフォルトの名無しさん:2005/11/09(水) 21:41:53
Pythonはコタツも修理できないから困る
171デフォルトの名無しさん:2005/11/09(水) 21:48:53
だって寒い時は冬眠するんだろ?
172デフォルトの名無しさん:2005/11/09(水) 22:49:56
数学ばかりだと飽きるのでHTTP通信の問題

問題1: ログインして何MB使用したか取得せよ。
https://www.google.com/accounts/ServiceLogin?service=mail

または、

問題2: ログインしてYahooポイントを取得せよ。
http://login.yahoo.co.jp/config/login
173デフォルトの名無しさん:2005/11/09(水) 23:09:05
>>172
先生、Gmail持ってないのでください
174デフォルトの名無しさん:2005/11/10(木) 08:10:28
>>172
垢持ってないと面白くもなんともないんですが。
175デフォルトの名無しさん:2005/11/10(木) 16:37:17
流れをぶった切る質問で恐縮ですが,Windows で使える Python の違いって
なんなのでしょうか? ちょっと調べたところ,

1. cygwin の python
2. ActivePython
3. PyJUG にある日本語環境 Python

がありました.1 と 2 は 2.4,3 は 2.3 ベースなので新しい方がいいかなと思ったの
ですが,日本語が使えないのは嫌だなぁとも思います.この違いを猫でもわかるよう
に噛み砕いて説明してくださると大変ありがたいです.
あと,プログラムも日本語を扱うものがあるとうれしいかも.
ということで,自分じゃできない問題を出します.

【出題】 日本語(文字コードは任意)用 wc を作りなさい.必要なモジュールの
インストール方法も記述のこと.
176デフォルトの名無しさん:2005/11/10(木) 17:54:44
宿題なら自分でやってくれ
クソマルチが…
177デフォルトの名無しさん:2005/11/10(木) 23:02:44
>>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)
178デフォルトの名無しさん:2005/11/11(金) 00:36:13
マルチに答えるやつも同罪

腹を斬って死ね

地獄の業火で焼かれろ
179デフォルトの名無しさん:2005/11/11(金) 00:57:31
>>144
str.join("", random.sample("0123456789", N))
180デフォルトの名無しさん:2005/11/11(金) 14:50:05
175 の叩かれっぷりを見ると聞くのが恐ろしいけど、
よかったら日本語関連の問題教えて。
cygwin の python 2.4.1 で次を実行すると

>>> a=["あ","い","う"]
>>> print a[0]

>>> print a
['\x82\xa0', '\x82\xa2', '\x82\xa4']

となります。この print a の結果を ["あ","い","う"] と
表示させることってできないんでしょうか?
181デフォルトの名無しさん:2005/11/11(金) 15:09:20
宿題っぽい丸投げで何も考えてなさそうだから普通にたしなめられただけだよ。
182デフォルトの名無しさん:2005/11/11(金) 15:54:51
>>180
できないぽい
183デフォルトの名無しさん:2005/11/11(金) 17:13:28
>>180
print (','.join(['"%s"' % x for x in a])).join(('[',']'))
184デフォルトの名無しさん:2005/11/11(金) 17:29:37
>>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
というのがありますね。これは使ったことがないので、もし使ったこ
とのある人がいたらレポートよろ。
185184:2005/11/11(金) 17:31:01
>>181 みたいに ⇒ >>183 みたいに
です。 須磨祖
186デフォルトの名無しさん:2005/11/11(金) 18:26:17
# -*- 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 じゃダメ)
一部日本語で出てくる
187デフォルトの名無しさん:2005/11/12(土) 12:50:22
リスト 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つづつ取ってきたリストを簡単に生成する方法を教えてください
188デフォルトの名無しさん:2005/11/12(土) 13:47:28
>>187
zip(A,B,C)

map(None,A,B,C)
を試してみそ
189187: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)] を作りたいのですが。
190187: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 そのまま続けて書くのが思いつかなかったのですが、やったら出来ました。お騒がせしました。
191デフォルトの名無しさん:2005/11/12(土) 15:29:41
>>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)
192デフォルトの名無しさん:2005/11/12(土) 16:30:08
>>191のような書き方を避けられるのが190の内包表記の利点の一つだと思うんだけど.
193191: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']} を
出来るだけ短いスクリプトで作ってみれ。
195デフォルトの名無しさん:2005/11/14(月) 18:45:01
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

何も考えずにやったらこんな感じになた
196194:2005/11/14(月) 19:13:48
195さんのをヒントに出来ました
for lng,lib in l:
  d.setdefault(lng, []).append(lib)

キーが無い時の処理を
d[lng] = [lib]
としてたので、setdefaultで上手くいかなかったんです
どう見ても完璧です
本当にありがとうございました
197デフォルトの名無しさん:2005/11/15(火) 00:51:52
質問を問題にすり替えるのってなんかズルくないか?
198194:2005/11/15(火) 02:29:13
まあ、勉強スレで質問しようかとも迷ったんだが
Pythonのプログラムテクニックに関わる実践的な問題になると思ってこっちに書いた
スレの流れ的には、こっちが合ってると思った

気分悪くしたらごめんなさい
199デフォルトの名無しさん:2005/11/15(火) 03:13:33
ちょっと肩透かしをくらうんじゃないかな

みんなで違う方法で解く、なんていう楽しみももう、あまりないし。

ともあれ、乙です。
200デフォルトの名無しさん:2005/11/15(火) 07:00:42
そこでワンライナー厨の登場ですよ
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]))
201デフォルトの名無しさん:2005/11/15(火) 08:17:58
なんとなく7行オセロ思い出した
202デフォルトの名無しさん:2005/11/15(火) 20:43:52
pypyencode
203デフォルトの名無しさん:2005/11/15(火) 20:44:37
きぼん
204デフォルトの名無しさん:2005/11/18(金) 13:34:20
上級者向けのスレになったなぁ
ワンライナーってpythonの意味が無いような
205デフォルトの名無しさん:2005/11/18(金) 14:44:24
おんなじ問題解いても初心者と上級者で答え方が違ってくるんだから仕方がないよね。
まあ、あえて普通な解き方を書き込む人が少ないのかも。

というわけで、どノーマルな解き方も希望します。
206デフォルトの名無しさん:2005/11/18(金) 15:47:57
「ワンライナーは読みにくいからやめて」
「lambdaは読みにくいからやめて」
「リスト内包やジェネレータは読みにくいからやめて」

Pythonなら誰が書いても読みやすいコードになるってのは幻想だなw
207デフォルトの名無しさん:2005/11/18(金) 15:57:53
Pythonなら誰が書いても(上級者が)読みやすいコードになる
208デフォルトの名無しさん:2005/11/18(金) 16:39:36
>207 が正解
209デフォルトの名無しさん:2005/11/18(金) 17:27:49
ワンライナーは明らかにネタだろ
大仁田とかハッスルみたいなもんだ。
210デフォルトの名無しさん:2005/11/18(金) 20:21:35
ワンライナー==上級者って発想が痛すぎ。

211デフォルトの名無しさん:2005/11/18(金) 21:20:51
モンダイマダー?
212デフォルトの名無しさん:2005/11/18(金) 23:33:40
じゃぁ、Cのお題スレから、
[問題]
電話帳プログラムを作る。
ttp://gamdev.org/w/?%5B%5B%A4%AA%A4%DE%A4%A4%A4%E9%A1%AA%BA%A3%C6%FC%A4%AB%A4%E9C%B8%C0%B8%EC%A4%F2%B3%D8%A4%F3%A4%C7%A4%A4%A4%AF%A4%BE%A1%BC%A1%AA%5D%5D#content_1_39
[おすすめモジュール]
shelve
213デフォルトの名無しさん:2005/11/19(土) 20:43:28
>>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()
214デフォルトの名無しさん:2005/11/19(土) 20:52:14
raw_input は raw_input("Name?") のように使えますよ
215デフォルトの名無しさん:2005/11/19(土) 21:27:06
>>213
なんかいろいろインデントが変だよ。
将来の為にもユーザーからの入力はsys.stdin.readline()を使っといたほうがいいかも。
あと、それわざわざinput()使って(evalして)る意味がないんで、
f = sys.stdin.readline().strip()
にしてf == '0'とか評価するほうがいいと思う。
flagのとこは
if d.has_key(name) is True:
がPython的。
216デフォルトの名無しさん:2005/11/19(土) 21:58:07
そんなことより shelved object のファイル拡張子が .txt なのが気になる
217デフォルトの名無しさん:2005/11/19(土) 22:12:25
>>215
> >>213
> なんかいろいろインデントが変だよ。
漏れは普通だと思うんだけど。 >213 は インデント=4スペース でやってるように見える。
218デフォルトの名無しさん:2005/11/19(土) 23:03:19
>>217
どういうこと?
if flag == 1:の次の行のインデント、
また、それに対応してるハズのelse:の場所とか
elif f == 3:
の行とか、指摘するのもアレだが、そもそもこれ構文エラー起こすでしょ。
ところで、
tel=d[name]
この行も謎だなあ。
219217:2005/11/19(土) 23:31:23
>>218
本当だ。よくみてなかった。
早とちりでした、ごめんなさい。確かにすごく変なコードだ。
220212: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()
221213: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
222デフォルトの名無しさん:2005/11/20(日) 00:29:29
dictをpickleするのとshelveを用いるのって
メリットデメリットがあったりするの?
223デフォルトの名無しさん:2005/11/20(日) 05:41:03
shelveは{gdbm, dbm, bsddb}のどれかを使っていて,バックエンドにどのdbmが
使われるかはプラットフォームによって違う.その他にも
ttp://www.python.jp/doc/nightly/lib/node76.html
のような制限がある.
pickleで辞書を永続化する方法はプラットフォーム依存性が少ないけど,データサイズが
大きくなるとロード/セーブに時間がかかるし,当面使わないオブジェクトまでメモリに
読み込むので効率が悪い.Durus
ttp://www.mems-exchange.org/software/durus/
はこの点を解消してるらしい.
224デフォルトの名無しさん:2005/11/22(火) 08:30:09
Hello Worldしか書けないオレでも参加できる問題出してくれ
225デフォルトの名無しさん:2005/11/22(火) 09:08:23
>>224
あなたの名前は?
と入力待ちにして、例えばTarouと入力したら
Hello, Tarou!! I love you 4 ever!
と出力されるようにする課題
226デフォルトの名無しさん:2005/11/22(火) 10:09:57
問題って・・・
解きたい問題がないならなぜ言語覚える必要があるのか。
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を使ったらもうちょっとマシになるのかな?
228227:2005/11/22(火) 11:47:24
最適な解が出てるじゃん。>自分
229デフォルトの名無しさん:2005/11/22(火) 22:56:36
ttp://www.geocities.co.jp/SiliconValley-Cupertino/7896/software/turing.html
みたいなチューリングマシンを(できれば30行以内で)。
230デフォルトの名無しさん:2005/11/23(水) 00:07:55
>>223
解説ありがとー^-^
参考にさせて頂きました。
231デフォルトの名無しさん:2005/11/23(水) 10:24:10
i = input()
print "Hello," i "!! I love you 4ever!!"
あれ、なんで出来ないんだ!!教えて!
232デフォルトの名無しさん:2005/11/23(水) 12:44:02
>>231

>>> print "Hello," i , "!! I love you 4ever!!"
変数 i の後ろにカンマがないぞ。
233デフォルトの名無しさん:2005/11/23(水) 12:49:14
これ、ようは列挙だからな。
そのへんに気づき始めると理解速度が上がる。
234デフォルトの名無しさん:2005/11/23(水) 12:54:03
>>232
いや、iの前にもないだろ。

とりあえず、「,」で区切るのと「+」で連結する
方法を覚えておけばいいんでないの。

printが関数だったらこういう間違いは減りそうなんだが
235デフォルトの名無しさん:2005/11/23(水) 12:55:34
i という変数名もどうかと思ってみる
236デフォルトの名無しさん:2005/11/23(水) 13:24:41
それはyouにしておけということか。
237デフォルトの名無しさん:2005/11/26(土) 05:59:34
import random
import string

char = string.digits + string.ascii_uppercase
pas = ""

for i in xrange(8):
  pas += random.choice(char)

print pas

パスワード生成
238デフォルトの名無しさん:2005/11/26(土) 09:33:45
ジェネレータ化やリスト内包表記で書き直したい気持ちに駆られる…。

でもやめておこうとおもう。
239デフォルトの名無しさん:2005/11/26(土) 12:36:23
すくなくとも関数にしろよ

とは思う
240デフォルトの名無しさん:2005/11/26(土) 17:58:59
>>238,239
むしろ遠慮せずに書いてほしい。
241デフォルトの名無しさん:2005/11/26(土) 19:27:32
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()
242デフォルトの名無しさん:2005/11/26(土) 21:13:11
>>237>>241
どの問題への解答なの?
243デフォルトの名無しさん:2005/11/26(土) 22:22:19
べつに、どこにも問題は無いと思うが。
>>237が発作的にコードをUpして、その他が反応というところだろう。
244デフォルトの名無しさん:2005/11/27(日) 01:01:12
コレをパスワード生成って呼ぶのはどうなのよ、と言いたくなる・・・。

でもやめておこうとおもう。
245デフォルトの名無しさん:2005/11/27(日) 01:04:45
ttp://d.hatena.ne.jp/yaneurao/20051125#p1
コレってPythonだったら何行くらいで書けるものなの?
やってみたけどコードを短くする以前に問題が解けなかった。
246デフォルトの名無しさん:2005/11/27(日) 02:56:54
>>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))]
247デフォルトの名無しさん:2005/11/27(日) 11:35:46
何語? orz
Hello Pythonからで直してきます
248デフォルトの名無しさん:2005/11/27(日) 15:44:58
>>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

249デフォルトの名無しさん:2005/11/27(日) 15:46:12
続き

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)
250デフォルトの名無しさん:2005/11/27(日) 22:15:02
関係ないけど、インデントが中途半端に残ってるのが印象深い
251デフォルトの名無しさん:2005/11/28(月) 00:54:25
おまいら出番です。

問題: 16進数ダンプを行うコード
回答例: http://tinyurl.com/dyj4w


「ともだちがPython使い」なんていう状況があったら、それは恵まれていると思う。
252デフォルトの名無しさん:2005/11/28(月) 02:05:03
>>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()
253デフォルトの名無しさん:2005/11/28(月) 12:43:56
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)]
254デフォルトの名無しさん:2005/11/28(月) 12:45:41
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
255デフォルトの名無しさん:2005/11/28(月) 12:49:37
ascii_letters じゃなくて printable だ.
256デフォルトの名無しさん:2005/11/28(月) 22:54:56
>>253
ちょっと違う。子ノードが1本しかないノードも葉として判断してしまってます。
この式でいうと、2番目の4(子ノードは1のみ)がそれに該当。
257デフォルトの名無しさん:2005/11/28(月) 23:07:55
あ、最初の4も葉では無いです。子ノードは11のみ
258デフォルトの名無しさん:2005/11/28(月) 23:15:32
プログラミング初心者がpythonを学ぼうと思ってるんですが
書籍じゃないと勉強し辛いですかね
webページって少ないですよね
259デフォルトの名無しさん:2005/11/28(月) 23:56:39
お勉強wikiに参考サイトがいっぱい載ってるじゃないか。
いまや日本語でかかれたPython本の方が少ない。
260デフォルトの名無しさん:2005/11/29(火) 00:05:22
>>259本当だ いっぱい載ってますね
「初めてのPython」5000円出すのはちょっと辛いんです
サイトだけで勉強してる人も多い?
261デフォルトの名無しさん:2005/11/29(火) 00:19:39
サイト見ながら遊んでみて、自分に馴染みそうだなと思ったら、恥π買えば良いんでないかい?
262デフォルトの名無しさん:2005/11/29(火) 00:19:51
>>258
お勉強スレへ来たまえ。

[ Pythonのお勉強 Part 8 ]
http://pc8.2ch.net/test/read.cgi/tech/1132805629/20-
263デフォルトの名無しさん:2005/11/29(火) 00:20:23
プログラミング初心者だったら、Pythonチュートリアルしか入り口無いかも
ttp://www.python.jp/doc/release/tut/

本を読まずにコード書けるようになった奴を見たこと無いです。
264デフォルトの名無しさん:2005/11/29(火) 00:23:44
色んなご意見ありがとうございます
サイトで様子見して給料入ってから書籍購入検討します

呼ばれたのでお勉強スレにも行ってみます
265デフォルトの名無しさん:2005/12/01(木) 18:27:11
プログラミングの勉強をするなら本に金はかかるもんだ。
いやなら会社の金で買うとか、図書館にリク出すとか。
266デフォルトの名無しさん:2005/12/01(木) 19:08:57
言語仕様やライブラリのドキュメントだけなら、けっこうネットで読める。

でもその先の「アルゴリズムとデータ構造」や「プログラミング技術」みたいな
レベルに入ると、本が必要だよね。
267デフォルトの名無しさん:2005/12/01(木) 19:38:31
問題は「はじぱい」に値段相当の価値があるかどうか。
とりあえず「はじめて」というタイトルで、あの厚さと値段は、
出来れば買わずに済ませたい、むしろPythonを使うのは止めようと
思わせるに十分。
268デフォルトの名無しさん:2005/12/01(木) 20:27:07
>>267
釣れますか
もう師走ですね
269デフォルトの名無しさん:2005/12/01(木) 20:41:11
厚さは問題ないけど、日本語だとアレしか選択肢がないとか。
値段が高すぎるってのは同意。
270デフォルトの名無しさん:2005/12/01(木) 21:06:07
値段はともかく分厚すぎるという点には同意。
スキャナ買って取り込もうかと真剣に検討中。
271デフォルトの名無しさん:2005/12/01(木) 21:15:26
ちょうど昨日、本屋行って中身みてきたんだけど、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ってなんのパッケージなのよ?
273デフォルトの名無しさん:2005/12/02(金) 00:48:08
>>272
> 'win32com.gen_py'
> ---- snip ----
> そもそも、gen_pyってなんのパッケージなのよ?
win32comが入ってないきがする…
274デフォルトの名無しさん:2005/12/02(金) 00:54:45
>>273
あ、ごめんです。抜けてた。

・pyWin32 (win32com ) のビルド205を入れました。
gen_py ってフォルダはできるんだけど、中身は空っぽですた。
275デフォルトの名無しさん:2005/12/02(金) 01:32:30
>>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
276デフォルトの名無しさん:2005/12/02(金) 01:56:11
>>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系のライブラリだけど、今回の目的には合わないと思う。
277272: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フォルダに設置するだけでいいんだろうか?それが間違ってる?
278デフォルトの名無しさん:2005/12/02(金) 04:50:08
> ここ、'win32com.gen_py', '_xmlplus'を抜くと正常にコンパイルが走るんで、原因はここで間違いなかったです。
なんだそりゃ…。
py2exeで固める前に、スクリプトがちゃんと動くかどうか確認した方がいいよ。

# コンパイルコンパイル言ってるから、なんか不安なんだが、ひょっとして
# コンパイラとインタプリタの区別もついてないんじゃなかろーか。
279272:2005/12/02(金) 23:39:38
すいません、解決しました。
うまくコンパイルできましたです。

目的だったSEPYエディタのSjisコードの使用も実装できましたです。

'_xmlplus'は PyXML インストールで解決、
'win32com.gen_py' は 'win32com' に書き換えて全部インポートしちゃう事で解決しました。

>>278
ぶっちゃけ、区別ついてないですww
pythonと出会って今日で二日目でした。うは。

pycってコンパイル生成物だとばかり思ってた。。違うのか?

んじゃ、pyファイルってのは全部スクリプトな訳なのね。
280デフォルトの名無しさん:2005/12/03(土) 01:33:56
>pycってコンパイル生成物だとばかり思ってた。。違うのか?
.pycは.pyを *バイトコンパイル* して生成されるので、半分合ってる。
ただし、C言語などでいうコンパイルと違って、バイトコンパイルされた
Pythonコード自身を(Pythonインタプリタ無しで)実行できるわけではない点を理解して欲しい。

ここらへんとか参照:
http://www.python.jp/doc/nightly/tut/node8.html#SECTION008120000000000000000
281デフォルトの名無しさん:2005/12/03(土) 01:43:25
.pyファイルが何なのかわからないのに、どうしてSJIS対応させるパッチとかができるんだろう…。
282デフォルトの名無しさん:2005/12/03(土) 07:44:59
将来的にpy2exe的なやり方ではなくて、C言語のように機械語へコンパイル出来るようなコンパイラって登場する予定はないんですか?
Ironpythonみたいな感じになっちゃうんですかね?
283デフォルトの名無しさん:2005/12/03(土) 10:13:53
>>282
既に使われています。psycoなんかはかなりポピュラーです。

psyco: JavaとかでいうとJITコンパイラにあたるもの
http://psyco.sourceforge.net/

shedskin: experimental Python-to-C++ compiler
http://sourceforge.net/projects/shedskin/
284デフォルトの名無しさん:2005/12/04(日) 08:49:09
えーと、板違いかもしれませんが、無料レンタルスペース(広告なし)で
Python おkなところがあるみたいです。

ttp://www.x7net.com/

何がどこまで出来るのかよく分かってないんですが、とりあえず
申し込んでみたので、審査通ったら勉強する予定。
285デフォルトの名無しさん:2005/12/04(日) 13:23:10
>>284
これって個人運営だよね。
サーバ1台で稼働してるっぽいけど大丈夫かな。
286デフォルトの名無しさん:2005/12/04(日) 14:24:35
勉強するなら自分のPCでやったほうがいいよ。
CGIなんか特にそう。
何がInternalErrorなのかさっぱりです。
287284:2005/12/04(日) 14:59:45
>>285
広告無しで、どう成り立ってるのかも不思議。
飛んで困るようなモノは置かないようにします。

>>286
ありがとう。
まずは自分の PC でやってみます。
288デフォルトの名無しさん:2005/12/05(月) 08:19:22
.py以外をimportする方法教えてクレ
289デフォルトの名無しさん:2005/12/05(月) 19:12:47
cgi = { }
execfile( "Lib\cgi.py" , hoge )
290デフォルトの名無しさん:2005/12/05(月) 19:13:25
ミスった

cgi = { }
execfile( "Lib\cgi.py" , cgi )
291デフォルトの名無しさん:2005/12/05(月) 22:29:46
292デフォルトの名無しさん:2005/12/05(月) 22:31:15
>>289-291
thx
293デフォルトの名無しさん:2005/12/10(土) 00:37:14
リスト内包は嫌いだと散々言っていたのに最近使いまくってる。
某MLに関連して、二次元配列はこんな感じで答えに最短になるのかな。

[[0]*width for i in range(height)]
294デフォルトの名無しさん:2005/12/10(土) 00:40:47
よみづれー
295デフォルトの名無しさん:2005/12/10(土) 22:52:40
配列は素直にnumeric使うのが一番いいと思う。
296デフォルトの名無しさん:2005/12/11(日) 11:05:42
297デフォルトの名無しさん:2006/01/26(木) 01:34:55
保守age
>>56を読むべし
298デフォルトの名無しさん:2006/01/27(金) 14:46:10
[お題]干支関数
西暦(or元号)を引数にすると干支(十二支十干でも十二支だけでも可)を返す。
299デフォルトの名無しさん:2006/01/27(金) 18:08:00
def (seireki=u'西暦'):return u'干支'
300デフォルトの名無しさん:2006/01/27(金) 19:30:22
def eto(year, encoding="utf-8"): return u"子丑寅卯辰巳午未申酉戌亥"[(x-4)%12].encode(encoding)
301デフォルトの名無しさん:2006/01/28(土) 23:01:28
こういう所で文字コードの処理までは書かんでもよかろ。
302デフォルトの名無しさん:2006/01/28(土) 23:19:54
一行野郎ってやつ?
303デフォルトの名無しさん:2006/01/29(日) 08:05:41
Pythonで一行野郎(・A・)イクナイ
304デフォルトの名無しさん:2006/01/29(日) 17:01:09
じゃあこれで
B.C. 12000 (-12000) から A.D. 11999 年まで対応.
print (u"申酉戌亥子丑寅卯辰巳午未"*10000)[1972].encode('euc-jp')
305301:2006/01/29(日) 19:24:39
あらら、勘違いさせてしまったか
def eto(year): return u"子丑寅卯辰巳午未申酉戌亥"[(x-4)%12]

これでよかろうという意味ね
306デフォルトの名無しさん:2006/01/30(月) 03:49:28
明日,使える関数ばかりですね
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()
308デフォルトの名無しさん:2006/01/30(月) 16:06:36
>>307
端末の文字コードが euc-jp に対応してるか確認し、(8bit 文字列通る?)
表示フォントも適切に設定する。
309デフォルトの名無しさん:2006/01/30(月) 17:23:24
>>308
環境は Cygwin/ck/screen ですが,
テスト時は screen なしでも確認してます.
euc-jp には対応しており,不思議なことに,
AAAをAAと2文字にすれば化けずに表示されます.
curses を使わず print "AAA" でも大丈夫です.
310デフォルトの名無しさん:2006/01/30(月) 20:00:04
諦めて>>56を読んで、問題を投下汁
311デフォルトの名無しさん:2006/01/30(月) 21:20:49
お題
>>307の原因を探る。
312デフォルトの名無しさん:2006/01/30(月) 23:16:53
cygwin + rxvt(ja_patched)だと普通に通る件
313デフォルトの名無しさん:2006/02/07(火) 01:59:00
すみません。質問です。
参考書に載っていた約数を返す関数の

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)はどういう意味なんでしょうか?
314デフォルトの名無しさん:2006/02/07(火) 02:56:51
aNumber % i で aNumber を i で割った余りという意味

if (aNumber % i) だと,aNumber % i が 0 で無いなら〜
という意味
315デフォルトの名無しさん:2006/02/07(火) 04:00:56
>>314
早いレスありがとうございます。
理解できました。
316デフォルトの名無しさん:2006/02/15(水) 22:03:01
C言語の#defineに相当する処理はどうすれば良いですか?
317デフォルトの名無しさん:2006/02/15(水) 22:03:58
どうしてもバイソンと言ってしまう
318デフォルトの名無しさん:2006/02/15(水) 22:18:48
それ違うものになっちゃうから。
319デフォルトの名無しさん:2006/02/15(水) 22:26:46
#defineと同等の事はできないって事ですか
できないなら出来ないなりに間に合わせるので良いですけど
320デフォルトの名無しさん:2006/02/15(水) 22:29:14
#define にもいろいろな使い方があるわけだが、
何を目的としているんだ?
321デフォルトの名無しさん:2006/02/15(水) 22:29:25
自己解決御苦労様です( ・ω・ )ゞ
322デフォルトの名無しさん:2006/02/15(水) 23:52:34
>>320
単純に
#define AAA 360
というようなマクロ定義に使えればそれでよいです。
複雑な事をしようとしてる訳ではないので。
323デフォルトの名無しさん:2006/02/16(木) 00:14:21
AAA=360
324デフォルトの名無しさん:2006/02/16(木) 00:45:58
>>323
やはりそうですか
325デフォルトの名無しさん:2006/02/16(木) 01:10:09
しかしあれだな、pythonでインデント削除されると物凄い
よみ辛さだなw
326デフォルトの名無しさん:2006/02/16(木) 07:46:22
「:」を頼りに脳内補完か……
327デフォルトの名無しさん:2006/02/16(木) 23:57:19
初心者すぎる質問です。
日本語環境用インストーラ(Win32)をダウンロードして、
起動した画面の「プロパティ」の「現在のコードページ」に
「(ANSI/OEM-日本語 Shift-JIS」とありますが、
どうやって日本語を入力できるのかがわかりません。
いろいろキーを押してみたのですが、アルファベットしか
出てこないのです。マニュアルにも
『Pythonで学ぶプログラム作法』にも載っていなさそうです。
本当に「0から」って感じですが、お答えいただけたらうれしいです。
328デフォルトの名無しさん:2006/02/17(金) 00:28:39
えーと・・・コマンドプロンプトで日本語入力の方法がわからないってこと?
329327:2006/02/17(金) 00:30:57
>>328
そうです。わからないというか、できないというか。
330デフォルトの名無しさん:2006/02/17(金) 00:34:51
alt+全角
331327:2006/02/17(金) 00:55:06
>>330
出来ました。ありがとうございます。
332デフォルトの名無しさん:2006/02/17(金) 01:16:39
本当に0からの質問が来るとは。
日本語pythonならidleってのがついているから、
コマンドプロンプトじゃなくてそれ使ったら?
333327:2006/02/17(金) 03:16:30
>>332
重ねてありがとうございます。
(idleという項目をマニュアルで見つけましたので、後日熟読します。)
(実は今の段階では、読んでもなんのことか判らないので…)
334デフォルトの名無しさん:2006/02/19(日) 19:23:59
MVCフレームワーク2頭Turbogear と Django どっちがナウでお勧めですか?
335デフォルトの名無しさん:2006/02/19(日) 20:04:52
俺はweb.pyに未来を感じるのだが..
おまいらどう思いますか?

http://webpy.org/
336デフォルトの名無しさん:2006/02/19(日) 20:14:33
俺はpychinkoに未来を感じている
337デフォルトの名無しさん:2006/02/19(日) 20:33:09
>>334
TurboGearだけはSDに載ってたんだが……
338デフォルトの名無しさん:2006/02/19(日) 21:22:19
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
339デフォルトの名無しさん:2006/02/19(日) 21:28:59
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
340デフォルトの名無しさん:2006/02/19(日) 21:53:20
すいません、質問させて下さい。
cherrypy で <img src = "url"/>って書きたいときって、
src = "url" の部分はどう書けばいい?

>>335
web.py よさげ
この類ってDjangoとか色々あるけど、
全国的に使用されてる割合ってどのぐらいなんだろ
341デフォルトの名無しさん:2006/02/20(月) 13:45:56
ジェダイ教の信者数くらいだろ.
342デフォルトの名無しさん:2006/02/21(火) 15:54:13
ジェダイ教のが多いだろ
343デフォルトの名無しさん:2006/02/21(火) 23:13:52
シス教だろ
344デフォルトの名無しさん:2006/03/01(水) 23:39:43
Django 萌え。

仕事で使ってみている。(まだ未公開。)
BSD ライセンスなので選んでみたが、
Django 自体のコードもいい感じだ。

デザインとして結構関数指向が強いので、
メンテできる人が限定されそうなのが欠点かも。

TurboGear ってどんな感じよ?
345デフォルトの名無しさん:2006/03/10(金) 23:12:14
本日からここをPythonの本スレと認定します(`・ω・´)
346デフォルトの名無しさん:2006/03/10(金) 23:13:37
日本Pythonユーザ会
http://www.python.jp/Zope/
Python オフィシャルサイト
http://www.python.org/
まとめwiki
http://www7a.biglobe.ne.jp/~yasozumi/python/wiki/
347デフォルトの名無しさん:2006/03/10(金) 23:14:34
348デフォルトの名無しさん:2006/03/11(土) 01:45:02
上級者さんがイヤなら変なPart9を保守するのもありかと思うので、
総意を聞かせていただきたかったり。テンプレこっちの方がいいけど。
349デフォルトの名無しさん:2006/03/11(土) 03:23:57
次スレはここか
350デフォルトの名無しさん:2006/03/11(土) 11:17:47
どっちもスレタイがアレだが、まだこっちのほうがマシだな。
351デフォルトの名無しさん:2006/03/11(土) 11:19:53
346
>上級者さん
呼んだか?
352デフォルトの名無しさん:2006/03/11(土) 14:56:50
>>351
違う。あんたは上級生。
353デフォルトの名無しさん:2006/03/11(土) 19:30:58
変なスレタイで立ててるの毎回同じ奴?いい加減うんざりなんだけど
354デフォルトの名無しさん:2006/03/11(土) 21:31:25
大事なのは名前より中身。
2chのスレ名ごときに黙ってられない奴の方がいい加減うんざりだ。
355デフォルトの名無しさん:2006/03/11(土) 22:05:19
4つもpythonスレがあったころが懐かしい
356デフォルトの名無しさん:2006/03/11(土) 22:54:36
内容がなくなったよな
Pythonスレに限ったことじゃないけど
357デフォルトの名無しさん:2006/03/11(土) 23:10:18
>>353
今回のは俺じゃねえよ。
358デフォルトの名無しさん:2006/03/11(土) 23:58:01
pythonで科学技術計算するっていう本(洋書)のタイトル覚えてる方います?
前すれで話題になったんですけど
359デフォルトの名無しさん:2006/03/12(日) 00:20:36
>>358
Python Scripting for Computational
http://www.amazon.co.jp/exec/obidos/ASIN/3540294155
360デフォルトの名無しさん:2006/03/12(日) 00:35:52
>>359
たかっ…
ありがとうございました.
361デフォルトの名無しさん:2006/03/12(日) 00:58:31
日本語で書かれていて安くてわかりやすくて科学技術計算について書かれた

そんなPython本があればなぁ
362デフォルトの名無しさん:2006/03/12(日) 01:01:48
分野は?
科学技術計算といってもいろいろあるだろ
363デフォルトの名無しさん:2006/03/12(日) 01:04:03
>>362
多変量解析・統計解析
Rじゃちょっとなぁとおもって
364デフォルトの名無しさん:2006/03/12(日) 09:21:16
>363
* scipy なんかの範疇に収まらなさそうなのはこの際 R でやる

それがイヤなら
* RPy (R の python mapper)に手を出す
http://rpy.sourceforge.net/
* グラフィックも matplotlib 辺りで頑張る

>多変量解析・統計解析
これ自体は現状では R関連の本が一番実用的じゃないかな。
R言語自体の是非はおいておく。
実用世界(計算プログラム)での統計の考え方として読めば
python人でもいろいろ役に立つはず。

知ってる中ではこれが一番使える:
"S-PLUSによる統計解析"
http://www.amazon.co.jp/exec/obidos/ASIN/4431708219

これもいいかもしれないけどあまりよく見てない:
"工学のためのデータサイエンス入門"
http://www.amazon.co.jp/exec/obidos/ASIN/4901683128
365デフォルトの名無しさん:2006/03/12(日) 10:34:24
> 多変量解析/統計解析

単に統計量を出したいのならNumericやらnumarrayやらを使えばいいんだけど,
それでは統計解析とはいわないよね.Pythonには分散分析や検定のパッケージが
あまりないから,しっかり勉強して自分で組む必要がある.
理論とコードの両方をカバーするのがしんどいなら,情報の面でもコードの書き
やすさの面でも R を勉強した方が近道だと思うよ.

Python Scripting for Computational Science は,データ処理やデモアプリの作成
にPythonを活用しようという趣旨の本.トピックが幅広くて実践的だけど,個別の
データ解析手法のトピックにはあまり詳しく触れてない.

ちなみに Numerical Methods in Engineering With Python なんて本もある.
これはシステム解析がテーマ.行列を使ってシステム方程式を解くのに numarray
を使いましょうという話で,大学生/大学院生の教科書レベル.
366デフォルトの名無しさん:2006/03/12(日) 12:12:11
>>364,365
ありがとうございました
367デフォルトの名無しさん:2006/03/12(日) 14:53:52
多変量解析/統計解析にはpyちんこが有効だと思います。
名前は変だけど、これ最高。
http://www.mindswap.org/~katz/pychinko/
368デフォルトの名無しさん:2006/03/12(日) 16:13:13
pychinko...
日本語の文書ないかなぁ
369デフォルトの名無しさん:2006/03/12(日) 19:04:00
>>357
お前は俺か?(つまり少なくとも3人は居るっつーことだなw)
370デフォルトの名無しさん:2006/03/12(日) 19:33:06
>367
何に使えるの?
371デフォルトの名無しさん:2006/03/12(日) 22:09:19
372デフォルトの名無しさん:2006/03/13(月) 00:23:44
True = 0の後だとwhile Tureループ回らないのが気持ち悪い。
予約して欲しかった。あとwhile trueって書いて悶える奴絶対いそう
373デフォルトの名無しさん:2006/03/13(月) 00:27:32
そりゃー、 「while Ture」 だもん、ループせんわな
374デフォルトの名無しさん:2006/03/13(月) 01:17:41
>あとwhile trueって書いて悶える奴絶対いそう

漏れはほかの言語みたいにfor (;;)やdo構文的な別アプローチをあえて
用意せず、無限ループの書き方は常に1つってのが、Python的で
いいと思うなー

個人的にfor(;;)みたいな若干トリッキーな書き方をするぐらいだったら
while Trueの方がずっと素直だしわかりやすいと思うお
375デフォルトの名無しさん:2006/03/13(月) 01:19:45
True, False という名前で変数を宣言できちゃうのはなかなかやばいよな。
いつにになったら True, False が予約語に入るんだろ。
376デフォルトの名無しさん:2006/03/13(月) 01:25:54
>True = 0
うわ、そんなことできるのか。。

True, False = False, True
真偽を反転させた状態を利用して何か面白いことができないかと一瞬思ったけど
頭が混乱するだけか。。
377デフォルトの名無しさん:2006/03/13(月) 01:45:28
>376
自分の書いているコードの範疇ならまだいいんだけど
呼んでいるライブラリのなかとかも崩壊するから
マジ死亡でっせ
378デフォルトの名無しさん:2006/03/13(月) 11:05:02
えー知らなかった…
while 1:
にするかな…
379デフォルトの名無しさん:2006/03/13(月) 19:11:43
>>377
> 呼んでいるライブラリのなかとかも崩壊する

どういうこと? 例きぼんぬ。
380デフォルトの名無しさん:2006/03/13(月) 19:23:47
例えばこんな

>>> def hoge(var):
        if var == True:
                print "A"
        else:
                print "B"

>>> v = 1
>>> hoge(v)
A
>>> True = 0
>>> hoge(v)
B
381デフォルトの名無しさん:2006/03/13(月) 19:25:51
>>377
False = True とかやっても汚れるのはその名前空間だけだよね。
__builtins__.False = True とかやると、ガクガクブルブルw
382デフォルトの名無しさん:2006/03/13(月) 19:51:45
>>380
なるほど、そういうのも「ライブラリのなか」と呼んでるわけね。サンクス
383デフォルトの名無しさん:2006/03/13(月) 19:58:35
>381

あれ? そうなの?
グローバル空間で True/False を書換ちゃうと
世紀末がいきなり来ちゃうのかと思ってた。

tutorial か何かにも (int = 3 みたいに) builtin なものを
上書きしちゃうとそういうのを参照するような
ライブラリの中とかもうまく動かなくなるよーって
かいてあった気がしたんで >377 って書きました…
384デフォルトの名無しさん:2006/03/13(月) 20:04:09
真偽値判定が反転するようにtrue=not trueなんてどんなヘボだよ
マジでメリットあんの?
385デフォルトの名無しさん:2006/03/13(月) 20:12:05
>>383
Python のグローバルスコープ(と呼んでいるもの)はモジュール毎だからね。
明示的に __builtins__ を汚さない限り影響はそのモジュール内にとどまるはず。
個人的には「グローバルスコープ」という名称が誤解を招きやすいと思う。
386383:2006/03/13(月) 21:30:36
>385
説明ありがとうございます。勉強になりますた。
勘違いしてました。

ということで >377 は嘘です撤回しますです… orz
387デフォルトの名無しさん:2006/03/13(月) 22:13:23
名前空間って最高ですね。と、初めて思った。
388デフォルトの名無しさん:2006/03/13(月) 22:40:55
同じく。
てか予約語にせい
389デフォルトの名無しさん:2006/03/13(月) 22:54:36
bool型じゃないから仕方ない。
というか、C++に慣れてるのでTrue、Falseと先頭大文字にするのがめんどい。
タイプ量的にもC的にもwhile無限ループはwhile 1:

そうか、最初にtrue=True, false=Falseとかしちゃえばいいのか。馬鹿みたいだが。
390デフォルトの名無しさん:2006/03/13(月) 23:18:00
__slots__を使ってTrue,Falseやtrue,falseの上書きを抑止したりできないもんかな。
#使い方をよく理解してないから、サンプルコードで例示できない…。
391デフォルトの名無しさん:2006/03/14(火) 00:48:06
はじめてのPython第2版をはじめてみたよ…
第1版とは段違いのわかりやすさに見えた.
392デフォルトの名無しさん:2006/03/14(火) 01:04:06
True や False に代入するってのはどういう状況?
まともに Python を勉強していたら「"True" という変数を作ろう」なんて発想は
逆さに振っても出てこない気がするんだが。

True や False が無かった古い Python ならいざ知らず、
わざわざ上書きで再定義するなんてのは単なるわがままか不勉強だろう。
393デフォルトの名無しさん:2006/03/14(火) 01:19:40
「やるかどうか」ではなく「できるかどうか」が問題なんじゃないのかな。
例え誰もいじらないってわかってても、隠蔽して「いじれないようにする」のがカプセル化。
それと同じ理由じゃない?
394デフォルトの名無しさん:2006/03/14(火) 01:20:48
「Trueを上書きできちゃう」ってことに驚いてただけだ。
必要ないけど好奇心で無駄に深追いしてるんだよ。
395デフォルトの名無しさん:2006/03/14(火) 01:25:00
ばかばかしい遊びをやってるところに、常識論を振りかざされてもなあ。
しらけるだけだよ。
396392:2006/03/14(火) 01:29:53
>>393
> 例え誰もいじらないってわかってても、隠蔽して「いじれないようにする」のがカプセル化。

その意味では Python に「カプセル化」の機能はないよ。
いじれない部分はない。

いじれると分かっていてもいじらないのが Python 式。

>>394
了解。名無しに戻って ROM るよ。
397デフォルトの名無しさん:2006/03/14(火) 01:31:06
>>394
スマンカッタ
398デフォルトの名無しさん:2006/03/14(火) 01:31:46
レス番間違えた。

>>395
スマンカッタ
399372:2006/03/14(火) 05:13:26
ちょっと思いついたから書いてみただけなんだ。ごめんよ... >>373-398
400デフォルトの名無しさん:2006/03/14(火) 07:31:01
殺 伐 万 歳
401デフォルトの名無しさん:2006/03/14(火) 08:06:08
>>400
逝ってよーし
402デフォルトの名無しさん:2006/03/14(火) 20:22:24
>>403
スマンカッタ
403デフォルトの名無しさん:2006/03/14(火) 20:28:25
>>402
ヤダユルサナイ
404デフォルトの名無しさん:2006/03/15(水) 00:44:40
!=を使う奴は貴族。<>を使う奴は豪族。
405デフォルトの名無しさん:2006/03/15(水) 13:32:11
labmda a,b: a-b を使う奴はラ族。
406デフォルトの名無しさん:2006/03/15(水) 13:38:48
>>402-403
モチツケ.
再帰関数をλとreduceで置き換えて心を落ち着けるんだ。
407デフォルトの名無しさん:2006/03/15(水) 14:54:37
余計 落ち着かなくなりました!
408デフォルトの名無しさん:2006/03/15(水) 16:10:33
>>407
終了条件が不明だからだ!!
仕様から見直せ!!!
409デフォルトの名無しさん:2006/03/16(木) 15:48:38
環境Win XP です。音速でパイソンを覚えたいです。
まず何からDLしたらいいのですか?
410デフォルトの名無しさん:2006/03/16(木) 15:54:07
早く教授汁('A`)
411デフォルトの名無しさん:2006/03/16(木) 15:54:52
音速…
412デフォルトの名無しさん:2006/03/16(木) 15:59:03
>>411
とりあえずパイソンの実行できるインタプリタなる物をDLしてくるんで
仕切り終わったら徹夜でお願いします。
413デフォルトの名無しさん:2006/03/16(木) 16:34:35
ttp://www.python.jp/Zope/download/pythoncore

このサイトのpython-2.4.2msi以外のほかに何かDLするものはありますか?
414デフォルトの名無しさん:2006/03/16(木) 16:35:16
ttp://www.python.jp/Zope/download/pythoncore

pythonを実行できる環境にするにはこのサイトのpython-2.4.2msi以外のほかに
何かDLするものはありますか?
415デフォルトの名無しさん:2006/03/16(木) 16:36:23
2連投稿してしまいました。すいません('A`)
416デフォルトの名無しさん:2006/03/16(木) 16:41:17
次はこれを読め。

ttp://kanaya.naist.jp/Zope/member/nishio/japanese/memo/LearnPythonInAnHour/

1時間以内にできなかったら














見込みはない。あきらめろ。
417デフォルトの名無しさん:2006/03/16(木) 16:42:48
英才教育だ…
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のディレクトリを
どこへ置けばいいのでしょうか?
スクリプトではなく、普通に実行するには問題無く実行できるようです。

対処の仕方を教えて頂けないでしょうか?お願いします。
420デフォルトの名無しさん:2006/03/16(木) 17:17:28
IDLE(Python GUI)を起動して,メニューのFile -> New Window
で作ったファイルならF5を押せば実行できます.
421デフォルトの名無しさん:2006/03/16(木) 17:19:42
すげ〜音速で質問だ・・・
422デフォルトの名無しさん:2006/03/16(木) 17:21:21
>>420
実行する事が出来ました!!ありがとうございます!!何とか次に進めそうです(^ω^)
423デフォルトの名無しさん:2006/03/16(木) 17:24:17
「>>>」 っていうのは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時間じゃ覚えられないお('ω`)
では次は何をしたらいいのですか?
426デフォルトの名無しさん:2006/03/16(木) 17:51:31
>>425
とりあえず氏ね
427デフォルトの名無しさん:2006/03/16(木) 17:55:14
>>425
分かりました。では死んできます。あとは独学でなんとかします。
428デフォルトの名無しさん:2006/03/16(木) 17:58:24
あきらめろ。お前に音速は出せない。

諦めて ttp://www.python.jp/doc/release/tut/ をじっくりやれ。
429デフォルトの名無しさん:2006/03/16(木) 17:58:45
>>425
pythonをアンインストール
430デフォルトの名無しさん:2006/03/16(木) 18:05:21
プログラムの実行の仕方、格サイトの提供をして頂いて、ありがとうございます。
おかげ様で実行できる所までは満足行く環境になり大変助かりました。
>>428
細かい説明がなされているので、そちらのサイトを基盤にし、理解を深めるように
して行こうと思います。オブジェクト指向も初めてなので頑張りたいと思います。
いろいろとご迷惑おかけしました。
付き合って頂いて本当にありがとうございました。
>>429
そうは行きません。頑張ります。

ではありがとうございました。
431デフォルトの名無しさん:2006/03/16(木) 18:07:14
>>430
しっかり氏んでこい。
2度とくるなよ。
432デフォルトの名無しさん:2006/03/16(木) 18:22:33
台風一過
433デフォルトの名無しさん:2006/03/16(木) 18:33:36
PyJUGチュートリアル読むか、ttp://word.starword.org/python/ みたいな
入門者の事例をなぞるか、どこぞの読み物を読むか
ttp://www.f7.ems.okayama-u.ac.jp/~yan/python/ を暗記するか、
やりたいことを書き出して逆引きPythonで逐一コードにするか。
434デフォルトの名無しさん:2006/03/16(木) 18:41:10
 ぱいチンコびろーん
   ∩___∩     
   | ノ      ヽ/⌒) 
  /⌒) (゚)   (゚) | .|  
 / /   ( _●_)  ミ/
.(  ヽ  |∪|  /
 \    ヽノ /   
  /      /  
 |   _つ  /    
 |  /UJ\ \       
 | /     )  )       
 ∪     (  \    
        \_)
435デフォルトの名無しさん:2006/03/16(木) 20:16:25
台風二号は「PythonのIDEは何が最強ですか」になりそなヨカン
# "最強"という単語の誤用がミソ
436デフォルトの名無しさん:2006/03/16(木) 20:40:28
>>435
つまんね杉。座布団没収。
437デフォルトの名無しさん:2006/03/16(木) 22:24:58
全部な。
438デフォルトの名無しさん:2006/03/17(金) 01:16:03
PythonのIDEは何が最強ですか?
439デフォルトの名無しさん:2006/03/17(金) 01:29:45
edlin
440デフォルトの名無しさん:2006/03/17(金) 01:35:01
電設巨人
441デフォルトの名無しさん:2006/03/17(金) 02:34:23
オソレスだが

> あきらめろ。お前に音速は出せない。

これにシビれた :-O
442デフォルトの名無しさん:2006/03/17(金) 06:15:57
>>438
ttp://stani.be/python/spe/
vi
Emacs + Python-mode
443デフォルトの名無しさん:2006/03/17(金) 12:24:04
>>438
普段はpython-mode on emacsだけど
PyScripterなんかもなかなかいいよ。
444デフォルトの名無しさん:2006/03/17(金) 18:42:08
インデントって4文字が普通だよな?
445デフォルトの名無しさん:2006/03/17(金) 18:43:59
一般的には4つだね.Google社内では2つとか.
446デフォルトの名無しさん:2006/03/17(金) 20:25:07
文字列囲むのに ' と " どっち使ってる?使い分けてる?
447デフォルトの名無しさん:2006/03/17(金) 20:32:07
めんどうなのでいつも""
448デフォルトの名無しさん:2006/03/17(金) 20:47:07
俺は常に ' だな。文字列をどちらで書くかで俺の頭はCやJavaとモードスイッチ
されるようだ。w
449デフォルトの名無しさん:2006/03/18(土) 00:57:41
>>443
PyScripter試してみたけど、ソース中の日本語は文字化けしちゃうけど、なんか解決策ある?
450デフォルトの名無しさん:2006/03/18(土) 02:17:32
(;・∀・).。o○"'混在してるなんて言ったら叩かれそうだ
451デフォルトの名無しさん:2006/03/18(土) 04:56:11
一文字定数なら'
複数文字なら"
というクセが抜けないでぷよ
452デフォルトの名無しさん:2006/03/18(土) 05:01:38
>>449
ん、便乗して試してみたけど、
Tools -> Options -> Editor Options
を選んで、DisplayタブのEditor Fontでフォント変えたら大丈夫でしたよ。
453デフォルトの名無しさん:2006/03/18(土) 18:33:36
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>
"""

見たいにやってるけど、なるべく"""は使いたくないと思って。
なんかいい方法ある?
454デフォルトの名無しさん:2006/03/18(土) 18:46:48
>>453
"""を使いたくない理由がよくわからんけど、使いたくないなら別ファイルに
書いておいて読むとか。
455デフォルトの名無しさん:2006/03/18(土) 19:06:04
円マークってなんじゃらほい
456http://www.vector.co.jp/soft/win95/util/se072729.html:2006/03/18(土) 19:30:52
64bitに対応したトリップ検索プログラムありますか?

TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
457デフォルトの名無しさん:2006/03/18(土) 19:47:48
> 455

俺にはバックスラッシュに見えるのだが‥‥‥
458デフォルトの名無しさん:2006/03/18(土) 19:55:59
>>455
円マークにしてもバックスラッシュにしてもw、要するに1行目に空行が入る
のを避けるためだろう。俺もよくやるよ。
459デフォルトの名無しさん:2006/03/18(土) 20:45:08
print "Lancelot and " ¥
 "Garahad and " ¥
 "I...."

って書いてる。複数文字列をつなげるだけなので、改行は明示的に入れないと入らない。
460デフォルトの名無しさん:2006/03/18(土) 22:26:18
ソースコードエンコーディング何にする派?
あと、どう書いてる?(例: # -*- encoding: utf-8 -*-)
461デフォルトの名無しさん:2006/03/18(土) 22:44:33
普段はIDLE任せなんだけど、そういうソースエンコード表示って
先頭行にコメントで、半角1つ(って決まってもないかも)空けたあとは
# coding:(encode)でもいいんだよね?-*-も必須?
462デフォルトの名無しさん:2006/03/18(土) 22:59:28
>>461
-*- はEmacsに優しい
463デフォルトの名無しさん:2006/03/18(土) 23:00:28
なぜですか?
464デフォルトの名無しさん:2006/03/18(土) 23:26:26
emacs も -*- を見てファイルエンコーディングを解釈してくれるんだよ。
465デフォルトの名無しさん:2006/03/18(土) 23:26:49
なるほどー ありがとうございます
466デフォルトの名無しさん:2006/03/19(日) 00:02:19
class の selfが良くわかりません.なんですかこいつ
467デフォルトの名無しさん:2006/03/19(日) 00:22:03
Pythonではインスタンス自身への参照を第一引数 self として明示的に書く。

もっとわかりたい場合はコレを読むといい。
http://www.geocities.jp/shido_takafumi/py/python7.html

# ちなみに、文法的にクラスという概念の無いC言語でも、オブジェクト指向っぽい書き方をしようと
# すると、Pythonのようにインスタンス自身を引数として明示的に書いたりします。
# OpenSSL なんかがそうなってた。
468デフォルトの名無しさん:2006/03/19(日) 00:27:46
>>453 """使え。

今思いついたけど、

print "".join((
"abc",
"def"
))

とか。
469デフォルトの名無しさん:2006/03/19(日) 00:34:38
# vim: fileencoding=utf-8
ちなみに↑Vim君でも機能するようにできてる。けど少数派。
470デフォルトの名無しさん:2006/03/19(日) 00:38:17
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>'
471デフォルトの名無しさん:2006/03/19(日) 00:45:28
インスタンス自身への参照…
?_?
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にすることになっているというわけだ。
473デフォルトの名無しさん:2006/03/19(日) 13:16:23
C++もJavaも知らない…
インスタンスってのはオブジェクト内の変数なのでしょうか.
よくわからないや
474デフォルトの名無しさん:2006/03/19(日) 13:21:29
475デフォルトの名無しさん:2006/03/19(日) 13:41:48
>>474
ダンケ すぐ読んでくる!
476474: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デフォルトの名無しさん:2006/03/19(日) 14:19:48
チュートリアルがわかりづらい
478デフォルトの名無しさん:2006/03/19(日) 14:34:03
インスタンス
オブジェクト
クラス
コンストラクタ

あぁあモウネルワカンネ
479デフォルトの名無しさん:2006/03/19(日) 14:38:55
>477
あのチュートリアルの問題なのかなぁ…

その意味では "5分で分かるオブジェクト指向" って類いで
まともに分かるものが殆んどないんじゃない?

一応は分かったような気にはなるんだけど、いざプログラムコードと
向き合うときにしっくり来るような意味で染み込んでくれる説明が
あるなら紹介して欲しい。

俺が構造化・手続き型言語から来ているから理解がニブいって
問題だけじゃないと思うんだけど
(オブジェクト指向分かりにくいって意見はよく見るじゃん)
480デフォルトの名無しさん:2006/03/19(日) 15:10:30
>>479
以前どこかで読んだんだけど、ことばのハンデもあると思われ。
OOP用語の object, class, instance, constructor, inheritance 等々は
英語としてはフツーの直感的に理解しやすいことばなのらしい。
ところが俺たち日本人のバヤイは、カタカナ語(「オブジェクト」
「クラス」等)または普段あまり使わない漢字語(「継承」等)を
通じてOOPを理解しないといけない。ぶっちゃけ、直感的に分かりやすい
考え方とは言いがたい。

誰か大和ことばだけでOOPの初歩を解説してくれねーかな。
481デフォルトの名無しさん:2006/03/19(日) 15:19:39
他の言語を触ったことのある漏れには、チュートリアルは超わかりやすいとおもったんだけどねぇ
482デフォルトの名無しさん:2006/03/19(日) 15:25:41
スレタイに相応しい展開ですね
483デフォルトの名無しさん:2006/03/19(日) 15:38:03
話題がないのでループしてるだけとも言う
484デフォルトの名無しさん:2006/03/19(日) 16:22:41
どうでもいいからわかりやすく教えてください
485デフォルトの名無しさん:2006/03/19(日) 16:46:43
オブジェクト指向は習うより慣れろって所が強い
かなり説明しずらい

野球を説明する時にどうやってバットでボール打つんですか?って質問に答えるぐらいむずかしい
486デフォルトの名無しさん:2006/03/19(日) 16:50:45
普通に簡単な実験プログラムを作りたいんなら
OOP せんでもいいよ。
487デフォルトの名無しさん:2006/03/19(日) 16:53:49
オブジェクト指向に関して
ttp://iwatam-server.dyndns.org/software/devintro/oo/oo/
488デフォルトの名無しさん:2006/03/19(日) 16:54:59
>>486
Pythonはオブジェクト指向でないプログラムもできるのも良いね
selfもclassもいらんもん
489デフォルトの名無しさん:2006/03/19(日) 17:06:07
俺は関数型スタイルが一番好きなんだけど、 Python の lambda の内容は expression の
みで中途半端だったので、初めはムカついてた。

けどまあ、これは複雑な関数は lambda にすんな、って作者の暗示なんだろうね。もう慣れたよ。
490デフォルトの名無しさん:2006/03/19(日) 17:07:52
>>487
> 「オブジェクト」とは日本語で言えば「もの」です。

この名言が日本人のOOに対する理解度を低下させている元凶です。
subject/object(主体/客体)のオブジェクトなのに。
491デフォルトの名無しさん:2006/03/19(日) 17:10:59
>>486 >>488
同意。
使い捨てのコードなんかでclass使わない場合がしばしばあるな。
所詮自分専用だしいいかーみたいなノリで。

で、使い捨てのコードをがしがし書いてて、しばらくやってると、
クラス定義とかもしといたほうが便利かもなーなんて考えたりするもんかも。
492デフォルトの名無しさん:2006/03/19(日) 17:24:10
元々、「クラス」ってのは何度も使い回しするであろう「もの」
の抽象系であるから

>で、使い捨てのコードをがしがし書いてて、しばらくやってると、
>クラス定義とかもしといたほうが便利かもなーなんて考えたりするもんかも。

みたいに、経験からくるもんなんだよ。それを考慮せず、いきなり
「クラス書け」と強制する Java とかは不自然な言語だよ
493デフォルトの名無しさん:2006/03/19(日) 17:50:15
>>492
Java が不自然な言語なのではなく、オブジェクトもクラスもわからんレベルの素人
が Java で書こうというのが不自然なだけでしょ。
494デフォルトの名無しさん:2006/03/19(日) 17:52:09
誤解を招くのを承知で書くと

- クラスは設計図。
- インスタンスは製品。
- メソッドには製品についてるボタンとかレバーとかを操作したときの振る舞い(仕様)が書かれている。
- インスタンス変数は製品の状態。

* 設計図から製品を作るのがインスタンス化。
* 製品を作るために呼び出す関数がコンストラクタ。
* 別の設計図に手を加えて新しい設計図を作るのが継承。
* メソッド定義は製品のボタンやレバーを操作したときに何をするかを書く。

+ 設計図には製品の一般的な振る舞いしか書いてない。だから「"この製品"のXXが
YYならZZしろ」という仕様を書きたければ、 設計図には"この製品"を表す名前が
必要になる。これがself。
+ ユーザにとって、製品の回路の内部電圧とかレバーの回転角とかはどうでもいいし、
直接操作するものでもしてほしいものでもない。むしろユーザにとっては「ボタンを
押したら次の曲」とか「インジケータには曲名が表示されている」とかいう情報が
必要なので、ユーザにはインスタンス変数を直接操作させるよりもメソッドから操作
できるようにしておく。これがカプセル化。
+ 「ボタン」というインタフェースはどこにでもあるけど、それで電話を掛けるか
ミサイルを発射するかは製品次第。これがポリモルフィズム。
495デフォルトの名無しさん:2006/03/19(日) 17:58:40
やっぱむつかしいな
496デフォルトの名無しさん:2006/03/19(日) 18:06:27
なんとなくわかってきたよ
selfってのはclass HogegeのHogegeなんだね?
んで
class Hogege:
  def __init__(self, name, age):
    self.name = name
    self.age = age
とかするのか!?
とりあえず何かプログラム書いてみます
497デフォルトの名無しさん:2006/03/19(日) 19:46:47
>>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
498497: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
が別になる
499デフォルトの名無しさん:2006/03/19(日) 21:11:29
オブジェクト指向っていうのとはたぶん違うけど
TRON 世界では OS のいろいろなものを日本語表現で言うよね。

実身/化身 とか。

他の言語も含めて共通語になってくれないと
単なる変態用語になりかねなくて危険だけど、
ああいう感じで「ナゾのカタカナ語」から脱却できるといいんだけどね。

>490
この手の「もの」説明をいくら読んでもしっくり来なかったんだけど
最近無理に「もの」とか考えなくていいんだ、と思うようになって
少しクラスが分かった気がしてきてる。

>494
一番迷うのって "クラスとは何か" っていうより
"何をクラスにすべきなのか"
"どういうクラス構成にすべきか"
っていう部分で、その捉え方(クラス分け)が設計そのものってイメージだけどな。
500デフォルトの名無しさん:2006/03/19(日) 21:26:22
化身じゃねーよ、仮身だろ。w
501デフォルトの名無しさん:2006/03/19(日) 22:12:03
日本語とオブジェクト指向
http://satoshi.blogs.com/life/2004/09/post.html
502デフォルトの名無しさん:2006/03/19(日) 22:18:02
ericキモイ・・・なんだあの起動画面は
503デフォルトの名無しさん:2006/03/19(日) 23:47:08
みんな手続き型言語から入ったからオブジェクト指向が理解できないんでしょ。
最初っからオブジェクト指向言語で入った人たちはあまり問題ないんじゃない?
っていうようなことがIBM developerWorksのどこかに書いてあった。
504デフォルトの名無しさん:2006/03/20(月) 00:27:47
最初からオブジェクト指向で入ると
「おぶじぇくととは モノ なのです」が
しっくりくるんだろうか… 結構疑問
505デフォルトの名無しさん:2006/03/20(月) 00:38:36
>>504
しっくりこなくても「オブジェクト指向の概念」を理解してる人にはわかるでしょ。
所詮、自然言語で説明(しかも初心者に!)なんて限界があるよ。

個人的にはいろんな例を見せるのが一番だと思う。
プログラム読むのが嫌いな人は絶対にプログラムを書けるようにはならないよ。
506デフォルトの名無しさん:2006/03/20(月) 01:52:08
まあオブジェクト指向はたくさんの例から学ぶのが最適だわな。
くどくど説明しようとすると悪い意味で哲学的な方向にばかり行ってしまう。

「オブジェクトとはモノである」ってのは初学者の興味をちょっと引く程度の意味以上は持たないと思う。
507デフォルトの名無しさん:2006/03/20(月) 02:24:14
>>505
> プログラム読むのが嫌いな人は絶対にプログラムを書けるようにはならないよ。

イイコト言った!
508デフォルトの名無しさん:2006/03/20(月) 02:29:52
>>499
> 一番迷うのって "クラスとは何か" っていうより
> "何をクラスにすべきなのか"
> "どういうクラス構成にすべきか"
> っていう部分で、その捉え方(クラス分け)が設計そのものってイメージだけどな。

これもいいな。

やはり、アレコレ言ってるよりも、「いっぱいコード書け! いっぱい読コードめ!」が王道なんだね。
Pythonは他人のコードが読みやすいので良いですね。
509デフォルトの名無しさん:2006/03/20(月) 02:31:51
訂正 >508 :
○ 「いっぱいコード書け! いっぱいコード読め!」
× 「いっぱいコード書け! いっぱい読コードめ!」
510デフォルトの名無しさん:2006/03/20(月) 03:11:27
自分でいろいろプログラムを書いてみれば、
「これと似た処理何回もあるな。
 毎回コピペして改造するの面倒だし、はじめから再利用できるようにしておこう」
ってこと出て来ると思うし、それでだんだんオブジェクト指向につながって行くんだよ
511デフォルトの名無しさん:2006/03/20(月) 03:41:58
>>510
その視点だと、partialが導入されたらクラス要らなくなりそうだ。
512デフォルトの名無しさん:2006/03/20(月) 07:08:36
オブジェクト指向は不要の方向に行くようなヨカーン
C#とかが関数型言語の方向にかなりいっている気がするのもその方向かもしれない
513デフォルトの名無しさん:2006/03/20(月) 08:12:23
複雑な方式(多重継承とか)はいらんけども、
せめて構造体に関数をつける程度の機能は残して欲しいな、なくすとしても。
あれはかなり便利だから。
514オレだよ、オレ:2006/03/20(月) 10:38:18
はいっ、先生!

>513 程度のレベルでしかクラスを理解していませんが
「クラスを使ってる」
「オブジェクト指向してる」
って言い張ってもいいんでしょうか?
515デフォルトの名無しさん:2006/03/20(月) 10:47:14
>>514
>程度のレベルでしかクラスを理解していませんが
>「クラスを使ってる」
>「オブジェクト指向してる」
>って言い張ってもいいんでしょうか?

短い答え:好きにしなさい。
長い答え:自分の言葉ぐらい自分で責任取れ。
516デフォルトの名無しさん:2006/03/20(月) 10:58:31
引用部分も含めて>>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 の解析に関するクラス、データの整形に関するクラス、
整形されたデータの書き出しに関するクラスに分かれていて、各クラスが容易に
再利用できる(つまり自分流に手を加えてアレンジできる)ようになっている。
正直言って、最初に読んだときはさっぱり理解できなかった。実際に自分でアプリを
書いてクラス群を再利用してみてようやくクラス設計のスゴさが分かった。
517デフォルトの名無しさん:2006/03/20(月) 10:59:57
連投&長文スマソ。新しいモジュールはほとんど読んでないので全体的に知識が古い。
最近のもので面白いものがあったら教えてホスィ。
518デフォルトの名無しさん:2006/03/20(月) 11:02:20
本文が長すぎると怒られた上に連投失敗・・・orz

- SocketServer.TCPServer, SocketServer.StreamRequestHandler
ソケット通信に基づくサーバを作るためのクラスライブラリ。
接続を待ち受けるサーバクラス (TCPServer) と、個々の接続に対する応用依存の
処理を記述するハンドラクラス (StreamRequestHandler) の2つでサーバを構成する。
一つの接続に対して一つのハンドラクラスのインスタンスが作られる。
これらのクラスの用例に BaseHTTPServer, SimpleHTTPServer 等がある。
これも最初に読んだときは理解が及ばなかったが使ってみて納得し、感心した。

連投&長文スマソ。新しいモジュールはほとんど読んでないので全体的に知識が古い。
最近のもので面白いものがあったら教えてホスィ。
519デフォルトの名無しさん:2006/03/20(月) 11:47:48
最近のというか,new-style class が導入されてから,組み込み型をサブクラス化できる
ようになったね.
520デフォルトの名無しさん:2006/03/20(月) 13:05:04
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
522デフォルトの名無しさん:2006/03/20(月) 14:06:50
>>515
長い答えがあまり長くないのには好感が持てる
523デフォルトの名無しさん:2006/03/20(月) 14:09:18
>>> 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

が良くわからないけどほかのところはわかりました.
ありがとうございました
524デフォルトの名無しさん:2006/03/20(月) 15:06:55
個人的には、zipfileモジュールがtarfileと違うのが気に入らん。
ファイルの書き出しストリームに暗号化処理を一段かまして、とかがさくっとできないから。
525デフォルトの名無しさん:2006/03/20(月) 15:39:34
一般的な英語はともかくとして、コンピュータサイエンスにおける"Object Oriented"の
"Object" の正式な訳語は「算体」だよ。普及してないけど。
526デフォルトの名無しさん:2006/03/20(月) 16:37:29
Pythonのイロハより、恋愛の必勝テクを0から押して下さい。
527デフォルトの名無しさん:2006/03/20(月) 16:38:41
押して押して押しまくれ
528デフォルトの名無しさん:2006/03/20(月) 16:54:25
どなたか女子高生と仲良くなる方法を教えてください。
マジレスきぼう。
529デフォルトの名無しさん:2006/03/20(月) 16:56:14
>>516-518
勉強になりました
530デフォルトの名無しさん:2006/03/20(月) 16:59:57
emacsの中でpythonを使うときのパスを指定するにはどうするか教えてください。
531デフォルトの名無しさん:2006/03/20(月) 17:12:14
若い娘が好きなんです。若すぎると犯罪なのでぎりぎりのところで。
532デフォルトの名無しさん:2006/03/20(月) 17:48:29
高校に入学しなおせばいいんじゃね?
533デフォルトの名無しさん:2006/03/20(月) 17:49:11
結婚して娘作ればいいんじゃね?
534デフォルトの名無しさん:2006/03/20(月) 18:11:10
春休みか
535デフォルトの名無しさん:2006/03/20(月) 18:57:44
オブジェクト指向に限らず、数学とかにも言えるけど「悟った」と思える瞬間があるよね。
536デフォルトの名無しさん:2006/03/20(月) 19:01:10
悟りはちょっとご勘弁を
537デフォルトの名無しさん:2006/03/20(月) 19:08:26
>>535
その理解に至るきっかけになる刺激を最初から電気ショックで与えてくれてれば
どんなに楽かと一体何度思ったことか。
538デフォルトの名無しさん:2006/03/20(月) 19:34:53
たしか、そういうヘッドギア付けてくれるところがどこかにあったっけなぁ。
539デフォルトの名無しさん:2006/03/20(月) 19:48:10
>>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デフォルトの名無しさん:2006/03/20(月) 20:06:56
わかったようなわからないような
541デフォルトの名無しさん:2006/03/20(月) 20:44:43
女子高生よりぱいそんが好き。
542デフォルトの名無しさん:2006/03/20(月) 20:48:26
>>540
クラス定義のあと、スクリプトの実行部分で使う場合に
「foo.bar()」と「個別のインスタンス名.クラスで定義されたメソッド名」になる。
こういうメソッドをクラスで定義するためには「個別のインスタンス名」が無いわけだから
その代わりに「self」を使う。

でいいのかな
543デフォルトの名無しさん:2006/03/20(月) 21:44:10
>539
ある意味 いんすたんす という言葉より
python での 「self って書け、それは self(自体・自分)なんだ」
っていうところから いんすたんす って
そういうものなんだと理解した
544デフォルトの名無しさん:2006/03/20(月) 21:46:05
>>532
男子校でしたorz
545デフォルトの名無しさん:2006/03/20(月) 21:52:19
Hotwired Japanのニュースで共同プログラミングツールplayshを知りました。
ttp://hotwired.goo.ne.jp/news/technology/story/20060320302.html

playshはPythonで実装されてます。
誰か触ってみた人いる?
546デフォルトの名無しさん:2006/03/20(月) 21:52:32
>>530
M-x customize-group python
547デフォルトの名無しさん:2006/03/20(月) 22:02:35
>>542
つまりインスタンスってのはその場合fooなわけですか?
Fooというクラスに属するインスタンスであるところのfooに対して,
関数barを行うわけだからself,ってかくのか!
なんかわかってきたきがします

ttp://visualwx.altervista.org/indexit.php
これ使ってみた人いますか?
簡単にGUiアプリが作れるみたいですけど
548デフォルトの名無しさん:2006/03/20(月) 22:35:14
>>547
前に使ったことあるよ。結構いい感じだったんだけど、日本語が
全くだめだったので、やめた。今はどうなのかな。
言語は、pythonじゃなくてC++だけど。

アプリの配付を考えているなら、あまり向かないと思うぞ。wxWidgetを
一緒に配るか、埋め込まないといけないから。
埋め込んだ場合、窓一つでも数メガは行ったと思う。stripしても2,3メガくらいかな?
(ちなみにwindowsでの話)

あとwxWidgetは、ツリービューは他のOSとの互換のため、独自に描いているので、
見栄えが少し違う。そのときは気になって、何度もいじっていたら落ちたw

IDEの出来は、かなりよかった印象がある。印象だけかもしれんがw
使ったのはずいぶん前だから、興味があったら試してみたら?
GUIはボトペタでつくれたと思う。(最初に「サイザー」とかいうのを置かないといけないとか、
wxWidget独特の癖があるけど)
549デフォルトの名無しさん:2006/03/20(月) 22:44:55
>>> 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>
550デフォルトの名無しさん:2006/03/20(月) 22:56:24
pow(x,y)とかこれに類する関数イラネ
演算子使えない状況なんぞあんのかと
551デフォルトの名無しさん:2006/03/20(月) 23:00:00

550 は明かに関数プログラミングを知らないようだね

552デフォルトの名無しさん:2006/03/20(月) 23:04:22
>>550
map()
partial()
553デフォルトの名無しさん:2006/03/20(月) 23:40:30
>>530
windows?

コマンドプロンプトでpythonって打鍵してpythonが起動するならパス指定って不要でない?

(setq py-python-command "C:/Python24/python.exe")
554デフォルトの名無しさん:2006/03/20(月) 23:41:24
>>550
すくなくともLispかSchemeは触れておいた方がよいよ
555デフォルトの名無しさん:2006/03/20(月) 23:45:26
>>549
やっぱ一番最後の例がわからない…orz
556デフォルトの名無しさん:2006/03/20(月) 23:45:46
Lisp/Scheme厨だ。逃げろ〜〜〜
557デフォルトの名無しさん:2006/03/20(月) 23:53:58
>>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>
558デフォルトの名無しさん:2006/03/21(火) 00:32:46
そういう仕様なんですね
559デフォルトの名無しさん:2006/03/21(火) 00:34:45
あーそうかわかったぞー!
560デフォルトの名無しさん:2006/03/21(火) 01:40:05
学習しないって恐ろしいことだねぇ。
561デフォルトの名無しさん:2006/03/21(火) 05:28:14
なにげに良スレの予感
562デフォルトの名無しさん:2006/03/21(火) 07:39:20
>>546 >>553
マックで自分で入れたほうを起動させたかったのです。これでできそうです、thx!!
563デフォルトの名無しさん:2006/03/21(火) 08:35:10
py厨がlispだってよ。テラワロスwww
564デフォルトの名無しさん:2006/03/21(火) 08:36:15
>>563
テラワロスwww
565デフォルトの名無しさん:2006/03/21(火) 13:40:05
このスレみてるとpythonユーザとlisp/schemeユーザって
結構かぶってる気がする。
566デフォルトの名無しさん:2006/03/21(火) 13:43:36
PythonはLispのパクリだからな。
567デフォルトの名無しさん:2006/03/21(火) 14:13:04
おまいら paul graham 読みすぎ
568デフォルトの名無しさん:2006/03/21(火) 14:15:57
>>565
本当はLispが好きなんだが、仕事ではライブラリの豊富さに釣られて
Pythonを使ってる。でもPythonもだんだん好きになってきたよ。
569デフォルトの名無しさん:2006/03/21(火) 15:16:56

俺も Lisp の方が言語的に華麗だとは思うが、作業効率とか library の充実ぶり
とかソースコードの読みやすさや自然度は断然 Python の方が上だと思うな。
とかいって (E)Lisp と Python は五分ぐらいにプログラミングしてるけど
570デフォルトの名無しさん:2006/03/21(火) 15:24:49
でもまあ、どっちにしろ Lisp とかの関数型言語は学んでおくべきだね。
関数型言語の知識があれば Python でも lambda を取り組んだ map、
filter、 reduce などを活用した綺麗なコードが書けるようになる
571デフォルトの名無しさん:2006/03/21(火) 15:27:03
中学生のころ、クラスに二人のマドンナ的存在の女の子がいたんです。
ひとりはマリコ、もうひとりはジュンコ。どっちもかわいいし、スポーツ万能。
マリコはクールビューティ的な感じがあって、俺はより親しみやすい性格だった
ジュンコのほうが好きだった。
572デフォルトの名無しさん:2006/03/21(火) 15:53:55
これだからLisperは
573デフォルトの名無しさん:2006/03/21(火) 16:04:23
LispとSchemeはどっちのがいい?
574デフォルトの名無しさん:2006/03/21(火) 16:05:57
>>573
さすがにスレ違い
575デフォルトの名無しさん:2006/03/21(火) 16:13:00
lispとかlambdaっていいたいだけのやつが多いな。
576デフォルトの名無しさん:2006/03/21(火) 17:06:20
>>575

lispとかlambdaっていたいだけのやつが多いな。

に見えた
577デフォルトの名無しさん:2006/03/21(火) 18:28:51
mac、tiger用のpyopenglのバイナリってどこにあるか誰か知ってる?
http://pythonmac.org/packages/ にはpantherまでしか
ないんだけど。
578デフォルトの名無しさん:2006/03/21(火) 18:44:24
lambdaなんてどうでもいい。Pythonにはマクロが無いんだ。
これが俺にとってのPythonとLispの最大の違いだ。
579デフォルトの名無しさん:2006/03/21(火) 18:55:38
>>578
parserモジュールのASTを使って作れないかな。
580デフォルトの名無しさん:2006/03/21(火) 21:15:12
>>577
自分で作成する事になるんでないかな。。
581580:2006/03/21(火) 21:30:09
全機能は確認してないがとりあずそれでも動くみたいだ
582デフォルトの名無しさん:2006/03/21(火) 23:49:07
>>577
これはどうだ? google で "PyOpenGL Tiger" で検索したトップのやつなんだけれど
http://py-opengl.darwinports.com/
583580:2006/03/22(水) 06:23:03
>>577
ttp://pythonmac.org/packages/ のpanther用バイナリで
ttp://nehe.gamedev.net/ のlesson全部動作したよ

>>582
パッケージシステム導入するほどの事でもない気がする
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にしているのですが、どうも汚い感じがして別の書き方があるような気がします。
別の書き方は可能ですか?
586デフォルトの名無しさん:2006/03/22(水) 14:53:42
>>584
直接本人に告白してください。
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() ) ) + '}')
588デフォルトの名無しさん:2006/03/22(水) 15:17:34
for line in f.readlines():
    (k,v) = line.strip().split(",")
    d[k] = v
589デフォルトの名無しさん:2006/03/22(水) 15:22:20
Q.ヤらせて!
A.チッ、しょうがねぇな
590デフォルトの名無しさん:2006/03/22(水) 16:00:35
'"' で ',' が含まれる項目を quote してある csv だと
討ち死にしたりするよね?
591デフォルトの名無しさん:2006/03/22(水) 16:04:48
   ∩___∩
   | ノ      ヽ
  /  ●   ● |   こいつすげぇアホ!!
  |    ( _●_)  ミ
 彡、   |∪|   / \
/ __  ヽノ / \  \
(___)   /   │  │
            │ │
            /  ヽ
            l lUUU
            U
592デフォルトの名無しさん:2006/03/22(水) 16:57:23
>>585
d = dict(i for i in csv.reader(file("names.csv")))
593デフォルトの名無しさん:2006/03/22(水) 17:40:00
>>592
for generator って f( ... ) の中でも使えたのかい。。。知らんかったよ
594デフォルトの名無しさん:2006/03/22(水) 17:53:56

Python 版 JavaCC みたいなパッケージありますかね?
595585:2006/03/22(水) 19:23:30
>>592
カッコイイ!!
そういう事ができるんですね。ありがとうございます。
596デフォルトの名無しさん:2006/03/22(水) 19:29:19
597デフォルトの名無しさん:2006/03/22(水) 20:09:58
なんか >594 が微妙に自演くさいけど、とにかく
Python Lex-Yacc のドキュメント翻訳したひとには敬意を表したい。

乙でつ!
598デフォルトの名無しさん:2006/03/22(水) 20:18:54
翻訳版がでたのはかなり前だから、>594 >596 は自演でもなんでもないな。
はやとちりしてしまった。
599585: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
>>580-3
ありがとー、pantherのでも動くのか!!
601デフォルトの名無しさん:2006/03/23(木) 05:47:48
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')))
602デフォルトの名無しさん:2006/03/23(木) 09:09:25
              _,. -- 、__,.、
                /´ ,  ,   ヽヽ
               / ,'  / 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三ユ‐ュ、
         . . : : : : : : : : : : : : ト、 _{__   } : : : : : : .
              . : : : : : : : : : : `¬-、二フ : : : : : : : : . . .
603585=599:2006/03/23(木) 11:06:21
>>601
最初理解できなかったのですが、分解してみたら理解できました。
ありがとうございます。
604デフォルトの名無しさん:2006/03/23(木) 12:39:08
ワンライナー
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'))]]))
605デフォルトの名無しさん:2006/03/23(木) 14:25:08
どうみても6行です
606デフォルトの名無しさん:2006/03/23(木) 14:37:44
ムーニー独自のウンチポケットが、ゆるゆるウンチを広げない。
607デフォルトの名無しさん:2006/03/23(木) 14:55:59
ぶっちゃけ>>585>>599の方がずっと読みやすい。
608デフォルトの名無しさん:2006/03/23(木) 16:04:01
どなたか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
となり、変換できない文字があるようです。回避策はあるでしょうか?
609デフォルトの名無しさん:2006/03/23(木) 16:47:14
>>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") のように置換方法を定義して用いるのが良かろう。
610デフォルトの名無しさん:2006/03/23(木) 17:16:14
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]
611デフォルトの名無しさん:2006/03/23(木) 17:59:21
>>609

丁寧な解説でわかりやすいです。
基本ですか?。。。
その方法でうまくいきました。ありがとうございました。
612デフォルトの名無しさん:2006/03/23(木) 18:21:12
基本はね、環境変数LAN^]B
613デフォルトの名無しさん:2006/03/23(木) 18:58:08
チョト ワロタ
614585=599:2006/03/24(金) 11:06:27
>>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 便利って事がわかったので他のプログラムもしてみます。
615デフォルトの名無しさん:2006/03/24(金) 11:10:11
names.csv ってどんな形式だったかしら
と思ったら585にあった。
カンマじゃなくてコロンや空白で区切られていたら、
vcd,vnm

vcd:vnm とか vcd vnm
にすればいいのかな?勉強になるなぁ
後import が書いてないんですが…?
616デフォルトの名無しさん:2006/03/24(金) 11:27:52
正直,ワンライナーはあまり初心者向けの勉強にならないしキモイ
と,自分で書いてて思った
617デフォルトの名無しさん:2006/03/24(金) 12:20:49
正直,ワンライナーは惚け防止目的で書いてるだけ.
618デフォルトの名無しさん:2006/03/24(金) 13:05:10
>>615
それは
(vcd, vnm) = 要素が2個のリスト
の形の代入の省略形であって、csvのフォーマットとは無関係だよ
619デフォルトの名無しさん:2006/03/24(金) 13:08:06
文字列の変更ができないのはナゼですか?
できたほうが便利じゃないの?
620デフォルトの名無しさん:2006/03/24(金) 13:20:56
なぜ tuple と list があるのか、みたいなもんだな
621デフォルトの名無しさん:2006/03/24(金) 13:36:35
>>619
変更できないことが明確であるほうが便利なこともあるからだよ。
622デフォルトの名無しさん:2006/03/24(金) 13:44:22
623デフォルトの名無しさん:2006/03/24(金) 14:40:35
>>619
変更したいときは代入しなおせばいいだけだろ
624デフォルトの名無しさん:2006/03/24(金) 14:42:39
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の設置のために鯖を借りてるだけであまりこういうことは詳しくありません。
625デフォルトの名無しさん:2006/03/24(金) 14:43:58
間違った×pythson○python
626デフォルトの名無しさん:2006/03/24(金) 14:46:12
imp = u"インポートコンテンツ"
imp[3:6] = ""

ってできないのは不便だっていいたいんでしょ。
627デフォルトの名無しさん:2006/03/24(金) 14:50:26
>>624
下のリンク先の「Unix Target:」ってあたりから読め。
628デフォルトの名無しさん:2006/03/24(金) 14:52:52
そのプログラムを見る限り、標準モジュールしか使ってない。
つまり拡張モジュールは要らない。
サーバにログインできるなら、サーバでテストプログラムを実行してみ。
動かないならエラーが出るはずだから、それを晒せ。話はそれからだ。
629デフォルトの名無しさん:2006/03/24(金) 14:56:41
日本語化されたPythonってないですか?
630624:2006/03/24(金) 15:19:55
>>627
(;^ω^)読んでもいまいち意味がわからないんです
>>628
>テストプログラムを実行してみ
今それをやってる最中でして
HELLOは出来るのでpythonが動く鯖であることは間違いないと思います
投稿文が長くなるので貼り付けできませんでしたが、imoprtしてなかったらそこは
無視されて、動くところだけ動くので、別にエラーは出ませんでした

624に貼り付けたものはあれこれやったら動きました
おっしゃるようにこれには拡張モジュールは別に必要ないようでした
631デフォルトの名無しさん:2006/03/24(金) 15:23:11
>>630
サーバーでpythonが動くなら、mxCGIっていうのは必要ないよ
632デフォルトの名無しさん:2006/03/24(金) 15:23:40
>>629
日本語化って何?(どういうことを期待している?)
633624:2006/03/24(金) 15:46:11
>>631
>mxCGIっていうのは必要ないよ
(;^ω^)わかりました

でもpythonを使っているうちには拡張モジュールが必要な場面が出てくるのですよね
拡張モジュールの入れ方を解説したサイトはUNIXを理解できる人じゃないと無理みたいですね
仮に理解できても共有鯖だとtelnetも出来ないし鯖のroot権限がないので
フリーのftpソフトでバイナリをupすることくらいしか出来ないのでは無理なようでした

624のtestプログラムも動いたし、一応My鯖でpythonが動くかどうかのtestをしたい
という今日の目的は達成できましたのでとりあえずはよかったです
おさわがせしました
634デフォルトの名無しさん:2006/03/24(金) 15:49:19
>>629
>>11

>>619
>>23

>>616
>>91

釣られすぎ
635585=599:2006/03/24(金) 15:49:37
>>615
importは省略しました。
とりあえずCSVモジュルは自分で動かしてみると大夫理解できます。
636デフォルトの名無しさん:2006/03/24(金) 15:52:35
>>633
「さくらのレンタルサーバ」で Python 外部モジュールを使う
ttp://www.emptypage.jp/notes/pymods-on-sakura.html
とか参考になると思う。
Pythonはスクリプト言語だからほとんどの場合バイナリでアップする必要はないよ
637624:2006/03/24(金) 16:21:46
>>636
これは大変わかりやすいサイトです
助かります
さくらとMy鯖が違うのはシェルが使えるかどうかだけで
後は似たような環境のようです
これを見るとどうも出来そうな気がしてきました
ありがとうございました
638デフォルトの名無しさん:2006/03/24(金) 16:22:26
ってか、 Norvig タンのコードテストの仕方すげーよ。
マジでこれほど簡単で効率的なテスト見たことない
639デフォルトの名無しさん:2006/03/24(金) 18:37:17
>>638
Norvig タンのコードテスト が見たいのですが、どこで見られますか?
640デフォルトの名無しさん:2006/03/24(金) 23:32:04
16045の+2σは16630ですが、
それをpythonで計算するにはどうすれば良いですか。
641デフォルトの名無しさん:2006/03/25(土) 00:25:12
>>640
標準偏差と言うか統計関連の計算をしたいと理解すれば良いですか?
PythonよりもRやOctaveを利用する方が適切だと思います。
それでもPythonでやりたいなら
numpyを利用すればとりあえずできます
ttp://sourceforge.net/projects/numpy

もっと簡単に 標準偏差 だけやりたいなら σ にこだわらずに普通に計算でや
ればできます。
642デフォルトの名無しさん:2006/03/25(土) 00:28:38
>>634
全部参照するなんてこのスレを愛しているんですね。
過去スレって結構おぼえてないです。
643デフォルトの名無しさん:2006/03/25(土) 00:57:13
16045 ってナニ?
644デフォルトの名無しさん:2006/03/25(土) 00:59:01
はじめてのPythonってお買い得ですか?
チュートリアル読んだけど、どうも日本語がしっくり来ませんで、
それで本を買おうかと思いました。
645デフォルトの名無しさん:2006/03/25(土) 01:06:07
>>644
他言語でのプログラミングの経験のある人が、きちんとPythonの全体を学ぶのに
向いていると思う。個人的には良い本だと思うよ。
今売ってるのは第2版だから、古本屋で間違って第1版を買わないように。w
646デフォルトの名無しさん:2006/03/25(土) 01:25:08
>>641
σにこだわらずに標準偏差だけやれれば十分です。
マニュアルにそれらしいのがあったんですが、使い方が分からなかったので。
16045は経済関係の数値です。
647デフォルトの名無しさん:2006/03/25(土) 01:56:01
>>646 どうせ日経平均株価でしょ.統計をきちんと勉強してから出直そうね.
648デフォルトの名無しさん:2006/03/25(土) 03:58:21
一瞬UARTかと思たが、あれは16550だったorz
649デフォルトの名無しさん:2006/03/25(土) 07:15:15
与えられた変数の名前を返す関数ありますか?
例えば foo(var_name) --> "var_name" みたいな動作をする、
lispで言えば symbol-name みたいな関数です。
650デフォルトの名無しさん:2006/03/25(土) 10:05:42
>>648
バッファの殆どないのが16450な
651デフォルトの名無しさん:2006/03/25(土) 12:14:55
>>> 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でやれれば便利と思った
答えられないから煽りですか。
煽りはゴミ
653一生エクセルでやってください:2006/03/25(土) 14:00:41
>652 はライブドア株でも買ってればいいのに
654デフォルトの名無しさん:2006/03/25(土) 14:10:08
>>652 Pythonだろうがなんだろうが、標準偏差の計算方法がわからない奴なんて滅多にいねーぞ。

知 っ て る が お 前 の 態 度 が 気 に 入 ら な い (AA略)

ってことだろうなあ。ボリンジャーバンドかなんか出したいの?素直にどっかのチャートツール
でも使えば?
655デフォルトの名無しさん:2006/03/25(土) 14:14:05
>>652
標準偏差の計算法を知らない人だったのか。わろす。
656デフォルトの名無しさん:2006/03/25(土) 14:46:13
>652

出直さんでいい。一生エクセル使ってろ。
657デフォルトの名無しさん:2006/03/25(土) 14:50:03
煽りじゃねえよ.

> 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)

だよ.これ以上は言わなくても分かるよな.
658デフォルトの名無しさん:2006/03/25(土) 14:55:44
>>646
* ナレッジ-標準偏差の計算方法 ?
ttp://syllabus-pub.yz.yamagata-u.ac.jp/amenity/Knowledge/KnowledgeWeb.aspx?DSN=Electrochem&nKnowledgeID=2773
を参照すれば標準偏差は計算式で出せる事がわかると思います。

これは統計学の基本的事項になります。これを知らないと統計は使いこなせません。グラフが出るだけのツールになってしまいまいます。
659デフォルトの名無しさん:2006/03/25(土) 15:00:41
うわwwGoogleかよsuckitらしい回答wwwwww
660デフォルトの名無しさん:2006/03/25(土) 15:01:46
俺はゆとり教育前のオジサンだが、高校で習ったぞ。今は教えないのか?
661デフォルトの名無しさん:2006/03/25(土) 17:26:20
やった記憶無いよ。習ってなくても計算するだけなら簡単だけど
質問者は出来合いのライブラリを使ってやりたいんじゃないの
出来合いのライブラ探すより自分で作った方が早そうだけど
662デフォルトの名無しさん:2006/03/25(土) 17:28:26
おっさん世代でも、標準偏差も知らずにシステムのパフォーマンス検証とかやってる奴多いでっせ。
提出された資料に平均値しかなくてのけぞったことある。
663デフォルトの名無しさん:2006/03/25(土) 17:31:38
大体やっても覚えてない人の数の方が多い気がする。
664デフォルトの名無しさん:2006/03/25(土) 17:41:17
やってなくても覚えてなくても、調べれば計算式は見つかるだろ
665デフォルトの名無しさん:2006/03/25(土) 19:00:34
与えられた変数の名前を返す関数ありますか?
例えば foo(var_name) --> "var_name" みたいな動作をする、
lispで言えば symbol-name みたいな関数です。
666デフォルトの名無しさん:2006/03/25(土) 19:04:26
>>665
>>649へループ
667デフォルトの名無しさん:2006/03/25(土) 19:47:58
>>> 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})
>>>

こういうこと?
668デフォルトの名無しさん:2006/03/25(土) 21:55:47
私には、彼氏がいます。彼とわたしは、デートの時、どちらかの家に行き、だれもいないとき
、部屋で横になって裸でだきあいます。それがだんだんエスカレートしていって、学校の体育倉庫で
服をぬがされ、まだ3年生ですが学年で1番大きいおっぱいを、つかむように触られたり、しゃぶった
りされます。最初は、苦手だったんだけどだんだん気持ちよくなりサイコーです。しかも、わたしは
、学年1美人でもてます。彼も同じで、美男美女でよくみんなにうらやましく、思われます。
: : このカキコ見たあなたは4日後に不幸がおとづれ44日後に死にます。それがイヤならコレをコピ
ペして5ケ所にカキコして下さい。私の友達はこれを信じず4日後に親が死にました。44日後友達は
行方不明・・・・。いまだに手がかりもなく私はこのコピペを5ケ所に貼り付けました。すると7日後
に彼氏ができ10日後に大嫌いな人が事故で入院しました。
: : 信じる信じないは勝ってです
669デフォルトの名無しさん:2006/03/25(土) 23:06:53
>>653
買ってましたよ。
>>654
分かりますが、何か?
チャートツールも使ってるさ

>>657
解答ありがとうございます。
確かに聞き方も悪かった
マニュアルを標準偏差で検索すると引っかかるのがあるので、それが使えないものかと思った
エクセルのSTDEVPと同等の事を簡便に出来れば便利と思った

他の煽りはやはりゴミ
教えてくださいスレで初心者煽っておもしろいですか。

>>661
そういうことです。
670デフォルトの名無しさん:2006/03/25(土) 23:09:20
>>669
ここはPythonの初心者は歓迎するが、統計の初心者に標準偏差の計算法を教える
スレではないのであしからず。
671デフォルトの名無しさん:2006/03/25(土) 23:25:46
>>669
つーか、Pythonのヘルプに書いてある以上のことをしたいなら
自分で作るかモジュールを探すかしろ。それかmath.pyを見れ。
672デフォルトの名無しさん:2006/03/25(土) 23:56:21
標準偏差のもとめかた知らないなと思って、教科書開いたら
2SDってピッタリ95%になるんじゃないんだね、すごいびっくりしました。スレ違いですが。
673デフォルトの名無しさん:2006/03/26(日) 03:07:40
>>666 だから? 答え知らないんだったらレスしなければいいのに。
674デフォルトの名無しさん:2006/03/26(日) 03:13:30
>>673
コピペ厨氏ね
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
「ループになって終了しませんでした」→「無限ループになって終了しませんでした」
すいません。
677デフォルトの名無しさん:2006/03/26(日) 08:41:06
「検索するための」→「カウントするための」
度々すいません。
678エクセルでお幸せに:2006/03/26(日) 09:54:46
>669
>初心者煽っておもしろいですか。

どう見ても煽りのプロです
本当にありg(ry
679デフォルトの名無しさん:2006/03/26(日) 09:58:13
>672
ぉぃぉぃ… 正規分布とかあーだのこーだの…
それに "95%ピッタリ" なんて奇妙な数字になるわけないじゃん

まあ統計の話はスレ違い過ぎるから教科書とか見てくれとしか
言いようがないが。
680デフォルトの名無しさん:2006/03/26(日) 10:43:56
>>673
もう2回も答え貼り付けたんだけど. >>666 はそれに気付けって言ってるだけ.
681デフォルトの名無しさん:2006/03/26(日) 10:54:20
これはTATAボックスの数を数えるプログラムだね.
TATAを検索するだけでは,あるループで読んだスライディングウィンドウの末尾
が '...CCGTAT' で,次のループで 'ATCGG....' のようになってると,ウィンドウの
境界にある TATA ボックスを見逃してしまう.それを防ぐために -3 してるだけ
なので,-3 するのは間違いではないよ.

if len(currSeq) <4: break すると,最後から2つ目のウィンドウが T で終わっていて,
最後に読んだ配列が ATA のとき,末尾の TATA を見逃してしまう.
682デフォルトの名無しさん:2006/03/26(日) 11:14:43
標本分散と普遍分散ってわかりますか?
僕は良くわかりません。
683デフォルトの名無しさん:2006/03/26(日) 11:58:13
と言うやつは大概
最近知ってそこだけは詳しくて薀蓄垂れたいから
自分でネタふってるってのは、2ちゃんの常識
684デフォルトの名無しさん:2006/03/26(日) 12:13:01
>>682
>普遍分散ってわかりますか?
>僕は良くわかりません。
不偏分散なら知ってるけど,普遍分散なんてGoogleでしか見たことない。
685デフォルトの名無しさん:2006/03/26(日) 13:44:31
異常分散 とか(違
686デフォルトの名無しさん:2006/03/26(日) 13:48:26
それを言うなら得意分散じゃねぇの


























違った特異分散
687デフォルトの名無しさん:2006/03/26(日) 13:58:39
web.py と Django? と あとなんだっけ
これらの中で将来性があるのはどれですか?
またどういうものなのですか?
688デフォルトの名無しさん:2006/03/26(日) 14:49:47
Zopeに決まっておろうが。このタワケめ!
689デフォルトの名無しさん:2006/03/26(日) 15:28:01
>>688
「あとなんだっけ」に全てを汲んでやれよ。
690デフォルトの名無しさん:2006/03/26(日) 15:56:50
Python は好きだが Zope はちょっと・・・
691デフォルトの名無しさん:2006/03/26(日) 15:59:16
○。・。○。・。○。・。○。・。○。・。○。・。○。・。○。・。○
このレスをみたあなたは・・・3日から7日に
ラッキーなことが起きるでしょう。片思いの人と両思いになったり
成績や順位が上ったりetc...でもこのレスをコピペして別々のスレに
5個貼り付けてください。貼り付けなかったら今あなたが1番起きて
ほしくないことが起きてしまうでしょう。
コピペするかしないかはあなた次第...
○。・。○。・。○。・。○。・。○。・。○。・。○。・。○。・。○
692デフォルトの名無しさん:2006/03/26(日) 16:09:16
「有害サイト」を見るだけで補導「奈良県少年補導に関する条例」が成立

「喫煙」「飲酒」「深夜徘徊」「無断外泊」「風俗店への立ち入り」などに加えて
「出会い系サイトの利用」「県条例で有害情報と認定されたサイトの閲覧」
「インターネット上の掲示板やメールなどで他人を中傷する行為」を「不良行為」と定義し、補導対象行為としたもの。
http://slashdot.jp/article.pl?sid=06/03/25/1434254&from=rss

693デフォルトの名無しさん:2006/03/26(日) 16:16:43
よかったね
694デフォルトの名無しさん:2006/03/26(日) 16:30:43
>>690
あれはモジタンが悪いんであって
Zope自体は結構いけると思うぞ。
695デフォルトの名無しさん:2006/03/26(日) 16:47:42
Zope3は結構いい感じ
ただ日本じゃコミュニティが壊滅的な状況だけどorz
696デフォルトの名無しさん:2006/03/26(日) 17:51:21
たーぼぎあーず っていうのがあるって効いたんですけど
697デフォルトの名無しさん:2006/03/26(日) 18:18:06
プログラミングなんて極力したくないっていう層の俺にとっては、
djangoもTurboGearsもweb.pyもZope3も敷居が高いんだよな。
Zope2はブラウザだけでチョイチョイと弄れるので楽チンでいい。
698デフォルトの名無しさん:2006/03/26(日) 18:32:49
::::::::::::::::::| |     _,.、
::::::::::::::::::| |   ,.</__\
::::::::::::::::::| |-‐く  /    ̄|
::::::::::::::::::| |:::::::;:`'ー-....,,,,___iヽ、
::::::::::::::::::| |::::::;、:::;::::;::::::;::::::::::::ハ
::::::::::::::::::| |:::/!,.ゝ!、ハ::::ハ::;i:::,::::ト,
::::::::::::::::::| |;:イ〈 {,_r/ レ' レ_.!,ハイ:::!  
::::::::::::::::::| |::|""     〈ン'〉!/|:ハ   天狗じゃ、天狗の仕業じゃ!
::::::::::::::::::| |::ハ .    _ ` "!:::::|:|
::::::::::::::::::| |::ヽ!ヽ、._  _,,..イイ:::ハ|
::::::::::::::::::| |Y7´! ,.イ⌒ヽレi::レ'
::::::::::::::::::L,.!、! !_/      〉ノ,....、__
:::::::::::::::::と_ ヽ.,ムゝ-=、_ンイ:::・:(< 
::::::::::::::::::k,_   i /^'^'7!:::::`'::::::::!ソ
::::::::::::::::::| i\ `ヽ /! `>:::::ノ
::::::::::::::::::| | _ヽ、_ノ 〉く/ゝゝ
::::::::::::::::::| |ヽ、  /::::\
699デフォルトの名無しさん:2006/03/26(日) 19:52:10
文たんなにやってんの、こんなとこでw
700デフォルトの名無しさん:2006/03/26(日) 22:41:57
>>681
うーん、でも止まっちゃうんですよね。もう少し考えてみます。
701デフォルトの名無しさん:2006/03/26(日) 23:07:27
最近はバイオが一番計算機使ってるという説もあるからなー。
がんばれー。

厳密には、eofに到達したかどうかチェックしながらseek
しないといかん気がするけど、僕は675の対処法で良さそうに
思うのだけど。

ところで、「複数のファイル」に意味はあるの?
702デフォルトの名無しさん:2006/03/27(月) 08:06:36


確かにおかしいわ。

while len(currSeq)>3:

のようにしたらどう?
703デフォルトの名無しさん:2006/03/27(月) 08:08:00
>>701
一つのゲノム配列が(たとえば染色体毎とかで)複数のFASTAに分割されることは
よくあるので,意味はあると思うよ.
704デフォルトの名無しさん:2006/03/27(月) 09:21:49
もし

ファイル1
...AGTA

ファイル2
TAGC..

となってる TATA も抽出したいんなら、件のアルゴリズムじゃ無理だと
思うんだけど、どうなの?
(つーか、cat てstdinから喰わせたり、shellのforで一つづつ数えたのを合計したり、もうちょっとマシな方法はありそうな気がするが)

705デフォルトの名無しさん:2006/03/27(月) 09:49:32
              ,,,──-____
           _/´-         \    
 ――――   / /  ./ヽ  `ヾ     ヽ   そんなエサはイナバウアーで
        /  /  |∩|    彡\   |   スルーだクマー
  ――   |  ミ  ( ● )   | ヽ  ).  |  
        |  | | ●   ● / / /   .|
        (_/ ヽ       /| (_/\  |
            ∪ ̄ ̄_|U⌒´|.   |  |
               .(___)   |`⌒´|_
     ──────── ┻┻   .(___)
            ──────── ┻┻
706デフォルトの名無しさん:2006/03/27(月) 10:08:02
普通はFASTA間の繋がりは考えなくてもいいんだよ。
ゲノムの大きな生物のFASTAファイルは数百MBytesになることもあるから、cygwinで
catしたりするとメモリの小さいマシンでは動かなくなってしまう。
707デフォルトの名無しさん:2006/03/27(月) 23:19:36
>706

繋がりを考えなくていいんならあのアルゴリズムで良さそうね。
ところで、cygwinのcatはFSFのcatなので、デカいファイルを読んだからって別にメモリをバカみたいに喰うっつーことはないと思うよ。
708デフォルトの名無しさん:2006/03/27(月) 23:25:12
>>707
>繋がりを考えなくていいんならあのアルゴリズムで良さそうね。
>ところで、cygwinのcatはFSFのcatなので、デカいファイルを読んだからって別にメモリをバカみたいに喰うっつーことはないと思うよ。
>
あれ?cygwinで"cat hogehoge |"したときって、パイプの直前に巨大なウンコが溜まらない?
709デフォルトの名無しさん:2006/03/28(火) 09:33:22
巨大なウンコ
             )
             (
         ,,        )      ) 
         ゙ミ;;;;;,_           (
          ミ;;;;;;;;、;:..,,.,,,,,
          i;i;i;i; '',',;^′..ヽ
          ゙ゞy、、;:..、)  }
           .¨.、,_,,、_,,r_,ノ′
         /;:;":;.:;";i; '',',;;;_~;;;′.ヽ
        ゙{y、、;:...:,:.:.、;:..:,:.:. ._  、}
        ".¨ー=v ''‐ .:v、,,、_,r_,ノ′
       /;i;i; '',',;;;_~⌒¨;;;;;;;;ヾ.ミ゙´゙^′..ヽ 
       ゙{y、、;:...:,:.:.、;、;:.:,:.:. ._  .、)  、}
       ".¨ー=v ''‐ .:v、冫_._ .、,_,,、_,,r_,ノ′
      /i;i; '',',;;;_~υ⌒¨;;;;;;;;ヾ.ミ゙´゙^′.ソ.ヽ
      ゙{y、、;:..ゞ.:,:.:.、;:.ミ.:,:.:. ._υ゚o,,'.、)  、}
      ヾ,,..;::;;;::,;,::;):;:;:; .:v、冫_._ .、,_,,、_,,r_,ノ′
710デフォルトの名無しさん:2006/03/28(火) 14:39:21
             /:.:.:.:.:/:.:.:'"~ ヽ:.:.:.:.:\:.:.:.:.:.:.:.',
               |-ー':.:.:.:.:.:ヽ _ノ:.:.:.:.:.:.:.:`ー-:.:.:!
               !:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:!
            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
711デフォルトの名無しさん:2006/03/28(火) 15:09:15
まるでもなにも
712デフォルトの名無しさん:2006/03/28(火) 15:35:45
春っぽいな
713デフォルトの名無しさん:2006/03/28(火) 16:19:34
いやもう春でしょ、桜も咲いてるし
714デフォルトの名無しさん:2006/03/28(火) 16:49:45
まるで春休みのようだ。
715デフォルトの名無しさん:2006/03/28(火) 18:42:43
それは書き込みからわかるでしょう
716デフォルトの名無しさん:2006/03/28(火) 20:50:57
2ちゃんの書き込で季節感を感じる
外では桜が咲いてるんですね(w
717デフォルトの名無しさん:2006/03/28(火) 22:04:27
お ま え た ち
 そ ん な に ひ ま な ら
  て つ だ え よ
718デフォルトの名無しさん:2006/03/28(火) 22:10:52
おそて まんつ えなだ たにえ ちひよ まなら
719デフォルトの名無しさん:2006/03/28(火) 22:17:30
>>718
横読み。
720デフォルトの名無しさん:2006/03/28(火) 22:48:31
たまつたから おなに したよ
721デフォルトの名無しさん:2006/03/28(火) 23:39:07
暇だな?
722デフォルトの名無しさん:2006/03/29(水) 00:15:44
春だな
723デフォルトの名無しさん:2006/03/29(水) 03:02:06
春らしいお題い
このスレを取得し”春”を含むレスに”春爛漫おぱいそん”とレスするプログラムを作れ
724デフォルトの名無しさん:2006/03/29(水) 03:05:06
>>723
レス無限増殖の悪寒。作っても動かしちゃ駄目だぞ。w
725デフォルトの名無しさん:2006/03/29(水) 17:55:24
自分のレスに春が含まれてるじゃねーかよw
726デフォルトの名無しさん:2006/03/30(木) 09:46:52
>>725
イワズモガナー
727デフォルトの名無しさん:2006/03/31(金) 23:35:15
4/8の会合?行く人居るかな?
728デフォルトの名無しさん:2006/03/32(土) 01:17:17
pythonでメール受信(pop)スクリプト書いている人居ない?
なんか日本語対応のサンプルがあれば見せてもらいたんだが… お願いします。
729デフォルトの名無しさん:2006/03/32(土) 18:05:03
標準ライブラリの poplib.py の末尾についてるサンプルプログラムじゃ不足なの?
日本語対応って、例えば From: や Subject: をデコードして表示するとか
そういうことを言っているの?
730デフォルトの名無しさん:2006/03/32(土) 22:10:33
IronPython1.0rc1あげ
731デフォルトの名無しさん:2006/04/11(火) 19:33:03
raise NotImplementedError
732デフォルトの名無しさん:2006/04/11(火) 20:13:45
python勉強用に1998年発行のPython入門ってどの程度使えますか?
733デフォルトの名無しさん:2006/04/11(火) 20:16:25
プログラミングが初めてだった私には難しかったです。
734デフォルトの名無しさん:2006/04/11(火) 20:49:12
翻訳がクソなのでいらいらします。
735デフォルトの名無しさん:2006/04/12(水) 00:09:42
             ゙'.     ,ト `i、  `i、    .、″
                |    .,.:/""  ゙‐,. `    /
             `  .,-''ヽ"`    ヽ,,,、   !
                、,、‐'゙l‐、      .丿 : ':、
               、/ヽヽ‐ヽ、;,,,,,,,,,-.ッ:''`  .,"-、
              ,r"ツぃ丶  ``````   ../  `i、
          ,.イ:、ヽ/ー`-、-ヽヽヽ、−´    .l゙`-、
         _,,l゙-:ヽ,;、、             、、丶  ゙i、,,、
        ,<_ l_ヽ冫`'`-、;,,,、、、、.............,,,,、.-`":    │ `i、
      、、::|、、、ヽ,、、.    ```: : : ```      、.、'`  .|丶、
     .l","ヽ、,"、,"'、ぃ、、,、、、、.、、、.、、、_、.,,.ヽ´    l゙  ゙).._
    ,、':゙l:、、`:ヽ、`:、  : `"```¬――'''"`゙^`     : ..、丶  .l゙ `ヽ
   ,i´.、ヽ".、".、"'ヽヽ;,:、........、           、、...,,,、−‘`   、‐   |゙゙:‐,
  ,.-l,i´.、".`ヽ,,,.".`   `゙゙'"`'-ー"``"``r-ー`'":      _.‐′  丿  ,!
 j".、'ヽ,".、".、"`''`ー、._、、、           、._,、..-‐:'''′   .、,:"  丿
 ゙l,"`"`''ヽヽ"`"`  ```゙'''"ヽ∠、、、、ぃ-`''''": `      、._./`  ._/`
  `'i`ヽヽヽ`''ーi、、、: :                   、.,-‐'`   、/`
   ``ヽン'`"`  : `~``―ヽ::,,,,,,,,,,.....................,,,,.ー'``^    ,、‐'"`
      `"'゙―-、,,,,..、、                 : ..,、ー'"'`
           : `‘"`―---------‐ヽ``"''''''""
736デフォルトの名無しさん:2006/04/12(水) 01:39:48
初めてのPython(第二版)は結構いいと思う

PyJUGのチュートリアルは、無料で読める文書としてはイケている

ttp://www.python.jp/doc/release/tut/
737デフォルトの名無しさん:2006/04/12(水) 10:19:50
              人
             :: --, -ヽ        
 、   l   _,     (      )         
  ヽ/⌒ヘ~    : ──--,  --         
  ., 't,_,ノ丶   (        : )       
 /  !   '`  | ──--  -- ' ノ  
        ,/ ● L_/    'i,
       /     l ,/  ●   i,    
       'i      しii     丿 うんち気持ちいい!!  
      |`:、\     'ii   __,/     
      'i、 ̄~~     ij  乙__ノi   ちょ〜〜気持ちいい!!    
       ^-ァ        __,ノ     
        '        'l
       !         l        
       '!,   ,_    ,!_       
         \ l,~^''‐--::,,⊃ ) ) ) )
          `'‐’
738デフォルトの名無しさん:2006/04/12(水) 11:57:02
とぐろだけに切っても切れんな。
739デフォルトの名無しさん:2006/04/12(水) 18:41:49
頭切ったらほぼコンパチだしな
740デフォルトの名無しさん:2006/04/13(木) 03:29:36
それは後方互換性があるって言いたいわけ?
741デフォルトの名無しさん:2006/04/13(木) 04:15:12
うんこに頭つけたらPythonってことだな?
742デフォルトの名無しさん:2006/04/13(木) 22:31:45
Djangoの使い方さっぱりわかんない
$ python manage.py runserver
のあとは、なにすればいいの?
とりあえず動くサンプルコード or URLちょうだいm(_ _)m
743742:2006/04/13(木) 22:35:05
$ python manage.py init
もやりました
744デフォルトの名無しさん:2006/04/13(木) 22:42:30
ぱいちんこ
                         ., , メ-‐'"       _"',|  .、、._,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.
と、なるのはなんでか?
746デフォルトの名無しさん:2006/04/14(金) 01:02:53
>>742
この一連のチュートリアルは良くできてると思うけど。
http://www.djangoproject.com/documentation/tutorial1/

チュートリアル読みながら実験して、
とりあえず動くもの作って、
それから先は jango 自体のコード読む、
みたいな感じでやるしかないんじゃまいか。
747デフォルトの名無しさん:2006/04/14(金) 02:21:16
ねむい
748デフォルトの名無しさん:2006/04/14(金) 08:51:16
         人
        (__)
       (__)
       ( ・∀・)       ))
       /つ( ̄`ヽO_ノ⌒ヽ      さてと、そろそろ寝るか
      ノ   )        \ ))
     (__丿\ヽ ::    ノ:::: )
         丿        ,:'  ))
       (( (___,,.;:-−''"´``'‐'
            
            人
           (__)
          (__)  < 寝る前にウンコー!!
          ( ・∀・ )
         /  _ノ⌒⌒⌒`〜、_
      ( ̄⊂人 //⌒   ノ  ヽ)
     ⊂ニニニニニニニニニニニニニニ⊃
749django:2006/04/14(金) 16:19:30
$ python manage.py createsuperuser
で、MySQLdb/connections.py が
ValueError: year is out of range
とでて、先に進めない。orz

djangoなひとって、やっぱりpostgresなの?
750デフォルトの名無しさん:2006/04/14(金) 16:29:05
ぜんぜんわからんが yearの値を正しくすればいいんじゃないのか?
751デフォルトの名無しさん:2006/04/14(金) 17:38:05
>>749
SQLite使ってチュートリアルした時は、特に問題でなかったお( ^ω^)
752django:2006/04/14(金) 18:24:49
Mac OSX 10.4.6なんだけど、MySQLdbが腐ってるのか、MySQLが腐ってるのか、OSXが腐ってるのか。。
もうだめだ、DB変えてやってみる
753デフォルトの名無しさん:2006/04/14(金) 18:38:13
20060414 みたいな日付を 20060414 年として扱ってて datetime.datetime がエラー出してる気がする.
754デフォルトの名無しさん:2006/04/14(金) 18:40:16
Macが腐っているのでは?
755デフォルトの名無しさん:2006/04/14(金) 18:40:29
もしくは Date/DateTimeField に blank=True か auto_now/auto_now_add=True を入れてみるとか?
756django:2006/04/14(金) 20:12:42
特定のUsernameをいれると、>>749のエラーが出るみたい
たとえば「_h_h_h_h」とか入れるとなる
なんだったんだろ?
757django:2006/04/14(金) 22:01:39
こりゃいい。管理画面だけで鼻水が出た。
urls.pyのところはイマイチよくわからなかったけど。
758デフォルトの名無しさん:2006/04/14(金) 22:50:19
759デフォルトの名無しさん:2006/04/15(土) 00:16:58
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()

的なことをやりたいんだけど、各スレッドの作業が終わる前にメインが終わっちゃうんだけど、
みんなはスレッド使うときどうしてる?

760デフォルトの名無しさん:2006/04/15(土) 00:22:56
そういうときは Thread.join() を使えばいいんじゃ
761デフォルトの名無しさん:2006/04/15(土) 00:24:33
threading.Thread使ってるよ。
デーモンスレッドにわざわざ設定しなければ、メインスレッドは待ってる
762759:2006/04/15(土) 01:00:46
>>760,761

無事threadingモジュールで出来た。ありがとうございます。
763デフォルトの名無しさん:2006/04/15(土) 15:58:52
          )ヽ
        /  _)
       /   ..::::ヽ,
       ゝ――::::::く
      (     ..:::::::)
    ・. 。ゝ―― ..:::::'、゚ +
ウンコキタ.*゜( 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

といわれます。どうすればよいのでしょうか?
765デフォルトの名無しさん:2006/04/15(土) 23:21:16
            / ̄ ̄ ̄ヽ .     λ 〜
            /⌒⌒""☆    ( ヽ 〜 プーン
           //ノノノ"\ヽ    (   ) 〜
           |(| ∩  ∩|)|   (____) 〜
           从.、 ▽ ノjl|  /\⌒彡
           /  \ | ||  .|\/ ̄
           へ _ V ノ  /   < ウンコ投げまくり♪
          /   ̄ 只 |
         /   )   || | |
         /  ノ \_〓ノ\
        /\/ /  | \\)
        \/  /   |  \/
      彡 / \ ________|___ /
            |   |  |
             |  |  |
766デフォルトの名無しさん:2006/04/15(土) 23:57:56
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
       l    |   |l /   /  / //    ||  l   l  l l
        |    |   ||/- .._/ /  〃    ||   l  ト  l |
         |    |   |||  /_,.===一'    L ___LLl | |
─w√レ─ |     |   |  / /::::::::丶      /::::_|ハ l |─v─w√レ─
       |    」    | /  {:::::::::::::|      l::::::::l i ハ/ |
       |  / |   |     ヽニニソ        lr-‐ソ i ハ  |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
767デフォルトの名無しさん:2006/04/16(日) 02:36:07
>>764
DOSでは

python main.py < test.txt

とやらなければいけない。
なぜかは知らん。
768デフォルトの名無しさん:2006/04/20(木) 01:58:50
新しく作るウェブサイトのシステムを任されたから、Pythonで作っていいですか?って聞いたら「いや、PHPでやろう」って言われた。
769デフォルトの名無しさん:2006/04/20(木) 02:06:53
>>768
断れ!
770デフォルトの名無しさん:2006/04/20(木) 09:36:29
Pythonで作られた有名商用サイトってどこかある?
次期案件の提案に使いたいのだけど。
771デフォルトの名無しさん:2006/04/20(木) 09:40:53
ウンコをもらった俺は元気を取り戻した。

          人  ウンコー!
         (___)
         (___) 今日は久しぶりに
  (○)   (∀・,,  ) 外に出たんだ
  ヽ|〃    (∩∩  )    
772デフォルトの名無しさん:2006/04/20(木) 09:50:02
>>770 google
773デフォルトの名無しさん:2006/04/20(木) 11:29:24
            うんこー♪ うんこイエーィ♪♪
                      人
                     (__) |
                     (__)∩⊂⊃
                 ⊂´⊃( ・∀・)/  | ♪
          人       | !⌒!!⌒!つ ,-=-
            (__) 〔〕    ||,─、(⌒)─、 | |
           (__)|||o   ( ○ )( ○ )||.|    人
        ( ・∀・|||   / `ー ´ `ー- /へ  (__)
          (  つ/|||ゝ              ∩(__)
          > / ぺ>              |(・∀・ )〜♪
          し´し´    人      ._  ┌┴--っ )
                 (__)     非   | [|≡(===◇
                 (__)   //   `(_)~丿
                ( ・∀・)ハ_/Cハ      ∪
                ⊂    .) 呂~/
                  .)  .(__.) 〜♪
                 (_/\_.)
774デフォルトの名無しさん:2006/04/20(木) 12:40:13
>770
最近話題の各種フレームワークとかはあちこちで
使われてるんじゃないの?

django だと washington post とかだったっけ?
775デフォルトの名無しさん:2006/04/20(木) 21:31:53
つTurboGeras
776デフォルトの名無しさん:2006/04/20(木) 22:21:58
>>770
まだ商用とは言えないけど
ttp://kizasi.jp/
777770:2006/04/20(木) 22:30:00
>>776
おお、ありがとうございます。
引き続きもう少しメジャー系のあればよろしくお願いします。
海外でも構いません。
778デフォルトの名無しさん:2006/04/21(金) 00:20:34
>>776
あまりに重いんで普通に開いてるだけで
サーバに負荷を与えてるんじゃないかって
779デフォルトの名無しさん:2006/04/21(金) 14:29:52
780デフォルトの名無しさん:2006/04/21(金) 17:37:57
    人
   (__)
  (∞_)  
  川*‘ヮ‘)   うんこ初心者だけど
  ( つ旦O    よろしくです〜
  と_)_)

781デフォルトの名無しさん:2006/04/22(土) 02:00:43
IDLEで開発しています。プログラムを実行させるときは、毎回ソースの
ウィンドウからF5を押します。
import先のファイルを修正したのち、メインのプログラムを上記の方法で
実行しても、修正が反映されないことがあるのですが、IDLEを再起動する以外に
打つ手はあるのでしょうか?
782デフォルトの名無しさん:2006/04/22(土) 02:15:30
>>781
reload(モジュール名) とか。
783デフォルトの名無しさん:2006/04/22(土) 08:41:57
パイパイやパイチンコがあるんだから、
PyMan・・・Python Manual や
PyUnCo・・・Python Universal Collection みたいなの、だれか作ってくれよ。
784デフォルトの名無しさん:2006/04/22(土) 09:17:50
pythonの人は日本びいき
785デフォルトの名無しさん:2006/04/22(土) 16:24:57
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)
787デフォルトの名無しさん:2006/04/23(日) 05:28:10
>>786
つ[座標]
788デフォルトの名無しさん:2006/04/23(日) 09:47:26
ちくとお聞きしたいのですが,
Python2.4.2インストール済みの環境で,
利用したいモジュールが2.3.xまでしか対応していなかったため,
別ディレクトリに2.3.5をインストールしたいと考えています.
利用する時に適当にパスを通してやれば大丈夫かな,と考えているのですが,
複数のバージョンをインストールすると何か不具合等が出たりするのでしょうか?
789デフォルトの名無しさん:2006/04/23(日) 10:25:21
                      ''';;';';;'';;;,.,    ザッザッザ・・・
                       ''';;';'';';''';;'';;;,.,   ザッザッザ・・・
                        ;;''';;';'';';';;;'';;'';;;
                        ;;'';';';;'';;';'';';';;;'';;'';;;
                        vy;vy;v:yy;vy;v;yv;yv、
  うんこスレと聞いて         λVv vλ v;y v Vv vλv;y λv、
    参りました          λ Λ __ λ_ Λ _ヘ λ λ ヘ__ λ_ヘ λ λ
                 人 人 λ 人  人 人 __λ人  人  人
               人   人 人  人  人  人   人 人  人
            人(__人(_人 ) 人 (人.人__).人___) 人( 人
           (__)__(__)_(__)(__)(__)__) (__)__(__)(__)
           (__)(__(__)___(__)__)(__)(__)__)
          ( ・∀・ ( ・∀( ・∀・ )∀( ・∀・ )・( ・∀・ ) ・∀・ )∀・ )
790デフォルトの名無しさん:2006/04/23(日) 11:33:32
>>788
きちんと分けてあれば特に問題ないお( ^ω^)
791デフォルトの名無しさん:2006/04/23(日) 11:47:35
                      ''';;';';;'';;;,.,    ザッザッザ・・・
                       ''';;';'';';''';;'';;;,.,   ザッザッザ・・・
                        ;;''';;';'';';';;;'';;'';;;
                        ;;'';';';;'';;';'';';';;;'';;'';;;
                        vy;vy;v:yy;vy;v;yv;yv、
                    λVv vλ v;y v Vv vλv;y λv、
                  λ Λ __ λ_ Λ _ヘ λ λ ヘ__ λ_ヘ λ λ
                 人 人 λ 人  人 人 __λ人  人  人
               人   人 人  人  人  人   人 人  人
            人(__人(_人 ) 人 (人.人__).人___) 人( 人
           (__)__(__)_(__)(__)(__)__) (__)__(__)(__)
           (__)(__(__)___(__)__)(__)(__)__)
          ( ・∀・ ( ・∀( ・∀・ )∀( ・∀・ )・( ・∀・ ) ・∀・ )∀・ )
792788:2006/04/23(日) 12:10:15
>>790
ご教示ありがとうございます。
これで安心してインストール出来ます。
793デフォルトの名無しさん:2006/04/23(日) 13:29:45
質問と回答の間に >>789 >>791 みたいに
うんkwo挟むのが流行りなのか?
794デフォルトの名無しさん:2006/04/23(日) 13:40:06
うちのvineなんか2.2と2.3と2.4がインストールされてる気がするし全然平気だろ
795786: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)

796デフォルトの名無しさん:2006/04/23(日) 14:42:18
どんなにくるしくても
おいしいものたべて
うんこしたらなおるよ!
                      人
                     (__)
              人     (__)∩   人
            (__)   .( ・∀・ )/  (__)
        人   (__)  ⊂   ノ  .(__)    .人
       (__) .('(・∀・∩   (つ ノ   ∩・∀・)')  .(__)
     .(__)  ヽ  〈    (ノ    .〉  /    (__)
     ('(・∀・∩    ヽヽ_)        (_ノ ノ    ∩・∀・)')
    人O,_  〈                      〉  ,_O.人
   (__) `ヽ_)                     (_/ ´  (__)
  .(__)          な お る よ !        (__)
⊂(・∀⊂⌒`⊃                       ⊂´⌒⊃∀・)⊃
797デフォルトの名無しさん:2006/04/23(日) 17:22:17
>>793
コピペにうつつを抜かしている香具師が約一名いるだけだろう。
正直つまんないしウゼェんだけど、罵倒するのも面倒なんでスルーしてる。

>>795
Pythonのバージョン(実行環境)とPILのバージョンは?
俺の環境では二値画像でもグレイスケール画像でもエラーは起きない。
798デフォルトの名無しさん:2006/04/23(日) 17:45:54
>>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

というわけ.
799786:2006/04/23(日) 18:14:15
pythonは2.4.2で実行環境はwindowsです.PILは1.1.5です.
プログラムの省略はしていません.

エラーが出るというか,実行時に

問題が発生したため,python.exeを終了します

みたいなエラーがでて終了する感じです.
800デフォルトの名無しさん:2006/04/23(日) 20:13:40
      人
     (__)
     (___)
ウンコー(・∀・  )
    ⊂    \
     (⌒__)
    (_) 人
       (__)
       (___)
      (  ・∀・)ウンコー
      /    ⊃
      (__⌒)
        (_)
801786:2006/04/24(月) 00:35:25
うーんLinuxで実行してみるとうまくいくんですが、、
802デフォルトの名無しさん:2006/04/24(月) 00:44:09
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 を実行したけど,特にエラー出さずに正常に完了しました
803デフォルトの名無しさん:2006/04/24(月) 00:47:46
×>>796
>>795

他の画像ファイルで試したらどうか?
どの呼び出しでエラーが出るか追ってみたらどうか?
Python を再インストールしてみたらどうか?
804デフォルトの名無しさん:2006/04/24(月) 10:27:43
 ♪ ∧ ∧ ウンコ
♪ヽ(゚∀゚ )ノ ゲリウンコ
  ( ヘ) ピーピーウンコ
   く

  ∧警∧    
 ( ・∀・)  ∧∧
 (    つヽ(゚∀゚ ;)ノ 
 | | |   (  へ)
 (__)_)  く
805デフォルトの名無しさん:2006/04/28(金) 02:32:21
806デフォルトの名無しさん:2006/04/28(金) 09:31:57
      //
    / .人
    /  (__) パカ
   / ∩(____)   <ウンコ〜〜〜
   / .|( ・∀・)_
  // |   ヽ/
  " ̄ ̄ ̄"∪
807デフォルトの名無しさん:2006/04/28(金) 22:11:59
betaのバージョン上がるの早ぇなぁ
808デフォルトの名無しさん:2006/04/28(金) 22:47:24
pythonでcgi作るのに、タグをいちいち書かないでhtml生成できるライブラリで
お勧めのとかないですか?
↓使ってみようかと思ってるんですが、ほかに良さそうなの知ってたら紹介ヨロです。
ttp://www.livinglogic.de/Python/xist/index.html
809デフォルトの名無しさん:2006/04/28(金) 23:07:55
でもなんかそういうのって、タグ書くのとタイプ量たいしてかわらないんだよね 
810デフォルトの名無しさん:2006/04/28(金) 23:12:32
   (^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
柔らかくてうまそうだ
812デフォルトの名無しさん:2006/04/28(金) 23:21:26
>>809
まあでも、フレームワークがタグをしっかり閉じてくれたりとか、
pythonコードとタグが混在して見にくくなるのを防いでくれたりして
いいと思うんだけどね。
そこら辺は個人の感覚の違いかな〜
813デフォルトの名無しさん:2006/04/28(金) 23:53:17
TALオススメ
814デフォルトの名無しさん:2006/04/29(土) 11:04:50
                      ''';;';';;'';;;,.,    ザッザッザ・・・
                       ''';;';'';';''';;'';;;,.,   ザッザッザ・・・
                        ;;''';;';'';';';;;'';;'';;;
                        ;;'';';';;'';;';'';';';;;'';;'';;;
                        vy;vy;v:yy;vy;v;yv;y
            ウンコー!    λVv vλ v;y v Vv vλv;   
                    λ Λ __ λ_ Λ _ヘ λ λ ヘ__   ウンコー!  
   ウンコー!          人 人 λ 人  人 人 __λ人  人 
               人   人 人  人  人  人   人 人  人          ウンコー!
            人(__人(_人 ) 人 (人.人__).人___) 人( 人
           (__)__(__)_(__)(__)(__)__) (__)__(__)(__)  ウンコー!
 ウンコー!     (__)(__(__)___(__)__)(__)(__)__) 
          ( ・∀・ ( ・∀( ・∀・ )∀( ・∀・ )・( ・∀・ ) ・∀・ )∀・ )
「ウンコから来ますた」「うんこから来ますた」「ウンコから来ますた」「うんこから来ますた」
815デフォルトの名無しさん:2006/04/29(土) 11:28:37
816デフォルトの名無しさん:2006/04/29(土) 12:44:02
>>813
>>815
サンクスです。
なんかDOMっぽくやるのしか想像してなかったんですが、
template書いてそこに変数値を突っ込むのが便利そうですね〜
817デフォルトの名無しさん:2006/04/29(土) 13:36:10
>>799
実は、python.exeへのパスを通してないとか、そういうオチは無いですか?
もしくは、PILを導入したPythonバージョンへのパスではないとか。

試しに、コマンドプロンプトから「path[ENTER]」とやって、python.exeへのパスが
通っているかチェックしてみてください。
818デフォルトの名無しさん:2006/04/29(土) 15:11:04
うんこって、うんこしますか?
819デフォルトの名無しさん:2006/04/29(土) 15:15:03
tail recursion うんこ
820デフォルトの名無しさん:2006/04/29(土) 20:13:53
821デフォルトの名無しさん:2006/04/29(土) 21:02:36
( ^ω^) ここはかわいいうんこスレですね
822デフォルトの名無しさん:2006/04/29(土) 21:16:20
>>821
おれもそう思うが、他の奴はそうでもないらしいぞ。
823デフォルトの名無しさん:2006/04/30(日) 11:00:17
Python on Nintendo DS
http://www.disinterest.org/NDS/Python24.html

ファミコンロボ復活しないかなぁ・・・
824デフォルトの名無しさん:2006/05/01(月) 23:13:02
>>823
あら素敵。
825デフォルトの名無しさん:2006/05/02(火) 22:32:32
ゲームをつくっているんだが、クラスの設計がよくわからないプログラム初心者です。
ゲームって、ただのボードゲームなんだけど、たとえば、どんなクラスをつくればいいのか
とか、メソッドの命名規則とかって最初に決めておかないとすぐぐちゃぐちゃになる気が
する。っていくか現にぐちゃぐちゃなんです。普通、クラスとかの構造は全部先に決めるもの
なの?それとも、慣れてくるとクラスをいきあたりばったりに作ってもぐちゃぐあにならないの?
助けてください。やっぱり紙とかにクラスの継承図とかを書いたほうがいいんでしょうか。
826デフォルトの名無しさん:2006/05/02(火) 22:40:53
>>825
そんなあなたにはユニットテストがオススメ。
どんなにぐちゃぐちゃにしても、ちゃんと動くことだけは保障されるので
好きなように破壊できます。
827デフォルトの名無しさん:2006/05/02(火) 22:43:54
>>825
行き当たりばったりでOK。

クラス設計ってのは、クラス間の相互作用(インスタンスの数や主従関係、
メソッドの呼出し関係など)を頭の中でシミュレートして、コードを書く前に
動作を検証するとゆーことであって、よほどの経験者でなければ無理な芸当。

中途半端にクラスの継承図なんかを描いたところで、コードを書き進めるうちに
主従関係が逆転したりカプセル化を無視したデータ参照が必要になっちゃったり
最初から全部書き直したい衝動に駆られたりする。

まあ俺やお前のような初心者は泥縄式の試行錯誤に甘んじておきなさいってこった。
828デフォルトの名無しさん:2006/05/02(火) 23:00:07
ボードゲームならルールがはっきりしててクラスが作りやすそうだけど
プレイヤーを主観にするか、ボード上のオブジェクトを主観にするかで迷いそう

と適当なことを言ってみる
829デフォルトの名無しさん:2006/05/02(火) 23:20:57
>>825
皆の言うように、とりあえず行き当たりばったりやってみて学ぶというのでも良いと
思う。でも、一度書いたコードを捨てる勇気だけは忘れないように。w

あと、デザインパターンとか知らないのであれば一通り学ぶ価値はある。
830デフォルトの名無しさん:2006/05/02(火) 23:21:26
      //
    / .人
    /  (__) パカ
   / ∩(____)   <ウンコ〜〜〜
   / .|( ・∀・)_
  // |   ヽ/
  " ̄ ̄ ̄"∪
831デフォルトの名無しさん:2006/05/03(水) 00:37:11
デザインパターンはバッドノウハウだと思う

上級者同士で、お互いが別々にたどり着いたやり方が同じ事ある事を確認するのに
用いるならいいのだが、
初心者が「こういう場合はどのパターンですか?」と先輩に聞く、みたいな形になってしまうと
結局何にも生きない気がするんだよな
832デフォルトの名無しさん:2006/05/03(水) 00:43:10
>>831
そこまで頭悪い奴を基準にする必要はない。
初心者かどうかと頭悪いかどうかは別問題だよ。w
833デフォルトの名無しさん:2006/05/03(水) 02:19:09
プロダクトの製造品質を誰が作っても一定にしたいがために
パターンにするんじゃなかったっけ?
作品ではなく製品を生み出すためのひとつの方法だと認識してる
834デフォルトの名無しさん:2006/05/03(水) 02:21:22
>>833
それは偏狭な考えだと思うよ。
確かにパターン信者みたいなのはうざいけど、どういう作品を作るにせよ
参考になる部分はあるよ。
835デフォルトの名無しさん:2006/05/03(水) 02:31:34
>>825
この状況だとデザインパターンよりリファクタリングじゃないかな。
他人の書いたクラスとかを読んでみるほうがいいかも。
836835:2006/05/03(水) 03:16:07
ゲームとかではないが、ソースはここら辺で読めるよ。
SourceForge.jpのPython
http://sourceforge.jp/softwaremap/trove_list.php?form_cat=178
837デフォルトの名無しさん:2006/05/03(水) 08:19:59
パターンと、それを適用したときのメリット、デメリットを示しているのが
デザインパターンなどのパターンカタログの役割だと思う。

パターンより粒度が小さい部分はリファクタリングのカタログの出番。
こちらもメリット、デメリットが書いてある。

より粒度が小さい最初はリファクタリングのカタログ本の方から入った方が
取っつきやすいと思うよ。

あるいは最近出たプレファクタリング本も面白い。
CRC (Class-Responsibility Card) もどき、UMLのクラス図もどき(クラス名と
メソッド名を箇条書きだけ)だけ扱ってて、ゆるくてPythonにも合いそうだ。
838デフォルトの名無しさん:2006/05/03(水) 15:21:24
             ゙'.     ,ト `i、  `i、    .、″
                |    .,.:/""  ゙‐,. `    /
             `  .,-''ヽ"`    ヽ,,,、   !
                、,、‐'゙l‐、      .丿 : ':、
               、/ヽヽ‐ヽ、;,,,,,,,,,-.ッ:''`  .,"-、
              ,r"ツぃ丶  ``````   ../  `i、
          ,.イ:、ヽ/ー`-、-ヽヽヽ、−´    .l゙`-、
         _,,l゙-:ヽ,;、、             、、丶  ゙i、,,、
        ,<_ l_ヽ冫`'`-、;,,,、、、、.............,,,,、.-`":    │ `i、
      、、::|、、、ヽ,、、.    ```: : : ```      、.、'`  .|丶、
     .l","ヽ、,"、,"'、ぃ、、,、、、、.、、、.、、、_、.,,.ヽ´    l゙  ゙).._
    ,、':゙l:、、`:ヽ、`:、  : `"```¬――'''"`゙^`     : ..、丶  .l゙ `ヽ
   ,i´.、ヽ".、".、"'ヽヽ;,:、........、           、、...,,,、−‘`   、‐   |゙゙:‐,
  ,.-l,i´.、".`ヽ,,,.".`   `゙゙'"`'-ー"``"``r-ー`'":      _.‐′  丿  ,!
 j".、'ヽ,".、".、"`''`ー、._、、、           、._,、..-‐:'''′   .、,:"  丿
 ゙l,"`"`''ヽヽ"`"`  ```゙'''"ヽ∠、、、、ぃ-`''''": `      、._./`  ._/`
  `'i`ヽヽヽ`''ーi、、、: :                   、.,-‐'`   、/`
   ``ヽン'`"`  : `~``―ヽ::,,,,,,,,,,.....................,,,,.ー'``^    ,、‐'"`
      `"'゙―-、,,,,..、、                 : ..,、ー'"'`
           : `‘"`―---------‐ヽ``"''''''""
839デフォルトの名無しさん:2006/05/03(水) 15:59:57
pythonは糞ということでつね!
840デフォルトの名無しさん:2006/05/03(水) 18:36:00
すんません、Python初心者です。n 個の空要素を持つリストを得るときに

list = []
for i in range(n):
list.append([])

みたいにやってるんですが、これをスマートに書けませんか?
841デフォルトの名無しさん:2006/05/03(水) 18:39:41
何で「先人の設計を調べてパクれ」と言わないの?
てめぇが試行錯誤しかしたことのない初心者ばっかりだから?
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++ 両方を使う方で、他にも私のような方がいるでしょうか。
843デフォルトの名無しさん:2006/05/03(水) 18:41:18
>>840
とりあえず内包表記だと
List =[[] for i in range(n)]
かな。
844デフォルトの名無しさん:2006/05/03(水) 18:42:45
スマートな回答:
 list = [[] for i in range(n)]
間違った回答:
 list = [] * n
845デフォルトの名無しさん:2006/05/03(水) 18:49:34
どうよ
List = list(eval("[],"*n))
846デフォルトの名無しさん:2006/05/03(水) 19:03:25
>>843-845
ありがとうございます。 [ [] for i in range(n) ] でいかせてもらいます。
847825:2006/05/03(水) 20:37:25
みんなアドバイスありがとう。とりあえず、
試行錯誤して先人のソースを見てみるよ
848デフォルトの名無しさん:2006/05/03(水) 20:48:18
>>844
…Pythonの思想的に、そういう書き方は肯定されているのでしょうか
なんだかPerlの香りが漂ってきて、ちょっと気になりました…
849デフォルトの名無しさん:2006/05/03(水) 20:49:24
               人
             :: --, -ヽ        
 、   l   _,     (      )         
  ヽ/⌒ヘ~    : ──--,  --         
  ., 't,_,ノ丶   (        : )       
 /  !   '`  | ──--  -- ' ノ  
        ,/ ● L_/    'i,
       /     l ,/  ●   i,    
       'i      しii     丿 うんち気持ちいい!!  
      |`:、\     'ii   __,/     
      'i、 ̄~~     ij  乙__ノi   ちょ〜〜気持ちいい!!    
       ^-ァ        __,ノ     
        '        'l
       !         l        
       '!,   ,_    ,!_       
         \ l,~^''‐--::,,⊃ ) ) ) )
          `'‐’
850デフォルトの名無しさん:2006/05/03(水) 21:06:07
pythonはうんちということでつね!!
851デフォルトの名無しさん:2006/05/03(水) 21:38:15
回す必要ないじゃん♪
a = [[]] * 10
print a

もういないか。
852デフォルトの名無しさん:2006/05/03(水) 21:41:03
>>850
pythonはうんちということでつ!!
853デフォルトの名無しさん:2006/05/03(水) 22:04:57
>844
2番目の昔やってハマったっす…
854デフォルトの名無しさん:2006/05/03(水) 22:31:02
>>851
('A`)
855デフォルトの名無しさん:2006/05/03(水) 23:23:50
休みなんだからそんな顔しないで♪
856デフォルトの名無しさん:2006/05/03(水) 23:27:01
>>851

a.append("_")
print a

するとかわいいぞ
857デフォルトの名無しさん:2006/05/03(水) 23:30:20
a[0].append("_") だごめん
858デフォルトの名無しさん:2006/05/04(木) 01:00:31
>>> a = [[] for i in range(10)]
>>> a
[[], [], [], [], [], [], [], [], [], []]
>>> a[0].append('_')
>>> a
[['_'], [], [], [], [], [], [], [], [], []]
>>> a = [[]] * 10
>>> a[0].append('_')
>>> a
[['_'], ['_'], ['_'], ['_'], ['_'], ['_'], ['_'], ['_'], ['_'], ['_']]

つまり>>851は微妙に意味が変わるので要注意
859デフォルトの名無しさん:2006/05/04(木) 02:10:43
あー、なるほど。参照になってるってことですね。
a = [[]]
b = a + a + a
b[0].append(1)
これも同じでした。
実は好きではあってもほとんど使っていなくて調べていなかったんですが
前にちょっと試したときはコピーしたつもりでも参照になっていて
メモリー使用量がぜんぜん増えないのを思い出しました。
全てをオブジェクトとして扱う?と言うことからそうなっているんですかねー
Pythonあったまいぃぃ♪
860デフォルトの名無しさん:2006/05/04(木) 02:33:00
まだ俺が慣れてないからだと思うけど、ちょっと気をぬくと配列が
全部参照になってたりして、頭抱えることになる……。
861デフォルトの名無しさん:2006/05/04(木) 02:39:42
タプルなら参照になっても安心
862デフォルトの名無しさん:2006/05/04(木) 09:28:52
おいしいものたべて
うんこしたら ちがでたよ!
             
         ハ_ハ  
   /⌒ヽ ( ゚∀゚)') チガデター 
   {   (/⊃ ノ   ___
   ヽ  (__⌒ワ')  (三(@
    に二二二)
     _)   r'
    └───`
                 ハ_ハ  
               ('('д`∩  ヒリヒリ…
                ヽ  〈 
                 ヽヽ_)
863デフォルトの名無しさん:2006/05/04(木) 09:56:31
pythonはうんちということでつね!!
864デフォルトの名無しさん:2006/05/05(金) 23:12:36
x|y、x&yとx or y、x and yの違いを実感する瞬間って?
865デフォルトの名無しさん:2006/05/06(土) 08:36:23
>>> x = 3
>>> y = 5
>>> x|y, x&y, x or y, x and y
(7, 1, 3, 5)
866デフォルトの名無しさん:2006/05/06(土) 09:49:02
s ="abc"

if len(s) and s[4] == 'd':
print s

if len(s) & s[4] == 'd':
print s

867デフォルトの名無しさん:2006/05/06(土) 09:54:05
len(s)じゃなくて len(s) > 3 とかだな
868デフォルトの名無しさん:2006/05/06(土) 11:02:42
>>> 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'
>>>
869デフォルトの名無しさん:2006/05/06(土) 22:00:14
うんこも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までソートされてしまうのは何故でしょうか?
されないようにするにはどうすれば良いでしょうか?
871デフォルトの名無しさん:2006/05/07(日) 01:28:38
>>870
b = a[:]
872デフォルトの名無しさん:2006/05/07(日) 01:50:33
>>871
そんなテクニック?は初めてのpythonに載ってないので・・・
ありがとうございました。
873デフォルトの名無しさん:2006/05/07(日) 02:03:26
>>872
2版持ってるけど載ってるよ。
874デフォルトの名無しさん:2006/05/07(日) 02:06:05
>>872
書いてある
7.5節リファレンスとコピー(第2版では139ページ)のところを目を皿のようにして読め
875デフォルトの名無しさん:2006/05/07(日) 02:16:44
>>874
載ってました。
流し読みしてたんで、記憶に残ってませんでした。
やはりきちんと読まないとダメですね。
876デフォルトの名無しさん:2006/05/07(日) 03:20:16
きちんと読んでも、実際こうやって問題にぶつからないと
書いてあることの本当の意味はわからないことがあるよ。
877デフォルトの名無しさん:2006/05/07(日) 03:23:09
紙面だけじゃ、何をやってるのか理解しにくいからな。
実際に動かして、いろいろ条件を変えてみてどういう動作になるかを見ないと。
878デフォルトの名無しさん:2006/05/07(日) 10:13:52
チュートリアルの最初に 「Pythonは参照渡しが普通」 って書いてあったと思うんだけど。
879デフォルトの名無しさん:2006/05/07(日) 10:20:31
    人
   (_)  
   (__)  
   (;o;)つ   うんこー♪
    
   人
  (_)  
  ( ;o;)  うんこ〜〜 
 (    )
   人                    
  (;o;)  うんこになったよぉ〜 
 (__)

   人
  (_)
  (   )    / ̄ ̄ ̄ ̄ ̄
 ( ;o; )  <  ママぁ〜、生まれたよぉ〜!!
 | | |   \_____       
 (__)_)
880デフォルトの名無しさん:2006/05/07(日) 13:43:26
プログラミング初心者に参照渡しとか逝ってもなにそれ('A`)って感じだと思う
881デフォルトの名無しさん:2006/05/07(日) 13:54:24
プログラミング初心者とPython初心者は別物
882デフォルトの名無しさん:2006/05/07(日) 13:59:36
そもそもプログラミング初心者でpythonに手をつける人は日本人にいるのか疑問。
883デフォルトの名無しさん:2006/05/07(日) 15:36:13
           ウンコー    ウンコー
             人        人
            (__)      (__)
        ≡≡(__)  ≡≡(__)
       ≡≡ミ,( ,,・∀・) ≡≡( ,,・∀・)
        ≡≡ミ_u,,uノ  ≡≡ミ_u,,uノ ピョンピョン
               "~"    """  :::     "~""~"
     """    :::          """    ::
884デフォルトの名無しさん:2006/05/07(日) 15:54:04
参照渡しとか知ってるなら、>>870さんの「aまでソートされてしまうのは何故でしょうか?」は無いんじゃないかな。
解決方法はまた別だけど。
885デフォルトの名無しさん:2006/05/07(日) 19:33:44
うんこおおおおおお
886デフォルトの名無しさん:2006/05/07(日) 19:42:47
そもそも日本人著者の書籍が無い。
887デフォルトの名無しさん:2006/05/07(日) 19:59:57
そういやcookbookはまだかいな。
ちまちましか進んでないように見えるのは、中の人は専業じゃないからかな。
888デフォルトの名無しさん:2006/05/07(日) 20:30:41
それ用の関数もあったんか。
>import copy
>
>x = copy.copy(y) # make a shallow copy of y
>x = copy.deepcopy(y) # make a deep copy of y
でも関数化すれって事のような気がする。
889デフォルトの名無しさん:2006/05/07(日) 20:34:12
deepcopyはオブジェクトのコピーぐらいにしか使えない

っていうか、処理が重いのでループに組み込むとスピード落ちる。
速度を気にしないアプリなら問題ないけどね。
890デフォルトの名無しさん:2006/05/07(日) 20:34:22
Python使いは本なんか買わないのかと思てたよ。
891デフォルトの名無しさん:2006/05/07(日) 20:37:11
>>889
そうなんですか。使ったことすらないのでさっぱり。
892デフォルトの名無しさん:2006/05/07(日) 20:43:17
pythonの日本語の本は全部うんこ
893デフォルトの名無しさん:2006/05/08(月) 14:07:16
じゃ ションベン レベルのものを一つ頼むよ

ショーン・ペン みたい
894デフォルトの名無しさん:2006/05/08(月) 21:01:25
うんこお疲れ!
895デフォルトの名無しさん:2006/05/09(火) 17:39:31
宣言が必要ないので油断してたら、参照する変数がねえよグルァって怒られた。
初期化っていうか代入式書かないと、参照だけで自動作成はしてくれないのね。
適当に選んでくれるから普段は意識しないけど、型があるからなのか?
896デフォルトの名無しさん:2006/05/09(火) 18:04:45
参照だけで自動作成なんてやったら変数名打つときにひどく神経使うことに
なるだろうな
897デフォルトの名無しさん:2006/05/09(火) 19:29:48
ほとんど perl だけしかやってなくて python 始めたらそのエラーばっかりだった。
変数の場合は大抵代入使うから慣れた。

しかし、リストや辞書をループで
LIST.append(Value)
みたいに要素代入するときは、ループの前に
LIST=[]
って初期化しておく必要あるね。
898デフォルトの名無しさん:2006/05/09(火) 20:22:03
>897
>896
899デフォルトの名無しさん:2006/05/09(火) 20:34:10
だらしない言語を最初に学んだ奴はだらしないな
900デフォルトの名無しさん:2006/05/09(火) 21:21:35
>>896
エディタの単語補完使うとそうでもないよ
901デフォルトの名無しさん:2006/05/09(火) 21:33:35
まあ、いろんなとこで使う変数にaとかacとかaadとか付ける人には向かないな。
902デフォルトの名無しさん:2006/05/09(火) 22:56:02
perlはそれを防ぐ為にuse strictとuse warningsが常識じゃ
903デフォルトの名無しさん:2006/05/09(火) 23:18:30
>>899
まあpythonはだらしないうんこだね。
904デフォルトの名無しさん:2006/05/09(火) 23:37:45
(・∀・)ニヤニヤ
905デフォルトの名無しさん:2006/05/10(水) 00:37:12
>902
なにそのVBふざけてるの
906デフォルトの名無しさん:2006/05/10(水) 04:27:21
>>899
違うな。
だらしない奴が好むのがだらしない言語ってことだろ。
類は友を呼ぶって言うからことわざどおりだな。
907デフォルトの名無しさん:2006/05/10(水) 07:53:51
だらしない言語って何だ?

だらしないプログラムが書ける言語ってことなら
ほとんどの言語が当てはまるよーな・・・。
908デフォルトの名無しさん:2006/05/10(水) 08:17:20
むしろpythonにようやっとだらしない奴らが大勢参入してきたってことだな
909デフォルトの名無しさん:2006/05/10(水) 08:42:13
>895
意味がよく分からないんだけど
なにも代入していない変数に
何かを参照しようとする場面って
どういう状況?
910デフォルトの名無しさん:2006/05/10(水) 10:09:17
だらしないC/C++/Javaプログラマをどうにかしてくれ。
奴らの書くスパゲッティコードは難読すぎて理解できん。
911デフォルトの名無しさん:2006/05/10(水) 11:48:09
>>909
>895じゃないけど、例えば条件分岐や try〜error の構文で、
通常起こりうる場合のブロックにのみ変数を代入で定義していて、
ブロックを抜けた部分でそれを参照してる場合とか。
もちろんプログラムのミスなんだけどさ。
912デフォルトの名無しさん:2006/05/10(水) 12:07:06
>>911
明らかにエラーになったほうが嬉しい状況だな
913デフォルトの名無しさん:2006/05/10(水) 12:28:15
カウント数えたりするときの
Count += 1
も未定義だとエラーになるな。この演算子は未定義なら1にするでいいんじゃないのかな
914デフォルトの名無しさん:2006/05/10(水) 12:32:21
>>913
明らかにエラーになったほうが嬉しい状況だと思う
915デフォルトの名無しさん:2006/05/10(水) 13:37:11
メリットよりはるかにデメリットの方が大きいのを理解してくれ
916デフォルトの名無しさん:2006/05/10(水) 20:03:11
>>913
もしtypoしてCoumt += 1と打ってしまっていてもエラーにならない、
と言えばデメリットと思えまいか
917デフォルトの名無しさん:2006/05/10(水) 20:10:59
>>916
その場合は、他でtypoしてない「Count」を参照するときにエラーが出るだろう。
918デフォルトの名無しさん:2006/05/10(水) 20:27:02
つか、自動初期化のメリットが全く理解できない。
単なる行数節約?
919デフォルトの名無しさん:2006/05/10(水) 20:49:23
>>913
馬鹿はプログラム書くの禁止
920デフォルトの名無しさん:2006/05/10(水) 20:57:06
エラー処理をしなくても良いので、エラー処理のコードを書かなくてよい。
もちろんエラーが発生してくれた方がありがたいことも多いが。

NullObjectパターンの一種と考えればいいんじゃなかろか。
921デフォルトの名無しさん:2006/05/10(水) 21:00:11
>>907
たんに「pythonこそは最高だ。それ以外の言語はすべてだらしないし、
だらしない言語を使う奴もだらしない」って言いたいんでしょ。
922デフォルトの名無しさん:2006/05/10(水) 21:01:12
選民志向でもあるのかね。py厨は。
923デフォルトの名無しさん:2006/05/10(水) 21:07:35
>920
なら素直にNoneつっこんどけと
924デフォルトの名無しさん:2006/05/10(水) 21:27:36
pythonこそは最高だ。それ以外の言語はすべてだらしないし、
だらしない言語を使う奴もだらしない
925デフォルトの名無しさん:2006/05/10(水) 21:52:10
2行のものが1行になるなら10,000行が5,000行になる可能性もあるので
「単なる」ですまない無限の可能性(~e~)
926デフォルトの名無しさん:2006/05/10(水) 22:07:26
>>925
その代わり可読性が80%減少する諸刃の剣
927デフォルトの名無しさん:2006/05/10(水) 22:24:56
>>913

Pythonの+=は後付けだからね

Count =+ 1ならエラーにならないって知ってた?
928デフォルトの名無しさん:2006/05/10(水) 22:59:38
さすが、だらしなくない言語はすばらしい仕様をお持ちですね。
929デフォルトの名無しさん:2006/05/10(水) 23:12:40
Perl 使うと頭も腐っちゃうんだな。可哀想に。
930デフォルトの名無しさん:2006/05/11(木) 01:13:17
誰がpython以外の言語の悪口を言えといった。
そんな誰もが分かることを改めて書かなくてもよいぞ。

↓ 引き続きpythonの話題でお楽しみください。
931デフォルトの名無しさん:2006/05/11(木) 01:30:16
さいたまのAAが一番似合う言語であることについて
932デフォルトの名無しさん:2006/05/11(木) 03:42:42
ごめん、俺のせいで荒れた。出自が手間を省けるawkじゃないんだから、
不当な文句だったよ。
933デフォルトの名無しさん:2006/05/11(木) 07:29:01
>>927
確かにエラーにならないんだけど、
何度繰り返しても、1にしかならないです(´・ω・`)
=+ってもしかして、Count = 1って事?
934デフォルトの名無しさん:2006/05/11(木) 07:48:46
pythonこそが最高の言語です。それ以外はだらしない言語。

何この偉そうな態度。
935デフォルトの名無しさん:2006/05/11(木) 08:04:20
はやく  = +1 に気付け。
936デフォルトの名無しさん:2006/05/11(木) 08:20:27
// 知られざる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
スレ違いだが
937デフォルトの名無しさん:2006/05/11(木) 08:49:10
まあ、ぶっちゃけそんな暗号文書かれると困るわけだが。
938デフォルトの名無しさん:2006/05/11(木) 09:06:14
結局、=+って+=の代替にはならないよね(´・ω・`)
939936:2006/05/11(木) 10:15:16
>>937
すまん、スルーしてくれ・・・
940デフォルトの名無しさん:2006/05/11(木) 11:54:02
だらしない言語はすぐに暗号文になるんだよね。
941デフォルトの名無しさん:2006/05/11(木) 12:34:02
>>940
つまりC言語はだらしない言語ってことだな、君が言うには。
942デフォルトの名無しさん:2006/05/11(木) 12:44:30
人間がコンピュータの都合に合わせて枝葉まで細かく指示しなきゃいけない言語はだらしないといえる。
人間が創造的な部分にのみ集中できる言語が良いものだ。
943デフォルトの名無しさん:2006/05/11(木) 14:33:59
えっ だらしないって lazy のことじゃないの
944デフォルトの名無しさん:2006/05/11(木) 14:52:27
scipy使ってる人居ませんか?
matlabに大規模な方程式とかせたりするのを
scipyにやらせようと思うんですよ.
どっちのがいいのかね
945デフォルトの名無しさん:2006/05/11(木) 16:00:59
>>921
ハズレ
946野暮だけど一応:2006/05/11(木) 16:16:21
>未定義なら1にするでいい

ってネタで言ってるんですよね?
>938 とかはまさか本気じゃないですよね?
947デフォルトの名無しさん:2006/05/11(木) 16:23:04
はぁ?
948デフォルトの名無しさん:2006/05/11(木) 17:16:33
scipyを使った教科書?みたいなのが前紹介されていたな。
文献少ないし、例も少ないのがだるいわ
949デフォルトの名無しさん:2006/05/11(木) 18:23:29
>>944
大規模ってどれぐらい?
950944:2006/05/11(木) 18:28:41
行列の要素数が5000000くらいのものです
951デフォルトの名無しさん:2006/05/11(木) 18:39:46
>>950
次数は?

いや、MATLAB/SciPyのアドバイスはできないんだけど興味があったんで。
952944:2006/05/11(木) 18:46:34
詳しくはいえないんですけど、
今のところ線形か2次です。
matlabだと行列データをワークスペースにロードするだけで
メモリを食うもんで、python好きだから使ってみようと思って。
953デフォルトの名無しさん:2006/05/11(木) 18:59:42
>>952
要素数5,000,000の行列って倍精度実数の密行列だと40MBだよね。
メモリが少なすぎるのかMATLABがメモリ食いなのかどっちなんだろう。
単に方程式が解ければいいだけ、ならSciPyの方が軽いかもね。
954デフォルトの名無しさん:2006/05/11(木) 21:45:12
>>941
python以外の言語はすべてだらしない言語だそうだよ。
このスレの住人の見解としては。
955デフォルトの名無しさん:2006/05/11(木) 21:51:22
>>954
勝手に見解をまとめるな
956デフォルトの名無しさん:2006/05/11(木) 21:51:44
>>954
なかなかだらしない発言だな。w
文脈から考えれば「だらしない言語」は代入しなくても参照できる某言語のことを
指しているのは明らか。
957デフォルトの名無しさん:2006/05/11(木) 22:07:06
そーゆーとこでRuby厨の真似はいらんから!
958デフォルトの名無しさん:2006/05/11(木) 22:38:45
>>956
結局他の言語を馬鹿にしたいのに変わりはないわけだろ。
959デフォルトの名無しさん:2006/05/11(木) 22:41:02
排他的なとこってあるよね。
python。
960デフォルトの名無しさん:2006/05/11(木) 23:59:07
わざわざpythonのスレにきて
煽ってる連中が一番だらしないってことだろ

ちゃんと働けよw
961デフォルトの名無しさん:2006/05/12(金) 00:16:36
>>958
馬鹿にするというか見下すという感じかな(同じか)。
Py厨が他言語をほめるところなんて見たことないし。
962デフォルトの名無しさん:2006/05/12(金) 00:43:21
2.4のドキュメント日本語化終了したいみたいですね。
963デフォルトの名無しさん:2006/05/12(金) 04:42:55
だらしないの一言でエラク釣れたなw
普段から回りにだらしないだらしない言われてて気にしたのか?
だらしないのはお前ら自身のせいじゃないぞw
お前らのパパやママの愛情が足りなかったからだ
恨むんならパパやママを恨むんだなw
964デフォルトの名無しさん:2006/05/12(金) 04:51:41
次のスレタイには「だらしない」を入れよう。
965デフォルトの名無しさん:2006/05/12(金) 05:55:53
python ってなんてよむんですか?
ぱいそん?
966デフォルトの名無しさん:2006/05/12(金) 05:57:02
ぱいそん!
967デフォルトの名無しさん:2006/05/12(金) 10:21:25
だらしないのが嫌いなら、
まずは、だらしないの定義を
しっかり詰めてもらわないと。
968デフォルトの名無しさん:2006/05/12(金) 12:24:00
>>967
だから代入しなくても参照できることだろ
969デフォルトの名無しさん:2006/05/12(金) 17:39:46
こんな自分がpythonを使うことをお許しください。

DOS窓で、日本語を入力することができません。
検索をしたり、マニュアルを見ても、その方法を書いてあるところが
わかりません。お手上げです。
どうすれば平仮名などを入力できるのか、教えてください。
970デフォルトの名無しさん:2006/05/12(金) 17:44:15
>>969
ALT+漢字
971969:2006/05/12(金) 17:53:21
>>970
ありがとうございます、できました!!!

日本語が入力できないと、やりたいことが先に進められなかったので、
本当にうれしいです。
972デフォルトの名無しさん:2006/05/12(金) 20:55:12
つーか、pythonには似たような二つのスレを維持するほどの
流量と話題も、さらに言えば必要も無いよ。
973デフォルトの名無しさん:2006/05/12(金) 21:03:00
( ´_ゝ`)フーン
974デフォルトの名無しさん:2006/05/12(金) 21:15:52
pythonって、static scope && dynamic bindingってことでいいの?
975デフォルトの名無しさん:2006/05/12(金) 22:01:31
pythonって、だらしなくない言語ってことでいいの?
976デフォルトの名無しさん:2006/05/12(金) 22:23:20
>>975
イクナイ

言語がだらしないとだらしなくないとかナンセンス。
バカっぽいからこの話題終わりにしない?
977デフォルトの名無しさん:2006/05/12(金) 23:28:21
自分が好きな言語以外の言語をほめるなんて
普通どの人もやらんだろ。
むしろpython好きはpythonに満足して他の言語に興味が無いだけだ。

他の言語をバカにする傾向があるのはC++やJavaやってる奴ら。
自分たちが主流だと信じていつつも、なぜか開発の方法論は乱立し
しかもどれをやっても楽にならない。
横目を見ればインタプリタのスクリプト言語やってる奴らが楽しそう。
そんな状況ではひねくれずにはおられまい。
978デフォルトの名無しさん:2006/05/12(金) 23:39:42
うんこAAじゃ荒れないと見て、
ついに言語論争を煽動し始めたか。
979デフォルトの名無しさん:2006/05/12(金) 23:44:31
PythonとJavaとC++とJavaScriptが好きでたまらない俺はどうすればよいですか。
980デフォルトの名無しさん:2006/05/13(土) 00:04:07
>>979
C#も好きになれると思うよ
981デフォルトの名無しさん:2006/05/13(土) 12:58:38
たしかにC#好きになれそうな気がする(`・ω・´)
982デフォルトの名無しさん:2006/05/13(土) 13:25:56
C# + IronPython 最強。
Java + Jythonから乗り換えますた。
983デフォルトの名無しさん:2006/05/13(土) 13:44:17
>>978
うんこAAは無視できても、他言語をだらしないと貶めるのには
ついついのってしまうわけですね。Py厨は。
984デフォルトの名無しさん:2006/05/13(土) 13:52:30
次スレ誰か立てる?敗北者スレを流用?
985デフォルトの名無しさん:2006/05/13(土) 13:53:32
>>982
IronPythonって使い心地とかどう?
986デフォルトの名無しさん:2006/05/13(土) 14:21:43
>>984
ふたつもスレが必要なほどレス数もないので流用でいいんじゃ
ないの?
987デフォルトの名無しさん:2006/05/13(土) 20:17:41
>>985
まさにglue言語としての本領発揮。
IronPythonでさくっとプログラム作って、GUIの皮をVSで楽チンに作れるのはメチャいい。
.NET Frameworkのライブラリ全部を簡単に使えるのは、想像以上に快適だったよ。
ASP.NET + IronPythonはまだやってないけど、同じノリでできれば嬉しいな。
988デフォルトの名無しさん:2006/05/13(土) 20:27:22
はじめてのぱいそん13章突入
報告に上がりました。
ironpythonを使えるのはいつのことやら
989デフォルトの名無しさん:2006/05/13(土) 20:46:25
>>987
へー、結構よさそうだな。ちょっとやってみるかな。
ありがとう。
990デフォルトの名無しさん:2006/05/14(日) 03:25:32
991デフォルトの名無しさん:2006/05/14(日) 04:01:14
このパッチワークみたいなものは何なんだ

http://www.sauria.com/~twl/conferences/pycon2005/20050325/Python%20at%20Google.html
992デフォルトの名無しさん:2006/05/14(日) 04:43:36
ああ、SubEthaEditね。
Mac用のエディタで複数の人が編集できる。
編集した人ごとに色付けすることが出来るし、エディタのイメージに忠実なHMTLファイルを作ることも出来る。
Pythonの文法モードに対応してるMac用のフリーエディタは(Emacs系を除けば)これくらいだよ。
993デフォルトの名無しさん:2006/05/14(日) 10:14:34
>>992
miにもPythonモードがあるよ

ttp://homepage2.nifty.com/~yoshimura/

インデントがタブになっちゃうけどね

日本語使わなくていいなら他にもたくさんあるます

http://wiki.python.org/moin/PythonEditors
994デフォルトの名無しさん:2006/05/14(日) 11:46:25
流石にインデンテーションの設定はできるんじゃないかなぁ…
995デフォルトの名無しさん:2006/05/14(日) 20:15:22
インデントをスペース2個分にして、無駄なインデントを減らせばいいのさ。
996デフォルトの名無しさん:2006/05/14(日) 20:19:22
pythonで書いてあるアップローダーのプログラムってない?
997デフォルトの名無しさん:2006/05/14(日) 20:34:07
次スレはこちらに合流です。
http://pc8.2ch.net/test/read.cgi/tech/1141964987/
998デフォルトの名無しさん:2006/05/14(日) 20:38:06
1000
999デフォルトの名無しさん:2006/05/14(日) 20:39:32
ぴチョン
1000デフォルトの名無しさん:2006/05/14(日) 20:39:43
             ゙'.     ,ト `i、  `i、    .、″
                |    .,.:/""  ゙‐,. `    /
             `  .,-''ヽ"`    ヽ,,,、   !
                、,、‐'゙l‐、      .丿 : ':、
               、/ヽヽ‐ヽ、;,,,,,,,,,-.ッ:''`  .,"-、
              ,r"ツぃ丶  ``````   ../  `i、
          ,.イ:、ヽ/ー`-、-ヽヽヽ、−´    .l゙`-、
         _,,l゙-:ヽ,;、、             、、丶  ゙i、,,、
        ,<_ l_ヽ冫`'`-、;,,,、、、、.............,,,,、.-`":    │ `i、
      、、::|、、、ヽ,、、.    ```: : : ```      、.、'`  .|丶、
     .l","ヽ、,"、,"'、ぃ、、,、、、、.、、、.、、、_、.,,.ヽ´    l゙  ゙).._
    ,、':゙l:、、`:ヽ、`:、  : `"```¬――'''"`゙^`     : ..、丶  .l゙ `ヽ
   ,i´.、ヽ".、".、"'ヽヽ;,:、........、           、、...,,,、−‘`   、‐   |゙゙:‐,
  ,.-l,i´.、".`ヽ,,,.".`   `゙゙'"`'-ー"``"``r-ー`'":      _.‐′  丿  ,!
 j".、'ヽ,".、".、"`''`ー、._、、、           、._,、..-‐:'''′   .、,:"  丿
 ゙l,"`"`''ヽヽ"`"`  ```゙'''"ヽ∠、、、、ぃ-`''''": `      、._./`  ._/`
  `'i`ヽヽヽ`''ーi、、、: :                   、.,-‐'`   、/`
   ``ヽン'`"`  : `~``―ヽ::,,,,,,,,,,.....................,,,,.ー'``^    ,、‐'"`
      `"'゙―-、,,,,..、、                 : ..,、ー'"'`
           : `‘"`―---------‐ヽ``"''''''""
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。