2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Pythonのお勉強 Part15

1 :デフォルトの名無しさん:2006/11/12(日) 22:51:44
日本 Python ユーザ会
http://www.python.jp/Zope/
Python オフィシャルサイト
http://www.python.org/
Python 2.5
http://www.python.org/download/releases/2.5/
IronPython
http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython
まとめ wiki
http://www7a.biglobe.ne.jp/~yasozumi/python/wiki/
Pythonの入門書「みんなの Python」
http://www.amazon.co.jp/gp/product/479733665X/

Pythonのお勉強 Part14
http://pc8.2ch.net/test/read.cgi/tech/1161272096/

2 :デフォルトの名無しさん:2006/11/12(日) 22:58:51
関連ヌレッド

Python の宿題ここで答えます Part 1
http://pc8.2ch.net/test/read.cgi/tech/1153585095

Python厨とRuby厨が仲直りするスレッド
http://pc8.2ch.net/test/read.cgi/tech/1099804004

Microsoft IronPython 1.0
http://pc8.2ch.net/test/read.cgi/tech/1157686822

【Python】Webフレームワーク Djangoスレ Part1
http://pc8.2ch.net/test/read.cgi/php/1156612854

3 :デフォルトの名無しさん:2006/11/12(日) 23:04:38
Pythonヌレッドの遊迷塵

def 基地外:
「みんPy」の作者タソに粘着。Zope関係者らしい。暇らしい(ヒキコモリか窓際?)。
アスペルガーとか不安神経症とか分裂症とか。

def Python初心者:
初心者を装った質問を書き込む。空気を読まない。日本語もうまく読めない。

4 :デフォルトの名無しさん:2006/11/12(日) 23:48:08
おっ、Pythonスレ。

5 :デフォルトの名無しさん:2006/11/13(月) 00:02:32
おつ、ぱーいたーん

6 :デフォルトの名無しさん:2006/11/13(月) 00:11:24
静かにスレ立て乙

7 :デフォルトの名無しさん:2006/11/13(月) 07:12:50
  _  ∩
( ゚∀゚)彡 おっぱいそん!
 ⊂彡      おっぱいそん!

8 :デフォルトの名無しさん:2006/11/13(月) 08:04:44
乙.py

