Pythonのお勉強 Part18

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
前スレ
Pythonのお勉強 Part17
http://pc11.2ch.net/test/read.cgi/tech/1171613101/

日本Pythonユーザ会
http://www.python.jp/
Python オフィシャルサイト
http://www.python.org/

<関連スレ>
Microsoft IronPython 1.0
http://pc8.2ch.net/test/read.cgi/tech/1157686822/
Python の宿題ここで答えます Part 1
http://pc8.2ch.net/test/read.cgi/tech/1153585095/
Python Challengeをやろう!
http://pc11.2ch.net/test/read.cgi/tech/1175919288/

<まとめwiki>
http://python.rdy.jp/

<参考サイト>
Python ドキュメント
http://www.python.jp/doc/release/
Dive Into Python
http://diveintopython.org/toc/
PEP(Python Enhancement Proposal
http://www.python.org/dev/peps/
2デフォルトの名無しさん:2007/04/09(月) 04:23:14
Microsoft IronPython 1.0
http://pc11.2ch.net/test/read.cgi/tech/1157686822/
Python の宿題ここで答えます Part 1
http://pc11.2ch.net/test/read.cgi/tech/1153585095/
3デフォルトの名無しさん:2007/04/09(月) 17:43:43
♪基本的には>>1乙だけど
 ♪時と場合で移り気なの
4デフォルトの名無しさん:2007/04/09(月) 19:15:00
おっ、Pythonスレ。
5デフォルトの名無しさん:2007/04/09(月) 20:16:18
>>> print >>1, "乙"
6デフォルトの名無しさん:2007/04/09(月) 21:25:14
おっPython
7デフォルトの名無しさん:2007/04/09(月) 21:42:45
ところで、まとめwikiなんだけど、htmlとかtxtとかファイルそのものをアップできるようにしてほしい。
昔のログとか既に繋がってないので。
8デフォルトの名無しさん:2007/04/09(月) 22:39:52
>>1にはニコニコして
 ♪そうでない人もそれなりに
9デフォルトの名無しさん:2007/04/09(月) 22:44:10
なんだ、新キャラの登場か?
10デフォルトの名無しさん:2007/04/09(月) 23:50:43
こんな過疎板にこんなキャラ立ちした奴ぁ突然こねぇよ

前スレ荒らしてた彼が
「ボク、心入れ換えるから、
 これからも仲良くしてね?」
って泣き入れてるんだろうよ

アイツ友達居ない奴だから(w
11デフォルトの名無しさん:2007/04/09(月) 23:59:01
なんだ豆腐か。
12デフォルトの名無しさん:2007/04/09(月) 23:59:34
>>8
ZOPE関係者乙.
133:2007/04/10(火) 01:06:35
>>8
ナカーマw
14デフォルトの名無しさん:2007/04/10(火) 12:38:05
Beginning Game Development With Python and Pygame
http://www.amazon.co.jp/dp/1590598725
15デフォルトの名無しさん:2007/04/10(火) 17:19:21
>>7
古いやつは誰かがアップしてあるみたいだけど
16デフォルトの名無しさん:2007/04/10(火) 17:35:11
docutilsをライブラリとして使う方法を探しています。
s = """
* foo
* bar
* baz
"""
html = rst2html(s)
print html,
としたら
<ul>
<li>foo</li>
<li>bar</li>
<li>baz</li>
</ul>
に変換されるようにしたいんです。
http://docutils.sourceforge.net/
をみてもいまいち分からないのですが、アドバイスお願いします。
17デフォルトの名無しさん:2007/04/10(火) 19:17:57
import docutils.core
src = """\
* foo 
* bar 
* baz 
"""
settings = {
    "stylesheet": "",
    "stylesheet_path": None,
}
print docutils.core.publish_string(src, writer_name='html',
                                   settings_overrides=settings)
18デフォルトの名無しさん:2007/04/10(火) 19:27:10
>>17
ありがとうございます
19デフォルトの名無しさん:2007/04/10(火) 19:37:16
1. docutilsをライブラリとして使う、ねえ。まず rst2html.py が何してるか見てみますか。
2. docutils.core.publish_cmdline() とゆー関数を呼んでるなあ。どういう関数かな。(site-packages/docutils/core.py を見る)
3. publish_なんちゃら という関数がいっぱいあるなあ。お、publish_string とゆー関数もあるなあ。
4. 使い方がよく分からないから docutils.core.publish_string でググってみよう。(用例が見つかる)
5. publish_string にはたくさん引数があるなあ。writer_name は rst2html.py で指定されてるのと同じ値を渡してみよう。
6. スタイルシートファイルが無いって怒られるなあ。デフォルトの値だとマズいんだろうなあ。
7. settings_overrides とゆー引数の値にテキトーな辞書を指定すればデフォルトを上書き指定できるんだろうなあ。
8. rst2html.py のコマンドラインオプションに --stylesheet-path とゆーのがあるから "stylesheet_path" を辞書のキーにしてみよう。(ビンゴ!)
9. とりあえずスタイルシートファイルは要らないなあ。値は None にしてみよう。
というような調子で試行錯誤した結果が>>17のコード。

要約すると「ソース嫁」「ググれ」。
20デフォルトの名無しさん:2007/04/10(火) 21:06:37
> 要約すると「ソース嫁」「ググれ」。

それは、教える能力がないということの証明ですよね。
馬鹿も休み休みお願いします。
21デフォルトの名無しさん:2007/04/10(火) 21:08:46
シャケ━━━━Σ゜lllllE━━━━━!!
22デフォルトの名無しさん:2007/04/10(火) 21:12:10
馬鹿の相手をしてると馬鹿が感染ることがあるので注意しなければなりませんね
23デフォルトの名無しさん:2007/04/10(火) 21:14:20
ま、俺様の教育能力をみたかったら金払ってもらわないとな
24デフォルトの名無しさん:2007/04/10(火) 21:17:08
お金なら払いますからそれだけは勘弁してください
25デフォルトの名無しさん:2007/04/10(火) 21:17:41
学習方法を教わった方が応用が効くのだよ。
基本的なことすら出来ないのは問題外。
26デフォルトの名無しさん:2007/04/10(火) 21:31:11
27デフォルトの名無しさん:2007/04/10(火) 21:33:07
28デフォルトの名無しさん:2007/04/10(火) 23:18:10
どっかのブラウザスレにも前いたよな…
29デフォルトの名無しさん:2007/04/11(水) 00:06:49
pythonをシェアウェアに組み込みたい場合って、LISENCE.TXT とか添付しないといけないの?
標準ライブラリの構成とか変えてもいいの?ライブラリから使わないファイルを削除して、***.py
を全部 ***.pyc にして配布とか。
30デフォルトの名無しさん:2007/04/11(水) 01:05:33
2.5.1 age
31デフォルトの名無しさん:2007/04/11(水) 01:09:20
RC1じゃん。
32デフォルトの名無しさん:2007/04/11(水) 07:37:10
>>20-25
何コレ?
異常者出現か?
33デフォルトの名無しさん:2007/04/12(木) 01:04:46
普通の変数と辞書ってスコープに関するルール何か違います?
具体的には、以下のような動作をする理由というか、
どういう仕様なのだと理解すればよいのか、どなたか教えてください。

Python 2.4.1 (#1, May 27 2005, 18:02:40)
[GCC 3.3.3 (cygwin special)] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> v = None
>>> d = {}
>>> def func_v():
... v = "var"
...
>>> def func_d():
... d['key'] = 'dict'
...
>>> func_v()
>>> func_d()
>>> print v
None ← 関数内で設定した値は反映されない。
>>> print d
{'key': 'dict'} ← 関数内で設定した値が参照できる。
>>>
34デフォルトの名無しさん:2007/04/12(木) 01:13:57
>>33
辞書だからとかではなく、変数自体への代入があるかどうかでスコープが決まる。
func_v の中で v は代入の対象になっているから v はローカル
func_d の中で d は代入の対象になっていない(*1)から d はグローバル

(*1) 代入の対象になっているのは d ではなく d に入っている辞書の中身
35デフォルトの名無しさん:2007/04/12(木) 01:13:58
>>33
global 文について調べてみよう。
36デフォルトの名無しさん:2007/04/12(木) 02:01:55
>>33
入門書嫁。
37デフォルトの名無しさん:2007/04/12(木) 07:17:57
http://www.python.jp/doc/release/tut/node11.html
コレの9.2の最後の段落が一応その説明になってるのかな・・・
チュートリアルって隅々まで読むとかなり何でも書いてある気がする、
38デフォルトの名無しさん:2007/04/12(木) 08:25:24
>>15
普通に出来ましたね。あと、wikiのソースに{{attach}}というのを書くとうぷ用フォームが出来るので
そこからも投稿可能だった、・・
39デフォルトの名無しさん:2007/04/12(木) 09:35:22
そんなにたくさん養えない。
40デフォルトの名無しさん:2007/04/12(木) 12:19:39
なんだか怖い...
41デフォルトの名無しさん:2007/04/12(木) 19:13:41
下柳...
42デフォルトの名無しさん:2007/04/12(木) 22:45:07
>>> def a(a):
x=float(a)
print(x)

>>> a(5/3)
1.0

floatつかっても整数になってしまいます、
これはどうやれば解決しますか教えてください。
43デフォルトの名無しさん:2007/04/12(木) 22:48:14
お前アホやろ才能ないなあ
44デフォルトの名無しさん:2007/04/12(木) 22:52:24
>>> def foo(a):
...     print a
...
>>> foo(5/3)
1
>>> 5/3
1
>>> float(5/3)
1.0
>>> float(5) / 3
1.6666666666666667
45デフォルトの名無しさん:2007/04/12(木) 22:53:45
>42
a(5/3.0)

あるいは
from __future__ import division

def a(a):


a(5/3)
4645:2007/04/12(木) 22:54:56
途中書き込みしてしまった
def a(a): の所は別に重要でないので適当に補完してくれ
47デフォルトの名無しさん:2007/04/12(木) 23:00:15
from __future__ import divisionが求めていたものです
ありがとうございました
48デフォルトの名無しさん:2007/04/12(木) 23:00:25
とりあえず>>42に教えるべきことは5/3==1ってことだけだろ。
あと、1.0は整数ではなくfloat
49デフォルトの名無しさん:2007/04/12(木) 23:02:00
>>47
あ、そうなの?w
50デフォルトの名無しさん:2007/04/12(木) 23:04:57
個人的には3/3==1なきがする
51デフォルトの名無しさん:2007/04/12(木) 23:06:07
In [1]: 5/3
Out[1]: 1

In [2]: 5//3
Out[2]: 1

In [3]: 5.0/3
Out[3]: 1.6666666666666667

In [4]: 5/3.0
Out[4]: 1.6666666666666667

In [5]: 5.0//3
Out[5]: 1.0

In [6]: 5//3.0
Out[6]: 1.0
52デフォルトの名無しさん:2007/04/12(木) 23:06:41
なんだ豆腐の自演か。
53デフォルトの名無しさん:2007/04/12(木) 23:11:02
>>50
整数は環だから割り算など定義されていない、ということなんじゃないかと、
5433:2007/04/13(金) 01:52:27
>>34
おお!なるほど! 一発氷解です。さんくす。
この場合 d は参照しかしてないのね。 言われてみれば確かにそうだ。
試しに d = {'key': 'val'} とすると確かにローカルになる。

>>37
リファレンスの4.1
http://www.python.jp/doc/release/ref/naming.html
にも同じようなことは書いてあったんですが、
俺の理解力では上の結論は導き出せんかった orz
55デフォルトの名無しさん:2007/04/13(金) 02:00:52
float(5)/float(3)
ということか
56デフォルトの名無しさん:2007/04/13(金) 02:04:40
かっこの中を先に計算する決まり、って学校で習うだろ
57デフォルトの名無しさん:2007/04/13(金) 10:42:25
何が悪いのかまったくわかりません>.<b
ボタン押したらラベルを変化させたいと思いますが,
なにかアドバイスください
from Tkinter import *
class App(Frame) :
def __init__(self, master = None) :
Frame.__init__(self, master)
self.init()
self.pack()
self.labelStr = "hi!"
def btn1func(self) :
self.labelStr = "btn1"
def btn2func(self) :
self.labelStr = "btn2"
def init(self) :
btn1 = Button(self, text = "btn1", command=self.btn1func())
btn2 = Button(self, text = "btn2", command=self.btn2func())
lbl = Label(self, text = self.labelStr)
btn1.pack()
btn2.pack()
lbl.pack()
btn3 = Button(self, text = "click here for exit", command=sys.exit)
btn3.pack()
app = App()
app.mainloop()
58デフォルトの名無しさん:2007/04/13(金) 11:17:26
だから才能ないんだって。
出来るヤツは聞くまでもなくいろいろ試すし、
自己解決しながら力を付けてゆくものなんだよ。
59デフォルトの名無しさん:2007/04/13(金) 11:18:44
本当に才能あったらプログラミングなんてしてないよ
60デフォルトの名無しさん:2007/04/13(金) 12:03:03
と,豆腐が言ってます.
61デフォルトの名無しさん:2007/04/13(金) 12:14:02
理想や仮定の話ばっかりで、目の前の現実の問題に対応できないヤツらだな
62デフォルトの名無しさん:2007/04/13(金) 12:18:19
豆腐はなぜ2ちゃんに執着するか?
63デフォルトの名無しさん:2007/04/13(金) 12:27:37
豆腐だから。
64デフォルトの名無しさん:2007/04/13(金) 12:32:22
あっちでバカやってるぞ
http://pc11.2ch.net/test/read.cgi/prog/1175099288/
65デフォルトの名無しさん:2007/04/13(金) 12:33:49
豆腐、いちいちリンクするなよ.
66デフォルトの名無しさん:2007/04/13(金) 12:37:24
豆腐が変なコテつけて暴れているアフォスレを紹介しただけだ
67デフォルトの名無しさん:2007/04/13(金) 12:42:36
スレ違いだから
変なのはすべてスルーな
68デフォルトの名無しさん:2007/04/13(金) 12:46:04
Tkってやってる人少ないのかな
69デフォルトの名無しさん:2007/04/13(金) 12:46:46
>>64
なにこれ?
70デフォルトの名無しさん:2007/04/13(金) 12:48:35
>>57
> def btn1func(self) :
>   self.labelStr = "btn1"
ここのselfはAppオブジェクトであってLabelオブジェクトじゃない。
やりたいことは、AppオブジェクトのlabelStr属性を書き換えるんじゃなくて
Labelオブジェクトの持つテキストを書き換えることのはず。

> btn1 = Button(self, text = "btn1", command=self.btn1func())
Buttonオブジェクトにアタッチしたいのは値ではなく関数のはず。

で、Labelオブジェクトの持つテキストを書き換えるには、
self.aLabel['text'] = 'New Text' とか。以下参照:
http://www.pythonware.com/library/tkinter/introduction/widget-configuration.htm
71デフォルトの名無しさん:2007/04/13(金) 13:39:36
Pythonスレ認定キチガイ

(1) ZOPE関係者
(2) 豆腐
72デフォルトの名無しさん:2007/04/13(金) 14:39:39
Pythonスレ認定キチガイ

(1) ZOPE関係者
(2) 豆腐
(3) >>71
73デフォルトの名無しさん:2007/04/13(金) 15:14:59
listやarrayを作成するときに、サイズを指定することはできますか。
画像処理で大きなarrayを使いたいのですが、サイズが分かっているときは
生成時に指定した方が実行効率がいいと思うので。
74デフォルトの名無しさん:2007/04/13(金) 15:20:49
画像処理とかだったら array より Numeric とか numpy じゃないの?
Numeric.zeros( (100,100), typecode=Numeric.Float )

list は論外ということで
75デフォルトの名無しさん:2007/04/13(金) 16:52:37
>>74
使っているライブラリがarrayを使っているので。
76デフォルトの名無しさん:2007/04/13(金) 17:53:04
キチガイには常人がキチガイに見えるらしいよね.
77デフォルトの名無しさん:2007/04/13(金) 17:55:43
2chの世界ではガイキチが常人ですw
78デフォルトの名無しさん:2007/04/13(金) 22:48:39
と、キチガイが言っています。
79デフォルトの名無しさん:2007/04/13(金) 23:11:24
OLPCの写真を漁ってたら面白いのみつけたよ。
PyCon 2007 で Guido が OLPC のデモをやってたらしい。

Guido demonstrates the OLPC
http://www.flickr.com/photos/uhop/400464476/
80デフォルトの名無しさん:2007/04/14(土) 01:13:33
>>73
import itertools, array
print array.array('i', itertools.repeat(0, 5))
81デフォルトの名無しさん:2007/04/14(土) 01:23:13
大人だとタイピングが厳しそうだ・・・
82デフォルトの名無しさん:2007/04/14(土) 01:25:33
デモというか、誰かが持ってきたOLPCを廊下でちょっと触ってる図のような気が・・・
83デフォルトの名無しさん:2007/04/14(土) 03:34:48
Python以前に教育用言語ABCの開発をやっていたし、
興味がある分野なんじゃない?
84デフォルトの名無しさん:2007/04/14(土) 04:54:23
>>76
わずか2レス後に実例きましたよw
8573:2007/04/14(土) 08:34:16
>>80
ありがとうございます。
でもこれって初期値を指定しているのであって、arrayのサイズを指定しているわけではないですよね。
求めているものとはちょっと違うようです。
86デフォルトの名無しさん:2007/04/14(土) 10:36:02
>85
節穴?
87デフォルトの名無しさん:2007/04/14(土) 11:00:48
>73

arrayのサイズを指定すれば効率がいいってのは勘違いだから気にするな。
88デフォルトの名無しさん:2007/04/14(土) 12:28:36
>>57
StringVar() を使うとほぼ希望通りのことができる。
もちろん>>70さんの指摘した方法でもOK。
あと、書き方も俺の好みに合わせてちょっと変えてみた。参考までに。

from Tkinter import * 
class App(Frame) : 
    def __init__(self, master = None) : 
        Frame.__init__(self, master) 
        self.init() 
        self.pack() 
        self.labelStr.set("hi!")
    def btn1func(self) : 
        self.labelStr.set("btn1")
    def btn2func(self) : 
        self.labelStr.set("btn2")
    def init(self) : 
        Button(self, text="btn1", command=self.btn1func).pack()
        Button(self, text="btn2", command=self.btn2func).pack()
        self.labelStr = StringVar()
        Label(self, textvariable = self.labelStr).pack()
        Button(self, text = "click here for exit", command=self.quit).pack()
App().mainloop() 
89デフォルトの名無しさん:2007/04/14(土) 13:42:10
>>82
guido は sugar のメーリングリストにも以前から何回か登場してるよ。
sugar: olpc の gui シェル
90デフォルトの名無しさん:2007/04/15(日) 23:50:03
16進数の文字列をパースして10進数のintに変換するライブラリがあったら紹介してください。
91デフォルトの名無しさん:2007/04/15(日) 23:55:20
92デフォルトの名無しさん:2007/04/16(月) 01:10:56
>>90
入門書嫁。
93デフォルトの名無しさん:2007/04/16(月) 03:48:57
質問者のレベルに合わせてやれよ。
>>> int('ABCDEF', 16)
11259375
94デフォルトの名無しさん:2007/04/16(月) 08:15:27
>>93
ありがとうございました。int()に第2引数を渡せるんですね。
95デフォルトの名無しさん:2007/04/16(月) 08:16:53
初心者質問への対応は得意なんですね。
96デフォルトの名無しさん:2007/04/16(月) 10:35:06
dictにはget(key, value)という大変便利なメソッドがあります。
dct = { 'foo':1, 'bar':2 }
dct.get('baz', None) #=> None

同じものがlistにないでしょうか。
lst = [1,2,3]
i = 4
lst.get(i, None) #=> None

今は
def getvalue(lst, i, value):
 if 0 <= i < len(lst):
  return lst[i]
 else:
  return value
という関数を定義しているのですが、標準でそういう関数があれば教えてください。
97デフォルトの名無しさん:2007/04/16(月) 13:46:28
『みんなのPython』 という本を持っている人にお聞きしたいのですが、

(1)
p.266 下から 4 行目の「インスタンスを呼び出すとき」は、
「メソッドを呼び出すとき」のまちがいだと思うのですが、どう思われますか?

(2)
p.306-307 リスト1:strdict.py の 18 行目はインデントがないと
エラーになりませんか?

パソコン始めたばかりでプログラムの経験が無いため、
見当違いなことを言ってるかもしれませんが、
間違ってたらどうぞ叩いてください m(_ _)m
98デフォルトの名無しさん:2007/04/16(月) 13:53:48
とりあえず正誤表
それと何版何刷かは書いた方がいいかと
というか出版社に言え?

http://coreblog.org/ats/stuff/minpy_support/errata/
9997:2007/04/16(月) 14:06:44
すいません、初版第1刷です。
正誤表に載ってなかったもので…。
100デフォルトの名無しさん:2007/04/16(月) 14:17:00
>>97
初版第2刷
(1)は多分そう。俺のでも直ってない
(2)は少なくとも俺のでは書いてある通りで正しく動いた気がする。if not〜〜〜と同じ深さ

正誤表に載ってないとこでも結構間違いあった気がするからそんなに気にしないでもいいんじゃね?
101デフォルトの名無しさん:2007/04/16(月) 15:06:12
そんな間違い多いのか
買おうと思ったけど止めた
102デフォルトの名無しさん:2007/04/16(月) 15:24:55
>>97
初版1刷。
(1)はご指摘の通り。
(2)はもし
if not isinstance(key, str):
  raise ValueError('Key must be str or unicode.')
  dict.__setitem__(sekf, key, value)
だったらどういうことになるか考えてみるといいよ。

みんPyは間違いや正確さに欠ける記述も多いから
読み捨てぐらいの気分で取り組むのが吉かと。
103デフォルトの名無しさん:2007/04/16(月) 15:26:39
ああtypo。  dict.__setitem__(self, key, value)
104デフォルトの名無しさん:2007/04/16(月) 15:58:40
プログラミングの本ってどうして誤植多いんだろうね
105デフォルトの名無しさん:2007/04/16(月) 16:00:09
編集者がわかってないからチェックできないんじゃないか?w
106デフォルトの名無しさん:2007/04/16(月) 16:02:25
誤植は移植のときに間違える場合だから
初めから間違ってたときは誤植じゃないだろ
107デフォルトの名無しさん:2007/04/16(月) 16:10:44
誤植というのは植字(死語に近いけど)のときに間違えるという意味。
移植のときってなんだよ。w
108デフォルトの名無しさん:2007/04/16(月) 18:43:12
>>96

>>> 4 in lst
>>> False

とかじゃ駄目なの?
109デフォルトの名無しさん:2007/04/16(月) 19:58:57
>>108
i = 4
i in lst
は意味違いませんか?
欲しいのは
if 0 <= i < len(lst): return lst[i]
else: return value
または
lst[i] if 0 <= i < len(lst) else value
です。
110デフォルトの名無しさん:2007/04/16(月) 20:10:46
>>103
レベル高いな(w
111デフォルトの名無しさん:2007/04/16(月) 20:15:52
>>96
> 標準でそういう関数があれば教えてください。 

ない。
112デフォルトの名無しさん:2007/04/16(月) 20:20:04
>>96
無いみたい。
Cookbookのサイトで調べたら
getvalue = (lst[3:4] or ['No'])[0]
ってかんじの方法が書いてあった。
ttp://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/269484
113デフォルトの名無しさん:2007/04/16(月) 20:20:59
>>103
さすがZOPE関係者。
114デフォルトの名無しさん:2007/04/16(月) 20:26:09
>103
「しっぱい」だな(w
115デフォルトの名無しさん:2007/04/17(火) 02:45:47
>>111-112
どうもありがとうございます。標準では存在しないことがわかったので、安心して自作の関数を使うことにします。
116デフォルトの名無しさん:2007/04/17(火) 03:00:53
["foo","bar",foo"]というリストがあったとして
{1:'foo', 2,:'bar'}というようにそのリスト内の重複を考慮した上で、重複しない辞書を作成したい場合はどうすればよいのでしょうか?
117デフォルトの名無しさん:2007/04/17(火) 03:50:13
>>> from sets import Set
>>> dict(enumerate(Set(["foo", "bar", "foo"])))
{0: 'foo', 1: 'bar'}
>>> 
118デフォルトの名無しさん:2007/04/17(火) 05:14:37
組み込み型のset使ったほうが
119デフォルトの名無しさん:2007/04/17(火) 06:11:54
>>117-118
ありがとうございます。
集合型を入れ子にするにはどうすればよいのでしょう?
集合型の要素に集合型をもってきて木構造を作成したいのです。
12097:2007/04/17(火) 07:19:39
>>102
ありがとうございました。やっぱりインデントが必要なんですね。
辞書型を継承した、文字列だけをキーに取るクラスが作れました。

今のところこの本だけしか読んでないので、ちょっと不安になりました…。
読み終わったら、次は動物が表紙のシリーズの本も探して読んでみます。
121102:2007/04/17(火) 09:47:57
ええと、みんPy初版1刷に書いてある通りでOKです。
勘違いさせちゃってすいません。

仮にインデントありだと、
>>> d = StrDict()
>>> d[1] = 'hoge' # ValueError例外発生
>>> d['1'] = 'piyo' # 例外発生せず
一見するとうまくいってますが、
>>> d['1']
でKeyError例外が発生します。

文字列以外をキーとして受け取ったときにはValueError例外を発生させ、
文字列をキーとして受け取ったときにはキーの文字列と値を受け取り
何もしないで捨てちゃってますから。

あと、インデントにタブと半角スペースを混用すると挙動がおかしくなるかもです。
122デフォルトの名無しさん:2007/04/17(火) 10:49:14
>>115
例外使わないの?
123デフォルトの名無しさん:2007/04/17(火) 21:35:40
>>102
キチガイには常人がキチガイに見えるらしいよ。
124デフォルトの名無しさん:2007/04/17(火) 23:12:01
なんだか雰囲気の悪いスレになったなおい
125デフォルトの名無しさん:2007/04/17(火) 23:59:51
近くのスレが荒れてるとそこから人が流れてくるからね・・・
放置するしかない
126デフォルトの名無しさん:2007/04/18(水) 00:38:52
放っておきゃそのうち直る。
こういうのは景気変動みたいに波があるんだよ。
127デフォルトの名無しさん:2007/04/18(水) 01:01:39
そうだね.キチガイがぜんぶ悪いよね.
128デフォルトの名無しさん:2007/04/18(水) 02:41:16
setup.pyやeasy_installを使ってインストールしたライブラリを
アンインストールするには、site-packagesの中のファイルや
ディレクトリを手動で削除するしかないのでしょうか?
129デフォルトの名無しさん:2007/04/18(水) 06:38:52
>>128
setup.py について:
Windows の場合は setup.py bdist_wininst
RPM 系の Linux の場合は setup.py bdist_rpm
でインストーラ(バイナリパッケージ)を作れば
それぞれ OS 固有のインストール・アンインストール機能が利用できる。
フツーに setup.py install しちゃったものについては
手動で消すしかないと思われ。
130デフォルトの名無しさん:2007/04/18(水) 07:56:58
>>119
集合を入れ子にするためには、普通のsetは使えなくて、frozensetというものを使わないと
できない。

>>>s=frozenset
>>>s()
frozenset([])
>>>s([s()])
frozenset([frozenset([])])
>>>s([s(),s([s()]))
frozenset([frozenset([frozenset()]), frozenset([])])
131デフォルトの名無しさん:2007/04/18(水) 14:25:19
まとめ wiki の
 http://python.rdy.jp/wiki.cgi?page=%A5%BD%A1%BC%A5%B9%BD%B8 の、

超初心者向け
 1から50までの和を計算して表示 の、

 print reduce(lambda x,y:x+y,range(50))

という回答は、

 print reduce(lambda x,y:x+y,range(1,51))

のまちがいではないですか?
132デフォルトの名無しさん:2007/04/18(水) 14:38:06
そうだね。
そもそも誰も見ていなさそうなソース集は必要なのだろうか?
133デフォルトの名無しさん:2007/04/18(水) 14:47:00
おまえには必要ないだけ。
134デフォルトの名無しさん:2007/04/18(水) 14:51:00
>>131
まちがいというよりキチガイです.
135デフォルトの名無しさん:2007/04/18(水) 15:00:57
{ 'kitty guy' : '猫男' }
136デフォルトの名無しさん:2007/04/18(水) 17:26:12
>>132
あの分類(初心者〜上級者とか)だと使い物にならないと思う。
もっと、何がしたい時みたいなレシピ集的な編集にしていけば良くなってくと思う・・
137デフォルトの名無しさん:2007/04/18(水) 17:33:34
>>131
>#generator式を使う
>print sum(x for x in range(1,51))

無駄に冗長なコード書く必要なくね?
おまえ「generator式」言いたかっただけちゃうんかと
138デフォルトの名無しさん:2007/04/18(水) 17:37:49
おまけにsumとかいう変数定義してグローバル汚染してるぢゃん(www
ナニコレ、バカジャネエノ(wwwwwww

>>> sum = 1
>>> sum(range(1, 51))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
139136:2007/04/18(水) 17:39:42
>>137
いや、それ俺だわw

個人的に数列の和の一番普通な求め方はgenerator式じゃないかと思うので、・・

sumの指摘サンクスw
140デフォルトの名無しさん:2007/04/18(水) 17:40:12
wikiなんだから直せばいいんじゃね?
141デフォルトの名無しさん:2007/04/18(水) 17:44:04
>>136
あれはレシピじゃなくて、初心者〜中級者がPythonテクニックを磨くための問題を
出し合おうって話から始まったはず。
142デフォルトの名無しさん:2007/04/18(水) 17:45:57
>>141
テクニック磨けてないし(wwww
143デフォルトの名無しさん:2007/04/18(水) 17:47:16
138は何を言っているの?
説明きぼんぬ。
144デフォルトの名無しさん:2007/04/18(水) 17:48:21
(wwwwwww

ってのはどの辺で使われてるんだ?
145136:2007/04/18(水) 17:49:19
>>141
なんスレぐらい前の話?
もう、最終更新がいつか分からないくらい前っぽい感じなので、方針転換してもいいんじゃないかなと、・・・
146136:2007/04/18(水) 17:51:55
>>143
履歴参照、(sumに代入するようなコードになってた
147デフォルトの名無しさん:2007/04/18(水) 17:53:58
>>143
考えるんじゃない、感じるんだ!
海馬の1cm奥に意識を集中しろ。。。!!!

>>> sum(range(1, 51))
1275
>>> sum=1
>>> sum(range(1, 51))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
>>>
148136:2007/04/18(水) 17:54:15
あ、そうか、sum(range(1,51))でええやんていうクレームか>>137、・・俺超天然w
つーか、ここで文句言わないで、直接wikiに反映させてくれw
149デフォルトの名無しさん:2007/04/18(水) 17:55:24
>>145
雑談ページに

問題集とか難易度順とかに分かる人が分けて欲しい - nanasisan (2005年11月28日 15時18分44秒)
難易度は分からんが適当に分けてみた。問題も追加した(一部の表記変更) - 名無しさん (2005年11月29日 00時32分09秒)

ってあるから、それ以前だな。
wikiだから分類分けは勝手にやり直していいんじゃね?
150131:2007/04/18(水) 18:02:50
おお、回答が更新されてる!すごい。
最大公約数の、再帰関数っていうのは思いつかなかった…。
(たぶん常識なんだろうなぁ。数学系は苦手だぁ…。)

パスワードとかトリップ作るのはおもしろそう!
151136:2007/04/18(水) 18:03:50
>>149
まあ、かといってぱっと新たな分類に分けられるわけじゃないので、まあ、おいおい
思いつき次第・・
152デフォルトの名無しさん:2007/04/18(水) 18:08:51
ライブラリの説明+サンプルコード集あると嬉しくない?
ttp://jp.rubyist.net/magazine/?0018-BundledLibraries
みたいなの。
ごく一部のライブラリしか使ったことのない人って
自分も含めて結構いそうな気ガするし。
153デフォルトの名無しさん:2007/04/18(水) 18:09:57
このレベルではかえって迷惑という気も(w
154デフォルトの名無しさん:2007/04/18(水) 18:18:03
なんか初心者臭い流れになってきたな。みんpy野郎のせいか?
頼むから宿題レベルはどこかよそでやってくれ。スレ汚すな。
155デフォルトの名無しさん:2007/04/18(水) 18:20:27
>>154
認定キチガイ乙。
156デフォルトの名無しさん:2007/04/18(水) 18:20:49
初心者質問スレがないんだから
レベルはどうしようもないだろ
157デフォルトの名無しさん:2007/04/18(水) 18:22:52
Wikiなんかに書かないでブログに書けば、だれか添削してくれるんじゃね?
158デフォルトの名無しさん:2007/04/18(水) 18:24:31
>>152
標準ドキュメント嫁
159136:2007/04/18(水) 18:29:47
>>152
とりあえずあなたの使えるライブラリの紹介ページplz
160デフォルトの名無しさん:2007/04/18(水) 18:51:27
http://www.python.jp/Zope/links/python_documents

いやいや、最新ではないとはいえ、こんなに親切丁寧で分かりやすい、
しかも**日本語**のドキュメントがあるじゃまいか、ほかに何か必要か?
「枕の下に敷くべき」ライブラリリファレンスもちゃんとあるぞ。
http://www.python.jp/doc/release/lib/

翻訳プロジェクトの中の人マジで乙。いい訳してる。
161デフォルトの名無しさん:2007/04/18(水) 18:54:50
たしかにすげー
162デフォルトの名無しさん:2007/04/18(水) 19:04:11
そういや、どこか組み込み関数か、リストか辞書のメソッドあたりのサンプルスクリプトで
そのままコピペして使ったらちょっとしたtypoでエラーが出た所あったぞ・・・
163デフォルトの名無しさん:2007/04/18(水) 19:05:51
>>162
報告しろ
それか、お前が中の人になって直せ
ドキュメント翻訳は勉強になるぞ
164デフォルトの名無しさん:2007/04/18(水) 19:14:01
>>163
ちゃんとしたドキュメントが無い分野のハウツーを開拓するのでせいいっぱいだ
165デフォルトの名無しさん:2007/04/18(水) 19:26:28
いつも命令口調のコイツって、やっぱアイツ?
166デフォルトの名無しさん:2007/04/18(水) 19:27:37
>>165
そう、君の頭の中に住むアイツだよ(wwww
167デフォルトの名無しさん:2007/04/18(水) 19:30:26
キチガイはスルー
168デフォルトの名無しさん:2007/04/18(水) 19:47:15
165の頭の中。

1) オレ
2) アイツ
3) 脳内妹
4) 時々オカン
169デフォルトの名無しさん:2007/04/18(水) 23:05:58
>>163
見つけた!
組み込み関数の reduce の説明で lambda が labmda になってる部分だった。
ttp://www.python.jp/doc/release/lib/built-in-funcs.html
本家の英文は2.5だけど、正しく lambda になってる
170デフォルトの名無しさん:2007/04/18(水) 23:12:31
明日使えるトリビアをありがとう
171デフォルトの名無しさん:2007/04/19(木) 05:23:44
関数の引数リストが間違ってる部分があった気がするが思い出せない
172デフォルトの名無しさん:2007/04/19(木) 07:24:49
おまいら細かいこと気にしすぎ。見りゃ分かるだろ。
コピペするだけのゆとりか。
173デフォルトの名無しさん:2007/04/19(木) 10:55:17
>>172
見るだけでスペルミスや引数間違いを発見するスーパーハカー登場!!
174デフォルトの名無しさん:2007/04/19(木) 11:01:48
>>173
他人の間違いを指摘しながら自分が間違っている低脳よりマシなのだから騒ぐな
175デフォルトの名無しさん:2007/04/19(木) 11:17:00
いや、まじめな話
labmda が lambda の typo だってのは明らかじゃね?
176デフォルトの名無しさん:2007/04/19(木) 11:23:40
そう
そして,細かいことばかり気になる奴に限って
現場で役に立たないことも明らかかつ一般的なな事実
177デフォルトの名無しさん:2007/04/19(木) 11:46:22
typo厨うぜえ
178デフォルトの名無しさん:2007/04/19(木) 12:21:05
あんまり細かいこと気にしないプログラマも困るけどな。w
バランスが肝心だね。
179デフォルトの名無しさん:2007/04/19(木) 14:25:11
Windowsから、postgresqlにチマっとアクセスするプログラムを作ろうと思っています。
ironpythonとADO.NET(+Npgsql)を使ってやるという手段も考えましたが、定石みたいなものはあるのでしょうか。

古いものについては、下記のドキュメントが見つかったのですが。。
PyGreSQL - Python インタフェース
http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/pygresql.html
180デフォルトの名無しさん:2007/04/19(木) 16:17:55
「チマっと」
181デフォルトの名無しさん:2007/04/19(木) 16:30:39
>>160
2.5対応はまだまだですかね?
それとも必要無い?
182デフォルトの名無しさん:2007/04/19(木) 17:24:27
>179
DB関係は特定DB用じゃなくORマッパーなるものを介して
ある程度汎用につくってそれを PostgreSQLなりMySQLなりに
つなぐものらしい

SQLobject とかいろいろあるらしい

詳しくは次の人↓
183デフォルトの名無しさん:2007/04/19(木) 17:48:20
>>181
とりあえず今のtypo直すのが先かと
184デフォルトの名無しさん:2007/04/19(木) 18:22:31
2.5.1 ktkr
185デフォルトの名無しさん:2007/04/19(木) 18:41:44
>>182
レスありがとうございます。まさにADO.NETみたいな抽象化したライブラリがあるのでしょうか。
日本語ドキュメントを見つけたので目を通してみます。
http://ymasuda.jp/python/sqlobject/doc_0.7/index.html
186デフォルトの名無しさん:2007/04/20(金) 00:45:57
>>184
おーきてるー
187デフォルトの名無しさん:2007/04/20(金) 03:23:59
日本語変換ライブラリにはいくつかあるけど、
pykfのsplitを便利に使ってたから再度公開してください
188デフォルトの名無しさん:2007/04/20(金) 12:03:03
わかりました。公開します。
189デフォルトの名無しさん:2007/04/20(金) 19:14:02
どんなやりとりだよw
190デフォルトの名無しさん:2007/04/21(土) 10:17:07
windows ユーザですが python 2.5 と 2.5.1 を共存させつつ、
easy_install でインストールしたやつを共有する方法ってありますか?
191デフォルトの名無しさん:2007/04/21(土) 20:51:26
今からPython始めようと思って探したら
ttp://www.python.jp/Zope/download
ってページ見つけたんだけど、

・Python標準リリース
・日本語環境用インストーラ(Win32)

ってどっちがオススメ?(ちなみにWinXP SP2に入れる)
上はバージョン2.5みたいだし
下はバージョン2.3って書いてあるけど日本語ドキュメント添付でSJIS・日本語ファイル名対応って書いてあるし。

それとも、もっといいトコがあるのかしら。
192デフォルトの名無しさん:2007/04/21(土) 21:22:37
ふつうに2.5
193デフォルトの名無しさん:2007/04/21(土) 21:41:53
最新は2.51
2.5には対応してないのもあったりするけど
普通にpythonの勉強してみようってことならとりあえず最新でいいんじゃね?
194デフォルトの名無しさん:2007/04/21(土) 21:55:25
$python -c の使い方教えてくれ。
195デフォルトの名無しさん:2007/04/21(土) 21:57:22
解決した
196デフォルトの名無しさん:2007/04/21(土) 22:10:57
よかったね
197デフォルトの名無しさん:2007/04/21(土) 23:34:56
>>188
ネタじゃなくホントだったら嬉しい!
198デフォルトの名無しさん:2007/04/21(土) 23:44:52
199デフォルトの名無しさん:2007/04/22(日) 00:57:34
>>python -c
これってワンライナーしか無理?
200191:2007/04/22(日) 01:37:15
>192-193
日本語環境の方が安心なんじゃ…?と思って訊きました。
とりあえず2.5入れてみます。
ありがとうございました。
201デフォルトの名無しさん:2007/04/22(日) 01:47:47
ツーライナーでもスリーライナーでもいけるよ。
202デフォルトの名無しさん:2007/04/22(日) 02:14:43
おーなるほど、単にクオートを閉じなければいいのか・・・
203デフォルトの名無しさん:2007/04/22(日) 15:30:27
2.5にしたらある特定のpythonのpyファイルからファイル名が使われてる
みたいなエラーがでて読み取れなくなるような
状態になったから2.4にもどしたよ
204デフォルトの名無しさん:2007/04/22(日) 15:30:48
pythonで動画(mpgに変換可能)を再生しつつ、その上で簡単なアニメーションを動かすには
どんなライブラリが良いでしょうか? 開発はwindows上です。

アニメは単に動画上の物体をトレースするマーキングみたいなもので出来れば、動画のランダム再生で
シンクロできるようにしたいと思っています。
205デフォルトの名無しさん:2007/04/22(日) 15:32:27
そんなことも自分で調べられない奴はやめた方がいいよ
206デフォルトの名無しさん:2007/04/22(日) 15:44:28
>>204
動画関連でこのスレが盛り上がったためしがないので、多分知ってる人は誰も見てない希ガス
207デフォルトの名無しさん:2007/04/22(日) 16:29:34
次のようなテーブル table1 があったとして、

key val
----------
 A  1
 A  2
 B  1
 B  3
 B  4
 C  1
 C  3

これから
{ 'A': [1, 2], 'B': [1, 3, 4], 'C': [1, 3] }
というdictをつくりたいんですが、一番スマートな方法はどのようになりますか。
今は次のようにしていますが、なんかもっといい方法がないかと思っています。

import MySQLdb
conn = MySQLdb.connect()
curosr = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
cursor.execute("select key, val from table1")
lst = cursor.fetchall()
table = {}
for dct in lst:
 key, val = dct['key'], dct['val']
 values = table.get(key)
 if values is None:
  table[key] = values = []
 values.append(val)
208デフォルトの名無しさん:2007/04/22(日) 16:48:28
>>199
事実上1行のみ。;使えば多少は回避できるけど。
PyOneなんて半ばジョークのラッパースクリプトがあるが、
これ使うレベルのものになったら素直にファイルに書いた方がいいと思う。
209デフォルトの名無しさん:2007/04/22(日) 16:57:03
>>204
ググれカス
210デフォルトの名無しさん:2007/04/22(日) 17:30:36
file()とopen()って何が違うん
211デフォルトの名無しさん:2007/04/22(日) 17:48:58
名前
212デフォルトの名無しさん:2007/04/22(日) 17:56:22
>>207
少し短くはした。
>>> lst = ({'val': 1, 'key': 'A'}, {'val': 3, 'key': 'A'}, {'val': 2, 'key': 'B'})
>>> table = {}
>>> for dct in lst:
... key,val = dct['key'],dct['val']
... if not key in table.keys():
... table[key] = []
... table[key].append(val)
...
>>> table
{'A': [1, 3], 'B': [2]}
213デフォルトの名無しさん:2007/04/22(日) 17:58:07
インデント修正。
>>> for dct in lst:
...    key,val = dct['key'],dct['val']
...    if not key in table.keys():
...      table[key] = []
...    table[key].append(val)
214デフォルトの名無しさん:2007/04/22(日) 17:59:18
>>207
おれはこんなユーティリティ関数でどうにかしてる
self 使うのは癖
>>> def frompairs(sequence, multicast = False):
...     self = {}
...     for k, v in sequence:
...         if multicast:
...             self[k] = self.get(k, []) + [v, ]
...         else:
...             self[k] = v
...     return self
215デフォルトの名無しさん:2007/04/22(日) 18:11:52
>>> file == open

False
216デフォルトの名無しさん:2007/04/22(日) 18:13:56
python2.5だか3000だかでは、

hogedict[k].append(v) if k in hogedict else hogedict[k] = [v]

って書けるようになるの?


217デフォルトの名無しさん:2007/04/22(日) 18:26:04
以下のhgというスクリプトをコマンドプロンプトで単に「hg」と入力するだけで起動させるにはどうすればいいですか?

hg
---------
#!C:\applications\Python25\python.exe

from mercurial import commands

commands.run()
---------
218デフォルトの名無しさん:2007/04/22(日) 18:26:35
>>216
elseの右に文は無理
219デフォルトの名無しさん:2007/04/22(日) 18:27:28
>>213
∀key∀table∈dict((key in table.keys()) == (key in table))
220デフォルトの名無しさん:2007/04/22(日) 18:29:25
>>207
table = {}
cur1 = conn.cursor()
cur1.execute("SELECT key FROM table1")
for key, in cur1.fetchall():
 cur2 = conn.cursor()
 cur2.execute("SELECT val FROM table1 WHERE key = '%s'" % key)
 table[key] = [x for x, in cur2.fetchall()]

sqliteでしか試してないんで、動かなかったらごめん
221デフォルトの名無しさん:2007/04/22(日) 18:30:21
>>216
... else hogedict.__setitem__(k,[v])なら可能だけど明らかにspaghetti
222デフォルトの名無しさん:2007/04/22(日) 18:34:56
wikiの問題集ちょっと解いたので、興味ある人いたら見て見て下い
http://python.rdy.jp/wiki.cgi?page=%CC%E4%C2%EA%BD%B8

(あと、カテゴリ分けをちょっと変更
223デフォルトの名無しさん:2007/04/22(日) 18:51:11
ラムダとかコンプリヘンションって何のためにあるの?
読みにくくなってメリットないと思うけど。
224デフォルトの名無しさん:2007/04/22(日) 18:53:47
つ 夢
225デフォルトの名無しさん:2007/04/22(日) 18:55:50
>>223
読みにくくなるときは使わなければいいんですよ
226デフォルトの名無しさん:2007/04/22(日) 18:59:40
コンプリヘンションていうのは数学で言う、関数の像になってて、それが分かると読みやすいことこの上ない。
227デフォルトの名無しさん:2007/04/22(日) 19:02:18
要は単なるリテラル表現でしょ。別に特別な物じゃない。
228デフォルトの名無しさん:2007/04/22(日) 19:41:43
wikiの問題集をみて思った事、問題と答えが一緒に書いてあるのって変
問題と答えを別けた方がいいような気がする。
229デフォルトの名無しさん:2007/04/22(日) 19:50:31
問いを小項目にして、outlineを付けてみた。こんな感じでどう?
230デフォルトの名無しさん:2007/04/22(日) 19:51:17
女がでているからとかいう理由じゃないが
表紙で選ぶなら
実践Python〜文字列操作からWebアプリケーション開発まで
を買うな
231デフォルトの名無しさん:2007/04/22(日) 19:53:23
表紙で選ぶなよw
232デフォルトの名無しさん:2007/04/22(日) 19:59:51
鼠や蛇や馬に比べれば女のほうが確かにマシだな
233デフォルトの名無しさん:2007/04/22(日) 20:01:43
俺はヘビの方が萌える
234デフォルトの名無しさん:2007/04/22(日) 20:09:03
メガネという点も+だな
235デフォルトの名無しさん:2007/04/22(日) 20:13:06
おしえてください!

python -m CGIHTTPServe
を実行したら止まらなくなっちゃいました><
止め方を教えてください
236デフォルトの名無しさん:2007/04/22(日) 20:40:01
>>207
setdefault は?
>>> lst = [("A", 1),("A", 2),("B", 1),("B", 3),("B", 4),("C", 1),("C", 3),]
>>> table = {}
>>> for k, v in lst:
...   table.setdefault(k, []).append(v)
>>> table
{'A': [1, 2], 'C': [1, 3], 'B': [1, 3, 4]}
237デフォルトの名無しさん:2007/04/22(日) 20:48:24
>235
コマンドプロンプト閉じる
238デフォルトの名無しさん:2007/04/22(日) 21:54:30
現場で役に立たなそうな奴ばっかりだな
239238:2007/04/22(日) 22:03:38
みんなごめんね☆

何か寂しくなっちゃって全然関係ないこと書き込みしちゃいました。

反省したので明日ボウズにしてきます。

(;_;)
240デフォルトの名無しさん:2007/04/22(日) 22:44:32
証拠写真うpれよ?w
241デフォルトの名無しさん:2007/04/22(日) 22:59:21
なりすましや騙りはキチガイへの第一歩だから気をつけろ。
ゴールデンウィーク前だからって気を抜かず仕事しろよ。
242241:2007/04/22(日) 23:09:30
みんなごめんね☆

何か寂しくなっちゃって全然関係ないこと書き込みしちゃいました。

自分の精神状態が不安なので、明日キチガイ病院に入院します。

(;_;)
243デフォルトの名無しさん:2007/04/22(日) 23:10:14
>>241-242
さっさと消えろクズ
244デフォルトの名無しさん:2007/04/22(日) 23:10:53
>>204
pygameが良い気がする。
mpegを読めるはず(試したことは無いです)。

245デフォルトの名無しさん:2007/04/22(日) 23:52:32
つまり

hogedict[k] = hogedict[k]+[v] if k in hogedict else [v]

とかなら書けるのかな。
なんか裏の処理(リストがappendではなく再生成?)で無駄が発生しそうな気がするけど。
246デフォルトの名無しさん:2007/04/22(日) 23:55:25
>236

それイイ(・∀・)ね。
247デフォルトの名無しさん:2007/04/23(月) 00:47:37
>>235
それ、結構最初はどきっとするんだけど
実はCtrl + Breakか何かで止められる。

…正確なキーを忘れてしまったがorz
248デフォルトの名無しさん:2007/04/23(月) 02:10:33
ドキッ!!PythonだらけのCtrl+Alt+Del大会
249デフォルトの名無しさん:2007/04/23(月) 04:50:39
どこかの誰かが欲しいって言ってたアブストラクトそのものみたいなのが出来つつある模様。
http://www.python.org/dev/peps/pep-3119/
250デフォルトの名無しさん:2007/04/23(月) 06:45:48
>>207

>>> import itertools
>>> records
({'val': '1', 'key': 'A'}, {'val': '2', 'key': 'A'}, {'val': '1', 'key': 'B'}, {'val': '3', 'key': 'B'}, {'val': '4', 'key': 'B'}, {'val': '1', 'key': 'C'}, {'val': '3', 'key': 'C'})
>>> dict([(key, [v[1] for v in vals]) for key, vals in (itertools.groupby(sorted([(r['key'],r['val']) for r in records]),lambda x: x[0]))])
{'A': ['1', '2'], 'C': ['1', '3'], 'B': ['1', '3', '4']}
>>>

スマートかどうかの判断は任せるよ。
251デフォルトの名無しさん:2007/04/23(月) 12:47:15
sortedが不要、itertools.groupbyの前の括弧が不要
252デフォルトの名無しさん:2007/04/23(月) 13:07:14
もとのSQLでORDERED BYしない限りsortedは要るだろ。sortedなしでもうまくいくのは単なる幸運じゃないの?
253デフォルトの名無しさん:2007/04/23(月) 13:09:09
reStructuredTextを使ってみたのですが、日本語文章で強調(strong)する方法がわかりません。
「あい **うえ** お」だと「あい <strong>うえ</strong> お」となることは確認したのですが、
これだと半角空白が必要なため、日本語文章では使えません。
みなさんどうしていますか。
254デフォルトの名無しさん:2007/04/23(月) 15:14:32
>>252
あ、ごめ、そうだね。groupbyが思ってたのと違った(ぉぃ
255207:2007/04/23(月) 18:22:52
遅れましたが回答いただいた方ありがとうございます。
>>236のsetdefaultがよさげなのでこれを使うことにします。
ありがとうございました。
256デフォルトの名無しさん:2007/04/23(月) 18:36:38
>>253
あい¥ **うえ**¥ お
257253:2007/04/23(月) 21:40:36
>>256
ありがとう!あいしてる。
258デフォルトの名無しさん:2007/04/23(月) 22:23:17
まじで?!
259デフォルトの名無しさん:2007/04/23(月) 22:54:03
アッー!
260デフォルトの名無しさん:2007/04/23(月) 23:06:12
月曜日なのに徹夜モード、どうするよ〜♪
261デフォルトの名無しさん:2007/04/24(火) 00:29:51
>260
もってけ!! ぱいそん

とんこつも忘れるなw
262デフォルトの名無しさん:2007/04/24(火) 10:46:06
Five (+ 1) Things I Hate About Python (and then five more)
http://sayspy.blogspot.com/2007/04/five-1-things-i-hate-about-python-and.html
263デフォルトの名無しさん:2007/04/24(火) 11:52:49
ぶっちゃけそれ系のブログからpythonの新ネタが∂とは思えない
264デフォルトの名無しさん:2007/04/24(火) 12:42:32
>>261
( =ω=.) ぅぅぅぅぅぅぅうぅぅぅぅぅぅううぅぅぅぅうううぅぅぅううううううぅぅうううぅうううううぅ

劇中でPythonネタやってくれないかなあw
265デフォルトの名無しさん:2007/04/24(火) 12:53:50
ないだろ、常識的に考えて……

OPのあれがバカ歩きになってるくらいは期待したいが
266デフォルトの名無しさん:2007/04/24(火) 13:22:01
それいいな。MADムービー作ってw
267デフォルトの名無しさん:2007/04/24(火) 13:28:59
オタはRubyとかPerlとか使えって.
キモいからPython使わなくていいよ.
268デフォルトの名無しさん:2007/04/24(火) 13:53:51
何でプログラム書きってこういうヘンな人が多いんだろう。
ヘンだからなるのか、なったからヘンになったのか…。
どっちにしてもキモいキモい。頼むから机の上に人形とか置かないで。
269デフォルトの名無しさん:2007/04/24(火) 14:01:50
Perlは作者がアニオタ。
Rubyは会長がオタ。
270デフォルトの名無しさん:2007/04/24(火) 14:04:11
>>268
だそうだ。諦めろw
271デフォルトの名無しさん:2007/04/24(火) 14:05:29
>>270
アニオタ死ね.もう来るな.
272デフォルトの名無しさん:2007/04/24(火) 14:10:55
ていへんだていへんだ
273デフォルトの名無しさん:2007/04/24(火) 14:17:52
なんでアニメの話だってわかるんだ?
274デフォルトの名無しさん:2007/04/24(火) 14:23:12
仕事しろよアニオタ
ヒキコモリなら深夜のアニメに備えて寝ろや(wwwww
275デフォルトの名無しさん:2007/04/24(火) 15:36:13
なんでアニメの話だってわかるんだ?
なんでアニメの話だってわかるんだ?
276デフォルトの名無しさん:2007/04/24(火) 15:37:44
推理力
277デフォルトの名無しさん:2007/04/24(火) 15:48:54
初心者相手に鍛えられたエスパー能力を
こんなところで発揮しなくても
278デフォルトの名無しさん:2007/04/24(火) 15:55:26
わからない方もいらっしゃるようなので
279デフォルトの名無しさん:2007/04/24(火) 19:17:25
larry wallがアニオタだったらちょっと怖いんだけど・・・?
autrijusのことかなぁ・・・
280デフォルトの名無しさん:2007/04/24(火) 19:24:26
Larry WallはプログラミングPerlの日本語版の序文かなんかで
アニメやら日本好きをアピールしてた気が・・・
って、とてもスレ違いだが
281デフォルトの名無しさん:2007/04/24(火) 20:05:18
Larryがアニメ好きなのはよく知られた話
ラクダ本ではウテナとかるろうに剣心がお気に入りって言ってた
最近じゃあずまんがのちよちゃんかわいいとか言って小飼氏に黙殺されて(ry

というわけでGuidoに親近感沸くようなエピソードないですか
282デフォルトの名無しさん:2007/04/24(火) 20:07:56
いつになったらvs2005build版になるんだ
どうせだったらvs6のままにしとけばいいのに。

extension作るのめんどくせー
283デフォルトの名無しさん:2007/04/24(火) 20:32:50
>>281
いつだったか、「うる星やつら」のラムちゃんのTシャツ着て現れたこともあるって聞いたけど。
284283:2007/04/24(火) 20:33:30
ああすまん、残念ながらGuidoの話じゃなくて、俺のもLarryの話ねw
285デフォルトの名無しさん:2007/04/24(火) 20:34:28
ソフトウェアの世界じゃアニオタなんて日常茶飯事
何いちいち驚いてるの?お前らだってアニオタなんだろ?
286デフォルトの名無しさん:2007/04/24(火) 20:34:54
Guidoちゃんの面白エピソードまだ〜?
287デフォルトの名無しさん:2007/04/24(火) 20:37:39
てか世間的には、プログラミングに耽溺する人生自体が、
アニメに耽溺するのと同じくらいヤヴァイからなぁ。

アニメは「誰だって観たことはある」ぶんだけまだフィーリングは理解されるが、
プログラミングは多くの人間にとって、根っこのところから正体不明だし、マッドな雰囲気あるからな。
288デフォルトの名無しさん:2007/04/24(火) 20:41:11
浮いてるぞお前
289デフォルトの名無しさん:2007/04/24(火) 20:44:03
ヲタは総力を挙げてGuido氏をアニメに染めてくれ
290デフォルトの名無しさん:2007/04/24(火) 21:52:23
>>288
プログラマは浮いてるんだよ。俺は楽しいからいいけど。
291デフォルトの名無しさん:2007/04/24(火) 21:54:18
こんな馬鹿ばっかのスレだったっけ?
292デフォルトの名無しさん:2007/04/24(火) 22:10:35
高校生かなんかだろ
293デフォルトの名無しさん:2007/04/24(火) 22:17:26
昭和生まれとかカッコ悪いしwww
294デフォルトの名無しさん:2007/04/24(火) 22:39:33
>>291
お前が死ねば多少は平均も上がるかもね
295デフォルトの名無しさん:2007/04/24(火) 22:51:42
・・・
296デフォルトの名無しさん:2007/04/24(火) 23:31:56
気付けば平成19年か
宿題スレの質問者が全部平成生まれって時代がすぐに来るな
297デフォルトの名無しさん:2007/04/24(火) 23:34:14
TKinterのライセンスってどこに書いてあるの?
このモジュールを有償ソフトに組み込んでもいいかどうか知りたいんだけど。。。

Pythionに標準でついてくる以上、Pythonのライセンスが適用されるから、有償配布でもOKて考えていいのかな
from random import sample
def bubblesort(data,datalength):
SOEJI = datalength - 1
low = 1
high = SOEJI

while low != (SOEJI-1):
while high != (low+1):
if data[high-1] > data[high]:
w = data[high-1]
data[high-1] = data[high]
data[high] = w
high -= 1
low += 1
return data

datalength = 10
datarange = 99
data = sample(xrange(0,datarange),datalength)
print "範囲0-",datarange,"の",datalength,"語を生成:\n",data,"ソート前"
bubblesort(data,datalength)
print data,"ソート後"
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
範囲0- 99 の 10 語を生成:
[91, 8, 69, 78, 66, 16, 24, 0, 57, 60] ソート前
Traceback (most recent call last):
File "python/04_bubblesort", line 25, in <module>
bubblesort(data,datalength)
File "python/04_bubblesort", line 13, in bubblesort
if data[high-1] > data[high]:
IndexError: list index out of range
↑もうのーみそスパークしそうですどうしてアウトオブレンジなのかヒントをくださいおねがいします!!!!パイソンは2.5.1です
299デフォルトの名無しさん:2007/04/25(水) 00:16:31
取りあえず空白いれろや
300デフォルトの名無しさん:2007/04/25(水) 00:29:19
とりあえず、highの値を追うと
9から単純にひとつづ減って -10になってエラーになる。
301デフォルトの名無しさん:2007/04/25(水) 01:53:23
302デフォルトの名無しさん:2007/04/25(水) 01:55:48
こういうつもりらしい。これはヒドイw

from random import sample
def bubblesort(data,datalength):
  SOEJI = datalength - 1
  low = 1
  high = SOEJI

  while low != (SOEJI-1):
    while high != (low+1):
      if data[high-1] > data[high]:
        w = data[high-1]
        data[high-1] = data[high]
        data[high] = w
      high -= 1
    low += 1
  return data

datalength = 10
datarange = 99
data = sample(xrange(0,datarange),datalength)
print "範囲0-",datarange,"の",datalength,"語を生成:\n",data,"ソート前"
bubblesort(data,datalength)
print data,"ソート後"
303デフォルトの名無しさん:2007/04/25(水) 02:03:59
これは宿題か何かかなぁ
304デフォルトの名無しさん:2007/04/25(水) 02:13:54
整理してみた。

def bubblesort(data):
  high = data.size()-1
  for low in range(data.size()-2):
    while high > (low+1):
      if data[high-1] > data[high]:
        data[high], data[high-1] = data[high-1], data[high]
      high -= 1

  return data


。。。。。。。。。。まあ、がんばれ
305デフォルトの名無しさん:2007/04/25(水) 02:42:03
ポイントはhighを代入する場所が間違ってることなんだが、ところどころlow highの値の判定条件もズレてるっぽい。

def bubblesort(data):
  n = len(data)
  for low in range(n-1):
    high = n - 1
    while high > low:
      if data[high-1] > data[high]:
        data[high], data[high-1] = data[high-1], data[high]
      high -= 1
  return data

オリジナルのコードで言うとlow += 1の次の行にhigh = SOEJIを入れて、highの値を元に戻せば、たぶんoutofrangeは
起こらなくなるが、添え字がなんか怪しいので、多分端の辺りがソートできないと思う。

ところで、>>304のruby使いにはだまされた
306デフォルトの名無しさん:2007/04/25(水) 02:45:17
>>303
宿題でもなきゃバブルソートなんてやらんわな
307304:2007/04/25(水) 02:57:48
あ、そういや配列サイズは array.size() じゃなくて len(array) か。失礼
308デフォルトの名無しさん:2007/04/25(水) 03:05:49
添字が怪しい以前に、そもそも一回しかスキャンしてないから
雀の涙ぐらいの部分しかソートされない。。。。

バブルソートなら、スキャン中に一度でも入れ替えが発生したら
もう一度最初からスキャンしなきゃ。

def sort(data):
  n = len(data)
  f = True
  while f==True:
    f = False
    for i in range(n-1):
      if data[i] > data[i+1]:
        data[i], data[i+1] = data[i+1], data[i]
        f = True
  return data


309デフォルトの名無しさん:2007/04/25(水) 03:09:52
おっと、こんな所に宿題スレッドがあるじゃないか。

Python の宿題ここで答えます Part 1
http://pc11.2ch.net/test/read.cgi/tech/1153585095/
310デフォルトの名無しさん:2007/04/25(水) 08:04:59
>>282
俺はもっぱら MinGW (GCC) で拡張モジュールを作ってる。
どの Python のバージョンでも MinGW は同じバージョンでいいから楽だよ。
311デフォルトの名無しさん:2007/04/25(水) 12:52:15
ご存知の方がいたら教えてください。
CherryPyや、Colubridを使って、簡単なWebアプリケーションを作っています。
その中で、テンプレートファイルを格納したディレクトリの所在をうまく隠すにはどうすればいいか
考えていたら知恵熱がでてしまいました。とりあえず、今は、↓のように書いています。

<hoge.py>
(略)
lookup = TemplateLookup(
directories=[os.path.join(os.path.join(os.path.dirname(__file__)), "template")],
input_encoding='utf-8',
output_encoding='utf-8')

これを、「hoge.pyと同じディレクトリのtemplateという名前のディレクトリにテンプレート
ファイルを格納する」という前提を設けた上で、例えば、以下のように書ければいいなと思っています。

<hoge.py>
from template_loader import lookup
(略)
template = lookup.get_template("index.html")

importしたモジュールの__file__の値がとれれば簡単にできそうなんですが、
そのようなロジックはどうすればできるのでしょうか?
#perlのcallerのようなものがあればできるかなあと思って探してみたんですが、
#辿り着けませんでした。
312デフォルトの名無しさん:2007/04/25(水) 12:58:48
>>311
sys._getframe
313311:2007/04/25(水) 14:04:10
>>312

sys._getframe(1).f_globals["__file__"]でできました。
ありがとうございました。
314デフォルトの名無しさん:2007/04/25(水) 14:40:32
>>313
そのコードがあるクラスからサブクラスを導出すると悲しくなるから気をつけて
当然フレームの位置が変わる
315デフォルトの名無しさん:2007/04/25(水) 19:45:38
print u"\u306c\u308b\u307d"
316デフォルトの名無しさん:2007/04/25(水) 19:53:19
これはすごいハッカーがあらわれましたよ。
317デフォルトの名無しさん:2007/04/25(水) 20:15:25
print u"\uff1e\uff1e\uff13\uff11\uff15\u3000\u30ac\u30c3"
318デフォルトの名無しさん:2007/04/25(水) 20:54:56
また入門書か
2.5対応は他にないからセールスポイントになりそうだが・・・

速効! Pythonプログラミング バージョン2.5対応
http://www.shuwasystem.co.jp/cgi-bin/detail.cgi?isbn=978-4-7980-1641-2
319デフォルトの名無しさん:2007/04/25(水) 21:00:07
誰が買うんだろう。
320デフォルトの名無しさん:2007/04/25(水) 21:04:29
だんだんVBっぽくなってきたな。w
あれも入門書ばかりでちゃんとした本がない。
321デフォルトの名無しさん:2007/04/25(水) 21:10:51
金目的でコペピしたような本ばっかりだからなぁ。
322デフォルトの名無しさん:2007/04/25(水) 21:11:31
金目当てじゃなかったらPDFで配るだろwwwwwwwww
323デフォルトの名無しさん:2007/04/25(水) 21:14:26
入門より上のレベルの本にどの程度需要があるのか掴み難いってのもあるのかな?
324318:2007/04/25(水) 21:16:09
あ、Pythonプログラミング入門も2.5に対応してるのかな?
まあどっちでもいいか・・・
325デフォルトの名無しさん:2007/04/25(水) 21:16:14
日本では、Java, C++ から逃亡し、Ruby でもついて行けず、Python に流れ着いた、という人が 99% だろう、という見込みがあるから、似たような入門書ばかりを出すのだと思うよ。あなたたちは残りの 1% だとしても、現実にはこの通りだから。
326デフォルトの名無しさん:2007/04/25(水) 21:18:12
日本語でおk
327デフォルトの名無しさん:2007/04/25(水) 21:25:54
>>325
偵察に来てるRuby儲もいますが何か
328デフォルトの名無しさん:2007/04/25(水) 21:38:17
TurboGearやら携帯関係じゃないスタンダードな和書なら
結局みんpy実pyローカスの、それとこれのどれがいいんだか
329デフォルトの名無しさん:2007/04/25(水) 21:39:28
結局は初めてのPythonじゃね?
330デフォルトの名無しさん:2007/04/25(水) 21:54:24
>>329
本で済ますならあのくらいのボリュームは読まないと駄目だね。
もちろんオンラインで済むという人もいるだろうけど、薄っぺらい入門書読んだ程度の
人は信用できないよ。(俺が信用しなくても特にどうということは無いだろうけどw)
331デフォルトの名無しさん:2007/04/25(水) 22:18:56
俺は本より実際に動かして覚える

だから python と打つだけで
インタラクティブな環境が上がるのは嬉しい
332デフォルトの名無しさん:2007/04/25(水) 22:28:41
くだらん本とか読むより、自分で頭ひねって手を動かして
いろいろ作って公開して叩かれたほうがスキル上がると思う。
333デフォルトの名無しさん:2007/04/25(水) 22:37:13
>>332
それができないから本を読むんだろ
334デフォルトの名無しさん:2007/04/25(水) 23:16:27
ライブラリのコードとドキュメントがあれば、もうおなかいっぱいです。

‥‥‥新しい言語機能についてけなかったりするけど。
335デフォルトの名無しさん:2007/04/25(水) 23:18:32
おれはPythonのコードを読むからドキュメントすら必要ありませんが何か?
336デフォルトの名無しさん:2007/04/25(水) 23:19:31
入門の話題はつまらねーよー
337デフォルトの名無しさん:2007/04/25(水) 23:34:38
スレタイが「お勉強」だからなあ

かといって別スレ立てて閑古鳥だったらカナシス
338デフォルトの名無しさん:2007/04/25(水) 23:50:53
「Python?ああ、海外で人気の、日本語に難のある…」

↑まだこんなイメージ?
339デフォルトの名無しさん:2007/04/25(水) 23:55:02
入門書もいいけど
もっと実用的な問題を解く本もあっていいと思う

あとPython Cookbook早く出して欲しい
340デフォルトの名無しさん:2007/04/25(水) 23:57:52
でねえよバカ(ww
341デフォルトの名無しさん:2007/04/26(木) 00:18:06
>>339
ttp://www.oreilly.com/catalog/pythoncook2/
これじゃご不満ですか?
342デフォルトの名無しさん:2007/04/26(木) 00:22:42
いい加減紙媒体じゃないと勉強できない癖を直した方がいいと思う
343デフォルトの名無しさん:2007/04/26(木) 00:24:20
まあぶっちゃけこのスレで高評価を得るような本は一般的には無用だよな(wwwww
344デフォルトの名無しさん:2007/04/26(木) 00:26:58
この期に及んで
「Pythonやるなら英語くらいできなくっちゃね」とか「おら英語は読めんずら」とか
誰か言うのを期待してますか
345デフォルトの名無しさん:2007/04/26(木) 00:30:47
>>344
>Pythonやるなら英語くらいできなくっちゃね

これは真実だよな.
346デフォルトの名無しさん:2007/04/26(木) 00:31:02
義務教育で教えてるんだから英語読めない日本人なんて少ないだろ
347デフォルトの名無しさん:2007/04/26(木) 00:32:17
kuma-
348デフォルトの名無しさん:2007/04/26(木) 00:48:25
>>346
話せないのはともかくとして、読めないってのはあり得ないよな。
てか、Pythonの公式ドキュメントの充実っぷりは異常。
349デフォルトの名無しさん:2007/04/26(木) 05:55:24
Pythonの宿題スレはありますか?
350デフォルトの名無しさん:2007/04/26(木) 06:18:02
あります
351デフォルトの名無しさん:2007/04/26(木) 06:28:08
352デフォルトの名無しさん:2007/04/26(木) 23:33:03
VC++でC++にPython2.5を組み込んでるんだけど、
pythonは標準インストーラでインストールしたままの状態なんだけどPyMarshal_系の関数の挙動があやしくない?

PyMarshal_GetLongとか使うと
実行時にメモリ参照エラーが発生するんだど、
pythonのソースからmarshal.c を持って来て、
プロジェクトに直接取り込むとうまく動くんだよね
353デフォルトの名無しさん:2007/04/27(金) 00:27:39
>>352
VC++のバージョンは?
354デフォルトの名無しさん:2007/04/27(金) 02:57:47
>> 353
Visual Studio 2005 でつ

てゆかね、
いくつかの pyc ファイルを独自形式で1つのファイルに固めておいて、実行時にメモリ上に pyc を展開して、それをインポートさせたいのさ。

で、手順としては
1. とりあえず(自前のライブラリを用いて)バッファ (unsigned char 配列)上にpycバイナリを展開する
2. FILE* fp=tmpfile() で一時ファイルをつくり、そこにバッファをコピーする
3. 上記 fp を PyMarshal_ReadLongFromFile に食わせてマジックナンバーを読み取る
4. 残りのバイト列を  PyMarshal_ReadLastObjectFromFile で読み取り、得られた PyObject を PyImport_ExecCodeModule でインポートしてやる

(手順 2: ここで、メモリ上のバッファを直接 FILE ポインタに関連づけられたら一時ファイルをつくらなくてもいいんだけど。。。)
(手順 3, 4:  Pythonソースコードの run_pyc ナントカって関数からパクってきた)
って感じでやってるんだけど、もちっと単純に処理できないだろうか。
355デフォルトの名無しさん:2007/04/27(金) 09:56:56
PEP 302 - New Import Hooks を使った方が簡単なのではと想像。
356デフォルトの名無しさん:2007/04/28(土) 00:12:33
python25.dll が msvcr71.dll、
exe 側が msvcr80.dll を使っている。
で exe で作った fp は msvcr80.dll が管理してるので
msvcr71.dll (PyMarshal_ReadLongFromFile を通して)
に渡すことは出来ない。
357デフォルトの名無しさん:2007/04/28(土) 07:25:17
ああああああああああああああ
言われてみればその通りだああああ

情報サンクスorz >>356
358デフォルトの名無しさん:2007/04/28(土) 07:28:27
そういえば>>355みて思ったんだけど、
python25.msi とか python251.msi とかフルインストールしても
Tools/Freeze なんてフォルダできないよね?
ソースにはあったけど。

359デフォルトの名無しさん:2007/04/28(土) 12:55:24
>>357
ああ、ごめん。
そういう意味で>>353を書いたんだが、分かんないよな…orz
360デフォルトの名無しさん:2007/04/28(土) 18:18:32
pyQtとwxPythonってどっちのがかんたん?
361デフォルトの名無しさん:2007/04/28(土) 19:32:07
>>360
wxPython
362デフォルトの名無しさん:2007/04/28(土) 19:42:45
>>360
pyQt
363デフォルトの名無しさん:2007/04/28(土) 20:01:56
>>360
wxPython
364デフォルトの名無しさん:2007/04/28(土) 20:09:55
>>360
wxPython
365デフォルトの名無しさん:2007/04/28(土) 20:47:06
>>360
wxPython
366デフォルトの名無しさん:2007/04/28(土) 20:52:45
まったくおまえらと来たら。
pyQtとwxPythonの利点と欠点を3行以内でお願い。
367デフォルトの名無しさん:2007/04/28(土) 20:56:03
wxPython:
  使いやすい
  分かりやすい
  覚えやすい

pyQt:
  使いにくい
  分かりにくい
  覚えにくい
368デフォルトの名無しさん:2007/04/28(土) 20:57:07
>>287
pyGtkは??
369デフォルトの名無しさん:2007/04/28(土) 21:32:43
Tkinterが最強だよな。
370デフォルトの名無しさん:2007/04/29(日) 00:27:07
pyQtの存在理由は?
371デフォルトの名無しさん:2007/04/29(日) 01:16:03
Adobe、Flexをオープンソースに
http://www.itmedia.co.jp/news/articles/0704/26/news049.html

これでデスクトップのGUIもウェブのGUIも同じように開発できるなら
TkinterやpyGTKやpyQtを勉強する意味はあるのでしょうか?
誰か教えてください。
372デフォルトの名無しさん:2007/04/29(日) 01:19:04
同じように開発できる≠同じことができる
373デフォルトの名無しさん:2007/04/29(日) 01:29:22
転載

952 名前:デフォルトの名無しさん[sage] 投稿日:2007/02/15(木) 10:47:56
Flexは?

Hybridizing Java
http://www.artima.com/weblogs/viewpost.jsp?thread=193593
> Thus, you can create an application in any language you prefer,
> even a dynamic language like Python or Ruby, and use Flex to build
> a beautiful UI.

985 名前:デフォルトの名無しさん[] 投稿日:2007/02/16(金) 05:18:12
実際にFlexとTurbogearsを使ってウェブアプリのGUIを作っているデモ:
http://www.adobe.com/devnet/flex/articles/eckel_video.html

http://www.artima.com/weblogs/viewpost.jsp?thread=193593
によると、Flex使ったら綺麗なGUIがウェブアプリとデスクトップアプリ両方
でできるみたいだね。一つのツールを勉強すれば環境を無視してどこでも使える
のは魅力。
374デフォルトの名無しさん:2007/04/29(日) 01:29:51
wxPython 関数名が大文字からはじまる
pyQt 互換性 ライセンス
共通 WindowsとXで表示したときで微妙に違う マニュアルがPython用じゃなくC++ベース
気になる点
375デフォルトの名無しさん:2007/04/29(日) 01:34:24
なんだ Flex の宣伝屋か
376デフォルトの名無しさん:2007/04/29(日) 02:39:08
SilverLightの動向にも注目したいね。
377デフォルトの名無しさん:2007/04/29(日) 02:55:35
・シンプルなGUIはcgi
・それ以上のGUIはflex
にすれば、現在デスクトップのGUIを勉強するのは無駄?

Develop Web applications for local use
http://www-128.ibm.com/developerworks/library/wa-localwebsrv.html
378デフォルトの名無しさん:2007/04/29(日) 03:15:09
俺は余計なデーモン上げるの嫌だからスタンドアローンアプリを作り続けるよ。
あと Python スレな。
379デフォルトの名無しさん:2007/04/29(日) 03:20:47
んなこたない。
Webアプリは一般のWebブラウザのウィンドウ内でしか実行できないというだけでも限界があるだろ。
例えば、
・フォルダ内の画像ファイルアイコンを複数選択してウィンドウにドラッグ&ドロップすれば画像データベースが作成される。
・そのデータの一覧リストの各行をドラッグ&ドロップすることで簡単に順番が変更できる。
・任意の大きさに拡大・縮小された画像が、スライダーの動きに合わせてリアルタイムに表示される。
こういうアプリがWebベースで簡単に作れるか?
380デフォルトの名無しさん:2007/04/29(日) 03:23:25
>>378
20年くらい前は,マルチウインドウエンジンが
「余計なデーモン」以上の大物だったわけだが。
381デフォルトの名無しさん:2007/04/29(日) 03:36:35
>>380
時代は変わったって事だね。

ウェブアプリがデスクトップアプリを駆逐する様な時代は
やってこないと思うけどね。
382デフォルトの名無しさん:2007/04/29(日) 03:38:58
>>379
フォルダからのドラドロは無理だけど、それ以外はWebアプリでもできる.
383デフォルトの名無しさん:2007/04/29(日) 03:50:33
「Webアプリがデスクトップアプリを駆逐する前に381が駆逐される」に100万タプル
384デフォルトの名無しさん:2007/04/29(日) 03:51:15
>>381
来るかも知れないよ
385デフォルトの名無しさん:2007/04/29(日) 03:52:59
そうかもしれないね。そんな事になったら目でピーナッツ噛むよ。
386デフォルトの名無しさん:2007/04/29(日) 03:54:20
まあ、まともな形で実現したらいいなぁとは思う。
387デフォルトの名無しさん:2007/04/29(日) 03:55:24
388デフォルトの名無しさん:2007/04/29(日) 10:20:03
適当なアプリケーション作ったので公開して叩かれたいんだけど、
宣伝するのに適当なとこ教えてください。
389デフォルトの名無しさん:2007/04/29(日) 10:24:28
>>388
ここで宣伝して叩かれればいいんでは。
メーリングリストなら python-ml-jp とか。
PyJUG のホームページに掲載されるニュースとして投稿するとか。
390デフォルトの名無しさん:2007/04/29(日) 13:13:00
>>388
チラシの裏に書いて家の前にでも貼っとけ。
391デフォルトの名無しさん:2007/04/29(日) 13:17:31
>>390
自分が作れないからってひがむなよwww
392デフォルトの名無しさん:2007/04/29(日) 13:21:53
自分で「適当なアプリケーション」なんて言ってるものを宣伝されてもうざいだけだろ。
それとも謙遜なのか?
393デフォルトの名無しさん:2007/04/29(日) 13:27:52
そんなことより早くコードを見せてくれ。野次馬根性が疼いて仕方がない。
394デフォルトの名無しさん:2007/04/29(日) 13:31:01
>392
本人は「叩かれたい」らしいから仕方ないだろ。
395デフォルトの名無しさん:2007/04/29(日) 13:34:34
>>388
Mの方ですか
396デフォルトの名無しさん:2007/04/29(日) 14:14:31
fj.sources
397デフォルトの名無しさん:2007/04/29(日) 14:17:34
ゴチャゴチャ言ってないでさっさと貼れ
398デフォルトの名無しさん:2007/04/29(日) 20:18:45
Programming Pythonの洋書読んだひとっていいる?
399デフォルトの名無しさん:2007/04/29(日) 20:38:46
はい
400デフォルトの名無しさん:2007/04/29(日) 20:43:42
>>398
初版を読んだよ。
401デフォルトの名無しさん:2007/04/29(日) 20:45:46
普通原書を読むだろ
402デフォルトの名無しさん:2007/04/29(日) 22:10:28
ActivePythonって何ですか?
>>191のサイトには載ってないようですが。
403デフォルトの名無しさん:2007/04/29(日) 22:14:53
>>402
抱き合わせ商法のことです
404デフォルトの名無しさん:2007/04/29(日) 22:29:44
>>401
日本語とかあり得ないよな。糞訳ばっかだし。
405デフォルトの名無しさん:2007/04/29(日) 22:59:59
>>402
ttp://www.activestate.com/products/activepython/more_information.plex
主なところでwin32allっていうモジュールが添付してある。
で、それを使うとwin32APIへのアクセスが容易にできたり
COMサーバやコンポーネントが作れたりする。WSHに食わせたりもできる。
何言ってるかわかんなかったら普通のPythonでまったく問題なし。
406デフォルトの名無しさん:2007/04/29(日) 23:07:47
Python.NET
407デフォルトの名無しさん:2007/04/29(日) 23:31:30
>>405
かろうじてwshに喰わせられるってトコだけは分かりました。
追加質問で申し訳ないのですが、過去ログも含めほとんど話題に出ないという事は、
皆さんwshからは利用されていないという事なんでしょうか?
408デフォルトの名無しさん:2007/04/29(日) 23:32:47
うんそうだね
409デフォルトの名無しさん:2007/04/29(日) 23:40:36
違うよ、ウソはいけないよ
410デフォルトの名無しさん:2007/04/29(日) 23:46:41
wshのスレでは結構話題に(ry
411デフォルトの名無しさん:2007/04/30(月) 01:51:02
Pythonで.htaを使ってアプリ作ったことある人いる?

JavaScriptのせいでopenが使えなくて、何にも出来ないんだけど...
回避するテクニックってある?
412デフォルトの名無しさん:2007/04/30(月) 02:19:27
あると思う?
413デフォルトの名無しさん:2007/04/30(月) 02:55:02
>>411
PythonでHTAは試したことないけど、
とりあえずJScriptからファイル操作は可能。
ttp://itpro.nikkeibp.co.jp/article/COLUMN/20060731/244742/
ただ凝ったことをするとCOMの知識が必要になってくるなど面倒もあるので
(ドキュメントを探すのも結構大変)
ActivePython+HTAを試してみるのがいいと思う。
414デフォルトの名無しさん:2007/04/30(月) 08:13:53
延々調べ中・・・
Win32 Extensions2.5(pywin32-210.win32-py2.5.exe)を入れたらwshで使えるって事ですよね?
コマンドラインで"cscript hoge.pys"とやると、PythonCOM Server policyがロードされてない
とか何とかエラーになるんですが。
415デフォルトの名無しさん:2007/04/30(月) 10:12:49
>>414
# test.pys
import os
WScript.Echo(os.name)
これを foobar.pys とでもして cscript foobar.pys してもエラーになる?

考えられるのはWSHのスクリプトエンジンとして
Python(+PyWin32)が登録されていないとか。
(ActivePythonの場合はインストール時に登録してくれる模様)
登録する方法についてはドキュメントを探すか、pyscript.py のソースを参照。

あと、IEのスクリプトエンジンとしてPythonを使う場合は(HTAも同様)
ttp://www.python.jp/Zope/whatsnew/Win32Problem
という脆弱性があるので覚悟の上で使用すること。
(最新版のデフォルトでは使えないようになっているはず)
416デフォルトの名無しさん:2007/04/30(月) 11:17:44
win32allとPyWin32って同じモノだよなぁ。でもビルドNoがえらく離れてるし・・・うーん
運用に覚悟が必要とまでなると、シロートの手に余るし、流石に少し腰が引けてきた。
>>415
仰るとおり何か登録作業が必要なんだと思います。もう少し悩んでみます。

| C:\Python25>cscript foobar.pys
| Microsoft (R) Windows Script Host Version 5.6
| Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
|
| pythoncom error: PythonCOM Server - The 'win32com.server.policy' module could no
| t be loaded.
| <type 'exceptions.ImportError'>: No module named win32com.server.policy
| pythoncom error: CPyFactory::CreateInstance failed to create instance. (80004005
| )
| CScript エラー: スクリプト "C:\Python25\foobar.pys" のスクリプト エンジン "Pytho
| n" が見つかりません。
417デフォルトの名無しさん:2007/05/01(火) 10:45:43
そして敗北 orz
おとなしくVBScriptかJScriptの資料を探してこよう。
418デフォルトの名無しさん:2007/05/01(火) 15:10:35
python で統計処理(& 線形回帰)をしてて
http://www.nmr.mgh.harvard.edu/Neural_Systems_Group/gary/python/
を使ってます。

だいたいうまく動いているんですが、あるデータを処理するときに

File "./my-script.py", line 176, in calc
regress = stats.linregress( self.minx, self.miny )
File "/hoge/lib/python/stats.py", line 247, in __call__
return apply(self._dispatch[type(arg1)], (arg1,) + args, kw)
File "/hoge/lib/python/stats.py", line 935, in llinregress
z = 0.5*math.log((1.0+r+TINY)/(1.0-r+TINY))
ValueError: math domain error

というのを食らいます。
これってコードのバグっていうより多分 r が小さすぎるとか
そういうデータの性質に起因してるんですよね...きっと.

(大量のデータを食わせて数時間計算したあとの特定の場所で
食らっているので,どのようなデータが原因なのかは分かってません)
419デフォルトの名無しさん:2007/05/01(火) 15:42:13
負の数の対数を取ったとかじゃね?
420デフォルトの名無しさん:2007/05/01(火) 18:19:19
だいたいうまく計算して、だいたいこんな結論。
421名無しさん:2007/05/01(火) 21:41:08
>>418
出る例外がわかってるんだから捕捉して
どのデータで発生したか表示すりゃいいんじゃないの?
422デフォルトの名無しさん:2007/05/02(水) 05:13:30
import math
math.log(-1)で>>418と同じエラーがでたので、たぶん>>419が原因ぽ域がする・・・
rのオーダーがなにかでずれて1.0を超えたとかでは?

ところで、math.log(0)だとべつなエラーが出るのが奇妙
423デフォルトの名無しさん:2007/05/02(水) 08:28:28
こういう注意書きがあった。

http://www.python.jp/doc/2.4/lib/module-math.html#foot20345
> 注意: math モジュールは、ほとんどが実行プラットフォームにおける C 言語の数学ライブラリ関数に
> 対する薄いラッパでできています。例外的な場合での挙動は、 C 言語標準ではおおさっぱにしか定義
> されておらず、さらに Python は数学関数におけるエラー報告機能の挙動をプラットフォームの C 実装
> から受け継いでいます。その結果として、エラーの際 (およびなんらかの引数がとにかく例外的であると
> 考えられる場合) に送出される特定の例外については、プラットフォーム間やリリースバージョン間を
> 通じて有意なものとなっていません。例えば、 math.log(0) が -Inf を返すか ValueError または
> OverflowError を送出するかは不定であり、 math.log(0) が OverflowError を送出する場合において
> math.log(0L) が ValueError を送出するときもあります。 
424デフォルトの名無しさん:2007/05/02(水) 08:53:04
話が変わるけど>>423の訳文、下の原文に対応する部分がちょっとおかしいね。

原文:As a result, the specific exceptions raised in error cases (and even whether some
arguments are considered to be exceptional at all) are not defined in any useful cross-platform
or cross-release way.

「そのため、エラーの際に具体的にどの例外が起きるか、さらにはある引数がそもそもエラーと
みなされるか否かという点さえも、プラットフォーム間やバージョン間で有用な形では定義されて
いません。」ぐらいに意訳するのがいいんジャマイカ。
425デフォルトの名無しさん:2007/05/02(水) 13:34:50
>>422
log 0は-∞と定義できないこともないが、log -1はマジで定義されてないから
426デフォルトの名無しさん:2007/05/02(水) 14:23:27
>421
try: でひっかけて print してみました。

特に変なデータではないのですが(len 100 の float 列2つ),
とても直線度が高く,自乗回帰すると残渣とかが
非常に小さくなるようなデータでして
当該最小自乗回帰ルーチンの中では(結果として)
log の中が負になっていました。

うーむ...

計算誤差のせいかな... あとで計算式を追ってみます...
427デフォルトの名無しさん:2007/05/02(水) 15:32:09
>>425
定義はされてるが複素数だな。
428デフォルトの名無しさん:2007/05/02(水) 18:45:12
>>>from cmath import log
>>>log(-1)
3.1415926535897931j
>>>from math import e
>>>log(-e)
(1+3.1415926535897931j)
429デフォルトの名無しさん:2007/05/02(水) 19:00:06
虚数単位が j なところが工学っぽい
430デフォルトの名無しさん:2007/05/03(木) 17:16:25
pythonスクリプトでKidを使いたいのですが、Shift_JISのxhtmlテンプレートが読み込めなくて困っています。(python2.5, Kid 0.9.2)

--- hoge.kid ---
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"
      xmlns:py="http://purl.org/kid/ns#">
  <body>
    <h1>日本語</h1>
  </body>
</html>

--- hoge.py ---
import kid
kid.assume_encoding = 'shift-jis'
t = kid.Template(file='hoge.kid', encoding="shift-jis")
#=> xml.parsers.expat.ExpatError: not well-formed (invalid token)

s = open('hoge.kid').read().decode('shift-jis')
t = kid.Template(source=s, encoding="shift-jis")
#=> UnicodeEncodeError: 'ascii' codec can't encode characters in position 295-297: ordinal not in range(128)

s = open('hoge.kid').read().decode('shift-jis').encode('utf-8')
t = kid.Template(source=s, encoding="shift-jis")
#=> xml.parsers.expat.ExpatError: not well-formed (invalid token)

テンプレートである hoge.kid が shift-jis になっていることは確認しています。
どなたかお助けを。
431デフォルトの名無しさん:2007/05/03(木) 18:25:17
最後の例の encoding は shift-jis ではなくて utf-8 でしょ。
432デフォルトの名無しさん:2007/05/03(木) 22:03:16
それは「UTF-8で書けばちゃんと読むのに」という事だよね
そもそもXMLでの必須はUTF-8とUTF-16だけで他はオプションだから実装が対応していないだけでは?
encoding="Shift_JIS" の記述のままのファイルをutf-8に変換するだけではwell-formedになりようもないし
433デフォルトの名無しさん:2007/05/04(金) 16:32:15
日本語でおk
434デフォルトの名無しさん:2007/05/05(土) 13:50:37
クラス変数をクラス内部から参照するときは、self.__class__.hogeみたいな感じで見なきゃみられないの?
class hoge(object):
    l=[]
    def printl(self):
        print l ##lにアクセスできない
        print self.__class__.l ##lにアクセスできる
もう少し手軽にアクセスしたいが、どうしたらよい?
435デフォルトの名無しさん:2007/05/05(土) 14:12:05
hoge.l
436デフォルトの名無しさん:2007/05/05(土) 14:24:09
self.l
437デフォルトの名無しさん:2007/05/05(土) 14:26:58
Tkinterのウィンドウの生成についてなのですが、
だいたいのサイトで「定石」として紹介されているコンストラクタの処理が今ひとつ釈然としません。Tkinterはまだ知ってから数週間なので、それもあるかもですけど...

class App(Frame):
 def __init__(self, master = None):
  Frame.__init__(self, master)
  self.init()
  self.pack()
 def init():
  #以下省略

app = App()
app.mainloop()
これで、なんでウィンドウをTk()などで生成していないのに窓が開くのでしょうか・・・
こちらの方は、なんとかこうにかどうにか、理解に至る、な感じがしないでもないのですが・・・

何かしらのご教授をお願いします。
438デフォルトの名無しさん:2007/05/05(土) 14:27:50
こちらの方は云々でURL貼り忘れてました。
http://hp.vector.co.jp/authors/VA003670/python/Tkinter/tkinter.htm
です。
439デフォルトの名無しさん:2007/05/05(土) 14:34:54
おねがいします
数学ライブラリーを全種類あげてください
440デフォルトの名無しさん:2007/05/05(土) 15:19:29
math
441デフォルトの名無しさん:2007/05/05(土) 15:27:04
>>440
一種類以外にも上げてください
442デフォルトの名無しさん:2007/05/05(土) 15:43:15
scipy
443デフォルトの名無しさん:2007/05/05(土) 15:56:45
2つでました
あと何個見つかるでしょうか
444デフォルトの名無しさん:2007/05/05(土) 16:03:50
numpy
445デフォルトの名無しさん:2007/05/05(土) 16:12:58
446デフォルトの名無しさん:2007/05/05(土) 17:36:45
>>437
ルートウィジェット(Tkインスタンス)の存在しないときに
Frameウィジェットを生成しようとすると、
それじゃ困るというのでTkinterが勝手にTk()を呼んでくれます。
明示的に root = Tk() としたほうが行儀がいいことは確かです。
447デフォルトの名無しさん:2007/05/05(土) 22:55:41
>> 439 数学ライブラリーを全種類あげてください

Enthought distribution を入れておけ。御前には使い切れない science 関係の
package/module がインストールされる。

python 2.4 になってしまうが、大した問題ではないだろう。
448デフォルトの名無しさん:2007/05/05(土) 23:00:38
これ、本が出るってわけじゃないよね・・・
http://morchin.sakura.ne.jp/effective_python/index.html
449デフォルトの名無しさん:2007/05/06(日) 03:59:32
>>448
なんか合成っぽいね
450デフォルトの名無しさん:2007/05/06(日) 10:15:39
許可も取らずにO'REILLYのロゴ使うわけもないだろうけど
451デフォルトの名無しさん:2007/05/06(日) 10:27:22
キャッチアンドリリース
452デフォルトの名無しさん:2007/05/06(日) 11:00:26
>>448
あのワシはLearning PHP5、
喰われてるヘビはProgramming Python
要するに合成
453デフォルトの名無しさん:2007/05/06(日) 12:21:04
454デフォルトの名無しさん:2007/05/06(日) 22:27:11
>>450
涙目wwwwwww
455デフォルトの名無しさん:2007/05/06(日) 22:44:43
>>453
これはO'REILLYは許可してるのか?
そこのサイトで合成された画像を個人のサイトで勝手に使うのは許可されてるのか?
456デフォルトの名無しさん:2007/05/06(日) 22:52:08
パロディに許可ってアホじゃね?
457デフォルトの名無しさん:2007/05/06(日) 22:57:30
パロディか?
内容は真面目なプログラミングの話でネタやお笑いじゃないし
一見、そういう本が実在してる印象をうけるぞ。
458デフォルトの名無しさん:2007/05/06(日) 23:13:41
まんまとだまされた>>450氏は必死のようだが、実際に販売して利益を上げなければ
商標法で訴えるのは難しいだろうな。せいぜいで不正競争防止法あたり。
そこまでORAは野暮じゃなかろう。
459デフォルトの名無しさん:2007/05/07(月) 15:48:20
>458
ORAって書くとオラクルっぽいな
460デフォルトの名無しさん:2007/05/07(月) 15:51:49
ORAORAですかー??
461デフォルトの名無しさん:2007/05/07(月) 15:54:19
PythonでWindowsで動くGUIのアプリケーションを作るには
ざっとどんな知識が必要ですか?
462デフォルトの名無しさん:2007/05/07(月) 15:56:13
>>461
ざっとGUIツールキットの知識が必要。ぶっちゃけ、それ以外要らん。
とりあえずTkinterでもかじってみりん。
463デフォルトの名無しさん:2007/05/07(月) 20:49:45
winのGUIアプリを作る方法を一から学ぶなら、Pythonは無いなーと思う
464デフォルトの名無しさん:2007/05/07(月) 23:47:03
pythonでメガデモつくるとしたら、使えるライブラリー
ありますか、映像と音楽と効果音などが必要と思いますが
465デフォルトの名無しさん:2007/05/08(火) 00:32:56
466デフォルトの名無しさん:2007/05/08(火) 00:52:15
467デフォルトの名無しさん:2007/05/08(火) 09:37:18
>>461
やめとけ、おまえにゃ無理。
468デフォルトの名無しさん:2007/05/08(火) 19:03:37
Google Trends: python
http://www.google.com/trends?q=python&ctab=0&geo=JP&date=all

1. Ofunato, Japan
2. Tsukuba, Japan
3. Bunkyo, Japan
4. Kizuki, Japan

なぜに Ofunato が一番なんだろう
とか思ったり…
469デフォルトの名無しさん:2007/05/08(火) 19:29:45
>>468
てかそのデータは何なの?
470デフォルトの名無しさん:2007/05/08(火) 20:18:46
>>469
日本におけるGoogleでの検索回数。
ちなみにカンマで区切ってキーワードを並べると比較できる。


ところで All Regions にすると 2005年10月あたりにグラフが一瞬跳ね上がってるだけど
なにかあったの?
471デフォルトの名無しさん:2007/05/08(火) 20:19:26
472デフォルトの名無しさん:2007/05/08(火) 21:36:09
http://www.google.com/trends?q=python%2Cruby%2Cperl%2Cdelphi%2Chaskel&ctab=0&geo=JP&date=all
水色、赤、黄、緑、紺 の 順で表示されるみたいだね。
なんか色と言語のイメージが合ってるしwww
473デフォルトの名無しさん:2007/05/08(火) 21:37:41
でも haskel はちょっと違うかもしんない
474デフォルトの名無しさん:2007/05/08(火) 22:05:24
pythonもrubyも普通の英単語と区別つかんからなぁ・・・
475デフォルトの名無しさん:2007/05/08(火) 22:38:25
476デフォルトの名無しさん:2007/05/08(火) 22:39:51
477デフォルトの名無しさん:2007/05/08(火) 23:00:31
478デフォルトの名無しさん:2007/05/08(火) 23:17:51
大船渡に何があるというのか
479デフォルトの名無しさん:2007/05/08(火) 23:55:49
python programming,ruby programming
でグーグルトレンドで検索するとアメリカ以外だと
do not have enough search volume to show graphs.
ってなって結果が表示できないっぽい

どうもこんなかんじにトレンド先生は解釈されてるみたいぽ
"python programming" "ruby programming"
480デフォルトの名無しさん:2007/05/09(水) 03:55:53
JavaやPerlやPHPとの勝負を避けたいという気持ちは分かった。
481デフォルトの名無しさん:2007/05/09(水) 04:36:20
いいかげんに Java を貶めるのはやめにしないか?
482デフォルトの名無しさん:2007/05/09(水) 04:39:53
意味がわからん・・・
483デフォルトの名無しさん:2007/05/09(水) 06:00:58
そこで我々は大船渡に調査に向うことにした
484デフォルトの名無しさん:2007/05/09(水) 10:51:50
いつから java がscript言語になったん?
485デフォルトの名無しさん:2007/05/09(水) 13:30:33
勝負厨、馬鹿っぽい
486デフォルトの名無しさん:2007/05/09(水) 13:57:51
すいません、またみんpyなんですが、
初版第1刷 p.379-380 のリスト5の 15、18 行目の、

15:  <th colspan="7">%d, %d</td>
18:  <th>%s</td>                  は、

15:  <th colspan="7">%d, %d</th>
18:  <th>%s</th>

ではありませんか?また、25 行目と 26 行目の間にも
</tr> を出力する記述ががないと、<tr> との対応がとれ
ないと思うのですが…。(HTML というものをよく知らない
ので間違ってたらごめんなさい)
487デフォルトの名無しさん:2007/05/09(水) 14:02:50
直接著者に教えてあげれば良いのではないか?
488デフォルトの名無しさん:2007/05/09(水) 14:16:59
>>486
></tr> を出力する記述ががないと、<tr> との対応がとれ
>ないと思うのですが…。(HTML というものをよく知らない
>ので間違ってたらごめんなさい)

XHTML ではなく HTML であるなら tr 要素の終了タグは省略可能
でも教科書なのにそんな非推奨な例文を出すやつはそれだけでダメ本確定だと思う
489デフォルトの名無しさん:2007/05/09(水) 14:18:30
>>486
てか、 ど う で も よ く ね?
そのくらい空気読めば分かるだろ。HTMLも知らん
厨房が、鬼の首取ったようにいちいち指摘すんなヴォケ
490デフォルトの名無しさん:2007/05/09(水) 14:34:23
普通に errata として出版者等に連絡してあげればいいじゃん
491デフォルトの名無しさん:2007/05/09(水) 14:40:04
かわいそうなZope関係者が袋だたきにあっている件
492デフォルトの名無しさん:2007/05/09(水) 14:53:42
どうでもいいことにこだわる人って、たいてい現場で役にたたないよね。
上司になったら最悪。誰からも慕われない、みんなに嫌われる。
493デフォルトの名無しさん:2007/05/09(水) 15:06:54
>472
俺はPythonは緑のイメージがある
494デフォルトの名無しさん:2007/05/09(水) 15:07:33
キモい、ウザい
495デフォルトの名無しさん:2007/05/09(水) 15:17:15
Zope関係者は本当にウザいな(wwww
496デフォルトの名無しさん:2007/05/09(水) 15:19:26
みんPyの著者としっPyの著者が熱い火花を散らすスレはここですか
497デフォルトの名無しさん:2007/05/09(水) 15:25:25
>>469
著者がきてるのかどうかは知らないけど
たいていのばあい、みんPyたたきから始まるね〜
498デフォルトの名無しさん:2007/05/09(水) 15:31:06
他の書籍もたたけば著者タソくるんじゃね?(w
499デフォルトの名無しさん:2007/05/09(水) 15:32:16
>>489
どうでもよくはないと思う。確かに、表示上は問題ないし、単なるサンプルでpythonの本質とも
関係ないかもしれないけど、いまどきHTMLのタグ省略とかあり得ない。確信犯ならセンスを疑う。
500デフォルトの名無しさん:2007/05/09(水) 15:40:01
キモーーーい!
501デフォルトの名無しさん:2007/05/09(水) 15:46:54
>>499
単なるサンプルでpythonの本質とも関係ないならどうでも良いのでは?
HTMLの教科書じゃないんだし。
502486:2007/05/09(水) 15:55:52
なんかごめんなさい。出版社のページで問い合わせてみます。
ほんとう、どうでもいいこと書いてすいませんでした…。
503デフォルトの名無しさん:2007/05/09(水) 15:58:35
俺は編集者もタコだと思うがな〜、校正ちゃんとやれよって感じだ。
でもタグの対応をいきなり間違えるなんて、校正しても直らない気もするwww

プログラムでもドキュメントでも、初手からきちんとかけないやつは、ほんとダメだ。
504デフォルトの名無しさん:2007/05/09(水) 16:01:36
「みんPy」の問題点はそんな些細な点にあるのではない
505デフォルトの名無しさん:2007/05/09(水) 16:03:54
そうねえ、クラスをdefで定義するとか?
506デフォルトの名無しさん:2007/05/09(水) 16:47:36
つうか本なんか買わんでえぇよ。
教科書はネットにあるだけで読みきれない。
507デフォルトの名無しさん:2007/05/09(水) 16:59:11
>>504=
略語をみるとすぐ使いたがる奴
508デフォルトの名無しさん:2007/05/09(水) 17:38:04
IronPython 本もスグに分かる誤記は結構あるね

別に今のところハマるような問題はないけど
(といってもまだ積んであるだけだからだけど...)
509デフォルトの名無しさん:2007/05/09(水) 17:41:51
Pythonコンパイラってありますか?
510デフォルトの名無しさん:2007/05/09(水) 18:23:08
そこで藤岡隊長が
511デフォルトの名無しさん:2007/05/09(水) 18:31:52
>>509
python はインタープリンタなのでコンパイラじゃないような…
-> 実行時に .pyc ってファイルが出来るけどそれは2度目
以降、実行される処理を高速化するためのものであって…
( とかいって漏れも.pycについての詳細についてはよくわからない orz )

-> はっ、そうか!配布可能な実行ファイルを作りたいのか

ttp://kumiki.c.u-tokyo.ac.jp/~ichiyama/projects/wxpythonmascot/
>Windowsバイナリを作ることもできます。バイナリ作成には、
>distutils拡張の py2exeを使います

こことか参考になるかも。
512デフォルトの名無しさん:2007/05/09(水) 18:35:53
インタプリンタ:interpreter ×
インタプリタ:interpreter ○

逝ってくるしか orz
513デフォルトの名無しさん:2007/05/09(水) 18:38:49
>511

普通は、pythonは言語であって、同時に
pythonインタプリタ処理系がたまたま
pythonと呼ばれているわけで。

JITコンパイラならpsycoとかあるけど、
多分求めているものはちょっと違うよね‥‥‥。

514デフォルトの名無しさん:2007/05/09(水) 18:53:14
コンパイラがないのなら、Perlの代わりぐらいの用途にしか使えませんね
515デフォルトの名無しさん:2007/05/09(水) 19:08:40
>>507
なるほど、アイツか
516デフォルトの名無しさん:2007/05/09(水) 19:11:08
>>514
そうだね
JavaやC#の代わりくらいにしか使えないね
517デフォルトの名無しさん:2007/05/09(水) 19:19:13
>>509
ttp://nenashineko.blog6.fc2.com/blog-entry-33.html
ここのほうがハードル高くないかも

#from wxPython.wx import * <- これ古い書き方だからコメントアウトして下のを付け加えればたぶん動くかも
import wx
import time
import sys

>>513
>JITコンパイラならpsycoとかあるけど
さっき初めて知った。というかそんなのもあるのね。PyPy とは違うものなの?
なんか似てるような気がする。
518デフォルトの名無しさん:2007/05/10(木) 02:10:25
複数のプリンタを直接繋いで1ページのドキュメントを1/4ページづつ印字したりするわけだね。
519デフォルトの名無しさん:2007/05/10(木) 02:20:52
>>471
大船渡におけるrubyとpythonの違いが圧倒的すぎてワロタwww
pythonistaにとって大船渡は完全にホームだなw
520デフォルトの名無しさん:2007/05/10(木) 02:22:58
大船渡って何があるんだよ!?
521デフォルトの名無しさん:2007/05/10(木) 13:22:47
>>497
そうそう.
んで,個人攻撃なんかを延々繰り返した上で >>504 みたいに半端に投げ出していなくなる.
これの繰り返し.
キチガイとしか思えない.
一部の奴には正体がバレているみたいだけどこういう奴とはリアル世界でぜったいに関わりたくないよな〜.
522デフォルトの名無しさん:2007/05/10(木) 18:40:51
>>332 がすべてだな。
523デフォルトの名無しさん:2007/05/10(木) 21:26:08
一度インポートしたモジュールをプログラムを落とすことなく
再度インポートする方法ってありますか?
524デフォルトの名無しさん:2007/05/10(木) 21:29:30
reload
525デフォルトの名無しさん:2007/05/10(木) 21:31:39
>>332
プログラミングテクニックはそれで身に付くけどね。
でもそんなテクニックばかり上げても計算機科学の基礎ぐらいは知ってないとね。
526デフォルトの名無しさん:2007/05/10(木) 22:08:57
パイソンは使う道具だから
道具は包丁と同じで料理を作っていくうちに
上手くなっていく理論だろ?
527デフォルトの名無しさん:2007/05/10(木) 22:20:52
料理だって本買って頭から作って覚える人もいるが
528デフォルトの名無しさん:2007/05/10(木) 22:38:12
>>332みたいな奴に限って基本がおろそかで駄目コードを書いたりするわけだよ。
529デフォルトの名無しさん:2007/05/10(木) 22:58:14
まあ、くだらん本を読まずにきっちりとした本を読めばOK
530デフォルトの名無しさん:2007/05/10(木) 23:28:20
WRITE GREAT CODEでも読め
531デフォルトの名無しさん:2007/05/11(金) 02:05:48
vol.2が出るとはおもわなんだ…
532デフォルトの名無しさん:2007/05/11(金) 17:06:47
l = [1, 2, 'Fizz', 4, 'Buzz', 'Fizz', 7, 8, 'Fizz', 'Buzz', 11, 'Fizz', 13, 14, 'FizzBuzz', 16, 17, 'Fizz', 19, 'Buzz', 'Fizz', 22, 23, 'Fizz', 'Buzz', 26, 'Fizz', 28, 29, 'FizzBuzz', 31, 32, 'Fizz',
34, 'Buzz', 'Fizz', 37, 38, 'Fizz', 'Buzz', 41, 'Fizz', 43, 44, 'FizzBuzz', 46, 47, 'Fizz', 49, 'Buzz', 'Fizz', 52, 53, 'Fizz', 'Buzz', 56, 'Fizz', 58, 59, 'FizzBuzz', 61, 62, 'Fizz', 64, 'Buzz', 'Fizz',
67, 68, 'Fizz', 'Buzz', 71, 'Fizz', 73, 74, 'FizzBuzz', 76, 77, 'Fizz', 79, 'Buzz', 'Fizz', 82, 83, 'Fizz', 'Buzz', 86, 'Fizz', 88, 89, 'FizzBuzz', 91, 92, 'Fizz', 94, 'Buzz', 'Fizz', 97, 98, 'Fizz', 'Buzz']

for i in l:
  print i
533デフォルトの名無しさん:2007/05/11(金) 17:12:38
空気読めない奴が来たよコレ
534デフォルトの名無しさん:2007/05/11(金) 18:51:50
整数のトリックは感心した。おれはああいうの全然考えられない。
535デフォルトの名無しさん:2007/05/11(金) 21:53:01
>534

整数のトリックって何?
536デフォルトの名無しさん:2007/05/11(金) 22:49:41
なんのことかサパーリorz
537デフォルトの名無しさん:2007/05/11(金) 23:20:51
python -c "gen = lambda: range(1,101); print ' '.join(filter(lambda s: s, eval(str([(str(i),str(f).replace('True', 'Fizz'),str(b).replace('True', 'Buzz'))
for i,f,b in zip(gen(), map(lambda x: x%3 == 0, (gen())),map(lambda x: x%5 == 0, gen()))]).replace('False', '').replace(')', '').replace('(', '')))).replace('Fizz Buzz', 'FizzBuzz')"
538デフォルトの名無しさん:2007/05/11(金) 23:43:04
>>535
なんとなくカッコイイ言葉に踊らされているだけ
まともなPython使いなら5秒で思いつくようなトリックだよ
539デフォルトの名無しさん:2007/05/11(金) 23:47:34
>>537
obfuscated認定

evalのダメな使い方の見本認定
540デフォルトの名無しさん:2007/05/12(土) 00:25:08
>>537
しかもテストしてみたらFizzBuzzとして解けてないし・・・

とりあえず暇ならここをどうぞ、(現在ビリ230Byte
http://golf.shinh.org/p.rb?FizzBuzz
541デフォルトの名無しさん:2007/05/12(土) 01:30:39
俺もやってみた。122バイト。どうしたら半分以下になるのか見当もつかんw

print"\n".join(p&q and"FizzBuzz"or p and"Fizz"or q and"Buzz"or r for p,q,r in[(n%3==2,n%5==4,`n+1`)for n in range(100)])
542デフォルトの名無しさん:2007/05/12(土) 01:48:22
p&q�and"FizzBuzz"or�p�and"Fizz"or�q�and"Buzz"or�r を
p*"Fizz"+q*Buzz" or r にすると大分減るな。
543541:2007/05/12(土) 01:59:31
>>> True*"Fizz"
'Fizz'
>>> False*"Fizz"
''

へぇー、知らんかった。1行野郎のためにあるような機能だなw
544541:2007/05/12(土) 02:04:04
あ、真理値を0と1で表していた頃の名残か。
545デフォルトの名無しさん:2007/05/12(土) 02:13:59
こんなこと知らない奴もいるんだな。
Pythonはもうおしまいかもな。
546デフォルトの名無しさん:2007/05/12(土) 02:20:03
>>>['Fizz','Buzz'][True]
'Buzz'
>>>['Fizz','Buzz'][False]
'Fizz'

おまえらのようなカボチャ頭にはこんなことも思いつかんのだろうアホどもめ.
547デフォルトの名無しさん:2007/05/12(土) 02:22:14
・・・
548デフォルトの名無しさん:2007/05/12(土) 02:27:51
役に立たないことばかり思いつく人っているよね
549デフォルトの名無しさん:2007/05/12(土) 02:28:36
**そんなことを「思いつく」必要があるレベルの文化にショックを受けている**
550デフォルトの名無しさん:2007/05/12(土) 02:31:57
それやったことあるわ・・

if 条件:
 X = 'Buzz'
elif:
 X = 'Fizz'

って書くのを短くしようと思ったんだよ
551デフォルトの名無しさん:2007/05/12(土) 02:33:40
思考の範囲が広いのはいいことだよ

駄目な開発者ほど引き出しが少ない
逆ギレするような奴は人間としても最悪だ
552デフォルトの名無しさん:2007/05/12(土) 02:35:20
>>550
elif:

invalid syntax
553デフォルトの名無しさん:2007/05/12(土) 02:35:38
>>549
同感だ
554デフォルトの名無しさん:2007/05/12(土) 02:37:06
>>552
else の間違いだった
555デフォルトの名無しさん:2007/05/12(土) 02:38:12
>>549
ただの「遊び」に「思いつく**必要がある**」なんて勝手に解釈する人がいるのはびっくりだ
典型的ないじめられっ子体質だな(wwww
556デフォルトの名無しさん:2007/05/12(土) 02:43:08
>>555
あんまりいじめるなよ(w
また脳内の「アイツ」が出てきちゃうぞ(wwwww
557デフォルトの名無しさん:2007/05/12(土) 02:43:27
>>546
残念ながらそれだと、'FizzBuzz'の場合にうまく対応できないので、余計長くなる。
>>542のやり方をまじめにやれば、60前後ぐらいまではいくけど、そこから先が不明・・・
558デフォルトの名無しさん:2007/05/12(土) 02:47:00
理解はできるが「思いつく」かどうかは微妙だな。
そもそも特に利点の無いことを思いつこうという発想が俺には無い。
559デフォルトの名無しさん:2007/05/12(土) 02:52:03
俺の場合は、利点があるかどうかは思いついた後で考えるけどな
560デフォルトの名無しさん:2007/05/12(土) 03:05:08
なんでこのスレは変な人が多いの?
561デフォルトの名無しさん:2007/05/12(土) 03:12:16
人気言語だからさ!
562デフォルトの名無しさん:2007/05/12(土) 03:21:05
>>558
利点はあるよ
教えないけど
563デフォルトの名無しさん:2007/05/12(土) 03:43:15
for i in range(100):print i%3/2*"Fizz"+i%5/4*"Buzz"or-~i
564541:2007/05/12(土) 03:56:43
>>563
スゲー
or i+1 を or-~i として1バイト短くしてるわけだ。
こんな2の補数の使い方、初めて見た。
条件判定の書き換え方もスゴイ。
まさに奇想天外。
565デフォルトの名無しさん:2007/05/12(土) 04:14:02
>>563
なるほど、そういう風に剰余判定すると括弧がいらなくなるんですね。
しかも、0-99で話が済むので、for文の方が早くなるというレア問題、・・・すごい盲点だ・・・w
d
566デフォルトの名無しさん:2007/05/12(土) 05:46:06
Pythonなんか使ってる時点で負け組ってことに早く気付けよ。
567デフォルトの名無しさん:2007/05/12(土) 07:01:45
そういう貴方は何言語を?
568デフォルトの名無しさん:2007/05/12(土) 10:23:37
HSP
569デフォルトの名無しさん:2007/05/12(土) 10:41:32
なでしこ
570デフォルトの名無しさん:2007/05/12(土) 10:42:57
D言語
571デフォルトの名無しさん:2007/05/12(土) 12:09:48
Mind
572デフォルトの名無しさん:2007/05/12(土) 15:06:22
Don't mind
573デフォルトの名無しさん:2007/05/12(土) 18:02:46
N88 DISK BASIC
574デフォルトの名無しさん:2007/05/12(土) 18:18:29
タガログ語
575デフォルトの名無しさん:2007/05/12(土) 18:33:43
ポルトガル語
576デフォルトの名無しさん:2007/05/12(土) 18:47:52
むかし、PC98のROMにN88-BASICが入っていることを知らずに2万円でN88-BASIC買ってもらった覚えがある
損した
577デフォルトの名無しさん:2007/05/12(土) 19:54:22
O.py
578デフォルトの名無しさん:2007/05/12(土) 20:40:57
>>576
ROM-BASICじゃフロッピーが扱えないから、別に損でもないだろ。
579デフォルトの名無しさん:2007/05/12(土) 21:10:05
>>577
op.pyなら
580デフォルトの名無しさん:2007/05/12(土) 22:43:01
セーブしようとしたら実はROM立ち上げだったときなんか泣く
581デフォルトの名無しさん:2007/05/12(土) 22:43:23
>576
買ってもらったなら、損したわけでもないだろ。
582デフォルトの名無しさん:2007/05/12(土) 22:46:02
>>581
別の物を買ってもらえる余地もあったわけだ
もしこの2万円の支出がなければ食卓がもっと潤ったかもしれないんだ
あー損した BASICと名の付く言語なんかもう一生つかうもんか
583デフォルトの名無しさん:2007/05/12(土) 22:53:15
>582
月曜からVB.netの案件だからよろしく♪
584デフォルトの名無しさん:2007/05/12(土) 22:55:26
>>583
マでもSEでもねーよ。
しがない大学教員だよ
585デフォルトの名無しさん:2007/05/12(土) 23:05:07
楽そうでいいよな。
586デフォルトの名無しさん:2007/05/13(日) 06:09:10
パイソンてゆとり言語かと思ってたけど、
高齢者向けボケ防止言語なんだね・・・
どうりで活気が無くて全く普及してないわけだ
587デフォルトの名無しさん:2007/05/13(日) 09:40:03
Ruby!
588デフォルトの名無しさん:2007/05/13(日) 10:17:51
20年非常勤やってます
589デフォルトの名無しさん:2007/05/13(日) 18:00:59
Perl!
Ruby!
Python!

dango dango dango dango...
590デフォルトの名無しさん:2007/05/13(日) 23:04:34
>>563
今ごろ見たけどこれは凄いな。
591デフォルトの名無しさん:2007/05/16(水) 19:17:43
何をやってるか全くわかってないが割り込み。


print open('answer.txt').read()
592デフォルトの名無しさん:2007/05/16(水) 22:21:57
美味しいカレーの作り方を議論しているときに
「ココイチで買ってくれば一瞬じゃん」
とか言っているみたいものだな。
593デフォルトの名無しさん:2007/05/16(水) 22:48:20
じゃんけんで人差し指だけ出して「バクダン」とか言うやつ。
594デフォルトの名無しさん:2007/05/16(水) 23:30:43
>>591
管理人がそういう不正行為の名人みたいな人なので、
多分ちゃんと封じられてると思う
595デフォルトの名無しさん:2007/05/16(水) 23:31:56
ところで、最近変な頭おかしそうな粘着書き込みがすっかりなくなってちょっとさみしい・・・
596デフォルトの名無しさん:2007/05/16(水) 23:48:05
>563 はデザインパターンというものを理解していない!

とか言えばいいでつか
597デフォルトの名無しさん:2007/05/16(水) 23:59:37
いまいちだな
598デフォルトの名無しさん:2007/05/17(木) 03:57:46
>595
そういうときは待ってちゃ駄目だ、探しにいくんだ。
けして引き寄せようと思っちゃいけない。
599デフォルトの名無しさん:2007/05/17(木) 18:31:20
>>595
バッチスレ見てこい…引くぞ
600デフォルトの名無しさん:2007/05/17(木) 19:52:24
バッチコイに見えた
601デフォルトの名無しさん:2007/05/17(木) 21:39:52
そろそろメタク(ry
602デフォルトの名無しさん:2007/05/18(金) 00:18:36
いくら寂しいからってそんなもんに活気を求めるのはどうなの
http://pc11.2ch.net/test/read.cgi/tech/1106572657/603 <- 他言語だとこういう書き方のが多いらしい
http://pc11.2ch.net/test/read.cgi/tech/1173036694/531 <- 俺はこの書き方が好き好きすー(いまここ)
最後のreturn xを省略してx だけなのが良くわからないぽ
http://pc11.2ch.net/test/read.cgi/tech/1173036694/538-541 <- あんま好きじゃないかも
とてもRubyらしいと思た (よく分らないからあとで読むぽ)
http://pc11.2ch.net/test/read.cgi/tech/1173036694/543 <- 好きになれそうかも

か、勘違いしないでよね!別に、た、他人の褌で相撲を
取ってるわけじゃないんだからね!! とか言ってネタ
を投下してみたり。。。

pythonらしく書くとしたらどんな風になるのかな?
604デフォルトの名無しさん:2007/05/18(金) 00:51:23
Rubyなんて知らんから張っても読めん
605デフォルトの名無しさん:2007/05/18(金) 01:22:35
pythonicに行くなら、こんな感じ?

def fizzbuzz(n):
  for i in range(1, n+1):
    if i % 15 == 0: yield 'FizzBuzz'
    elif i % 5 == 0: yield 'Buzz'
    elif i % 3 == 0: yield 'Fizz'
    else: yield i

for x in fizzbuzz(100): print x
606603:2007/05/18(金) 02:40:24
>>605
継続を使うと、ループ処理が、普通に関数を呼び出すようなかんじで
まとめることが出来て、とてもシンプルに書けるようになるんですね。。。
勉強になりますた。ありがd。
607デフォルトの名無しさん:2007/05/18(金) 02:43:32
イテレータ
608デフォルトの名無しさん:2007/05/18(金) 03:31:16
>>603
RubyはPerlからの仕様をひきずっていて、あるメソッドで実行時に最後に評価された値が
そのメソッドの戻り値になるのよん。
なもんで、return を書かないで済むケースは書かないことが多いみたい。


609603:2007/05/18(金) 03:44:28
>>608
なるほろーreturn省略できるのですね。φ(..)メモメモ
610603:2007/05/18(金) 03:53:19
イテレータとジェネレータの違いが、よく分らない俺ですよ?
611デフォルトの名無しさん:2007/05/18(金) 04:01:03
おれおれも
612デフォルトの名無しさん:2007/05/18(金) 06:38:28
ループの一番内側で2回yieldするようなのを想像するといいかも。
613デフォルトの名無しさん:2007/05/18(金) 07:07:31
外部イテレータ=ジェネレータ
614デフォルトの名無しさん:2007/05/18(金) 08:33:29
itertools
615デフォルトの名無しさん:2007/05/18(金) 09:15:59
ジェネレータはyieldでもってイテレータをつくる関数のこと。
下の例だとgeneratorって関数がジェネレータで、実行して帰ってくるのが
イテレータ。

def generator():
    yield 1
    yield 2

iterator = generator()
for i in iterator:
    print i
616デフォルトの名無しさん:2007/05/18(金) 09:56:48
ますます分からなくなった><
617デフォルトの名無しさん:2007/05/18(金) 09:58:15
なんでやねんw
618デフォルトの名無しさん:2007/05/18(金) 10:13:51
なんでだがー
619デフォルトの名無しさん:2007/05/18(金) 10:40:39
イテレータ:仮想的なリスト
ジェネレータ:イテレータを返す(yieldを使った特別な)関数
620デフォルトの名無しさん:2007/05/18(金) 12:28:53
ガンダムに例えてくれないと分からないよ。
ファースト限定でよろしく。
621デフォルトの名無しさん:2007/05/18(金) 14:56:33
イテレータ : ジェネレータの「いんすたんす」

みたいな理解でよいですか?
622デフォルトの名無しさん:2007/05/18(金) 14:59:01
いいよ
623デフォルトの名無しさん:2007/05/18(金) 15:35:13
駄目に決まってるだろうがボケカス死ね
624デフォルトの名無しさん:2007/05/18(金) 22:01:48
昔は、ちゃんと __iter__ とか next といったメソッドをもったクラスを作らないと、
イタレータを作れなかった。

が、今は、yield文一つで、イタレータが作れるようになった。
これがジェネレータ…でいい?
625デフォルトの名無しさん:2007/05/18(金) 22:09:48
いいよ
626デフォルトの名無しさん:2007/05/18(金) 22:21:12
>>624
>昔は、ちゃんと __iter__ とか next といったメソッドをもったクラスを作らないと、
>イタレータを作れなかった。

この部分が大間違いチンカスもう来んな
627デフォルトの名無しさん:2007/05/18(金) 22:44:06
>>626
間違ってないチンカスはお前だ
628デフォルトの名無しさん:2007/05/18(金) 22:49:08
>>627
itertoolsのチンゲでも煎じて飲んでおけこのホーケイ野郎
629デフォルトの名無しさん:2007/05/18(金) 22:59:03
>>628
バカ発見w
630デフォルトの名無しさん:2007/05/19(土) 09:35:51
Pythonのジェネレータも理解できないゴミがいるんだな。
意味わからなくても使えるから、使っているうちに理解できるようになるだろうよ。
631デフォルトの名無しさん:2007/05/19(土) 11:17:12
629みたいなやつは逆立ちしても無理じゃね?
632デフォルトの名無しさん:2007/05/19(土) 11:34:06
>>631
いいや、お前のことだよ
633デフォルトの名無しさん:2007/05/19(土) 13:22:14
いろんなげんご @ 人工言語世界
http://www.kmonos.net/alang/etc/

ここのICON言語とかの説明がわかりやすいかも、とか思ったり。
ところで
このICON言語、使ったことのある方、いらっしゃいますか?

テキスト処理用途の言語として Perl と 競合する部分もあった
ようなのですけれども。
634デフォルトの名無しさん:2007/05/19(土) 13:26:02
× あったようなのですけれども
○ あったように思えるのですけれども

日本語は正確に orz
635デフォルトの名無しさん:2007/05/19(土) 13:27:56
その前にスレはあってるのか
636デフォルトの名無しさん:2007/05/19(土) 19:34:15
Pythonは入門用だからアメリカじゃ小学生でも使いこなしてるってのに、
おまいらときたら…。
637デフォルトの名無しさん:2007/05/19(土) 19:45:31
間違ってんなら、「正しくはこうだ」と訂正も出せないレベルの低さに絶望
ののしってるだけじゃねーか
638デフォルトの名無しさん:2007/05/19(土) 19:55:47
>>636
言語の壁はそれほどにも厚いって事ですかね。
母国語で入門しようとしたら、オライリー級に耐える支払能力が必要な訳で。
639デフォルトの名無しさん:2007/05/19(土) 19:59:57
これが永久凍土の問題というやつですか?
640デフォルトの名無しさん:2007/05/19(土) 20:04:13
日本Pythonユーザ会にあるPython 日本語環境用インストーラ(Win32)-2.3.4って9x系専用でいい?
2.4以降はunicode対応でオリジナルのままでもNT系Windowsなら問題ない?
641デフォルトの名無しさん:2007/05/19(土) 22:32:10
>>633
スレ違いだがここにいるぞ。

Iconは中間言語で実行するように
なってたので、#! なスクリプトで使えなかったのが
大きいんじゃないかな。
あとPerlと違ってJIcon作る人がいなかった。
642デフォルトの名無しさん:2007/05/19(土) 23:29:39
>#! なスクリプトで使えなかったのが
空気読めてない仕様だな、
643デフォルトの名無しさん:2007/05/20(日) 03:16:02
>>640
イマイチわかんないんだけど、2.3.4Jは2kでも使えたから専用って事は無いと思う。
2.4以降はJ改造なしでも良いってだけで、OSは関係ないんじゃないかなー?
たぶん問題なく動くよ。
644デフォルトの名無しさん:2007/05/21(月) 14:53:03
たぶん...としか答えられない人たちが集まるスレはここですか。
645デフォルトの名無しさん:2007/05/21(月) 14:58:26
たぶん・・・
646デフォルトの名無しさん:2007/05/21(月) 15:03:06

            _、_
          ( ,_ノ` )
          r      ヽ.
       __/  ┃)) __i | キュッキュッ
      / /ヽ,,⌒)___(,,ノ\

            _、_
          ( ,_ノ` )
        | ̄ ̄ ̄ ̄ ̄ ̄|  トン
       _(,,)  メイビー  (,,)
      / |         |\
647デフォルトの名無しさん:2007/05/21(月) 15:10:20
maybe means DO IT YOURSELF !!!
648デフォルトの名無しさん:2007/05/21(月) 15:52:39
ttp://d.hatena.ne.jp/darwinia/20070510/1178795258

なんか洋書が出るみたいだね。なんか表紙とかいいかんじだw
学生さん向けの教科書みたいなものなのかな…ちょっと内容が
どんななのか気になるぽ…
649デフォルトの名無しさん:2007/05/21(月) 16:21:43
No Starch Pressのカバーっておもろいなw
650デフォルトの名無しさん:2007/05/21(月) 16:44:59
>>648
>なんか表紙とかいいかんじだ

どういうセンスしてんだよ(www
651デフォルトの名無しさん:2007/05/21(月) 17:22:35
No Starch Pressのカバーはどれも最高
中身もよかったりする。Write Great Codeとか

>>648
この本、一年ぐらい発売が伸び伸びになってるので
また延期になるかもしれない

あと同じところから出るRuby by Exampleは
本来Python by ... として出るはずだったいわくつきの本
652デフォルトの名無しさん:2007/05/21(月) 19:23:08
>あと同じところから出るRuby by Exampleは
>本来Python by ... として出るはずだったいわくつきの本

どんな大胆な変更だよ
653デフォルトの名無しさん:2007/05/22(火) 09:57:15
>>377
・シンプルなGUIは↓
CGIプログラマーのためのCherryPy
http://www-06.ibm.com/jp/developerworks/opensource/051007/j_os-cherrypy.shtml
654デフォルトの名無しさん:2007/05/22(火) 11:04:49
655デフォルトの名無しさん:2007/05/22(火) 11:30:54
たーけー
656デフォルトの名無しさん:2007/05/22(火) 12:17:43
>>653
なんか、他に応用ができない中途半端な知識を覚えるだけのような気がする・・
普通にCGIとかTkinterとかでいいんじゃないかな
657デフォルトの名無しさん:2007/05/22(火) 12:40:12
>>656
Turbogearsの主要コンポーネントだし、本も出てるよ。
http://www.amazon.co.jp/Cherrypy-Essentials-Python-Application-Development/dp/1904811841/
658デフォルトの名無しさん:2007/05/22(火) 13:14:27
>>654
つーか内容古くね?

こういうのを高い金出して聞きに行く奴とかSIerは間違いなくクソだと思うので
地雷一覧として聴講者のリストを公開して欲しい
659デフォルトの名無しさん:2007/05/22(火) 13:46:09
>>654
講師がアレだな
660デフォルトの名無しさん:2007/05/22(火) 14:18:22
参加者は会社に行かされる人だけでしょ
661デフォルトの名無しさん:2007/05/22(火) 14:30:40
>>660
リストラされたオヤジが補助金かなんかもらって受けるんじゃないかと想像
662デフォルトの名無しさん:2007/05/22(火) 14:33:02
それだとほんとに悲しい講習会だな・・・
663デフォルトの名無しさん:2007/05/22(火) 15:57:01
この手の講習会として特に高いとは思わないけど
「python 入門」というお題では内容も集まる人もイマイチだと思う...

(python に絡んでやる気があったら逆に行かないだろ)
664デフォルトの名無しさん:2007/05/22(火) 16:06:27
まとめ:
モジックソはいまだに偉大(色んな意味で)
665デフォルトの名無しさん:2007/05/22(火) 19:08:16
pythonはボケ防止のためにジジイがいじくる言語
若者はこんなの覚えてもちっとも役に立たんよ
代わりにruby勉強したほうがいい
666デフォルトの名無しさん:2007/05/22(火) 19:11:07
どう違うんだ?
667デフォルトの名無しさん:2007/05/22(火) 19:13:10
>>666
釣られんなよ
668デフォルトの名無しさん:2007/05/22(火) 19:31:46
またzope関係者がファビョってますねw
669デフォルトの名無しさん:2007/05/22(火) 19:38:17
Ruby知ってると前科者と疑われる時代になるかもだ
670デフォルトの名無しさん:2007/05/22(火) 22:31:44
for Zombie in range(9999): print '@'*79
671デフォルトの名無しさん:2007/05/22(火) 23:08:04
若者は体力があるうちにアセンブラとCを修めてほしい、とは思う。
672デフォルトの名無しさん:2007/05/22(火) 23:43:48
誰もが下流に行くとは限らないんだよ
673デフォルトの名無しさん:2007/05/22(火) 23:50:47
下流を目指すかどうかにかかわらず
まともな開発者になりたいんなら
アセンブラとCの知識は必要だよ
674デフォルトの名無しさん:2007/05/22(火) 23:53:13
開発スタイルにもいろいろあるからね。
やはり、必要・不必要のレベルの話だと思う。
675デフォルトの名無しさん:2007/05/22(火) 23:56:23
アセンブリ言語やれば、実行時間のコスト意識は養われるよ。
676デフォルトの名無しさん:2007/05/22(火) 23:57:15
賢くなった気分にもなれる
677デフォルトの名無しさん:2007/05/22(火) 23:57:25
inline assemblerで最適化ゴリゴリできるようになるには結構大変そうだけど、
どういう人がなれるの?
678デフォルトの名無しさん:2007/05/22(火) 23:58:16
やる気のある人
679デフォルトの名無しさん:2007/05/22(火) 23:58:26
アセンブリとかCを知らずにコスト意識を持っている奴はいるかも試練が
そういうのは一握りの天才

凡人が天才に追いつこうと思ったら
アセンブリとかCをやるのが近道の一つ
680デフォルトの名無しさん:2007/05/23(水) 00:01:09
リソースのコスト意識も、高級言語にいく程希薄になりがちな気がするよ。
681デフォルトの名無しさん:2007/05/23(水) 00:02:02
おっさんどもの雑談には困ったもんだな・・・
682デフォルトの名無しさん:2007/05/23(水) 00:03:58
>>681
若い開発者も、出来る人ほど低級言語の経験があるんだよ
683デフォルトの名無しさん:2007/05/23(水) 00:07:34
オッサンでもCとかASMの開発経験がまったくない奴はダメダメ。
これ定説。
684デフォルトの名無しさん:2007/05/23(水) 00:13:49
まあ、オレは上流志望だからプログラミングは単なるたしなみだけどな。
といいつつ、オープンソースやってる・・・
685デフォルトの名無しさん:2007/05/23(水) 00:16:35
実行時間のコスト意識を得るまでの勉強にかかる時間と、
それによって実際に減った実行時間と、
どっちが多い?
686デフォルトの名無しさん:2007/05/23(水) 00:16:46
オッサンだけど、昔はアセンブラしかなかったのさ。ってか機械語か。
新CPUをつかうと決まったら、アセンブラをまずつくってたなぁ。
そのオヤジにいわせると、アセンブラは必要か?の問はNOだ。
組み込みプログラマでも生産性の低いアセンブラつかえても
自慢にならん。例は枚挙にいとまがないが。一般的にはNO。
687デフォルトの名無しさん:2007/05/23(水) 00:18:10
>>685
場合による。
どんな場合が有利かを判別するにはコスト意識が必要。
688デフォルトの名無しさん:2007/05/23(水) 00:18:19
開発時間と実行時間を単純比較してどーするんだ。
689デフォルトの名無しさん:2007/05/23(水) 00:26:10
お前ら/.にも入り浸ってるだろw
なんか適度な加齢臭とグダグダな流れがそっくりだ。
690デフォルトの名無しさん:2007/05/23(水) 00:27:32
勉強にかかる時間を最適化した奴の書いたプログラムなんて使いたくないよw
691デフォルトの名無しさん:2007/05/23(水) 00:27:41
直接的に必要でなくとも、アセンブラの勉強は損はないと思うよ。
692デフォルトの名無しさん:2007/05/23(水) 00:30:28
Write Great Codeを、別にC書かないけどなぁと思いつつ読んでる俺
693デフォルトの名無しさん:2007/05/23(水) 00:41:07
>>690
もちろん損じゃないが、他にできることがあるだろう。
694デフォルトの名無しさん:2007/05/23(水) 00:50:06
>>693
いかにも無知な者の意見だね
695デフォルトの名無しさん:2007/05/23(水) 00:51:48
正直、一部の分野を除いて今はオーダー以外気にしなくて良いかと。。。
696デフォルトの名無しさん:2007/05/23(水) 00:52:08
俺はこの業界での評価が客観的に見ても高いからな。
いくらでも自由に言えるぜ。
697デフォルトの名無しさん:2007/05/23(水) 00:57:32
ZenOfPythonを写経してこのいやな流れを断ち切るんだ!
698デフォルトの名無しさん:2007/05/23(水) 00:57:43
趣味のプログラマならアセンブラレベルの知識は知らなくてもいいんじゃないかな。
プロで知らなかったら、ちょっと付き合いたくないタイプだね。

オートマしか運転できない人が「俺はF1ドライバーを目指す。F1だって今はオートマだから
俺はマニュアル車の運転には興味ないよ」って言ってたらやっぱり変だろ?
699デフォルトの名無しさん:2007/05/23(水) 01:01:27
>>697
オマエはZen of Pythonの本当の意味を100%勘違いしているよボケが死ねカス。
700デフォルトの名無しさん:2007/05/23(水) 01:10:26
Web プログラミングとか、
通信コストや処理速度を向上する努力とか必要じゃん。
転送量を下げるや表示速度を上げる工夫って、結構涙ぐましいものがあるよ。
701デフォルトの名無しさん:2007/05/23(水) 01:11:27
アセンブラ知らなくていいから
代わりにBrainf*ckをちょいとたしなんでおいてくれ
702デフォルトの名無しさん:2007/05/23(水) 01:58:44
じゃWhitespaceをば
703デフォルトの名無しさん:2007/05/23(水) 02:00:14
じゃ、俺は Ook! で。
704デフォルトの名無しさん:2007/05/23(水) 02:44:41
織田信長を差し置いてErlangが注目されるのが口惜しい。
705デフォルトの名無しさん:2007/05/23(水) 02:59:40
読めねーし<織田信長
706デフォルトの名無しさん:2007/05/23(水) 02:59:46
import this
707デフォルトの名無しさん:2007/05/23(水) 07:21:03
from __future__ import draemon
708デフォルトの名無しさん:2007/05/23(水) 11:16:40
RuntimeError: future robot draemon is not for you.

709デフォルトの名無しさん:2007/05/23(水) 11:39:05
そういうのキモいからやめようよ。
710デフォルトの名無しさん:2007/05/23(水) 11:43:23
面白いと思っているのだろうな
711デフォルトの名無しさん:2007/05/23(水) 11:50:06
709の方がキモイよ。
712デフォルトの名無しさん:2007/05/23(水) 11:53:43
団塊世代ってさ、よく人を馬鹿にした冗談でウケ狙おうとする人多くない?
713デフォルトの名無しさん:2007/05/23(水) 13:12:25
単に他人に対する配慮を欠いた人間が多いだけだろ
714デフォルトの名無しさん:2007/05/23(水) 13:23:05
久々に見たら、なんのスレだよこれw
715デフォルトの名無しさん:2007/05/23(水) 13:26:27
>>706-708
団塊

>>709
氷河期

>>710-711
ゆとり
716デフォルトの名無しさん:2007/05/23(水) 15:55:27
>>715は団塊でもゆとりでも氷河期でもない
717デフォルトの名無しさん:2007/05/23(水) 15:56:52
焼け跡世代か
718デフォルトの名無しさん:2007/05/23(水) 15:59:33
団塊だろうがゆとりだろうがpython使ってる時点でアホアホ非国民だろ
日本人ならrubyを使いなさい
719デフォルトの名無しさん:2007/05/23(水) 16:01:17
(^_^;)
720デフォルトの名無しさん:2007/05/23(水) 16:33:26
みんなでアホ国民になろう。
721デフォルトの名無しさん:2007/05/23(水) 17:06:04
目新しい話題が乏しくなってネタ切れ感が強いな、最近。
このスレだけじゃなくMLの方も。
Pythonの使われ方が多様化、細分化してPython一般について語れることが少なくなった。
Pythonとその利用者層が成熟したってゆーことなんだろうけれども。
なんてゆーか、青春時代を振り返って懐かしんでいる年寄りの気分だ。
(実際年寄りなわけだがw)
722デフォルトの名無しさん:2007/05/23(水) 19:30:34
以下の Ruby コードのようなことは Python でできますか?
class Class1
 def method1
  puts "Class1#method1"
 end
end

class Class1
 def method2
  puts "Class1#method2"
 end
end

c = Class1.new
c.method1
c.method2
723デフォルトの名無しさん:2007/05/23(水) 19:38:05
出来ません、継承とかを使いましょう
724デフォルトの名無しさん:2007/05/23(水) 19:47:16
m9(^Д^)プギャー できねぇでやんのwww
やっぱ Python はダメダメだな。

日本人なら ruby やろ!
725デフォルトの名無しさん:2007/05/23(水) 19:58:19
うんうん、日本人ならRubyだね
仕事で使って言語コア実装の甘さに泣くのも楽しいし
RoRの重さにヒーヒー言うのも楽しい

みんなもっとRubyを使えばいいヨ!
Pythonみたいな堕落言語を使って生産性を高めたら駄目だヨ!!
726デフォルトの名無しさん:2007/05/23(水) 20:13:05
その反応はあまりにも小学生過ぎやしないか
727デフォルトの名無しさん:2007/05/23(水) 20:14:26
ゆとり用言語だものしかたがない
728デフォルトの名無しさん:2007/05/23(水) 20:32:15
rubyのような将来性のない言語を好んで使う人ってやっぱり人間的にも将来性ないよね
729デフォルトの名無しさん:2007/05/23(水) 20:50:01

Python厨とRuby厨が仲直りするスレッド
ttp://pc11.2ch.net/test/read.cgi/tech/1099804004/
730デフォルトの名無しさん:2007/05/23(水) 20:58:36
>>722
って、話題自体は以前にもあった気がする。
どういうコメントがあったかは覚えて無いけど・・・
731デフォルトの名無しさん:2007/05/23(水) 21:10:33
できないと何がまずいのか>>724に語ってもらおうぜ

漏れとしてはクラスの定義を一箇所だけ見れば済むほうが
わかりやすくていいと思うのだが
732デフォルトの名無しさん:2007/05/23(水) 21:43:54
>>731
724 ではないが。
>>722 のように既存クラスに実装を追加できることをopen classと呼んだりする。

open classの使いどころは色々あるんだけど例としては、
・既存のライブラリをハックして少しだけ挙動を変える(人の作ったクラスのとりあえずのバグ修正など)
継承や委譲でもできるけど、そのクラスを使っているコードも直さないといけない
・テストの時だけメソッドを上書きしてスタブ的に挙動させる
・コアライブラリにメソッドを追加して言語を拡張
RailsがそうでObject#blank?などのメソッドを大胆に追加している。
 継承や委譲ではその環境でしか使わないけれど
 既存のクラスと役割が同じクラスがいたずらに増えてしまう。

多用するのは行儀がいいことではないね。
それにグローバルに影響するのでメソッド定義を上書きしたときには副作用が生じる。
733722:2007/05/23(水) 21:57:23
Python ではできないのですね。
"Python" "クラスにメソッドを追加" とかでググったら、
それっぽいのが出てきたのですが手元の Python 2.5.1 では
エラーになってしまいました;;

まさしく Rails がやっているような
コアライブラリにメソッドを追加して…というのができるのか
知りたかったのです。

Ruby と Python どっちが面白そうか彷徨い中に、
ちょっと Ruby に傾きつつあったので
「いやいや Python でもできるぜ!」という話があるか探してました。

もうちょっと Ruby 続けてみようかな…でも Python も気になる気になる。
734デフォルトの名無しさん:2007/05/23(水) 22:25:21
組み込み型は変更不可だけど、こういうことちゃうの?
class A: pass
def func(self): print "hello"
A.func = func
A().func()
735デフォルトの名無しさん:2007/05/23(水) 22:54:51
>>733
>コアライブラリにメソッドを追加して…というのができるのか

そんなことは「できないほうがいい」
そういうことをしたいと思うオマエにはぜひRubyをやってほしい
こころからお願いする
頼む
頼むよ
Pythonにこないで!!!
736デフォルトの名無しさん:2007/05/23(水) 22:56:38
ルビーってのはよく知らんが、コアライブラリを改変できちゃったら動かないプログラム続出で
困ったりしないの?
737722:2007/05/23(水) 23:30:27
>> 735
コアライブラリへのメソッド追加は
私も最初見てキショイと感じたのでお気持ち分かります。
ただ Rails みたいにフレームワークとしてアプローチするなら
面白いんじゃないかなと思います。
自分で追加することはそうそうないでしょうけど。

>> 736
私も勉強しはじめたばかりで少ししかしりませんけど、Rails では
改変というより(より意図が明確な名前の)メソッドが追加されて、
使えるようになったりします。
ただ Python だと「意図が明確になって新しいメソッドが出てくるより、
セオリーに習った書き方が分かりやすい」という意見もあると思うので
どっちがいいのか分かりませんが。
738731:2007/05/23(水) 23:40:36
>>732
なるほど、説明ありがとう
自分でもいろいろ調べてみたけど面白かった

ruby vs python
ttp://lambda-the-ultimate.org/node/1480
Diff of opinion on dynamic stuff
ttp://groups.google.com/group/comp.lang.ruby/browse_thread/thread/9699d659bd806203
Ruby Style Adding Methods to Existing Classes in Python?
ttp://www.parand.com/say/index.php/2006/07/17/ruby-style-adding-methods-to-existing-classes-in-python/
Classbox
http://www.rubyist.net/~matz/20060104.html

> それにグローバルに影響するのでメソッド定義を上書きしたときには副作用が生じる
これが一番のネック? 具体例で言えばjcode.rbとか・・・
739デフォルトの名無しさん:2007/05/24(木) 03:14:38
フレームワークのソース変更してぇぜ!
フレームワークこのクラスにこのメソッドがあればスッキリ簡潔に書けるぜ!
と思ったときに使うとグッド
740デフォルトの名無しさん:2007/05/24(木) 06:31:52
そこでメタクラ(ry
741デフォルトの名無しさん:2007/05/24(木) 11:34:29
Objective-Cを思い出した
742デフォルトの名無しさん:2007/05/24(木) 12:55:14
>740
今回は (ry っていうよりある意味正論じゃ?

ま、どっちみちヌルー
743デフォルトの名無しさん:2007/05/24(木) 13:09:05
肝心なときに (ry してしまうのが、メタクラ厨の奥床しさですね
744デフォルトの名無しさん:2007/05/24(木) 15:13:43
↓ここでJavaScript厨が一言
745デフォルトの名無しさん:2007/05/24(木) 15:17:37
わっちにゃよーわからんぜよ
746デフォルトの名無しさん:2007/05/24(木) 22:07:12
>>735
>そんなことは「できないほうがいい」

なんか激しく拒絶してるようだけど、
組み込み型以外は「できちゃう」んだからお前もPython出て行け。
動的に追加できないJavaとかC++にいけ。
こころからお願いする
頼む
頼むよ
Pythonに帰ってこないで!!!
747デフォルトの名無しさん:2007/05/24(木) 23:47:35
test.py
748デフォルトの名無しさん:2007/05/25(金) 00:20:27
>>746
>組み込み型以外は「できちゃう」んだから

知ってますけど。
何か気にさわったかしら(wwwwwwwwwww
749デフォルトの名無しさん:2007/05/25(金) 00:30:22
あなたのような高度な知能を持ったハイレベルな人は別の言語がいいと思いますよ。
RubyとかRubyとか。
750デフォルトの名無しさん:2007/05/25(金) 00:31:04
>>748
アホか。お前は「出来ない方がいい」とかバカいってるけど、
実際はほとんど「できちゃう」んだから、お前が出て行けって言ってるんだよ。

知ってるかどうかを説いたんじゃないんだよ。
自尊心でも傷ついちゃったのかしら(wwwwwwwwwww
751デフォルトの名無しさん:2007/05/25(金) 00:42:56
自尊心(笑)
752デフォルトの名無しさん:2007/05/25(金) 00:55:30
傷ついてるっぽいなw
753デフォルトの名無しさん:2007/05/25(金) 01:11:00
自尊心(wwwww
754デフォルトの名無しさん:2007/05/25(金) 01:15:41
かなり傷ついてるっぽいなw
755デフォルトの名無しさん:2007/05/25(金) 01:22:11
なんかスレの流れがくだらないのでぶったぎるが、
cheeseshopからおとしてきたhoge.eggってどうやって入れるの?

具体的にはdmath.egg。

756デフォルトの名無しさん:2007/05/25(金) 01:23:03
735は「コアライブラリにメソッド追加して」と書いているようだけど.
Pythonでは、誰でも普通に使う組み込み型にメソッド追加できないんだよね?
746は何が言いたいのかワカラン.

ところで、キチガイには常人がキチガイに見えるのだそうだよ.
757デフォルトの名無しさん:2007/05/25(金) 01:34:09
組み込み型以外にコアライブラリは存在しないのかよ
758デフォルトの名無しさん:2007/05/25(金) 01:56:11
>>755
漏れもこの流れをぶった切りたいので
よく知りもしないのに答えてみるぜ
ttp://labs.unoh.net/2007/04/python.html
EasyInstall使っとけってことらしいぜ
759デフォルトの名無しさん:2007/05/25(金) 02:48:56
>>757
コアラ・イブラリに見えた
760デフォルトの名無しさん:2007/05/25(金) 02:54:16
>>757
キチガイのくせにかなり傷ついてるっぽいなw
761デフォルトの名無しさん:2007/05/25(金) 07:17:54
>758

ありがとー

virtual-python ってのもおもしろげだね。
てか、easy-install コマンドがdebianと喧嘩しない自信がないので、
cheeseshop経由のパッケージはvirtual-python で入れよかな‥‥‥。

(dmathは結局unzipでほどけることを発見して自分のプロジェクトに放り込んでしまった)
762デフォルトの名無しさん:2007/05/25(金) 11:48:39
オープンクラスなんて、Ruby本体と最もメジャーなアプリRubyOnRailsですら
競合してたぜ。本体にメソッドが追加されるたびに戦々恐々なんてありえない。
763デフォルトの名無しさん:2007/05/25(金) 13:09:10
それは考え方次第。Open classつかう連中は、ぶつかれば直せばいいとう考え方。
ぶつかる可能性はゼロではないが、極めて低いから、それよりは便利さをとるという態度。
そして、そんな態度でもうまくいくやつはうまくいく。うまくいかないやつはOpen Class使わなくてもうまくいかない。


それはそうと、generatorが終了しているかどうかを知る方法はありませんか。
next()でExceptionが出れば終了していると判断できますか、でないときは状態が変わってしまうので、
next()を呼び出さずに知る方法があれば教えてください。
764デフォルトの名無しさん:2007/05/25(金) 13:25:26
前半で高説たれてるわりには
後半がダメダメな763タソ萌え
765デフォルトの名無しさん:2007/05/25(金) 13:33:48
悲観的な奴だな。
766デフォルトの名無しさん:2007/05/25(金) 14:56:08
os.system('su')
ってやったときに
パスワードっていう入力が出てきちゃうんですけど
ここにプログラムから何かを自動入力したい場合はどうすればいいのでしょうか?

本当に困っています.
最後は二桁の数字のはずですが忘れてしまいました...
767デフォルトの名無しさん:2007/05/25(金) 15:31:15
>763
generatorは終了しないんじゃないか、という話はさておき、
ttp://www.python.org/doc/2.5/lib/typeiter.html
iteratorには __iter__() と next() しか期待しちゃいけないみたいね。

>766
何に悩んでるかわからないんだけど、os.popenとか見てみると
悩みの半分は解決するかも。もう半分はよくわからない。

768デフォルトの名無しさん:2007/05/25(金) 15:41:53
>>766
二桁数字ってことは、100回手打ちした方が手間が省けると思うぞ
769デフォルトの名無しさん:2007/05/25(金) 16:09:50
>>768
長いパスワードだと面倒じゃないか?
770気まぐれアナスイ:2007/05/25(金) 16:35:41
>>769
!(Φ_Φ+)
普通は4桁と云う定義が在ると思えますが?
作る気がないのでしょうか?
どの様に使います?
771気まぐれアナスイ:2007/05/25(金) 16:38:28
>>770『続』
!(Φ_Φ+){login.は普通は6桁から…}
772デフォルトの名無しさん:2007/05/25(金) 17:11:24
誰かこの人工無能止めてくれー
773デフォルトの名無しさん:2007/05/25(金) 17:15:44
774気まぐれアナスイ:2007/05/25(金) 17:51:26
!(Φ_Φ+)
『password = start = 数字』
775気まぐれアナスイ:2007/05/25(金) 17:56:34
!(Φ_Φ+)
『10000 = 0』
776デフォルトの名無しさん:2007/05/25(金) 18:04:30
>>763
nextして出ちゃった値をさらにyieldしてみるとか

つーか、この新キャラは何?
777デフォルトの名無しさん:2007/05/25(金) 18:22:53
聞いてくれ・・・今日とんでもない失態を犯しちまった・・・
学校に行ったら、小さくていかにも手作りで縫い目が穴だらけの小学生が作ったとしか思えない人形が置いてあったんだ
「何?このみすぼらしい人形」ってつい聞いちゃったんだけど、聞いた相手が俺の彼女で、
間が悪いことに彼女が興味があって練習で作ってみたんだそうだ・・・
口では練習で作ったからできが悪いのは仕方ないみたいな感じだったけど、
そのときの悲しそうな顔が目に焼き付いて離れない・・・誰か俺を殺してくれっっ。。。
778デフォルトの名無しさん:2007/05/25(金) 18:54:46
kill -9 777
779デフォルトの名無しさん:2007/05/25(金) 19:02:46
780デフォルトの名無しさん:2007/05/25(金) 19:38:39
>>779
どっちかっていうと、手編みなんだよ。布とか使うんじゃなくて。
↓みたいなやつ
http://hennageijutsu.blogspot.com/2006/03/blog-post_12.html
781デフォルトの名無しさん:2007/05/25(金) 19:43:15
で、罪滅ぼしに、その人形がボロボロにすり減るまで携帯ストラップとして使うことを決心した・・・
782デフォルトの名無しさん:2007/05/25(金) 21:32:46
>>760
キチガイも、傷ついてるのもお前なのに?
783デフォルトの名無しさん:2007/05/26(土) 00:32:23
Guido先生きのこるには?

あれ?何かおかしい
784デフォルトの名無しさん:2007/05/26(土) 00:40:41
傷つきすぎて寂しくなっちゃったの?
かわいそうに。
785デフォルトの名無しさん:2007/05/26(土) 01:41:04
python -m moduleという使い方がありますけど
モジュール名を与えるとimportしたことになるオプションってあります?
rubyの-rみたいなの
786デフォルトの名無しさん:2007/05/26(土) 02:24:29
ルビーで例えられても知らんがな。どういうのが何が欲しいの?
787デフォルトの名無しさん:2007/05/26(土) 02:48:13
Rubyをつかえばいいんじゃね?
アホかまったく死ねボケカス。
788デフォルトの名無しさん:2007/05/26(土) 03:04:20
>>786
"モジュール名を与えるとimportしたことになるオプション"です。例えば
$ pyrhon -r sys -c "print sys.path"
['', '(中略)']
という風に使えるようになるもの。
789デフォルトの名無しさん:2007/05/26(土) 03:06:41
python -c "import sys; print sys.path" じゃあかんのん?
790デフォルトの名無しさん:2007/05/26(土) 03:16:07
>>789
対話モードで使えれば、毎回、最初にimportを沢山書かなくて住みます。
んで、モジュール名を含めたpythonコマンドがシェルのヒストリーに入るから
対話モードでちょっとしたテストを試行錯誤する際に楽かな、と思いまして。
791デフォルトの名無しさん:2007/05/26(土) 03:17:01
済み、です。
792デフォルトの名無しさん:2007/05/26(土) 03:39:28
たしかに便利かもしんない
793デフォルトの名無しさん:2007/05/26(土) 03:58:51
つ PYTHONSTARTUP
794デフォルトの名無しさん:2007/05/26(土) 04:12:07
対話モードで 毎回同じimportが必須であれば
その必須なものを最初からimportした状態で
対話モードを起動できる

それほど頻繁に対話モード環境を再起動しないのであれば
まとめてimportする.py を用意して それをimportする

りろーどしたら微妙にかぶった...
795デフォルトの名無しさん:2007/05/26(土) 04:44:20
いつも思うんだが、
2ちゃんねるってなんでインデントができないこんな珍妙な仕様になってるのだ?
Pythonスレをいぢめる為にこんな仕様にしてるのか?
2ちゃんねるはPerl製らしいからPerl信者の嫌がらせなんだろうか?

こんな仕様に何か利点があるのか?
796デフォルトの名無しさん:2007/05/26(土) 04:53:34
タブは削ってるみたいだけど、スペースがなくなるのはHTMLの仕様だと思。
797デフォルトの名無しさん:2007/05/26(土) 04:58:01
>>793
どもです。こんな便利機能がああ。
そっれぽくスクリプトに出来そうです。
ありがとうございます。
798デフォルトの名無しさん:2007/05/26(土) 04:59:01
>>795
噛みつくところを間違えてるぞ。イタイタしいな。
ttp://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/struct/text.html
799デフォルトの名無しさん:2007/05/26(土) 10:54:36
>>795
その珍妙さがデフォだから。
改善要望は大昔からあるにはあるけど梨のつぶて。
エディタでタブを&nbsp;に変換するようなフィルタを書くといいよ。
800デフォルトの名無しさん:2007/05/26(土) 12:12:02
&nbsp;はかちゅ〜しゃだとそのまま表示されてちょっと悲しい
>>800
               
801デフォルトの名無しさん:2007/05/26(土) 12:22:45
&#32;はどうか
def factorial(x):
    if x == 0:
        return 1
else:
return x * factorial(x - 1)
802デフォルトの名無しさん:2007/05/26(土) 12:33:55
まとめWikiに2ch投稿用整形スクリプトがあったような。
エディタで痴漢しちゃった方が早いか。
803デフォルトの名無しさん:2007/05/26(土) 13:14:38
    |┃三             _________
    |┃              /
    |┃ ≡    _、_   < 「ロッキーのテーマ」が流れていたので来ました。今何%引きですか?
____.|ミ\___( <_,` ) _ \
    |┃=___    \    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    |┃ ≡   )   人 \ ガラッ
804デフォルトの名無しさん:2007/05/26(土) 13:16:50
Pythonのすべての合法的なコードって
インデントのない状態から機械的にインデントを復元できるの?
805デフォルトの名無しさん:2007/05/26(土) 13:17:59
>>804
それができたらインデントいらねーじゃん
806デフォルトの名無しさん:2007/05/26(土) 13:22:02
def foo():
 print "a"
 
 def bar():
  print "b"

これでムリ
807デフォルトの名無しさん:2007/05/26(土) 14:20:31
質問です。

The target file.pdf のようにスペースを含むファイル名を,
glob.globで得て,os.systemに放りこみました。
するとTheとtargetとfile.pdfが別々のファイル名として認識されます。
スペースのエスケープを保持(?)したまま渡すにはどうすれば良いでしょうか?

現在はとりあえず"でくくってお茶を濁しているのですが。
808デフォルトの名無しさん:2007/05/26(土) 14:31:53
>>807
os.systemが起動するシェルの仕様について勉強しましょう。
あとos.system以外の起動方法についても調べてみましょう。
809デフォルトの名無しさん:2007/05/26(土) 14:33:33
import subprocess
subprocess.call(["dir", "c:"], shell=True)

とか。今後はプロセスの生成はsubprocessモジュールが推奨みたい。
810809:2007/05/26(土) 14:34:13
かぶったwww
811809:2007/05/26(土) 14:35:58
あ、
subprocess.call(["dir", "c:/Program Files"], shell=True)
みたいに空白を含められるってことね。例が悪かった。
812デフォルトの名無しさん:2007/05/26(土) 15:27:38
>>809
ありがとう,できました。
勉強になりました。
Python使ってみると,高度に抽象化されていて初心者には
ぱっと見わかりにくい時がありますね。

あ,>>808もありがとう。
813デフォルトの名無しさん:2007/05/26(土) 20:02:07
ど素人ですが、御質問させていただきます。
下の2つは違う結果になってしまいます。上が2、下が01。
スペースもプログラムの一部と言うことでしょうか?

for i in range(0, 5):
  if i == 2:
    break

print i;

for j in range(0, 5):
    if j == 2:
        break
    print j;
814デフォルトの名無しさん:2007/05/26(土) 20:06:20
無理やりかっこつけるとこんな感じ
下のは0,1に対して毎回print jが実行される
for i in range(0, 5):
{
  if i == 2:
    break
}
print i;

for j in range(0, 5):
{
    if j == 2:
        break
    print j;
}
815デフォルトの名無しさん:2007/05/26(土) 20:24:04
>>814
なるほどです。ありがとうございました。
816デフォルトの名無しさん:2007/05/26(土) 20:25:20
817デフォルトの名無しさん:2007/05/26(土) 21:09:04
>御質問させていただきます

日本語の勉強やり直した方がよさそうだ
笑えんよ...
818デフォルトの名無しさん:2007/05/26(土) 21:19:24
笑うところじゃないから笑えないだけでは。
正しくないからといって、まず笑おうって姿勢がちょっとな。
819デフォルトの名無しさん:2007/05/26(土) 21:32:06
>>817
丁寧すぎて違和感あるのは確かだけど
別に日本語として間違ってるわけじゃないと思うよ
「ご挨拶が遅れました」なんて普通に使うし

日本語って難しいんだぜ
820デフォルトの名無しさん:2007/05/26(土) 21:33:09
初心者故、質問しとう存じます。

これでよくね?
821デフォルトの名無しさん:2007/05/26(土) 21:33:38
>>819
> 「ご挨拶が遅れました」なんて普通に使うし
つかわねーし、日本語として間違ってる
822デフォルトの名無しさん:2007/05/26(土) 21:33:53
うざいです
823820:2007/05/26(土) 21:33:54
質問しとうございます。

こっちのほうがいいか。
824デフォルトの名無しさん:2007/05/26(土) 21:51:17
たのもー!

でいいだろ
825デフォルトの名無しさん:2007/05/26(土) 22:04:09
質問しちゃったりなんかしちゃったりして〜
こ〜の〜
ツンツン

Python使いならこうだろ
826デフォルトの名無しさん:2007/05/26(土) 22:05:56
質問だけ書く
827デフォルトの名無しさん:2007/05/26(土) 22:19:20
別に質問したくてしてるんじゃないんだからね!
勘違いしないでよね!

がいいんじゃね?
828デフォルトの名無しさん:2007/05/26(土) 23:17:50
>827
そこでちょっとどもりが入らないとダメ
829デフォルトの名無しさん:2007/05/26(土) 23:43:48
pythonさ、「tho」にアクセントだべ?

おら、別に質問さしたくてしたわけじゃねえど!
勘違いしねえでけろ!
830デフォルトの名無しさん:2007/05/26(土) 23:47:54
んだ
831デフォルトの名無しさん:2007/05/26(土) 23:51:46
そもさん
832デフォルトの名無しさん:2007/05/26(土) 23:52:43
せっぱ
833デフォルトの名無しさん:2007/05/26(土) 23:54:32
py・thon/paiθon,-θn|-θn/
【名】(複〜s,〜)
1 a 〔動〕ニシキヘビ.
b [P〜]〔ギ神〕ピュートン《ApolloがDelphiで退治した大ヘビ》.
2 (巫女(みこ)などについて)予言する霊,悪魔;占い師,予言者.

ジーニアス英和辞典 第3版 (C) Taishukan 2001-2006
834デフォルトの名無しさん:2007/05/26(土) 23:58:29
アメリカ人のネイティブが読むと「パイサン」に聞こえる。
835デフォルトの名無しさん:2007/05/26(土) 23:58:50
よしこれからはピュートンと呼ぶことにする
836デフォルトの名無しさん:2007/05/27(日) 00:01:18
自宅警備員ならどう呼んでも同じだけどな。
聞く奴が母ちゃんくらいだから。
837デフォルトの名無しさん:2007/05/27(日) 00:04:38
よしこれからはピュートンを広めることにする
838デフォルトの名無しさん:2007/05/27(日) 00:06:42
主にかあちゃんと脳内妹に.
839デフォルトの名無しさん:2007/05/27(日) 00:46:57
「ぴちょん」にしようぜ
840デフォルトの名無しさん:2007/05/27(日) 00:51:19
841デフォルトの名無しさん:2007/05/27(日) 01:00:45
Delphi で退治されたのか…。なんか皮肉だなw
842デフォルトの名無しさん:2007/05/27(日) 01:35:41
ΠΥΘΩΝ
843デフォルトの名無しさん:2007/05/27(日) 01:40:49
鉄棒とか噴水とかがある公園に見える。
844デフォルトの名無しさん:2007/05/27(日) 02:35:01
ΠΥΘΩΝ
ΥΘΩΝΠ
ΘΩΝΠΥ
ΩΝΠΥΘ
ΝΠΥΘΩ
845デフォルトの名無しさん:2007/05/27(日) 02:43:33
ゼナーカードに見えてきた
846デフォルトの名無しさん:2007/05/27(日) 03:13:46
レスが800を超えてるのにアレが一度も出てねーじゃん。



  _  ∩ 
( ゚∀゚)彡 おっぱい!おっぱい! 
 ⊂彡 
847デフォルトの名無しさん:2007/05/27(日) 03:32:11
  _  ∩
( ゚∀゚)彡 edora! edora!
 ⊂彡
848デフォルトの名無しさん:2007/05/27(日) 07:12:48
>>838
妹さん亡くなったのか…ご冥福をお祈り致します
849デフォルトの名無しさん:2007/05/27(日) 07:31:52
PyScripterというのを入れてみたけど、これ便利じゃね?
850デフォルトの名無しさん:2007/05/27(日) 07:35:18
1から10まで足した数をプリントするプログラムなんですが、これで合っています?
もう少し簡潔にする方法を御存知でしたら教えてにょ。

i = 1;
s = 0;
while i <= 10:
s = s + i
i = i + 1
if i == 11:
break
print s;
851デフォルトの名無しさん:2007/05/27(日) 07:36:05
あれ? 空白部分がなくなってる・・・OTL
852デフォルトの名無しさん:2007/05/27(日) 07:52:12
>>849
Emacsで十分。
853デフォルトの名無しさん:2007/05/27(日) 07:53:13
>>850
インデントは全角スペースで
あと文末のセミコロンと if - break は不要

>>> sum(range(1, 11))
55

チュートリアルにざっと目を通しておくといいにょ
854デフォルトの名無しさん:2007/05/27(日) 07:54:36
855デフォルトの名無しさん:2007/05/27(日) 08:04:12
おお、こんなに短くできるなんて・・・。昨日からpythonをはじめたもので・・・。
チュートリアルサイトで勉強してきます。どうもありがとうございましゅ。
856デフォルトの名無しさん:2007/05/27(日) 09:30:43
>>850
あくまでループを使いたかったら
この場合はforを使ったほうが簡潔。

a=0
for x in range (1,11):
    a+=x
print a

あえてwhileで作るなら
i = 1
s = 0
while i <= 10:
    s += i
    i += 1
print s
これで十分。
857デフォルトの名無しさん:2007/05/27(日) 10:14:24
また厨か。低レベルは来んなって。
858デフォルトの名無しさん:2007/05/27(日) 10:33:25
4chan BBS - Evolution of a Python programmer
http://dis.4chan.org/read/prog/1180084983/


matz日記から着ました。
#Web designer で味噌汁拭いたwww
859デフォルトの名無しさん:2007/05/27(日) 17:20:31
i = 1 #Thanks Adam
860デフォルトの名無しさん:2007/05/27(日) 20:36:45
質問です。WindowsXPとPython2.5を使用しています。みんPyを参考にsqlite3を使用してデータベースファイルを作成する以下のコードを書いてみました。ところがデータベースファイルに中身が記録されないので困っています。

import sqlite3
test_data=[[1001,'aaa'],[1002,'bbb'],[1003,'ccc']]
con=sqlite3.connect('c:\\db_file')
cur=con.cursor()
cur.execute('CREATE TABLE test_table(number,value)')
for item in test_data:
    cur.execute('INSERT INTO test_table(number,value) VALUES(?,?)',item)
result=cur.execute('SELECT * FROM test_table')
for item in result.fetchall():
    print item[0],item[1]
cur.close()
con.close()

これを実行すると
1001 aaa
1002 bbb
1003 ccc
と表示されます。ここまでは問題ないのですが、c:\に作成されたdb_fileの中身を再表示する為に以下のコードを実行すると何も表示されません。db_fileの中身が空のようです。

import sqlite3
con=sqlite3.connect('c:\\db_file')
cur=con.cursor()
result=cur.execute('SELECT * FROM test_table')
for item in result.fetchall():
    print item[0],item[1]
cur.close()
con.close()

試しにレコードを10000件(1〜10000までの数字を入れただけ)に増やしてみたのですが、db_fileのサイズは3件の時と同じ2KBのままで変化がありません。
sqlite3を使用してデータをファイルに保存するには何が抜けているのでしょうか。根本的に勘違いをしているかもしれませんが教えていただけると助かります。
861デフォルトの名無しさん:2007/05/27(日) 21:19:13
#Python expert programmer
import operator as op
import functional as f
fact = lambda x: f.foldl(op.mul, 1, xrange(2, x + 1))
print fact(6)

これ何だけど、import functional as f 使わないで書くと
どうなるかな?functional と lamda記法が一緒に出て来て
よくわからないぽ。
862デフォルトの名無しさん:2007/05/27(日) 21:29:17
def fact(x):
return reduce(op.mul, xrange(2, x + 1), 1)
863デフォルトの名無しさん:2007/05/27(日) 22:21:03
>>860
con.close()する前にcon.commit()するといいかもしれないぜ
ttp://www.python.jp/doc/contrib/peps/pep-0249.txt
864860:2007/05/27(日) 22:55:53
>>863
試してみたら保存されてデータが表示されました。
助かりました。ありがとうございます。
865デフォルトの名無しさん:2007/05/28(月) 08:18:19
馬鹿過ぎ
866デフォルトの名無しさん:2007/05/28(月) 16:15:01
867デフォルトの名無しさん:2007/05/28(月) 22:34:20
2.5.1 をDLしたら、落ちやすくなったんですが、何か問題があるんじゃろか。
OSはXP(SP2)。
868デフォルトの名無しさん:2007/05/28(月) 23:43:17
DLしただけで落ちやすくなるのは珍しいですね。
869デフォルトの名無しさん:2007/05/28(月) 23:49:16
ちょっと舌足らずですたな。
2.5.1をDLしたら、OSじゃなくて、python2.5.1のシェルが落ちやすくなったのでしゅ・・・
870デフォルトの名無しさん:2007/05/29(火) 00:01:47
DLしただけで落ちやすくなるのは珍しいですね。
871デフォルトの名無しさん:2007/05/29(火) 00:11:17
落としたら落ちやすくなったってことか
872デフォルトの名無しさん:2007/05/29(火) 00:14:38
こういう質問はバカとか言われないのな。変なスレ。
873デフォルトの名無しさん:2007/05/29(火) 00:32:37
キチガイよりバカの方が10000倍マシ。
874デフォルトの名無しさん:2007/05/29(火) 00:42:30
>872
玩具は壊すより弄った方が楽しかろう。
875デフォルトの名無しさん:2007/05/29(火) 10:13:39
cherrypy試そうと思ったら最初の例で動かない。。。

% python tut01_helloworld.py
Traceback (most recent call last):
File "tut01_helloworld.py", line 32, in ?
cherrypy.quickstart(HelloWorld(), config=tutconf)
AttributeError: 'module' object has no attribute 'quickstart'

dir()で見てもたしかにquickstartがない、
この前turbogearsいれたからいけないの?
876デフォルトの名無しさん:2007/05/29(火) 10:34:49
OSとPython/cherrypyのバージョンは?
877デフォルトの名無しさん:2007/05/29(火) 10:37:22
>>876
Vine4.1
Python 2.4.4
/usr/lib/python2.4/site-packages/CherryPy-2.2.1-py2.4.egg
878デフォルトの名無しさん:2007/05/29(火) 11:08:40
>>877
とりあえず試してみて

cherrypy.root = HelloWorld()
cherrypy.server.start()
879デフォルトの名無しさん:2007/05/29(火) 11:13:47
>>878
行けたよ!!

helloworld

Build time: 0.005s, Page size: 0.01KB
880デフォルトの名無しさん:2007/05/29(火) 11:25:15
>>879
おめ。>>878では設定ファイルを渡してないので

cherrypy.config.update(tutconf)

も試してみて。2.2と3.0ではインタフェースが違うので注意
881デフォルトの名無しさん:2007/05/30(水) 13:45:52
MACのいい統合環境ありますか?
882デフォルトの名無しさん:2007/05/30(水) 13:47:18
Emacs
883デフォルトの名無しさん:2007/05/30(水) 14:00:27
HTMLをパースしたいのですが、

<a>
...
<b>
<c>hoge</c>
<d>fuga</d>
</b>
...
</a>

こんな感じの構造でa、b、c、dはなんらかのタグとして、<b>以下のタグと要素だけを抜き出したいのですがどうすればできるでしょうか?
言い換えると、HTML全体からあるタグ以下の全ての部分要素を抜き出したい、という漢字でしょうか。
884デフォルトの名無しさん:2007/05/30(水) 14:12:35
a. <b> を文字列検索して、見つかったらそれ以降で </b> を検索。両者で囲まれた部分を出力。
b. DOM ツリーに変換して <b> を探してその部分木を toxml() で文字列に戻す。


a. を汎用的に書くのは結構大変かも。b. は well-formed な XHTML でないとうまく動かないかも。
885デフォルトの名無しさん:2007/05/30(水) 15:09:11
BeautifulSoupとか?
886デフォルトの名無しさん:2007/05/30(水) 15:10:38
やり方は色々あると思うけど、もしElementTreeを使うなら

>>> import xml.etree.cElementTree as ET
>>> html = '<a>\n...\n<b>\n<c>hoge</c>\n<d>fuga</d>\n</b>\n...\n</a>'
>>> a = ET.fromstring(html)
>>> a
<Element 'a' at 00B6A140>
>>> b = a.find('b')
>>> b
<Element 'b' at 00B6A410>
>>> c = b.find('c')
>>> c
<Element 'c' at 00B6A440>
>>> a.find('b/c')
<Element 'c' at 00B6A440>
>>> c.text
'hoge'
887884:2007/05/30(水) 16:51:06
もうちょっと簡単な規則性が見つかったので、findとスライスだけで解決してしまいました。
レスありがとうございます。
そしてごめんなさい。
888デフォルトの名無しさん:2007/05/30(水) 16:52:28
>>887は、>>884ではなく>>883です。
すいません。
889デフォルトの名無しさん:2007/05/31(木) 05:23:59
横合いから覗いててちょっと参考になった
890デフォルトの名無しさん:2007/05/31(木) 17:55:00
クラスの内部でリストやオブジェクトを使いたいのですが
class a:
nums = []
obj = b()
class b:
num = 0

alist = []
for i in range(0, 10):
alist.append(a())

alist[0].nums.append(0)
alist[1].nums.append(1)
alist[1].obj.num = 1

print alist[0].nums, alist[1].nums
print alist[0].obj.num ,alist[1].obj.num

>>>
[0, 1] [0, 1]
1 1
生成したインスタンス間で同じオブジェクトを参照してしまうッ
インスタンスごとに新しいオブジェクトを作って欲しいのに・・・って
class a:
def __init__(self):
self.nums = []

これでできたー、なるほどなるほど
891デフォルトの名無しさん:2007/05/31(木) 18:32:01
なまあたたかい。
892デフォルトの名無しさん:2007/05/31(木) 18:34:43
2chでインデントぶっこわれたポスト見る度に思うけど、
こういう勉強スレみたいな内容で、コードのインデントとか消えちゃわないような掲示板って他にあるかな?
893デフォルトの名無しさん:2007/05/31(木) 18:37:09
ttp://dpaste.com/ にペーストしてリンク張る。
894デフォルトの名無しさん:2007/05/31(木) 18:50:08
先頭の空白を nbsp に置き換えてくれる 2ch ブラウザならある
895デフォルトの名無しさん:2007/05/31(木) 19:45:38
>>ヤクザ
これはおもしろいな
896デフォルトの名無しさん:2007/05/31(木) 19:54:33
897デフォルトの名無しさん:2007/05/31(木) 19:59:31
QmFzZTY0pMelqKXzpbOhvKXJpMikq6S5pOukzs
6uudSkw6TGpOuksaTJDQqks6TspMekpKSkpPOk
uKTjpMqkpKGp
898デフォルトの名無しさん:2007/05/31(木) 21:07:21
MmNopMqk86TApKuk6VNoaWZ0X0pJU6TLpLek7aTo
899デフォルトの名無しさん:2007/05/31(木) 21:50:19
面白いけど2ch向けPython以外で需要あるのかな…
900デフォルトの名無しさん:2007/05/31(木) 23:42:18
     行頭の空白を nbsp に置き換える Python スクリプトを組めばいいんじゃないか?
901デフォルトの名無しさん:2007/05/31(木) 23:45:42
それだけじゃ、エディタの置換でまにあう。
どうせなら書いたコードのスペースを にした
あと、ポストまでしてくれるスクリプトを作ろう。
902デフォルトの名無しさん:2007/05/31(木) 23:56:11
>>900
このスレの何人かはそういう Python スクリプトを既に書いているんではないか?
少なくとも俺は2、3回書いたw
903デフォルトの名無しさん:2007/06/01(金) 00:21:41
inputのtimeとkeyって何入れればいいの?
904デフォルトの名無しさん:2007/06/01(金) 00:40:50
from anotherworld import esper
905デフォルトの名無しさん:2007/06/01(金) 01:38:50
いやw、2chにpythonから自動投稿しようとしたことあるんだけど、timeとkeyって属性に何入れればいいのか
良く分からなくて、出来なかった記憶があるので、・・・
906デフォルトの名無しさん:2007/06/01(金) 03:22:18
タブはコピー時に落ち、行頭半角は何個入れても反映されないという、
HTMLの仕様を考えた人は、Pythonが嫌いなのですか?
907デフォルトの名無しさん:2007/06/01(金) 05:40:28
>>906
pre で囲めば済むだけの話では
908デフォルトの名無しさん:2007/06/01(金) 07:21:33
多分HTMLを直書きする為だろ
HTML自体をインデントして書きたいからな
909デフォルトの名無しさん:2007/06/01(金) 07:50:10
マジレスw
910デフォルトの名無しさん:2007/06/01(金) 10:09:09
html 最初の仕様書 1993
python version 1.0 1994
911デフォルトの名無しさん:2007/06/01(金) 10:52:00
どう表示されるかって話だから、HTMLの仕様ってよりは、ブラウザの問題じゃないの?
912デフォルトの名無しさん:2007/06/01(金) 11:44:28
tridentとGeckoがそうだからだよな。他のエンジンはPythonに優しいのかも。あんま意味無いけど。
913デフォルトの名無しさん:2007/06/01(金) 12:28:49
いんや。例えば
ttp://www.doraneko.org/webauth/html32/19970114/Overview.html#sgml
に、
>リテラルテキスト(例.PRE エレメント)内部を除き、HTMLは、空白キャラクタの
>連続的な連なりを、単一のスペース(ASCIIコード 32)と等価であるものとして扱う。
という記述があるし、レンダリングエンジン云々でなく、HTMLの仕様だべや。
914デフォルトの名無しさん:2007/06/01(金) 12:49:17
技術というのは積み重ねが肝心、ということがよく分かる展開だな。
915デフォルトの名無しさん:2007/06/01(金) 13:21:55
>>911
ブラウザというのは原則としてHTMLの仕様に従って表示するだろ
916デフォルトの名無しさん:2007/06/01(金) 14:09:20
そろそろPythonの話をしようぜ
まずはメタク(ry
917デフォルトの名無しさん:2007/06/01(金) 19:31:04
いや、その前に2chに自動投稿する際に必要なパラメータ値(特にkey=10桁の数字とhana=mogeraと言う謎のパラメータ)
を解決してくれ。
918デフォルトの名無しさん:2007/06/01(金) 19:38:29
断る!
919デフォルトの名無しさん:2007/06/01(金) 20:01:46
>>917
monazilla スレに池
920デフォルトの名無しさん:2007/06/01(金) 20:20:02
921デフォルトの名無しさん:2007/06/01(金) 20:47:52
dXRmLTjjgavjgZfjgabjgII=
922デフォルトの名無しさん:2007/06/01(金) 21:52:02
923デフォルトの名無しさん:2007/06/01(金) 22:30:53
924デフォルトの名無しさん:2007/06/02(土) 13:16:02
>>920
乙。漏れはインデントの置換について
テンプレに一筆書いてあるといいと思うのだが

「インデントを含むソースコードを投稿する場合
 半角スペースやタブを &nbsp; に置換してから投稿してください」

みたいに
925デフォルトの名無しさん:2007/06/02(土) 13:33:58
1
2
3
4
5
test
926デフォルトの名無しさん:2007/06/02(土) 13:35:24
.1
. 2
. 3
. 4
. 5
.test
927デフォルトの名無しさん:2007/06/02(土) 13:36:23
HTMLの仕様じゃなくて2chの仕様じゃないの?
928デフォルトの名無しさん:2007/06/02(土) 14:06:58
まぁ、専用ブラウザで見てるからどうでもいいよ
929デフォルトの名無しさん:2007/06/02(土) 14:35:37
>>927
お前はこれまでの話を全く聞いていないのか。もういいから帰れよ。

っていわれるよ。
930デフォルトの名無しさん:2007/06/02(土) 21:08:34
ごめん
>>924 だけ見て脊髄反射レスしてしまった
931デフォルトの名無しさん:2007/06/02(土) 21:11:33
どうして全角スペースも空白キャラクタじゃないのはなぜ?
932デフォルトの名無しさん:2007/06/02(土) 21:26:47
どうしてASCII範囲外の文字は文字列リテラル外においちゃダメって決めたからってことを知らないのはなぜ?
933デフォルトの名無しさん:2007/06/02(土) 22:19:41
どうしてどうしてボクたちは生まれてしまったのだろう
934デフォルトの名無しさん:2007/06/02(土) 22:28:45
おれは一休さんの、どちて坊やが出てくる回だけはものすごく嫌いだ
935デフォルトの名無しさん:2007/06/02(土) 22:41:07
>>934
なぜですか?
936デフォルトの名無しさん:2007/06/02(土) 23:28:13
桔梗屋ってのが嫌な奴だったでしょ。
937デフォルトの名無しさん:2007/06/03(日) 02:43:55
しかし、悪党を懲らしめるのに一休さんに協力するおちゃめな一面もある。
938デフォルトの名無しさん:2007/06/03(日) 12:07:09
このスレのレベルが急速に低下してるな……
939デフォルトの名無しさん:2007/06/03(日) 13:04:46
>>938
おまいが言うなwww
940デフォルトの名無しさん:2007/06/03(日) 13:47:39
デコレータの逆みたいなことってできないですか?
関数終了時に呼ばれる、みたいな
941デフォルトの名無しさん:2007/06/03(日) 13:48:32
宿題ではないがお題を出してみるぜ

【 課題 】
リモートホストのファイルをHTTPでダウンロードし、
ローカルに保存するプログラムを作成せよ。
リモートのファイル取得先URLとローカルの保存先パスは
起動引数として受け取ること。
(例: % GET.py http://example.jp/ hoge.html )
ダウンロード中は、何%ダウンロードしたかを示す進捗状況を表示すること。
(例: 12345 / 67890 (18%))

【 補足 】
コードは1回のレスに収まる程度にすること
おもしろい名前のUAに偽装できたらプラス5点
942デフォルトの名無しさん:2007/06/03(日) 14:15:02
別にそんなアプリ書かなくても、wget があるじゃん。
っていうか CUI とかダサすぎ。Irvine みたいなのがいい。
943デフォルトの名無しさん:2007/06/03(日) 14:18:50
GUIにすると環境に依存するからなあ
Pygtkがまあ妥当だと思うけど、Winの連中は嫌だろうなw
944デフォルトの名無しさん:2007/06/03(日) 14:25:03
wxPythonでしょ
945デフォルトの名無しさん:2007/06/03(日) 14:36:13
import sys
import urllib
def progress(b, bytes, fs):
print "\r%d / %d (%d)" % (bytes, fs, bytes / float(fs) * 100),
op = urllib.FancyURLOpener()
op.addheaders = [("User-Agent", "GET.py/0.0")]
op.urlretrieve(sys.argv[1], sys.argv[2], progress)
print "\rfinished"
946デフォルトの名無しさん:2007/06/03(日) 14:39:00
>>940
関数が1回終わったあとに関数の処理を変えたいとかそういうこと?
たぶんデコレータで出来ると思う。
ただ、目的が全く分からないが・・・
947デフォルトの名無しさん:2007/06/03(日) 14:41:33
>>940
そういったこともデコレータで可。

def decorator(f):
    def wrap(*a, **kw):
        ret = f(*a, **kw)
        print f, "is called =>", ret
        return ret
    return wrap

@decorator
def f(i):
    print "in function"
    return i + 20

f(3)
print "after function"
948デフォルトの名無しさん:2007/06/03(日) 15:05:08
IronPythonでやってみた。長いな…

import System
from System import Console
from System.IO import Stream, File, BinaryReader
from System.Net import WebRequest

args = System.Environment.GetCommandLineArgs()
wr = WebRequest.Create(args[2])
wr.UserAgent = "UA"
rs = wr.GetResponse()
br = BinaryReader(rs.GetResponseStream())
out = File.OpenWrite(args[3])
all = rs.ContentLength
c = 0
while True:
    bytes = br.ReadBytes(1024)
    if bytes.Length == 0: break
    out.Write(bytes, 0, bytes.Length)
    c += bytes.Length
    if all != -1: Console.Write("(%d/%d) %0.2f%%\r" % (c, all, c*100.0/all))
    else: Console.Write("(%d/??) ??.??%%\r" % c)
out.Close()
br.Close()
rs.Close()
rs.Close()
949941:2007/06/03(日) 15:48:53
もまいら最高 >>945 >>948
両者と比べられるとアレだが漏れのも貼ってみる

import urllib
import sys

class AppURLopener(urllib.FancyURLopener):
    def __init__(self, *args):
        self.version = 'GET.py'
        urllib.FancyURLopener.__init__(self, *args)

urllib._urlopener = AppURLopener()

def showprogress(blocknum, blocksize, filesize):
    sys.stdout.write('\r%s\r' % ' ' * 40)
    if blocknum * blocksize >= filesize:
        readed_size = filesize
    else:
        readed_size = blocknum * blocksize
    rate = float(readed_size) / filesize * 100
    sys.stdout.write('%d bytes/ %d bytes (%d%%)' % 
        (readed_size, filesize, rate))

if __name__ == '__main__':
    if len(sys.argv) != 3:
        sys.exit('usage: python GET.py url filename')
    import httplib
    httplib.HTTPConnection.debuglevel = 1
    urllib.urlretrieve(sys.argv[1], sys.argv[2], showprogress)
950デフォルトの名無しさん:2007/06/03(日) 15:53:19
>>949はWinXP/ActivePython/コマンドプロンプトで動作確認
どんな端末でも同じように表示されるのを作るのは大変なので
うまく動かない場合は適当にいじってほしいんだぜ
951デフォルトの名無しさん:2007/06/03(日) 16:39:52
>>941
ここは宿題スレじゃないが名
Python の宿題ここで答えます Part 1
http://pc11.2ch.net/test/read.cgi/tech/1153585095/
952デフォルトの名無しさん:2007/06/03(日) 16:54:56
>>945>>949
このレポートフックみたいなの、urllib2には無いですかね?
953デフォルトの名無しさん:2007/06/03(日) 20:50:20
>>952
urllib2にはたぶん無いけど
urllibのURLopenerのretrieveの実装が参考になると思うぜ
954デフォルトの名無しさん:2007/06/03(日) 23:24:08
import urllib

print urllib.urlopen('http://pc11.2ch.net/test/read.cgi/unix/1111478762/').read()

955デフォルトの名無しさん:2007/06/04(月) 01:25:41
urllibとurllib2の共存はいつまで続くんだろ。
というか、なんで現状のようになってるんだ?
956デフォルトの名無しさん:2007/06/04(月) 02:21:04
urllib3, urllib4とまだまだ続くよ。
957デフォルトの名無しさん:2007/06/04(月) 02:39:17
3.0で統一されるんじゃないの?
たしか、スタンダードライブラリを大幅リフォームしようみたいな話があった気がする。
2.6には残ると思う
958デフォルトの名無しさん:2007/06/04(月) 02:42:04
その名もurllib3000
959デフォルトの名無しさん:2007/06/04(月) 02:49:22
まあ、その辺はメインの言語が出来てしばらくしてから作られ始めると思うので、結構先になりそう・・・
名前なんて最後の方でコロッと変わることなんてよくあるし、・・・
960デフォルトの名無しさん:2007/06/04(月) 02:53:29
意外とこんなことを知らなかった

>>>"aa" "bb" == "aabb"
True
961デフォルトの名無しさん:2007/06/04(月) 05:06:52
一般論ばっかり。dev読め。
962デフォルトの名無しさん:2007/06/04(月) 07:01:13
低レベルは来んな。
963デフォルトの名無しさん:2007/06/04(月) 07:09:44
webbrowser
urllib
----------------------------------ここから低レベル
urllib2
httplib
socket
_socket
964デフォルトの名無しさん:2007/06/04(月) 11:05:29
>>961
pizza devは氏ね
965デフォルトの名無しさん:2007/06/04(月) 12:56:30
>>953
なるほど、凄い簡単な実装でした。
urlopen後のreadに一枚皮かぶせるだけでよさそうです。
966デフォルトの名無しさん:2007/06/04(月) 16:56:15
zipfileのinfolist()で得られるCRC属性ですが、
負の値が得られてしまうものがあるのですが、
どのようにしたらいいのでしょうか。
python2.3では
FutureWarning: %u/%o/%x/%X of negative int will return a signed string in Python 2.4 and up
という警告が出たものの "%08X" で正しくフォーマットできていたし、
警告自体も
warnings.filterwarnings(action='ignore', category=FutureWarning)
で抑制できたのですが、python2.4では正しい結果が得られないのです。
967デフォルトの名無しさん:2007/06/04(月) 17:55:22
>>966
よく分からんけど32ビット符号付き整数を32ビット符号なし整数とみなして
16進表記したい、ということなら、こうかな?

>>> sum = 0
>>> print "%08x" % (0x100000000+sum if sum < 0 else sum)
00000000
>>> sum = 2**31-1
>>> print "%08x" % (0x100000000+sum if sum < 0 else sum)
7fffffff
>>> sum = -2**31
>>> print "%08x" % (0x100000000+sum if sum < 0 else sum)
80000000
>>> sum = -1
>>> print "%08x" % (0x100000000+sum if sum < 0 else sum)
ffffffff
>>> 

キーワード:2の補数
968デフォルトの名無しさん:2007/06/04(月) 18:07:40
FutureWarningが出ているのに
バージョン上げて動かなくなったとかほざいてる
阿呆が居るのは コ コ ですか
969デフォルトの名無しさん:2007/06/04(月) 18:20:38
よくわからんけどzipfileに問題があるんじゃねーの?
970デフォルトの名無しさん:2007/06/04(月) 20:24:49
>>967
サンクス。しかし手間ですねぇ。
971デフォルトの名無しさん:2007/06/04(月) 20:41:29
>>967
たんに
sum & 0xffffffff
でよさげ
972967
>>971
GJ