Pythonのお勉強 Part32 at TECH
[2ch|▼Menu]
1:デフォルトの名無しさん
09/02/16 01:45:30
Pythonオフィシャルサイト
URLリンク(www.python.org)
日本Pythonユーザ会
URLリンク(www.python.jp)
まとめWiki
URLリンク(python.rdy.jp)
関連スレ
URLリンク(find.2ch.net)
前スレ
スレリンク(tech板)

2:デフォルトの名無しさん
09/02/16 01:47:47
おつ

3:デフォルトの名無しさん
09/02/16 02:11:36
オツ

4:デフォルトの名無しさん
09/02/16 02:21:16
>>1
これはおつじゃなくて
たぶん蛇のシンボルうんぬん

5:デフォルトの名無しさん
09/02/16 02:22:01
掲示板作ったよ。
なんかホールとか発見したら教えてね。
しばらくしたら忘れてね。
URLリンク(rail.s4.pf-x.net)

6:デフォルトの名無しさん
09/02/16 04:16:32
import winsound
for i in (262, 294, 330, 349, 392, 440, 494, 523): winsound.Beep(i, 100)

7:デフォルトの名無しさん
09/02/16 10:47:34
君たちがよだれを垂らしながらほしがってるRubyのブロックつきメソッドは
Pythonから見れば叶わぬ夢であるという自覚くらいは持って頂きたく

8:デフォルトの名無しさん
09/02/16 12:18:31
■■日本語を文字化けしないで表示するやり方、エロい人教えて

# -*- coding: utf-8 -*-

import urllib

url = 'URLリンク(table.yahoo.co.jp)'
html = urllib.urlopen(url).read()

#a = html.decode('EUC-JP') #error
#b = html[:18].decode('EUC-JP') #ここまでなら実行できる

print html

9:デフォルトの名無しさん
09/02/16 12:25:49
Rubyのような中途半端なもの使うくらいならLispを使うな
LispとPython(おまけでPerl)があれば十分

10:デフォルトの名無しさん
09/02/16 12:33:11
>>8
ページ見てみたけど、先頭の方のHTMLコメント内に
euc-jpとしてデコードできない文字が入ってるようだ

html.decode('euc-jp', 'ignore')

html.decode('euc-jp', 'replace')
とでも汁

11:デフォルトの名無しさん
09/02/16 13:01:27
>>10

うぉ〜出来た!多謝!!!

12:デフォルトの名無しさん
09/02/16 13:51:26
スルー力って大事だね。

13:デフォルトの名無しさん
09/02/16 14:21:44
リスト内包が便利すぎて最近RubyやLispのリスト処理関数忘れてしまった

14:デフォルトの名無しさん
09/02/16 21:44:44
                          刀、           , ヘ
                  /´ ̄`ヽ /: : : \_____/: : : : ヽ、
              ,. -‐┴─‐- <^ヽ、: : : : : : : : : : : : : : : : : : : : : : }
               /: : : : : : : : : : : : : :`.ヽl____: : : : : : : : : : : : : : : : : : /
     ,. -─「`: : : : : : : : : :ヽ: : : : : : : : :\ `ヽ ̄ ̄ ̄ フ: : : : :/
    /: :.,.-ァ: : : |: : : : : : : : :    :\: : : : :: : : :ヽ  \   /: : : :/
    ̄ ̄/: : : : ヽ: : : . . . . . . . . . . .、 \=--: : : :.i  / /: : : : :/
     /: :     ∧: \: : : : : : : : : : ヽ: :\: : : 〃}/  /: : : : :/         、