9 :Python初心者:2006/11/13(月) 11:21:44
>>928
>しゃべりまくるGuido(なんかしんどそう・・
>http://video.google.com/videoplay?docid=-6459339159268485356#13m59s
質問その1:
大変失礼かもしれませんが、928先生は
>(なんかしんどそう・・
と内容表現する「程度しか」英語のヒヤリング能力がないとか?
安倍総理並??(w
質問その2:
しゃべりまくるGuidoの印象から、
Python3000はPerl6同様、果てしない泥沼開発へ
突入する危険性はないのか?
無謀な言語仕様や機能の肥大化競争にPythonも
わざわざ参加する必要があるのか?
こうして夫々の言語が競争開発する度に互いに
模倣し合ったあげく、画一化された言語に変容する
ことになり、各言語独自の魅力を失うのではないか?


10 :デフォルトの名無しさん:2006/11/13(月) 11:39:22

     ま た お ま え か

11 :デフォルトの名無しさん:2006/11/13(月) 11:42:37
> >(なんかしんどそう・・
> と内容表現する「程度しか」英語のヒヤリング能力がないとか?

とバカにしつつ

> しゃべりまくるGuidoの印象から、

と結局自分も、「しゃべりまくるGuidoの印象」で判断しているPython初心者
自己紹介乙w

12 :デフォルトの名無しさん:2006/11/13(月) 12:06:04
  _  ∩
( ゚∀゚)彡 おっぱいそん!
 ⊂彡      おっぱいそん!

13 :デフォルトの名無しさん:2006/11/13(月) 16:01:00
ヘタな煽りだな

14 :デフォルトの名無しさん:2006/11/13(月) 16:02:16
もうみんな飽きてきたんだね

15 :デフォルトの名無しさん:2006/11/13(月) 16:16:02
  _  ∩
( ゚∀゚)彡 おっぱいそん!
 ⊂彡      おっぱいそん!


16 :デフォルトの名無しさん:2006/11/13(月) 16:59:22
>>9
>Python3000はPerl6同様、果てしない泥沼開発へ
>突入する危険性はないのか?
たとえば、2.xと3.xをparallelに開発していくことで、
仲間の開発者に段階的なストップがかかるような
状況にならないように、というような配慮をしている。
というかもろに「次のperl6にはなりたくない」と言ってるので、
開発のタイミング的なことはかなり気にかけている模様。
ZopeやApacheを良いバージョン移行の例としてあげている。

>無謀な言語仕様や機能の肥大化競争にPythonも
>わざわざ参加する必要があるのか?
>こうして夫々の言語が競争開発する度に互いに
>模倣し合ったあげく、画一化された言語に変容する
>ことになり、各言語独自の魅力を失うのではないか?
その辺は結構強調してて、ゼロからのつくり直しではないと言っている。
どちらかと言うと互換性の崩れるマイナーチェンジと言う感じ。
classic classを無くすとか、printを関数にするとか、
聞いてるともうほとんどやるべきことの大部分は決ってて、
完全に新しいフィーチャーはそれほどないと言うような印象
(generic functionかadaptorかみたいな議論はあるけど・・・・)
とにかくperl5→perl6みたいな根本的な大変身計画ではないのは間違い
ないだろうと言う印象

byあおられた人

17 :デフォルトの名無しさん:2006/11/13(月) 23:55:50
レスは3行までだと言っとろうが

18 :デフォルトの名無しさん:2006/11/14(火) 00:12:38
前スレオワタ

19 :デフォルトの名無しさん:2006/11/14(火) 00:19:59
xml.domとxml.saxとElementTree、使い勝手の違いを教えて。

20 :デフォルトの名無しさん:2006/11/14(火) 13:14:46
xml.domはプッシュモデル。簡単に扱えるがメモリを食う。
xml.saxはプルモデル。メモリは食わないが、状態管理がちょっと複雑。
ElementTreeは知らん。

21 :デフォルトの名無しさん:2006/11/14(火) 13:16:20
逆だった>プッシュ・プル orz


22 :デフォルトの名無しさん:2006/11/14(火) 13:45:40
はてなのPython日記から2006-11-13のエントリだけ抜き出すのにDOMだと

import urllib
def hatena():
    return urllib.urlopen("http://d.hatena.ne.jp/keyworddiary/Python?mode=rss")

import xml.dom.minidom
dom = xml.dom.minidom.parse(hatena())
for elem in dom.getElementsByTagName("item"):
    if elem.getElementsByTagName("dc:date")[0].firstChild.nodeValue == "2006-11-13":
        print elem.getElementsByTagName("title")[0].firstChild.nodeValue


23 :デフォルトの名無しさん:2006/11/14(火) 13:46:35
SAXだとこのくらい面倒くさい。

import urllib
def hatena():
    return urllib.urlopen("http://d.hatena.ne.jp/keyworddiary/Python?mode=rss")

import xml.sax
class Handler(xml.sax.handler.ContentHandler):
    def __init__(self):
        xml.sax.handler.ContentHandler.__init__(self)
        self._hash = None
        self._name = None
    def startElement(self, name, attrs):
        if name == "item":
            self._hash = {}
        elif self._hash is not None: # in <item>...</item>
            self._name = name
    def characters(self, content):
        if self._hash is not None and self._name is not None:
            self._hash[self._name] = content
            self._name = None
    def endElement(self, name):
        if name == "item":
            if self._hash["dc:date"] == "2006-11-13":
                print self._hash["title"]
            self._hash = None
            self._name = None
xml.sax.parse(hatena(), Handler())


24 :Python初心者:2006/11/14(火) 14:17:08
>>993
>Python初心者はこのスレと一緒に埋め立て。
こういう気持ちが優しい人が多いから、つい
早めにこちらに遷りました。(w
>>16
>どちらかと言うと互換性の崩れるマイナーチェンジと言う感じ。
マイナーチェンジなら何故?後方互換性を崩す必要が
あるのだろうか?
>classic classを無くすとか、printを関数にするとか、
>聞いてるともうほとんどやるべきことの大部分は決ってて、
>完全に新しいフィーチャーはそれほどないと言うような印象
ということは、Python3000っていう大袈裟な掛け声は
ユーザーに対するフィッシングに過ぎなくなるが…
>しゃべりまくるGuido(なんかしんどそう・・
直感的な発言だとは思うが、このコメントは
本質を突いている。
WallにしてもMatzにしてもGuidoにしても、言語機能の
進歩と拡大に疲れちゃってるんじゃないのか?
貪欲なユーザーのもっともっと!という圧力に
潰れそうになっているってのが、本音のような気がして
ならない。
このスレというか、このプログラム板の中で「良識ある
連中は」みんなそんな風に心の底では感じているように
思う。

25 :デフォルトの名無しさん:2006/11/14(火) 14:26:39
>>22,23
わかりやすい例だね。
私は質問者ではないけれど、とても参考になったよ。

26 :デフォルトの名無しさん:2006/11/14(火) 14:40:39
>>20-23
大変参考になりました.
XMLをトラバースして木構造のオブジェクトを作る必要があり,おうかがいしました.

ひとまずDOMで作り,必要が感じられた時点でSAXに切り替えようと思います.
ありがとうございました.

27 :デフォルトの名無しさん:2006/11/14(火) 15:58:20
>>26
そういう用途ならSAXのほうがいい。

28 :デフォルトの名無しさん:2006/11/14(火) 16:41:03
CGI(apache)からサーバー内部のファイルを改変できるようにしたいんだけど、どうもうまく行かない。

#!/bin/python

file = open("/usr/local/src/pytest/asdfasdf","w")
file.write("asdfasdfasfd")
file.close()
print("made file")

上のようなMakeTestFile.pyていうスクリプトがあって、
それをPythonのCGI部分から下のように実行してるんですよ。

process = subprocess.Popen(["python","MakeTestFile.py"], stdout=subprocess.PIPE)

そうすると、/etc/httpd/error_logでなぜか以下のようなエラーが出る。

IOError: [Errno 13] Permission denied: '/usr/local/src/pytest/asdfasdf'

/usr/local/src/pytestのuid:gidはroot:groupAになってて、ユーザーapacheもgroupAに
入ってるにもかかわらずパーミッションで弾かれる。
でもなぜか「sudo -u apache python MakeTestFile.py」だと上手く行く。
これは一体何が問題なんでしょうか…

29 :デフォルトの名無しさん:2006/11/14(火) 16:57:44
おやおや
神も仏もあったもんじゃない

30 :デフォルトの名無しさん:2006/11/14(火) 17:49:09
>>28
CGIについての質問は板違いです。WEBプログラミング板でどうぞ。

とりあえず、スクリプトを実行しているユーザーを表示させる単純なCGIを作って、
実際にCGIを実行して見てみたら?

31 :28:2006/11/14(火) 20:37:10
>>30
WebProg板を見てみたけど、
頼りになりそうなスレが無いです。
PythonでCGIはマイナーすぎるのか。

>とりあえず、スクリプトを実行しているユーザーを表示させる単純なCGIを作って、
>実際にCGIを実行して見てみたら?
それやるとapacheが実行してる、って出るんだよね。
んでsudoでやると上手く行くけど、CGI経由だと相変わらずダメ。
ああああああもうわかんねええええ。

32 :デフォルトの名無しさん:2006/11/14(火) 20:43:39
環境変数あたりを調べてみな。
コマンドへのパスが通ってないとかなんとか。

33 :28:2006/11/14(火) 20:49:29
エラーがPermission deniedだからパスが通ってないことはない、
っつーか途中まではちゃんと実行されるんよ。

ただfile = open("/usr/local/src/pytest/asdfasdf","w")
まで行くと必ず上記エラーが起きて止まる。

34 :デフォルトの名無しさん:2006/11/14(火) 21:04:32
>これは一体何が問題なんでしょうか…

おっぱいスレでパーミッションの話をし出すお前の頭

35 :デフォルトの名無しさん:2006/11/14(火) 21:12:40
666にしてみる
'r'をためしてみる...

36 :デフォルトの名無しさん:2006/11/14(火) 21:22:53
俺の、俺の、俺の話を聞け〜〜♪

37 :デフォルトの名無しさん:2006/11/14(火) 21:23:32
関係ないけど変数名に'file'を使うのはあんまり良くない

38 :デフォルトの名無しさん:2006/11/14(火) 22:15:07
suexecってオチはやーよ

39 :28:2006/11/15(水) 10:34:27
>>35
試したけどやはりダメ。

>>38
suexec環境ではない。

改めて資料を探してみたけど、似たようなのは下の一件だけでした。

ttp://www.courtesan.com/pipermail/sudo-users/2005-January/002324.html

apacheスレでも行ってみるか…

40 :デフォルトの名無しさん:2006/11/15(水) 10:55:29
>>39
CGIのスクリプト内に直接

FILE = open("/usr/local/src/pytest/asdfasdf","w")
FILE.write("asdfasdfasfd")
FILE.close()

を書いたら実行できるの?
それでも出来ないなら、perlあたりでファイル書込みCGIを作って試すとか。

41 :28:2006/11/15(水) 11:44:58
>>40
CGIから直接ファイル生成した結果を整理したら、以下の通り。

uid=41(mailman) gid=41(mailman) 所属グループ=41(mailman)
uid=48(apache) gid=48(apache) 所属グループ=48(apache),41(mailman)

生成できない:
drwxrwxr-x mailman:mailman
drwxrwxrw- mailman:mailman

生成できた:
drwxrwx-wx mailman:mailman
drwxrwxrwx mailman:mailman
drwxrwxr-x mailman:apache
drwxrwxr-x apache:apache
drwxrwxr-x apache:mailman

42 :28:2006/11/15(水) 11:46:25
上のパーミッションとかは/usr/local/src/pytestの設定ね

43 :デフォルトの名無しさん:2006/11/15(水) 17:36:19
ML は本日より COBOL について語る会 が占拠させて頂きます

44 :デフォルトの名無しさん:2006/11/15(水) 19:09:44
誤爆?

45 :デフォルトの名無しさん:2006/11/15(水) 19:55:12
モグリ?

46 :デフォルトの名無しさん:2006/11/15(水) 21:34:09
>>43
しかし空気の読めない典型的なコボラだったなw
なんでまたPythonなんざに目を付けたのだろうか。

47 :デフォルトの名無しさん:2006/11/16(木) 00:48:54
ttp://www.cbook24.com/bm_detail.asp?sku=4886484602

「実践Python」、目次なんかがでてるな.

ttp://kashino.exblog.jp/4683997

作者タソ(共著者?)のブログ.

48 :デフォルトの名無しさん:2006/11/16(木) 00:56:33
なんで作者のブログを貼る必要が? みんPyの二の舞にしたいのか

49 :デフォルトの名無しさん:2006/11/16(木) 01:04:00
>>48
関連情報だから.

過剰反応しすぎではないですか(W

50 :デフォルトの名無しさん:2006/11/16(木) 01:06:38
>>49
何かドキドキすることでもあるんだろ
そっとしておいてやれや

51 :デフォルトの名無しさん:2006/11/16(木) 01:57:44
ていうか、
晒されたり煽られたりされるほど話題になってない気が…。

52 :デフォルトの名無しさん:2006/11/16(木) 03:10:47
そう言えばS田ってもう終わったなw

53 :デフォルトの名無しさん:2006/11/16(木) 03:35:14
科学技術計算をpythonでやらせたいのだが,
matlab位しかプログラミングをしたことが無い.
英語でもいいんだけど,やっぱ日本語でpythonで科学技術計算をやらせる本って
無いかしら.

54 :デフォルトの名無しさん:2006/11/16(木) 03:39:57
やらせる本じゃなくて,参考書

55 :デフォルトの名無しさん:2006/11/16(木) 03:41:48
>>48
>>52
ニヤニヤ。

56 :デフォルトの名無しさん:2006/11/16(木) 03:53:07
>>47
著者紹介を見る限り
同人本にしか見えんぞ

57 :デフォルトの名無しさん:2006/11/16(木) 10:57:31
宣伝乙>著者の人、ってこと?

58 :デフォルトの名無しさん:2006/11/16(木) 11:19:16
むしろ関係者が自爆しているのでは?(wwwwww

59 :デフォルトの名無しさん:2006/11/16(木) 14:36:46
>53
Python Scripting for Computational Science
H.P.Langtangen
ISBN3-540-29415-5

位かな...
もう一冊くらいは科学計算系があったような気もするが
いずれにせよ英語

60 :デフォルトの名無しさん:2006/11/16(木) 15:19:39
htmlのformからではなく、
pythonのコードからどっかのサーバーに対しPOSTすることはできますか?
GETはそのままURL直書きでいいんだけど。。。

61 :デフォルトの名無しさん:2006/11/16(木) 15:27:19
urlencodeしたデータをurlopenに渡してやればOK。

62 :デフォルトの名無しさん:2006/11/16(木) 16:42:07
>>53
http://up.nm78.com/old/data/up116660.jpg

63 :デフォルトの名無しさん:2006/11/16(木) 16:50:13
>>62 その写真をこのスレに貼った理由を、貴様に小一時間問い詰めたい。
…ああそうだよ。不覚にも笑っちまったよ。くそう。

64 :デフォルトの名無しさん:2006/11/16(木) 16:50:50
和むな(w

65 :デフォルトの名無しさん:2006/11/16(木) 16:57:37
アワワワワ

66 :デフォルトの名無しさん:2006/11/16(木) 17:12:22
キーボードが汚れたOTL

67 :デフォルトの名無しさん:2006/11/16(木) 17:22:14
作者タソのホメパゲをハッケソ。

ttp://home.j04.itscom.net/orca/F-profile.html

68 :デフォルトの名無しさん:2006/11/16(木) 17:25:40
>>66

ttp://pya.cc/pyaimg/pimg.php?imgid=34748

こんなかんじか?

69 :デフォルトの名無しさん:2006/11/16(木) 17:39:05
>>68
だいたいそんな感じOTL
悔しかったんで>>59をアマゾンで購入してしまった…

70 :デフォルトの名無しさん:2006/11/16(木) 18:29:54
>>69
エエエ
>>59は学生には高いんだよ!くれよ!

71 :デフォルトの名無しさん:2006/11/16(木) 18:44:59
>>59じゃないんだけど、
ニューメリカルレシピ系の本だとモノによってはWebから無料でDLできるってのは本当ですか?
C++とか。

72 :デフォルトの名無しさん:2006/11/16(木) 20:00:42
>>71 C++じゃなくてCならあるな。
http://www.numerical-recipes.com/nronline_switcher.html

73 :デフォルトの名無しさん:2006/11/16(木) 20:05:29
>>72
Fortran90キタコレ

確かPythonも書籍でこのシリーズあったと思うけど、
やっぱり購入しかないかな…
学生にはきびすぃ

74 :デフォルトの名無しさん:2006/11/16(木) 21:15:28
学生しか買わないような本を「学生には高い」なんて言われたら商売成り立たないよw
世の中には授業料というものがあるのだ

75 :デフォルトの名無しさん:2006/11/16(木) 21:56:37
でも高いものは高い

76 :デフォルトの名無しさん:2006/11/16(木) 22:05:43
せめて5000円以内に…

77 :デフォルトの名無しさん:2006/11/16(木) 22:36:06
図書館に希望出せば?

78 :デフォルトの名無しさん:2006/11/16(木) 22:38:33
学生だったら大学付属の図書館に頼んで購入してもらえばいいと思うんだが

79 :78:2006/11/16(木) 22:42:00
2分遅れで被ったレスをしたハズカシ(^^;;)

80 :デフォルトの名無しさん:2006/11/17(金) 05:50:15
その手があった!
どもです

81 :マーク若葉( ):2006/11/17(金) 12:13:19
マーク若葉 = (*eval(Python初心者))
ということで、よろしくお願いしまぁす。:-)

PyDevがPython2.5に対応しましたね。
http://www.fabioz.com/pydev/manual_101_root.html
これまでJavaでEclipseを使っていた人は
絶対にお奨めだと思います。
但しパソコンのスペックが低い場合は、立ち上げが
少し重いのが気になりますが…


82 :デフォルトの名無しさん:2006/11/17(金) 16:35:39
キモイ。

83 :デフォルトの名無しさん:2006/11/17(金) 18:35:26
マーク若葉( ) キモーイ。

84 :デフォルトの名無しさん:2006/11/17(金) 20:10:02
キモいと思ったらNG指定すれば良い
コテハン勧めた理由はそういう理由もあるだろうし

85 :デフォルトの名無しさん:2006/11/17(金) 20:17:30
ハンドル名を二転三転させそうでなあ。

86 :デフォルトの名無しさん:2006/11/17(金) 20:29:33
みんな、実践Pythonの話をしようぜ!

87 :デフォルトの名無しさん:2006/11/17(金) 20:42:35
初心者なら初心者らしく
「Eclipse なんてカス、ed がお薦めだと思います」ぐらいの見栄張ろうぜ。

88 :デフォルトの名無しさん:2006/11/17(金) 21:29:16
どういう見栄だよw

89 :デフォルトの名無しさん:2006/11/17(金) 21:46:58
実践Pythonは買うよぉ

90 :デフォルトの名無しさん:2006/11/17(金) 22:35:05
そうですか

91 :デフォルトの名無しさん:2006/11/17(金) 23:23:08
はじpyとオライリーと首吊り本しかなかったのに、最近急に出版ブームだなぁ。
実践とみんpyはレベル同じくらいっぽいから、多様にはなってない気はするが、いいことだ。

92 :デフォルトの名無しさん:2006/11/17(金) 23:29:14
>>91
http://bookweb.kinokuniya.co.jp/guest/cgi-bin/wshosea.cgi?W-NIPS=9981240427

これも最近出版された本だね。

93 :デフォルトの名無しさん:2006/11/18(土) 00:03:27
首吊り本とは何ぞや
あと、初pyもオライリーじゃなかったっけ

94 :デフォルトの名無しさん:2006/11/18(土) 00:03:33
>>89
著者には見本誌が送られてくるはずだから買う必要なし。

95 :デフォルトの名無しさん:2006/11/18(土) 00:04:23
「首吊り本」ってどれ?

96 :デフォルトの名無しさん:2006/11/18(土) 00:28:10
Pythonで学ぶプログラム作法じゃね?

実践の著者はzope関係の人なんだね

97 :デフォルトの名無しさん:2006/11/18(土) 00:29:21
みんPy作者に粘着してた基地外もZOPE関係者らしいぞ.

98 :デフォルトの名無しさん:2006/11/18(土) 00:42:48
Zopeって怖いね

99 :デフォルトの名無しさん:2006/11/18(土) 01:00:43
怖い人たちが書いた本なんだね>実践

100 :デフォルトの名無しさん:2006/11/18(土) 03:43:47
みんPyでPythonにハマったくちだが、実践とやらの著者は
なんかやらかした人たちなのか?

101 :デフォルトの名無しさん:2006/11/18(土) 03:55:38
これからPythonはじめてみようと思うのですが、どの本が一番いいですか?
ちなみにCとJavaを少し、Rubyはかなりやってます

102 :デフォルトの名無しさん:2006/11/18(土) 04:06:59
>202 名前: nobodyさん Mail: 投稿日: 2006/10/29(日) 01:10:57 ID: Apf9eYX7
>ttp://www.cbook24.com/bm_detail.asp?sku=4886484602
>
>清々しいくらい誰も話題にしないのはやっぱり…

>206 名前: nobodyさん Mail: 投稿日: 2006/11/05(日) 02:24:06 ID: 5X0CxqGd
>>>202
>実績が皆無な著者を連ねたって話題になるわけもない.

>207 名前: nobodyさん Mail: sage 投稿日: 2006/11/05(日) 16:42:38 ID: ???
>プログラムをまともに書けない香具師が書く本とは…

>208 名前: nobodyさん Mail: sage 投稿日: 2006/11/05(日) 16:53:50 ID: ???
>うちの会社にも居るよ、コメントだけ追加して、動かないって言っている香具師・・・

>209 名前: nobodyさん Mail: sage 投稿日: 2006/11/05(日) 18:37:26 ID: ???
>ttp://www.technorati.jp/search/%E3%81%BF%E3%82%93%E3%81%AA%E3%81%AEPython?language=ja 335件
>
><<<<<<< 越えられない壁 >>>>>>>>
>
>ttp://www.technorati.jp/search/%E5%AE%9F%E8%B7%B5Python?language=ja 4件

>210 名前: nobodyさん Mail: ゾペ 投稿日: 2006/11/06(月) 10:20:01 ID: ???
>>>209
>× 越えられない壁
>○ 厳しい現実


103 :デフォルトの名無しさん:2006/11/18(土) 05:18:53
醜いけど面白いな、そこ。
本が出るたびに誰かが嬉々として著者を叩くのは、足引きの国の伝統だし仕方ないw
なんて言うと、駄本を貶すのは正義なんだって、必死な人が怒るんだろうけど。

それにしても、209は出版日を無視してるのか。ネタにしても寒い。
スレのレベル自体そんなもんなのかも知れんが、ド低能だなー。

104 :デフォルトの名無しさん:2006/11/18(土) 06:24:24
>>101

Dive Into Python が一押しなんだけど、英語なんだよね。
ウェブでも公開されてるから、どんなものか見てみれば?

ttp://diveintopython.org/


105 :デフォルトの名無しさん:2006/11/18(土) 08:09:41
forで回すのはタプルとリストでどちらを使うべきでしょうか?

106 :デフォルトの名無しさん:2006/11/18(土) 08:17:51
>>105
タプルの方がよく回るらしいよ。

107 :デフォルトの名無しさん:2006/11/18(土) 08:20:58
さーて、クリスマスのサザエさんは?

一、じんろく一人のクリスマス
二、カツオ、はなぞのさんに誘われる
三、タラちゃんのサンタはマスオさん

の三本です
お楽しみに♪

108 :デフォルトの名無しさん:2006/11/18(土) 08:23:08
すみません…>>107は誤爆です

>>106
あ、そうなんですか。
速度に差が出るならタプルを使ってみようと思います。
どうもです。

109 :デフォルトの名無しさん:2006/11/18(土) 08:39:06
>>106
ウソ書くな。
リストの方が普段より2倍多く回るってアニキが言ってた。

110 :デフォルトの名無しさん:2006/11/18(土) 08:42:52
>>109さんはウケですか?
その立場からの意見として、アニキについて詳しく

気持ちとしては歯痛的なタプルの方が速いようなイメージがあるんだけど

111 :デフォルトの名無しさん:2006/11/18(土) 08:46:56
試してみりゃいいだろ


112 :デフォルトの名無しさん:2006/11/18(土) 08:53:43
速度的な事じゃ無くて、一般的にはどちら推奨なんだろう。
参考書はリスト使ってるし、やっぱりリストなんかな。

113 :デフォルトの名無しさん:2006/11/18(土) 08:57:03
>>103
発売日の差を考慮してもなお,「実践」の話題性の低さは考察に値する


114 :デフォルトの名無しさん:2006/11/18(土) 09:04:30
評価基準は内容じゃなくて話題性ですか
2chくらい内容について考察した方が良くないですか

話題性は議論するような内容じゃ
ないよう

なんつってwww


でも


話題性が無いって事はやっぱり本の内容が
ないよう


なんつってwwwwwwwwwww

115 :デフォルトの名無しさん:2006/11/18(土) 09:11:20
>114
お前無茶しやがって…
クォリティ低いネタを二度繰り返すモンんじゃねぇよ…

116 :デフォルトの名無しさん:2006/11/18(土) 10:05:32
同じ純粋和書のみんぱいに比べると、実践Pythonの方が格段に話題になってないのは確かなようだな
内容はよく分らんが、二匹目のドジョウは黙殺されるってことなんだろ(w

117 :デフォルトの名無しさん:2006/11/18(土) 10:28:06
それよりケータイで python な方の話題... ないね

118 :デフォルトの名無しさん:2006/11/18(土) 11:29:39
番号なんかで呼ぶな!私は自由な人間だ!

119 :マーク若葉( ):2006/11/18(土) 12:04:31
>>116
>同じ純粋和書のみんぱいに比べると、実践Pythonの方が格段に話題になってないのは確かなようだな
>内容はよく分らんが、二匹目のドジョウは黙殺されるってことなんだろ(w
出版社の違いじゃないだろうか?
ソフトバンクとディーアート<−誰か知ってる?どんな本出してるところ?




120 :デフォルトの名無しさん:2006/11/18(土) 12:41:20
Pythonだけでもマイナーなのに
Python×Nokiaで、もう、小数点以下のハルカ彼方に逝ってる気がする

121 :デフォルトの名無しさん:2006/11/18(土) 13:17:55
Roguelike-RPGを作ろうかと思うのでwindows上でcursesを使いたいのですが
どういったライブラリを使うのがいいでしょうか?

ざっと調べたところ、anyguiというものが引っかかりましたが
プロジェクトページの

Anygui is no longer being actively developed or supported. These pages are not up to date.

という注意書きが気になって二の足を踏んでいます。

122 :デフォルトの名無しさん:2006/11/18(土) 14:18:29
>120
敢えてそのピンホールを突いてきたんだから
せめてこのスレくらいは話題にしても良さそうなもんだが...

誰か読んでないのか?

123 :デフォルトの名無しさん:2006/11/18(土) 14:44:30
Webで検索する限り、実践PythonよりPython×NOKIA本のほうがよく紹介されている
NOKIA本は、アマゾンに上がった直後にはてブにブックマークされている
実践PythonはNOKIA本以下の話題性ってことだ

124 :デフォルトの名無しさん:2006/11/18(土) 14:55:31
>>121
もっと普通のGUIツールで代用した方がいいような・・・
つか、どの程度の規模のRoguelikeですか?

125 :デフォルトの名無しさん:2006/11/18(土) 17:14:19
みんも実践も、「偏りも特徴も無い一通りの手引き」っていう性格が一緒だしな。
amazonとかネット書店で片方を見ると、もう片方が「一緒に売れてます」に
よく出てるのが解せない。っていうか笑えるw
同じような本なのに、ほんとに二冊とも一緒に買ってる奴多いのかよw

126 :デフォルトの名無しさん:2006/11/18(土) 17:51:04
>124
NetHackと同規模くらいです。

127 :デフォルトの名無しさん:2006/11/18(土) 19:30:05
>>126
だからどのNetHackよ

128 :121:2006/11/18(土) 19:52:09
「どの」が付くほど細分化してたかな。*bandならともかく。

とりあえず、本家NetHackのことです。
ttp://nethack.org/

129 :デフォルトの名無しさん:2006/11/18(土) 19:59:10
Windows上でもCygwin上のPythonならimport cursesできまっせ
ちゃんと動くかまで確認してないけど

130 :121:2006/11/18(土) 20:06:31
>129
回答ありがとうございます、試してみます。

131 :デフォルトの名無しさん:2006/11/18(土) 22:31:38
>>121
pdcursesと_cursesmodule.c

132 :デフォルトの名無しさん:2006/11/18(土) 22:32:58
>>121
すまんw
おれはpdcursesと_cursesmodule.cをちょっと書き換えて使ってる
wincon.hの関数を使う手もあるがまあめんどい

133 :デフォルトの名無しさん:2006/11/18(土) 22:38:27
ちなみにWCursesってやつは使いもんにならんから

134 :デフォルトの名無しさん:2006/11/19(日) 02:25:56
え、というか本当にRoguelikeのプロジェクト立ち上げるみたいな話?

135 :デフォルトの名無しさん:2006/11/19(日) 04:32:44
やってやってー

136 :デフォルトの名無しさん:2006/11/19(日) 08:08:09
W-ZERO3[es]にPythonインストール
http://s-square.sakura.ne.jp/2006/09/14/pythonce-install/

137 :デフォルトの名無しさん:2006/11/19(日) 09:03:36
nokiaってかsymbian?

138 :デフォルトの名無しさん:2006/11/19(日) 11:49:45
>>125
発売前の書籍について随分詳しそうで好感が持てる。
日本語が小学生レベルなのも親しみを増す。

139 :デフォルトの名無しさん:2006/11/19(日) 12:34:49
>>132
書き換え版のうpきぼんぬ。

140 :デフォルトの名無しさん:2006/11/19(日) 13:41:04
>>125
みんなのPythonの”この商品を買った人は…”には、ふつケルとかBinary Hacksが並んでる
出版社といい表紙といい、実践某とは格が違うみたいだ

141 :デフォルトの名無しさん:2006/11/19(日) 14:28:47
>>140
トラの衣を借るみんPyってやつだな。

142 :デフォルトの名無しさん:2006/11/19(日) 14:48:14
無名出版社、無名ライター、表紙も微妙な三流揃いの実践Pythonは内容で勝負?
それにしてはページ数が少なくね?

目次一覧などを見る限り微妙な解説と役に立たないサンプルコードが
延々羅列されているだけのような気がしてくるんだが…

143 :デフォルトの名無しさん:2006/11/19(日) 17:50:59
表紙のメガネッ娘萌え〜

144 :デフォルトの名無しさん:2006/11/19(日) 19:00:04
実践Pyは 良い教訓 になります

145 :デフォルトの名無しさん:2006/11/19(日) 22:30:48
>>138
関係者乙

146 :デフォルトの名無しさん:2006/11/19(日) 22:47:27
初心者でみんなのpython読み始めたけど、
p206のfileinputのサンプルが動かん。
ソースだけじゃなくて、実行前後の結果も記載してほしかった。
わかりづれー


147 :デフォルトの名無しさん:2006/11/19(日) 23:06:57
1000円以上する定食ってなんなの?
基地外なの?


148 :デフォルトの名無しさん:2006/11/19(日) 23:09:30
あわわわわ。

149 :デフォルトの名無しさん:2006/11/19(日) 23:43:38
Windowsのコマンドプロンプト上だと
ひょっとするとKeyboardInterruptって発生しない?

ネットで見つけたサンプルで、
「無限ループ中にtryがあって繰り返す処理があり、except KeyboardInterruptでループを抜ける」
というようなのを動かしてるんだけど
Ctrl-C押しても終了しない…

150 :デフォルトの名無しさん:2006/11/19(日) 23:45:09
Ctrl + Zじゃね?

151 :デフォルトの名無しさん:2006/11/19(日) 23:55:10
Ctrl-Cだよ

152 :デフォルトの名無しさん:2006/11/20(月) 00:22:24
Zだとプロンプトが終わるな。

153 :デフォルトの名無しさん:2006/11/20(月) 00:25:31
どっちよ?

# キャッチできる
try:
    while True: pass
except KeyboardInterrupt:
    pass

# キャッチできない
while True:
    try:
        pass
    except KeyboardInterrupt:
        break

154 :デフォルトの名無しさん:2006/11/20(月) 01:31:30
>>149
Windowsのコマンドプロンプトってかなり特殊な存在みたいだからねぇ。

155 :デフォルトの名無しさん:2006/11/20(月) 01:38:01
95/98/MEとかはCtrl-Cが効かないって話があった気がする

156 :デフォルトの名無しさん:2006/11/20(月) 02:03:09
>>153
なんとなく後ろは
while True:pass
と同等になってる気がする・・・

157 :デフォルトの名無しさん:2006/11/20(月) 03:45:43
始めてのPython = はじぱい
みんなのPython = みんぱい

なのだから

実践Python = しっぱい

と呼ぶことにしないか.

158 :デフォルトの名無しさん:2006/11/20(月) 04:13:53
実乳

159 :デフォルトの名無しさん:2006/11/20(月) 04:22:42
>>157
-1

160 :デフォルトの名無しさん:2006/11/20(月) 04:36:38
車輪の再発明もいいとこな気もするけど、Pythonでメンテナンスできる
roguelikeって夢があるな。

161 :デフォルトの名無しさん:2006/11/20(月) 11:47:06
貧乳が表紙の実践Python=ひんぱい でどう?

162 :デフォルトの名無しさん:2006/11/20(月) 12:17:11
実践Python、表紙のおにゃの娘めがっさ萌えにょろ♪
作者タンは萌えをよく理解していると思う!


163 :デフォルトの名無しさん:2006/11/20(月) 12:40:01
萌えはともかく、それが一番のセールスポイントって作者自身が言い切るのはどうかと思う

164 :デフォルトの名無しさん:2006/11/20(月) 13:15:31
なるほど。そういう分野の本だったのか。

165 :デフォルトの名無しさん:2006/11/20(月) 13:26:45
内容はともかく本がたくさんあること自体がPython流行ってる?と思わせる要因になるので実Py歓迎

166 :デフォルトの名無しさん:2006/11/20(月) 13:55:40
>>163
>萌えはともかく、それが一番のセールスポイントって作者自身が言い切る

まじかよ(w
それくらいしかアピールできるポイントがないってことか
どんな内容か楽しみだな(wwww

167 :デフォルトの名無しさん:2006/11/20(月) 14:25:36
>>163
> 作者自身が言い切る

    ,-ー─‐‐-、
   ,! ||     |
   !‐-------‐
  .|:::i ./ ̄ ̄ヽi
  ,|:::i | (,,゚д゚)||  < ソースきぼんぬ。
  |::::(ノ 中濃 ||)
  |::::i |..ソ ー ス||
  \i `-----'/
     ̄U"U ̄

168 :デフォルトの名無しさん:2006/11/20(月) 14:35:15
>>167
http://kashino.exblog.jp/4683997/
ぐぐったら割とすぐ出てきた。だけど、>>166とはちょっとニュアンスが
違うような。「もしかすると」って言ってるし。


169 :デフォルトの名無しさん:2006/11/20(月) 16:06:02
>>168
コメントが3つだけとは、もしかすると寂しい.

170 :デフォルトの名無しさん:2006/11/20(月) 17:02:45
なんか、何としてでもPythonの書籍や関係者をけなしたい奴がいるようだな。
「みんPy」の時もそうだったが。


171 :デフォルトの名無しさん:2006/11/20(月) 17:10:14
>>170
全部Zope関係者だよきっと.

172 :デフォルトの名無しさん:2006/11/20(月) 17:20:08
Zopeって怖いね

173 :デフォルトの名無しさん:2006/11/20(月) 18:22:14
zopeが怖いんじゃない。
日本のzopeコミュニティがおかしいんだ。

174 :デフォルトの名無しさん:2006/11/20(月) 18:23:26
モジックソさんって、いま何やってるんだろ

175 :デフォルトの名無しさん:2006/11/20(月) 20:01:12
>>174 君は何でわざわざ蔑称で呼ぶんだい?

176 :デフォルトの名無しさん:2006/11/20(月) 20:06:56
蔑んでいるからだろうね

177 :デフォルトの名無しさん:2006/11/20(月) 20:36:47
最近S田のモジ化が著しい。

178 :デフォルトの名無しさん:2006/11/20(月) 21:13:36
↑↑↑全部Zope関係者↑↑↑

179 :デフォルトの名無しさん:2006/11/20(月) 21:35:01
性根の歪んだ奴が多いのか、そんな少数の声が大きいのか。

180 :デフォルトの名無しさん:2006/11/20(月) 21:48:55
↑↑↑全部Ruby関係者↑↑↑

181 :デフォルトの名無しさん:2006/11/20(月) 22:11:49
177の人間性の歪み方がひどくて心配になる。
多分Zope関係者だろう。

182 :デフォルトの名無しさん:2006/11/20(月) 22:12:09
俺だけはpythonにも無関係

183 :デフォルトの名無しさん:2006/11/20(月) 22:14:42
な ぜ こ こ に い る

184 :デフォルトの名無しさん:2006/11/20(月) 22:14:49
pychinko

185 :デフォルトの名無しさん:2006/11/20(月) 22:16:12
おっ、ぱいちんこ。

186 :デフォルトの名無しさん:2006/11/20(月) 22:20:39
>>181
Zope関係者って怖いな.

187 :デフォルトの名無しさん:2006/11/20(月) 22:39:46
ふー、びっくりした。でも、Zope関係者の意見はほぼ一点に集中している。
みんPyや実Pyは作者が電波だから、読む必要はないというもの。それ、ほんとなのかなあ。

今回の書き込みでは数字のうえでは「読まなくていい」派が圧倒的だったけれど、
レスをつけない多数のサイレントマジョリティを考慮にいれて決定させてもらいます。

みんPy・実Pyは読んだほうがいい。

188 :149:2006/11/20(月) 22:43:53
>>153
サンプルどうもです。
だけど試してたのは前者の書き方…やっぱりトラップできません。
後者もだめでした。

とりあえずキーボードをゴンゴン叩いてたら、Ctrl+Breakでコマンドプロンプトまで落とせる
(Python.exe自体を強制終了させられる)のを発見しました。
根本的な解決にはなってませんがまあいいかという感じです…。

189 :デフォルトの名無しさん:2006/11/20(月) 22:50:30
>>187
Zope関係者はみんぱいやみんぱい作者タソのことはアレコレ言うけど
実践Pythonについては否定的なこと書かないんじゃないかな?

なぜなら実践Pythonの作者がZope関係者だから

190 :デフォルトの名無しさん:2006/11/20(月) 22:55:29
>>170
個人攻撃もあった。
177もそうだろ。

191 :デフォルトの名無しさん:2006/11/20(月) 23:03:55
for i in zip(*zip(*zip(*zip([[1]])))):
  print 'happy hacking'.join([str(x) for x in i])

192 :デフォルトの名無しさん:2006/11/20(月) 23:15:04
しっぱい。

193 :デフォルトの名無しさん:2006/11/21(火) 00:24:50
こーなった。

>>> for i in zip(*zip(*zip(*zip([[1]])))):
...     print 'happy hacking'.join([str(x) for x in i])
...
[1]

いみがわからん。 >191

194 :デフォルトの名無しさん:2006/11/21(火) 00:31:03
キチガイ
Zope関係者
実践Python

195 :デフォルトの名無しさん:2006/11/21(火) 00:31:32
世の中には意味のないものや意味のない人間だってあるのです

196 :デフォルトの名無しさん:2006/11/21(火) 00:42:32
つまり世間様からの参照カウントがゼロになったら抹殺されると (違

197 :デフォルトの名無しさん:2006/11/21(火) 00:44:55
エデンから追放されるくらいならいっそ

198 :デフォルトの名無しさん:2006/11/21(火) 00:52:25
君たちにはまだ機械宇宙がある!

199 :デフォルトの名無しさん:2006/11/21(火) 01:00:35
あわわわわ。

200 :デフォルトの名無しさん:2006/11/21(火) 01:13:51
>>193
ごめ
for i in zip(*zip(*zip(*zip(*[[1]])))):
  print 'happy hacking'.join([str(x) for x in i])
こうだった。

意味は素振り的なものです

201 :デフォルトの名無しさん:2006/11/21(火) 01:38:17
やっぱりわからねーよー。これはジョークプログラムってやつ?

>>> for i in zip(*zip(*zip(*zip(*[[1]])))):
...    print 'happy hacking'.join([str(x) for x in i])
...
1

>>> for i in zip(*zip(*zip(*zip(*[[1,2,3]])))):
...    print 'happy hacking'.join([str(x) for x in i])
...
1happy hacking2happy hacking3

202 :デフォルトの名無しさん:2006/11/21(火) 04:37:30
日本語でおk

203 :デフォルトの名無しさん:2006/11/21(火) 09:34:18
>>200
基地外の素振り

204 :デフォルトの名無しさん:2006/11/21(火) 10:09:30
特定のお仕事以外にpython使ったら基地外だと思ってんの?

205 :デフォルトの名無しさん:2006/11/21(火) 10:32:49
いや、ゴメン。
よく分からないけど、とにかく誤っておくことにするよ(wwwwww

206 :デフォルトの名無しさん:2006/11/21(火) 12:14:10
柏野 雄太(かしの ゆうた)
東京理科大学理学部卒業、同大学院博士課程単位修得退学。研究所、SI ベン
チャー、ヤフー(株)を経て、ゾープ・ジャパン(株)に入社。ゾープ・ジャパ
ン(株)はその後USZope Corporationとの契約が終了し、現在はオープンソー
ス・ジャパン(株)のゾープ推進部部長である。
会社非公認水泳部の部長も兼任。本業、本読み、副業、システム開発。アカデ
ミックに愛想がつき、在宅勤務に飽きがきて、西海岸でインド人と喧嘩をし、東
海岸でカンヅメにされたのも懲りずに、東京で好き勝手にやらせてもらってい
る。

小松 亮介(こまつ りょうすけ)
法政大学情報科学部卒業。ヤフー(株)を経て、ゾープ・ジャパン(株)に入
社。現在はオープンソース・ジャパン(株)のゾープ推進部にて、Zope、Python
の特にロジックまわりを中心とした技術を担当する。
若くて有能で無口だが毒舌。海外旅行は会社の長期出張で、というラッキーガ
イ。無刻印のハッピーハッキングキーボードと公文式英語が武器である。サニー
ベールで食べたシシケバブが生涯で一番おいしいものだったそうである。

穂苅 実紀夫(ほかり みきお)
慶応大学理工学部卒業。同大学院修士課程中退。セイコーアイテック(株)を経
てゾープ・ジャパン(株)入社する。現在はオープンソース・ジャパン(株)の
ゾープ推進部にて、Zope、Pythonの特にユーザインタフェースまわりを中心とし
た技術を担当する。
コンピュータ言語のクイックラーナーで実装もOK なのだが、それを人に伝える
能力に欠如するのが玉に瑕。夜残業をするとアゴが真っ黒になるほど毛が濃い。
会社では稟議をあげたことがないが、家庭内では稟議をあげないと飲みにいけな
いらしい。

...学歴も職歴も微妙だな。まぁ、今の俺よりはマシか。

207 :デフォルトの名無しさん:2006/11/21(火) 12:21:26
ActivePython2.5まだぁ?

208 :デフォルトの名無しさん:2006/11/21(火) 12:26:42
>>206
職歴や自己紹介が妙に香ばしいのはこの際除外することにしよう。

で,だ。

Webで著者名を検索しても,実績らしきものがまったく見付からないんだよな。
唯一,一番上の人の活動実績が見付かる。
日本のZopeコミュニティで活動している人みたいだけど。
こんな風で書籍の内容は大丈夫なんだろうか。。。?

209 :デフォルトの名無しさん:2006/11/21(火) 12:43:00
大丈夫でない書籍なんていくらでもあるので大丈夫ですよw

210 :デフォルトの名無しさん:2006/11/21(火) 14:45:35
実績て何?

211 :デフォルトの名無しさん:2006/11/21(火) 14:48:01
ウェブに個人名が出る「実績」とやらの方が少ないと思うのだが。

212 :デフォルトの名無しさん:2006/11/21(火) 15:56:32
普通本を書くぐらいPythonを使い込んでいたら
自分でソフト作成して公開しているとか
少なくとも何かPython関連ニュースグループでの発言くらい見つかるだろう。
何ひとつない。

213 :デフォルトの名無しさん:2006/11/21(火) 16:16:31
>>212
> 普通本を書くぐらいPythonを使い込んでいたら
> 自分でソフト作成して公開しているとか
> 少なくとも何かPython関連ニュースグループでの発言くらい見つかるだろう。

それは君の主観では。

少なくとも俺はネット上でのプレゼンスがない人が本を書いても全然驚かないし、
出てきた本が良くても悪くてもネット上でのプレゼンスの有無に善し悪しの理由を求めない。

214 :デフォルトの名無しさん:2006/11/21(火) 16:21:24
と、著者本人が申しております。

215 :デフォルトの名無しさん:2006/11/21(火) 16:22:20
>>210
ZOPEつながりで検索したらでてきたんだけど.
著者さんはZope本体のコミッターみたいだ.
唯一コミットしたコードがこれ.

http://z3c.pov.lt/20051227104151.0E76C203302@mail.zope.org

すごい実績だ...orz...

216 :デフォルトの名無しさん:2006/11/21(火) 16:35:25
>>215
Zopeは巨大で完成度が高いから、たとえ仕事で使っていても、ほとんどバグが見つからないんだよ。

217 :デフォルトの名無しさん:2006/11/21(火) 16:54:25
コミッタでなければ本を書いてはいけないのであれば、某R本の大半は焚書にする
必要があるな。

218 :デフォルトの名無しさん:2006/11/21(火) 16:56:33
>>211
一般的な「業績」は普通に個人名が出ると思うけどな。
論文とか書くでしょ。

219 :デフォルトの名無しさん:2006/11/21(火) 17:08:03
>>212
VBとかC++とかの本を考えてみろよ。本なんて誰でも書いていいんだよ。
どちらかというと普通の仕事がなくて暇な人向きの仕事だろ。w

220 :デフォルトの名無しさん:2006/11/21(火) 17:10:37
ソースコードも,MLのログもWebに公開される昨今だ。
ましてやPythonのようなオープンソースのスクリプト言語の書籍だぜ。
Webに名前が出てこない奴の本はオレは信用しないし,そう思うヤツは多いはず。
発売前で内容が確認できないならなおさらだ。

著者さんの会社名はハッタリなのかな?

221 :デフォルトの名無しさん:2006/11/21(火) 17:19:57
どっちかというと>>219に同意。
WWW脳というか、なんでもウェブにあると勘違いしすぎ。
アンビエント・ファインダビリティあたり読んでみそ。

222 :デフォルトの名無しさん:2006/11/21(火) 17:20:52
ハッタリで商売しちゃいけないのか?

223 :デフォルトの名無しさん:2006/11/21(火) 17:23:32
2.0 の人? >>221

224 :デフォルトの名無しさん:2006/11/21(火) 17:23:36
>>219
普通の仕事が無くて暇な人が書いた本なんて読みたくないな(www

PerlやRuby,PHPで目に付く書籍は,
Webなんかで露出がある人が書いていることが多いと思う.
実際は,無名な著者が書いた売れない本が沢山あるんだろうけどね.

Pythonもいよいよ売れない本が量産される時代に突入したということか.

225 :デフォルトの名無しさん:2006/11/21(火) 17:59:07
いい事じゃん

226 :デフォルトの名無しさん:2006/11/21(火) 18:00:13
個人的な意見でいえば、仮に入門書を書くヒマがあるんなら、
その時間でプログラミングの先端に近付く勉強・研究をしたいと思うよ。

227 :デフォルトの名無しさん:2006/11/21(火) 18:08:08
2chなんか見てる暇があったらプログラミングの先端に近づく研究をしなさい

228 :デフォルトの名無しさん:2006/11/21(火) 18:08:14
今俺専門学校生だけどさ、
ほとんどの教師が本だしてるよ
特に非常勤の講師は全員出してる。

229 :デフォルトの名無しさん:2006/11/21(火) 18:12:26
224は知名度でしか物事を判断できない人ということでFA?

230 :デフォルトの名無しさん:2006/11/21(火) 18:16:28
学校の先生なら本職と入門書書くことは共通部分が多いだろうから、やりやすいんじゃないかな。

231 :デフォルトの名無しさん:2006/11/21(火) 18:16:38
>>228
出した本を授業のテキストとして使うんじゃね?
お前買わされただろ?

232 :デフォルトの名無しさん:2006/11/21(火) 18:21:39
>>225
悪いことだとは思ってないけどね.

>>229
よい評判と悪い評判がある.
Web上の露出によって善し悪しを判断できることは,いいことだと思うけどな.

233 :デフォルトの名無しさん:2006/11/21(火) 18:22:15
pychinko!

234 :デフォルトの名無しさん:2006/11/21(火) 18:25:37
で、モジックソさんはどこにいったの?

235 :デフォルトの名無しさん:2006/11/21(火) 18:32:23
知名度と力量は必ずしも比例しない。例えば某有名人はウンコなコードしか
書かなくてもハッカーと呼ばれており(ry

236 :デフォルトの名無しさん:2006/11/21(火) 18:35:36
>>235
ソイツが書いたウンコなコードが公開されているなら,晒すなりすればいいだろ
判断の基準となる情報が公開されているのが重要なんだよ
215みたいに数行のコミットログしか出てこないヤツはウンコに違いないと判断できるわけだ

237 :デフォルトの名無しさん:2006/11/21(火) 18:54:45
このスレは、本を読まずに本を評価するスレになりました。

238 :デフォルトの名無しさん:2006/11/21(火) 19:04:25
>>236はクレクレ君

239 :デフォルトの名無しさん:2006/11/21(火) 19:04:53
勇者はインパスをとなえた!実践Pythonは赤く光っている。

240 :デフォルトの名無しさん:2006/11/21(火) 19:12:14
ハックできなければ本を書けない。コミッタでなければ本を書く資格がない。

                       ―― Pythonbook より

241 :デフォルトの名無しさん:2006/11/21(火) 19:26:24
>>239
魔物かよ(wwww

242 :デフォルトの名無しさん:2006/11/21(火) 19:33:04
プログラミングpythonは最新版も翻訳されなさそうですか?

243 :デフォルトの名無しさん:2006/11/21(火) 19:54:40
無理でしょう。誰も Mark Lutz の体力についていけません。
翻訳が仕上がる前に次の版が出てしまいます。

244 :デフォルトの名無しさん:2006/11/21(火) 20:22:37
本は出版した時点で既に古い情報になるからblogやwikiで情報の小出ししている方が貢献度は高いだろう

245 :デフォルトの名無しさん:2006/11/21(火) 20:34:42
どちらも一長一短。

246 :デフォルトの名無しさん:2006/11/21(火) 20:52:53
リファレンスや小技集みたいなのだったらネットで小出しでもいいけどね

247 :デフォルトの名無しさん:2006/11/21(火) 21:05:36
>>245
いろいろしっぱいしてそうな書籍よりネットの情報の方がマシ。

248 :デフォルトの名無しさん:2006/11/21(火) 21:20:40
Python Cookbookの訳書まだ〜
入門書はもういいよぉ

249 :デフォルトの名無しさん:2006/11/21(火) 21:22:04
まぁこうやって騒いでもらえるうちが花だな

250 :デフォルトの名無しさん:2006/11/21(火) 21:25:21
実践Pythonは出版されてからが本当の勝負.
内容がアレなら誰も見向きすらしなくなる.

251 :デフォルトの名無しさん:2006/11/21(火) 22:16:40
素朴な疑問だけど「みんPy」の著者ってPythonで実績があったの?
プログラマとして有名な人なの?
少なくても「みんPy」が発売ことによって、Pythonユーザーが増えたのは
事実だよね?

252 :デフォルトの名無しさん:2006/11/21(火) 22:30:44
みんぱいの作者に粘着しているのはZope関係者ですが
このたび、Zope関係者(実績,露出皆無)が書いた書籍が発売されます
表紙には萌え絵を使ってみました
なにとぞよろしくお願いいたします

253 :デフォルトの名無しさん:2006/11/21(火) 22:33:53
>>251
>少なくても「みんPy」が発売ことによって

相変わらず日本語がヘンですね、寺田さん.

254 :デフォルトの名無しさん:2006/11/21(火) 22:34:02
プログラマとして有名、か・・・・。
いったい日本のPythonユーザの何人が当てはまるのだろう。

255 :デフォルトの名無しさん:2006/11/21(火) 22:40:13
今週のPatch/Bug summaryに日本人の名前のってるね。       Ruby関係者だけど

256 :デフォルトの名無しさん:2006/11/21(火) 22:40:56
ムネオたん

257 :デフォルトの名無しさん:2006/11/21(火) 22:42:33
それだ!!

258 :デフォルトの名無しさん:2006/11/21(火) 23:21:22
自治体の図書館に、「実践Python」の購入依頼を出してみた。
たぶん購入されると思う。読んで良かったら自分でも買うかな。

259 :デフォルトの名無しさん:2006/11/21(火) 23:35:33
し〜ん。

260 :デフォルトの名無しさん:2006/11/21(火) 23:37:19
そろそろメタ(ry

261 :デフォルトの名無しさん:2006/11/21(火) 23:57:57
reverseに返り血が無いのがウザい

262 :デフォルトの名無しさん:2006/11/22(水) 00:20:21
reversedを知らない世代はとっとと焼き場に行ってこんがり焼いてもらいなさい。

263 :デフォルトの名無しさん:2006/11/22(水) 00:22:46
>>262
物知りだねえ。エライねえ。

264 :デフォルトの名無しさん:2006/11/22(水) 01:07:05
>>262
何これ、メソッドじゃないじゃん、
しかもリスト返してないし、
まあ、使うけど

265 :デフォルトの名無しさん:2006/11/22(水) 02:28:59
科学技術計算でpython使ってる人に本を出して欲しい.
webとかあんまり興味ない.

266 :デフォルトの名無しさん:2006/11/22(水) 02:53:56
中級者向けくらいの本がいいな。
初心者向きの本はこれ以上不要。

267 :デフォルトの名無しさん:2006/11/22(水) 03:28:04
>>243
抄訳でいいからおながいw

268 :デフォルトの名無しさん:2006/11/22(水) 03:28:10
Pythonで学ぶデザパタの本とか

269 :デフォルトの名無しさん:2006/11/22(水) 04:06:07
>>265
科学技術計算やってる人って低級言語しか興味ないような気が・・・

>>266
みんPyだって後ろのほうは十分上級者向きだと思う、

270 :デフォルトの名無しさん:2006/11/22(水) 06:02:07
>269
> 科学技術計算に低級言語
FORTRAN とか使う椰子も居るんでない?

271 :デフォルトの名無しさん:2006/11/22(水) 07:24:13
Python Scripting for Computational Science
http://www.amazon.co.jp/gp/product/3540294155/

272 :デフォルトの名無しさん:2006/11/22(水) 07:44:24
>>270
そこから移りつつあるみたいだよ

273 :デフォルトの名無しさん:2006/11/22(水) 09:12:19
理論原子核物理みたいな分野は、予算も無いし、若手研究者の数も少ないのでFortranライブラリから脱却できる見込みはなさそう。

274 :デフォルトの名無しさん:2006/11/22(水) 09:20:45
>>271
この本の著者の Langtangen サメは科学技術計算のプロなので内容は信頼できる。
何度か講演を聞いた限りではとっても頭の良さそうなナイスガイだった。
この人、相当な Python スキーで同じ出版社の Diffpack の本でもバリバリ Python を使ってる。
こちらはヒジョーに高度な本。俺は科学技術計算の例題目当てで買った。

275 :デフォルトの名無しさん:2006/11/22(水) 10:05:22
>>274
ノルウェー在住の方ですか?
http://www.cirs-tm.org/researchers/researchers.php?id=299

276 :デフォルトの名無しさん:2006/11/22(水) 10:53:14
>>275
そです。英語はとても達者。

277 :デフォルトの名無しさん:2006/11/22(水) 11:09:48
マジレスすると、「現役」の人は本を出版するような暇は無い。

278 :デフォルトの名無しさん:2006/11/22(水) 11:11:10
>>277
人による。
時間管理がへたくそな現役ドカタに暇がないのは100%同意。

279 :デフォルトの名無しさん:2006/11/22(水) 11:17:53
>>278
PG/SE/PMの話ではない。科学研究者の話だ。

280 :デフォルトの名無しさん:2006/11/22(水) 11:18:11
>>277
Mark Lutzの尻の穴をおなめ

281 :デフォルトの名無しさん:2006/11/22(水) 11:32:40
>>279
研究職にもドカタが居るんですね.

282 :デフォルトの名無しさん:2006/11/22(水) 11:41:54
>>281
オレオレ

283 :デフォルトの名無しさん:2006/11/22(水) 11:47:37
>>274はノルウェーで Python 使って仕事(勉強?)してるのか。
いいなあ。うらやましい。

284 :デフォルトの名無しさん:2006/11/22(水) 11:50:23
>>281
トップクラスの学歴、瞠目すべき業績、底辺PG以下の年収。(傍からみると)土方。
アカポス(界隈)の半分近くそんな感じだと思う。
好きじゃないとやってられん。

285 :274=282:2006/11/22(水) 11:51:14
>>283
日本在住だよ。「Python 使って仕事」はその通り。

286 :デフォルトの名無しさん:2006/11/22(水) 11:52:22
前向きなんだか後ろ向きなんだか分からないけど好感が持てそうな人たちだ。

287 :デフォルトの名無しさん:2006/11/22(水) 11:54:59
土方なら下向きに掘る。掘って掘って掘りまくる。

288 :デフォルトの名無しさん:2006/11/22(水) 12:00:37
「あと3メートルだけ掘ってこの穴を埋めろ」
「常識にとらわれるな。上を向いて掘ってみるんだ。」

こんなこと言われないだけ、土方は幸せだよね。


289 :デフォルトの名無しさん:2006/11/22(水) 12:01:28
本を書くヒマが無けりゃドカタ認定なのか

290 :デフォルトの名無しさん:2006/11/22(水) 12:24:20
書くヒマ以前に執筆依頼すらこないオレ様がきましたょ

291 :Python初心者(復活):2006/11/22(水) 12:32:10
前スレの話を蒸し返すようで気が引けますが、
(レベルが低いのも…)
教えて頂けないでしょうか?

下記の通りinput.txtを作り、
Name: Tarou Bob Cheng
Age: 28 34 46
City: Tokyo New_York Beijing

それを読み込み縦横を変換するプログラムを作成
するプログラムでこのスレの先生の模範解答です。
for x in zip(*eval('[line.split()
  for line in file("input.txt")]')):
  print x
O/Pは下記の通りでOKです。
('Name:', 'Age:', 'City:')
('Tarou', '28', 'Tokyo')
('Bob', '34', 'New_York')
('Cheng', '46', 'Beijing')

ところがevalの前の*を消してみたら?
for x in zip(eval('[line.split()
  for line in file("input.txt")]')):
  print x
O/Pは、
(['Name:', 'Tarou', 'Bob', 'Cheng'],)
(['Age:', '28', '34', '46'],)
(['City:', 'Tokyo', 'New_York', 'Beijing'],)
と元通りになってしまう。引数の関数の前に
*をつける意味とその仕組みを教えて下さい。

292 :デフォルトの名無しさん:2006/11/22(水) 12:57:12
単にシーケンス型を展開して渡すだけ。<*
あと、evalとか意味わかんないで使ってるんだろうけど、そのevalは
全然意味無い

293 :デフォルトの名無しさん:2006/11/22(水) 12:59:51
教えて教えて教えてよ
自分で考えないけど教えてよ
自分で調べないけど教えてよ
めんどくさいから教えてよ


294 :デフォルトの名無しさん:2006/11/22(水) 13:00:41
くるおしいほど愛してます

295 :デフォルトの名無しさん:2006/11/22(水) 13:14:20
あわわわわわわ。

296 :デフォルトの名無しさん:2006/11/22(水) 13:22:02
>>284
残りの半分はどんなかんじなの?
好きなことやって標準並みの収入得られるならうらやましいな。

297 :デフォルトの名無しさん:2006/11/22(水) 16:25:08
>>291
import StringIO
file = StringIO.StringIO("""\
Name: Tarou Bob Cheng
Age: 28 34 46
City: Tokyo New_York Beijing
""")
data = [line.split() for line in file]
print "Without asterisk"
for x in zip(data[0], data[1], data[2]):
  print x
print "With asterisk"
for x in zip(*data):
  print x

つまり data の要素数が3のとき、
zip(data[0], data[1], data[2]) と zip(*data) は等しい。
別の例:
>>> args = (1, 2)
>>> (lambda x, y: x+y)(args[0], args[1])
3
>>> (lambda x, y: x+y)(*args)
3

298 :デフォルトの名無しさん:2006/11/22(水) 18:08:56
チュートリアルに * の使い方書いてないの?

299 :デフォルトの名無しさん:2006/11/22(水) 18:12:22
書いてあってもどうせな。相手が相手だし。

300 :チュートリアルも読まずに質問とな:2006/11/22(水) 18:20:29
         |:;:;:;:;:;:;:;:;:;:;:;:;:;:i;:;:;:;:;:;:;:;:;:;:;:;:;|
           |;:;:_:;:_:;:_:;:_;:;_:;:l:;_;:_:;:_:;:_:;:_;:_;|
        |______|_____|
        | 三|  _     _   |三 !
        | 三|  三シ   ヾ三  |三 |
        | 三′  .._     _,,..  i三 |
        ト、ニ| <でiンヽ  ;'i"ィでiン |三.|
        ', iヽ!  、 ‐' /  !、 ーシ |シ,イ
         i,ヽリ    ,' :  !.     |f ノ
          ヾ!    i ,、 ,..、ヽ   lノ
          |      _ _    イ l
            l    ,ィチ‐-‐ヽ  i /、
             ゙i、   ゝ、二フ′ ノ/'"\
              | \  ー一 / /   _,ン'゙\
          ,ィ|、  \     /_,、-'" _,.-''´ `丶、__
       _, イ  | ヽ_ 二=''" _,. -''´  """""´´  ``ー

http://www.python.jp/doc/release/tut/node6.html#SECTION006740000000000000000

301 :デフォルトの名無しさん:2006/11/22(水) 19:00:50
>>300
初心者某と同程度にキモいわ

302 :デフォルトの名無しさん:2006/11/22(水) 19:06:43
うんこ置いてきますね

つ●

303 :デフォルトの名無しさん:2006/11/22(水) 19:30:08
なんだよ、ちゃんとチュートリアルの該当リンクを貼ってくれてるいい奴じゃ
ないか。

しかしこの * の扱いは、「初めてのPython」にも載ってたけどなあ。

個人的には、** と辞書を使った引数アンパックがすごく好き。
引数一覧を、分かりやすい形で保存できるから。

def func(a, b, c):
   return a + b + c

params0 = {'a':1, 'b':2, 'c':3}
params0 = {'a':4, 'b':5, 'c':6}

print func(**params0)
print func(**params1)


304 :デフォルトの名無しさん:2006/11/22(水) 19:30:53
* 関数内やメソッド内でimport fooしたとき、fooをグローバルに反映させるにはどうしたらいいですか。
 なぜメソッド内でimportするかというと、モジュール名が実行時に決まるからです。
global foo; import foo ではだめでした。

* listに複数の要素を一度に加えるには(または同じlistに連続して追加するには)どうしたらいいですか。
list.append_all(10,20,30)またはlst.append(10).append(20).append(30) みたいにできるとうれしいんですが。
新規にメソッドを用意するしかないんでしょうか。

* pythonで、スクリプトを実行することなく構文チェックだけを行うにはどうしたらいいですか。
perlやrubyの -wc オプションに相当するものです。
今は
#!/usr/bin/python
import sys
for arg in sys.argv: compile(open(arg).read(), arg, 'exec')
というスクリプトを作っているんですけど、もっとかっこいい方法あれば教えてください。

よろしくお願いします。

305 :デフォルトの名無しさん:2006/11/22(水) 19:35:03
>>304
global使えば?

306 :デフォルトの名無しさん:2006/11/22(水) 19:46:19
>>304
最初のヤツ,global使って試してみたけどこういうのじゃないの?

>>> def foo():
... global sys
... import sys
...
>>> sys
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'sys' is not defined
>>> foo()
>>> sys
<module 'sys' (built-in)>

リストに複数の要素を追加するには
>>> l.extend([1,2,3])
とか
>>> l += [1,2,3]
すればいいんじゃね?

307 :デフォルトの名無しさん:2006/11/22(水) 20:13:51
>>304
http://www.python.jp/doc/release/tut/node7.html
extend(L)
指定したリスト中のすべての要素を対象のリストに追加し、リストを拡張します。 a[len(a):] = L と等価です。

308 :304:2006/11/22(水) 22:59:17
>>306,307
どうもありがとうございます。
globalは、関数の中からならOKだったんですが、メソッドの中からだとだめでした。
extend()どうもありがとうございました。dir([])でそれらしいメソッドがないかさがしたのですが、
extend()という名前じゃちょっとわかりづらいですね。マニュアル読み直します。
あと3番目の質問(syntax errorがないか調べる)もよろしくお願いします。

309 :デフォルトの名無しさん:2006/11/22(水) 23:03:10
>>308
メソッドでimportしたモジュールをreturnで返せばいいんじゃねえの?

310 :デフォルトの名無しさん:2006/11/22(水) 23:52:05
alt + / も無効なこんな世の中じゃ

311 :デフォルトの名無しさん:2006/11/23(木) 10:05:22
>>308
現状の方法で目的が達成できてるならそれでいいじゃん。

312 :304:2006/11/23(木) 12:03:19
globalのことですけど、こちらの勘違いでした。
file1.py で exec("global %s; import %s" % (module_name, module_name)) を実行すれば
別の file2.py でもモジュールが利用できるのだろうと勘違いしてました。
あるファイルでimportしたモジュールは別ファイルからは見えないというだけで、globalうんぬんは関係なかったですね。
おさわがせしました。


313 :デフォルトの名無しさん:2006/11/23(木) 12:59:22
python固有の問題ではないのですが、起動した〜.pyのフォルダのパスを
起動後に取得するにはどうしたらよいのでしょうか?
ソース内で絶対パスを指定することは避けたいです。

314 :デフォルトの名無しさん:2006/11/23(木) 13:04:29
>>313
自分もだいぶ悩んだことあるけど結局できずに環境変数に絶対パス入れたよ。

315 :デフォルトの名無しさん:2006/11/23(木) 13:10:17
import os, sys
os.path.abspath(os.path.dirname(sys.argv[0]))

316 :デフォルトの名無しさん:2006/11/23(木) 13:11:47
import os, sys
os.path.dirname(sys.argv[0])

317 :デフォルトの名無しさん:2006/11/23(木) 13:14:19
かぶった。
あと、sys.argv[0]でなくて、__file__ だけで実行中のスクリプトファイルのパスが得られる。

318 :デフォルトの名無しさん:2006/11/23(木) 13:15:25
おまえら今日は祝日なんだぜ?

319 :デフォルトの名無しさん:2006/11/23(木) 13:16:21
>>315
冗長。タコ。厨房。Rubyでも書いてろ。

>>317
Pythonic!!!

320 :デフォルトの名無しさん:2006/11/23(木) 13:16:57
>>318
知ってる。感謝祭だ。

321 :デフォルトの名無しさん:2006/11/23(木) 13:17:52
勤労に感謝する良い兄さんの日だっけ?
休日もパイソンパイソン

322 :デフォルトの名無しさん:2006/11/23(木) 13:19:39
Djangoのひとたちですか?

323 :デフォルトの名無しさん:2006/11/23(木) 13:23:51
インディアンに感謝して七面鳥を食べる日じゃなかったっけ

324 :デフォルトの名無しさん:2006/11/23(木) 13:24:22
ところでモジックソさんっていまなにしているの?

325 :デフォルトの名無しさん:2006/11/23(木) 13:42:27
インデントに感謝して錦蛇を食べる日です。

326 :デフォルトの名無しさん:2006/11/23(木) 13:49:13
美味いのかな、ニシキヘビ。

327 :デフォルトの名無しさん:2006/11/23(木) 13:51:07
食ったこと無い

328 :デフォルトの名無しさん:2006/11/23(木) 14:07:32
>>327
えええええええええ

329 :デフォルトの名無しさん:2006/11/23(木) 14:18:26
>>322
Zopeの次はDjango?仲間割れの演出必死だな(www

330 :デフォルトの名無しさん:2006/11/23(木) 14:20:19
Rubyに向かうトラパーの流れを感じました。

331 :デフォルトの名無しさん:2006/11/23(木) 14:28:49
>>329
Django普通に盛り上がってるじゃん。いいことだよ。

過剰反応すると、キチガイのZOPE関係者(実績露出皆無)であることがばれてしまうから
気をつけた方がいいですよ。○○○さん。

332 :Python初心者(復活):2006/11/23(木) 14:42:55
>>297
Many Tks.
*が可変個の引数をとることは知っていましたが
関数の前に付ける意味が良く分からなかったのです。
>>292
>あと、evalとか意味わかんないで使ってるんだろうけど、そのevalは
>全然意味無い

for x in zip(*[line.split() for line in file('input.txt')]):
print x

Oh No!これで全然問題無く動くじゃないですかぁ。
おぅい!前スレの
>>715,717
restrip()もeval()も必要ないってさぁ。
まさか?
>evalとか意味わかんないで使ってるんだろうけど
なんてことはないよねぇ?(w
ーーーーーーーーーーーーー
715 :デフォルトの名無しさん :2006/11/03(金) 13:55:57
>>712
[line.rstrip().split() for line in file('input.txt')]

717 :デフォルトの名無しさん :2006/11/03(金) 15:10:30
>>712
別にprintを使うなとは誰も言ってない
for x in zip(*eval(>>715)):
  print x
==============

333 :デフォルトの名無しさん:2006/11/23(木) 14:47:15
Zope関係者はDjangoコミュニティの仲間割れを画策しているの?


334 :デフォルトの名無しさん:2006/11/23(木) 14:49:19
ここから休日っぽい展開に突入する予感…

335 :デフォルトの名無しさん:2006/11/23(木) 14:51:40
つーか、例の人キャラ変わってね?

336 :デフォルトの名無しさん:2006/11/23(木) 14:52:08
新嘗祭の話か?

337 :デフォルトの名無しさん:2006/11/23(木) 15:03:30
>>333
>Zope関係者はDjangoコミュニティの仲間割れを画策しているの?

サークルクラッシャーかよ(WWWW

338 :デフォルトの名無しさん:2006/11/23(木) 15:49:00
>333
Zopeのユーザー会と同じ日にDjangoが勉強会ぶつけてきたから
恨みに思っているのかな?
Zope関係者って怖いな!!!

339 :デフォルトの名無しさん:2006/11/23(木) 16:15:00
Zope vs Django vs その他Pythonista (゚Д゚)ウマー

340 :デフォルトの名無しさん:2006/11/23(木) 16:22:18
そもそもWebアプリケーションという分野にあまり興味がない
PHPにでも任せておけば?と思う今日このごろ

341 :デフォルトの名無しさん:2006/11/23(木) 16:25:00
>>340 チラシの裏の典型を見た!!

342 :デフォルトの名無しさん:2006/11/23(木) 16:27:13
>>339
なんだこの対立構図は(WWW
ZOPEは死に体なのでDjangoの対抗になんてなり得ないだろ(WWWWWWWWW

>>340
まあ過剰反応している人は基地外なので放っておきましょう


343 :前スレ717:2006/11/23(木) 17:27:13
>>332
>Oh No!これで全然問題無く動くじゃないですかぁ。
>おぅい!前スレの
>>715,717
>restrip()もeval()も必要ないってさぁ。

それはね、他人のレス内のコードを自分のコード内に取り込むには
イキナリ>>715で参照するのはなんとなくperlっぽい無秩序な感じがする。
ここはpythonぽく他人のレス=文字列と捉えてevalをしよう
っていう冗談だったんだよ。
ちなみに関数の前の*は、単に関数の返り値に対して*を付けるのと
一緒。だからこの場合は*[line.split() for line in file('input.txt')]
という付け方に等しくなる

344 :デフォルトの名無しさん:2006/11/23(木) 18:05:09
すみません質問です;
下のプログラムでhogehogeと表示されるにはどうすればいいのでしょうか?
class Test :

def printHoge(self) :
print "hogehoge"

def __init__(self) :
print "hoge1"
self.printHoge


hoge = Test()

345 :344:2006/11/23(木) 18:09:05
すみません自己解決しました

346 :デフォルトの名無しさん:2006/11/23(木) 20:34:22
>>344
まず、インデントを付ければいいんじゃないかな。

347 :デフォルトの名無しさん:2006/11/23(木) 20:38:41
半角スペース連続で表示されなくなってるだけじゃね?

348 :デフォルトの名無しさん:2006/11/23(木) 20:54:12
>>346
初心者乙

349 :デフォルトの名無しさん:2006/11/23(木) 21:09:28
皮肉でしょ。

350 :デフォルトの名無しさん:2006/11/23(木) 21:10:45
print >> sys.stderr, "hogehoge"

>>の後には何を持ってくればOKなんですか?


351 :デフォルトの名無しさん:2006/11/23(木) 21:14:52
>>350
愛。
うふふ。

352 :デフォルトの名無しさん:2006/11/23(木) 21:16:52
>>351
愛の入力方法がわかりません。
とりあえず漢字・英語・平仮名・片仮名は試したんですが・・・
どうすればいいでしょうか?

353 :デフォルトの名無しさん:2006/11/23(木) 21:19:10
愛は入力するものじゃないの。
勉強して出直してらっしゃい。

354 :デフォルトの名無しさん:2006/11/23(木) 21:29:13
>>352
そういうときはコピペが基本だと思う

355 :デフォルトの名無しさん:2006/11/23(木) 21:39:09
352にはまだ早いな

356 :デフォルトの名無しさん:2006/11/24(金) 07:47:27
httplibとかurllib,urllib2あるけど
どれをどう使えばいいんですか?

357 :デフォルトの名無しさん:2006/11/24(金) 07:52:34
>>352
チンコを使え

358 :デフォルトの名無しさん:2006/11/24(金) 08:11:13
マニュアル読んでなおそういう質問をするレベルなら,urllibを使いなさい.

359 :デフォルトの名無しさん:2006/11/24(金) 12:37:14
>>350
ファイルオブジェクトと同様の write() メソッドがあるオブジェクトなら何でも可だと思われ。

360 :Python初心者(復活):2006/11/24(金) 12:41:25
>>343
>冗談だったんだよ。
遅まきながら…wwwwwwwww

361 :デフォルトの名無しさん:2006/11/24(金) 13:00:23
ここは親切じゃないインタネットですね!

362 :デフォルトの名無しさん:2006/11/24(金) 13:03:01
「情けは人のためならず」
・人に情けをかけておくと,巡り巡って結局は自分のためになる
・人に情けをかけて助けてやることは,結局はその人のためにならない
選ぶのは君だw

363 :デフォルトの名無しさん:2006/11/24(金) 14:48:20
だから必要なのは愛だって言っているじゃない。
勉強して出直してらっしゃい。
ふふふ。

364 :デフォルトの名無しさん:2006/11/24(金) 14:56:03
SN比が低いなあ

365 :デフォルトの名無しさん:2006/11/24(金) 15:09:55
364のせいでさらにS/N比が低くなった.

366 :デフォルトの名無しさん:2006/11/24(金) 15:15:57
perl, python & ruby - chr() vs. Unicode
http://blog.livedoor.jp/dankogai/archives/50696206.html

この問題、もっとスマートに解決することはできないもんでしょうか?


367 :デフォルトの名無しさん:2006/11/24(金) 15:25:46
>>366
そもそも0x10000を超えるUnicode(滅多に使わないけど)の扱いが不完全なのが原因
おそらくPython 3000で解決する

368 :デフォルトの名無しさん:2006/11/24(金) 15:27:06
一番問題なのは弾氏。

369 :デフォルトの名無しさん:2006/11/24(金) 15:30:06
一番一般的に普及しているOSでちゃんとサポートされてないからな>0x10000を超えるUnicode
ちゃんとサポートされれば素晴らしいと思うが、今のところ必要としているのは
言語学者と京極夏彦くらいだろう。w

370 :デフォルトの名無しさん:2006/11/24(金) 15:36:48
> Unicode文字をそのまま出力できないという点は、実はperlも似ていて、そのためにbinmode STDOUT, ':utf8';という行がある。pythonでは、以下のようにすればいい。

ここは Perl に合わせるならこうだろうなあ。

import codecs, sys; sys.stdout = codecs.getwriter("utf-8")(sys.__stdout__)

371 :デフォルトの名無しさん:2006/11/24(金) 16:17:07
ほとんど言いがかりに近いような記事だね。弾ちゃんに
・site.pyに encoding = "utf-8" って書け
・unichr()でBMP外の文字使いたけりゃ--enable-unicode=ucs4 でconfigureしろ
って教えてあげたほうがいいのかな。

372 :デフォルトの名無しさん:2006/11/24(金) 16:22:04
>>371
>・site.pyに encoding = "utf-8" って書け

あわわわわ。

373 :デフォルトの名無しさん:2006/11/24(金) 16:23:36
>>> utf32chr = lambda n: ('¥U%08X' %(n)).decode('unicode_escape')
>>> utf32chr(0x2A6B2)
u'¥U0002a6b2'


374 :デフォルトの名無しさん:2006/11/24(金) 16:50:50
福島にて聖戦が始まる。

http://www.python.jp/Zope/PyLog/PyLog/1164123776/1164341843/ [python.jp]
ここは、Lightweight Language(Perl,Python,Ruby,PHP)ユーザーを巻き込んで開催したいと思います。


375 :デフォルトの名無しさん:2006/11/24(金) 18:46:24
ちょっと気になったんだけど、
pythonのCGIHTTPServerのCGIの処理ってどうしてるんだろう?
同じCGIを複数の人がリクエスト出した場合内部でマルチスレッドで処理してるの?
それともキュー?
どこを見ればわかるの。

376 :デフォルトの名無しさん:2006/11/24(金) 18:47:46
>>375
ソースコード。

377 :375:2006/11/24(金) 19:00:48
探してみたらソースコードがありましたね。

% cat -n /usr/local/lib/python2.4/CGIHTTPServer.py | grep fork
6 If the os.fork() function is not present (e.g. on Windows),
43 have_fork = hasattr(os, 'fork')
128 if not (self.have_fork or self.have_popen2 or self.have_popen3):
204 if self.have_fork:
205 # Unix -- fork as we should
210 self.wfile.flush() # Always flush before forking
211 pid = os.fork()


378 :デフォルトの名無しさん:2006/11/24(金) 19:03:26
ずいぶん大雑把な調べ方だな

379 :デフォルトの名無しさん:2006/11/24(金) 21:13:49
力強い。

380 :デフォルトの名無しさん:2006/11/24(金) 22:39:38
pythonでCGIを書いているんですけど、ファイルロックをする方法がわかりません。
fctrl.flock()とfctrl.lockf()はファイルオブジェクトではなくファイル記述子を使うものであり、Unixでは使えるけどWindowsで使えるかは不明。
os.open()も第2引数でオプションフラグを指定できるみたいだけど、そのオプションフラグについてはマニュアルにも詳しいことは書いてないし、Windowsでは使えないみたい。
結局、どうすればいいんでしょうか。


381 :デフォルトの名無しさん:2006/11/24(金) 22:42:12
泥臭いところで苦労するよりDB使えば?

382 :デフォルトの名無しさん:2006/11/24(金) 22:56:21
listに[]でアクセスするとき、範囲外のindexであれば例外IndexErrorが発生するけど、例外を発生させるかわりにNoneを返すようなメソッドはある?
ちょうどdictのgetと同じようなものが、listにも欲しい。
>>> lst = [1,2,3]
>>> lst.get(4)
None


383 :デフォルトの名無しさん:2006/11/24(金) 23:57:38
>BMP外の文字使いたけりゃ--enable-unicode=ucs4
悩みどころ。
あの領域の漢字は滅多に出会わないから
無駄な領域喰うのもあれだし、コンパイルし直すのも面倒だし。
さりとて使われるとうまくいかない。


384 :デフォルトの名無しさん:2006/11/25(土) 01:12:37
>>380
こんなことしたいの?
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65203
別に止めはしないが時間の無駄だと思うぞ。

385 :デフォルトの名無しさん:2006/11/25(土) 01:17:34
>>382
ないんじゃね?
必要ならlistを継承して作れるけど、可読性が下がる。

386 :デフォルトの名無しさん:2006/11/25(土) 01:21:59
「エラーを出さないように工夫するプログラミングより、エラーを出して処理するプログラミングの方が楽だ」
みたいなことをPython入門(Pythonプログラミング)に書いてあった気がする

387 :デフォルトの名無しさん:2006/11/25(土) 06:32:48
>>386 チュートリアルの用語集に書いてある。

388 :デフォルトの名無しさん:2006/11/25(土) 07:20:40
http://vista.nazo.cc/img/vi6438907986.jpg

389 :デフォルトの名無しさん:2006/11/25(土) 10:14:41
WindowsでPythonをいじくって遊んでいるのですが、MeCabを利用しようとして躓きました。
MeCabの最新版とMeCab python bindingを落としてきて、MeCabをインストールして、
MeCab python bindingのsetup.pyは↓のページを参考に書き換えました。
http://www.atransia.co.jp/home/fukamachi/Diary/2006/01/15/

またpythonのバイナリは↓を利用しています。
http://www.python.jp/Zope/download/pythonjpdist

しかし、次のような出力が出てインストールできませんでした。
----ここから
running install
running build
running build_py
running build_ext
error: Python was built with version 6 of Visual Studio, and extensions need to
be built with the same version of the compiler, but it isn't installed.
-----ここまで

普段はVC++を使っているので、VS2003は入っているのですが、VC6は持っていません。
VC6無しにインストールすることってできるのでしょうか。

390 :デフォルトの名無しさん:2006/11/25(土) 10:46:45
python setup.py build --compiler=msvc

かな?
試してないから分からんけど
マニュアル読んでみて

391 :デフォルトの名無しさん:2006/11/25(土) 10:49:54
コンパイラのバージョンは合わせないといけなかったよーな・・・。
MinGW 使えば本体が VC6 でも大丈夫だと思われ。

392 :デフォルトの名無しさん:2006/11/25(土) 11:22:01
>>389
あくまで一般論だが、プログラムとそれが依存するDLL
の両者がCランタイム(libc)に依存している場合、そのバージョン/変種は
一致していなければならない。
VC6のDLL版のCランタイムはMSVCRT.DLL、VC7.1(VS2003)ではMSVCR71.DLL
なので、当然まずいわけだ。

Pythonを自分でVS2003でビルドするか、いっそCygwin環境でも使うんだね。


393 :389:2006/11/25(土) 12:28:30
Pythonのバージョンを最新版にしたところ、無事コンパイルすることができ、次の状態までいけました。
リンクがうまくいってない感じなんですが、コレはもうMecabのスレで聞いたほうがいいかな。
MeCab_wrap.cxxはコンパイル時にキャストミスしてたんで、無理やりキャストした。

394 :389:2006/11/25(土) 12:33:43
Pythonのバージョンを最新版にしたところ、無事コンパイルすることができ、次の状態までいけました。
リンクがうまくいってない感じなんですが、コレはもうMecabのスレで聞いたほうがいいかな。
MeCab_wrap.cxxはコンパイル時にキャストミスしてたんで、無理やりキャストした。

395 :デフォルトの名無しさん:2006/11/25(土) 17:37:44
>>389
ctypes使ったやり方のほうが簡単だと思うよ。

ttp://kugutsushi.s12.xrea.com/blog/index.cgi?id=10

俺が試した環境はWinXp, ActivePython2.4+ctypesモジュール

396 :デフォルトの名無しさん:2006/11/25(土) 21:08:29
>>329
ZOPE関係者ってイタいな(wwww

397 :デフォルトの名無しさん:2006/11/25(土) 22:29:26
VCでのコンパイルがからむ質問はCygwin使えとかあほな答えしかかえってこんからやめとけって

398 :デフォルトの名無しさん:2006/11/25(土) 22:43:24
Cygwin使えよw

399 :デフォルトの名無しさん:2006/11/26(日) 00:00:09
何かを始めるときに
すぐにT-Shirtsを作るのはどうしてですか?

400 :デフォルトの名無しさん:2006/11/26(日) 00:15:22
原価が安いからでは?

401 :デフォルトの名無しさん:2006/11/26(日) 00:17:45
裸じゃ寒いから

402 :デフォルトの名無しさん:2006/11/26(日) 00:18:35
そこにT-Shirtsがあるから。

403 :デフォルトの名無しさん:2006/11/26(日) 00:22:59
そろそろ自分の体を隠すような生き方は止めませんか?

404 :デフォルトの名無しさん:2006/11/26(日) 00:34:38
裸族キタ

405 :デフォルトの名無しさん:2006/11/26(日) 00:55:47
オレが脱いだら、403はヘコんで引きこもると思う。

406 :デフォルトの名無しさん:2006/11/26(日) 01:06:00
403 Forbidden

407 :デフォルトの名無しさん:2006/11/26(日) 02:25:00
dict[]とdict.getを入れ替えて、dictの[]演算子でKeyErrorをださないようにできますか。
dict.get()ではなくあくまでdict[]でアクセスしたうえで、KeyErrorのかわりにNoneが返されるようにしたいです。
d = {}
d.__getitem__ = d.get
としてみましたが
AttributeError: 'dict' object attribute '__getitem__' is read-only
とのことで、dictのメソッドは変更できないみたいです。


408 :デフォルトの名無しさん:2006/11/26(日) 02:27:03
できるけど危険だから教えない

409 :デフォルトの名無しさん:2006/11/26(日) 03:09:10
危険で結構ですので教えていただけませんか。

410 :デフォルトの名無しさん:2006/11/26(日) 03:39:00
なんでそんなことしたいの?

411 :デフォルトの名無しさん:2006/11/26(日) 03:57:22
class D(dict):
  def __getitem__(self,a):
    return self.get(a)

でそれっぽい動きしてる気がする。けど、あまりお勧めしたくない感じ・・・

412 :デフォルトの名無しさん:2006/11/26(日) 03:58:31
Rubyと違って、組み込みオブジェクトのdictの動作そのものを変えることはできない。
dictを継承したクラスを作って使うことはできる。
分かりやすく書くなら、

class MyDict(dict):
  def __getitem__(self, k):
    return self.get(k)

もしくは、↓でも同様。

class MyDict2(dict):
  __getitem__ = dict.get

dictのデフォルトの動作そのものを変えられるわけではないので、
ご期待には添えないかもしれませんが、
使うときは、こんな感じになるでしょう。

>>> MyDict({'x':2})
{'x': 2}
>>> x = MyDict(a=1, b=2)
>>> x
{'a': 1, 'b': 2}
>>> print x["a"], x["b"], x["c"]
1 2 None

こんなんでどうでしょうか。

413 :デフォルトの名無しさん:2006/11/26(日) 07:10:59
以下のサイトにPythonからログインするには、どのように書いたら良い
のでしょうか?
https://www.livly.com/login.php

http://d.hatena.ne.jp/kenkitii/20060216/p1 を見ながら色々試して
みたのですがうまくいきません。ご教示お願いできないでしょうか。
よろしくお願いします。


414 :デフォルトの名無しさん:2006/11/26(日) 09:45:50
はぁ・・・

415 :デフォルトの名無しさん:2006/11/26(日) 09:50:04
from urllib import urlopen, urlencode
data = urlencode((("nname","名前"),("password","パスワード"),("login","true")))
print urlopen("https://www.livly.com/login.php",data).read()

*名前を全角で登録してる場合文字コード注意

416 :デフォルトの名無しさん:2006/11/26(日) 10:06:41
livlyは動的なswfファイルエクスポートとかしてて、微妙に面白かったり・・・
この手のビジネスとしては極端に成功した例らしいと言う記事をどこかで読んだ・・・

417 :デフォルトの名無しさん:2006/11/26(日) 17:26:58
python 起動すると「KKCFUNC が組み込まれました」 って出ちゃいます

ttp://okwave.jp/qa2201618.html
このページの通り設定したのですがプロントが
C:\DOCUME~1\USER\MYDOCU~1>
見たいな感じでおかしなままです。
対話形式(>>>ってでるやつ)にもなりません
pythonのフルパスから実行すると普通に実行できるのですが
直せるものなら直したいです ><

418 :デフォルトの名無しさん:2006/11/26(日) 17:40:10
>>417
edlinを起動しても、そうなるな。

419 :デフォルトの名無しさん:2006/11/26(日) 18:52:42
>>417
command.com じゃなくて cmd.exe 使えば?
98とかそれ以前はシラネ

420 :417:2006/11/26(日) 19:33:24
>>419
cmd.exeで起動してるんですけどKKCFUNC組み込まれちゃいます

421 :デフォルトの名無しさん:2006/11/26(日) 20:10:40
KKCFUNCとかedlinなんて名前を聞いたのは何年ぶりだろうか。テラナツカシス。

422 :417:2006/11/26(日) 21:12:07
cygwinのpythonが呼ばれてました
しかもexeなのに24バイトでブツブツ.......

お騒がせしました(^ ^;)ゞ

423 :413:2006/11/26(日) 23:05:33
>>415
ありがとうございました。ただ、教えて頂いた方法でPythonからログインする
事はできたのですが、根本的な問題は解決できませんでした(泣 もしよろし
ければなのですが、ソースをアップしたら、見ていただけますでしょうか?
48KB・2000行弱なんですけど・・・どうかお願いしますです。

424 :デフォルトの名無しさん:2006/11/27(月) 00:55:30
まずなにが問題なのか

425 :413:2006/11/27(月) 02:07:03
今まではlivyにログインしてなくても http://www.livly.com/myshop.php?rid=3dKu
を開くと販売しているアイテム・島が表示されたのですが、先日からログイン
していないと「ログインしてください」と表示されるようになってしまい、
パースしてアイテム・島を拾う事ができなくなってしまいました。更に、
ブラウザからlivlyにログインしても、Pythonからだと「ログインしてください」
になってしまいます。
そこで、Pythonからログインしておけば回避できるかな?と思い、こちらで
教えて頂きログインしてみたのですが結果は同じでした。cookieの管理が
云々ってサイトを見てPython2.3から2.5に変更しcookielibを操作しようと
思ったのですが、やり方がイマイチわからなくて・・・

426 :デフォルトの名無しさん:2006/11/27(月) 02:26:05
要するにクッキー保存してないんでしょ。
アカウント持ってないとテストできないようなプログラムをアップされても見てくれる
奇特な人は少ないと思う。

427 :413:2006/11/27(月) 02:50:14
>要するにクッキー保存してないんでしょ。
2週間程度cookieの管理と格闘していながら理解できないヘタレです。すみません。
一応、テスト用のアカウントは作成してあります。テストできる環境の準備は
整えてありますので、見て頂ける方おりますでしょうかm(_ _;)m

428 :デフォルトの名無しさん:2006/11/27(月) 04:03:41
>>427
氏ねばいいと思うよ

429 :デフォルトの名無しさん:2006/11/27(月) 06:57:59
下手に出ても>>428みたいな返事しか返ってこないんだから、さっさとどっかにうpして添削よろしくって言い放った方がいいよ。

430 :デフォルトの名無しさん:2006/11/27(月) 07:39:45
>>425
import urllib, urllib2, cookielib
j = cookielib.CookieJar()
opener = urllib2.build_opener(HTTPCookieProcessor(j))
opener.open("https://www.livly.com/login.php",data=urllib.urlencode((("nname","名前"),("password","パスワード"),("login","true"))))
#ここでjにcookieが入る。print jで確認可能
req = urllib2.Request("http://www.livly.com/myshop?rid=3dKu")
j.add_cookie_header(req)
#これでreqのヘッダーに必要なクッキーが書き込まれる。req.header_items()で確認可能
print opener.open(req).read()

#毎回本家からクッキーを取ってくるのがアホくさいと思うなら、FileCookieJarという選択肢も可能

431 :413:2006/11/27(月) 08:34:11
>>415 426 429 430
多少書き換えてしまいましたけどできました。ありがとうございました。
これでこのまま寝ずに仕事してもへこたれません。感謝ですm(_ _)m


432 :デフォルトの名無しさん:2006/11/27(月) 11:13:43
>多少書き換えてしまいましたけど
どうしてここに引け目を感じているような書き方なのか理解出来ない。

433 :デフォルトの名無しさん:2006/11/27(月) 11:49:31
>>431
多少書き換えたものを晒しておけば、誰かの肥やしになるかもしれん。

434 :デフォルトの名無しさん:2006/11/27(月) 14:10:03
簡単な質問で申し訳ないんだけど、
数値A":" リストの内容 "文字列="数値B "文字列="数値C
っていう風に出力したいんだけど、どうすればいいの?

435 :デフォルトの名無しさん:2006/11/27(月) 14:36:26
print """数値A":" リストの内容 "文字列="数値B "文字列="数値C """

436 :434:2006/11/27(月) 14:39:40
自己解決しました。多少無理矢理ではありますが。
print str(strA) + ": " + str(array[0:4]) + " aaa=" + str(strB) + "ccc=" + str(strC)
としました。※len(array) = 4

437 :434:2006/11/27(月) 14:41:48
>>435変数の付け方がおかしかったです。
print str(intA) + ": " + str(array[0:4]) + " aaa=" + str(intB) + "ccc=" + str(intC)

438 :デフォルトの名無しさん:2006/11/27(月) 14:42:09
文字列フォーマットを使いなさい。
%s数値やリストも勝手に文字列表記に変換してくれます。

http://www.python.jp/doc/release/lib/typesseq-strings.html

439 :434:2006/11/27(月) 14:42:27
>>437
さらにアンカーを間違えました。もうぐだぐだですいません。
正しくは>>436です。

440 :434:2006/11/27(月) 14:58:08
>>438
素晴らしい。使わさせていただきました。ありがとう。

441 :デフォルトの名無しさん:2006/11/27(月) 15:03:05
指導料300円になります。

442 :デフォルトの名無しさん:2006/11/27(月) 15:06:59
文字列フォーマットで変数が多くなると、「この位置に表示される変数はどれだっけ」って
後ろの変数リストを指で数えたりすることない?

443 :デフォルトの名無しさん:2006/11/27(月) 15:19:41
>442
"%(変数名)s" % locals() はどうだろう

444 :デフォルトの名無しさん:2006/11/27(月) 15:21:07
>>441
安すぎ。もらわない方がマシ。

>>442
そういうときは辞書を渡す。

http://www.python.jp/doc/release/lib/typesseq-strings.html
のまんなからへん。
>>> print '%(language)s has %(#)03d quote types.' % {'language': "Python", "#": 2}
Python has 002 quote types.

445 :デフォルトの名無しさん:2006/11/27(月) 15:43:24
>>441
つ●○○

446 :デフォルトの名無しさん:2006/11/27(月) 17:04:05
それは税込み210円。

447 :デフォルトの名無しさん:2006/11/27(月) 17:30:26
>>441,446
ドカタ価格。

448 :413:2006/11/27(月) 20:10:49
def (url, hoge):

-中略-

urllib._urlopener = ShopURLopener()
j = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(j))
data = urllib.urlencode((("nname","名前"),("password","パス"),("login","true")))
opener.open("https://www.livly.com/login.php",data)
#リクエストurlは他defで指定
req = urllib2.Request(url)
try:
data = opener.open(req)
except:
print "失敗"
return 0

教えて頂いたソースが最初動かなくて、こんな感じで動きました。その後、
脱字に気が付いて教えて頂いたソースでもちゃんと動きました。書き換える
必要は全くなかったです。ありがとうございました。

449 :デフォルトの名無しさん:2006/11/28(火) 01:26:07
今日からPythonの勉強はじめますた。

a=u'ちんちん'
b=u'おっき'
print a+b*2

450 :デフォルトの名無しさん:2006/11/28(火) 02:19:16
結果は!
結果は!

451 :デフォルトの名無しさん:2006/11/28(火) 02:20:50
???n???n?¨?A?≪?¨?A?≪

452 :デフォルトの名無しさん:2006/11/28(火) 02:39:39
モジックソさん、○○○さんかわいそう。

453 :デフォルトの名無しさん:2006/11/28(火) 02:49:27
↑が一番かわいそう

454 :デフォルトの名無しさん:2006/11/28(火) 04:22:12
もじっくそって何?

455 :デフォルトの名無しさん:2006/11/28(火) 04:34:52
>>453
○○○さん,遅くまでご苦労なんだぜ?

456 :デフォルトの名無しさん:2006/11/28(火) 13:15:42
ユークリッド互除法

最大公約数
def gcd(a,b):
  if b == 0:
    return a
  gcd(b,a%b)

print gcd(21,15)

---結果---
None
---------

何故?

457 :デフォルトの名無しさん:2006/11/28(火) 13:19:57
- gcd(b,a%b)
+ return gcd(b,a%b)

458 :デフォルトの名無しさん:2006/11/28(火) 13:20:39
プログラムが間違っているから

459 :デフォルトの名無しさん:2006/11/28(火) 13:25:27
>>457
ありがとう。なるのはなった。
でも理由がピンとこない。

460 :デフォルトの名無しさん:2006/11/28(火) 13:26:34
理由がピンとこない理由がピンとこない

461 :デフォルトの名無しさん:2006/11/28(火) 13:28:17
なぜ a と書かずに return a と書くかはピンとくるのか?

462 :デフォルトの名無しさん:2006/11/28(火) 13:30:10
Rubyとごっちゃにしてる説を唱えてみる

463 :デフォルトの名無しさん:2006/11/28(火) 13:57:55
今やっと理解できた。
>>461
値を返すのはb == 0のときだけでいいから、gcd(b,a%b)の部分は関数呼ぶだけでいいと思ったので。
>>462
たぶんそう。rubyのスクリプト例見ながら練習してるから。
ソースはなるべく見ないようにしてるんだけど、流れが分からないときだけ見るようにしてて、
それでごっちゃになってるんだと思う。

464 :デフォルトの名無しさん:2006/11/28(火) 14:14:56
>>462
Perlもだっけ?<最後に評価した値を勝手にreturn

465 :デフォルトの名無しさん:2006/11/28(火) 15:00:49
>>463
せっかくだから非再帰版も作ってみれ。簡単だから。

466 :407:2006/11/28(火) 20:54:33
>>411,412
おくれましたが、どうもありがとうございます。
サブクラスで対応することにしました。
cgi.FieldStorageからデータをdictにコピーしてHTMLテンプレートで使っているんですが、
params.get('key')よりはparams['key']のほうが喜ばれるので。デザイナーに。
PHPもJavaもRubyもエラーにならなかったので、Pythonでエラーがでるのには驚きました。

467 :デフォルトの名無しさん:2006/11/28(火) 20:57:28
普通はエラーになったほうが嬉しくないか?

468 :デフォルトの名無しさん:2006/11/28(火) 21:02:18
悪貨は良貨を駆逐するとはこのことだな。

469 :デフォルトの名無しさん:2006/11/28(火) 21:31:38
>>467
俺の感覚からすると信じがたいことだが、
プログラムや入力データを書き間違えていてもエラーにはならない方がよい、と考える人が結構いるみたい。

以前、某システムの互換品を作っていて、その元となるシステムが
ありえないぐらい文法エラーや実行時エラーに寛容なのに驚いた。
当然ながらそのシステム用に流通しているプログラムや入力データの中にも
大量のエラーが見つかった。システム側にエラーを指摘する機能が乏しいので
エラー入りのデータがそれと気付かれることなく出回るわけだ。

似たような事例はたぶんたくさんあると思う。ウェブブラウザはその典型ではないだろうか。
タグが閉じてなくても表示してくれる方がうれしいこともあるだろうし(俺はイヤだが)
.cssファイルや.jsファイルが見つからなくてもよきに計らってくれる方がうれしいこともあるだろう(俺はイヤだが)。

470 :デフォルトの名無しさん:2006/11/28(火) 21:31:49
List.findで要素が見付からなかったときOCamlでは例外が発生してSMLでは
option型のNONEを返すんだが、俺はSMLのほうが好きだなあ。
動的型付けの言語では例外出たほうがいいのかもしれない。
でもRubyでHash#fetchはあんまり使わない気がする。

471 :デフォルトの名無しさん:2006/11/28(火) 21:45:58
どちらが好ましいかはケース・バイ・ケースだよね。だから [] と get があるわけだ。
でも、>>466のケースは文章を読む限りではエラーになったほうが良さそうだよな。

472 :デフォルトの名無しさん:2006/11/28(火) 22:08:24
>>469
http://www.radiumsoftware.com/0608.html#060809

473 :デフォルトの名無しさん:2006/11/28(火) 22:40:38
ウェブブラウザはもちろん、間違ったHTMLでも”正しく”表示してくれるにこしたことはないだろう。
業務システムだって、間違ったデータでも正しく処理できるならエラーを出す必要はない。

問題は、間違ったデータで正しい処理をする超能力がどれだけあるかだが。

474 :デフォルトの名無しさん:2006/11/28(火) 22:44:05
?

475 :デフォルトの名無しさん:2006/11/28(火) 22:57:25
pythonのインタラクティブシェルだと

print u'てすと'
てすと

となるのですが、ipythonだと
print u'てすと'
文字化け

となっちゃいます。~/.ipython以下に設定するとことかあるのでしょうか?

476 :デフォルトの名無しさん:2006/11/29(水) 00:51:17
>>475
print unicode('ほげ', 'mbcs')
とやったときはどうなる?

477 :デフォルトの名無しさん:2006/11/29(水) 00:59:38
list = [1,2,3]
"".join(list)
じゃ無理だから、似たような方法ない?

478 :デフォルトの名無しさん:2006/11/29(水) 01:08:02
def hoge(x=[1]):
x.append(1)
print x

>>> hoge()
[1, 1]
>>> hoge()
[1, 1, 1]

はめられたああああ!
初期化してくれねぇのかよ!

479 :デフォルトの名無しさん:2006/11/29(水) 01:09:29
>>478
横着しないで入門書読めば?

480 :デフォルトの名無しさん:2006/11/29(水) 01:14:48
>>476
reduce(lambda x, y:str(x)+str(y),[1,2,3])とか?

481 :デフォルトの名無しさん:2006/11/29(水) 01:20:16
>>479
いや、読み返して絶叫したんだよ。
正しくは「はまった俺はアホ」でした。すみません><

482 :デフォルトの名無しさん:2006/11/29(水) 01:31:00
>>480
thanx

483 :デフォルトの名無しさん:2006/11/29(水) 01:46:17
組み込み関数ならlambda使わず一発で出来るよ

"".join(map(str,list))

484 :デフォルトの名無しさん:2006/11/29(水) 02:00:19
>>481
まともな入門書なら、なぜそのようなことが起こるのか、たいてい書いてあるな。

>>477
冗長に思えるかも知れないけど、リストコンプリヘンションは表記として分かりやすいと思う。

"".join([str(x) for x in [1,2,3]])

あと、listという変数名は使わない方がいい。


485 :デフォルトの名無しさん:2006/11/29(水) 02:17:23
>>484
>まともな入門書なら、なぜそのようなことが起こるのか、たいてい書いてあるな。

ハマりどころだからね.
初心者がハマりやすい罠を、丁寧に解説してあるのがよい入門書の条件だと思う.

486 :デフォルトの名無しさん:2006/11/29(水) 03:20:32
pythonの関数名で、アンダーバーをいれる・いれないの基準ってありますか。
例えばdict.has_key()はアンダーバーが入っててhasattr()は入っていないんですが、ここらへんの命名方針があれば教えてください。


487 :デフォルトの名無しさん:2006/11/29(水) 07:10:49
http://oldriver.org/python/pep-0008j.html
> 関数名

> 関数名は lowercase 方式で命名。アンダースコアで単語を区切って可
> 読性を上げてもよい。mixedCase 方式は、既に広く使われているような文
> 脈(たとえば threading.py)で、互換性を保つ場合にのみ許される。

> メソッド名

> 関数の場合とほぼ同じ。lowercase 方式で命名し、可読性を上げる目的で、
> アンダースコアで単語を区切るのは構わない。

さじ加減次第?

488 :475:2006/11/29(水) 07:32:24
test = u'てすと'
print u
てすと

となりますた。なんでだろう。

489 :デフォルトの名無しさん:2006/11/29(水) 07:35:49
>>478
http://www.python.jp/doc/release/tut/node6.html#SECTION006700000000000000000
>重要な警告: デフォルト値は 1 度だけしか評価されません。デフォルト値がリストや辞書のような変更可能なオブジェクトの時にはその影響がでます。例えば以下の関数は、後に続く関数呼び出しで関数に渡されている引数を累積します:

490 :デフォルトの名無しさん:2006/11/29(水) 11:12:18
>>487
Python 3.0で統一されるかも根。

491 :Python初心者(復活):2006/11/29(水) 12:14:41
またご指導下さい。
Python2.5ではgeneratorにおいてsend()によって「値を
渡す」ことが出来るようになったとある。
例えば:
lang = ['C','Java','Perl','Lisp',
    'Python','Ruby']
   
def conLang (maximum):
  
  i = 0
  while i < maximum:
    
    val = (yield lang[i])
    if val is not None:
      i = lang.index(val)
    else:
      i += 1    

if __name__=='__main__':

  x = conLang(6)
  print x.next()
  print x.next()
  print x.send('C')
  print x.next()
  print x.send('Python')
  print x.next()

以上のコードから、原則的にyield文の戻り値は代入
出来ないが、send()とは結局(yield ??)の
「代入」を可能にするということですか?


492 :デフォルトの名無しさん:2006/11/29(水) 12:43:19
知らない

493 :デフォルトの名無しさん:2006/11/29(水) 13:27:20
>>488

そもそも、環境を書け。
http://lowlife.jp/nobonobo/zine/5/6.html
あたりは参考にならんのか?

494 :デフォルトの名無しさん:2006/11/29(水) 13:41:43
>>> def mygen():
...  while 1:
...   val = (yield 10)
>>> __import__('dis').dis(mygen)
 2      0 SETUP_LOOP       10 (to 13)
 3   >>  3 LOAD_CONST        1 (10)
       6 YIELD_VALUE    
       7 STORE_FAST        0 (val)
       10 JUMP_ABSOLUTE      3
    >>  13 LOAD_CONST        0 (None)
       16 RETURN_VALUE    
(参考: ttp://www.python.jp/doc/2.4/lib/bytecodes.html)
直前のnext()やsend()が値を返した直後はYIELD_VALUEまで実行されている。
send(arg)を呼ぶとargをTOSに積んでSTORE_FAST以降を実行。
だからval=argになって次のYIELD_VALUEまで進んで値を返す...ということじゃないかな。
next()を呼んだときはTOSにNoneを積むから、next()はsend(None)と等価だと思う。
>>> def mygen2():
...  while 1:
...   yield 10
 2      0 SETUP_LOOP        8 (to 11)
 3   >>  3 LOAD_CONST        1 (10)
       6 YIELD_VALUE    
       7 POP_TOP      
       8 JUMP_ABSOLUTE      3
とにかく2.5ではnext()を呼ぶとTOSに何かを積むらしい。2.4ではYIELDの前後はこうだった。
 3   >>  3 LOAD_CONST        2 (10)
       6 YIELD_VALUE    
       7 JUMP_ABSOLUTE      3


495 :デフォルトの名無しさん:2006/11/29(水) 13:47:12
> val = (yield lang[i])

> yield文の戻り値は代入出来ないが

してるじゃん。

496 :デフォルトの名無しさん:2006/11/29(水) 14:00:52
>>495
コードだけみてもの言わないでね^^


497 :デフォルトの名無しさん:2006/11/29(水) 14:01:51
>>495
早漏ぎみですね・・・ストレスでせうか?

498 :デフォルトの名無しさん:2006/11/29(水) 14:05:38
ストレス溜まってる時って遅漏にならねえ?

499 :デフォルトの名無しさん:2006/11/29(水) 14:38:11
質問です。

Tkinterを使おうと思っているんですけど
Microsoft Visual Studioのダイアログエディタみたいに、
GUIでボタンなどの部品を配置するソフトはありませんか?

500 :デフォルトの名無しさん:2006/11/29(水) 23:32:35
EmEditorやらサクラエディタやらTerapadでコード書く人って、
Pythonにはあまりいなそうだね。
需要が無いからか、色分け設定用意されてないことも多いし…。

501 :デフォルトの名無しさん:2006/11/30(木) 00:19:50
サクラエディタでやってるけど。
色分け、普通に出来てるよ。

少数派なの?
みんなはなに使ってるのよ。

502 :デフォルトの名無しさん:2006/11/30(木) 00:23:02
>>499
普通は、RADが裏で勝手なコードを吐くのが
イヤだから、スクリプト言語を使ってると思うんだ。

そういうのがいいなら、僕なら netBeansかなにかに
しとくなぁ。

503 :デフォルトの名無しさん:2006/11/30(木) 00:30:27
Emacsでしょ、普通

504 :デフォルトの名無しさん:2006/11/30(木) 00:34:09
ファイル構成が把握できるぐらいの小規模ならEmEditorで書いてますが・・・

505 :デフォルトの名無しさん:2006/11/30(木) 00:54:04
>>503
日本語の扱いが他のアプリと統一できないのが嫌。

506 :デフォルトの名無しさん:2006/11/30(木) 01:01:37
>>505
設定が悪いだけでしょ

507 :デフォルトの名無しさん:2006/11/30(木) 01:04:50
ttp://crooc.com/gtfzm

508 :デフォルトの名無しさん:2006/11/30(木) 01:34:21
>>507
自動補完って、普通の入力補完と違うの?
サクラエディタで、色分けと普通の入力補完してるけど。

最初に .py の拡張子付きで保存しないと、機能が使えない
のが多少難だけど、特段不満ないなぁ。

キーワードが少し足りないと思うけど、
設定ファイルに自分で書き足せば問題なし。

ああ、自動補完て、もしかして RAD のように
コード生成してくれる機能のこと?

あったら便利かもしれないけど、
コードの雛形をコピペするので十分かも。

509 :507:2006/11/30(木) 02:32:58
>>508
最近調べていないから断言出来ないけど、
サクラエディタの補完機能はおそらく、マクロ実行コマンドを叩いてから実行されるが、
crescent eve の場合はうざい位に候補を自動で出してくれる。※編集中ファイル内の単語から候補を抽出。

EmEditor、秀丸とかも試しんですが、いづれもマクロを使って実現しているだけで、
必ずトリガーが必要で好きじゃない。

サクラで↑のような自動補完機能があれば即乗り換えなんですが、
どうでしょうか?

というか今から調べてみます。

510 :デフォルトの名無しさん:2006/11/30(木) 02:44:31
terapadで書き起こして、あとはIdleでちまちま修正

>>499
663 名前: 662 [sage] 投稿日: 2006/07/29(土) 11:50:08
SpecTIXというのがあった.
ttp://www.python.net/crew/mike/src/Spectix/Spectix.html


511 :デフォルトの名無しさん:2006/11/30(木) 02:51:59
もしMac使ってる人がいたら、
TextMateというエディタがおすすめ。
たしかTurboGearのスクリーンキャストで
使われてたので見た事ある人いるかも。

512 :デフォルトの名無しさん:2006/11/30(木) 02:55:01
>>509
あ、自動補完ってトリガーがいらないのね。
サクラエディタではたしかに、ctr-space 叩いてるわ。

あと、サクラのPython での色分けはね、
自分で設定とかしないといけないのよ。

自分は、↓ あたりみて、あれこれやった。
(例にあがっているのは、tclだけれど)
http://www2u.biglobe.ne.jp/~k_hiray/ps_db/fsw/wiki.cgi?page=%BF%A7%CA%AC%A4%B1%C9%BD%BC%A8%A4%B9%A4%EB


513 :デフォルトの名無しさん:2006/11/30(木) 03:08:49
mac使ってる〜研究室で.
matlabモードもあるかな…

514 :デフォルトの名無しさん:2006/11/30(木) 03:22:24
>>513
TextMateのデフォルトではインストールされてないけど、
下の言語を追加するプラグインを入れてプラグイン一覧を見てみると
mathlabプラグインもあったよ。
http://sg.validcode.at/2006/11/7/textmate-getbundle-bundle



515 :デフォルトの名無しさん:2006/11/30(木) 03:27:04
どーも,おきたら読んで見る

516 :デフォルトの名無しさん:2006/11/30(木) 03:30:32
>>511
TextMateは日本語入力が難しいって話だけど、どのへんがおすすめなの?
構文色分け程度なら他のエディタもあるし。

517 :デフォルトの名無しさん:2006/11/30(木) 03:54:47
>>516
日本語の問題はhetimaさんという人がプラグイン書いてくれたおかげで、
大分ましになったかな。作者は次のMacOSXの機能を利用して完全に解決
すると公言してる。
魅力は、他のIDEのようにフォルダを階層表示するドロワーを備えていて、
関係ファイルをタブ表示できるGUI機能。文字列を選択してオプションキー
を押すだけで選択範囲を行方向の選択から列方向の選択に切り替えて複数の
行を編集できたり、鬼車という正規表現エンジンがかなり強力で文字列の
検索置換の自由度が高いなどのエディタ機能の充実。それと、選択文字列を
シェル変数に入れてそれをスクリプトで処理してそのままエディタの文字と
置換できるので、シェルで動く言語なら何でもスクリプトが書けて、
既に何十という言語に対応した文字の色分けやスクリプトをパッケージを
まとめたバンドルというプラグインが存在してる事かな。
だめな部分は、シェアウェアだという事と、日本語に完全に対応してない、
Emacsに比べるとまだまだスクリプトが充実してない事かな。

518 :デフォルトの名無しさん:2006/11/30(木) 04:14:04
>>515
じゃあ一応TextMateのダウンロード先も
http://macromates.com/

519 :デフォルトの名無しさん:2006/11/30(木) 07:30:31
ちょい古いソフトだけどKaaEdit使ってます。
http://www.vector.co.jp/soft/win95/writing/se177399.html

520 :デフォルトの名無しさん:2006/11/30(木) 08:45:59
グレートにマイナーなエディタ使ってるから、色分けできねえ。
コマンド一覧吐き出させる方法があれば、設定を自作できるにしても、
本体だけでできることを少なくしてる特性上、満足なモノはできないっぽい。
かといって、全部のモジュールを拾うのは大変だし。
がんばっても入力補完できないから、alt /壊れてるIDLEの方がマシか…。

521 :デフォルトの名無しさん:2006/11/30(木) 10:24:50
色分けって、そんなに必要?

自分は、入力補完はないとやってられないが、
色分けは特段に必要性とか感じないけど。

522 :デフォルトの名無しさん:2006/11/30(木) 10:27:06
>>520
で、そのグレートにマイナーなエディタってなに?
いや、避けて通りたいのでw

523 :デフォルトの名無しさん:2006/11/30(木) 11:00:12
もうメモ帳でいいじゃないか。

524 :デフォルトの名無しさん:2006/11/30(木) 11:04:48
オレはバイトコードを手書きしてるんだぜ?

525 :499:2006/11/30(木) 11:23:47
>502 >510
レスthanx

SpecTIXが消滅している模様・・・

TkinterのGUIビルダーは結局ないのか?!

GUIビルダーを使いたいならPyGTKかwxPythonを使うしかないのか?!?!

526 :デフォルトの名無しさん:2006/11/30(木) 11:37:44
>>525
コードの雛形をコピペするんじゃ、
ダメなの?

そんなにGUIビルダーが必要かなぁ。
Java でRAD のおせっかいにはうんざりしたクチなので。

まあ、でも、オンラインのコードのコピペOKの
ちゃんとしたクイック・リファレンスはほしいと思ってる。

527 :デフォルトの名無しさん:2006/11/30(木) 12:14:17
>>525
> GUIビルダーを使いたいならPyGTKかwxPythonを使うしかないのか?!?!

それはイヤなの?

528 :デフォルトの名無しさん:2006/11/30(木) 12:33:20
javaで代数螺旋のリチュースをかきたいのですが、
public class Lituus extends Applet {
public void paint (Graphics g) {
g.setColor(Color.red);
int centerx = getWidth()/2;
int centery = getHeight()/2;
g.drawLine(0,centery,centerx*2,centery);
g.drawLine(centerx,0,centerx,centery*2);
g.setColor(Color.blue);
int n=360;
double zoomx=10,zoomy=10;
double delta =Math.PI*2/n;
int radius = (centerx<centery)? centerx*3/4:centery*3/4;
double c =Math.sqrt(2*Math.PI)*(radius);
double t = 0.001;
double r =Math.sqrt(ここ);
int lastx = (int)(r*Math.cos(t))+centerx;
int lasty = -(int)(r*Math.sin(t))+centery;
for (int i=1;i<=n;i++){
t+=delta;
r=Math.sqrt(ここ);
int x = (int)(r*Math.cos(t*zoomx))+centerx;
int y = -(int)(r*Math.sin(t*zoomy))+centery;
g.drawLine(lastx,lasty,x,y);
lastx=x;
lasty=y;
}
}
}
ここってかいたとこができればできるらしいのですが、わかりますか?おしえてください

529 :528:2006/11/30(木) 12:38:46
すみません。まちがえました

530 :Python初心者(復活):2006/11/30(木) 12:39:50
>>494
>next()はsend(None)と等価だと思う。
本当だぁ!
>>491
の最後を
  x = conLang(6)
  print x.send(None)
  print x.next()
  print x.send('C')
  print x.send(None)
  print x.send('Python')
  print x.next()
と変えてみたが、全く同じ動作をする…
しかし、
    if val is not None:
      i = lang.index(val)
    else:
      i += 1
だから、Noneがsend()されればelse:以降が
実行されるってのは、当たり前だと言えば
そうだが…

531 :デフォルトの名無しさん:2006/11/30(木) 13:04:10
対話環境の日本語の扱いがうまく行きません。

http://lowlife.jp/nobonobo/zine/5/6.html
ここを見てsitecustomize.pyを設置しているんですが、

---------------------
Python 2.4.3 on Windows XP
>>> sys.getdefaultencoding()
'mbcs'
>>> print u'ほげ'
ほげ
---------------------
Python 2.3.4 on RedHat EL4
>>> sys.getdefaultencoding()
'UTF-8'
>>> print u"ほげ"

---------------------
Python 2.3 on Debian serge
>>> sys.getdefaultencoding()
'euc-jp'
>>> print u"ほげ"
Traceback (most recent call last):
File "<stdin>", line 1, in ?
UnicodeEncodeError: 'euc_jp' codec can't encode character u'\xb2' in position 3\
: illegal multibyte sequence
---------------------

>>> print u"ほげ" がうまく行くのはWindowsだけです。
何かアドバイスをいただけないでしょうか?


532 :531:2006/11/30(木) 13:06:03
なお、どのマシンでも、対話環境でなくてファイルに記述すれば、
print u"ほげ"
は問題なく「ほげ」と表示されます。


533 :Python初心者(復活):2006/11/30(木) 13:21:20
アキュムレータ(累積器)プログラムのクラスを使用した
正式ヴァージョンと関数を利用した簡易ヴァージョンです。
class Accumulator:
  def __init__(self, start):
    self.val = start

  def incr(self, amount):
    self.val += amount

  def getValue(self):
    return self.val

def accum(n):
 s = [n]
 def infunc(i):
  s[0] += i
  return s[0]
 return infunc

if __name__=='__main__':
  
  val = Accumulator(5)
  val.incr(3)
  print val.getValue()
  val.incr(4)
  print val.getValue()
    
  ac = accum(5)
  print ac(3)
  print ac(4)

534 :Python初心者(復活):2006/11/30(木) 13:22:19
ポールグレアムが、「Pythonユーザーはなぜ以下のように
書けないか疑問に思って良いと思う。
def foo(n):
 return lambda i: return n += i
あるいは、
def foo(n):
 lambda i: n += i」
http://www.shiro.dreamhost.com/scheme/trans/icad-j.html
で書いている。上記簡易ヴァージョンより簡単な書き方は
ないのでしょうか?

535 :デフォルトの名無しさん:2006/11/30(木) 13:47:41
>>525

これはちがうの?
http://sourceforge.net/projects/ptkgb/

536 :デフォルトの名無しさん:2006/11/30(木) 13:56:11
>>533-534
自分も以前に調べたけど、ないと思う。
Pythonには
1.lambda関数には、式は書けるが、文は書けない。
2.クロージャが参照している変数は、書き換えはできない。
という制約があるから。

Guidoはlambdaが嫌いなので(見づらくなりがちだから)、1.が変わることは
ないだろうけど、2.は単に、代入するとローカル変数の宣言になってしまうと
いうだけなので、適当な表記法さえ見つかれば、クロージャの参照している変
数の書き換えの機能を追加しても良い、という話になっているらしい。以前の
Pythonスレにそう書いてあった。


537 :デフォルトの名無しさん:2006/11/30(木) 14:19:33
こんな感じ?

def foo(n):
    a = [n]
    return lambda i: a.__setitem__(0, i + a[0]) or a[0]

f = foo(1)
print f(2)
print f(3)
print f(4)

538 :デフォルトの名無しさん:2006/11/30(木) 14:22:41
多少長いがこんな方法もある。

class foo:
    def __init__(self, n):
        self._n = n
    def __call__(self, i):
        self._n += i
        return self._n

f = foo(1)
print f(2)
print f(3)
print f(4)


539 :デフォルトの名無しさん:2006/11/30(木) 15:12:07
>>531
うまくいかない環境のPythonのバージョンを
うまくいく環境のものに合わせればいいのでは。

540 :536:2006/11/30(木) 15:26:47
>>537-538 うわー、やろうと思ったら何とかなるのね。
しかし、537は無理やり過ぎないか?


541 :デフォルトの名無しさん:2006/11/30(木) 15:56:47
ここだけの話だが俺は昔lambdaをランバダと読んでいた。
知らないだろ?ランバダ。

542 :デフォルトの名無しさん:2006/11/30(木) 16:01:23
>>531
うちは XP で Python2.5だけど、
その方法ではうまくいかない。
(うちだけなのか?)

対話モードでは、諦めて
print unicode('ほげ', 'mbcs')
方式でやってるなぁ。

543 :デフォルトの名無しさん:2006/11/30(木) 16:36:38
LANG=ja_JP.eucJPにしてみるとか

544 :531:2006/11/30(木) 17:07:52
>>539 残念ながら、バージョンは変えられないのです。

>>543 それはもちろんやっております。


ところで、>>531の書き込みが一部、おかしくなっていました。

Python 2.3.4 on RedHat EL4
>>> print u"ほげ"
≫ ←ここ

「≫ 」になっていますが、実際は a の上に ~ が付いたものが出るなどの文
字化けになっています。まあ些細なことですが。


545 :デフォルトの名無しさん:2006/11/30(木) 19:37:03
そもそも print u'ほげ' が対話環境で問題なく出力される人って、どのぐらい
いるんだろうか?いたら環境を教えて欲しい。ちなみに自分はダメ。


546 :デフォルトの名無しさん:2006/11/30(木) 19:40:56
すくなくとも Python 2.4.2 では手元の Unix/Linux で問題なく
出力できている。

547 :デフォルトの名無しさん:2006/11/30(木) 19:44:19
>>545
Linux (FC5 UTF-9)だが、問題なく出力される

548 :デフォルトの名無しさん:2006/11/30(木) 19:45:32
>>> print u"ほげ"
造族

ナニコレ(WWWWWWWWWWWWWW

549 :デフォルトの名無しさん:2006/11/30(木) 19:46:39
win2k + Python2.4.3、2.5 (コマンドプロンプト)
FreeBSD6.1R + Python2.4.3、2.5 (PuTTY経由)

でもいけるようだ

550 :デフォルトの名無しさん:2006/11/30(木) 19:47:54
つ >> print "ほげ"
   ほげ
これで不都合ないので問題ない

551 :デフォルトの名無しさん:2006/11/30(木) 20:08:08
XPsp2 Python2.5だが問題なく表示されるぜ
sys.getdefaultencoding()が
asciiでもutf-8でもmbcsでも問題ない

552 :デフォルトの名無しさん:2006/11/30(木) 20:13:56
>525
Python Tk Gui Builder

出たばかりのソフトか

553 :デフォルトの名無しさん:2006/11/30(木) 22:07:30
TextMateで多分作者?がpythonのサンプルコード書いてる
スクリーンキャストあったので、よかったらどうぞ

http://macromates.com/screencast/python_part_1.mov

554 :デフォルトの名無しさん:2006/11/30(木) 22:17:18
日本語のインライン表示ができないエディタなんてつかえねえやアホが。

555 :デフォルトの名無しさん:2006/11/30(木) 22:37:38
ttp://d.hatena.ne.jp/a4w/20061130/1164877152

Python教えてるんだと。
一回生ということは大学かなあ?

556 :デフォルトの名無しさん:2006/11/30(木) 23:10:09
〜回生って関西の表現なのかな.

557 :デフォルトの名無しさん:2006/11/30(木) 23:26:47
実践Pythonって今日発売日だよね.
買った人いますか?
ブログ検索では買った人を見かけない...orz...

558 :デフォルトの名無しさん:2006/11/30(木) 23:27:49
こんなのあったんだ。kaa教えてくれた人ありがと。

559 :デフォルトの名無しさん:2006/11/30(木) 23:50:27
>557
12月1日発売,今日じゃねーじゃん
http://www.cbook24.com/bm_detail.asp?sku=4886484602

もしかして発売の前日に話題にしとくと得する人?


560 :デフォルトの名無しさん:2006/12/01(金) 00:07:25
>>554
これだけ使えればコメントなんかは十分じゃない
http://www.youtube.com/watch?v=8iQVujJjTzo


561 :デフォルトの名無しさん:2006/12/01(金) 00:11:45
>>560
微妙。
日曜プログラマしか満足しねえだろ。

TextMateって,作者タソがマルチバイト対応宣言してるんじゃなかったっけ?
正式に対応してインライン変換できるようになるまで待つことにするよ。

562 :デフォルトの名無しさん:2006/12/01(金) 00:16:37
>>561
Leopardの機能つかって対応すると言ってる。
スレ違いでしつこくてすまない

563 :デフォルトの名無しさん:2006/12/01(金) 00:30:54
>>559
今日普通に平積みしてあった。

あまりにも低レベルな内容だったので当然スルー。
いちいちifを図で解説してもらわなくても結構という感じ。

564 :デフォルトの名無しさん:2006/12/01(金) 00:39:18
>>563
>あまりにも低レベルな内容だったので

「実践」ってタイトルについているのに低レベルなのか。
低レベルな実践ってなんなんだ(w

565 :デフォルトの名無しさん:2006/12/01(金) 00:44:48
貧乏学生にはtextmateが有料なので(ry

566 :デフォルトの名無しさん:2006/12/01(金) 01:55:36
>>562
スレ違いだと分かってて居座ってますってことか?

567 :デフォルトの名無しさん:2006/12/01(金) 02:00:13
>>564
略して"しっぱい"ですから


568 :デフォルトの名無しさん:2006/12/01(金) 02:47:16
>>566
上のほうでWindowsのエディタの話もしてたから
許容範囲かと思ったけど、別のスレに誘導すればよかったね
ごめんね

569 :デフォルトの名無しさん:2006/12/01(金) 02:53:49
許容範囲外だと思ってるのは約一名だろうから気にするな

570 :デフォルトの名無しさん:2006/12/01(金) 02:57:02
>>568
いや、こっちもカリカリしすぎた。気分悪くしてスマソ。

571 :デフォルトの名無しさん:2006/12/01(金) 03:08:32
Macだけど、miの新しいPythonモードがあればいいんじゃね。ヒマなとき自分で作ってみるか
・・・と、2, 3年間考えてるが何もしてない

572 :デフォルトの名無しさん:2006/12/01(金) 03:38:33
はじぱい>>>みんぱい>しっぱい

573 :デフォルトの名無しさん:2006/12/01(金) 03:48:22
>>572
にいやまさん,いつもご苦労様です

574 :デフォルトの名無しさん:2006/12/01(金) 04:43:55
>>560
二本語ワロス。

といかインライン入力(だっけ?)ってできないのこれ?

575 :デフォルトの名無しさん:2006/12/01(金) 09:33:31
任意のクラスオブジェクトをiterableにするには、__iter__(self)やiter(seft)を
実装するだけでは足りないでしょうか。

if object in MyIterable:
  anything_else...

こんなことをすると、

TypeError: iterable argument required
とか
TypeError: argument of type 'type' is not iterable
と怒られます。

576 :デフォルトの名無しさん:2006/12/01(金) 10:29:59
>>575
MyIterableクラスのインスタンスをつくってイテレータとして利用するんだよ。

if object in MyIrerable():
  # any code...

こんなかんじか?

577 :デフォルトの名無しさん:2006/12/01(金) 11:49:33
>>576
あぁ、なるほど。ありがとうございます。うまくいきました。
クラスオブジェクトのままではだめか……

578 :デフォルトの名無しさん:2006/12/01(金) 12:59:37
[(0, 1), (2, 3), ... , (n-2, n-1)]を生成するのに
zip(range(0, len(n), 2), range(1, len(n), 2))とやったんですが
もうちょいスマートなやり方ないですかね?

579 :578:2006/12/01(金) 13:01:38
あ、nは偶数という前提で。

580 :デフォルトの名無しさん:2006/12/01(金) 13:01:52
>>> n = 10
>>> [(i, i+1) for i in range(0, n, 2)]
[(0, 1), (2, 3), (4, 5), (6, 7), (8, 9)]

581 :デフォルトの名無しさん:2006/12/01(金) 13:17:04
どうもありがとうございます。

思いつかなかった自分にへこむ・・・・・・

582 :Python初心者(復活):2006/12/01(金) 16:42:36
>>536 Yr Cmt Tks.
>>537,538
色々とあるもんですねぇ。
そこで、無理やりgeneratorで実装してみました。
def foo(n):
  a = [n]
  i = 0
  while 1 :
    val = (yield i)
    if val is not None:
      a[0] += val
      print a[0]
    else:
      print 'send(any number)!'

f = foo(1)
f.next() #<-これが無いとエラーになる。
f.send(2)
f.send(3)
f.send(4)
f.next() #<-これは正常に動作する。
f.send(5)
f.next() #<-これは正常に動作する。

これからするとgeneratorにはいきなり値を
渡すことが出来ないことになるが?
(TypeError: can't send non-None value to a
just-started generator)
他に最初から値を渡す方法があるので
しょうか?

583 :デフォルトの名無しさん:2006/12/01(金) 17:36:45
importするモジュール名を変数で指定できますか。
モジュール名を実行時に指定するわけです。
現状の構文とは相容れないとはわかってますが、
exec("import %s" % name) よりスマートな方法があれば教えてください。


584 :デフォルトの名無しさん:2006/12/01(金) 17:42:54
>>> sys = __import__("sys")
>>> sys
<module 'sys' (built-in)>

585 :デフォルトの名無しさん:2006/12/01(金) 19:53:47
sendはyieldで停止しているジェネレータを再開するときにyieldに値を
返させる関数だから、停止してない最初に呼べないのはあたりまえ。許した
としても、yieldで停止した後に呼ばれたsendで上書きされるので意味がない。

586 :デフォルトの名無しさん:2006/12/01(金) 20:35:39
> 現状の構文とは相容れないとはわかってますが、

何でそう思った?

587 :デフォルトの名無しさん:2006/12/01(金) 20:44:23
R○○○だとrequire 'hoge'できるのにPythonではできないの?ウンコだね!


という流れだと予想。

588 :デフォルトの名無しさん:2006/12/02(土) 04:56:38
>>584
さんくすです。そうか、ライブラリじゃなくて組み込み関数だったのか。
このままだと代入先があらかじめわかってないとだめなので
mod_name = 'mymodule'
locals()[mod_name] = __import__(mod_name)
でいくことにしました。execよりは見た目複雑ですけど、これでOKです。

>>586
import モジュール名 と
import 変数名 との区別がつけられないからです。
現状の構文では、import XXX によって、モジュール名と、そのモジュールを代入する変数の両方を同時に指定している訳で、
これが import 'モジュール名' だとモジュールを代入する変数を文字列で指定することになり、pythonのしくみとしてはおかしいかなと思いました。
rubyとは違って、モジュールを変数に代入するのがpythonなので、これは仕方ないと思ってます。

589 :デフォルトの名無しさん:2006/12/02(土) 08:25:05
>>588
動的にモジュールを決めてロードしたいだけなら、モジュール名と同じ名前で束縛する必要はない。
temp_module = __import__('mymodule')
として、モジュールオブジェクトtemp_moduleの属性にアクセスするだけでいいと思うよ。

590 :デフォルトの名無しさん:2006/12/02(土) 13:26:42
>>589
だな。
むしろ変数名のほうがコロコロ変わったんじゃ使いにくいだろね。
>>588のやりたいことがいまいちよくわからん。

591 :デフォルトの名無しさん:2006/12/02(土) 14:32:34
>>588
> 現状の構文では、import XXX によって、モジュール名と、そのモジュールを代入する変数の両方を同時に指定している訳で、

import A as B という構文もあるわけだが。

592 :デフォルトの名無しさん:2006/12/02(土) 15:18:43
>>589-591
はいはい、見当違いレス乙。
588の下の段落は586へのレスだろうが。

593 :デフォルトの名無しさん:2006/12/02(土) 15:50:25
>>592
馬鹿乙

594 :デフォルトの名無しさん:2006/12/02(土) 16:10:15
其の者はRxxxの優位性を示そうと虎視眈々と狙ってゐた。

595 :Python初心者(復活):2006/12/02(土) 16:29:40
>>585 :デフォルトの名無しさん :2006/12/01(金) 19:53:47
>sendはyieldで停止しているジェネレータを再開するときにyieldに値を
>返させる関数だから、停止してない最初に呼べないのはあたりまえ。
これは納得。
>許したとしても、yieldで停止した後に呼ばれたsendで上書きされるの
>で意味がない。
許せば少なくとも、停止させるだけの無意味なf.next()を書く必要が
なくなるので意味はある。

ところで、先生!
>>582
if val is not None:
      a[0] += val
      print a[0]
    else:
      print 'send(any number)!

f = foo(1)
f.next() #<-これが無いとエラーになる。
f.send(2)
f.send(3)
f.send(4)
f.next() #<-これは正常に動作する。
f.send(5)
f.next() #<-これは正常に動作する。

最初のf.next()の時だけ何故、else:節が実行されない
のでしょうか?


596 :デフォルトの名無しさん:2006/12/02(土) 16:46:16
yieldで止まってるから。つか仕様嫁。sendはyieldから返る値を指定するnextなの。
1.最初にsend(x)する
2.yield iでジェネレータが止まる。呼び出し側にはiが返る
3.次にsend(y)する
4.yieldがyを返し、ジェネレータが実行を再開して次のyieldでまた止まる。
だからxは意味がない。

597 :デフォルトの名無しさん:2006/12/02(土) 17:15:44
>>593
バカはお前だボケ。文盲は黙ってろな。

598 :デフォルトの名無しさん:2006/12/02(土) 17:26:45
>>597
馬鹿乙

599 :デフォルトの名無しさん:2006/12/02(土) 18:14:06
>>597
文盲乙

600 :デフォルトの名無しさん:2006/12/02(土) 21:44:04
>>589>>588の上の段へのレスなわけだが。

601 :デフォルトの名無しさん:2006/12/02(土) 21:50:19
実践Python、なんでぜんぜん話題にならないの?
発売前もそうだけど、発売されてからも全然わだいにならないのはなぜ?
誰も注目してないの?
そんなにひどい内容なの?
やっばり「しっぱい」なの?

602 :デフォルトの名無しさん:2006/12/02(土) 21:57:07
>>596
補足しとくと、
仕様書を読むだけでなく実際にジェネレータを定義して試してみればわかるが、
最初にsend(x)できるのはxがNoneの時だけ。

603 :デフォルトの名無しさん:2006/12/03(日) 00:31:06
>>601
Zope関係者乙

604 :デフォルトの名無しさん:2006/12/03(日) 00:42:14
>>601
内容がひどいからというよりも、書いてる人が偉くも偉そうでもなくて煽りどころがないからじゃないの。

605 :デフォルトの名無しさん:2006/12/03(日) 01:01:39
>>601
Blog検索で調べてみたけど、言及数が少ないなー。
普通に話題になってないだけだと思われ。

Pythonもこういう駄本が出版されるようになったということか。
ま、いいことですな。

>>604
みんぱいの作者タソはZope関係者に粘着されてたんでしょう?
実践Pythonの著者もZope関係者らしいが(WWWWWWWWWW

606 :デフォルトの名無しさん:2006/12/03(日) 01:06:29
>>601
何を話題にしろと?どこに注目しろと?

・・・表紙?

607 :デフォルトの名無しさん:2006/12/03(日) 01:07:00
>>604
ttp://kashino.exblog.jp/4781584
これが日本語で出版されるPython入門本の決定番だ!という気持ちであり、
もちろん今もその気持ちだが

話題にならない本の作者にしては十分偉そうじゃね?(w

608 :デフォルトの名無しさん:2006/12/03(日) 03:55:06
困ったときのZope&ぱい本叩き。わかりやすいなwwww

609 :デフォルトの名無しさん:2006/12/03(日) 10:32:57
>>608
>困ったときの

誰か困っているの?

610 :デフォルトの名無しさん:2006/12/03(日) 13:35:13
>>607
いや、ほとんど社交辞令みたいなもんだろそれ

611 :デフォルトの名無しさん:2006/12/03(日) 15:56:32
あのぅZopeのスレがないようなので...
Zopeの管理画面にfavicon.icoを表示させたいんですが
どこ置けばいいですか?

612 :デフォルトの名無しさん:2006/12/03(日) 16:47:37
>>611
おまえ2chのトップに「2ちゃんねる検索」のフォームが貼ってあることを知ってるか?

http://find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=zope&COUNT=50

613 :Python初心者(復活):2006/12/03(日) 18:39:29
>>596 Tks fr Res.
>>602
>yieldで止まってるから。

f.next() #<-これは何もOPしない。しかし無いとエラー。
f.send(2)
f.send(3)
f.send(4)
f.next() #<-else節のsend(any number)!をOP
f.send(5)
f.next() #<-else節のsend(any number)!をOP

しつこいようですが、最初のf.next()が
yieldで止まってelse節まで実行しないなら、
何故?二番目や三番目のf.next()は
else節を実行するのでしょうか?

614 :デフォルトの名無しさん:2006/12/03(日) 19:15:52
簡略化した

while 1:
    yield
    #else節

で説明すれば、最初のnext()は「関数の最初から」「次に出くわすyieldまで」
を実行する。その間にelse節はないので実行されない。

二回目以降のnext()は「止まっているyield」から「次に出くわすyieldまで」
を実行する。yieldの後else節があるので、それを実行した後while 1で戻されて
yieldで止まる。つか、最初のnextが気に入らないなら無理にジェネレータを
使う必要ない希ガス。

615 :デフォルトの名無しさん:2006/12/03(日) 20:21:12
つか、糞本ですが買ってくださいとか言われる方が困る
心持ちとしてはすごくまっとー
>>607は厨房か、ひっきーか?
正直社会人の感性ではないな

616 :デフォルトの名無しさん:2006/12/03(日) 20:23:58
http://www.python.org/dev/peps/pep-0342/ の consumer でおk

def consumer(func):
    def wrapper(*args,**kw):
        gen = func(*args, **kw)
        gen.next()
        return gen
    wrapper.__name__ = func.__name__
    wrapper.__dict__ = func.__dict__
    wrapper.__doc__ = func.__doc__
    return wrapper

@consumer
def func(n):
    while 1:
        val = yield n
        if val is not None:
            n += val
        else:
            print "send(any number)!"

f = func(1)
print f.send(2)
print f.send(3)
print f.send(4)


617 :デフォルトの名無しさん:2006/12/03(日) 20:33:23
>>615
>つか、糞本ですが買ってください

そうだね、
たとえ本当に糞本だったとしても、普通はそんなことは言わないね。

618 :デフォルトの名無しさん:2006/12/03(日) 22:27:42
ttp://blog.livedoor.jp/dankogai/archives/50704894.html

619 :デフォルトの名無しさん:2006/12/04(月) 07:32:22
>>617
同人のノリですな。キモイよね。

620 :デフォルトの名無しさん:2006/12/04(月) 09:42:54
くわしいな

621 :デフォルトの名無しさん:2006/12/04(月) 10:10:48
>>618
>ttp://blog.livedoor.jp/dankogai/archives/50704894.html
>著者は日本でもトップレベルのPythonistasだ。

ググっても名前が全然出てこないんだけど...。
何で有名な人なの?

622 :デフォルトの名無しさん:2006/12/04(月) 11:18:31
有名人とは書いてないだろ。トップレベルなんだろ。何がトップかは放っといてやれ。

623 :Python初心者(復活):2006/12/04(月) 12:00:28
>>614
良く分かりました。Tks.
>>615
Really Pythonic Code!


624 :デフォルトの名無しさん:2006/12/04(月) 12:25:13
>>623
>Really Pythonic Code!

お前が言うなよ(WWWWWWW
つか,参照先間違ってね?

625 :デフォルトの名無しさん:2006/12/04(月) 14:09:50
>>616
これはカッコいい!デコレータってすごいな!

626 :デフォルトの名無しさん:2006/12/04(月) 14:17:04
すみません、また対話環境の日本語なのですが、少し進展がありました。
うまく動かない環境では、
"ほげ".decode(エンコード名)と
u"ほげ" の内容が一致しないのです。

--------------------------------
Python 2.3.5 (#2, Sep 4 2005, 22:01:42)
[GCC 3.3.5 (Debian 1:3.3.5-13)] on linux2

>>> "ほげ".decode('euc-jp')
u'\u307b\u3052'
>>> u"ほげ"
u'\xa4\xdb\xa4\xb2'

--------------------------------
Python 2.3.4 (#1, Nov 4 2004, 14:06:56)
[GCC 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)] on linux2

>>> "ほげ".decode("utf-8")
u'\u307b\u3052'
>>> u"ほげ"
u'\xe3\x81\xbb\xe3\x81\x92'

--------------------------------
Python 2.4.3 - Enthought Edition 1.0.0.beta4 (#69, Jul 13 2006, 15:35:31)
[MSC v.1310 32 bit (Intel)] on win32

>>> "ほげ".decode('mbcs')
u'\u307b\u3052'
>>> u"ほげ"
u'\u307b\u3052'


627 :デフォルトの名無しさん:2006/12/04(月) 14:24:01
対話環境で日本語が正常に処理されるのは、最後のWinXP版のみなのですが、
これだけが二つの式の内容が一致しています。
残りはいずれも、u"ほげ"の側はデコードされていません。元のエンコードの
ままです。

そこで予想を立てたのですが、Python2.3以前では、対話環境では u"ほげ"を
デコードしないのではないかと思うのです。

ということでお願いなのですが、print u"ほげ"がうまく行く方、行かない方、
それぞれPythonのバージョンを教えていただけないでしょうか?

ただし、すみませんがsitecustomize.py を設定している方に限ります。
http://lowlife.jp/nobonobo/zine/5/6.html


628 :デフォルトの名無しさん:2006/12/04(月) 14:38:11
すみません、長すぎるのでまとめます。

対話環境で

>>>print u"ほげ"
ほげ

がうまく表示される方、されない方、
それぞれPythonのバージョンを教えていただけないでしょうか?
できたらOS等の環境もお願いします。


629 :デフォルトの名無しさん:2006/12/04(月) 14:55:49
そんな回りくどいことをしなくても、すずきせんせいに聞けばちゃんと教えてくれるよ。

630 :デフォルトの名無しさん:2006/12/04(月) 15:37:33
>>627
> Python2.3以前では、対話環境では u"ほげ"を
> デコードしないのではないかと思うのです。

その通りだと思われ。


631 :626:2006/12/04(月) 15:39:31
すみません、どうもPythonのバージョンは直接は関係ないようです。
むしろ問題は、対話環境自体のようです。
同じWinXPの Python 2.4.3 - Enthought Edition 1.0.0.beta4 でも、対話
環境の種類で結果が変わりましたので。

---------------------------
# 通常の対話シェル
>>> "ほげ".decode("cp932")
u'\u307b\u3052'
>>> u"ほげ"
u'\u307b\u3052'

---------------------------
# IDLE 1.1.3
>>> "ほげ".decode('cp932')
u'\u307b\u3052'
>>> u"ほげ"
u'\x82\xd9\x82\xb0'

---------------------------
# IPython 0.6.15 -- An enhanced Interactive Python.
In [6]: "ほげ".decode('cp932')
Out[6]: u'\u307b\u3052'

In [7]: u"ほげ"
Out[7]: u'\x82\xd9\x82\xb0'


632 :626:2006/12/04(月) 15:42:58
すると解決策は、

・Pythonのバージョンを上げて、その標準の対話環境を使う
・u"ほげ"のデコードに対応した対話シェルを捜す

このどちらかになりそうです。
しかし、前者はなかなか難しいし、
後者も、IDLEとIPythonがダメですからねえ。うーん。


633 :デフォルトの名無しさん:2006/12/04(月) 15:52:22
"ほげ".decode("mbcs") とか unicode("ほげ", "mbcs") とか書けばいいジャマイカ。
"mbcs" のところは環境依存。

汎用性のある方法が分かっているのにヌルーするのはなぜ?

634 :626:2006/12/04(月) 16:08:31
>>633
その理由は、
・"ほげ".decode("cp932")と書くより、u"ほげ"の方が簡単
・スクリプトファイルの中では u"ほげ" と書いているので、統一したい
 (スクリプト内では当然、エンコーディング指定は冒頭の一箇所のみにしたい)
・違うサーバごとに、対話環境で違うエンコーディングを打ち込むのは混乱する
 "ほげ".decode("cp932"|"euc-jp"|"utf-8")

などです。


635 :デフォルトの名無しさん:2006/12/04(月) 16:09:38
毎回エンコーディングを指定するのが面倒ならテキトーな関数なり派生クラスを定義して使うとか。
ちなみに以下の例ではキー入力のエンコーディングはファイルシステムのエンコーディングと同じに違いないっ!と仮定。

>>> import sys
>>> class u(unicode):
def __new__(cls, s, enc=sys.getfilesystemencoding()):
return unicode(s, enc)

>>> u("ほげ")
u'\u307b\u3052'

636 :626:2006/12/04(月) 16:30:22
>>635
これは面白いですね!ありがとうございます。ちょっといじってみました。

>>> class u(object):
...   import sys
...   def __new__(cls, s, enc=sys.getdefaultencoding()):
...     return s.decode(enc)
...
>>> u("ほげ")
u'\u307b\u3052'

u"ほげ"にカッコをつけるだけですむのは確かに楽です。しかし、

>>> u"ほげ"
u'\xa4\xdb\xa4\xb2'

こちらが直らないのは、やはり残念ですね。


637 :デフォルトの名無しさん:2006/12/04(月) 16:49:44
sys.stdin.encodingやらsys.stdout.encodingやらがasciiになってるんじゃないの?

ttp://python.matrix.jp/tips/compatibility/interact_encoding.html
とかが参考にならんか?

638 :626:2006/12/04(月) 17:18:27
>>637
> sys.stdin.encodingやらsys.stdout.encodingやらがasciiになってるんじゃないの?

残念ながら、なっていません。
DebianではEUC-JP、RedHatではUTF-8、WinXPではCP932です。

> http://python.matrix.jp/tips/compatibility/interact_encoding.html
> とかが参考にならんか?

残念ながら、ならないようです。
環境変数「PYTHONSTARTUP」に
interact.py
# -*- encoding: mbcs -*-
などを各サーバに指定してみましたが、結果は同じでした。

そもそもこのページには、内容に疑問があります。
mbcs, cp932, shift_jisはほとんど同じもので、ひらがなの文字化けの原因には
ならないと思うのですが。


639 :デフォルトの名無しさん:2006/12/04(月) 17:53:51
あんまり関係ないけど、>>637のページ、
> \python25\python -c "import sys; print sys.stdout.encoding"
cp932
> \python25\python -c "import sys; print sys.stdout.encoding" > out.txt
> more out.txt
None
という違いがあることも書いてあるといいかもね。

640 :デフォルトの名無しさん:2006/12/04(月) 18:11:36
>>639
リダイレクトしても、結果は変わらなかったぞ(Python2.3 on Linux)。
2.5だとそうなるの?


641 :640:2006/12/04(月) 18:13:37
ごめん、こちらの間違いだった。
print sys.stdout.encoding を
間違えて sys.getdefaultencoding() にしちまってた。


642 :デフォルトの名無しさん:2006/12/04(月) 19:28:42
>>618
まとめると

A: 判型が微妙
B: レイアウトが微妙
C: 実践というタイトルが微妙
D: サンプルコードが微妙
E: 著者は無名、(何がかは微妙だけど)トップ

なるほど、これでは話題になるわけがないな.

643 :デフォルトの名無しさん:2006/12/04(月) 19:40:31
>>642
必死だな

644 :デフォルトの名無しさん:2006/12/04(月) 19:56:39
この種の内容のない煽り書き込みは、何が目的なんだろうか?

『みんなのPython』はぼろくそに叩かれていたけれど、人に借りて読んでみたら
ごく普通の入門書だった。まあ買う気はないけど。
Rubyも散々な言われようだったけど、使ってみたら、好みは分かれるだろうが
悪い言語じゃなかった。

この煽りどもの暗い情熱はどこから涌いてくるのだろうか?
ママの愛情が足りなかったのか?


645 :デフォルトの名無しさん:2006/12/04(月) 19:56:49
python-devすげいな

646 :デフォルトの名無しさん:2006/12/04(月) 21:54:11
科学技術計算にはRubyとPythonどっちがいいんだろう?
ワタシはMatlab鹿使えないんですが.

647 :デフォルトの名無しさん:2006/12/04(月) 21:57:32
>>646
好みのライブラリが揃ってるほう

648 :デフォルトの名無しさん:2006/12/04(月) 22:02:40
>>644
いや、ここ2chだし。責任って重石の取れた、匿名筆談ならこんなもん。
人間の品性にどんな希望を抱いてるか知んないけど、
リアル以上に下司の声が大きいくらいが、むしろ自然じゃないか。

どんな板・話題でも、下層民のルサンチマンは所嫌わず。
努力してそうしてるわけではない。

649 :デフォルトの名無しさん:2006/12/04(月) 22:11:49
おい、おまえら。下層民とか言われてるぞ。

650 :デフォルトの名無しさん:2006/12/04(月) 22:21:22
>>646
Rubyの事情は良く知らないんだけど、たぶんPythonでいいと思う。
NumPy, SciPy, mathplotlibといった、洗練されたライブラリが大量にあるから。


651 :デフォルトの名無しさん:2006/12/04(月) 22:41:26
ボク下層民です。
648さんごめんなさい。

652 :デフォルトの名無しさん:2006/12/04(月) 22:52:01
>>644
みんぱいの場合は、作者本人への粘着もあったよな
Zope関係者の仕業と言うことになってるんだっけか?

653 :デフォルトの名無しさん:2006/12/04(月) 23:10:13
>>644
>Rubyも散々な言われようだったけど
Matzも他言語をよく扱下ろすからな。同情できん。

654 :デフォルトの名無しさん:2006/12/04(月) 23:37:07
自分の基準で何を言うかや、どの情報を採るかを決めるのは、
ある意味とっても健全だわな。
なんて書いてて思ったんだけど、mixiにPythonコミュってある?

655 :デフォルトの名無しさん:2006/12/04(月) 23:53:35
今ちょろっと検索かけただけだけど思ったよりあるっぽいね

656 :デフォルトの名無しさん:2006/12/05(火) 00:23:07
>>646
Windowsだったら、この Python Enthought Editionをまず使ってみてよ。
http://code.enthought.com/enthon/
これさえインストールすれば、数値計算に必要なライブラリやツールが
ほぼすべて揃う。つうか盛りだくさん過ぎて使い切れない。
これで不足だったら、そのあとで他の選択肢を考えればいいよ。

657 :デフォルトの名無しさん:2006/12/05(火) 02:17:34
>>646
Matlabで用が足りているなら学習コストをかけてPythonを使う必要はない希ガス。
科学技術計算以外のこと「も」やりたいなら超お勧めだけどね。

658 :デフォルトの名無しさん:2006/12/05(火) 02:35:20
多分、研究室とは別に、自宅に用意したいんだろう。
そういう時、無料というメリットは大きい。
あと、SCILABとかと違って、汎用言語だというのは、
欠点でもあるけど、メリットでもある。
自分の場合、計算結果をRDBに保存する必要がでてきて、
ああPythonでよかったと思った。

659 :デフォルトの名無しさん:2006/12/05(火) 03:28:45
scipyは大分よくなったけど、数値計算を楽にしたいと思っているのならまだ今はmatlabを使った方がいい。

660 :646:2006/12/05(火) 11:55:46
みなさんどうも.風邪を引いて家で論文読みです.
matlabだけだと学校出た後にきついかなと思ったのと,
ゲームとかも作れるようになりたいなと思ったので質問しました.
>>656 のmac版はないかなぁ…

661 :デフォルトの名無しさん:2006/12/05(火) 11:57:29
自分で探します

662 :Python初心者(復活):2006/12/05(火) 13:10:27
>>624
>つか、糞本ですが買ってください
>>616のコードも良いけど、>>615のこれも
結構Really Pythonicだと思わん?
泣けるで…

ところで、
三項演算子はandとorの組み合わせで代用可能だと、
どこかで読んだ覚えがある。
x = 2
print ('One' if x == 1 else 'Not One')
print (('One' and x == 1) or 'Not One')
これはうまく作動するが、x = 1 になると下の式は
Trueを返す???
正しくはどうやるんでしょうか?

663 :Python初心者(復活):2006/12/05(火) 13:21:21
口はばったいことを敢えて言わせてもらえば、
始めてのPythonにしてもそうだが、外人が書く本は
どこか著者が全力で書いている部分がある。
そこが読者の心を打つ。
ところが日本人が書く本は、どこかこの程度で
いいじゃん的な部分が見られて萎える。

これは内容が分かり易いとか難しいとかを
超えたものだと思う。
自らの著作に対する姿勢の問題じゃないか。


664 :デフォルトの名無しさん:2006/12/05(火) 13:25:22
>>662
・・・・・・・・・・。

print x == 1 and 'One' or 'Not One'

665 :デフォルトの名無しさん:2006/12/05(火) 13:29:13
>>662
ただ、Pythonだと0は偽になるんで、値が0の時を真にしたい場合にハマる危険がある。

666 :デフォルトの名無しさん:2006/12/05(火) 13:30:28
>>662
Pythonの and と or はLISP風。
http://www.shido.info/py/python2.html#operator

タプルを使ったエラー回避。まあ2.5には三項演算子があるわけだが。
http://web.archive.org/web/20060109122923/http://www.geocities.jp/shido_takafumi/py/python2.html#operator


667 :デフォルトの名無しさん:2006/12/05(火) 13:40:20
>>663
ぶっちゃけ得られる銭が全く違うからなぁ・・・
日本では専門書なんて売れないから印税なんて雀の涙
米国では図書館が買ってくれるだけれも馬鹿にならない
そういう文化インフラが嫌になるくらい違うんだよね

668 :デフォルトの名無しさん:2006/12/05(火) 13:42:29
>>665
そうだね。トリッキーな書き方はPythonに似合わない気がする。
素直に if 文で分けるか、2.5 以降の三項演算子を使うのが吉。

669 :デフォルトの名無しさん:2006/12/05(火) 16:43:30
>>663
>どこか著者が全力で書いている部分がある。

全力で書きすぎて厚くなってしまった本をありがたがるのは
体力がありあまっているガイジンかオマエみたいな変わり者だけだよ

670 :デフォルトの名無しさん:2006/12/05(火) 17:34:53
初めてのPythonには仕事や教育の現場で得た経験が詰まってる。
日本のpy本はまとめサイト級(ほめ言葉)って気がする(読んでないから知らんけど)。

671 :デフォルトの名無しさん:2006/12/05(火) 17:41:06
>>670
>読んでないから知らんけど

ハイハイ、妄想しがちなヒキコモリは黙っていてね

672 :デフォルトの名無しさん:2006/12/05(火) 18:01:12
zope乙

673 :デフォルトの名無しさん:2006/12/05(火) 22:04:46
>>663
そんなあなたにはmatzの本がおすすめ。

674 :デフォルトの名無しさん:2006/12/05(火) 23:07:52
pydevでコンソールでutf-8文字化けしないようにってできまつか?

675 :デフォルトの名無しさん:2006/12/06(水) 14:41:32
twistedの2.5はまだですか

676 :Python初心者(復活):2006/12/06(水) 21:19:19
>>664,665,666,668 Tks.
>ただ、Pythonだと0は偽になるんで、値が0の時を
>真にしたい場合にハマる危険がある。
x = 0
print x == 0 and 'Zero' or 'Not Zero'
これ、ハマらないようだけど?

677 :Python初心者(復活):2006/12/06(水) 21:20:41
>>667
>米国では図書館が買ってくれるだけれも馬鹿にならない
「初めてのPython」初版、第二版とも市立図書館に既にある。
「みんなのPython」はリクエストして、現在読んでる。
「実践Python」はついこの前リクエストしたところ。
来年にはこの4冊が揃ってるはず。
来年もし市立図書館でこの4冊を発見したら、貴女は
米国ではなくて私と同じ市に住んでいるのかも…
>>673
>そんなあなたにはmatzの本がおすすめ。
表紙はいかにも品無いが、最初のRuby本は確かに
良かった。Perlのラクダ本に匹敵すると感じた。


678 :デフォルトの名無しさん:2006/12/06(水) 21:29:41
>>676
b = True
print b == True and 0 or 'Not Zero' # => 'Not Zero'
てことだろ

679 :デフォルトの名無しさん:2006/12/07(木) 01:26:56
>>677
いや 最初のあの本はダメだと思うが...
Perl4のラクダ本は良くまとまってたよな
Perl5版はぜんぜんダメだが

680 :デフォルトの名無しさん:2006/12/07(木) 02:00:12
>>677
買えよ。

681 :デフォルトの名無しさん:2006/12/07(木) 02:04:43
俺も買わずに図書館に入れてもらった。
みんなが読めるようにした方がいいだろ。


682 :デフォルトの名無しさん:2006/12/07(木) 03:45:36
よく図書館で借りるだけで気が済むね。
言語の入門書なんて、一番手元に置いておきたい類の本じゃないかな?

あ、もしかして借りたままなのか(wwww

683 :デフォルトの名無しさん:2006/12/07(木) 08:22:57
入門書は立ち読みで十分

684 :デフォルトの名無しさん:2006/12/07(木) 11:27:41
Python Workshop 04のレポート
http://www.kmonos.net/wlog/68.html#_0134061207

このページの筆者は、今年のICFP国際プログラミングコンテストで準優勝した
東大の学生さん。
http://itpro.nikkeibp.co.jp/article/NEWS/20060927/249198/

みんPyでPythonを知ったらしい。
デコレータでメモワイズができるとか、ramdomモジュールが状態を再現できる
のが良いとか、着眼点が面白いと思った。
まあ、みんPyにはデコレータは載ってなかったけどね。


685 :デフォルトの名無しさん:2006/12/07(木) 12:01:36
kuma-

686 :Python初心者(復活):2006/12/07(木) 12:31:13
>>678
いや正しい?ハマり方は、
def makeZero():
  return 0
print makeZero() and 'Zero' or 'Not Zero'
じゃなかろうか?

687 :Python初心者(復活):2006/12/07(木) 12:33:17
>>682
>あ、もしかして借りたままなのか(wwww
さすが経験者ですねぇ、良くご存知で(WWWWWWWWWW

>>684
>http://itpro.nikkeibp.co.jp/article/NEWS/20060927/249198/
これからたどって
http://itpro.nikkeibp.co.jp/article/NEWS/20061204/255920/
を見つけた。
RoR以来、決め打ちWebフレームがすっかり流行ですよね。
RoRが10分、上記Seasar2のChuraが3分、Djangoだと
何分で出来るんですかねぇ?

688 :デフォルトの名無しさん:2006/12/07(木) 12:50:12
Python初心者には学ぶ姿勢が感じられない。ただの煽り厨。

689 :デフォルトの名無しさん:2006/12/07(木) 13:02:53
まあそんなに気にするなよ。
誰もがあんたみたいに賢く能率がいいわけじゃない。
それに、話題の提供にはなっているしね。


690 :デフォルトの名無しさん:2006/12/07(木) 13:07:01
何でこんなFAQ中のFAQがこんなに長引くんだ?
ttp://www.python.org/doc/faq/programming.html#is-there-an-equivalent-of-c-s-ternary-operator

>>686
正確にいうと「条件が真の場合に、0やNoneなどPythonでは偽とみなされる値を返したいとき」に
and/orによる擬似3項演算はうまくいかない。

0 if True else 1 と同じ動作を期待して True and 0 or 1 と書くのは NG、ということ。

>>662
> 三項演算子はandとorの組み合わせで代用可能だと、
> どこかで読んだ覚えがある。

「代用可能」とだけ書いてあるとしたら不十分。
上記FAQのように「代用可能なこともある。ただし云々」となっていないとハマる可能性大。

691 :デフォルトの名無しさん:2006/12/07(木) 18:58:32
>>687
慣れ合おうとするなよ。
キモ過ぎ。

692 :デフォルトの名無しさん:2006/12/07(木) 20:14:56
>>691
図書館の職員ですか?wwwwwwwww

693 :デフォルトの名無しさん:2006/12/07(木) 20:28:11
ttp://omake.accense.com/wiki/PythonIntroLogicalAnd

("or"の説明のとこ)
>左辺が真(False/0/""以外)なら、右辺の評価(実行)をせずに、左辺の値を返す。
>    右辺の評価を行わないのが重要。
>    「真を返す」のではなくて、右辺の値をそのまま返すのが重要。
説明はわかりやすいけど、返すのは左辺の値じゃ?

694 :デフォルトの名無しさん:2006/12/07(木) 20:46:13
>>692
どうでもいいけど、はやく本返せよ。
はがき送っておいただろ。

695 :デフォルトの名無しさん:2006/12/07(木) 20:50:44
>>693
そだね。バグレポするべし。

696 :デフォルトの名無しさん:2006/12/07(木) 23:32:38
>>694
どうでもいいなら返しません

697 :デフォルトの名無しさん:2006/12/08(金) 00:45:56
>>687
RoRはインストール含めて10分って言ってた気がしたけど、
Churaもインストールから始めたら何分なんでしょうね。


698 :デフォルトの名無しさん:2006/12/08(金) 01:09:38
早いだけの奴は嫌われるよ。

699 :デフォルトの名無しさん:2006/12/08(金) 02:55:05
いまさらだけど、デコレータって、クラスの中以外でも使えるのね。
単純だけど、ものすごく応用範囲が広そうだ。
考えた人は賢いなあ。

700 :デフォルトの名無しさん:2006/12/08(金) 03:15:59
デコレータは初めて見たとき、アスペクト指向っぽい考え方だなぁ、と思った。
デコレートの情報をクラスから分離できたり、
クラスのメソッドを一括でデコレートするようにできたりすれば面白そう。

701 :デフォルトの名無しさん:2006/12/08(金) 10:06:57
functoolもよろしく

702 :デフォルトの名無しさん:2006/12/08(金) 11:22:11
ttp://foma-zakki.cocolog-nifty.com/zakki/2006/12/python_books_py_1f47.html


703 :デフォルトの名無しさん:2006/12/08(金) 11:29:17
これはひどい

704 :デフォルトの名無しさん:2006/12/08(金) 11:34:34
これはひどい

705 :デフォルトの名無しさん:2006/12/08(金) 12:07:33
今はこの本が一番評判いいみたいだよ
http://www.amazon.co.jp/Core-Python-Programming-Wesley-Chun/dp/0132269937/

706 :デフォルトの名無しさん:2006/12/08(金) 12:08:15
↓繋がるけど何も表示されない

まとめ wiki
ttp://www7a.biglobe.ne.jp/~yasozumi/python/wiki/

707 :デフォルトの名無しさん:2006/12/08(金) 12:09:48
しっぱい

708 :デフォルトの名無しさん:2006/12/08(金) 12:35:10
長い時間かかる処理の間何も表示しないのも微妙だなと思って
手動で止めるまで標準入力にピリオドを表示させるのを意図して作ったんですけど

import sys, time, threading

def do_something():
 time.sleep(10) #何か長時間かかる処理...

class myThread(threading.Thread):
 alive = True
 
 def run(self):
  while self.alive:
   sys.stdout.write('.')
   time.sleep(1)
 
 def kill(self):
  self.alive = False

t = myThread()
print '開始',
t.start()
do_something()
t.kill()
print '終了'

こんな感じで問題ないですかね?

709 :Python初心者(復活):2006/12/08(金) 13:04:57
>>699,700
デコレーターはシンプルな方から逆に考えるとその本質が
掴みやすい。
1.一番簡単な直接記述例(3行):
print 'Hello'
print 'Python'
print 'Good Bye'
2.関数化した例(5行):    
def say_name():
  print 'Hello'
  print 'Python'
  print 'Good Bye'    
say_name()
3.夫々を関数化した例(9行):
def greeting1():
  print 'Hello'
def greeting2():
  print 'Good Bye'  
def say_name():
  greeting1()
  print 'Python'
  greeting2()
say_name()

710 :Python初心者(復活):2006/12/08(金) 13:06:17
4.そしてこれがデコレーター(15行)!
def deco1(func):
  def greeting1():
    print 'Hello'
    func()
  return greeting1
def deco2(func):
  def greeting2():
    func()
    print 'Good Bye'
  return greeting2
@deco1
@deco2
def say_name():
  print 'Python'
say_name()
デコレーターとはシンプルに書けることを隠蔽化と
汎用化のため、わざわざ複雑に構造化しているに
過ぎないのではなかろうか?
上記の1項は極端にしても普通は2または3項の
書き方で十分ではないかと思うが…

711 :デフォルトの名無しさん:2006/12/08(金) 13:09:07
>>702
>ttp://foma-zakki.cocolog-nifty.com/zakki/2006/12/python_books_py_1f47.html

「しっぱい」に載っている間違った記述についてだが。

>オブジェクトの属性のうち、オブジェクトにピリオド「.」を続けることで アクセスすることができるものを「メソッド」といいます。

著者タソは、Pythonというか、オブジェクト指向の基本が分かってないのではないかと推測。
まさに三流。
まさに駄本。

712 :デフォルトの名無しさん:2006/12/08(金) 14:43:47
一応、サポートページに正誤表が載っているが誤植が多すぎないか。

ttp://www.trirhino.com/books/ppyerrata

みんPyも誤植が多い。

ttp://coreblog.org/ats/stuff/minpy_support/errata/

みんPyといい、しっPyといい、ブログで自慢話を書く暇があるなら、
もうすこしまともな本を書け。

713 :デフォルトの名無しさん:2006/12/08(金) 15:04:42
参考までに。

ttp://www.longtail.co.jp/errata/
「プログラミング言語C++第3版」にはこのくらいの誤植がある。
誤植は,ページ数に比例して紛れ込むものなんじゃないかと思う。

ただし,711みたいに,事実誤認とか間違った内容を書くことは誤植とは別だと思う。
はっきり言うと恥ずかしい。

714 :デフォルトの名無しさん:2006/12/08(金) 15:33:27
Pythonなんかやってる方が恥ずかしい
Rubyやれよ売国奴が

715 :デフォルトの名無しさん:2006/12/08(金) 15:39:22
コンピュータ関連書籍を買うときはまず索引の充実度をチェックするのだが、
実践Pythonのやつはヒドすぎ。索引無いも同然。ほかの内容見ずにすぐ棚に戻した。

716 :デフォルトの名無しさん:2006/12/08(金) 15:41:09
Windownなんかやってる方が恥ずかしい
超漢字やれよ売国奴が

717 :デフォルトの名無しさん:2006/12/08(金) 15:42:54
>>716
しまったキー入力間違えた…orz

718 :デフォルトの名無しさん:2006/12/08(金) 15:44:55
>>710
道具の選び方が悪いだけ。君がしきりに主張していた「最初のnextが邪魔」
という件には有益では?「鉈で刺身が切れない」とごねるのと大差ない希ガス。

719 :デフォルトの名無しさん:2006/12/08(金) 15:46:52
煽りにマジレスかこ悪い。

720 :デフォルトの名無しさん:2006/12/08(金) 15:54:24
>>716
これが噂の誤植か。
首を吊って氏ねや。

721 :デフォルトの名無しさん:2006/12/08(金) 16:13:13
>>710
この手の抽象化は基本的に、重複するコードを分かりやすくまとめるためにあ
るのだから、元のコードに重複が無ければ、抽象化のご利益には預かれないと
思う。


722 :デフォルトの名無しさん:2006/12/08(金) 16:29:11
>>684 のリンク先に影響を受けて、デコレータでメモワイズを実装してみた。
「メモワイズ」って偉そうな名前だけど、要するに戻り値のキャッシュ。

#メモワイズ関数
def memoize(func):
    memo = {}
    def wrapper(x):
        # return memo.setdefault(x, func(x))
        if x in memo:
            return memo[x]
        else:
            return memo.setdefault(x, func(x))
    return wrapper

処理対象には、再帰の問題にはありがちだけど、フィボナッチ関数。
fn = f(n-1) + f(n-2), f2 = f1 = 1 で定義される奴。

#フィボナッチ関数
@memoize
def fib1(x):
    if x <= 2:
        return 1
    else:
        return fib1(x - 1) + fib1(x - 2)

fib() の定義に、@memoize が無い場合とある場合で比較してみたら、
素晴らしい高速化を実感できた。
デコレータいいねえ。


723 :デフォルトの名無しさん:2006/12/08(金) 16:31:39
>>721
そうだね。特にある関数にreturnが複数あって、その関数が何回も呼ばれている
場合(入口も出口も複数ある場合)その関数の挙動をデバッグしたいときなんか
威力を発揮する。

def decorate(f):
    def wrap(foo, boo):
        print "foo=%d, boo=%d" % (foo, boo)
        ret = f(foo, boo)
        print "ret=%d" % ret
        return ret
    return wrap

@decorate
def func(foo, boo):
    return foo * boo

func(func(3,2), func(4,5)) + func(2,1)

まあ、これはつまらない例だけど、こんな感じで挙動を追跡できる。

724 :デフォルトの名無しさん:2006/12/08(金) 16:32:42
微妙にかぶったorz

725 :デフォルトの名無しさん:2006/12/08(金) 16:35:31
自分のマシンだと、@memoizeなしでは、x=36あたりですごく重くなる。
@memoizeつきだと、スタックがあふれるまで(x=500)繰り返しても一瞬。

まあこれは特殊な例だけど、
DBやネットワークから値を取得する関数などに使えば便利かも知れない。


726 :722:2006/12/08(金) 16:43:39
あ、かぶったというか、レスが混じってしまった。すまん。
しかも722に貼ったコード、清書する前の版だった。
memoize()に変なコメントアウトがあるし、fib()がfib1()になってる。
重ね重ねすまん。

実はmemoize関数内の wrapper 関数は、最初は if文が無くて、コメントアウ
トされてるsetdefault()しか元々存在していなかった。
その版だとかえって遅くなってしまった。当たり前だけど、Pythonは正格評価
なのだった。


727 :デフォルトの名無しさん:2006/12/08(金) 17:54:51
scipyがようやく2.5対応に

728 :デフォルトの名無しさん:2006/12/08(金) 18:03:12
Enthought Edition が2.5に対応するのはいつごろになるかなあ。
待ち遠しい。
http://code.enthought.com/enthon/


729 :デフォルトの名無しさん:2006/12/08(金) 21:13:40
2.5どころか、職場のサーバのPythonが2.3で、デコレータすら使えない俺は負け組。

730 :デフォルトの名無しさん:2006/12/08(金) 21:17:09
>>729
そんなことはない.2.3で使えないのはデコレータじゃなくてデコレータ構文.

731 :デフォルトの名無しさん:2006/12/08(金) 21:43:51
えー、この構文が使えないのはいやだなあ。

@decorator
def func(...):
...
...

これが

def func(...):
...
...
func = decorator(func)

こうなっちゃうんじゃ、相当ガッカリだよ。


732 :デフォルトの名無しさん:2006/12/08(金) 23:00:39
実pyを立ち読みしてきた。
レイアウトが確かに異様に読みやすい。
あと、対話型実行例だらけなので、何を
やってるか(自分的には)把握しやすい。
ので、「読みやすい」本ではあるかなと思た。
ただ、変数とか、関数とかの説明が初心者向け
ではない(この辺はみんpyの方がかなり秀逸(と思う)
なので、ほんとうの初心者に薦める本ではないかなという感じ。
ところどころhackっぽいネタが載ってたりするので、
時間つぶしに読むにはそれなりに楽しい。
何か目的を持って情報を取り出そうとするとイライラする本かもしれないけど。

733 :デフォルトの名無しさん:2006/12/08(金) 23:13:39
>>732
買えよ。

734 :デフォルトの名無しさん:2006/12/08(金) 23:15:48
しかし初めてじゃないのか
読んだという触れ込みでのレポは

735 :デフォルトの名無しさん:2006/12/08(金) 23:37:36
>>733
初心者には難し過ぎて価値がない.
中〜上級者には立ち読みする価値しかない.

そんな書籍なんだろう.

736 :デフォルトの名無しさん:2006/12/09(土) 00:32:46
>>735 どうした?ママの愛情が足りなかったのか?

737 :デフォルトの名無しさん:2006/12/09(土) 00:47:36
お前がどうしたんだw

738 :デフォルトの名無しさん:2006/12/09(土) 00:48:13
>>708 の時間経過表示が面白かったんで、デコレータ化してみたよ。

class myThread は>>708をそのまま使わせていただいて、

def sandgrass(func):
    """時間経過を表示させるデコレータ
    """
    def wrapper(*args, **keys):
        t = myThread()
        print '開始',
        t.start()
        ret = func()
        t.kill()
        print '終了'
        return ret

    return wrapper

@sandgrass
def do_something():
    """何か時間のかかる処理。
    """
    time.sleep(10)

これってすっごく実用的じゃない?
デコレータって言うと、前処理と後処理というイメージがあったけど、
別スレッドで同時進行というのもアリだなあ。

739 :デフォルトの名無しさん:2006/12/09(土) 00:50:05
>>736
Zope関係者乙。
みんPyの作者に粘着すれば気分が晴れるかも知れないぞ(WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

740 :デフォルトの名無しさん:2006/12/09(土) 00:54:33
Amazonより

みんPy
>初心者にもわかりやすく解説

実Py
>Pythonは経験したことがないが、何らかのプログラミング言語に
>ついては触れてみたことがある方

実Pyは初心者向けじゃないんじゃ?

741 :738:2006/12/09(土) 00:59:22
あちこちバグがあったので修正。

def sandgrass(func):
    u"""時間経過を表示させるデコレータ
    """
    def wrapper(*args, **keys):
        t = myThread()
        print '開始',
        t.start()
        ret = func(* args, **keys)
        t.kill()
        print '終了'
        return ret
    wrapper.__name__ = func.__name__
    wrapper.__doc__ = func.__doc__

    return wrapper

元のままだと、ヘルプが機能しなくなってた。
あと、funcに引数を渡してなかった。
デコレータって、使うのは簡単だけど、作るのは結構気をつかうのね。

742 :738:2006/12/09(土) 01:06:30
>>741
「砂時計」は、sandg[l]ass でした。
直すんだったらまずそれを直すべきでした。なんかダメダメ。


743 :デフォルトの名無しさん:2006/12/09(土) 01:25:45
>>738
おい、@sandglass を、>>722 のフィボナッチ関数に付けたら、
えらいことになったぞ。
Pythonでは再帰は鬼門なんだろうか。

744 :デフォルトの名無しさん:2006/12/09(土) 01:28:25
あんまり使うなとは言われたことあるなぁ。Cとは違うのか…。

745 :デフォルトの名無しさん:2006/12/09(土) 01:42:35
>>741
つ functools.wraps

746 :デフォルトの名無しさん:2006/12/09(土) 01:44:22
考えてみたら、末尾再帰をループに変換もしてくれないし、
スタックもたった500であふれてしまうみたいだしなあ。

Stackless Python方面の人は、再帰を多用していたりするんだろうか。
デコレータと組み合わせたときの不具合で困ったりしてないのかな。

747 :デフォルトの名無しさん:2006/12/09(土) 01:49:31
>>745
おお、2.5にはそんなものが!
http://docs.python.org/lib/module-functools.html
Enthought Edition も2.5に早く対応してくれ!

748 :デフォルトの名無しさん:2006/12/09(土) 01:49:51
Cの場合、フィボナッチ数列を再帰で解いちゃいけないってどこかで読んだ記憶が・・・
簡潔には書けるけど、オーバーヘッドがものすごく大きいとか書いてあったような。

749 :デフォルトの名無しさん:2006/12/09(土) 02:02:25
>>738
おーい、@sandglass だけど、
モジュールをリロードしたあと、処理の実行を Ctl+C で中断すると、
「...」がいつまでも出現しつづけるぞ。
どうしたら消えるんだ、これ。

まあ、オリジナルの >>708 のでも同じみたいだけど。

あと、砂時計だったら、hourglass の方が普通じゃないか?

750 :デフォルトの名無しさん:2006/12/09(土) 02:08:31
>>748
オーバーヘッド云々という話ではなく、計算量をちゃんと見積もれば明白。
別にCだからとかいう話ではない。再帰+キャッシングが有用な例題としては教科書的。

751 :デフォルトの名無しさん:2006/12/09(土) 02:12:00
>749
def wrapper(*args, **keys):
 try:
  t = myThread()
  print '開始',
  t.start()
  ret = func(* args, **keys)
  print '終了'
  return ret
 except:
  t.kill()
  raise
(略)

はどうだろう

752 :デフォルトの名無しさん:2006/12/09(土) 02:14:14
>>740
>実Pyは初心者向けじゃないんじゃ?

俺読んだけど,なんか中途半端な内容だった。
初心者向けじゃないとしたら,誰向けなんだ? 表紙に萌えるオタク向け?
用語の不統一,微妙なサンプル,間違った解説。
このスレみてて,そう思ったのは俺だけじゃないんだと分かってホッとした。

753 :751:2006/12/09(土) 02:15:30
すまん間違えた

754 :751:2006/12/09(土) 02:19:00
とりあえずこれで。

def wrapper(*args, **keys):
 try:
  t = myThread()
  print '開始',
  t.start()
  ret = func(* args, **keys)
  return ret
 finally:
  t.kill()
  print '終了'



755 :749:2006/12/09(土) 02:30:13
>>754
うまく行くようになったよ。ありがとう!
なるほど try - finally か。

756 :デフォルトの名無しさん:2006/12/09(土) 03:25:28
デコレータは、クラスに付けることはできないのね。
付けられるのは関数にだけみたいだ。
なんか残念。


757 :デフォルトの名無しさん:2006/12/09(土) 03:40:01
クラスには継承がある

758 :デフォルトの名無しさん:2006/12/09(土) 03:43:29
だけど、デコレータをちょこっとクラス定義の前につけるだけで
クラスの挙動を変えられたら便利だと思うけどなあ。


759 :デフォルトの名無しさん:2006/12/09(土) 03:44:04
デコレータと関係ないけど、
フィボナッチ数列を返すジェネレータを作ってみた。
再帰じゃなくてループ。
引数 max は項の数の最大値。

def fib(max):
    f_1, f_2 = 1, 1

    for i in range(1, max+1):
        if i <= 2:
            yield 1
        else:
            f = f_1 + f_2
            yield f
            f_1 , f_2 = f, f_1


760 :デフォルトの名無しさん:2006/12/09(土) 05:32:07
客観的に評価してみた(出版順)

はじPyはどうみても冗長
みんPyは独り善がり
しっPyは受け狙い

ちなみに俺推奨は公式ドキュメント(含むリファレンス)→DiveIntoPython→本番

761 :デフォルトの名無しさん:2006/12/09(土) 05:44:07
>>759 ちょい枝切り
def fib(max,a=0,b=1):
  for i in range(max):
    yield b
    a,b=b,a+b

762 :デフォルトの名無しさん:2006/12/09(土) 06:16:04
>>760
evalが壊れてるみたいだから、インストールし直した方が良い。

763 :デフォルトの名無しさん:2006/12/09(土) 09:27:22
最高のPython本は760が出版する。
2chでくだを巻くしか脳のない、ルサンチマンの760だけど
最高のPython本を書けるのは760だけだ。
 
 
 
 
 
 
 
 
 
出版予定は西暦3000年です。

764 :デフォルトの名無しさん:2006/12/09(土) 09:50:29
この程度のセンスでは松竹にすら入れない。

765 :デフォルトの名無しさん:2006/12/09(土) 11:23:53
windows で刻一刻と成長していく log file を見て

更新されたら更新されたぶん(追加された行)だけ
処理対象にしたい
(とりあえず tail -f のクローンを書きたい)

って言うときはどうするのでしょう?

while True:
newdata = f.read()
...
time.sleep(1)

で polling するしかない?


766 :デフォルトの名無しさん:2006/12/09(土) 11:30:00
>>758
ttp://www.python.org/dev/peps/pep-0246/

767 :デフォルトの名無しさん:2006/12/09(土) 11:59:18
>>765
ttp://lists.canonical.org/pipermail/kragen-hacks/2005-June/000413.html

768 :デフォルトの名無しさん:2006/12/09(土) 12:08:19
Py.py

769 :デフォルトの名無しさん:2006/12/09(土) 12:09:27
円周率の計算するプログラム
pi.py

770 :Python初心者(復活):2006/12/09(土) 12:56:57
>>728
>Enthought Edition が2.5に対応するのはいつごろになるかなあ。
>待ち遠しい。
ctypeとか既に2.5に取り込まれたのもあるようだが、良さそうな
ソフトですね。
ところで、Pythondでニューラルネットの誤差逆伝搬法なんかも
随分簡潔に書けるんですねぇ。
http://arctrix.com/nas/python/bpnn.py
何をやっているのか良く分からん人が多いと思うが。
(私も含めて…)
これからはシグモイド関数の時代?
http://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%B0%E3%83%A2%E3%82%A4%E3%83%89%E9%96%A2%E6%95%B0


771 :デフォルトの名無しさん:2006/12/09(土) 13:12:07
>>770
「これからは」っつーより、10年くらい前に流行った話だ

772 :デフォルトの名無しさん:2006/12/09(土) 14:51:08
おい、pygame1.8のリリースが延期だってよ。
ずっとワクテカしてたのにがっかりだよ。

773 :759:2006/12/09(土) 15:43:32
>>761
おお、ありがとう!目からウロコです。
自分もさらに少しだけ手を入れてみますた。

# ・組み込み関数名とかち合ってしまうので、引数名 max を size に変更。
# ・a, b を引数のデフォルトにするのは、外部から初期値を変更可になって
#  しまうのがいやなので、関数内で普通に宣言。

def fib(size):
    a = 0; b = 1
    for i in range(size):
        yield b
        a, b = b, a + b


774 :デフォルトの名無しさん:2006/12/09(土) 16:06:17
PEP 246 については誰もツッコまないのか?

775 :デフォルトの名無しさん:2006/12/09(土) 16:17:03
>>774 ツッコミたいんだけど、俺英語ダメなんだよ。今必死こいて読んでる。

776 :デフォルトの名無しさん:2006/12/09(土) 16:33:11
>>773
> a = 0; b = 1
a, b = 0, 1 と書くのが、より Pythonic ではないかと。
ああ、こういう「自転車置き場の議論」は気楽でいいなあ。
http://0xcc.net/blog/archives/000135.html

777 :デフォルトの名無しさん:2006/12/09(土) 16:44:19
>>> a = u'ちんぽ'
>>> b = u'っぽ'
>>> for i in range(10):
... print a + b * i
...
ちんぽ
ちんぽっぽ
ちんぽっぽっぽ
ちんぽっぽっぽっぽ
ちんぽっぽっぽっぽっぽ
ちんぽっぽっぽっぽっぽっぽ
ちんぽっぽっぽっぽっぽっぽっぽ
ちんぽっぽっぽっぽっぽっぽっぽっぽ
ちんぽっぽっぽっぽっぽっぽっぽっぽっぽ
ちんぽっぽっぽっぽっぽっぽっぽっぽっぽっぽ

778 :デフォルトの名無しさん:2006/12/09(土) 17:53:56
Python2.4でWindowsのEclipse pydevを使ってます。

#coding: sjis
print u"あいうえお"

Shift JISでファイルを保存して上のを実行すると

Traceback (most recent call last):
File "D:\workspace\PythonTest\src\test.py", line 2, in ?
print u"あいうえお"
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)

というエラーが出ます。原因は何でしょうか?

779 :デフォルトの名無しさん:2006/12/09(土) 18:26:16
あっわかった
enthought版入れてたからCJKCodecが入ってないようでした

780 :デフォルトの名無しさん:2006/12/09(土) 18:55:29
>>779
そんなはずはないがなあ。
自分もEnthought Edition だけど、>>778のやり方で問題ないよ。

Enthought のバージョンが古いのかな?
最新は2.4だけど、これならCJKCodecs が標準添付だし。
http://www.python.jp/Zope/PyLog/1074425954/index_html

781 :デフォルトの名無しさん:2006/12/09(土) 21:10:13
標準の2.5を入れてみたのですが
#coding: sjis
print "あいうえお"
だとちゃんと表示されます。みんPy読んでると
print u"あいうえお"
としないとだめと書いてあるのにこっちだとエラーです。

なぜでしょうか・・・

782 :デフォルトの名無しさん:2006/12/09(土) 21:26:31
>>781
これの実行結果を見せてもらえないかな。
import sys
print sys.getfilesystemencoding()
print sys.stdin.encoding
print sys.stdout.encoding
print sys.stderr.encoding
print sys.getdefaultencoding()


783 :デフォルトの名無しさん:2006/12/09(土) 21:27:31
>>782
mbcs
None
None
None
ascii
なってます。

784 :デフォルトの名無しさん:2006/12/09(土) 21:28:06
一言で言えば設定が悪いから

785 :デフォルトの名無しさん:2006/12/09(土) 21:29:45
二言お願いします

786 :デフォルトの名無しさん:2006/12/09(土) 21:31:13
>>782
この状態で日本語のUnicode文字が出力できるわけがない

787 :デフォルトの名無しさん:2006/12/09(土) 21:34:18
ttp://www.okisoft.co.jp/esc/cygwin-15a.html
のと同じ状況なので調べてみます

788 :デフォルトの名無しさん:2006/12/09(土) 21:37:47
そのページ紹介しようかと思ったんだけど、Cygwin固有の話だからねえ。
しかし、どうしてこんな設定になっているのだろう?


789 :デフォルトの名無しさん:2006/12/09(土) 21:42:08
ttp://www.python.jp/Zope/download/pythoncoreのpython-2.5.msiをインストールしたんですが
もしかしたらPyDevでeclipse上で実行したからかも・・・eclipse上で先ほどのスクリプトを実行すると
mbcs
None
None
None
ascii
ですがcommand lineで実行すると
mbcs
cp932
cp932
とかになります。

790 :デフォルトの名無しさん:2006/12/09(土) 21:43:45
あんまり関係ないかもしれないけど、
sitecustomize.py を設定したらどうなるかな。

c:\Python25/Lib/site-packages/sitecustomize.py に
import sys
sys.setdefaultencoding('cp932')


791 :デフォルトの名無しさん:2006/12/09(土) 21:45:04
>>790
mbcs
None
None
None
cp932
なりました

792 :デフォルトの名無しさん:2006/12/09(土) 21:45:33
>>789
それなら、コマンドラインなら print u"あいうえお" で行けるはずだよ。
どうやらPyDevの設定の問題かな。

793 :デフォルトの名無しさん:2006/12/09(土) 21:46:03
import re
def castrate(s):
 return re.sub(u'ちんぽ(っぽ)*', '', s)


794 :デフォルトの名無しさん:2006/12/09(土) 21:51:21
>>791
それだとやっぱりダメだねえ。
誰かPyDevの設定方法を知っている人いないか?

795 :デフォルトの名無しさん:2006/12/09(土) 21:51:53
>>792
ありがとうございます。コマンドライン上からはできました。
やはりPyDevみたいですがやはりPyDev上だとだめでした。
PyDevの設定見てみます。

796 :デフォルトの名無しさん:2006/12/09(土) 22:49:44
役に立つかどうかわかりませんが、実PyにPyDevの項目があるので、
立ち読みしてみては?

797 :デフォルトの名無しさん:2006/12/09(土) 23:15:51
ちょっとよくわからない状況なんですが、enthought版のpythonを再インストールして
import sys
print sys.getfilesystemencoding()
print sys.stdin.encoding
print sys.stdout.encoding
print sys.stderr.encoding
print sys.getdefaultencoding()
をやったら
mbcs
None
None
None
mbcs
となり
#coding: sjis
str = u"あいうえお かきくけこ"

temp = str.split()
for item in temp:
print item
のプログラムはちゃんと実行できました。

perlだとそんなに気にしてなかったけどUnicode文字列とそれ以外の文字列など区別が複雑です・・・

798 :デフォルトの名無しさん:2006/12/09(土) 23:35:02
結局の所、Core Pythonが最強ってことでFA?

799 :デフォルトの名無しさん:2006/12/10(日) 00:01:07
雑誌の読者プレゼントで「みんなの Python」当たったから、
今日から勉強するぜー(^ω^)

800 :デフォルトの名無しさん:2006/12/10(日) 00:41:17
プレゼントといえば、実Pyの関係者が本のプレゼントやっていたな。

プレゼントページ
ttp://www.rakuten.co.jp/osj-online/740190/

3冊だけど、ここでの不人気ぶりを見るに、当選確立は高いんじゃ(笑)
サインがなきゃ転売できるんだがなー。

>>799
みんPyもサイン本だった?なんか書いてあった?

801 :799:2006/12/10(日) 00:49:55
>>800
いや、サインも何も無し。
新品のが来たっす。

802 :デフォルトの名無しさん:2006/12/10(日) 01:11:34
すぐにbook offで転売しなきゃ

803 :799:2006/12/10(日) 01:20:18
>>802
BookOffだと二束三文で買い叩かれるんじゃね?w


804 :デフォルトの名無しさん:2006/12/10(日) 01:32:08
>>803
ひととおり読めよ低能

805 :799:2006/12/10(日) 01:48:21
>>804
馬鹿かwww
俺は売るなんて一言も言ってねーだろうが。
低脳はもう寝ろwwwww

806 :デフォルトの名無しさん:2006/12/10(日) 02:00:00
>>805
必死だなww 寝るよバカwwww
Python なんてもう消えさればいいのに。

807 :デフォルトの名無しさん:2006/12/10(日) 02:11:47
おまえら喧嘩してるのかじゃれあってるのかよくわからんな

808 :デフォルトの名無しさん:2006/12/10(日) 02:42:49
matlabくらいしかプログラミングやったことないけど,
diveIntoPythonで勉強始めたよ.
hehe..

809 :デフォルトの名無しさん:2006/12/10(日) 08:57:09
matlabはいいね。

810 :デフォルトの名無しさん:2006/12/10(日) 10:42:15
>>800
>サインがなきゃ転売できるんだがなー。

サイン本プレゼントって有名人気取りかよ(wwww
三流著者のサインなんて誰がほしがるんだろうな
考えることも三流だな(wwwwww

811 :デフォルトの名無しさん:2006/12/10(日) 10:56:18
>>646
こんなの見つけた。
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/9694
数値計算でRubyは避けたほうが無難?

812 :デフォルトの名無しさん:2006/12/10(日) 14:36:36
そもそもその用途に ruby を使う香具師なんているのか?

813 :デフォルトの名無しさん:2006/12/10(日) 17:50:36
Programming Python が届いた
分厚い…

会社に持って行けるかな

814 :デフォルトの名無しさん:2006/12/10(日) 22:46:55
>>813
厚い、とてつもなく厚い。
厚い分あれもこれも色々書いてあるが、リファレンスとしては使いにくい。
もちろん会社で仕事の合間に読み通せるようなボリュームじゃない。
正月休みにじっくり読むしかないじゃないか?

815 :デフォルトの名無しさん:2006/12/10(日) 22:50:49
>>813
運搬するくらいなら会社用を買うのがお勧めw

816 :デフォルトの名無しさん:2006/12/10(日) 22:53:40
おまいら仕事でpython?
pythonを使う仕事って何?


817 :デフォルトの名無しさん:2006/12/10(日) 22:59:00
Python+fastcgi で WEB とか

818 :デフォルトの名無しさん:2006/12/10(日) 23:02:43
>>816
仕事で使うちょっとしたツール類や、プロトコルを検証するための実験的プログラムが
今のところ多いな。中にはそのまま納品するアプリケーションになることもあるよ。

819 :デフォルトの名無しさん:2006/12/10(日) 23:10:16
>>813
会社用を経費でゲット
それでコンピュータ技術書の出版に少しでも金を落としてくれ
でないとそのうち技術書は何も出版されなくなってしまう

820 :デフォルトの名無しさん:2006/12/10(日) 23:10:51
和書買えよ。

821 :813:2006/12/10(日) 23:16:59
はじぱいとみんぱいも買ってますよ
Cookbookも、これは洋書か

822 :デフォルトの名無しさん:2006/12/11(月) 00:16:51
Cookbookの翻訳はいつ完成するんだろうか

823 :デフォルトの名無しさん:2006/12/11(月) 00:17:58
>>822
もう一年近く動きがないように見えるんだが気のせいか?

824 :デフォルトの名無しさん:2006/12/11(月) 00:30:40
>>823
カタツムリの牛歩のごとく進んではいる
htttp://python.is-a-geek.org/cgi-bin/sechandle.cgi

825 :デフォルトの名無しさん:2006/12/11(月) 01:12:14
ほんとにちょっとずつだよね。
辛抱強く見守ることの大切さを感じるよ。

826 :デフォルトの名無しさん:2006/12/11(月) 16:57:57
今となってはその存在自体が迷惑な

Python入門
ttp://www.oreilly.co.jp/books/4900900559/
Pythonプログラミング
ttp://www.oreilly.co.jp/books/4900900672/

Python 1.4って知ってるか?

827 :デフォルトの名無しさん:2006/12/11(月) 17:06:53
オッサンはもうイラネ

828 :デフォルトの名無しさん:2006/12/11(月) 18:20:56
それより誰かDive和訳してよ

829 :デフォルトの名無しさん:2006/12/11(月) 18:24:12
>>828がDIPを翻訳するそうですよ、皆さん。

830 :デフォルトの名無しさん:2006/12/11(月) 18:27:56
お前ら能無しコンサルみたいに舶来モノばかり崇めてんじゃねえよ!!!
DIPに匹敵する和製コンテンツを角くらいの意気込みのあるヤツはいねえのかボケ共が!!!

831 :デフォルトの名無しさん:2006/12/11(月) 18:35:40
車輪の再発明をするのもなあ。
それにしても、英語を何とか身につけたいなあ。
いつまでも翻訳を待っている身ではどうしようもない。


832 :デフォルトの名無しさん:2006/12/11(月) 18:45:53
カクで角が出るとはなかなか調教された辞書をお持ちのようだ

833 :デフォルトの名無しさん:2006/12/11(月) 18:47:26
今夜勉強を始められないなら一生身につかないな

834 :デフォルトの名無しさん:2006/12/11(月) 18:59:03
>>826
ああ、でも、歴史的意義まで今になってから否定するのは
良くない希ガス。

Python1.4はさすがに知らないけど、考え方自体は、
今のPython でも通用するかもしれないし。

自分の場合は、Java をかじった経験からOOP とか
理解できたけど、学校で学んだ人間は別として、
そうでない一般人がJava 知らないで、公式ドキュメントだけで
Python (やOOP)を理解できるのか疑問に思う。

チュートリアル自体が、他の言語のことはよく知ってる人間を
対象にしてるとしか思えない書き方だし。

そういう意味では、内容にはあれこれあっても、
最近のPython 書籍ブームは歓迎かな。

早く、ほかの言語をなにも知らない人間でもすんなり入れる
言語になってほしい。(あともう少しと思う)

と、結局は人頼み…なんだけど。

835 :デフォルトの名無しさん:2006/12/11(月) 19:01:49
書籍名:Python 原論〜グイドたんの脳内を解析しますた〜
出版元:Pythonのお勉強スレ@2ch

§1:Python って何?ググれよ
§2:PEP は良いものです〜PEP相関図〜
§3:CPython ソースコードツアー
§4:で、どうやって使うの?知らんがな

836 :デフォルトの名無しさん:2006/12/11(月) 19:04:38
>>831
ルサンチマン乙。

837 :デフォルトの名無しさん:2006/12/11(月) 19:12:35
みんPyの最後らへんの章なんて著者のオナニーじゃん。おまえの使い方なんて誰も訊いちゃいねーんだよw

838 :デフォルトの名無しさん:2006/12/11(月) 19:14:53
みっともない。

839 :デフォルトの名無しさん:2006/12/11(月) 19:17:07
はいはい.
私怨私怨.
はいはい.
三流ZOPE関係者三流ZOPE関係者.

840 :デフォルトの名無しさん:2006/12/11(月) 19:28:52
>>816
ttp://www.python.org/about/success/
みんな仕事でPython.

841 :デフォルトの名無しさん:2006/12/11(月) 19:34:40
>>837
こういう書き込みをオナニーっていうんじゃねえの?(WWWW

842 :デフォルトの名無しさん:2006/12/11(月) 19:36:16
他人のオナニーを見ながらオナニーをするとはド変態だな(www

843 :デフォルトの名無しさん:2006/12/11(月) 19:42:53
> そうでない一般人がJava 知らないで、公式ドキュメントだけで
> Python (やOOP)を理解できるのか疑問に思う。

それはどうかな。
逆に、Javaだったら公式ドキュメントだけでJavaやOOPを理解出来るの?

844 :デフォルトの名無しさん:2006/12/11(月) 19:46:48
一生OOPを理解せず、Pythonを知らないで過ごすのが、いわゆる「一般人」だろう。w
正直言って一般人がどうだろうとかって興味ないよ。

845 :デフォルトの名無しさん:2006/12/11(月) 19:51:07
というかpythonに興味を持った時点で
既に一般人じゃない。

846 :デフォルトの名無しさん:2006/12/11(月) 20:15:33
>>845
ふざけんな
俺は一般人だ

847 :デフォルトの名無しさん:2006/12/11(月) 20:29:35
でも「みんなの」と銘打っておきながらweb系に偏っているのはどうかと思うがね。
まぁweb系の人だから経験上でそれしか言えないという事情もあったのだろうけどね。

848 :デフォルトの名無しさん:2006/12/11(月) 20:36:51
まあ、そういわれれば、Javaも一般人が公式ドキュメントだけで
理解するのはまず無理でしょうね。

失礼しました。
お詫びに(というのでもありませんが)、オブジェクト指向の参考に
なりそうなサイトのリンクをいくつか貼っときます。

オブジェクト指向入門
http://itpro.nikkeibp.co.jp/members/NSW/ITBASIC/20050617/162922/

デザインパターン
http://www.techscore.com/tech/DesignPattern/

デザインパターン
http://itpro.nikkeibp.co.jp/article/COLUMN/20051201/225570/

とはいえ、オブジェクト指向にこだわりすぎるのは、生産性を低めると
思うなぁ。小規模なプログラムなら、関数のみで組んだ方が早いし…。

849 :デフォルトの名無しさん:2006/12/11(月) 20:39:46
そもそもOOPって仕様書のプログラム言語化だし。わかるわからないの次元じゃないんだよ。

850 :デフォルトの名無しさん:2006/12/11(月) 20:42:11
↑は分かってない予感

851 :デフォルトの名無しさん:2006/12/11(月) 20:49:39
OOPはDB設計と同じ

852 :デフォルトの名無しさん:2006/12/11(月) 21:05:45
いよいよ来たな、年末デザパタ祭り!

853 :デフォルトの名無しさん:2006/12/11(月) 21:08:51
OOスレでやってよ!

854 :デフォルトの名無しさん:2006/12/11(月) 21:36:35
OpenOfficeヌレどこ?

855 :デフォルトの名無しさん:2006/12/11(月) 22:31:51
まあここは一つメタクラスでも。

856 :デフォルトの名無しさん:2006/12/12(火) 01:05:38
∀・)<誰もいない・・・・・メタクラするなら今のうち・・・・・

# クラス名をcapitalizeするメタクラ
class Capitalizer(type):
    def __new__(meta, name, bases, attrs):
        return type.__new__(meta, name.capitalize(), bases, attrs)

class foo:
    __metaclass__ = Capitalizer

class BAR(foo):
    pass

print foo()
# => <__main__.Foo object at 0x0125C370>
print BAR()
# => <__main__.Bar object at 0x0125C930>

857 :デフォルトの名無しさん:2006/12/12(火) 01:05:46
windows版のpythonでtkinterを使ったプログラム実行しようとしたら、firewallがブロックするとかいうエラーが出て、実行できなかった。
さらにIDLEまで起動しなくなっちゃんたんだけど、何が問題でしょうか?せめてIDLEが起動しないという問題は解決したいです

858 :デフォルトの名無しさん:2006/12/12(火) 01:06:51
1.誰かが書籍を取り上げる
2.ゴミだろ! と吐き捨てる
3.でも読んでみると。と持ち上げる
4.また本人か! と反応
5.どこどこ行けよ! と追い出しにかかる
6.メタクラスの話でもしようぜ! と話を変えてみる
7.それよりも……と自分の理解できるネタに話を逸らそうとする
8.おっぱい!おっぱい! 叫びだして、全てがうやむやになる


859 :デフォルトの名無しさん:2006/12/12(火) 01:12:19
  −=≡    _ _ ∩
 −=≡   ( ゚∀゚)彡  おっぱい!おっぱい!
−=≡   ⊂  ⊂彡
 −=≡   ( ⌒)
  −=≡  c し'

860 :857:2006/12/12(火) 01:12:32
ちなみに、firewall切っても、python再インストールしてもだめでした

861 :デフォルトの名無しさん:2006/12/12(火) 01:14:34
>>857
99% firewallの問題だろ

862 :デフォルトの名無しさん:2006/12/12(火) 01:14:37
9. Python初心者(復活)が現れる

863 :デフォルトの名無しさん:2006/12/12(火) 01:15:32
>>860
firewallってノートン先生?

864 :デフォルトの名無しさん:2006/12/12(火) 01:18:03
>>863
windowsで提供されてるやつです

865 :デフォルトの名無しさん:2006/12/12(火) 01:18:55
>>858
>>855-859の流れにワロタw


866 :デフォルトの名無しさん:2006/12/12(火) 01:20:51
無理無理、処理系どこからエラーメッセージの文章すら書けない人の
トラブルシュートなんてやってらんないよ。
しばらく環境が出尽くすまで干しとくよろし。

867 :デフォルトの名無しさん:2006/12/12(火) 01:25:52
メタクラスって何?
出来ればおせーて

868 :デフォルトの名無しさん:2006/12/12(火) 01:26:46
それより関数型プログラミングの話でもしようぜ


869 :デフォルトの名無しさん:2006/12/12(火) 01:32:30
それだけは勘弁してくれ

870 :デフォルトの名無しさん:2006/12/12(火) 01:33:41
じゃあおれはZopeについて書きまくるよ。

871 :デフォルトの名無しさん:2006/12/12(火) 02:13:08
憎腐イラネ

872 :デフォルトの名無しさん:2006/12/12(火) 12:03:45
moinmoinの語感が好き
システムは大嫌い

873 :デフォルトの名無しさん:2006/12/12(火) 12:06:19
ちょっと質問です。
キーワード引数を使う関数が、どういうキーワードを使ってるかを
ソースを見ないで調べる方法はありますか?

例えば、
def SUM(X=1, Y=2, Z=3):
 return X + Y+ Z
の時の、'X', 'Y', 'Z' というキーワードを知りたいのです。

874 :デフォルトの名無しさん:2006/12/12(火) 12:13:25
>>> help(SUM)
Help on function SUM in module __main__:

SUM(X=1, Y=2, Z=3)


875 :デフォルトの名無しさん:2006/12/12(火) 12:31:12
>>874
おお、できました。ありがとうございます。

876 :Python初心者(復活):2006/12/12(火) 12:33:13
>>862
>9. Python初心者(復活)が現れる
オマタぁ?
>>834
>早く、ほかの言語をなにも知らない人間でもすんなり入れる
>言語になってほしい。(あともう少しと思う)
すんなり
print 'Python'
ならだれでも入れる。
import sys
sys.stdout.write('Python')
には少し知識が必要。
class Py:
  def __setattr__(self,attr,py):
    if attr == 'lang':
      self.__dict__[attr] = py
    else:
      raise AttributeError,attr + ' not allowed'
if __name__=='__main__':
  p = Py()
  p.lang = 'Python'
  print p.lang #->Python
  p.name = 'Python'#->AttributeError: name not allowed
これはJavaやOOPを知っていても、__setattr__や__dict__[attr]
などのWinAPI風味の?Python独特の仕組みを知らないと厳しい。
どんな言語でも「すんなり」入れるレベルとある程度の習熟が
必要なレベルがあるだけで、「すんなり」だけで構成されて
いる言語はLogoとかDoLittleなど教育用の言語しかないんじゃ
なかろうか?

877 :デフォルトの名無しさん:2006/12/12(火) 12:51:16
cしか書かない友人に配列とか文字列の扱いがキモイといわれたことならある・・・

878 :デフォルトの名無しさん:2006/12/12(火) 14:04:12
やだ、配列だって、877キモーイ

879 :デフォルトの名無しさん:2006/12/12(火) 14:41:19
Perlの質問スレで2次元配列に苦労してる初心者見ると、Pythonに乗り換えればいいのにと思う。

880 :デフォルトの名無しさん:2006/12/12(火) 15:06:26
PerlはPerlで、ワンライナーないし数行程度で下らなくて汚い仕事をやるという
役目がある

881 :デフォルトの名無しさん:2006/12/12(火) 15:27:01
その言語特有の役目とか言い出すと
Pythonには何の役目も無いな

882 :デフォルトの名無しさん:2006/12/12(火) 15:48:33
>>881
んなこたーない。

883 :デフォルトの名無しさん:2006/12/12(火) 15:57:37
役目がないのは881。

884 :デフォルトの名無しさん:2006/12/12(火) 16:20:49
>>881
何を言う!
Pythonは電卓として便利だぞ

885 :デフォルトの名無しさん:2006/12/12(火) 16:29:39
自明の役目があったら、>>882-883とほぼ同等の字数(手間)でそれを挙げられるから
こういう「反撃」より先にそれが書き込まれて元レス瞬殺って流れになるんだけどね。
残念ながら、役目が思いつかないか、思いついたとしても自明ではないゆえ
必死っぽい「解説」を添えなきゃならず、結果、瞬殺イベントは起きることなく
代わりに単純否定や煽りやネタが先に来てしまう。

886 :デフォルトの名無しさん:2006/12/12(火) 16:32:36
885は屁理屈ばかりで役に立たない頭でっかちのヒキコモリ.

887 :デフォルトの名無しさん:2006/12/12(火) 16:34:55
Pythonが素晴らしいのはアカシックレコードにも書き込まれている真実だからな

霊的なレベルの低い奴には永遠に理解できないだろうけど

888 :デフォルトの名無しさん:2006/12/12(火) 16:41:32
つーか、こんな便利なものお前らに使わせない。
Pythonを普及しよう、とかいってるやつらはマジむかつく。
俺の秘密兵器を他人に使われたらどうするんだよ。
一般人はRubyとかPerlとかPHPとか使ってろよ頼むから。

889 :デフォルトの名無しさん:2006/12/12(火) 16:47:53
Python特有の役目(のひとつ)は科学技術計算だな。
特に対話形式の利用と他システムとの強力な連携の2点において
他のどのプログラミング言語にも取って代われない特異な位置を占めている。

890 :デフォルトの名無しさん:2006/12/12(火) 16:54:04
>>889
言うなよ。死ねよボケ。

891 :デフォルトの名無しさん:2006/12/12(火) 17:07:54
むしゃくしゃしてやった。
インデントなら何でもよかった。
今はトリプルクオートしている。

892 :デフォルトの名無しさん:2006/12/12(火) 17:12:05
屁理屈ばっかし。

893 :888:2006/12/12(火) 17:12:38
>>891
オマエは頭が弱そうだからPHPでも使っておけば?

if 0:
  コード

みたいなコードの無効化は、あんまりやらねえよな。
つーかsvnとか使い始めれば不要なコードを残しておくなんて事もしなくなるんじゃね?

894 :デフォルトの名無しさん:2006/12/12(火) 17:14:00
>>885
「自」まで読んで嫌になった

895 :デフォルトの名無しさん:2006/12/12(火) 17:19:50
>>894
だろうなぁ

現実が書かれているのは信者にはキツかろう

896 :デフォルトの名無しさん:2006/12/12(火) 17:28:16
>>895
最後まで読んでおまえがキチガイだとわかった。

897 :デフォルトの名無しさん:2006/12/12(火) 17:31:57
>>891
> インデントなら何でもよかった。
つ Haskell

898 :デフォルトの名無しさん:2006/12/12(火) 17:52:10
「Pythonの役目」がいかに禁句なのかがよくわかる展開でしたね

899 :デフォルトの名無しさん:2006/12/12(火) 17:56:06
日用品ですよ。

900 :デフォルトの名無しさん:2006/12/12(火) 18:09:30
スルーされて遊ばれてるだけなのに
勝ち誇っている人がいておかしいですね(wwww

901 :デフォルトの名無しさん:2006/12/12(火) 18:48:15
Pythonの真っ先に誰でも利用できる使い方は、試行錯誤しながら書く、使い捨
てスクリプトやプロトタイプだと思う。柔軟で簡潔な構文と対話環境が、すご
く開発効率を上げてくれる。

しかし使い捨てスクリプトならPerlとかの方ががずっと普及しているわけで、
この用途に関してなら、Pythonが圧倒的に優れているわけじゃない。

たぶんポイントは、コードを書いてから半年後。Perlと違い、Pythonだと半年
後でも、読んですぐにすっと理解できる。つまり、使い捨てコードが使い捨て
じゃなくなるわけで。

http://www.python.jp/Zope/articles/misc/morality_tale


902 :デフォルトの名無しさん:2006/12/12(火) 18:55:34
Pythonでちょっとしたサーバーソフト書いたりするけど、ライブラリがやけに充実してて困る

903 :デフォルトの名無しさん:2006/12/12(火) 19:12:12
>>901
単に劣っているものが普及しただけでは?

904 :デフォルトの名無しさん:2006/12/12(火) 19:13:37
Perl こそ何が良くてこれだけ使われてるのか全く理解できない言語なんだけどな

905 :デフォルトの名無しさん:2006/12/12(火) 19:18:23
このスレでPerlの方が読みやすいっていってもしょうがないよな
要は言語の問題じゃなくて書かれ方の問題なんだが...

906 :デフォルトの名無しさん:2006/12/12(火) 19:20:44
ここでPerl初心者登場↓

907 :デフォルトの名無しさん:2006/12/12(火) 19:32:30
Perlだけは読めない
というか理解できない

908 :デフォルトの名無しさん:2006/12/12(火) 19:36:51
>>901
ワンライナーでPythonの存在意義を示さないと885タソは満足しないぞ(www

909 :デフォルトの名無しさん:2006/12/12(火) 19:57:32
タン呼びできるほど萌えないからいいお

910 :デフォルトの名無しさん:2006/12/12(火) 20:18:51
>>905
熱心なPerlerはみんなそう言うから、Perlerにとってはそれが真実なんだろう
とは思う。
だけどそれが普遍的な事実とは思えない。
書き方の問題じゃなくて、Pythonの方が本質的に読みやすい、と感じる人も少
なくないわけで。特にここはPythonスレだしね。

個人的には、Perlのスタイルガイドは、こういうことを気にしながら書くなら、
言語がそれを強制するPythonの方が楽だと思う。
http://www.rfs.jp/sb/perl/09/05.html


911 :デフォルトの名無しさん:2006/12/12(火) 20:20:31
俺スカトロマニアなんだけど、ウンチとかシッコが美味しくてしようがないよ。
お前らも食べてみろよ。
この世にこんなに美味い食べ物があるなんて信じられないよ。

912 :デフォルトの名無しさん:2006/12/12(火) 20:30:11
じゃあ、言語に縛られた考え方しかできない奴がヘボってことで。。。

913 :デフォルトの名無しさん:2006/12/12(火) 20:31:05
それぞれの言語特有の良さを理解できない、生かせない奴がヘボだろ。

914 :デフォルトの名無しさん:2006/12/12(火) 20:36:48
Pythonが平均的に読みやすいことは認める。
だけど、Pythonのコードだっていつも見やすいわけじゃないぞ。
__hoge__ だらけのコードは、初心者はぎょっとする。
初心者でなくても、リスト内包表記のネストの読みづらさは異常。
対話環境で試行錯誤していて、出来上がったのがリスト内包表記のネストだっ
たりすると、あとで読むときにえらく苦労するぞ。


915 :デフォルトの名無しさん:2006/12/12(火) 20:41:05
>>914
ドMのド変態が、自分の欠点をさらけ出して
ハアハアしているようにしか見えないのは気のせいか?

916 :デフォルトの名無しさん:2006/12/12(火) 20:45:04
どうでもよくなって参りました(w

917 :デフォルトの名無しさん:2006/12/12(火) 20:45:13
>>914
リスト内包表記は集合論をかじったことがあればむしろ直感的に分かりやすい。
木をみるな、森を見るんだ!(ぇ

918 :デフォルトの名無しさん:2006/12/12(火) 20:47:47
>>917 いや、リスト内包表記自体は分かりやすいと思うよ。
問題は、それがネストした(入れ子になった)ときだよ。
キレイだし便利だから多用してると、あっという間にわけが分からなくなる。

919 :デフォルトの名無しさん:2006/12/12(火) 20:49:54
おまえらlisp使えよ

920 :デフォルトの名無しさん:2006/12/12(火) 20:50:00
リスト内包表記とmap/reduce/filterで繰り返し処理
ラムダで変数を定義
論理演算子で制御構造
これで後で後悔できるワンライナーが書ける

921 :デフォルトの名無しさん:2006/12/12(火) 20:52:05
> これで後で後悔できるワンライナーが書ける
ワラタ。やはり「書き方の問題」という部分は、どんな言語にもあるよな。

922 :デフォルトの名無しさん:2006/12/12(火) 20:53:10
>>918
どういう多用の仕方をいってるのかよくわからないけど、
内包表記ネストが必要なところで内包表記ネストをつかうのは
分かりにくくならないと思う。要するに関数で飛ばした中身
をさらに関数で飛ばしたいとき。

923 :デフォルトの名無しさん:2006/12/12(火) 20:56:48
922つづき
どう考えてもこのネストは分かりやすくないと思ったら
中間的な小さいクラスをねつ造してみる。
そういう必要性から生まれたクラスはたいてい、あっさりうまくいく。

924 :デフォルトの名無しさん:2006/12/12(火) 20:58:49
自分は、ワンライナー的に書き上げたコードは、リファクタリングして直してるな。
リスト内包表記がネストしたら、たいていはforループに書き直す。
バグが入り込む心配はない。
そういうときのためにdoctestがあるんだから。


925 :デフォルトの名無しさん:2006/12/12(火) 21:41:23
そろそろ10時。
メタクラスの時間ですよ。

926 :デフォルトの名無しさん:2006/12/12(火) 22:20:09
http://www.google.com/search?rls=ja&q=%E3%83%A1%E3%82%BF%E3%82%B0%E3%83%AD%E3%82%B9

927 :デフォルトの名無しさん:2006/12/12(火) 22:26:41
>>925
話題にする気なんて無いくせに・・・

928 :デフォルトの名無しさん:2006/12/13(水) 09:37:34
メタクラスよりメタキャラクタの方が好きだ。

929 :デフォルトの名無しさん:2006/12/13(水) 09:44:11
ところで、せっかく式で定義できたデータ構造をforループで書き換える意味が分からない。
ロジックのプロトタイプを書くのにワンライナーを使っているんだとすると、まずそのステップを踏んであとで直すという無駄な手間を自慢する理由もわからない。ひょっとしてオn(ry

930 :デフォルトの名無しさん:2006/12/13(水) 09:52:23
>>929
何に対する「ところで」なんだよ。
ちゃんと寝てるか?

931 :デフォルトの名無しさん:2006/12/13(水) 09:56:26
なんで急に睡眠の話を始めるんだろう。

2レス連続で電波だな。

932 :デフォルトの名無しさん:2006/12/13(水) 10:06:46
>920でも書いたが
(lambda a, b, chk = lambda ob: isinstance(ob, __import__('datetime').date): chk(a) and chk(b) and b - a)(some_long_expression_no1, some_long_expression_no2)
とかしてラムダで変数定義してandでif的構造を再現するワンライナーとか
mapとreduceとfilterと[]でごにょごにょし続けるワンライナーとか
こういうのを組み合わせて一行ってるといつまでたっても終わらないのでバランス感覚は必要だよねという話
プロトタイピングでそんな複雑なワンライナー書くわけねーだろ変態野郎といわれたら申し訳ない

933 :デフォルトの名無しさん:2006/12/13(水) 10:17:20
うん、シリアスコードでそんなの書かない。

934 :デフォルトの名無しさん:2006/12/13(水) 10:17:47
変態野郎

935 :デフォルトの名無しさん:2006/12/13(水) 10:18:46
>>932
センスないですね

936 :デフォルトの名無しさん:2006/12/13(水) 12:04:39
志賀高原の焼額山、ライブカメラで見てみたんです。
そしたら、山頂付近がモト冬樹でした...orz...。

937 :Python初心者(復活):2006/12/13(水) 13:16:09
>>914
>初心者でなくても、リスト内包表記のネストの読みづらさは異常。
>対話環境で試行錯誤していて、出来上がったのがリスト内包表記
>のネストだったりすると、あとで読むときにえらく苦労するぞ。
Flat is better than nested.
これはPythonの言語仕様における原則の一つです。
つまり、インデントは深いネストを制限する効果も
ある訳です。ところがリスト内包表記でのネストは
この原則からは逸脱している。
ところが、コードの透過性という観点から視れば
全ての機能がそのコードで理解出来るから
ネスト構造もあながち否定されるべきものでもない。
要は、ネスト構造に伴う頭脳負荷にどこまで耐えられのか。
ワインバーガーは通常のプログラマの場合、5層以上の
ネスト構造は避けるべきだと云っている。
リスト内包表記の最後のコードに括弧が]]]]]までという
意味だが、慣れたLisperの場合には]]]]]]]]]10個程度は
理解可能のようです。勿論ある程度のインデントは必要で
しょうが。
逆に言えばどれだけのネスト構造に耐えられるかで
そのプログラマの頭脳耐性が分かるということです。
皆さんはどうでしょうか?


938 :デフォルトの名無しさん:2006/12/13(水) 13:23:07
ネストが深くなっても読みやすいのはLispくらいだな。(慣れの問題か?)
Pythonではあまり深いネストはやらない。長い式も代入して分けたりしている。

939 :デフォルトの名無しさん:2006/12/13(水) 13:32:08
括弧内は改行が許されるルールを使うと
長い行もある程度読みやすくなるけど
改行が必要なほど長い行は
「分割しる!!」と言う警鐘だと思うことにしているよ

940 :デフォルトの名無しさん:2006/12/13(水) 14:37:45
>>937からsuckit臭がしてきた。

941 :デフォルトの名無しさん:2006/12/13(水) 15:41:25
]]]]]という形なら使ってる関数をまとめることで
簡単にネストを解消できるのでは?
問題は] for a in b] for c in d] for e in f] for g in h]
という終わり方だと思う。
さすがにこれは理解する自信ないなw

942 :デフォルトの名無しさん:2006/12/13(水) 15:43:28
頭脳耐性とかきもいよね

943 :デフォルトの名無しさん:2006/12/13(水) 15:48:14
>941
そこでmap/reduce/filterですよ

944 :デフォルトの名無しさん:2006/12/13(水) 16:37:19
ネストは二重まで、それ以上は関数にする。

945 :デフォルトの名無しさん:2006/12/13(水) 16:41:59
ネストは必要なだけ。よく使う操作は関数にする。

946 :デフォルトの名無しさん:2006/12/13(水) 17:12:58
map と filter は使うことあるけど、reduceのお世話になった記憶はないなあ

947 :デフォルトの名無しさん:2006/12/13(水) 17:21:58
変態的辞書生成法
reduce(lambda dict, j: dict.update({j: j + 1, }) and None or dict, range(10), {})

948 :デフォルトの名無しさん:2006/12/13(水) 17:36:20
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.


949 :デフォルトの名無しさん:2006/12/13(水) 17:51:26
手を入れてみた。
reduce(lambda dic, j: dic.update({j: j + 1, }) or dic, range(10), {})

1.dictは組み込み型と名前が重なるので、dic に変更。
2.and None はいらなくね?dic.update() は戻り値はNone だし。
3.当然だが、やっぱり素直にループで書くべきだな。

950 :デフォルトの名無しさん:2006/12/13(水) 17:56:01
変態だ。とはいえループで書く気もしない。dict([(i, i+1) for range(10)])

951 :デフォルトの名無しさん:2006/12/13(水) 18:00:12
dictはわざと。スコープ小さいし上書きしても構わねえだろという判断。{}が死ぬわけではないので普段から上書きしちゃうこともあるが
and Noneで失敗させてるのはupdateの挙動が変わったときのため

まあワンライナーにメンテナンス性とか互換性を求める時点で狂ってるとは思う
書いてると言語に対する理解とかは深まるんだが声高に批判する人がいても無理ないよな
どう見ても変態ですもの

952 :デフォルトの名無しさん:2006/12/13(水) 18:03:50
あー、dictにそういう初期化形式があったっけ。
dict(zip(range(10), range(1, 11)))
こうも書けるな。ちょっと汚いけど。

953 :デフォルトの名無しさん:2006/12/13(水) 18:04:52
マクロ展開とかに便利。
>>> spam_macros = [('egg', 'egg and spam'), ('spam', 'spam with bacon'), ('ham', 'ham and spam and egg')]
>>> reduce(lambda x, y: x.replace(y[0], y[1]), spam_macros, 'egg and bacon and ham')
'egg and spam with bacon and bacon and ham and spam and egg'
>>>


954 :デフォルトの名無しさん:2006/12/13(水) 18:05:35
>950
dict([(i, i+1) for i in range(10)])
dictってkey,valueペアのシーケンスから辞書を作ってくれるのか。知らなかったわ

955 :デフォルトの名無しさん:2006/12/13(水) 18:07:10
>>954
入門書嫁

956 :デフォルトの名無しさん:2006/12/13(水) 18:11:14
>>953 以前も出たが、どうしておまいは素直にLISPを使わないんだ?
その使い方なら、そのほうが幸せなんでね?

957 :デフォルトの名無しさん:2006/12/13(水) 18:17:15
だってPythonのこと大好きなんだもん。

958 :デフォルトの名無しさん:2006/12/13(水) 18:21:27
Guidoだったら、素直にこう書け、と言いそうだが。

def trans_macro(text):
    spam_macros = [('egg', 'egg and spam'),
                   ('spam', 'spam with bacon'),
                   ('ham', 'ham and spam and egg')]
    for i in spam_macros:
        text = text.replace(i[0], i[1])

    return text


959 :デフォルトの名無しさん:2006/12/13(水) 18:27:33
http://mail.python.org/pipermail/python-3000/2006-April/001030.html

Personally, I believe that all code involving reduce() can be made
more readable by removing the reduce() call and writing an explicit
loop.

960 :デフォルトの名無しさん:2006/12/13(水) 18:33:33
>>958
ニセ者乙。

961 :デフォルトの名無しさん:2006/12/13(水) 18:35:46
そもそもワンライナーにこだわる理由も分からない。
対話環境しか使ってないのか?
Emacs のpython-mode で書いて、C-c C-c とやれば、即座にスクリプトが実行
されるんだが。
Emacs LISPのスクラッチバッファや、scheme-mode と同じぐらい快適だよ。


962 :デフォルトの名無しさん:2006/12/13(水) 18:51:54
Guidoは高階関数が嫌いなんじゃなかったっけ?

963 :デフォルトの名無しさん:2006/12/13(水) 18:58:17
>>961
そんな理由しか思いつかないんですか。


964 :デフォルトの名無しさん:2006/12/13(水) 18:58:54
高階関数そのものが嫌いなら、デコレータやfunctoolsは作らないんじゃない?

965 :デフォルトの名無しさん:2006/12/13(水) 19:02:22
>>964
どっちも、Guido自身が提案したわけじゃないし

966 :デフォルトの名無しさん:2006/12/13(水) 19:05:17
>>963
その言い方は、なんか腹が立つな。
じゃあ、どういう理由でワンライナーなの?

967 :デフォルトの名無しさん:2006/12/13(水) 19:14:29
>>965
デコレータとかは、無いものをわざわざ導入したんだから、それなりに認めて
るんじゃないか?
mapやreduce は、今あるのに廃止しようとしたんだから、態度が違うよ。


968 :デフォルトの名無しさん:2006/12/13(水) 19:40:58
まあ実際のところは本人に聞くしかないわけだが(w

969 :デフォルトの名無しさん:2006/12/13(水) 20:18:48
呼んだか?

970 :デフォルトの名無しさん:2006/12/13(水) 20:48:51
Perl使いだったけどPythonに寝返ったよ

971 :デフォルトの名無しさん:2006/12/13(水) 20:53:35
俺もPerl飽きたからPython勉強中
でも何かめんどくせ

972 :デフォルトの名無しさん:2006/12/13(水) 21:07:30
Pythonて標準で汎用なflockが無いのかー

973 :デフォルトの名無しさん:2006/12/13(水) 22:21:51
map は今の記法がいいかどうかはともかく便利だし
読みにくいかどうかも所詮は慣れじゃないのかな...

内包表記だって慣れなかったら相当読みにくいよ

974 :デフォルトの名無しさん:2006/12/14(木) 02:02:24
そろそろ誰か次スレをお願い。

975 :デフォルトの名無しさん:2006/12/14(木) 03:57:49
ttp://kano.feena.jp/diary/20061206.html#p01
これはひどい

976 :デフォルトの名無しさん:2006/12/14(木) 04:31:13
元気があっていいと思う。(どうせそのうち何も言わなくなる。

977 :デフォルトの名無しさん:2006/12/14(木) 06:21:15
こういう「自分ワールドで居丈高」なム系のブログって、
他の日の項目にラノベとかエロゲがある確率高すぎ。

978 :デフォルトの名無しさん:2006/12/14(木) 07:38:48
>>975
気持ち悪すぎ・・・
素で思った

979 :デフォルトの名無しさん:2006/12/14(木) 07:58:35
Pythonのお勉強 Part16
http://pc8.2ch.net/test/read.cgi/tech/1166050674/

980 :デフォルトの名無しさん:2006/12/14(木) 08:15:44
>>979


981 :デフォルトの名無しさん:2006/12/14(木) 10:23:16
>228 名前: nobodyさん Mail: 投稿日: 2006/12/14(木) 01:21:52 ID: kjxDTR99
>ttp://foma-zakki.cocolog-nifty.com/zakki/2006/12/python_books_py_1f47.html
>
>削除要請とは穏やかではないですな。

三流は考えることもやることも三流。

982 :デフォルトの名無しさん:2006/12/14(木) 14:02:25

まだまだいくよぉ〜〜〜!!

巫女みこナース! 巫女みこナース!
リスト内包 巫女みこナース!!

巫女みこナース! 巫女みこナース!
lambda 一行 巫女みこナース!!

巫女みこナース! 巫女みこナース!
Py本粘着 巫女みこナース!!

巫女みこナース! 巫女みこナース!
初心者(復活) 巫女みこナース!!

巫女みこナース! 巫女みこナース!
print u"文字化け"巫女みこナース!!

巫女みこナース! 巫女みこナース!
メタクラ おっぱい 巫女みこナース!!

巫女みこナース! 巫女みこナース!
巫女みこナース! 巫女みこナース!
巫女みこナース! 巫女みこナース!

巫女みこナース! 巫女みこナース!

最後にもいっちょー、ハイ!
巫女みこナース!

983 :デフォルトの名無しさん:2006/12/14(木) 15:04:23
Pythonの回りにもヘンなヤツが増えてきたなあ。

984 :デフォルトの名無しさん:2006/12/14(木) 15:09:00
python使いにアニオタがいるなんて

985 :デフォルトの名無しさん:2006/12/14(木) 15:10:59
「しっぱい」の表紙がアニメ絵だったよな。著者はアニオタか?

986 :デフォルトの名無しさん:2006/12/14(木) 15:28:07
>>981
これはひどい

987 :デフォルトの名無しさん:2006/12/14(木) 15:40:59
>>981
これはひどい

988 :デフォルトの名無しさん:2006/12/14(木) 19:14:02
>>981
Pythonの回りにもヘンなヤツが増えてきたなあ。


989 :デフォルトの名無しさん:2006/12/14(木) 19:59:59
自己紹介文
経歴
弘前大の応用生命工学科に入学
大学1年次に情報処理の講義でコンピュータに興味を持ち、友人の助けを借りて学習を続ける。
卒論優秀賞を受賞し卒業
帰省後就職活動を行い、IT系人材派遣会社に就職する。
半年後 IPA の未踏ユース公募を見て会社を辞め、未踏ユースに応募する
が、選考落ち orz
いいもん、いつか自分で完成させてやる( ´・ω・`)

現在
働かないとご飯食べられなくなりそうなのでお仕事募集中。
クライアントサイドスクリプトなら問題なくかけると思います。
Javascriptクライアントサイドスクリプトで作ったツールはこちら
LLRing ブログで開催されたコンテストで見たRubyで書かれたコードの美しさに惹かれ、Ruby も勉強しようと思う今日この頃。
Python と Ruby でお仕事探そうかな(`・ω・´)

興味のあること
プログラミング(現在C言語、Python, Javascript使用), 知識も技術もまだまだ勉強が必要です。 .NET, Ruby も使えるようになりたいですね。

990 :デフォルトの名無しさん:2006/12/14(木) 20:10:03
ぐぐる八分とは姑息だなw

991 :デフォルトの名無しさん:2006/12/14(木) 20:17:47
YouTube のほとんどが Python で実装されているらしい
http://coreblog.org/ats/YouTube-is-almost-entirely-written-in-Python

992 :デフォルトの名無しさん:2006/12/14(木) 20:19:40
>>990
八分って誰が喜ぶのか考えると笑えるな(ZOPEZOPEZOPE

993 :デフォルトの名無しさん:2006/12/14(木) 21:18:25
ぐーぐる八分はたまたまリンクの具合とかでなったんじゃねえか?
頼むとそんなにすぐにはずしてくれるものなの?
しかも、どっかの依頼ではずしたならすぐ戻されないだろ常識的に考えて・・・

994 :デフォルトの名無しさん:2006/12/14(木) 22:23:30
たまたまなって、文句を言った直後にたまたまもどったわけか。
たまたまが多いな。

995 :デフォルトの名無しさん:2006/12/14(木) 22:47:20
ただの被害妄想じゃないか?

996 :デフォルトの名無しさん:2006/12/14(木) 22:58:55
そういうことにしたいのですね。

997 :デフォルトの名無しさん:2006/12/14(木) 23:22:18
>>991
そのネタいいですね。
何にも知らない人にpythonて何がいいのとか聞かれたときに
便利そうなネタ

998 :デフォルトの名無しさん:2006/12/14(木) 23:29:45
Pythonで書かれたブログシステムで
共有レンタルサーバーなんかにインストールできるものってありますか?
WordPressとかみたいに、展開して使えるといったようなものです
もしご存じでしたらお願いします
ZopeでCoreblogとかだとrootが必要で
そうするとVPSか専用レンタルサーバーにしなくてはならなくて
個人でかりるには金額的にきびしいものがあります


999 :デフォルトの名無しさん:2006/12/14(木) 23:32:31
>>998
mod_pythonが使えるレン鯖なら、DjangoのBlogとかがつかえるんじゃね?
でなければpyblosxomとか。

1000 :デフォルトの名無しさん:2006/12/14(木) 23:34:38
やなぎさわー!!!!

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

241 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)