.    /: : /  . : : :! ヽ: : l\_\/: : : : :\: ヽ彡: : |  /: : : : :/            |\
   /: : ィ: : : : :.i: : |   \!___/ ヽ:: : : : : : :\|:.:.:.:/:!  ,': : : : /              |: : \
   / / !: : : : :.ト‐|-    ヽ    \: : : : : l::::__:' :/  i: : : : :{              |: : : :.ヽ
   l/   |: : :!: : .l: :|            \: : : l´r. Y   {: : : : :丶_______.ノ: : : : : :}
      l: : :l: : :ト、|         、___,ィ ヽ: :| ゝ ノ    '.: : : : : : : : : : : : : : : : : : : : : : /
      |: : :ト、: |: :ヽ ___,彡     ´ ̄´   ヽl-‐'     \: : : : : : : : : : : : : : : : : : イ
        !: :从ヽ!ヽ.ハ=≠' , ///// ///u /           ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      V  ヽ|    }///  r‐'⌒ヽ  イ〉、
              ヽ、______ー‐‐' ィ´ /:/:7rt‐---、       こ、これは>>1乙じゃなくて
                  ィ幵ノ ./:/:./:.! !: : : : :!`ヽ     ポニーテールなんだから
              r‐'T¨「 |: | !:.∨:/:./: :| |: : : : .l: : : :\   変な勘違いしないでよね!
               /: : .|: :| !:.!ィ¨¨ヾ、:.:/ !: : : : l: : : : : :.\


15:デフォルトの名無しさん
09/02/17 15:09:36
ここから勃起した巨大ペニスのAAを発射

16:デフォルトの名無しさん
09/02/18 01:21:05
つうかまじでpython厨うざい。
python厨は全員首吊って死ねよ。

ruby人口の方が多い。
rubyの方がいろいろできる。
言語的仕様は好みの問題。
議論の余地無し。
以上。

17:デフォルトの名無しさん
09/02/18 01:32:52
pass

18:デフォルトの名無しさん
09/02/18 02:26:46
>>1
ぱい乙

19:デフォルトの名無しさん
09/02/18 14:06:58
>>16
いろいろできるについてkwsk


20:デフォルトの名無しさん
09/02/18 14:45:29
煽りにマジレスしても意味ないが、
流石にruby人口の方が多いというのは無理があると思う

21:デフォルトの名無しさん
09/02/18 14:47:34
>>19

>>16 は前スレの >>979 に対して python ⇔ ruby 変換をしてコピペしたもの。
他人のレスを盗作するしかないぐらいに悔しくなった ruby 厨の仕業。
以前からpythonスレを荒しまくり、自分でrubyコミュニティーのアホさ加減を露呈している人間。
俺がrubyを使うのを止めて、python使いになるきっかけをになってくれた張本人でもある。

完全無視推奨。
以下、オリジナルのソース:

スレリンク(tech板)
| From: [979] デフォルトの名無しさん <sage>
| Date: 2009/02/17(火) 14:18:58
|
| つうかまじでruby厨うざい。
| ruby厨は全員首吊って死ねよ。
|
| python人口の方が多い。
| pythonの方がいろいろできる。
| 言語的仕様は好みの問題。
| 議論の余地無し。
| 以上。
|
| From: [985] デフォルトの名無しさん <sage>
| Date: 2009/02/17(火) 17:21:04
|
| 結局のところ>>979が穏便かつ正論だと言わざるを得ないな


22:デフォルトの名無しさん
09/02/18 14:53:56
実はrubyスレでも煙たがられる狂信者

23:デフォルトの名無しさん
09/02/18 15:17:12
同じ宗教の人が応援してるんでしょ

24:デフォルトの名無しさん
09/02/18 16:15:26
3になって何が変わったのさ

25:デフォルトの名無しさん
09/02/18 16:41:31
URLリンク(docs.python.org)
URLリンク(text.world.coocan.jp)

26:デフォルトの名無しさん
09/02/18 17:01:10
ruby厨は実はMatz本人だなんて事実は口が裂けても言えない

27:デフォルトの名無しさん
09/02/18 17:41:41
pass

28:デフォルトの名無しさん
09/02/18 19:36:43
netbeanとeclispどっちがおすすめ?

29:デフォルトの名無しさん
09/02/18 20:08:20
>>28
lisp


30:デフォルトの名無しさん
09/02/18 21:09:44
>>28
NetBeansでも問題なく普通にコーディングできるよ。
ただ、物凄く気になるのが1ソース内のインスタンス変数を同一のものと認識してくれない。
普通の変数なら、その変数を選択した時点でソース内の同じ変数が全てハイライトされるし
一括置換できるけど、インスタンス変数は出来ない。

次のバージョンぐらいから正式にサポートするみたいだからそれまではEclipseの方がいいかも
しれない。

31:デフォルトの名無しさん
09/02/18 23:33:45
ide使いたいならkomodoがよくね?

32:デフォルトの名無しさん
09/02/18 23:37:49
>>31
komodoは前のバージョンで日本語化したら、プロジェクト作ったりするときに
XMLがオカシイ!ってエラーが事あるごとに出てから嫌になった・・・

33:デフォルトの名無しさん
09/02/19 03:45:35
ぺちぱーの漏れが初めてpythonを触ってみた
シンプルに書けて良い感じ
コーディングスタイルを統一しやすいのもかなりマル
気にいったのでコツコツ勉強しますお

34:デフォルトの名無しさん
09/02/19 04:11:41
Pythonって関数(メソッド)の命名規則ってあるの?
組み込みの関数名が全部小文字だったり、単語区切りでアンダーバーが
あったりで・・・
よく使う関数とかは直ぐなれちゃうんだろうけど。

35:デフォルトの名無しさん
09/02/19 04:46:31
>>34
とりあえずPEP8を読もう

36:デフォルトの名無しさん
09/02/19 04:54:37
関数は全部小文字、適宜アンダーバー…じゃないかな?

37:デフォルトの名無しさん
09/02/19 06:41:10
boostの名前の付け方と似た感じなのかな

38:デフォルトの名無しさん
09/02/19 12:27:49
URLリンク(kei-software-engineering.blogspot.com)
URLリンク(kei-software-engineering.blogspot.com)

identifier can be namig
URLリンク(kei-software-engineering.blogspot.com)
>with sigil

_ は taxonomy な見方でみると sigil に属するものなんだろか…

39:デフォルトの名無しさん
09/02/19 13:39:15
Pyrex がすごい!


40:デフォルトの名無しさん
09/02/19 14:12:41
がいしゅつ?
URLリンク(www.ibm.com)


41:デフォルトの名無しさん
09/02/19 14:21:38

Python 3.0 は隔離スレを作るべきだと思うのは俺だけかな?
そもそもあれは実用で使うには時期が早すぎるわけで、ここで
普通に語られても困る。


42:デフォルトの名無しさん
09/02/19 15:11:42
別に

43:デフォルトの名無しさん
09/02/19 16:09:20
細分化する必要性が全く感じられない。
各自がレスの内容を収拾選択すればいいだけ。

44:デフォルトの名無しさん
09/02/19 17:03:12
このごろ新しく書き起こすプログラムは 3.0 向けに書くようにしているが
個人的にはこれまでのところほとんど違和感がない。2.x からの変更点の
リストを見て移行はたいへんだろうと予想していたので意外だった。

俺は Tkinter を愛用していて、この GUI ツールキットを使っている分には
2.x と 3.0 の差はほとんどない。print() や "".format() もそういうものだと思って
使ってみると別段困ることはない。

C API が大きく変わっているのが印象的だった。char * だったところが
wchar_t * になっててとまどった。

振り返ってみると 1.5.2 から 2.0 に移るときも案外スムーズだった気がする。
既存のプログラムは旧 Python で実行しつつ新しいプログラムは新 Python で
書いていたのも同じ。1.5.2 用から 2.0 用に書き直した自作の常用プログラムは
1つだけ(このプログラムは未だに使っている。そのうち 3.0 用に書き直すかも)。

まあ使い方に依るのかもしれない。個人的には今のところ 3.0 に満足してる。


45:デフォルトの名無しさん
09/02/19 17:30:14
まぁ、趣味人としは、3.0がこなれてきたら、
新しいスクリプトは3.0で書けばいいやって感じだな。

46:デフォルトの名無しさん
09/02/19 22:38:26
from b import c
この構文って3.0でも残るんだな。
import aとのギャップが直感的でない気がするのだけど。

47:デフォルトの名無しさん
09/02/19 23:27:43
from x import * は禁止して欲しい

48:デフォルトの名無しさん
09/02/19 23:46:14
>>46
from b import cがなくなったら困る。

>>47
わからないでもないけど、__init__.pyとかでは普通に使ってるから
なくなると面倒になる。

49:デフォルトの名無しさん
09/02/20 00:29:33
まだCentOSとかにデフォで入ってるのが2.4だったりするから、
配布を考えているものは2.4用にしてしまう。

50:デフォルトの名無しさん
09/02/20 00:33:40
新バージョンへの移行を促すべき

51:デフォルトの名無しさん
09/02/20 02:32:12
Python 3.0 は隔離スレを作るべきだと思うのは俺だけかな?
そもそもあれは実用で使うには時期が早すぎるわけで、ここで
普通に語られても困る。

52:デフォルトの名無しさん
09/02/20 03:08:57
細分化する必要性が全く感じられない。
各自がレスの内容を収拾選択すればいいだけ。

53:デフォルトの名無しさん
09/02/20 03:21:16
それコピペ

54:デフォルトの名無しさん
09/02/20 05:22:25
print 1
print (1)
どっちでも通るんだけど py 2.5.4, ipy 2.0.1
2.5系から文になったんだっけ…これ2.6からだったような…


55:デフォルトの名無しさん
09/02/20 05:27:17
逆だ…orz
「関数」になったんだっけ


56:デフォルトの名無しさん
09/02/20 05:40:12
>>54
(1)も1と同じ意味だから通るに決まってる。
(1, 2)になるとタプルになるが。

57:デフォルトの名無しさん
09/02/20 09:14:47
Python 2.5.2 (r252:60911, Jul 31 2008, 17:28:52)
>>> print ("aaa",3)
('aaa', 3)
>>> print (1,2,sep="#")
File "<stdin>", line 1
print (1,2,sep="#")
^

Python 3.0 (r30:67503, Feb 9 2009, 13:18:20)
>>> print ("aaaa",3)
aaaa 3
>>> print (1,2,sep="#")
1#2

58:デフォルトの名無しさん
09/02/20 10:16:02
それコピペ

59:デフォルトの名無しさん
09/02/20 12:33:17
【実験台】 Python 3.0 のお勉強 Part 1 【非互換】
スレリンク(tech板)

60:デフォルトの名無しさん
09/02/20 15:18:34
うっわー、バカじゃねえの。いや疑うまでもないか。

61:デフォルトの名無しさん
09/02/20 21:06:38
スレ荒らす暇でRubyもPythonも覚えればいいだろ
つかRubyスレだけじゃなくてPythonスレも荒らしてんのか
暇だねえ

62:デフォルトの名無しさん
09/02/20 22:08:48
[1,2,3] を ['1', '2', '3'] にしたいのですが

>>> [1,2,3]
[1, 2, 3]
>>> ','.join([1,2,3])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected string, int found
>>> ','.join(str([1,2,3]))
'[,1,,, ,2,,, ,3,]'

わけがわかりません><

63:デフォルトの名無しさん
09/02/20 22:09:22
>>> ','.join(map(str, [1,2,3]))
'1,2,3'

64:デフォルトの名無しさん
09/02/20 22:10:18
>>> ','.join('%d' % i for i in [1,2,3])
'1,2,3'

65:デフォルトの名無しさん
09/02/20 22:11:32
>>> ['%d' % i for i in [1,2,3]]
['1', '2', '3']
>>> map(str, [1,2,3])
['1', '2', '3']
>>> str([1,2,3])
'[1, 2, 3]'

66:デフォルトの名無しさん
09/02/20 22:15:07
なんでこうなるの?

>>> ','.join('[1, 2, 3]')
'[,1,,, ,2,,, ,3,]'
>>> ','.join(str([1,2,3]))
'[,1,,, ,2,,, ,3,]'


67:デフォルトの名無しさん
09/02/20 22:17:42
join はリストを受け取るから
'[1, 2, 3]' は
['[', '1', ',', ' ', '2', ',', ' ', '3', ']']
になってから join() される


68:デフォルトの名無しさん
09/02/20 22:23:05
>>66
こうすれば理由が判ると思う。
>>> '#'.join('[1, 2, 3]')
'[#1#,# #2#,# #3#]'
>>> '#'.join(str([1,2,3]))
'[#1#,# #2#,# #3#]'

69:デフォルトの名無しさん
09/02/20 23:00:37
>>48
ごめん、何でなくなると困るのか教えて。

70:デフォルトの名無しさん
09/02/21 00:08:06
>>54
関数呼び出しの () を省略できるのは、 IPython の機能であって、
Python の構文ではないよ。

71:デフォルトの名無しさん
09/02/21 00:53:30
全然関係ないけど、asciiであと1個か2個他のカッコがあれば便利だったのにw

72:デフォルトの名無しさん
09/02/21 00:56:25
>>70
どこで関数よんでるんだ?

73:デフォルトの名無しさん
09/02/21 01:49:31
(1)が1と評価されて、print文に渡されてるだけ。
3.0から式になるから違うけど

74:デフォルトの名無しさん
09/02/21 01:50:12
(1,)とすれば違うだろうけど

75:デフォルトの名無しさん
09/02/21 02:21:17
>>39
Cythonの方がいいよ

76:デフォルトの名無しさん
09/02/21 02:30:13
うちのFreeBSDのPythonちゃんが2.5.4になったお

77:デフォルトの名無しさん
09/02/21 02:39:26
>>73-74
やれやれ、嘘を書くのはそこまでにしなさい。関数タイプの書き方許される様になったのは昔から。2.0とかじゃないの。

78:デフォルトの名無しさん
09/02/21 03:26:54
>>73
式っていうなら昔からもこれからも式だろw

3.0で文から関数に変わったんだろ

79:デフォルトの名無しさん
09/02/21 08:32:52
>>72
IPython 使ってみな。超便利だぜ。
In [1]: ord 'A' # これを
------> ord('A') # 勝手にこう解釈してくれる
Out[1]: 65

80:70=79
09/02/21 08:35:46
うわー、恥ずい。完全勘違い。
(1,)はタプルだけど(1)は1ってだけの話だな。
Python3.0ではIPython使えないしな。

>>77
from __future__ import print_function ってすればの話だよね。

81:デフォルトの名無しさん
09/02/21 10:11:50
>>80
式っていうなら昔からもこれからも式だろw

3.0で文から関数に変わったんだろ

82:70=79
09/02/21 10:36:05
>>81
俺は式とか文とかいう話題には参加してないが?

83:デフォルトの名無しさん
09/02/21 12:32:19
Pythonスレに粘着してるのは多分一人だと思うんだが奴は何がしたいのか

84:デフォルトの名無しさん
09/02/21 13:09:12
その一人は83の脳内にいる。

85:デフォルトの名無しさん
09/02/21 15:06:22
ぼくたちの心のなかにいるんだ

86:デフォルトの名無しさん
09/02/21 17:28:48
そもそも2chってめっきり人減ったよな
げろゆきが魅力無くなって手放したのも
理解出来る

87:デフォルトの名無しさん
09/02/21 17:41:17
URLリンク(lucumr.pocoo.org)

jinja2ってこんな面倒なことしてたんだな。
def bar(a=a):でいいと思うんだけど

88:デフォルトの名無しさん
09/02/21 18:23:03
結局
パイソンかルビーどっちがいのよ。
ルビーは日本人口が多くて
パイソンはハッカーも認める初心者にもおすすめの奥の深い言語
って聞いたんだけど。

89:デフォルトの名無しさん
09/02/21 18:29:29
gamilのパスワードを変えるスクリプトを
urllib,urllib2,cookielibで書いてみた
Rubyよりも簡単な気がするのは樹の精?

90:デフォルトの名無しさん
09/02/21 18:31:10
どっちも同じようなもんだろ

91:デフォルトの名無しさん
09/02/21 18:58:44
Python が連立方程式だとすれば
Ruby はつるかめ算みたいな感覚かな

92:デフォルトの名無しさん
09/02/21 20:00:16

■ おすすめ2ちゃんねる 開発中。。。 by FOX ★
このスレを見ている人はこんなスレも見ています。(ver 0.20)
早稲田理工スレの次スレ [大学受験]

93:デフォルトの名無しさん
09/02/21 23:14:13
URLリンク(www.youtube.com)

94:デフォルトの名無しさん
09/02/21 23:36:24
パイパンかこうぜ

95:デフォルトの名無しさん
09/02/21 23:45:28
>>88
最近Google App Engineのために勉強がてら出来るだけPythonを使うようにしている
いままではRubyで書いていた、仕事で使う書き捨てツールや日常の自動化ツール等をPythonで書くようにした

その結果感じたのは
使いやすさではRubyの圧勝

96:デフォルトの名無しさん
09/02/21 23:53:59
最近勉強がてらに出来るだけ英語を使うようにしている
いままでは日本語で読んでいた、仕事で使う本や趣味の本等を英語で読むようにした

その結果感じたのは
使いやすさでは日本語の圧勝

97:デフォルトの名無しさん
09/02/21 23:58:38
一応、慣れの問題は差し引いて考えてるよ

98:デフォルトの名無しさん
09/02/21 23:58:57
>>95
判断しかねるので、もうちょっと具体的に聞きたいな。

99:デフォルトの名無しさん
09/02/22 00:14:15
最近Google App Engineのために勉強がてら出来るだけPythonを使うようにしている
いままではRubyで書いていた、仕事で使う書き捨てツールや日常の自動化ツール等をPythonで書くようにした

その結果感じたのは
使いやすさではPythonの圧勝

100:デフォルトの名無しさん
09/02/22 00:16:20
str.len() じゃなくて len(str) だったり
str(u'ほげ') すると死んだり
Ruby 使ってたら疑問にも思わなかったことが
Python だと「あれっ?」て思うことはかなりある

101:95
09/02/22 00:17:00
まず第一にPythonのドキュメントって読みにくくない?

第二に len がメソッドでなかったりする一貫性の無さが
未知の仕様の推測やドキュメントのどこを調べればいいのかの推測を難しくする
まぁ、これは慣れれば問題ないというか、慣れれば逆にこっちの方が良いのかもしれないけど
こういうのって慣れにくさの原因にもなるでしょ

あと、ライブラリのインターフェースがユーザーフレンドリーじゃない感じ

正規表現が言語に溶け込んでなくて使いにくい

102:デフォルトの名無しさん
09/02/22 00:20:25
>>> u'ほげ'.__len__()
2
>>> 'ほげ'.__len__()
4
>>> len(u'ほげ')
2
>>> len('ほげ')
4
>>> len(u'ほげ'.encode('utf-8'))
6
>>> len(u'ほげ'.encode('ujis'))
4
>>> str('ほげ')
'\x82\xd9\x82\xb0'
>>> str(u'ほげ')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters
in position 0-1: ordinal not in range(128)
>>> str(u'ほげ'.encode('utf-8'))
'\xe3\x81\xbb\xe3\x81\x92'
>>> str(u'ほげ'.encode('ujis'))
'\xa4\xdb\xa4\xb2'

103:デフォルトの名無しさん
09/02/22 00:21:49
>>101
>まず第一にPythonのドキュメントって読みにくくない?
少なくとも Ruby よりましですね


104:デフォルトの名無しさん
09/02/22 00:23:36
正規表現については、perlより使いやすい構文に出会ったことがない。
やはりfirst class扱いされてると使いやすさは段違いだ。

105:デフォルトの名無しさん
09/02/22 00:23:53
lenくらい光速で覚えられないゆとりはRubyを使えばいいよね。

106:デフォルトの名無しさん
09/02/22 00:26:12
私がPythonにイラっとくるのは戻り値がない(selfを返さない)メソッドが多いことかな
obj.hoge().fuga().hage()
っていうことが(出来るケースもあるけど)出来なくて鬱陶しく感じるときがあります
式と文が区別されてることは事情が判るので我慢出来るんですが

107:デフォルトの名無しさん
09/02/22 00:26:14
>>101
RubyはどうかしらないけどPythonのドキュメントは俺も読みにくいと思う。

108:デフォルトの名無しさん
09/02/22 00:26:49
C++とかの正規表現よりまし
¥記号いくつ並べるんだよって思う

109:デフォルトの名無しさん
09/02/22 00:29:21
読みにくいと思うひとは具体的に例をあげてもらえますか?

110:デフォルトの名無しさん
09/02/22 00:32:39
初めてのPythonにUNICODEの扱いがほとんど書かれてないし
しかも間違ってるwことかな

111:デフォルトの名無しさん
09/02/22 00:33:43
>>109
まず例が少ないよ

112:デフォルトの名無しさん
09/02/22 00:35:51
>>105
lenが覚えられないとは書いてないじゃない
lenがあることで他の仕様が推測しにくくなるった書いてるんですよ

113:デフォルトの名無しさん
09/02/22 00:36:02
>>110
あれは著者が UNICODE についてなにも知らないので
触れてるフリしてさりげなくスルーしてるだけかと

114:デフォルトの名無しさん
09/02/22 00:37:34
>>87
違いは、
def bar(a=a): だと barが定義された時点のaの値が func_defaultsに入る。
URLのはcell creationとある様に、barが呼び出された時点のaの値がfunc_closureにcellオブジェクトとして格納される。
…くらいかな、。jinja2内での用途は知らないけど、
locals()の返す辞書にaを含めるという点はどちらも満たしてるし、
記事にはcellはoevrheadと書かれているので、cellオブジェクト自身が必要なのではなく
結果だけ欲しいのであれば、どちらでもいいのかもしれない。



115:デフォルトの名無しさん
09/02/22 00:37:48
流れを切る様ですみません。

class C:
 f = lambda x: x + 1

と書いて、C.f(3)などとやろうとすると
fの第一引数がCのinstanceになってしまうのですが、
なんとかならないでしょうか?

今は仕方ないので

 @classmethod
 def f(cls,x): return x + 1

としていますが、わずらわしいです。

116:デフォルトの名無しさん
09/02/22 00:38:48
カッコ無しでメソッド呼び出しをできるようにしてしまったばっかりに
メソッドオブジェクトの代入に特別な文法を導入せざるを得なかったRubyってかっこいいよね。

117:デフォルトの名無しさん
09/02/22 00:39:36
tupleとlistの使い分けが良くわからないんですけど
それぞれに決まった用途ってあるんですか?

118:デフォルトの名無しさん
09/02/22 00:44:17
4.16 Why are there separate tuple and list data types?
URLリンク(www.python.org)

119:デフォルトの名無しさん
09/02/22 00:44:24
>>115
f = staticmethod(lambda x: x + 1)

120:デフォルトの名無しさん
09/02/22 00:48:54
>>119
できました!
ありがとうございます。

121:デフォルトの名無しさん
09/02/22 00:54:22
>>117
tuple は型が違うものを混ぜても気にせず放り込んで
list は型がそろっている
という使い分けを無意識にしてるような気がします

122:デフォルトの名無しさん
09/02/22 00:56:53
>>121
listで型をそろえるとなるとtreeが作れないね

123:デフォルトの名無しさん
09/02/22 01:05:03
そうしないといけないって訳じゃないのでは

124:デフォルトの名無しさん
09/02/22 01:06:53
tuple は immutable だからね

125:デフォルトの名無しさん
09/02/22 01:08:40
>>117
tupleとlistで一番違うのは、辞書のキーに使えるかどうかかな。
tupleは辞書のキーにできるが、listはできない。

辞書のキーには変更可能(mutable)な型は使えないから。

126:デフォルトの名無しさん
09/02/22 01:09:20
pythonのlistはvectorに改名した方が実情にあっている。
そして、immutableなlistを新しく入れて欲しい。

127:デフォルトの名無しさん
09/02/22 01:10:14
>>126
同時に末尾最適化も入れないとあまり意味が無いな

128:デフォルトの名無しさん
09/02/22 01:13:21
immutableなlistとtupleの違いを詳しく

129:デフォルトの名無しさん
09/02/22 01:15:20
>>126は、力点としては関数型的なconsリストを指しているのだと思う

130:デフォルトの名無しさん
09/02/22 01:18:00
immutableなlist [a1,a2,a3,a4]は

(a1,(a2,(a3,(a4,()))))

で代用できる。面倒だけど。

131:デフォルトの名無しさん
09/02/22 01:20:05
>>130
確かにそれでできるけど、map/filter/foldとか使えないし
自前で再帰的なアルゴリズムを記述しても末尾最適化もされないから
ぶっちゃけオモチャだよね

132:デフォルトの名無しさん
09/02/22 04:29:54
lenが一貫性ないってのはよくわからん。一貫性がないっていうのは
Javaみたく配列の長さはa.length、ArrayListはa.size()、文字列の長さは
a.length()みたいのを一貫性がないというのであって、Pythonのは違うと
思う。まあ、慣れの問題だね。

133:デフォルトの名無しさん
09/02/22 05:19:36
一貫性ねえじゃんwww

134:デフォルトの名無しさん
09/02/22 05:25:43
愚かな一貫性は・・・

135:デフォルトの名無しさん
09/02/22 05:31:34
length size count
add append push_back
delete remove erase
title caption text
widget control component
list array vector

136:デフォルトの名無しさん
09/02/22 05:34:41
一貫性を定義しろ。話はそれからだ

137:デフォルトの名無しさん
09/02/22 05:38:33
goo国語
いっかん-せい ―くわん― 0 【一貫性】
最初から最後まで矛盾がない状態であること。同じ態度を持続すること。

138:デフォルトの名無しさん
09/02/22 08:35:30
Ruby厨の言うことは一貫性がない。

139:デフォルトの名無しさん
09/02/22 10:58:51
結局のところどっちも使えるようにしとけっ!
みたいな

140:デフォルトの名無しさん
09/02/22 11:08:14
>一貫性がないっていうのは
>Javaみたく配列の長さはa.length、ArrayListはa.size()、
>文字列の長さは a.length()みたいのを
>一貫性がないというのであって

どうして一つの文章で一貫性がないを二度も言う必要があるのはなぜなのかはおいといて
Javaでは「敢えて使い分けてる」んですよ
型安全と、メソッド名から型が判別出来こととの冗長性をわざと実現しているんです

141:デフォルトの名無しさん
09/02/22 11:27:49
nautilussvnを使っているんですが、クライアント認証を使ったSSLを経由してsvnサーバに
つなごうと思ったら、SSLに対応していないのかエラーが出てしまいます。

Error : callback_ssl_client_cert_prompt required
↑こんなの

なんとなく、クライアント認証用のプロンプトが必要だとか言ってるっぽいので、pythonのSSL
ライブラリでも入れればいいのかと思うのですが、対処方法ご存知のかたがいらしたら教えていただけませんか?


142:デフォルトの名無しさん
09/02/22 12:06:32
URLリンク(www.google.co.jp)

143:デフォルトの名無しさん
09/02/22 13:02:27
>>110
間違ってるってどのへん?

144:デフォルトの名無しさん
09/02/22 13:57:52
a.__lt__(self, b) : a < b
a.__eq__(self, b) : a == b
a.__getitem__(self, i) a[i]
a.__hash__(self) : hash(a)
a.__len__(self): len(a)

hashやlenも演算子に類するものと見ればいいんジャマイカ。
実際長さは__getitem__とも密接な関係にあるしね。うっかり
同名のメソッドを定義してアボーンなんてリスクを考えれば
これはこれでありだと思ふ。

145:デフォルトの名無しさん
09/02/22 15:53:14
2.6で(まともな)sslモジュールが標準になったけど
中身がCで書かれてて
派生クラスを食ってくれんのが悩み。

146:デフォルトの名無しさん
09/02/22 17:11:00
>>145
自分で拡張したい場合は確かに悩みどころだよな。
一方で、標準機能にいろんなものを詰め込んで欲しいと考える人もいるし。
妥協点としては、基本エンジンを簡潔・高速にして、よく使いそうな機能はライブラリで容易するとか。

147:デフォルトの名無しさん
09/02/22 17:53:44
暗いなら自ら明かりをつけましょう

148:デフォルトの名無しさん
09/02/22 18:46:17
クレクレ厨乙

149:デフォルトの名無しさん
09/02/22 18:47:28
誤爆

150:デフォルトの名無しさん
09/02/22 19:52:09
pythonのlambdaで実験していて、以下の問題に突き当たりました。
識者の方がいらっしゃいましたら、
ご教授願えるとありがたいです。

//無名関数をn個リストにして返す関数
def make_funcs(n):
fn_list = []
for i in range(n):
fn_list.append(lambda x : i*x)
return fn_list

//code block
fL = make_funcs(5)
for f in fL:
print(f(10))

//実行結果
40
40
40
40

//期待する実行結果
0
10
20
30
40

for文中のiが上手く認識されていないように思えます。
Schemeのクロージャとは振る舞いが異なるのでしょうか?


151:デフォルトの名無しさん
09/02/22 20:10:18
lambda x, i=i: i*x

152:デフォルトの名無しさん
09/02/22 20:27:38
>>150
Pythonでもクロージャは環境をキャプチャするんだが
そのforループではiが逐次破壊的に書き換えられてしまう
(let束縛ではなくset!のイメージ)んでそういう動作になる

単一代入でない&クロージャをサポートする言語で破壊的なループを使って
そういう書き方をすると、そういう動作になるのが普通で、
JavaScriptやPerlなんかもそうなったはず

Pythonでは>>151のような方法で対処できるが、魔術的だと感じられるなら
ループの中でさらにdefで明示的にブロックを作って、その中で
クロージャを作ったりするといいと思うよ

153:152
09/02/22 20:34:39
例えばこんな風に書くということね
def make_funcs(n):
    def make_func(i): return lambda x: i * x
    fn_list = []
    for i in range(n):
        fn_list.append(make_func(i))
    return fn_list

もっと短く書く書くこともできる
def make_funcs(n):
    make_func = lambda i: lambda x: i * x
    return [ make_func(i) for i in range(n) ]

154:デフォルトの名無しさん
09/02/22 20:54:37
>> 151, 152

非常に分かりやすい説明で、問題の原因が良く理解できました。
また、正しい書き方も分かりました。
ありがとうございました。





155:デフォルトの名無しさん
09/02/22 21:13:08
…で、実際処理速度はどうなの?>パイソン
PHPより早いのかな?

156:デフォルトの名無しさん
09/02/22 21:19:48
おおむねPython>Perl>PHP>Rubyってとこじゃね?

157:デフォルトの名無しさん
09/02/22 21:33:59
URLリンク(shootout.alioth.debian.org)
その手のベンチマークで定番?になってるサイトです。
言語の種類だけでなく、プログラミングの手法によっても結構変わるみたいですね。

158:デフォルトの名無しさん
09/02/22 21:47:06
URLリンク(shootout.alioth.debian.org)

159:デフォルトの名無しさん
09/02/22 21:55:27
C++が0.08秒で、PHPが48分って・・・orz
完全にやる気なくした・・www

160:デフォルトの名無しさん
09/02/22 22:01:33
>>156
馬鹿じゃない?

161:デフォルトの名無しさん
09/02/22 22:03:23
>>142
この回答って
Error : callback_ssl_client_cert_prompt required
これの対処法の回答という認識でいいんですかね・・・?

ググってみたんですがどれが回答になるのか分からなかったんですけど・・・。
そういうレベルの人はここに来てはいけないということですかね??


162:デフォルトの名無しさん
09/02/22 22:14:19
>>159
用途に合わせて言語を選ぶ。 当たり前のことじゃないか。

163:デフォルトの名無しさん
09/02/22 22:31:45
>>160
なんで?

164:デフォルトの名無しさん
09/02/22 22:33:07
>>161
こっちで質問しる
URLリンク(gimpo.2ch.net)


165:デフォルトの名無しさん
09/02/22 22:50:42
>>157
python 3 もっとがんがれ
おれもPHPが一番鈍足だとはしらんかった



166:デフォルトの名無しさん
09/02/22 22:54:23
>>163
根拠を示さないレス乞食はそっとしてあげて。

167:デフォルトの名無しさん
09/02/22 23:04:54
pass

168:デフォルトの名無しさん
09/02/22 23:34:42
インタプリタが遅いのは当たり前田のSPAM

169:デフォルトの名無しさん
09/02/22 23:37:20
まぁ>>156自体に根拠がないけどね

170:デフォルトの名無しさん
09/02/22 23:40:26
まあ・・ウェブならスクリプト言語でも十分ですけどね
2〜3秒以上もかかる計算滅多にないし

確かにベンチマークではpythonの方が良い成績のことが多いみたいだけど
スクリプト言語である以上、ドングリの背比べのような気もしないではない

ただ、pythonってphpに取って代わるメジャーなスクリプト言語になり得るのかな?

171:デフォルトの名無しさん
09/02/22 23:41:30
>>158見ると>>156の順番通りだけど?

172:デフォルトの名無しさん
09/02/22 23:44:35
>>170
パフォーマンスを気にする必要があるのは、10K問題とかだと思う。

173:デフォルトの名無しさん
09/02/22 23:57:17
しっかしPHP6はいつ出るんだ?

WEBはDBへの接続とDB自体の処理速度が一番ボトルネックだと思う。
そこが早ければある程度なら問題ないんじゃないだろうか。

174:デフォルトの名無しさん
09/02/22 23:59:41
PHPは(言語)仕様がどうのってよりも、ビジネス戦略で広まってるだけですがな。

175:デフォルトの名無しさん
09/02/23 00:02:38
10k問題という言葉・・初めて知りましたw

一万接続なんて、スクリプトじゃむりぽ
…というか、アパッチも無理なんじゃ

176:デフォルトの名無しさん
09/02/23 00:02:43
ビジネス戦略って一体何なんだ?

177:デフォルトの名無しさん
09/02/23 00:52:54
Python 3.0の変更点を調べていると、

URLリンク(text.world.coocan.jp)'sNewInPython3.0
> callable関数は削除されました。
>『callable(f)』の代わりに、
>『hasattr(f, '__call__')』が使えます。
> operator.isCallable関数もなくなりました。

とあるのですが、後者の方が書き難いのではないかと思います。
Pythonでは複数のやり方を嫌うという説明を見ました。
しかし、より良いものが残るべきとう意見は分かります。
でも、今回の件は消す必要が無かったのでは?
と思ってしまいます。

皆さんの意見はいかがでしょうか?

178:デフォルトの名無しさん
09/02/23 01:01:28
正直 2.x でも callable なんて使ってなかったからどうでもいい。
EAFPってやつだ。

179:デフォルトの名無しさん
09/02/23 01:32:36
レスありがとうございます。
EAFPという考え方、初めて知りました。
Googleで調べたら、いろいろ勉強になりました。

そもそもオブジェクトの属性が持つかどうかをチェックするよりは、
try, ecept構文で実行して、例外を補足するスタイルが推奨されているんですね。

180:デフォルトの名無しさん
09/02/23 08:03:08
>>175
> 一万接続なんて、スクリプトじゃむりぽ
Erlangなんかの実績はあるよ。

181:デフォルトの名無しさん
09/02/23 08:34:59
魚病理学者って何だ?

182:デフォルトの名無しさん
09/02/23 09:57:42
pass

183:デフォルトの名無しさん
09/02/23 11:36:33
10k問題って西暦で10000年になって桁が増えるときの問題かと思ったぜ

184:デフォルトの名無しさん
09/02/23 14:29:48
10種類も苦しいことがあるなんてどんな業界だよ。

185:デフォルトの名無しさん
09/02/23 14:42:07
休憩がない、帰れない、給料安い、休暇(取れ)ない、雇用不安定
キリがない、規則が理不尽、経費が自腹、心を病む、過労死

で10kじゃね

186:デフォルトの名無しさん
09/02/23 14:51:47
>>185
おいおい、「彼女ができない」 が抜けてるぞ

187:デフォルトの名無しさん
09/02/23 14:54:28
「彼女(or結婚)できない」、すっかり忘れてたよ

188:デフォルトの名無しさん
09/02/23 20:50:30
Erlangでいけるなら
stackless + libev でいけるだろ、たぶん、きっと

189:デフォルトの名無しさん
09/02/23 20:51:29
>>157
これ見ると、概してCよりC++のほうが早いと思って良いのかなぁ。

190:デフォルトの名無しさん
09/02/23 21:04:40
>>188
有望ではあるよね。
C10K問題への対策の一つが高次並列化なんだが、stacklessが
変数使い捨てを強化すれば、並列化との相性が良くなる。

191:デフォルトの名無しさん
09/02/23 21:08:43
C10K問題対策って普通単にサーバ分散させるだけじゃねえの?

192:デフォルトの名無しさん
09/02/23 21:13:41
>>185-191
C10K: >>185 - 規則が理不尽 + 彼女ができない + コーディング規則が理不尽

193:デフォルトの名無しさん
09/02/23 21:26:10
>>191
静的コンテンツを同時に多数同時に見てもらうだけの時代はそれで済む事もあったけど、
例えば「10万人同時ログイン&互いに同じ関心を持つ者のグループをダイナミックに」
などとやろうとすると、別の手が必要。

関数型言語が並列化と相性がいいんで、stacklessみたいなのが関数型のいい所を
取り込んでくれるといいな、というのが感想。

194:デフォルトの名無しさん
09/02/23 22:06:09
10万人同時ログインってw
GLAYの幕張ライブやないねんからw

195:デフォルトの名無しさん
09/02/23 22:14:08
チャットみたいなもんか?
よくわかんねえけど
10万人で一緒にチャットする必要は感じないが……

今の大規模サービスって別にダイナミックコンテンツでも
普通にスケールさせてないか?
勿論サーバ分散させて

196:デフォルトの名無しさん
09/02/23 22:38:39
少数のサーバーに集中
     ↓
安価な多数のサーバーに分散するといいぜ
     ↓
でも、物理メンテ大変だし、あんまり安いマシンじゃなくて
ちょっと高級な中グレードのマシンで台数減らした方がよくね?
(イマココ)


197:デフォルトの名無しさん
09/02/23 23:08:25
C10K問題の先駆けは既に、Skype、Twitterなどでも出始めてる。
10万人というのは一例で、従来型サービスの延長じゃない事を
スケールさせたい場合の問題の一つ。

198:デフォルトの名無しさん
09/02/23 23:44:25
あんまり言語とは関係ない話になってるなw

199:デフォルトの名無しさん
09/02/24 00:07:49
10万人同時チャットってwww
忙しすぎw

200:デフォルトの名無しさん
09/02/24 11:41:28
ちょっと面白そうだな>10万人チャット

201:デフォルトの名無しさん
09/02/24 12:53:56
2chのスレの一番速い流れでスレあたり1000人だもんな。


202:デフォルトの名無しさん
09/02/24 13:35:13
人数の多いチャット部屋覗いたことあるが、大半はROM専
数人が発言しまくりで、残りは単発発言の奴かな
余程盛り上がる話題が無いとそんなにログ流れんし
ログが流れる時ってのは会話が成立しない祭状態で
会話したい奴は「特定の相手とのみ会話する機能」使って身内話

203:デフォルトの名無しさん
09/02/24 14:17:58
10KのKはKOBITOのK。

204:デフォルトの名無しさん
09/02/24 16:40:23
TwitterのPublic Timelineがある意味10万人チャットみたいなものか

205:デフォルトの名無しさん
09/02/24 17:50:41
聖徳太子「10Kまで同時通話おk」

206:デフォルトの名無しさん
09/02/24 20:37:20
pythonでhtmlを処理しようと思うんだがどういう方法がベターなの?

207:デフォルトの名無しさん
09/02/24 20:37:35
>>189
Linusの回答
URLリンク(tabesugi.net)
オリジナル
URLリンク(lwn.net)

208:デフォルトの名無しさん
09/02/24 20:53:57
C++のそういうネタは好きw

209:デフォルトの名無しさん
09/02/24 23:45:18
ネストした関数をunittestモジュールで外からテストにかける方法って
ない?

210:デフォルトの名無しさん
09/02/25 00:23:43
BeautifulSoupが流行ってる

211:デフォルトの名無しさん
09/02/25 01:21:36
>>206
htmlparserってのがあるけど、速度的には正規表現で処理するのがお勧め。

212:デフォルトの名無しさん
09/02/25 01:55:50
lxml

213:デフォルトの名無しさん
09/02/25 08:37:03
"substandard programmers"が書くCのコードもそれはそれは恐ろしいけどな。

214:デフォルトの名無しさん
09/02/26 02:22:46
lxmlが最強って聞いたけどそうでもないの?

215:デフォルトの名無しさん
09/02/26 14:51:02
lxmlが最強

216:デフォルトの名無しさん
09/02/26 15:21:07
lxmlが速いみたいだよ。どうしてもpure pythonが良いならBeautifulSoupだろうけど。

217:デフォルトの名無しさん
09/02/26 20:08:27
人の書いた作例とどう動くかが多数解説されたサイトを教えて下さい
解説サイトの理論を見ても理解できません
つーかPrologしかやったことないです

218:デフォルトの名無しさん
09/02/26 20:58:40
>>217
俺はむしろPrologのほうが分からんぜ…。

・ドキュメントのチュートリアルを一通り読む
>>1のまとめwikiにある問題集とドキュメントを照らし合わせながら読む
・とにかく書く

辺りかなぁ。
他の手続き型言語からの人なら
「自分の前に書いてたコードを今の言語に書き直してみる」
ってのも結構有効なのだろうけれど、Prologは毛色が違い過ぎて難しいだろうなぁ…。
特にユニフィケーションをフル活用するようなコードは言語としてサポートしてるPrologのほうが楽だろうし。

小さな練習問題が欲しいなら「練習問題 Python」辺りでググると大量に出てくると思う。

219:デフォルトの名無しさん
09/02/27 04:08:54
作例で数が多いとこならcookbook。でも、詳細な解説は期待できないかな。
いろんな人が投稿してるので質はバラバラだけど、
コードをベースに議論したりするので、他よりは割とコメント(解説)多めだと思う。
URLリンク(code.activestate.com)



220:デフォルトの名無しさん
09/02/27 08:52:56
generator について一言で言うと何なんでしょうか?

221:デフォルトの名無しさん
09/02/27 09:02:06
>>220
魔法

222:デフォルトの名無しさん
09/02/27 09:08:31
関数をイテレータ化するための魔法

223:デフォルトの名無しさん
09/02/27 14:28:57
今 URLリンク(www.python.jp)

4.7.1 デフォルトの引数値 の中の

def f(a, L=[]):
L.append(a)
return L

print f(1)
print f(2)
print f(3)

このコードを打とうとしてたんだけど、eclipseに
「.」ピリオド打つと固まってしまう。
コピペすると落ちないんだけど、直接「.」打つ方法ありませんか?

環境は
Eclipse Classic(SDK)3.4.1
Pydev 1.4.4.2636
Python 2.6
です。

お分かりの方いらっしゃいますか?


224:デフォルトの名無しさん
09/02/27 15:04:14
>>223
> 「.」ピリオド打つと固まってしまう。
「.」を入力した瞬間に、メソッド一覧を表示しようとしてると推測。

225:デフォルトの名無しさん
09/02/27 15:16:14
>>223
1日ほっとく

226:デフォルトの名無しさん
09/02/27 15:37:35
>>223
もっと早いマシン買えよ底辺ドカタ。

227:デフォルトの名無しさん
09/02/27 16:00:44
pass

228:デフォルトの名無しさん
09/02/27 17:58:08
>>220
遅延リスト

229:デフォルトの名無しさん
09/02/27 17:59:40
新しくpythonを勉強する際に、3.0対応の書籍・サイト・マニュアルはありますか?

230:デフォルトの名無しさん
09/02/27 18:36:20
>>229
はじめてのPython3
中身読んでないのでどのくらい使えるのかわからんけど。

231:デフォルトの名無しさん
09/02/27 19:08:48
URLリンク(www.catonmat.net)
URLリンク(inkhorn.org)

根性 types, object, attributes, method 理解

232:デフォルトの名無しさん
09/02/27 22:27:08
んじゃぁ

比較的新しいいい本は?

233:デフォルトの名無しさん
09/02/28 01:11:09
西尾さんが書いたJython本だな

234:デフォルトの名無しさん
09/02/28 01:34:54
>>229
スレリンク(tech板)

235:デフォルトの名無しさん
09/02/28 01:48:17
>>229
URLリンク(www.amazon.co.jp)

この本が一番日本語のPython本として一番よく出来ている。
他のがかすんで見えてしまうほどだ。この一冊さえあれば
Pythonについて完璧にマスターできるだろう。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5400日前に更新/114 KB
担当:undef