Pythonのお勉強 Part34

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
2デフォルトの名無しさん:2009/07/01(水) 22:26:33
    ┌─┐
    │●│
    └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!
3デフォルトの名無しさん:2009/07/01(水) 22:26:46
4デフォルトの名無しさん:2009/07/01(水) 22:33:07
32bit整数の範囲で
nとn^2+2がともに素数となるnを求めてください
素数テーブル
ビッグエンディアン ttp://www.opendogs.org/pub/pn_be.dat.gz
リトルエンディアン ttp://www.opendogs.org/pub/pn_le.dat.gz
5デフォルトの名無しさん:2009/07/01(水) 23:05:03
宿題は自分で
6デフォルトの名無しさん:2009/07/02(木) 00:03:27
宿題スレって他所だったような
7デフォルトの名無しさん:2009/07/02(木) 09:39:49
しかも既出だった気がする
8デフォルトの名無しさん:2009/07/04(土) 01:45:36
>>1
乙.py
9デフォルトの名無しさん:2009/07/04(土) 01:47:51
SpringのパワーをPythonへ−SpringPython 1.0登場〔07/03〕
http://pc11.2ch.net/test/read.cgi/pcnews/1246584319/
1 (^o^)ノ<進めーψ ★ [] Date:2009/07/03(金) 10:25:19  ID:???  Be:90679695-2BP(1200)
    1日(米国時間)、Spring Pythonの最新安定版にして初のメジャーリリースとなるSpring Python 1.0.0 GAが
    発表された。Spring PythonはSpring Frameworkで実装されたコンセプトをPythonで実現するというもの。
    Javaで開発されているSpring Frameworkの機能やフレームワークをPythonに提供する。

    すでにオーバービューやコンセプト、実装内容などをまとめた参照ドキュメントがSpring Python -
    Reference Documentationとして公開されているほか、開発に使えるAPIマニュアルがPython: package
    springpythonにおいて公開されている。

    PythonはGoogle App Engineの対応言語として最初に対応されるなど、活躍の場を広げている。
    Spring Pythonを使うことでIoCやアスペクト指向プログラミング、トランザクション管理などが可能に
    なる。またデータアクセス機能の強化やセキュリティの強化、リモート操作の強化なども実現されると
    説明されている。

    http://journal.mycom.co.jp/news/2009/07/03/007/images/001.jpg
    http://journal.mycom.co.jp/news/2009/07/03/007/index.html
10デフォルトの名無しさん:2009/07/04(土) 20:05:03
>>1
Z
11デフォルトの名無しさん:2009/07/05(日) 03:43:09
おい!前スレで初めて1000とっちゃった...
しかしあんなレスでとるなんて...なんかごめん...
12デフォルトの名無しさん:2009/07/05(日) 03:47:39
いやらしいお茶目言語Python
13デフォルトの名無しさん:2009/07/05(日) 03:58:02
前スレにあった_mssqlを使ってみたんだけど、これ簡単でいいなぁ。
ADO.NETでも、自分ユーティリティでmyDataSet as DataSet=mySQLLib.GetDS(クエリー文字列)
とか1行で取れるようにはしているけど。
こういう、実務的?なもののお勉強をもっとしたいものですわ。
Windows2003のイベントログとか、タスクスケジューラとかをPythonで扱えるのか見てみようかな。
14デフォルトの名無しさん:2009/07/05(日) 06:07:52
>>13
それはIronPythonなのですか?
15デフォルトの名無しさん:2009/07/05(日) 12:28:45
Windows専用になるなら、IronPythonでも普通のPythonでも良い気がするよ。
16デフォルトの名無しさん:2009/07/05(日) 13:06:07
>>15
なるほど。
.NETが関係してるものと勘違いしてました。
17デフォルトの名無しさん:2009/07/05(日) 20:58:49
微妙にスレ違いすまんが
wscript/cscriptでイベントログ読むと
ログが頻繁に出力されるときは
取りこぼしが発生するんだよな
EventLogAPI叩けば大丈夫らしいんだけど
Pythonはどうなってるのかな
18デフォルトの名無しさん:2009/07/05(日) 21:31:02
>>17
それはMSDNのフォーラムで聞くべき内容だな。
19デフォルトの名無しさん:2009/07/07(火) 22:43:36
女子も中学生も使う
みんなのPython
20デフォルトの名無しさん:2009/07/07(火) 22:51:23
21デフォルトの名無しさん:2009/07/07(火) 23:14:07
アッー!な人たちも忘れないで。。。
22デフォルトの名無しさん:2009/07/08(水) 03:54:43
そういえば、日本のPythonコミュニティをどうこうするとか息巻いて玉砕してた人たちがいたよな
元気にしてるのかな?
23デフォルトの名無しさん:2009/07/08(水) 03:58:56
ついでだから教えて欲しいんですが日本のPythonサイトにはど うして/Zope/がくっついてるのでしょうか?
24デフォルトの名無しさん:2009/07/08(水) 08:25:52
クスクス。
25デフォルトの名無しさん:2009/07/08(水) 09:06:47
今見てみたけど、内容が古いなぁ>python.jp
26デフォルトの名無しさん:2009/07/08(水) 23:18:15
>>22
どんなことがあったの?
27デフォルトの名無しさん:2009/07/08(水) 23:23:43
ところで、みんなのPythonっての、ここでの評判はどうなの?
回りにPythonはじめるのにいい本ないかって聞かれて、本屋にあったしアマゾンでも前の版は結構評判いいみたいなんでその名前出しておいたんだけど。
その後責任感じて自分でもちゃんと目を通してみたら、なんだかなぁって感じ。
細かい間違いやページ稼ぎの埋め草かと思えるような部分結構多いよね。
28デフォルトの名無しさん:2009/07/08(水) 23:27:58
もう飽きたよ
29デフォルトの名無しさん:2009/07/08(水) 23:28:53
>>27
前スレで散々間違いとか指摘されてたはず
30デフォルトの名無しさん:2009/07/08(水) 23:46:35
そうなんだ。すまん。
やっぱここの評判は良くないんだ。
ひとにすすめる(ってほどじゃないけど)前にここ見ればよかった。
アマゾンのレビューって結構あてにならないよね。
31デフォルトの名無しさん:2009/07/09(木) 00:18:32
かといってそんなこと聞いてくるような奴に、初めてのPythonやチュートリアル勧めるわけにもいかないし
入門としてはあのくらいでしょうがないんじゃないかなぁ
32デフォルトの名無しさん:2009/07/09(木) 00:26:51
女子も中学生も使う
みんなのPython
33デフォルトの名無しさん:2009/07/09(木) 00:39:41
>>27
恥ぱいより100倍マシだから安心していいよ
不満なら自分で書いてみれば?
34デフォルトの名無しさん:2009/07/09(木) 00:40:38
>>31
最近は代替になりそうなのが他にあるんだけどね

既に使ってる人はわざわざ初心者本を読まないので
お勧めされるまでは至らない状況
35デフォルトの名無しさん:2009/07/09(木) 00:51:33
>>34
>最近は代替になりそうなのが他にあるんだけどね

たとえば?
36デフォルトの名無しさん:2009/07/09(木) 00:52:04
恥じらいのぱいそん、
もしくは
恥じらいのおっぱい、
か。
37デフォルトの名無しさん:2009/07/09(木) 00:55:19
>>35
AmazonでPythonで検索して出てくるようなやつ
どれもこれもダメっていうのなら話は別だけど
38デフォルトの名無しさん:2009/07/09(木) 00:56:01
そういえば
python.jp/Zope/
なサイトには
恥ぱいも
みんぱいも
載ってるんだよなぁ
39デフォルトの名無しさん:2009/07/09(木) 00:57:11
>>37
みんなのPython改訂版というのが先頭に来ましたです。
40デフォルトの名無しさん:2009/07/09(木) 00:58:08
きっと3つめを勧めたいんだろうな
2つめは初めての〜だしw
41デフォルトの名無しさん:2009/07/09(木) 00:59:01
>>40
そうなの。クスクス。
42デフォルトの名無しさん:2009/07/09(木) 01:21:08
43デフォルトの名無しさん:2009/07/09(木) 01:24:29
>>40
三番目はないわ(wwwwwwwwWwwWwwwWwwwwWWwww
勧めるの著者くらいだろ(wwWwWWwwwwwwWWWwwWwWwWWW
44デフォルトの名無しさん:2009/07/09(木) 02:16:08
いきなりPython クックブック、というのはどうだろう。
45デフォルトの名無しさん:2009/07/09(木) 02:39:10
ないわー
46デフォルトの名無しさん:2009/07/09(木) 02:56:18
でも、みんPyとかはじPyとか読んでいて「こまけぇことは(ry」となる人には
良いと思われる>いきなりクックブック
47デフォルトの名無しさん:2009/07/09(木) 08:59:32
クックブックはありだろ。ネットで読めるし。
三番目は、絶対ない(W
48デフォルトの名無しさん:2009/07/09(木) 09:25:39
初めてのPythonって評判悪いのか。
勉強用に読んだけどそんなに悪いとは思わなかったけどなあ。
10日で覚えるとかはちょっと。。
49デフォルトの名無しさん:2009/07/09(木) 09:34:15
50デフォルトの名無しさん:2009/07/09(木) 09:35:12
鈍器としては最高の出来>初めての
10日で覚える〜は鈍器としてすらありえない。
51デフォルトの名無しさん:2009/07/09(木) 09:44:21
>>48
はじめてのPython と初めてのPython は別のもの
52デフォルトの名無しさん:2009/07/09(木) 09:44:46
The Quick Python Book 第2版待ち
53デフォルトの名無しさん:2009/07/09(木) 12:10:37
「Whats3onLP さらに新しいバージョンのPythonについて 」
ttp://python.is-a-geek.org/wiki/index.cgi?Whats3onLP
を読みたいんだけど、Wikiが改竄されている。(´・ω・`)
54デフォルトの名無しさん:2009/07/09(木) 16:53:53
Christian Tismerがpsycoプロジェクトを復活させるらしい
55デフォルトの名無しさん:2009/07/09(木) 18:21:40
Psyco x64を切に希望します
56デフォルトの名無しさん:2009/07/09(木) 18:28:32
PyPyまだー?
57デフォルトの名無しさん:2009/07/09(木) 19:14:44
はじめてのPyPy
58デフォルトの名無しさん:2009/07/09(木) 20:38:15
PyPyクックブック
59デフォルトの名無しさん:2009/07/09(木) 20:53:05
PyPy待てど暮らせど
60デフォルトの名無しさん:2009/07/09(木) 21:06:37
                  ゙'.     ,ト `i、  `i、    .、″
                    |    .,.:/""  ゙‐,. `    /
                 `  .,-''ヽ"`    ヽ,,,、   !
                    、,、‐'゙l‐、      .丿 : ':、
                   、/ヽヽ‐ヽ、;,,,,,,,,,-.ッ:''`  .,"-、
                  ,r"ツぃ丶  ``````   ../  `i、
              ,.イ:、ヽ/ー`-、-ヽヽヽ、−´    .l゙`-、
             _,,l゙-:ヽ,;、、             、、丶  ゙i、,,、
            ,<_ l_ヽ冫`'`-、;,,,、、、、.............,,,,、.-`":    │ `i、
          、、::|、、、ヽ,、、.    ```: : : ```      、.、'`  .|丶、
         .l","ヽ、,"、,"'、ぃ、、,、、、、.、、、.、、、_、.,,.ヽ´    l゙  ゙).._
        ,、':゙l:、、`:ヽ、`:、  : `"```¬——'''"`゙^`     : ..、丶  .l゙ `ヽ
       ,i´.、ヽ".、".、"'ヽヽ;,:、........、           、、...,,,、−‘`   、‐   |゙゙:‐,
      ,.-l,i´.、".`ヽ,,,.".`   `゙゙'"`'-ー"``"``r-ー`'":      _.‐′  丿  ,!
     j".、'ヽ,".、".、"`''`ー、._、、、           、._,、..-‐:'''′   .、,:"  丿
     ゙l,"`"`''ヽヽ"`"`  ```゙'''"ヽ∠、、、、ぃ-`''''": `      、._./`  ._/`
      `'i`ヽヽヽ`''ーi、、、: :                   、.,-‐'`   、/`
       ``ヽン'`"`  : `~``—ヽ::,,,,,,,,,,.....................,,,,.ー'``^    ,、‐'"`
          `"'゙—-、,,,,..、、               : ..,、ー'"'`
               : `‘"`—---------‐ヽ``"''''''""

61デフォルトの名無しさん:2009/07/09(木) 22:44:25
PyPyワロスワロス
62デフォルトの名無しさん:2009/07/10(金) 03:26:27
m = re.match("(.*?) = (.*?)",text)
foo[m.group(1)] = m.group(2)

これを m を介さずに一行で書くにはどうすれば良いですか?
63デフォルトの名無しさん:2009/07/10(金) 03:31:12
(lambda m: foo.__setitem__(m.group(1), m.group(2)))(re.match("(.*?) = (.*?)",text))
64デフォルトの名無しさん:2009/07/10(金) 03:32:19
foo.__setitem__(*re.match("(.*?) = (.*)", text).groups())
難読化して何が楽しいんだか
65デフォルトの名無しさん:2009/07/10(金) 03:37:35
foo[m.group(2)] = m.group(1)
だったときでも使える?
66デフォルトの名無しさん:2009/07/10(金) 03:38:58
そんなの関係ねぇし
67デフォルトの名無しさん:2009/07/10(金) 03:44:26
s = re.match("(.*?) = (.*?)",text); foo[s.group(1)] = s.group(2)
6862:2009/07/10(金) 05:36:03
きれい書く方法ないんですね。あきらめます。
69デフォルトの名無しさん:2009/07/10(金) 09:14:40
そもそも m が None (ぬるぽ) のときはどうするつもりなんだ
exception 書くと結局数行付け足す羽目になるぜ
70デフォルトの名無しさん:2009/07/10(金) 10:26:05
まぁ、質問の答えとしては、だいたいそもそもの構造自体が悪いってことはあるね。
質問に正確に答えるなら、その方法を答えるのが正解だけど。
71デフォルトの名無しさん:2009/07/10(金) 11:45:17
そういえば昔のスレが荒れる基本パターンに
デザインパターンがあったけど、こんな記事があるみたいです:

Design Patterns in Real Python Projects
by Michael Schneider
http://pymag.phparch.com/c/issue/view/87
72デフォルトの名無しさん:2009/07/10(金) 23:33:21
>>71
ふむ・・・名前からしてドイツ人?
73デフォルトの名無しさん:2009/07/11(土) 01:28:38
>>71も大切だけど、
Pythonのバイブルを読むべきだと思いますよ。
http://www.amazon.co.jp/dp/4839922829
74デフォルトの名無しさん:2009/07/11(土) 01:33:51
まずチュートリアルだべ
75デフォルトの名無しさん:2009/07/11(土) 01:42:23
>>73
宣伝乙
7675:2009/07/11(土) 01:43:58
>>73
明日書店行って立ち見してくるわ
77デフォルトの名無しさん:2009/07/11(土) 03:29:09
見るだけな。絶対買わない。
78デフォルトの名無しさん:2009/07/11(土) 04:10:38
うちに余ってるからあげようか?
79デフォルトの名無しさん:2009/07/11(土) 21:19:42
PythonTシャツを試作してみてるんだけど、
買うとしたらどのくらいの人間が買う?ということが気になっている。
80デフォルトの名無しさん:2009/07/11(土) 21:30:33
81デフォルトの名無しさん:2009/07/11(土) 21:39:38
82デフォルトの名無しさん:2009/07/12(日) 07:41:09
標準出力を変数に代入することは出来ますか?

変数に代入するときは標準出力に吐き出されず、
以降は print などで普通に出力される動作を期待しています。
83デフォルトの名無しさん:2009/07/12(日) 08:09:59
できますよ
84デフォルトの名無しさん:2009/07/12(日) 09:31:52
どうすればできるでしょうか?
85デフォルトの名無しさん:2009/07/12(日) 09:59:08
回答まだでしょうか?
86デフォルトの名無しさん:2009/07/12(日) 13:26:10
from cStringIO import StringIO
stdout = sys.stdout
sys.stdout = StringIO()
print "test"
test = sys.stdout.getvalue()
sys.stdout.close()
sys.stdout = stdout

これで、できました。失礼します。
あと、>>85は自分ではありません。
87デフォルトの名無しさん:2009/07/13(月) 11:27:36
>かなり厳しいstrictな規格
strictって”厳しい”って意味ですよね
意味が重複してますよね
88デフォルトの名無しさん:2009/07/13(月) 12:56:10
人に使わせるプログラムをPythonで書いて,とりあえずコンソールプログラムとしては完成したので,
今度はそれをEasyGuiでGUI化しようとしてるんだけど,コンソール(コマンドプロンプト)ウィンドウが
邪魔くさいので非表示にしたいんです。

ググってもわからなかったので,どうすればいいのかエラい人教えてください。

環境はWindows XPでPython 2.6.2動かしてます。
起動は.pyファイルをダブルクリックするようにしてるので,コマンドプロンプトを開いて
起動しているわけではありません。
89デフォルトの名無しさん:2009/07/13(月) 13:03:27
>>88
拡張子を .pyw にする。
もしくは ctypes で FreeConsole() を呼ぶ。
9088:2009/07/13(月) 13:10:58
>>89

> 拡張子を .pyw にする。

うわー,そんなんでよかったのか!

> もしくは ctypes で FreeConsole() を呼ぶ。

こっちも調べてみます。
速攻レスサンクス。
91デフォルトの名無しさん:2009/07/13(月) 17:38:58
俺も知らんかった、.pywってそういう意味だったのか・・・
92デフォルトの名無しさん:2009/07/13(月) 17:40:26
でも.pywはpythonw.exeに関連付けされてるだけだよ
9388:2009/07/13(月) 18:50:03
うん。後から気がついた。
94デフォルトの名無しさん:2009/07/13(月) 22:29:01
tyowww
95デフォルトの名無しさん:2009/07/14(火) 16:26:04
import hashlib とすると、
>>> import hashlib
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.5/hashlib.py", line 133, in <module>
md5 = __get_builtin_constructor('md5')
File "/usr/lib/python2.5/hashlib.py", line 60, in __get_builtin_constructor
import _md5
ImportError: No module named _md5

と怒られます。解決策を教えてください。
cygwinでpython2.5.2です。
96デフォルトの名無しさん:2009/07/14(火) 17:03:41
>>95
エラーを再現できない。

/usr/lib/python2.5/lib-dynload/_hashlib.dll
があるかどうか確かめてくれ。
9795:2009/07/14(火) 17:15:55
>>96
お返事ありがとうございます。
存在します。
9895:2009/07/14(火) 17:23:09

http://code.krypto.org/python/hashlib/hashlib-20081119.tar.gz
から、hashlibのソースコードを持ってきてビルドしようとすると

$ python setup.py build
running build
running build_py
running build_ext
building '_sha' extension
gcc -shared -Wl,--enable-auto-image-base build/temp.cygwin-1.5.25-i686-2.5/Modul
es/shamodule.o -L. -lpython2.5 -o build/lib.cygwin-1.5.25-i686-2.5/_sha.dll
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find
-lpython2.5
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status 1

というエラーでできないのですが、関係ありますか?
99デフォルトの名無しさん:2009/07/14(火) 17:25:01
wget http://code.krypto.org/python/hashlib/hashlib-20081119.tar.gz
setup.pyを編集
#   113     # The _hashlib module wraps optimized implementations
#   114     # of hash functions from the OpenSSL library.
#   115     exts.append( Extension('_hashlib', ['_hashopenssl.c'],
#   116                include_dirs = [ ssl_inc_dir ],
#   117                library_dirs = [ os.path.dirname(ssl_lib) ],
#   118                libraries = osNameLibsMap[os.name]) )
#   119     exts.append( Extension('_sha', ['shamodule.c']) )         
#   120     exts.append( Extension('_md5',                  
#   121           sources = ['md5module.c', 'md5.c'],
#   122           depends = ['md5.h']) )

http://inforno.net/articles/2009/01/25/using-any-version-of-python-on-xrea-servers-part2
100デフォルトの名無しさん:2009/07/15(水) 13:32:46

cpythonで作ったメインのプログラムからJythonで作ったモジュールを呼び出すことは可能ですか?
101デフォルトの名無しさん:2009/07/15(水) 22:38:57
Unladen Swallowの更新が来たな
102デフォルトの名無しさん:2009/07/16(木) 17:56:39
Neatxって凄い名前だな・・・
103デフォルトの名無しさん:2009/07/17(金) 16:09:59
psyco v2の最初のリリースがきた
http://codespeak.net/pipermail/pypy-dev/2009q3/005288.html
104デフォルトの名無しさん:2009/07/17(金) 23:07:58
Psyco is not supporting 64 bit, yet. But it is well being considered.
期待して良いのか?
105デフォルトの名無しさん:2009/07/17(金) 23:29:42
yahooの知恵袋っていつから珍回答で質問者をからかう場所になってんだ
106デフォルトの名無しさん:2009/07/17(金) 23:31:34
なんでいきなりそんな話が出てくるの?
107デフォルトの名無しさん:2009/07/18(土) 02:21:29
うー!2chには誤爆という文化があるのですよ!はうぅー!
108デフォルトの名無しさん:2009/07/18(土) 14:19:57
↑これ、書き込んでんの30過ぎのおっさんだよ
109デフォルトの名無しさん:2009/07/18(土) 15:05:03
ようつべでモンティパイソン見たら、結構酷いネタ多いなw
110デフォルトの名無しさん:2009/07/18(土) 17:19:48
>>108
40過ぎだよ。
111デフォルトの名無しさん:2009/07/18(土) 17:35:32
しかし、心はヤング
112デフォルトの名無しさん:2009/07/19(日) 01:48:56
40過ぎてもせんずりしますか
113デフォルトの名無しさん:2009/07/19(日) 03:15:30
はうぅー!Python 3.1で遊ぶのですぅ!うーうー!
114デフォルトの名無しさん:2009/07/19(日) 15:41:25
>>112
俺らにゃpython.comがある
115デフォルトの名無しさん:2009/07/20(月) 02:50:13
VPythonってなんかすごいですお
俺のようなVTKとかインストールすら出来ずに挫折した人にはナイスであります。
116デフォルトの名無しさん:2009/07/20(月) 02:58:00
ビタミンのVか
117デフォルトの名無しさん:2009/07/20(月) 03:21:32
D:にインスコすると死ねる
118デフォルトの名無しさん:2009/07/20(月) 12:51:15
なんだか頭の悪そうな書き込みが豊満してますね
119デフォルトの名無しさん:2009/07/20(月) 12:52:57
いつものruby厨が荒らしてるんだろう
120デフォルトの名無しさん:2009/07/20(月) 15:48:56
VPythonマジ強力っていうか馬鹿な俺でも使えるのでした。
ローレンツアトラクタを書かせたら、20行くらいでくるくる回って感動ww
121デフォルトの名無しさん:2009/07/20(月) 16:16:11
データが文字列であることを確認するには
isinstance(obj, (str, unicode)) # 2.x
isinstance(obj, (str, bytes)) # 3.x
となりますが、ひとつのファイルで2と3の両方をサポートしたい場合はどうかけばいいでしょうか。
122デフォルトの名無しさん:2009/07/20(月) 16:24:20
前スレより転載

http://docs.python.org/3.0/whatsnew/3.0.html
>>It is not recommended to try to write source code that runs unchanged under both Python 2.6 and 3.0;

sys.version_infoを見れば一応はできる
123デフォルトの名無しさん:2009/07/20(月) 16:27:48
両方をサポートしたいなんて考えをやめるべきだ!
124デフォルトの名無しさん:2009/07/20(月) 17:56:56
>>123
え、なんでだめなんですか?
125デフォルトの名無しさん:2009/07/20(月) 18:03:36
http://docs.python.org/3.1/whatsnew/3.0.html#porting-to-python-3-0
ドキュメントにはこう書いてあるけど、
書けないことはないから、やってみれば
126デフォルトの名無しさん:2009/07/20(月) 23:07:45
っ basestring
127デフォルトの名無しさん:2009/07/21(火) 01:09:26
NameError: name 'basestring' is not defined
128デフォルトの名無しさん:2009/07/21(火) 11:20:51
>>> basestring
<type 'basestring'>
129デフォルトの名無しさん:2009/07/21(火) 14:36:46
The builtin basestring abstract type was removed.
130デフォルトの名無しさん:2009/07/21(火) 14:39:35
> sys.version_infoを見れば一応はできる
131初めてのPy:2009/07/21(火) 23:06:41
importで2回目の実行からエラーがでるんですが
コンパイルの設定とかあるんでしょうか
UnicodeDecodeError: 'utf8' codec can't decode byte 0x83 in position 24: unexpected code byte

Eclipse Classic (SDK) 3.4.2 (clean)
python-3.0.1
132デフォルトの名無しさん:2009/07/22(水) 00:29:08
こーど
133デフォルトの名無しさん:2009/07/22(水) 01:09:59
VPython、いまいち分かりにくかったけど、
・XY平面のグリッドをcurveで書く
・Zを上にするよう、scene.up=(0,0,1)を指定
・X,Y,Z軸をcurveで書く
・物体の影をXY平面に書く
したらすごく分かりやすくなった!
134デフォルトの名無しさん:2009/07/22(水) 01:17:51
UnicodeDecodeErrorって3になってからでもでるの?
135デフォルトの名無しさん:2009/07/22(水) 01:19:17
>>133
GJ!!
kwsk
136デフォルトの名無しさん:2009/07/22(水) 01:21:23
>>134
そりゃ、Shift-JISで書かれたファイルをencode='utf-8'とかを指定して
読み込もうとしたらDecodeErrorになるよ。
137デフォルトの名無しさん:2009/07/22(水) 01:35:27
>>134
b'\x82\xa0'.decode("ascii") とかでも UnicodeDecodeError
138デフォルトの名無しさん:2009/07/22(水) 01:56:25
b'\x82\xa0'.decode("cp932")
139デフォルトの名無しさん:2009/07/22(水) 02:49:31
>>135
おk、事務所に置いて来たので、10時頃まで待ってください。
140デフォルトの名無しさん:2009/07/22(水) 11:11:02
まず、sceneを作るところ。
import math
#==============Set up scene===============
scene.title='Lorenz Attractor'
axr=50 #Max Range of Axis
scene.width = 800
scene.height = 800
scene.center = (0, 0, 0) #center, where camera looks always.
scene.forward = (-axr, axr, -axr) #where camera views at initial.
scene.up = (0,0,1) #z is up.
scene.range = axr*1.25 # zoom out a little, to get all axis in sight
#draw x-y plane grid
for i in range(-axr, axr+1, axr/20):
curve(pos=[(i, -axr,0),(i,axr,0)],color = (0.3,0.3,0.4)) #parallel to Y
curve(pos=[(axr, i,0),(-axr,i,0)],color = (0.3,0.4,0.3)) #parallel to X
#axis (x,y,z), and small arrow
xaxis = curve(pos=[(-axr,0,0), (axr,0,0)], color=color.red)
curve(pos=[(axr,0,0), (axr*0.95,axr*0.05,0)], color=color.red)
curve(pos=[(axr,0,0), (axr*0.95,-axr*0.05,0)], color=color.red)
yaxis = curve(pos=[(0,-axr,0), (0,axr,0)], color=color.green)
curve(pos=[(0,axr,0), (-axr*0.05,axr*0.95,0)], color=color.green)
curve(pos=[(0,axr,0), (axr*0.05,axr*0.95,0)], color=color.green)
zaxis = curve(pos=[(0,0,-axr), (0,0,axr)], color=color.yellow)
curve(pos=[(0,0,axr), (-axr*0.05,0,axr*0.95)], color=color.yellow)
curve(pos=[(0,0,axr), (axr*0.05,0,axr*0.95)], color=color.yellow)

xlabel = label(pos=(axr,axr/10,0), box=0, opacity=0.25, text = 'x')
ylabel = label(pos=(-axr/10,axr,0),box=0, opacity=0.25, text = 'y')
zlabel = label(pos=(-axr/10,0,axr),box=0, opacity=0.25, text = 'z')
#===========end setting up scene============
141デフォルトの名無しさん:2009/07/22(水) 11:14:42
あ。貼り付けるとスペースは消えちゃうのか。forの次はindentしてください。
sceneの中心が原点、xy平面を見下ろし、z軸が上向き、ちょっとズームアウト。
軸のレンジ÷20で、XY平面にグリッドを書く。
X軸、ちょこっと矢印、Y軸、ちょこっと矢印、Z軸、ちょこっと矢印、「X」とかラベル付け。
142デフォルトの名無しさん:2009/07/22(水) 11:17:32
#=====Objects to show=====
ball = sphere(pos=(0,0,0), radius=1, color=color.red, opacity=0.8)
shadow = cylinder(pos=(0,0,0), axis=(0,0,1), radius = 1, color=color.white, opacity=0.2)
trail = curve()
x, y, z = 0.1, 0,0
count = 0
pointslist = []

while(count < 10000):
#animation maximum rate per second
rate(1000)
# do the lorenz attractor
dx = 10.0 * (y - x)
dy = x * (28.0 - z) - y
dz = x * y - (2.666666 * z)

x = x + dx * 0.005
y = y + dy * 0.005
z = z + dz * 0.005
pointslist.append((x, y, z))
#do not "print" every time. it can be very slow.
if math.fmod(count,500)==0:
print count, x,y,z

ball.pos = (x,y,z)
shadow.pos = (x, y, 0) #shadow is drawn to X-Y plane
trail.append(pos=ball.pos, retain=100) # last some points

count = count + 1

points(pos=pointslist, size = 2, color=(1,0.5,0))
143デフォルトの名無しさん:2009/07/22(水) 11:24:51
ボールを用意、陰(円盤)を用意、しっぽを用意。
ローレンツアトラクタを10000回計算。
結果の座標をListに足し、ボールと影と尻尾の座標をセット。
終わったらpointsで軌跡を描画です。
http://up2.viploader.net/pic3/src/vl2_161237.png
実行するとボールがくるくる動いた後、こうなります。
144デフォルトの名無しさん:2009/07/22(水) 12:12:02
>>133
tt
145デフォルトの名無しさん:2009/07/22(水) 12:17:16
これはおもろいすなぁ。
http://up2.viploader.net/pic3/src/vl2_161264.png
こんなブキミな物体(Torus Knot)も簡単に書ける。描画部分を下のように変えます。

pointslist = []
A = 3.0
B = 8.0
drawcount = 1000
for i in range(drawcount):
theta = 2 * math.pi * i * A / drawcount
x = ( 2 + math.cos(B*theta/A))*math.cos(theta) * 20
y = ( 2 + math.cos(B*theta/A))*math.sin(theta) * 20
z = math.sin(B*theta/A) * 20
pointslist.append((x, y, z))

for i, p in enumerate(pointslist):
c_hsv=(i/float(drawcount),1,1)
sphere(pos=p, radius=6, color=color.hsv_to_rgb(c_hsv), opacity=0.7)
146デフォルトの名無しさん:2009/07/22(水) 12:25:42
フレンチクルーラーを思い出した
147デフォルトの名無しさん:2009/07/22(水) 12:36:30
>>146
あれはさっくりして美味しいですよな。
http://up2.viploader.net/pic3/src/vl2_161267.png
(A,B)=(9,19)にしたら全然違うものが出来てしまったよorz
148デフォルトの名無しさん:2009/07/22(水) 13:41:37
http://up2.viploader.net/pic3/src/vl2_161279.png
sphereで、opacity=0.12、material=material.emissive、追加でlocal_light(pos=p,color=color.white)
としたら結構綺麗なのが出来ました。こんなんが数行で書けるんだから時代の
進歩というのはすごいものでありますなぁ…

さて次はNumpyで遊んだ結果をVPythonで表示してみようかな?
149デフォルトの名無しさん:2009/07/22(水) 15:32:47
負荷の大きい鯖のプログラムはperlなところが多い気がするのですが
pythonも高負荷に耐えれるのでしょうか
150デフォルトの名無しさん:2009/07/22(水) 15:38:28
むしろPerlよりも軽い
151デフォルトの名無しさん:2009/07/22(水) 15:54:38
phpよりも軽い?
152デフォルトの名無しさん:2009/07/22(水) 19:23:51
>>149
「pythonも高負荷に耐えれるのでしょうか」じゃなくて
「pythonが高負荷を発生するのでしょうか」だろ。
153デフォルトの名無しさん:2009/07/22(水) 19:25:40
Python電磁波クラブ
154デフォルトの名無しさん:2009/07/22(水) 19:25:56
>負荷の大きい鯖のプログラムはperl

かなり曖昧だな

155デフォルトの名無しさん:2009/07/22(水) 23:20:12
このページによると、
速度だけなら
python > perl > php > ruby
な感じ。
perlはメモリ消費優秀。
phpはメモリ消費大杉。
156デフォルトの名無しさん:2009/07/22(水) 23:23:45
157デフォルトの名無しさん:2009/07/22(水) 23:35:17
つーか、PHPって別に速くないんかいw
158デフォルトの名無しさん:2009/07/23(木) 00:12:16
良くある色が変わっていく表示は、RGBじゃなくてHSVで作ればいいのか。
良く分かったよ感謝
159デフォルトの名無しさん:2009/07/23(木) 00:14:04
PHPの速さはapacheのSAPI経由から開始される高速な起動と、(他のmod_***より明らかに早い)
負荷のかかる処理をC言語の拡張に任せるというスタイルによるレスポンスのよさだからな。
オブジェクト指向を気取ってコードをたくさん書けば書くほど遅くなる罠。

まあそれはLWLではみな同じことが言えるわけだが。
160デフォルトの名無しさん:2009/07/23(木) 00:36:57
PyCUDAとか使ってみたいですな
100倍速い!!とか言ってみたい。
161デフォルトの名無しさん:2009/07/23(木) 06:39:44
> 負荷のかかる処理をC言語の拡張に任せる
それってどれも同じなんじゃね?
162デフォルトの名無しさん:2009/07/23(木) 07:26:55
失敗した…
おれもVPython入れてみようと思って、Ubuntu9.0.4のsynapticで「あるじゃん」と思って入れたら、
これバージョン3だよ。opacityとか無いよ。
163デフォルトの名無しさん:2009/07/23(木) 08:20:00
>>161
pythonがcgi.pyでやっているような処理を、phpではCで書かれた関数で行なっている。
測定してみればわかるけど、これはけっこう性能に効く。
164デフォルトの名無しさん:2009/07/23(木) 08:29:04
wsgi
165デフォルトの名無しさん:2009/07/23(木) 08:45:53
今どきcgiなんて使わないだろ。
166デフォルトの名無しさん:2009/07/23(木) 08:50:58
PHPで数値計算と文字列処理のベンチを取ると激遅なんだよな。
まぁWebで数値計算はしないが。

ソースを忘れたけど
167デフォルトの名無しさん:2009/07/23(木) 09:57:17
こんな感じでデータが入ったファイルを
-50,-28,13,0.66
 :

こんな風に読んで、VisualPythonの玉に入れてみたら
from visual import *
f = open("test.dat")
for oneline in f.readlines():
 plist = oneline.strip().split(',')
 p = [int(s) for s in plist[:3]]
 c_hsv = [float(plist[3]),1,1]
 sphere(pos=p, radius=2, color=color.hsv_to_rgb(c_hsv), opacity=0.7)

いきなり可視化できてしまったぞ。ちょwwマジかwwいいのかこれでww
168デフォルトの名無しさん:2009/07/23(木) 10:17:57
なぜ、PythonはRubyの
# -*- coding:utf-8 -*-
をパクってるのでしょうか?文字コード指定は楽なのはわかりますが。
169デフォルトの名無しさん:2009/07/23(木) 10:20:25
>>168
emacs や vim の文字コード指定方法をソースコードの文字コード指定方法に
一致させると楽だから。
170デフォルトの名無しさん:2009/07/23(木) 10:26:48
>>168
去年からPythonで導入された方法。
171デフォルトの名無しさん:2009/07/23(木) 10:26:53
>>168
ていうか、それRuby1.9からだよな。
Pythonのほうが古い。
てか、釣りだろ。
172デフォルトの名無しさん:2009/07/23(木) 10:31:12
┐(´д`)┌
173デフォルトの名無しさん:2009/07/23(木) 10:58:09
>>170
Python 2.3 からだから、5年くらい前じゃね?
174デフォルトの名無しさん:2009/07/23(木) 11:07:38
乞食のruby厨にレス付けたら負けだよ
175デフォルトの名無しさん:2009/07/23(木) 11:34:23
Rubyを使うとどこかの国のような思考回路になるってことですね。
176デフォルトの名無しさん:2009/07/23(木) 11:37:40
Why do you stay in wrong thread?
177デフォルトの名無しさん:2009/07/23(木) 11:37:49
Ruby書かされると脳みそが痒くなるんですよ。
178デフォルトの名無しさん:2009/07/23(木) 12:04:47
ubuntuのaptでいれたpylabがバージョン古いから
最新版をsetup.py で上書きインストールしてしまうかと思う
しかし、何か不具合おこないか心配
aptで入れたパッケージを消してからpython setup.py install したほうがいいんだろうか
179デフォルトの名無しさん:2009/07/23(木) 12:34:02
>>168
>なぜ、PythonはRubyの
># -*- coding:utf-8 -*-
>をパクってるのでしょうか?文字コード指定は楽なのはわかりますが。

これは恥ずかしい
マネしたのはRubyのほう
180デフォルトの名無しさん:2009/07/23(木) 12:56:30
181デフォルトの名無しさん:2009/07/23(木) 23:04:55
Python信者必死杉

いいじゃんパクったならパクったで
182デフォルトの名無しさん:2009/07/23(木) 23:10:16
いつもRuby厨からケンカ売ってくるもんで^^
183デフォルトの名無しさん:2009/07/23(木) 23:11:28
180の先にemacsの形式って書いてあるじゃん...
184デフォルトの名無しさん:2009/07/23(木) 23:26:53
OSSじゃパクりパクられはむしろいいことだぞ?なにいってんだ?
185デフォルトの名無しさん:2009/07/23(木) 23:33:53
出典は明記するべきだよね
186デフォルトの名無しさん:2009/07/24(金) 01:36:05
てか、Emacs時代から無かったかそれ?
Ruby厨はなんでもRuby一番にしたがるから困る
187デフォルトの名無しさん:2009/07/24(金) 07:01:48
Scipyってどうですか?
有限要素法とかあったりしますか?
188デフォルトの名無しさん:2009/07/24(金) 08:26:07
なぜ、PythonはRubyの
変数とか代入とかハッシュとかの概念を
をパクってるのでしょうか?スクリプト作成は楽なのはわかりますが。
189デフォルトの名無しさん:2009/07/24(金) 09:08:08
自演乙
190デフォルトの名無しさん:2009/07/24(金) 10:12:31
現在のファイル名、関数名、行番号をlogするのに
os.path.basename(__file__) , (__name__).replace('__','')+'()' , inspect.getlineno(inspect.currentframe())

spam.py main() 19

こんなことしてるんですが、俺ダサ杉ですよね。華麗な表示方法をご教示くださいですよ。
191デフォルトの名無しさん:2009/07/24(金) 10:32:23
Rubyだともっと簡素にかける
192デフォルトの名無しさん:2009/07/24(金) 10:52:39
>>191
おれもそう感じた
193デフォルトの名無しさん:2009/07/24(金) 11:03:43
194デフォルトの名無しさん:2009/07/24(金) 11:50:03
$:.unshift "./hoge/hoge/hoge/hoge/hoge/hoge"
require "hage.rb"

見たいなことはPythonで出来ませんか?
195デフォルトの名無しさん:2009/07/24(金) 12:09:12
>>193
なるほど!

%(module)s モジュール名 (ファイル名の名前部分)
%(funcName)s ログ記録の呼び出しを含む関数の名前
%(lineno)d ログ記録の呼び出しが行われたソース行番号 (取得できる場合)
196デフォルトの名無しさん:2009/07/24(金) 14:21:43
>>194
import sys
sys.path.append('./hoge/hoge/hoge')
import hage
でどうでしょう?
197デフォルトの名無しさん:2009/07/24(金) 17:36:51
import os
hogedir = os.path._getfullpathname("./hoge/hoge/hoge/hoge/hoge/hoge")
os.sys.append(hogedir)
import hage
198デフォルトの名無しさん:2009/07/24(金) 18:23:13
>>195
これ3.0に移行してstr.formatを使うようになっても%書式のままでいくのかなぁ
今見たけど変わってなかった
199デフォルトの名無しさん:2009/07/24(金) 19:38:00
    ┌─┐
    │●│
    └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!
200デフォルトの名無しさん:2009/07/25(土) 13:56:37
ftpでファイルをローカルにコピーするのはこれでできたんですが
session.retrbinary('RETR '+file, open(file, 'wb').write)

標準出力にファイルの中身を吐き出すにはどう書けば良いんでしょうか?
201デフォルトの名無しさん:2009/07/25(土) 14:10:11
>>198
どうするか悩みどころだよね。
将来的に % によるフォーマティングは廃止される予定だけど、
デフォルトのFormatterはどうしようも・・・
logging.basicConfig(newstyle_formatter=True)
とかでお手軽に新フォーマッターに移行できないかな・・・
202デフォルトの名無しさん:2009/07/25(土) 15:08:13
>>200
session.retrlines('RETR foo.txt')
203デフォルトの名無しさん:2009/07/25(土) 15:49:11
>>202
できました!
ありがとうございます。
204デフォルトの名無しさん:2009/07/26(日) 00:30:35
         (⌒,,⌒)〜っ
        (⌒,_, ,⌒て ,,_,)
         ! ノ U。`yヘ_,、_ノ !
        し|~〜〜 。 ヘ⌒iヽフ
            |! ゚o 。.゚(・ω|・ ) びーるきたよー
           |! 。o゚ ⊂ ゚ とノ
          |i 。゚ ゚ o .゚|.。|. |
         |i、..゜。。゚ ゚し|'J
.           |,,._二二二_,!
       。゚o
205デフォルトの名無しさん:2009/07/26(日) 07:45:15
a = ["abb","acc","add"]
print map(lambda x:x.replace("a",""), a)

これと同じ処理でもっといい方法ありますか?
206デフォルトの名無しさん:2009/07/26(日) 09:40:07
>>205
lambda + map 使うくらいなら内包表記を使う
print [x.replace('a', '') for x in a]

lambda も map も悪いものではないけど、map+lambdaは推奨されない。
207デフォルトの名無しさん:2009/07/26(日) 09:44:50
>>206
内包表記なんていうのがあるんですね。ありがとうございます。

LISP畑から来てるので map に lambda が推奨されないって変な感じですが
Pythonではあまり使わないようにします。
208デフォルトの名無しさん:2009/07/26(日) 09:50:32
> LISP畑から来てるので map に lambda が推奨されないって変な感じですが

schemeのinternal defineのように関数内で関数定義して名前を与えて使うのがいいみたい
209デフォルトの名無しさん:2009/07/26(日) 10:32:17
>>208
それは >>206 とはちょっと違う話で、少しでも複雑な関数を作るときは
ちゃんと名前を付けましょうねという意味で、lambda が単文しか実行
できなくなってる。

map + lambda が推奨されないのは、
1) 単純に map(lambda x: と書くタイプ数 が for x に削減される
2) map はリストが不要なときも一時リストを生成してしまう。
  (>>206ではリストが必要だったけど、必要ないときはジェネレータ内包が使える)
3) map 内で繰り返し関数呼び出しが発生する。内包だと式の評価なので lambda より速い
4) Lisp脳ではない人間にとっては、 map(lambda x: を読むときに頭の中で分解再構築が必要になる。
  内包表記の方がやりたいことをすっきりと書き下せる。
210デフォルトの名無しさん:2009/07/26(日) 10:37:19
とりあえずIDLEでimport thisしようぜ
211デフォルトの名無しさん:2009/07/26(日) 10:41:13
>>209
頭大丈夫? 自分が何を主張するために何を持ち出しているのか読み直した方がいいよ。
212デフォルトの名無しさん:2009/07/26(日) 11:21:42
>>211
オレは>209の入ってる事がよく分かったが、何か問題でもあるのか?
213デフォルトの名無しさん:2009/07/26(日) 11:44:48
>>209
1)については、そもそもlambdaとか6文字も必要なsyntaxにしたのが間違いだったんだと思う
Haskellみたいに記号使っとけば……
2)はpython3000ではmapもイテレータ作るし

まぁ内包のほうが速いし、そっち使ったほうがいいんだけど
214デフォルトの名無しさん:2009/07/26(日) 13:18:29
-> だったっけ
215デフォルトの名無しさん:2009/07/26(日) 14:19:08
>>213
Pythonにとって、lambdaは便利で強力だけど一つの文が複雑になるし遅いので
あまり推奨できないから、記号を導入してまでみんなに使ってもらおうとは
思ってないんだろう。
216デフォルトの名無しさん:2009/07/26(日) 15:22:31
Pythonの場合、lambdaとインデントの相性が悪いのもあるんじゃない?
でも、他の言語使ってても複雑な式ならどのみち関数定義するから、
そのために何かして欲しいとは思わないけど。
217デフォルトの名無しさん:2009/07/26(日) 15:50:27
f = λ x:a*x+b

これでいくか。
218デフォルトの名無しさん:2009/07/26(日) 16:12:54
Perl
my $f = sub { $_[0]+1 }
$f->(42)

Ruby1.8
f = lambda { |x| x+1 }
f[42]
f.call 42

Ruby1.9
f = ->(x) { x+1 }
f[42]
f.call 42

Python
f = lambda x: x+1
f(42)

Haskell
f = \x -> x+1
f 42
219デフォルトの名無しさん:2009/07/26(日) 16:27:54
どれも、これだ!ってのがないな。
220デフォルトの名無しさん:2009/07/26(日) 16:45:23
というかλ記法って^が変化してλになったんだから
^記号をつかえばいいやんとか思う
ビット演算とまぎらわしいなら$で
221デフォルトの名無しさん:2009/07/26(日) 16:46:13

Python
def f(x): return x+1
f(42)
222デフォルトの名無しさん:2009/07/26(日) 16:47:28
$があるとperlみたいで汚いから嫌だ
223デフォルトの名無しさん:2009/07/26(日) 18:47:47
>>192
いくのかなあ、って変わってないんだからそうに決まってるでしょ。
http://docs.python.org/3.1/library/logging.html#formatter-objects
224デフォルトの名無しさん:2009/07/26(日) 19:24:26
逆に>>221でなにが不都合があるんだろ。
名前を考えないといけないから思考が停止しちゃうとか?
225デフォルトの名無しさん:2009/07/26(日) 19:37:45
>>224
内包表記のときはやっぱりラムダがあった方がいい。
名前も、じゃあ全てのfor文に名前を付けるか?みたいな話だと思われ。

それくらい気楽な関数。
226デフォルトの名無しさん:2009/07/26(日) 20:31:36
俺が恵まれていないだけかも知れんが、俺の周りで
関数名つけるの面倒くさいっていうやつは、98%の確率で
ろくなプログラマではない

だいたい、面倒って言ったって、xxx2yyy くらいを考えれば十分だし、
一言で表せないような関数を渡すのは構造的に失敗してると思うし
227デフォルトの名無しさん:2009/07/26(日) 20:38:30
>>226
どっちかというと、かぶらないか失敗っていう心配だな。
Pythonならあんまり気にしなくてもいいんだけどw
228デフォルトの名無しさん:2009/07/26(日) 22:30:21
Python3に対応したpygame出てないのかよ
Python使いからの不満も多いみたいだし、こんなので3は普及するのかねぇ
229デフォルトの名無しさん:2009/07/26(日) 22:33:35
pgreloaded はまだ開発中か
230デフォルトの名無しさん:2009/07/26(日) 23:45:40
>>225
> 内包表記のときはやっぱりラムダがあった方がいい。
ラムダが内包表記で便利な経験が無いんだけど、
ラムダ+内包表記のcoolな例あったら挙げてみて。
231デフォルトの名無しさん:2009/07/27(月) 02:30:48
可読性と内包表記、
やっぱり、[fnc(x) for x in a if check(x)==0]
のようにして、[ ]内はごちゃごちゃしないようにしたほうがイイすよね?
232デフォルトの名無しさん:2009/07/27(月) 08:38:42
www.djangoproject.jp

まだ落ちてるよ
日本人でDjangoをやっているひとたちは
サイトが長時間落ちてもオッケー的な感覚の持ち主なんだろうな
233デフォルトの名無しさん:2009/07/27(月) 12:54:32
東京で停電があったとき以来
復活してないサーバと比べりゃ(ry
234デフォルトの名無しさん:2009/07/27(月) 13:16:15
>>231
読む人が「えーとこれは」と考え込まずに済むように書きたい。
したがってその位に留める(長くなるなら外に出す)という習慣は
良いことだと思われます。
235デフォルトの名無しさん:2009/07/27(月) 13:33:44
def abc():
  hoge=fuga
  hage=moge
  def func(x):
    return x+1
  vwx=[fnc(x) for x in a if check(x)==0]
  return xyz
236デフォルトの名無しさん:2009/07/27(月) 14:24:49
>>235
さすがにそれは内包表記の中で直接 x + 1 した方が良いだろ。
237デフォルトの名無しさん:2009/07/27(月) 14:58:17
「長くなるなら」外に出す、なのに「x+1なのに外に出す」って何だよw
238デフォルトの名無しさん:2009/07/27(月) 15:31:23
Pythonで無料レンタル鯖のいいとこ&有名なとこあります?
239デフォルトの名無しさん:2009/07/27(月) 15:40:56
ドジャンゴが使っているところはやめたほうが良さそうだな。
240デフォルトの名無しさん:2009/07/27(月) 16:20:11
レンタル鯖だと、Pythonはいまだに2.3や2.4ばかりで悲しい。
241デフォルトの名無しさん:2009/07/27(月) 16:21:44
>>238
国内無料鯖は2.4どころか2.3、Python自体ないとかあってかなりの不遇で、自信を持っておすすめできるものはない。色々探してみるといい
ただSSHなどシェルアクセスできれば自力で導入できるとこもある(xreaとか。まあSSH使える無料鯖はほとんどないが…)
低価格鯖なら最近2.6が導入されたさくらがおすすめかな。
242デフォルトの名無しさん:2009/07/27(月) 16:50:15
どうせ他にもいろいろしたくなるから、
まるまる仮想OS使えるところでいいんじゃないの。
243デフォルトの名無しさん:2009/07/27(月) 17:14:51
月3000円も出せばVPS借りられるんだからそのくらい出せよ
それも出せないなら自宅鯖でも作れ
いやならPHPでも使ってろ
244デフォルトの名無しさん:2009/07/27(月) 19:41:54
釣りか?

70 名前: デフォルトの名無しさん Mail: sage 投稿日: 2009/07/27(月) 15:02:19
PHPで無料レンタル鯖のいいとこ&有名なとこあります?
245デフォルトの名無しさん:2009/07/27(月) 22:38:51
Pythonスレの方がレスが多くて
みんなやさしくて好きです
246デフォルトの名無しさん:2009/07/27(月) 22:42:32
247デフォルトの名無しさん:2009/07/27(月) 22:43:01
表向きは永久凍土な連中ということで通ってるんだから
そういうこと言っちゃいけません
248デフォルトの名無しさん:2009/07/27(月) 22:47:20
249デフォルトの名無しさん:2009/07/27(月) 22:51:55
GAE はないわなぁw
250デフォルトの名無しさん:2009/07/27(月) 23:37:18
@pagesとか言うところが2.5.1みたいだ
251デフォルトの名無しさん:2009/07/27(月) 23:42:47
実際に sys.version 出力させてみたら
2.5.2 だったよ。
252デフォルトの名無しさん:2009/07/28(火) 07:48:58
関数の中から実引数の数を調べることはできますか。

def f(a, b=1, c=None):
 print (a, b, c)

とあって、f(0) という呼び出し方をした時に、f() の中で実引数の数がいくつなのかを調べる方法があれば教えてください。
253デフォルトの名無しさん:2009/07/28(火) 08:07:59
バイトコード調べれば何とか…
じゃなくて
def f(*args):
    defaults = (None, 1, None, )
    len(args) で調べる
    args = tuple(args) + defaults[len(args):]
とかした方がいい
254デフォルトの名無しさん:2009/07/28(火) 08:59:52
>>252
http://www.python.jp/doc/2.4/lib/inspect-classes-functions.html

標準モジュールも知らない低レベルプログラマは
今すぐPythonやめてPHPに戻れよ
255デフォルトの名無しさん:2009/07/28(火) 09:04:44
found = None
for x in L:
 if something(x) == expected:
  found = x
  break
という処理をもっと簡潔にかけますか。
Ruby なら
found = L.find {|x| something(x) == expected }
という処理です。
内包表記で頑張ろうと思ったのですがbreakの仕方がわからず断念しました。
#Rubyは説明のために出したのであり、PythonとRubyとの比較をするつもりではないのでご了承下さい。
256デフォルトの名無しさん:2009/07/28(火) 09:54:57
[i for i in xrange(10) if i >= 7][0]
257デフォルトの名無しさん:2009/07/28(火) 10:15:34
>256 だといったん完全リストにしちゃうから
元が xrange(一億) とかだった場合にすげー重くならない?

イテレータ使ってても,リスト内包表記で一旦
リスト化しちゃうと遅延評価はされなくなっちゃうよね?
258デフォルトの名無しさん:2009/07/28(火) 11:37:56
>>239
なんで?

おすすめは
zope
web.py
なの?
259デフォルトの名無しさん:2009/07/28(火) 12:00:59
(i for i in xrange(10) if i >= 7).next()
260デフォルトの名無しさん:2009/07/28(火) 12:12:43
>>259
スゲー
面白い書き方だなw
261デフォルトの名無しさん:2009/07/28(火) 12:54:59
>>254
牛乳飲めよ
262デフォルトの名無しさん:2009/07/28(火) 13:12:03
>>261
PHPに戻れよドカタ
263デフォルトの名無しさん:2009/07/28(火) 13:18:20
>>258
Django自体は問題ナッシング
むしろすばらしい
問題は日本のヤツら
264デフォルトの名無しさん:2009/07/28(火) 14:54:13
Djangoの中に遅延評価関数とか入ってるからwebやらなくても使ってみたい気はする
265デフォルトの名無しさん:2009/07/28(火) 15:14:13
Formがもうちょっとイカしてくれてればなぁ
っていうか web 板の django スレが寂しすぎる件
266デフォルトの名無しさん:2009/07/28(火) 18:01:09
Djangoのutilsには,便利なクラスや関数がたくさんあるので
utilsだけで使うことが良くあるよ
267デフォルトの名無しさん:2009/07/28(火) 22:28:19
>>259
ありがとうございます!
でもPython3で動かない。。。。
Python2と3の両方で動く書き方はありませんか?
聞いてばかりですみません。
268デフォルトの名無しさん:2009/07/28(火) 22:47:03
>>267
python3の場合

(x for x in range(10) if x>=7).__next__()
269デフォルトの名無しさん:2009/07/28(火) 23:10:51
>>268
next(x for x in range(10) if x>=7)
だろ
270デフォルトの名無しさん:2009/07/28(火) 23:18:40
ごめん
271デフォルトの名無しさん:2009/07/29(水) 01:56:49
Don't mind.
272デフォルトの名無しさん:2009/07/29(水) 06:29:23
>>255
found変数をどう使いたいのか判らないけど、Pythonのfor文には
else 節があるので、後で if found is None: return とかするのであれば
その for 文を
for found in L:
  if something(found) == expected:
    break;
else:
  return
みたいにはできるよ。

あと、 >>269 みたいなやり方をするなら、
found = next(x for x in L if somethong(x) == expected, None)
って二つ目に default を入れないと、見つからなかったときに next が
StopIteration 例外を出すよ。
273デフォルトの名無しさん:2009/07/29(水) 06:34:35
sunkus
274デフォルトの名無しさん:2009/07/29(水) 09:54:00
>>252 f() の中で実引数の数がいくつなのかを調べる方法があれば教えてください。

無理。デフォルト引数処理は関数呼び出しの直前に行われるから、f(..) の中ではデフォルト引数値が使われたか否かは判別できない。253 さんの示したように、関数の呼び出し方を変えて自分で調べるしかない。

ここらの Python の内部処理を知りたかったら http://www.nasuinfo.or.jp/FreeSpace/kenji/sf/python/virtualMachine/PyVM.htm を読め。少しマニアックだが。
275デフォルトの名無しさん:2009/07/29(水) 11:49:53
class foo:
  def __init__(self):
    self.bar = range(5)
  def __call__(self):
    self.bar.reverse()
class hoge:
  def __init__(self):
    self.hage = foo()
    self.foobar = self.hage.bar
    self.hage()
cls = hoge()
print cls.foobar == cls.hage.bar


.foobarには、.hage.barの値をコピーしているだけですか?
それともポインタ的なものが入ってるんでしょうか?
276デフォルトの名無しさん:2009/07/29(水) 12:10:48
barの型次第
上の場合はリストだから参照になるね
277252:2009/07/30(木) 07:00:23
>>254
>標準モジュールも知らない低レベルプログラマは
>今すぐPythonやめてPHPに戻れよ

みなさんの怒りを買うような質問をしてしまい、申し訳ありませでした。
278252の母:2009/07/30(木) 10:17:41
息子がご迷惑をおかけして申し訳ありませんでした。
279252の父:2009/07/30(木) 11:06:55
息子にはPythonをあきらめてPHPに戻るようによく言い聞かせました
280デフォルトの名無しさん:2009/07/30(木) 13:21:43
いやいや、誰もが最初はそんなもんですから。
281デフォルトの名無しさん:2009/07/30(木) 13:35:18
話がまとまったところで、あとは若い人たちに任せるとしましょう。
282デフォルトの名無しさん:2009/07/30(木) 15:24:22
おまえら表面は凍ってるのに中身は生暖かいのな。
283デフォルトの名無しさん:2009/07/30(木) 23:55:49
今からpython勉強するなら、2.6.2と3.01どっちがおすすめ?
284デフォルトの名無しさん:2009/07/31(金) 00:15:39
仕事で必要なら、必要な方なのは置いといて。
私は、stringが完全Unicodeになってる3をすすめます。
285デフォルトの名無しさん:2009/07/31(金) 00:50:07
初めてPYTHONをやり、最初、2.4入れて
setが使えないので、1ヶ月で2.5に移行
その後、文字化けが面倒なので2ヶ月で3に移行
最初から3にすれば良かった
てかemacsで文字化けする
しかもWindowsのエラーで、プロンプトからemacs起動出来ないから直し方わかんね
結局UTF-8使ってない
286デフォルトの名無しさん:2009/07/31(金) 00:58:21
なるほど、こういう人たちがいるがために今の状況があるわけか
287デフォルトの名無しさん:2009/07/31(金) 01:07:20
ライブラリが全然ついて来ないから
未だに 2.x だけどな。
288デフォルトの名無しさん:2009/07/31(金) 01:13:02
3.1は失敗作だったねえ。Python5.0に期待。
対するRubyは1.9.2でだいぶ動作がマシになった。
完全に抜かれちゃったなあ
289デフォルトの名無しさん:2009/07/31(金) 06:29:42
pass
290283:2009/07/31(金) 07:11:16
ありがとうございました
参考にします
291デフォルトの名無しさん:2009/07/31(金) 11:55:24
>>283
用途次第だけど2.5がライブラリ豊富で一番良いよ
292デフォルトの名無しさん:2009/07/31(金) 12:43:59
2.6 でなく 2.5 を勧める理由が意味不明
293デフォルトの名無しさん:2009/07/31(金) 12:45:54

2.5 でなく 2.6 を勧める理由が意味不明
294デフォルトの名無しさん:2009/07/31(金) 13:42:38
ダンジョーも動かない2.6を勧める理由が意味不明
295デフォルトの名無しさん:2009/07/31(金) 14:29:15
2.5.2で間違いない
296デフォルトの名無しさん:2009/07/31(金) 17:29:14
>>294
サーバが止まりまくりのDjangoなんて使えたって意味ないだろ
297デフォルトの名無しさん:2009/07/31(金) 18:04:01
ジャンゴが止まりまくるってどんな環境よ
298デフォルトの名無しさん:2009/07/31(金) 18:23:07
デベロップ用のサーバで公開したのかなw
299デフォルトの名無しさん:2009/07/31(金) 22:28:32
ttp://djangoproject.jp/

どうして止まるんだろう...。
300デフォルトの名無しさん:2009/07/31(金) 22:34:20
>>299
デベロップ用のサーバで公開したのかなw
301デフォルトの名無しさん:2009/07/31(金) 22:46:12
マルチコアのCPUで並列実行させたいんですが、
Pythonのthreadやthreadingモジュールだと
実際には同時平行で複数のスレッドが実行されないって本当ですか?
並列化するのにお勧めのモジュールってありませんか?
302デフォルトの名無しさん:2009/07/31(金) 23:03:13
303デフォルトの名無しさん:2009/08/01(土) 01:35:18
>>302
すみません、わかりません。答えを教えてください。
304デフォルトの名無しさん:2009/08/01(土) 02:47:30
305デフォルトの名無しさん:2009/08/01(土) 06:49:35
GILが問題になるようなプログラムにPythonは向いてないよ
306デフォルトの名無しさん:2009/08/01(土) 07:33:59
>>301
multiprocessing モジュールがお勧め。並列性のある問題を解くのに使えば
複数プロセスが同時に並列実行されてちゃんと台数効果が出ます。
307デフォルトの名無しさん:2009/08/01(土) 07:42:54
>>299
まだ止まってんのかwwwwww
308デフォルトの名無しさん:2009/08/01(土) 09:01:10
僕たちサーバ管理よりイベントが大好きなんです
アッーー!
309デフォルトの名無しさん:2009/08/01(土) 10:37:07
>>302>>306
ありがとうございます。
GILがあって今一つ並列実行しにくいのでプロセスをフォークするんですね。
スレッドのタスクが重ければフォークのコストは大したことないですが、
リソースの共有が大変になるんでしょうか。
Core i7で8コアもあるのでそろそろ並列化をまじめに考えなくちゃと思っているので、とりあえずいじってみます。
それから>>303は私じゃないです。
310デフォルトの名無しさん:2009/08/01(土) 11:04:31
ドジャンゴもマルチプロセス使えば落ちないんじゃねえのwwwwww
311デフォルトの名無しさん:2009/08/01(土) 12:08:53
件のページはdjangoじゃなくてサーバ自体が落ちてんだろ
煽ってるバカ何なの
312デフォルトの名無しさん:2009/08/01(土) 13:42:23
Djangoがサーバを落としたの???
なんたるマルウエア!!
313デフォルトの名無しさん:2009/08/01(土) 14:34:43
またruby厨の荒らしっすか
314デフォルトの名無しさん:2009/08/01(土) 14:47:37
>>311
>件のページはdjangoじゃなくてサーバ自体が落ちてんだろ

Apacheは応答してるっぽいから、サーバ自体が落ちているという事はないのでは?
Dangoの人は適当で信用ならない
315デフォルトの名無しさん:2009/08/01(土) 16:28:33
djangoはジャンゴって読むんじゃないの?
昔の有名なギタリストにいるよね
316デフォルトの名無しさん:2009/08/01(土) 16:35:36
アンガールズ「ハイ! ジャンゴジャンゴジャンゴジャンゴ」
317デフォルトの名無しさん:2009/08/01(土) 17:30:33
そう、djangoは"ジャンゴ"と読みます
一方日本でdjangoを使っている人は"ドジャンゴ"や"ダンジョー"と呼ばれています
318デフォルトの名無しさん:2009/08/01(土) 19:33:53
そう、djangoは"ジャンゴ"と読みます
一方日本でdjangoを使っている人は"ドジャンゴ"や"ダンジョー"とruby厨は呼びます
319デフォルトの名無しさん:2009/08/02(日) 02:03:59
日本語でおk
320デフォルトの名無しさん:2009/08/02(日) 02:11:46
民間人に送られる最高の爵位・ダショー。

ちなみに我らがPython神のGuido van Rossumは、BDFLと呼ばれる。
321デフォルトの名無しさん:2009/08/02(日) 03:53:30
Djangoは1.1出てたのか・・・
322デフォルトの名無しさん:2009/08/02(日) 08:35:11
318はイタいが、320はもっとイタいな(wwWwwWwwwwWwwWWww
323デフォルトの名無しさん:2009/08/02(日) 10:52:39
ジャンゴといったらジャンゴ・フェット。
324デフォルトの名無しさん:2009/08/02(日) 13:03:55
pass
325デフォルトの名無しさん:2009/08/02(日) 16:25:09
ジャンゴジャンジャンゴジャンゴ
326デフォルトの名無しさん:2009/08/03(月) 04:07:02
pat = re.compile(r'.*¥.html$')
としたときに、patからもとの文字列('.*¥¥.html$')を取り出すことはできますか。
よろしくおねがいします。
327デフォルトの名無しさん:2009/08/03(月) 04:14:09
pat.pattern
328デフォルトの名無しさん:2009/08/03(月) 04:47:12
>>327
ありがとうございました。
ところで dir(pat) としても pattern というのは出てこないのですが、どういうことでしょうか。
329デフォルトの名無しさん:2009/08/03(月) 05:12:00
ttp://djangoproject.jp/

復活したみたい
330デフォルトの名無しさん:2009/08/03(月) 08:26:53
>>328
(´・ω・`)知らんがな
331デフォルトの名無しさん:2009/08/03(月) 09:44:20
>>329
(´・ω・`)知らんがな
332デフォルトの名無しさん:2009/08/03(月) 10:48:23
静的htmlに必要最低限のcgiだけつけたいのだけど
どのフレームワークがお勧めよ
333デフォルトの名無しさん:2009/08/03(月) 14:22:49
CGIHTTPServer
334デフォルトの名無しさん:2009/08/03(月) 14:23:59
>>332
民間人に送られる最高の爵位・ダショー。
335デフォルトの名無しさん:2009/08/03(月) 15:25:06
ダショー >>> ダンジョー >>> ドジャンゴの順で偉いのだが
ダショーレベルでも鯖運営に支障をきたすくらいの低スキル
336デフォルトの名無しさん:2009/08/03(月) 18:29:06
意味わからん

ジャンゴの話題になるとどこからともなく湧いてくるな
337デフォルトの名無しさん:2009/08/03(月) 19:31:03
>>328
不思議だね。
338デフォルトの名無しさん:2009/08/03(月) 20:04:54
>>328
help(re)
でも出てこない
339デフォルトの名無しさん:2009/08/03(月) 20:09:03
>>328
ttp://www.python.jp/doc/release/lib/re-objects.html
ここの一番下には書いてある
340デフォルトの名無しさん:2009/08/03(月) 21:26:11
_sre.cのpattern_getattrが処理してるみたい
341デフォルトの名無しさん:2009/08/03(月) 22:13:09
http://www.kent-web.com/pubc/book/test/uploader/uploader.cgi?mode=downld&no=2304
コメントを取得するコードを参考にして、拡張子を.cgiで実行しましたがスクリプトエラーになってしまいます。
どこが問題でしょうか?
342デフォルトの名無しさん:2009/08/03(月) 22:19:23
>>341
人に尋ねる前に自分でデバッグしてご覧。
Webにアップするスクリプトも最初はローカルで動かして様子を見るものなんだよ。
343デフォルトの名無しさん:2009/08/03(月) 22:22:02
>>342
ありがとうございます。
出直してきます。
344デフォルトの名無しさん:2009/08/03(月) 22:24:23
>>341
そのコードのコピー元と思われるブログには続きがある
http://d.hatena.ne.jp/imakami/20081224/1230130732
345デフォルトの名無しさん:2009/08/05(水) 18:45:37
def hello():
 """コメント"""
 print "hello"

Python では上のように関数定義の最初の文字列リテラルが関数のドキュメントになるそうですが、
これの呼び名ってありますか。
「関数コメント」とか「関数ドキュメント」で通じるでしょうか。
346デフォルトの名無しさん:2009/08/05(水) 18:57:12
347デフォルトの名無しさん:2009/08/05(水) 18:59:31
ドキュメンテーション文字列
348デフォルトの名無しさん:2009/08/05(水) 19:14:09
AndroidでPython使えるんだね。
一気にGoogleケータイ欲しくなった・・・
三月に変えたばかりなんだが。
349デフォルトの名無しさん:2009/08/06(木) 03:39:03
>>348
ほほう。といっても何に使えばいいのか思い付かない俺ww
350デフォルトの名無しさん:2009/08/06(木) 15:06:43
Launchpadがdojangoじゃなくてzopeなのは何か理由があるの?
351デフォルトの名無しさん:2009/08/07(金) 13:19:04
作り始めた時期の問題じゃないかな。
Launchpad作り始めた時は、まだDjangoがマイナーだったとか。想像だけど。
352デフォルトの名無しさん:2009/08/08(土) 08:11:08
www.python.org つながんないんだけど、なんかあった?
Python ダウンロードしたいんだけど、どこかミラーない?
ftp.python.jp は 2.5 までしかないみたいだし。
353デフォルトの名無しさん:2009/08/08(土) 09:00:56
354352:2009/08/08(土) 09:47:13
>>353
助かりました。ありがとうございます。
355デフォルトの名無しさん:2009/08/08(土) 19:41:22
BeautifulSoupって死んだんか・・・
356デフォルトの名無しさん:2009/08/08(土) 21:44:16
おれも>>352とまったく同じ状況でした。
><>353 感謝ですっ
357353:2009/08/08(土) 22:44:09
>>354
>>356
いえいえ。感謝はミラーを提供してくれている方たちにどうぞ。
358デフォルトの名無しさん:2009/08/09(日) 01:40:12
>>355
lxmlでどうにか
359デフォルトの名無しさん:2009/08/09(日) 02:03:21
>>355
何の話だw
360デフォルトの名無しさん:2009/08/09(日) 14:53:36
>>359
知らないのか?
Python3.0でSGMLParserがなくなったんでBeautifulSoup3.1.0以降では
SGMLParserの代わりにHTMLParserを使うようになったんで、
これまでパースできたちょっと崩れたHTMLがパースできなくなってる。
開発者は、もうツマンネーからこれ以上の対応をする気はねーよ、らしい。

http://www.crummy.com/software/BeautifulSoup/3.1-problems.html
361デフォルトの名無しさん:2009/08/09(日) 15:20:46
最後のほう生々しいこと書いてあるね

BS使ってるモジュールがどれほどあるのか知らないけど
Py3.0への移行の支障になったりして
362デフォルトの名無しさん:2009/08/09(日) 15:47:52
3.Xへの移行は年単位でかかるだろ…
Zopeなんてどんだけかかるんだか
363デフォルトの名無しさん:2009/08/09(日) 17:07:26
Pythonで万人に分かりやすいスマートなコメント文を書きたいんだが、どう書いたらいいだろうか。javadocのような指標みたいなの無い?
364デフォルトの名無しさん:2009/08/09(日) 17:54:18
>>363
PEP 257
365デフォルトの名無しさん:2009/08/09(日) 18:11:09
doxygenが喰えるように書く
366デフォルトの名無しさん:2009/08/09(日) 18:40:44
ううむ、BSは巷のちょっと
不作法なHTMLをパースさせるのに
役立っていたんだがのう

elemental treeって今のバージョンは
その辺耐性あるのかしら。
367デフォルトの名無しさん:2009/08/09(日) 19:13:04
ElementTreeはXMLパーサですよ
368デフォルトの名無しさん:2009/08/10(月) 07:49:28
>ちょっと崩れたHTMLがパースできなく

それはツマンネーな
369デフォルトの名無しさん:2009/08/10(月) 09:26:40
まあ、HTMLのパーザなんて、泥縄の塊だしな。
370デフォルトの名無しさん:2009/08/10(月) 09:50:49
http://pc12.2ch.net/test/read.cgi/tech/1231570128/
ここでopy2on(別名おっぱい)というのをやってます
371デフォルトの名無しさん:2009/08/11(火) 00:38:42
Pythonのお勉強をしようと思って
2chに書き込むスクリプトをPython 3.0.1(Windowsです)で書いてみたのですが
urllib.parse.urlencode()でShift-JISの文字列を
期待通りにURLエンコード(パーセントエンコーディング)できません。
{"s":"あ"}をurlencode()して"s=%82%A0"がほしいのですが
普通にやると下のようになります。。
何か良い解決策はないでしょうか?

>>> import urllib.parse
>>> s = "あ".encode("shift-jis")
>>> print(urllib.parse.urlencode({"s":s}))
s=b%27%5Cx82%5Cxa0%27

いろいろ試してみたところ、quote()やquote_plus()では
期待通りの値(%82%A0)が返ってきましたが
urlencode()は中でdict内のstr以外の値にstr()をあててquote_plus()しているので
期待通りの値が返ってこないことがわかりました。
…2.6とかにしたほうがいいでしょうか><
372デフォルトの名無しさん:2009/08/11(火) 00:54:04
なんかバグっぽいな・・・
報告されてた http://bugs.python.org/issue5468
373371:2009/08/11(火) 02:11:52
>>372
ありがとうございます!バグですか。。
3.0.1での解決策って
必要なところだけquote_plus()して自分で文字列連結するくらいですかね?
374デフォルトの名無しさん:2009/08/11(火) 04:25:55
ですね

375デフォルトの名無しさん:2009/08/11(火) 06:32:45
import _socket
from _socket import *
(socket.py 45)

こういうふうに一つのモジュールで二つの方法でインポートするのは
どういう意図があってのことなんでしょうか?
376デフォルトの名無しさん:2009/08/11(火) 06:56:37
_socket の名前空間をそのまま使いたいとき
普通はこういうこと考えなくていいよ
377デフォルトの名無しさん:2009/08/11(火) 08:17:34
初心者なら、from は使うべきではないと思う俺だぜ

自分が何やっているのかわからなくなるぜ
378デフォルトの名無しさん:2009/08/11(火) 09:53:52
言いたい事は理解できるが、無闇に記述量を増やすとLL使う意義そのものが怪しくならんか?
379デフォルトの名無しさん:2009/08/11(火) 10:06:27
とはいえ名前空間の中がごちゃごちゃしてると後で困る
from/importの使い分けはいざ説明しようとなると面倒だな…
380デフォルトの名無しさん:2009/08/11(火) 10:19:43
>>378
記述を減らす分には置換を掛ければ一発さ。
でも記述をフル識別子化するのはそうもいかない。
381デフォルトの名無しさん:2009/08/11(火) 12:30:41
>379
それもわかる。記述量・速度と可読性のトレードオフなんだよね。

>380
タイプ量が多い事自体がまず問題じゃね?

IDEの入力支援がある前提なら、問答無用でfrom禁止でも良いと思うけど。
382371:2009/08/11(火) 12:42:58
>>374
ですかー
自分でquote_plus()してやるようにします。
ありがとうございました!
383デフォルトの名無しさん:2009/08/11(火) 15:14:04
>>7
Я шестьдесят лет.
384デフォルトの名無しさん:2009/08/11(火) 21:52:40
っas
385デフォルトの名無しさん:2009/08/11(火) 22:09:10
臨機応変に対応できてこそパイソニアンだ!
Javaみたいなのはうんざりだよ。
386デフォルトの名無しさん:2009/08/11(火) 22:10:15
パイソニアンとかパイソニスタとかどれも今ひとつなんだけど
なんかいいのないの
387デフォルトの名無しさん:2009/08/11(火) 22:45:37
蛇遣い
388デフォルトの名無しさん:2009/08/11(火) 22:55:07
パイソンマン
パイソナー
パイン
389デフォルトの名無しさん:2009/08/11(火) 23:17:57
「パイソン」さんが作ったんだから、元々人の名前なんだけどね。
390デフォルトの名無しさん:2009/08/11(火) 23:51:01
>>388
×パイソンマン
○パイソンパーソン

どこかの怖いヒスおばさんに怒られるぉw
391デフォルトの名無しさん:2009/08/12(水) 05:57:45
おpy星人でいいお
392デフォルトの名無しさん:2009/08/12(水) 07:20:28
>>387
すごく、厨二くさいです…
393デフォルトの名無しさん:2009/08/12(水) 10:10:33
アボリションオブルビー
394デフォルトの名無しさん:2009/08/12(水) 10:14:22
へびんちゅ
395デフォルトの名無しさん:2009/08/12(水) 10:55:57
>>378

1)
import longlonglongnamemodule
longlonglongnamemodule.hogehoge()

2)
from longlonglongnamemodule import hoge
hoge()

3)
import longlonglongnamemodule as m
m.hoge()


396388:2009/08/12(水) 12:25:50
>>390
それ一瞬考えたけど、
バイキンマンがOKなんだから
乙パイソンより問題ないだろw
397デフォルトの名無しさん:2009/08/12(水) 12:35:31
バイバイキン
398デフォルトの名無しさん:2009/08/12(水) 12:59:45
パイパイソン
399デフォルトの名無しさん:2009/08/12(水) 13:19:59
タオパイパイ
400デフォルトの名無しさん:2009/08/12(水) 15:40:12
>> hoge(5, 2)
3
>> hoge(-5, 3)
-2

こういう関数ってありますか?
401デフォルトの名無しさん:2009/08/12(水) 16:23:03
hogeじゃわからんw
402デフォルトの名無しさん:2009/08/12(水) 16:44:16
釣られるなよ
403デフォルトの名無しさん:2009/08/12(水) 16:57:04
hoge = lambda x,y:(abs(x) - y) * x / abs(x)
404デフォルトの名無しさん:2009/08/12(水) 17:29:04
hage
405デフォルトの名無しさん:2009/08/12(水) 17:32:47
中華なパイパイ
406デフォルトの名無しさん:2009/08/12(水) 17:35:36
hoge = lambda x,y: - (y * x / abs(x))
407デフォルトの名無しさん:2009/08/12(水) 17:36:52
hoge = lambda x,y: x - (y * x / abs(x))
408デフォルトの名無しさん:2009/08/12(水) 17:58:53
hoge = lambda x,y: 3 if x==5 and y==2 else -2
409デフォルトの名無しさん:2009/08/12(水) 23:29:10
>>400
ゆとりだなあ
410デフォルトの名無しさん:2009/08/13(木) 00:31:35
その関数で一体何がしたいんだろう
411デフォルトの名無しさん:2009/08/13(木) 09:57:16
草民が沸いてるね
412デフォルトの名無しさん:2009/08/13(木) 10:06:21
床でも天井でもない
413デフォルトの名無しさん:2009/08/13(木) 15:57:55
ttp://www.moongift.jp/2009/08/jobboard_beproud_200908_2/

即日ってすでに炎上してるっぽいんだが
こういうのに手を出したがるおめでたいヤツって今時居るのかね
414デフォルトの名無しさん:2009/08/14(金) 09:35:04
>現在、既に動いている案件に対する人員追加の募集になります。渋谷、恵比寿周辺で活動されている技術者の方、ご応募お待ちしています!応募は

Death march
415デフォルトの名無しさん:2009/08/14(金) 21:42:05
>>413
naze django wo tsukattanoni enjou surunokana ?
416デフォルトの名無しさん:2009/08/15(土) 00:42:42
>>415
black dakara
417デフォルトの名無しさん:2009/08/15(土) 01:41:50
即日だからってデスマって言ってたら
世の中デスマだらけだな
いや、事実デスマだらけなのか・・・
418デフォルトの名無しさん:2009/08/15(土) 02:52:34
手を出してみる
419デフォルトの名無しさん:2009/08/15(土) 07:11:30
>>418
報告ヨロ
420デフォルトの名無しさん:2009/08/15(土) 08:00:54
Open JDK見てたら、timsortってのがコミットされてた。
どっかで見たような気がしたから調べたら、Tim Petersのアルゴリズムだった。

意外とすごいぞPython
421デフォルトの名無しさん:2009/08/15(土) 09:03:18
>>418
仕事のない駄目プログラマ乙www
422デフォルトの名無しさん:2009/08/15(土) 09:08:09
TDN駄目プログラマオッー!!!
423デフォルトの名無しさん:2009/08/15(土) 09:10:03
Web+DB Pressとか未だに恥ずかしくてレジに持って行けない
424デフォルトの名無しさん:2009/08/15(土) 09:17:06
没落
425デフォルトの名無しさん:2009/08/15(土) 10:30:46
>>418
キミはなにやってもムリだと思う。
コンビニのバイトとかもムリ。肉体労働はもっとムリ。
426デフォルトの名無しさん:2009/08/15(土) 10:33:35
充実した人生を送っている者は、みずからを世界の一部と認識する。
427デフォルトの名無しさん:2009/08/15(土) 11:21:38
送れてない者は自分より1mmでも惨めなものを必死こいて探す
428デフォルトの名無しさん:2009/08/15(土) 11:37:00
そもそもジャンゴを業務でやってたって人間自体がほとんどいないんじゃw
そんなに使われてるん? 日本で。
429デフォルトの名無しさん:2009/08/15(土) 11:58:17
ドジャンゴを使っている人々

- ブラック企業
- 低脳開発者(たいていはもとPHP使い)
- ITドカタ

厨房 / ブラック御用達フレームワークということですかね
430デフォルトの名無しさん:2009/08/15(土) 12:16:46
おった!
431デフォルトの名無しさん:2009/08/15(土) 12:56:08
みんな幸せになれると良いねえ
432デフォルトの名無しさん:2009/08/15(土) 13:08:05
>>429
-サーバが落ちていることより角電池が気になるひとびと

これ追加。
433デフォルトの名無しさん:2009/08/15(土) 13:18:57
直列四本はDanger! High Voltageだからやめろ
434デフォルトの名無しさん:2009/08/15(土) 19:24:18
僕はほんたうにつらいなあ
435デフォルトの名無しさん:2009/08/16(日) 08:19:01
>>429
つまりGoogleはブラック、と
436デフォルトの名無しさん:2009/08/16(日) 10:42:48
>>435
揚げ足とれてない
437デフォルトの名無しさん:2009/08/16(日) 11:44:58
ググルは黒だもんね
438デフォルトの名無しさん:2009/08/16(日) 14:33:21
どうやら435はブラック
逃げたりバックれたりするレベル
439デフォルトの名無しさん:2009/08/16(日) 16:22:35
py2exeをLinux上で使ってWindowsでも動くようにしたいんですが可能ですか?
ググっても情報がないので何か情報をお願いします
440デフォルトの名無しさん:2009/08/16(日) 16:29:07
>>413
>こういうのに手を出したがるおめでたいヤツって今時居るのかね

ストックオプションという言葉に釣られる人が未だにいるくらいだから、居るんじゃね?
441デフォルトの名無しさん:2009/08/16(日) 16:39:56
>>439
バイナリの実行プログラムをLinuxでもWindowsでも
実行可能にするのがどれだけ大変なことか考えたことはあるのか?

ただし、Linux上でWindows上で実行可能なexeを作る「だけ」なら環境を構築してあげれば可能かもしれない。
当然Linux上ではそのexeは動作しないが。
442デフォルトの名無しさん:2009/08/16(日) 17:56:00
>>435はグーグルだろ
443デフォルトの名無しさん:2009/08/16(日) 19:11:44
>>441
申し訳ない
どうやら私の書き方が悪かったみたいですね
書き直します

Linux上で作ったソフトをLinux上のpy2exeでバイナリ作成して
その作成したバイナリをWindowsで動かすことは可能ですか?


とりあえず今知りたいことは

・そもそもLinux上でpy2exeは利用可能なのか?
・それはWineなどを経由しなくても可能なのか?
・Linuxで作成が可能ならそういった情報が載ったサイトなどを知りたい


よろしくお願いします
444デフォルトの名無しさん:2009/08/16(日) 19:18:29
まだDebianにはPython2.6もPython3のパッケージもない?
445デフォルトの名無しさん:2009/08/16(日) 19:21:31
>>443 そもそもスクリプトでLinuxに依存するような機能を使ってたり、
Linuxに依存するようなことをやってたらどっちにしろ動かない。
446デフォルトの名無しさん:2009/08/16(日) 19:21:37
クロスコンパイラは無いんじゃまい?
447デフォルトの名無しさん:2009/08/16(日) 19:22:14
>>443
人の話を聞けよ。

>ただし、Linux上でWindows上で実行可能なexeを作る「だけ」なら環境を構築してあげれば可能かもしれない。
>当然Linux上ではそのexeは動作しないが。
って先に答えを書いてるじゃないか。

py2exeがやってることはpycをzipで固めて1exe化した
pythonインタプリタにくっつけているだけなので、やろうと思えば他のOS上でもできる。
448デフォルトの名無しさん:2009/08/16(日) 19:29:05
449デフォルトの名無しさん:2009/08/16(日) 20:03:11
>>448
すんません、aptラインの書き方わかんないす・・・orz
450デフォルトの名無しさん:2009/08/16(日) 20:08:25
>>449
experimentalパッケージでも入れると申すか!
悪いことは言わんまだ使うな
451デフォルトの名無しさん:2009/08/16(日) 20:10:26
>>447
おまえも人の話聞けよ
452デフォルトの名無しさん:2009/08/16(日) 20:31:47
GTKの人かw
453デフォルトの名無しさん:2009/08/17(月) 13:26:19
>452

あ〜、なるほど
なんかもやもやしてたのがすっきりした!
454デフォルトの名無しさん:2009/08/17(月) 17:01:57
cmake
455デフォルトの名無しさん:2009/08/17(月) 17:28:58
numpy関連のバージョンをlinuxのデフォルトバージョンから手動で上げようとしたら
めんどくさすぎて死んだ
asdfみたいな簡単な仕組みはないの?
456デフォルトの名無しさん:2009/08/17(月) 17:50:09
「make」と鬱と「負け」って読んじゃうんだよな
457デフォルトの名無しさん:2009/08/17(月) 18:34:23
3.x 系列でも type(hoge) == types.DictType とかで
型を判定することができますか?
458デフォルトの名無しさん:2009/08/17(月) 18:41:59
それってisinstanceじゃダメなの?
459デフォルトの名無しさん:2009/08/17(月) 19:12:45
>>443
Linux上でPy2Exeは動かない

WineでWinのPython実行環境を構築すれば、
Python作ソフトをPy2ExeでExe化可能かもしれない
(やったことはないので確証は無い)


元よりWin上でPyhtonスクリプトをExe化する
ものだから(どこの説明でもそう書いて
あるのだが…)、WinでのPython実行環境が無いと
Exe化した際の不具合の特定が面倒だよ。
460デフォルトの名無しさん:2009/08/17(月) 23:51:13
Pythonのオブジェクトインスペクト関数「see()」
ttp://coreblog.org/ats/see-the-object-inspector
ttp://inky.github.com/see/

高機能なdir()って感じでなかなかよさげ
461デフォルトの名無しさん:2009/08/18(火) 00:45:58
>>459
XP (note) で作った exe が他の XP (note) では動くのに
XP (netbook) で動かなくて焦ったことはある
462デフォルトの名無しさん:2009/08/18(火) 00:47:21
vista でも動かない orz
463デフォルトの名無しさん:2009/08/18(火) 09:13:06
動かないというだけじゃなくて、そのときの症状を具体的に言うのが、
初心者を抜け出す第一歩だよ。
とりあえず、VC++ Runtime Library の 2005 か 2008 の再頒布可能パッケージを
インストールしてみな。
464デフォルトの名無しさん:2009/08/18(火) 10:30:43
465デフォルトの名無しさん:2009/08/18(火) 10:39:09
DLL地獄ようこそようこ
466デフォルトの名無しさん:2009/08/18(火) 11:02:09
俺のアイドル天使はいずこに?
467デフォルトの名無しさん:2009/08/18(火) 11:07:16
角電池とかよっきゅんとかここは相変わらずカオスなスレですね
468デフォルトの名無しさん:2009/08/18(火) 16:23:58
イケメンハッカーも忘れないで!
アッー!
469デフォルトの名無しさん:2009/08/18(火) 16:26:12
またruby厨降臨?
470デフォルトの名無しさん:2009/08/18(火) 18:29:59
>>464のリンク見て不思議に思ったんだが
cx_FreezeはなんでVC++ランタイムライブラリを
配布できるんだ?
PSFライセンスの絡みであの手のライブラリは勝手に
配布しちゃいかんのじゃないの?
そのためPy2Exeはわざと除外してんだろう
471デフォルトの名無しさん:2009/08/18(火) 19:01:57
>>468
顔写真貼ればもっと盛り上がるよ
472デフォルトの名無しさん:2009/08/18(火) 20:56:04
pythonをsakuraエディタで使えるようにしたいんですが、
ちゃんとした色設定ファイルがありません。

原理的にどこかにあると思うんですけど、
(IDLEと同じくらいの)
keyword(演算子、組み込み変数、組み込み関数、予約語等)をまとめたファイルって
どこかにないのでしょうか?
473デフォルトの名無しさん:2009/08/18(火) 22:09:04
> 原理的にどこかにあると思うんですけど

「原理的」の意味が分からない
というかサクラエディタのスレで聞いた方がいいのでは?
474デフォルトの名無しさん:2009/08/18(火) 22:16:06
import sys, os, itertools, keyword

def importable(name):
    try:
        __import__(name)
    except Exception:
        return False
    return True

def toplevel_modules(path):
    for root, dirs, files in os.walk(path):
        names = itertools.chain(dirs, (os.path.splitext(i)[0] for i in files))
        for name in names:
            if importable(name):
                yield name
        break

if __name__ == '__main__':
    words = set(keyword.kwlist)

    words.update(dir(__builtins__))
    for i in dir(__builtins__): words.update(dir(getattr(__builtins__, i)))

    stdout = sys.stdout
    for path in sys.path: words.update(i for i in toplevel_modules(path))
    sys.stdout = stdout

    for i in sorted(words): print i
自前で作ればいいんだよ
475デフォルトの名無しさん:2009/08/18(火) 23:28:28
Python 3.1 で書き始めて
MySQLdbがPython 2.6どまりなことに気づいた・・
どうしよ
SQLite用に書いていたソフトを
MySQL用にしたいだけなんだけど
既に本体は Python 3.x にべったりで書いてる
死にたい
476デフォルトの名無しさん:2009/08/18(火) 23:40:06
もしかしてpyodbcでなんとかしろと?
と思ったけど 3.x 系はリリースされてなかった
http://code.google.com/p/pyodbc/downloads/list
477デフォルトの名無しさん:2009/08/18(火) 23:42:02
シリーズ3作目はフラグ
478デフォルトの名無しさん:2009/08/19(水) 00:10:02
MySQL の c ライブラリを直接呼べ
479デフォルトの名無しさん:2009/08/19(水) 00:28:14
ctypes大作戦
480デフォルトの名無しさん:2009/08/19(水) 08:31:36
ctypesっていいよね。
481デフォルトの名無しさん:2009/08/19(水) 18:20:43
WebARENAのsuitexが「Python の最新バージョンに対応w」らしいのですが
実際にどのバージョンが入っているかご存知の方はいらっしゃいますか?
482デフォルトの名無しさん:2009/08/19(水) 18:28:33
文字通り「Python の最新バージョンに対応w」なら 3.0 なんて有り得ん罠
良くて 2.4 と予想
483デフォルトの名無しさん:2009/08/19(水) 19:20:42
3.1.1
484デフォルトの名無しさん:2009/08/19(水) 19:21:14
>>482
言ってる事おかしくね?
485デフォルトの名無しさん:2009/08/19(水) 22:16:30
>>480
#include <ctypes.h>
こうですか?わかりません><
486デフォルトの名無しさん:2009/08/19(水) 22:27:30
3.x系列への移行はあんまり上手くいってないのか
487472:2009/08/20(木) 05:43:09
>>474
どうもありがとう。ようやくできた。。
488デフォルトの名無しさん:2009/08/20(木) 12:10:46
最新版にアップしてくれるのはありがたいんだけど
こんな風にころころ変えられるのも困るかも
ttp://php-sql-gdgd.jugem.jp/?eid=66
ttp://php-sql-gdgd.jugem.jp/?eid=67
489デフォルトの名無しさん:2009/08/20(木) 12:31:43
>>488
これで3.0系にアップデートされたら阿鼻叫喚になるなw
490デフォルトの名無しさん:2009/08/20(木) 13:01:44
>>481
ご存知の方はいらっしゃいますか?
491デフォルトの名無しさん:2009/08/20(木) 22:08:58
492デフォルトの名無しさん:2009/08/20(木) 22:25:42
[ "a" for x in range (10)]

[ "a" ] * 10
は下の方が早い?
493デフォルトの名無しさん:2009/08/20(木) 22:26:29
自分でベンチマークすればいいだろうが
494デフォルトの名無しさん:2009/08/20(木) 22:29:33
下の方が10倍以上速かった
495デフォルトの名無しさん:2009/08/21(金) 02:24:43
[]の中がImmutableだったら*のほうがいいってことかな
496デフォルトの名無しさん:2009/08/21(金) 07:45:47
[ chr(ord('a') + x) for x in range (10) ]

[ "a" ] * 10
みたいな書き方できますか?
497デフォルトの名無しさん:2009/08/21(金) 08:33:54
ttp://www.pyside.org/
pyqtは使わないほうがいいのか?
498デフォルトの名無しさん:2009/08/21(金) 09:54:31
499デフォルトの名無しさん:2009/08/21(金) 11:07:03
ジェネレータの中でエラーが発生すると、
エラーメッセージ中のスタックトレースが
ジェネレータ呼び出しまでの部分しか出力されません。

ジェネレータの内部以降のスタックトレースも
出力されるようにするにはどうすればいいのでしょうか。

処理系はIronPythonです。
500デフォルトの名無しさん:2009/08/21(金) 13:19:35
>>492
下は1つを参照してるんじゃないかな?
501デフォルトの名無しさん:2009/08/21(金) 13:23:51
>>500
文字列はimmutableだから、ひとつのオブジェクトへの参照のリストになって問題なし。
実際、上のも (CPythonの実装では) 全部同一オブジェクトを参照するよ。

リストのリストを作りたいときは、
[[] for x in xrange(10)]
の方が良いね。
502デフォルトの名無しさん:2009/08/21(金) 22:16:40
>>499
ジェネレータの内部で
try
except
print traceback
503デフォルトの名無しさん:2009/08/22(土) 12:58:44
人生の敗北者はもうPython使っちゃだめですか?
504デフォルトの名無しさん:2009/08/22(土) 15:12:30
>>502
どもども。
手元で追試してみたら、499で書いた制限がCPythonでもIronPythonでも発生しない。
(それぞれ標準コンソールでテスト)

実はPythonインタプリタはC#プログラムから自前で呼び出してるんだが、
そこの初期化なりトラップ法なりが間違っているような気がしてきた。
505デフォルトの名無しさん:2009/08/22(土) 17:02:41
モジュールの先頭に """あれこれ""" とか
クラスの先頭に """のれそれ""" 書いてドキュメントとしています.
pydoc にかけるとそれらはただ単なる文字列として表示されるだけ
なんですが,なんかこう,定められたフォーマットとかあるんでしょうか?

それとは別にどっかで見たので __author__ とか __licence__ とか
設定してみたんですが,pydoc はそういうのはガン無視らしいです.

いままで覚書をコメント文で書いていたんですが,
ドキュメントのこともそろそろちゃんと考えないと
自分的に破たんする(先月の自分は自分じゃない)とおもって
Python使いの方はどうやってるのかと.
506デフォルトの名無しさん:2009/08/22(土) 17:11:24
>>505
EpydocとかPydoctorとか調べてみて。
507デフォルトの名無しさん:2009/08/22(土) 17:39:33
公開する気がないんならautherとかlicenceとかいらんような気もするけど
このあたりを参考にして書けばいいんじゃないの?
http://www.python.jp/doc/contrib/peps/pep-0257.txt
508365:2009/08/22(土) 19:09:34
509デフォルトの名無しさん:2009/08/22(土) 20:43:56
なんでpythonってlist.rindex()ないの?
510デフォルトの名無しさん:2009/08/22(土) 21:18:16
需要が無いんだろ。

rangeのようにパラメータの与え方で
逆に動くかとも思って試したが出来なかった。

ソース(Ver2.6,Ver3.1)を見るとこうなってる。
 for (i = start; i < stop && i < Py_SIZE(self); i++) {

start>stopでデクリメントされればな〜とでも
MLに投げればそのうち実装されるんじゃねw
511デフォルトの名無しさん:2009/08/22(土) 21:48:01
一連の処理の開始から,要所要所までにかかる時間を
できれば高精度で(1/100秒くらいで)計測したいと思っています.
datetime を使って現在時刻を取得するのではとても精度が
悪いのですが,Pythonの中だけで完結できる方法としては
ほかにどのような方法があるでしょうか?

timeit は上のような用途には適してないと思います.
ある関数内での処理時間を計測するには使えると思いますが,
複数のチェックポイントで次々とというのには不向きかと
512デフォルトの名無しさん:2009/08/22(土) 21:55:11
どうしてdatetimeが出てきたのかよくわからないのだけれども
time.time()かtime.clock()じゃ不十分なのかな
513デフォルトの名無しさん:2009/08/22(土) 22:17:56
いやぁ,単純に datetime.datetime.now() で得たオブジェクトなら
そのまま print しても見やすくフォーマットしてくれるなぁ,と.
で,datetime.datetime.now() でも十分な精度でした.

テストした環境がVMで,しかもその上で動かしてるLinuxカーネルの
タイマ割り込みの周期が1000回/秒だったせいで時計がずれまくってた
だけだった.

つーわけで俺のかんちguyでした
514デフォルトの名無しさん:2009/08/22(土) 22:33:33
作ったスクリプトが遅いなぁと上の方法で計測してみたところ,
Pythonであれこれimportしているせいか
全ての import が終わるまで10秒くらいかかってます.
で,そのあとの処理はさくさくと.
bogomips が500を切るNASでやってるのが悪いのですが,
import を早く済ませるテクニックとかあるんでしょうか.
そりゃ絶対的に必要な時間はしかたないですが・・・
ちゃんと pyc もできてるし,打つ手はないかなぁ
515デフォルトの名無しさん:2009/08/22(土) 23:07:16
importのコストのうち、pycで削減できるのはコンパイル時間のみ。
10秒もかかるってことは、どれかのモジュールのグローバルに重い処理があるんじゃない?
516デフォルトの名無しさん:2009/08/23(日) 00:46:19
>>514
ある
517デフォルトの名無しさん:2009/08/23(日) 02:47:03
>>514
テストした環境がVM?
518デフォルトの名無しさん:2009/08/23(日) 11:09:27
(´・ω・`) God knows
519デフォルトの名無しさん:2009/08/24(月) 02:12:48
質問です。
8時間悩んだバグが単なる変数の再初期化のし忘れでした。
このやりきれない気持ちをどうすればよいですか。
520デフォルトの名無しさん:2009/08/24(月) 02:26:18
>>519
自動テストを書く。
521デフォルトの名無しさん:2009/08/24(月) 02:52:14
再初期化をする必要がないスコープで書く方法を学ぶ
522デフォルトの名無しさん:2009/08/24(月) 06:20:03
   ∧∧
  (´・ω・)  おやすみ・・・
  _| ⊃/(___
/ └-(____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
523デフォルトの名無しさん:2009/08/24(月) 08:54:40
   ∧∧
  (´・ω・)  おはヨーグルト!
  _| ⊃/(___
/ └-(____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
524デフォルトの名無しさん:2009/08/24(月) 09:28:29
>>519
変数名の使い回しなんて最悪だ
525デフォルトの名無しさん:2009/08/24(月) 10:30:42
おまえら発火損逝った?
526デフォルトの名無しさん:2009/08/24(月) 11:27:27
はっかそんいった?
527デフォルトの名無しさん:2009/08/24(月) 14:20:39
同じモジュールでも、複数のファイルからimportするとその分だけメモリ消費しますか?
from hoge import *だとそのファイルの物になって、複数ファイルでfromするとメモリ消費しますか?
528デフォルトの名無しさん:2009/08/24(月) 14:29:54
>>527
消費しない。
あるモジュールがはじめてimportされるとき、モジュールオブジェクトが作られて、
sys.modulesに保存される。

#a.py
print 'hello, I'm a'

#b.py
print "hello"
import a
a.foo = 'bar'
import c

#c.py
import a
print 'hello, I'm c'
print a.foo

$python b.py

してみて。
次に、 c の import a を、 import sys; a = sys.modules['a'] で置き換えてみて。
529デフォルトの名無しさん:2009/08/24(月) 16:32:27
白化村征かなかったのか。駄目だなあ。
530デフォルトの名無しさん:2009/08/24(月) 18:11:11
予想してみたけど分りません(>_<)

薄荷無羊駝(シソ科ハッカ属)、咲かなかったのか。
白化村(色素が抜けて全身真っ白の人しかいない伝説の村)、まさか無かったのか。
531デフォルトの名無しさん:2009/08/24(月) 18:25:14
ハッカービレッジとかそんなのか?知らんけど
532デフォルトの名無しさん:2009/08/24(月) 22:23:57
GAEあほだろ
533デフォルトの名無しさん:2009/08/24(月) 22:46:28
3.1.1で大分マシになったようだが、まだまだ遅いな。
http://www.gtsystem.eu/blog/2009/08/improved-performance-of-python-31/
534デフォルトの名無しさん:2009/08/25(火) 08:52:01
535デフォルトの名無しさん:2009/08/25(火) 11:20:32
>>534
アンチ自民キモイな。
536デフォルトの名無しさん:2009/08/25(火) 15:16:56
つまらない質問で悪いんだが、
タプル同士をベクトルみたいに足し算するのはどうやるの?
ab = (1, 2)
ac = (3, 4)

abc = (ab[0]+ac[0], ab[1]+ac[1])
537デフォルトの名無しさん:2009/08/25(火) 15:25:34
map(sum,zip(ab,ac))
538デフォルトの名無しさん:2009/08/25(火) 15:51:31
numpy
539デフォルトの名無しさん:2009/08/25(火) 15:53:23
タプルはベクトルでも行列でもねーぞ
540デフォルトの名無しさん:2009/08/25(火) 15:53:48
ab = 1 + 2j
ac = 3 + 4j
abc = ab + ac
541デフォルトの名無しさん:2009/08/25(火) 15:57:38
542デフォルトの名無しさん:2009/08/25(火) 15:59:04
つまらない質問で悪いんだが、
タプルを複素数にするのはどうやるの?
543デフォルトの名無しさん:2009/08/25(火) 15:59:25
>>536
tuple(ai + bi for ai, bi in zip(a, b))

おまけ:2ノルム
math.sqrt(sum(ai * bi for ai, bi in zip(a, b)))
544デフォルトの名無しさん:2009/08/25(火) 16:03:02
>>542
tup = (1, 2)
complex(*tup)
545デフォルトの名無しさん:2009/08/25(火) 16:12:47
>>542
complex(*ab)+complex(*ac)
546デフォルトの名無しさん:2009/08/25(火) 16:13:35
>>544
thx!
つまらない質問で悪いんだが、
複素数をタプルにするのはどうやるの?
547デフォルトの名無しさん:2009/08/25(火) 16:16:44
>>546
((complex(*ab)+complex(*ac)).real, (complex(*ab)+complex(*ac)).imag)
548デフォルトの名無しさん:2009/08/25(火) 16:56:39
とりあえず吉川と布袋に囲まれたら泣いて謝ると思う
549デフォルトの名無しさん:2009/08/25(火) 17:32:01
なんのこっちゃわからんが、みんなすごいね
550デフォルトの名無しさん:2009/08/25(火) 21:57:23
ぬのぶくろは弱いぞ
551デフォルトの名無しさん:2009/08/26(水) 05:00:02
ヘタれ布袋
552デフォルトの名無しさん:2009/08/26(水) 15:14:20
パイヤング
553デフォルトの名無しさん:2009/08/26(水) 17:20:30
matplotlibのbounding box調節関数のサンプルが見つからない
554デフォルトの名無しさん:2009/08/26(水) 18:08:06
文字列 % 辞書 はなんの為に使うんでしょうか?
def gettext_noop(string, **kwargs):
retval = string
if kwargs:
retval %= kwargs
return retval
555デフォルトの名無しさん:2009/08/26(水) 18:54:29
556デフォルトの名無しさん:2009/08/26(水) 18:55:56
sprintfみたいなもんや
557デフォルトの名無しさん:2009/08/26(水) 20:02:25
マンモスありがとうございます
558デフォルトの名無しさん:2009/08/26(水) 20:24:36
"abc%sdef" % "hoge"
みたいなフォーマット文字列の書き方とはもうサヨナラ?
悲しすぎる.
559デフォルトの名無しさん:2009/08/26(水) 20:57:35
"abc{}def".format("hoge")のほうが読みやすい
%sdefとかだと文字とフォーマット表記が混じって読みにくい
560デフォルトの名無しさん:2009/08/26(水) 21:06:58
長いこと%sやら%dな変換指定子に慣れてるから
他の書式にされると覚えにくくて困る

ええC#のことです
561デフォルトの名無しさん:2009/08/26(水) 23:53:37
正規表現も読みにくいな
562デフォルトの名無しさん:2009/08/27(木) 01:08:25
LINK = "<%(tag)s %(attr)s>%(name)s</%(tag)s>"
dict_ = {}
dict_["tag"] = "a"
dict_["attr"] = 'href="http://localhost:8080/"'
dict_["name"] = "hack you"
LINK % dict_

MENU = "<menu>\n%(item)s</menu>"
ITEM = "<li>%(content)s</li>\n"

print MENU % {"item" :"".join([ITEM % {"content": LINK % dict_}]*10)}
563デフォルトの名無しさん:2009/08/27(木) 01:55:17
LINK = "<{tag} {attr}>{name}</{tag}>".format(tag = "a",
attr = 'href="http://localhost:8080/"',
name = "hack you")
ITEM = ("<li>{content}</li>\n"*10).format(content = LINK)
MENU = "<menu>\n{item}</menu>".format(item = ITEM)
print(MENU)
564デフォルトの名無しさん:2009/08/27(木) 01:57:03
インデントずれた
LINK = "<{tag} {attr}>{name}</{tag}>".format(tag = "a",
                                      attr = 'href="http://localhost:8080/"',
                                      name = "hack you")

ITEM = ("<li>{content}</li>\n"*10).format(content = LINK)
MENU = "<menu>\n{item}</menu>".format(item = ITEM)
print(MENU)
565デフォルトの名無しさん:2009/08/27(木) 05:37:11
LINK = "<{tag} {attr}>{name}</{tag}>".format(
  {tag: "a", attr: 'href="http://localhost:8080/"', name: "hack you"})
566デフォルトの名無しさん:2009/08/27(木) 06:19:49
ぶっちゃけ、変数展開型言語も色んなテンプレも別に見やすいわけじゃないんだよな。
なんか良い方法あればいいんだけど。
567デフォルトの名無しさん:2009/08/27(木) 16:09:07
sqlite3でテーブルが作成されてなかったり、
データベースファイルがないのを検出する方法ってありますか?
568デフォルトの名無しさん:2009/08/27(木) 18:25:50
>>567
> sqlite3でテーブルが作成されてなかったり、
SELECT * FROM sqlite_master;

> データベースファイルがないのを検出する方法ってありますか?
os.path.exists
569デフォルトの名無しさん:2009/08/29(土) 01:00:08
10 Ways To Let People Know You're A Bad Python Programmer
ttp://artificialcode.blogspot.com/2009/08/10-ways-to-let-people-know-your-bad.html
570デフォルトの名無しさん:2009/08/29(土) 02:06:58
1. Write "God" functions
hundred lines of code
2. Never return anything in a function, especially not some type of value that could demonstrate your function succeeded or failed.
3. Never write a test...EVER.
4. Call Perl from Python
5. Screw Control Flow
import os
if os.path.exists("/tmp"):
    def myfunc():
        x = 4
        return x
class Foo(object):
    y = 1
f = Foo()
print f.y + myfunc()
6. Abuse conditional logic to the point that you double or even triple an "unmaintainable" Cyclomatic Complexity Score of 50.
7. Use sleep statements like Holy Water.
8. Initiate the same logic more then once, "just to be sure".
count = 0
for i in range(5):
    if os.path.exists("/tmp"):
        print "bingo"
def foo():
    print "stuff"
if os.path.exists("/tmp"):
    import sys
    sys.exit(1)
9. Write Library Code that does a sys.exit(0) on an exception.
10. Reimplement the Python Standard Library in every piece of code you write.
Summary
If you can do just a couple of these things in every piece of code you write, you are well on your way to writing bad python code! Stay tuned for part II.
571デフォルトの名無しさん:2009/08/29(土) 05:31:37
PyDev 便利に使っているけど、やっぱり餅は餅屋というか、
Eclipse で Java している時のような至れり尽くせり感がないなぁ・・
もっと、こう、至れり尽くせりなPython用IDEって何があるんでしょうか。
572デフォルトの名無しさん:2009/08/29(土) 05:35:24
eric4
573デフォルトの名無しさん:2009/08/29(土) 07:47:42
emacs
574デフォルトの名無しさん:2009/08/29(土) 08:41:35
emacs+rope
575デフォルトの名無しさん:2009/08/29(土) 09:16:35
emacs+rope+auto-complete+anything
576デフォルトの名無しさん:2009/08/29(土) 10:30:38
おまえらがEclipseをろくに使ったことがないということはよくわかった
577デフォルトの名無しさん:2009/08/29(土) 10:39:21
ううむ・・ericも含めて、それだったら PyDev でいいや・・・
578デフォルトの名無しさん:2009/08/29(土) 13:07:55
実際 Eclipse 使ったことないんだが、至れり尽くせりって具体的にどんなことが出来るのかね?
579デフォルトの名無しさん:2009/08/29(土) 13:47:20
eclipseを使ったら彼女が出来ました
580デフォルトの名無しさん:2009/08/29(土) 13:48:22
>>578
ファイルを保存する段階でコンパイルエラーを指摘してくれるのを最初に見たときは感動したな。

Visual Stdio 2008でも同じことが出来るけど。

環境がIronPythonになるが、Visual StudioでPythonのスクリプトを動かすことが出来るよ。
581デフォルトの名無しさん:2009/08/29(土) 14:05:37
なんだ、ドザか。
582デフォルトの名無しさん:2009/08/29(土) 14:07:15
w
583デフォルトの名無しさん:2009/08/29(土) 15:03:03
584デフォルトの名無しさん:2009/08/29(土) 16:06:16
>>578
イタレリのキットが抽選で当たります。
585デフォルトの名無しさん:2009/08/29(土) 16:29:36
見事に外したな
586デフォルトの名無しさん:2009/08/29(土) 21:24:22
並列実行用のモジュールにMultiProcessingというのがあるようなんですが、
メモリ共有型の場合でも対応できるんでしょうか?
例えば大きな行列があって、並列処理で別々の部分を処理したりしたいんですが。。。
threadingでは実際には並列効果がないというのを知ってショックを受けてます・・・
587デフォルトの名無しさん:2009/08/29(土) 21:26:11
yes you can
588デフォルトの名無しさん:2009/08/29(土) 22:16:41
【JAVA質問スレより】
940 :デフォルトの名無しさん:2009/08/29(土) 22:08:40
>>937
一番もてるのはperl。
もっとも嫌われるのはpython。
C,C++は、相性とテクニック次第。


なんで?
589デフォルトの名無しさん:2009/08/29(土) 22:18:57
なんでそいつに聞かないの?
590デフォルトの名無しさん:2009/08/29(土) 22:19:07
モテる相手がバグだからさ
591デフォルトの名無しさん:2009/08/29(土) 22:29:02
うまいな
592デフォルトの名無しさん:2009/08/29(土) 22:31:09
>>586
http://docs.python.org/library/multiprocessing.html#sharing-state-between-processes

俺は使ったことない。共有メモリマシンでうまく並列効果が出たら是非教えて。
593デフォルトの名無しさん:2009/08/30(日) 00:34:25
>>588
なんでか知らんが、俺の周りでもpyてょnは変態呼ばわり。
594デフォルトの名無しさん:2009/08/30(日) 00:42:05
凡人には使えない言語だ
595デフォルトの名無しさん:2009/08/30(日) 00:44:18
言語じゃなくて使ってる人が変態(ry
596デフォルトの名無しさん:2009/08/30(日) 00:45:57
変態専用か
597デフォルトの名無しさん:2009/08/30(日) 00:48:05
変態じゃないよ
仮に変態だったとしても変態という名の紳士だよ
598名無しさん@そうだ選挙に行こう:2009/08/30(日) 09:38:36
俺もうんこ喰うけど別に変態ってわけじゃないな
599名無しさん@そうだ選挙に行こう:2009/08/30(日) 10:57:11
凡人は使わない言語だ
600名無しさん@そうだ選挙に行こう:2009/08/30(日) 13:28:05
またruby厨の荒らしっすか
601名無しさん@そうだ選挙に行こう:2009/08/30(日) 13:31:27
ruby厨は使わない言語だ
602名無しさん@そうだ選挙に行こう:2009/08/30(日) 13:50:15
そりゃそうだ
603名無しさん@そうだ選挙に行こう:2009/08/30(日) 14:12:06
これは良いマイキースレ
604デフォルトの名無しさん:2009/08/30(日) 23:27:50
>569,570
他はともかく
4. Call Perl from Python
これはあり得ないだろ…
605デフォルトの名無しさん:2009/08/30(日) 23:44:40
大学の時の教授は os.system 呼びまくりだったから
あり得ない話ではない。
606デフォルトの名無しさん:2009/08/31(月) 12:29:07
> 4. Call Perl from Python

いま仕事で使ってるスクリプトがまさにそれだ……
607デフォルトの名無しさん:2009/08/31(月) 12:36:15
CentOSってPython2.4なんだけど、2.5とか2.6で動かすメリットって大きい?
用途としてはDjangoでWebアプリ
608デフォルトの名無しさん:2009/08/31(月) 13:04:28
>>607
困ってないなら何もいじる必要ないのでは?
特にスピードが速くなるとかは感じない.

でも自分でコード書くなら 2.6 使っておくとよいのではとおもう.
3.x 系は自分としては使いたい拡張モジュールが
対応していないのでNG.標準モジュールだけならありかと.
609デフォルトの名無しさん:2009/08/31(月) 13:22:37
>>608
サンクス
実行速度とかは特に差が出ないのね
Javaなんかだとバージョンあげると明らかにパフォーマンスあがるもので気になっていたので。

モジュールとかはおおむね2.4以降なら動くみたいだしそのままでいくわ
610デフォルトの名無しさん:2009/08/31(月) 17:41:42
2.4はkuso
611デフォルトの名無しさん:2009/08/31(月) 18:14:33
理由は?
612デフォルトの名無しさん:2009/08/31(月) 18:30:47
613デフォルトの名無しさん:2009/09/01(火) 00:35:36
システムのバージョンを上げるのはトラブルの元
ローカルに入れるのならおk
614!omikuji!dama:2009/09/01(火) 05:35:25
test
615デフォルトの名無しさん:2009/09/01(火) 11:02:02
無責任に逃げ出すゴミ虫はなにやっても駄目だけどな
616デフォルトの名無しさん:2009/09/01(火) 11:05:07
自虐すか(笑)
617デフォルトの名無しさん:2009/09/01(火) 11:20:44
誰か逃げたの?
618デフォルトの名無しさん:2009/09/01(火) 11:27:09
>>617
俺知ってる(w
619デフォルトの名無しさん:2009/09/01(火) 12:05:09
仕事しろ、あとTwitterでやれw
620デフォルトの名無しさん:2009/09/01(火) 12:08:06
ゴミ虫はゾンビ化するとやっかいだから、煽らない方がいいよ...
621デフォルトの名無しさん:2009/09/01(火) 12:09:11
よくみんな黙ってるよ
みんな大人だ
622デフォルトの名無しさん:2009/09/01(火) 12:24:48
逃げちゃう人ってそいつが存在しなくたってまったく問題ナッシングなことを証明するチャレンジャーだよね
623デフォルトの名無しさん:2009/09/01(火) 13:23:43
レッドソックス松坂のことか
624デフォルトの名無しさん:2009/09/01(火) 14:30:36
FreeBSDで
checking for python libraries... not found
って言われたのですが
/usr/local/lib/python2.6
じゃないんですか?
625デフォルトの名無しさん:2009/09/01(火) 14:36:54
Makefileもよめないの?
626デフォルトの名無しさん:2009/09/01(火) 17:22:32
ぴーひゃらりんこだぷー
627デフォルトの名無しさん:2009/09/01(火) 17:23:35
あんなの読むのは土方とマニアだけでいいと思うんだ
628デフォルトの名無しさん:2009/09/01(火) 17:29:31
そうだね、フリーライダーは読まなくていいね
629デフォルトの名無しさん:2009/09/01(火) 17:35:18
matplotlibの最新版でグラフにアノテーションつける機能が使いたかった
古いシステムではnumpyが古くて入らなかった
numpy関連全部バージョン上げるの大変だからOSのバージョンごと上げたらいろいろ大変になった
630デフォルトの名無しさん:2009/09/01(火) 17:59:01
人間性から見て一生底辺だね
どんな仕事についても駄目っぽいね
631デフォルトの名無しさん:2009/09/01(火) 18:05:29
おまいらPythonの話をしろよ
たとえばだな

ドジャンゴ・イン・アクション
http://www.manning.com/geewax/
632デフォルトの名無しさん:2009/09/01(火) 18:12:42
>>624
よくわからんけど upgrade-site-packages やってないとかいうオチ?
633デフォルトの名無しさん:2009/09/02(水) 00:11:04
Pythonってopensslライブラリが標準ではついてこないのか。
くそ。
634デフォルトの名無しさん:2009/09/02(水) 00:36:26
pythonとは関係ないからな
635デフォルトの名無しさん:2009/09/02(水) 01:02:40
ssl
636デフォルトの名無しさん:2009/09/02(水) 01:24:29
OpenSSLがついてこないから、標準ではRSAとかの暗号関連ができないのか。ざんねん。

>>635
SSLができてもなあ・・・
637デフォルトの名無しさん:2009/09/02(水) 03:31:18
twisted
638デフォルトの名無しさん:2009/09/02(水) 09:49:43
twisted標準化してくれよ
639デフォルトの名無しさん:2009/09/02(水) 09:57:04
>>633, >>636
paramikoがお勧め。
640デフォルトの名無しさん:2009/09/02(水) 10:14:19
>>638
やだ
641デフォルトの名無しさん:2009/09/02(水) 10:43:23
>>607
Cent OS は使用した事が無いですが?
OS version default の directory を残して python support Link の patch を当てるのが無難だと思います…
python support Link の patch を取っていれば問題ない様です… version up をするので在ればですが…
642デフォルトの名無しさん:2009/09/02(水) 12:55:41
ドカタかフリーライダーか、とかそういう対立軸以前に
余裕があるのかないのか、という人間としての質の差が重要な気がしている
643デフォルトの名無しさん:2009/09/02(水) 13:12:17
  <⌒/ヽ-、___
/<_/____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
644デフォルトの名無しさん:2009/09/02(水) 14:39:21
          |     |/(-_-)\|
          |     |   ∩∩   |
          |      ̄ ̄ ̄ ̄ ̄
        (-_-) …
        (∩∩)────────────────
      /
    /
  /

むかしはぱいそんができればぐーぐるにいけるとしんじていました
でもいまはかんがえをかえました

ttp://promotion.yahoo.co.jp/charger/bokoboko/r47/r47_02.php
645デフォルトの名無しさん:2009/09/02(水) 15:09:10
口をきいてもつまらなく、得るモンもなきゃ、しゃべる意味ないやろ。
646デフォルトの名無しさん:2009/09/02(水) 15:15:00
お前がひとりぼっちなのはよくわかったからPythonのことを書けよ。
647デフォルトの名無しさん:2009/09/02(水) 15:15:50
社会のために、
そのまま引きこもっとけや。
648デフォルトの名無しさん:2009/09/02(水) 15:16:30
もちろん靴下装備で
649デフォルトの名無しさん:2009/09/02(水) 17:00:24
社会の為にいろいろ活動します
650デフォルトの名無しさん:2009/09/02(水) 17:54:02
自宅を警備します
651デフォルトの名無しさん:2009/09/02(水) 18:06:53
二次元世界との架け橋を作ります。
652デフォルトの名無しさん:2009/09/04(金) 05:49:55

653デフォルトの名無しさん:2009/09/04(金) 09:38:46
654デフォルトの名無しさん:2009/09/04(金) 13:53:35
python2.5でプロセス操作が可能なライブラリってありますか?
655デフォルトの名無しさん:2009/09/04(金) 18:34:36
subprocess
656デフォルトの名無しさん:2009/09/04(金) 21:08:56
>>651
うpろだの事かー!
657デフォルトの名無しさん:2009/09/04(金) 21:31:49
658デフォルトの名無しさん:2009/09/04(金) 21:48:32
d = dict
としたあとで key in d が出来る様にするにはどうすればいいんだろう?
659デフォルトの名無しさん:2009/09/04(金) 22:37:06
>>658
d = d()
660デフォルトの名無しさん:2009/09/04(金) 23:08:03
d = d.keys()
661デフォルトの名無しさん:2009/09/05(土) 12:07:43
いつもdictでfor文まわすのってどうやるんだったっけって調べてしまうぜ。
いちいち言語の文法をそらんじなくなって久しい。
662デフォルトの名無しさん:2009/09/05(土) 12:21:13
>>660
なんでわざわざdictのkeyを取り出す必要があるんだ?
663デフォルトの名無しさん:2009/09/05(土) 13:28:02
>>662
keyの文字列自体を何かに使いたいとき
664デフォルトの名無しさん:2009/09/05(土) 13:50:23
入門書嫁。
665デフォルトの名無しさん:2009/09/05(土) 15:33:28
リファレンス嫁。
666デフォルトの名無しさん:2009/09/05(土) 23:55:21
Python + C# 最強説あらわる。これでR**yを殲滅できるぞ!
ttp://d.hatena.ne.jp/wasisan/20090905
667デフォルトの名無しさん:2009/09/06(日) 00:01:46
またRuby厨があらしてるのか
668デフォルトの名無しさん:2009/09/06(日) 00:33:49
C#イラネ
ヘジのクラスライブラリは勘弁
669デフォルトの名無しさん:2009/09/06(日) 01:11:00
どうみてもPythonもC#も被害者じゃないか
670デフォルトの名無しさん:2009/09/06(日) 02:35:09
いや、普通にPython+C#で商用プログラム書いてるところですが何か。
671デフォルトの名無しさん:2009/09/06(日) 10:12:46
>>666
変な主観で語られてもなぁw
672デフォルトの名無しさん:2009/09/06(日) 11:30:55
それと比べたらたとえ揚げ足取りであったとしても、ちゃんと文章を細かく読んでくれて、理由もつけられて、
その文章内容自体について説教・罵倒される方がはるかにましだということにあの人たちはなぜか気づかない
(多分、リアルがそれなりに充実した幸せな人たちだからだろう)。今の時代、話を聞いてくれて、まともな
ことを言ってくれる近所の頑固親父的な人なんて絶滅危惧種なのに。

まあ、普通の大人の現代(近代)社会を考えると仕方がないのかもしれないけど。よく言われることだが、社会人は
自分の利益になるケース以外では他人(特にいわゆる「バカ」)に対して注意なんてすることはないのだ。
そんなの時間がもったいない、「時は金なり」ということ(まったくいやなことだが)。

それにしても、「「バカ」であることを自己認識し自重する人たち」にとっては、現代とはなんと寂しい・辛い世界
であることか。その人たちは相手にされること、馴れ合うことすらできないのだから。

673デフォルトの名無しさん:2009/09/06(日) 13:10:50
αブロガーっぽいコピペだな
674デフォルトの名無しさん:2009/09/06(日) 13:13:06
最初の二行を読むだけで目が回ったが
675デフォルトの名無しさん:2009/09/06(日) 13:29:13
括弧が多すぎる。統合失調症の臭いがする。
676デフォルトの名無しさん:2009/09/06(日) 14:05:16
単にLISP使いなんだろ
677デフォルトの名無しさん:2009/09/06(日) 18:18:57
>>657
まいんちゃん一択
678デフォルトの名無しさん:2009/09/06(日) 21:40:01
真のLisperは括弧を省略しない
679デフォルトの名無しさん:2009/09/06(日) 22:04:58
Python使いからすると
閉じ括弧を省略できると最高なんだが
680デフォルトの名無しさん:2009/09/06(日) 22:08:22
かつて、対応する括弧までを一気に閉じるスーパー括弧というのがあってだな
681デフォルトの名無しさん:2009/09/06(日) 22:09:27
haskellの$演算子はカッコを減らすのにいい
682デフォルトの名無しさん:2009/09/06(日) 22:22:28
Python使いの口癖

オフサイド!
683デフォルトの名無しさん:2009/09/07(月) 01:14:27
「M式というのもある」と発言してうそつき呼ばわりされた屈辱の日々
684デフォルトの名無しさん:2009/09/07(月) 06:57:21
最近C++一辺倒でもなと思ってPythonを使い始めたやつですが,
Pythonってのは本質的に関数言語であって,クラスシステムは
後付けっつーことですか?

self とか cls があらわになっているをの見て,
そういうもんなのかなと.

なぜPythonに手を出したかというと
普段使わなくても多重継承がないと不安だからとか
そういう理由だとまた叩かれるのかな.
685デフォルトの名無しさん:2009/09/07(月) 07:17:35
ドMの癖に
いやらしいねえこの男は
686デフォルトの名無しさん:2009/09/07(月) 07:19:35
>>684
OOP機能は最初から装備されていたそうなので、あとづけではないらしい。
そこかしこに不自然さが残るのは確か(superとか)なんだけど、許容範囲だから我慢してる。
あとPythonの作者は関数型言語をあまりよく知らないらしいから、「本質的に関数型」ではなくて「偶発的に関数型」じゃないかな。

> self とか cls があらわになっているをの見て,
> そういうもんなのかなと.

そういうもんです。違和感あるだろうけど、我慢できる範囲だと思うので、我慢して使ってください。そのうち慣れます。
687デフォルトの名無しさん:2009/09/07(月) 08:28:42
>>684
個人的にはselfとかどの名前空間なのか明示する方が分かりやすい
省略しまくる言語とか訳分からん記号使いまくる言語は氏ねとか思う
688デフォルトの名無しさん:2009/09/07(月) 08:48:25
>>687
そうじゃない。self.method()は別に構わない。
def method(self): がちょっと嫌いなだけ。
689デフォルトの名無しさん:2009/09/07(月) 08:55:11
> self とか cls があらわになっているをの見て,
> そういうもんなのかなと.

そういうもんです。
どの名前空間なのか明示する方が分かりやすいです。

慣れないうちは __init__() に self 入れ忘れて、
"引数の数があわない"
という一見変なエラーに悩まされますが、
そのうち気にならなくなります。

どちらかというとわたしは unicode/str の
encode/decode でよく悩まされました。
こちらももうすっかり慣れましたけど。

どちらも今となっては良い思い出です。
690デフォルトの名無しさん:2009/09/07(月) 09:12:47
>>688
俺も前から第一引数のselfに疑問を持っているんだが、Guidoがimplicit selfを
絶対に導入しない理由は何なの?
ちょっとググってみたが良く分からんかった。
691デフォルトの名無しさん:2009/09/07(月) 09:15:08
>>688
selfまで省略されるとお前どっから来たんだよッて俺がキレる
692デフォルトの名無しさん:2009/09/07(月) 09:31:39
書くときは冗長に思えるけど読むときには便利、と思えるかな?>self
693デフォルトの名無しさん:2009/09/07(月) 09:53:30
694デフォルトの名無しさん:2009/09/07(月) 10:01:34
>>693
和訳。
http://coreblog.org/ats/translation-of-why-explicit-self-has-to-stay
どのくらい正確なのかはわからんが。
695デフォルトの名無しさん:2009/09/07(月) 10:39:14
>>693
それは読んで知ってたけど、論拠としては弱いと思ってた。

>>694
サンクス。これを読んで一応納得した。デコレータを使った時に困るのは分かるが、
半分以上はGuidoの思想上の問題のような気がする。本人が絶対にexplicit self
を無くさないと言っているのだから仕方ないが。
696デフォルトの名無しさん:2009/09/07(月) 10:50:10
Pythonのメソッドって関数みたいなもんでしょ?
逆にいつでもselfを使える前提にするほうが変だと思う。
引数とって値を返す、関数らしい構造で良いと思う。
逆にRubyでは関数はメソッドの亜種だから、関数でもわざわざselfが設定されてる。
Javaではそもそも裸の関数が無いのだからselfがあるのは納得。
697デフォルトの名無しさん:2009/09/07(月) 10:50:53
って、Javaはthisだった、ごめ
698デフォルトの名無しさん:2009/09/07(月) 10:51:49
>>695
>デコレータを使った時に困るのは分かるが、

自分はここがよくわからないんだけど、だれか解説たのむ。

以下引用:
> メソッドがデコレートされたときに,self引数が渡されるかどうかを知ることはできない。
> というのは,デコレータはメソッドをスタティックメソッドに変えることもあるし(この場合selfはない),
> クラスメソッドに変えることもあるし(この場合は,selfの変わりにクラスオブジェクトが渡される),
> まったく違ったことをすることもできる
> (@staticmethodや@classmethodと同じ働きをするデコレータをPythonで書くことは希だと思うが)。
> つまり,デコレータが何をするかを知り得なければ,メソッドに明示的にselfが定義されているかどうかを知ることができないのである。
699デフォルトの名無しさん:2009/09/07(月) 10:55:19
>>696
> 逆にいつでもselfを使える前提にするほうが変だと思う。
>>694のリンク先を読めば分かるが、そんなことは誰も主張してない。
700デフォルトの名無しさん:2009/09/07(月) 11:08:55
>699
しってるよw 俺の感想を言っただけ。
701デフォルトの名無しさん:2009/09/07(月) 11:13:11
見苦しい言い訳だな。妄想は自分の脳内で完結させろ
702デフォルトの名無しさん:2009/09/07(月) 11:13:57
>>698
デコレータは関数を引数にとって「何か」を返す関数。
クラス宣言の中でデコレータを使うと、デコレータの返したモノがクラスのメンバになる。
そうするとコンパイル時に「何か」を決定できないので暗黙の引数を追加できない。
703デフォルトの名無しさん:2009/09/07(月) 11:30:51
>>701
それ自体が>>699の誤読の見苦しい言い訳であり
脳内からはみ出たお前の妄想じゃんw
704デフォルトの名無しさん:2009/09/07(月) 12:10:27
>>696
classと無関係なただの関数はself書かなくていいよ
705デフォルトの名無しさん:2009/09/07(月) 12:13:24
お前は何が言いたいんだ
706デフォルトの名無しさん:2009/09/07(月) 12:15:07
基地外が暴れだしたか
707デフォルトの名無しさん:2009/09/07(月) 12:22:47
今更selfがなくなると違和感ありまくり。
708デフォルトの名無しさん:2009/09/07(月) 12:44:13
解説ありがとうございます。でもやっぱりわからない。

>>702
>デコレータは関数を引数にとって「何か」を返す関数。
>クラス宣言の中でデコレータを使うと、デコレータの返したモノがクラスのメンバになる。

↑これはわかる。↓これがわかんない。

>そうするとコンパイル時に「何か」を決定できないので暗黙の引数を追加できない。

・コンパイル時に「何か」を決定することと、暗黙の引数を追加することに、どういう関係がありますか?
・コンパイル時ではなく実行時に決定するのではだめでしょうか。
・暗黙の引数を、追加するのではなく最初から追加しておけばいいように思うけど、それだとまずいでしょうか。


だれか時間のある人教えてください!


709デフォルトの名無しさん:2009/09/07(月) 12:45:54
オナニー言語やね
710デフォルトの名無しさん:2009/09/07(月) 14:42:38
低脳はPHPがRubyをやればいいよね
711デフォルトの名無しさん:2009/09/07(月) 14:54:08
またRuby厨が荒らしてるのか
まったく・・・
712デフォルトの名無しさん:2009/09/07(月) 18:04:02
>>698
デコレータは関数を関数に変換するもの(最近はクラスもできるが)。

self必須にすることで関数とメソッドはほぼ互換になる
>foo.meth(arg) == C.meth(foo, arg)
ここで、C.methは関数扱いできる。

メソッドが関数として扱えるので、
メソッドのデコレータは関数のデコレータを作るのと同じやり方でできる。

逆にself省略できるようにしたらメソッドのデコレータを作るのが難しくなると思う。
713デフォルトの名無しさん:2009/09/07(月) 18:20:37
>>712
若干の冗長性が柔軟性を生むいい例だね。
Pythonは仕様の簡潔性が特徴のスクリプト言語なわけで。
(予約語や特殊な文法が少ない)
714デフォルトの名無しさん:2009/09/07(月) 18:33:22
>>712
厳密に言うと、デコレータの出力は関数とは限らないよね。
@property
def foo(self):...
みたいにすると、 foo は foo.__get__() というメソッドが定義されたオブジェクトになる。
715デフォルトの名無しさん:2009/09/07(月) 18:37:47
すげー今更だけどこれって紹介されてたっけ?

Python 3.0開発者ガイド:コア言語の変更点
Python 3.0の主要な言語機能
http://codezine.jp/article/detail/4051

Python 3.0開発者ガイド:数値、文字列、データ
http://codezine.jp/article/detail/4052
716デフォルトの名無しさん:2009/09/07(月) 18:41:09
>>714
いや、まぁそこら辺は厳密性を犠牲にして説明しやすくしたということで(ry
717デフォルトの名無しさん:2009/09/07(月) 19:08:14
codezineの翻訳はクソ
718デフォルトの名無しさん:2009/09/08(火) 02:33:13
>>717
神降臨
書き換えてこい
719デフォルトの名無しさん:2009/09/08(火) 09:37:04
reportlabでpdfを作ると
同じものを作っても作るたびに
出来るファイルのサイズが違うのですが
こんなもんなのでしょうか?
pdfデータに日時が入ってるのかな
720デフォルトの名無しさん:2009/09/08(火) 10:24:59
帝国ピストンはMLで質問しろよ
721デフォルトの名無しさん:2009/09/08(火) 11:47:07
動的に渡す関数(メソッド内で関数を定義して戻り値で返すような)って、
自由変数の束縛はいったいどうやるんだ?

そういうことをやりたいときはグローバル変数使うかクラス使うかしかないんだろうか……。
722デフォルトの名無しさん:2009/09/08(火) 12:31:53
やってからいえ

関数の呼び出し->local名前空間の生成->関数オブジェクト生成->local名前空間の解放->関数オブジェクト返る
関数オブジェクトから参照してる変数は上位の名前空間が消えてもクロージャな参照が残ってるからGCに回収されずに使える
723デフォルトの名無しさん:2009/09/08(火) 15:21:31
>>やってからいえ
その言葉をそのまま返そう。

外側のメソッド[A]で定義した関数内関数[B]で[A]のローカル変数aを[B]内で使用しようとしたとき、
[B]内でそのままaと書くと未定義参照エラーになる。
かといって[B]の引数で与えても値渡しなのでa自体を書き換えることはできないよね。
724デフォルトの名無しさん:2009/09/08(火) 15:32:29
python3 nonlocal
725デフォルトの名無しさん:2009/09/08(火) 15:38:48
>>> def fa():
...  a=3
...  def fb():
...   a=5
...   print a
...  print a
...  return fb
...
>>> b=fa()
3
>>> b()
5
726デフォルトの名無しさん:2009/09/08(火) 15:42:35
nonlocalをpython2.xで模倣するときは
・L=[x]みたいにリストにして、L[0]に対する操作にする
・f.x = xのように関数の属性にして、f.xに対する操作にする
727デフォルトの名無しさん:2009/09/08(火) 15:53:18
>>725

>>> def fa():
... a=3
... def fb():
... a+=5
... print a
... print a
... return fb
...
>>> b=fa()
3
>>> b()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 4, in fb
UnboundLocalError: local variable 'a' referenced before assignment
>>>
728デフォルトの名無しさん:2009/09/08(火) 16:05:07
>>726
ですよねー。

ふと調べてみたらそれについて記述したページを見つけたよ。
http://www.shido.info/py/py1_comment.html

実際にやってみたら
関数内関数[B]の中だけじゃなくて、
外側のメソッド[A]の側でも配列参照してあげないと
変更後の値にアクセスできないね。
実用にはなるんだけど不便だ……。

ともあれ、やり方がわかったよ。ありがとう。
729デフォルトの名無しさん:2009/09/08(火) 18:11:51
>>726
>>> def fa():
...  a=3
...  def fb():
...   fa.a+=5
...   print fa.a
...  print a
...  return fb
...
>>> b=fa()
3
>>> b()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 4, in fb
AttributeError: 'function' object has no attribute 'a'
730デフォルトの名無しさん:2009/09/08(火) 18:14:10
>>728-729
>>> def fa():
...  fa.a=3
...  def fb():
...   fa.a+=5
...   print fa.a
...  print fa.a
...  return fb
...
>>> b=fa()
3
>>> b()
8
>>>
731デフォルトの名無しさん:2009/09/08(火) 18:40:00
>>727 >>729-730
Pythonのニシキヘビ共が、タチコマみたいな会話してるみたいで萌えたw
732デフォルトの名無しさん:2009/09/09(水) 03:07:25
pprintを使ってて、読めなくなった日本語をそのまま、読めるようにしたい。

>>> k=dict(hoge=u"欝")
>>> k
{'hoge': u'\u6b1d'}
>>> r=pprint.pformat(k)
>>> r
"{'hoge': u'\\u6b1d'}"
>>>
これを、pprintのフォーマットを保持したまま
"{'hoge': u'欝'}"
みたいに人が読める形に、出来ませんか?
733732:2009/09/09(水) 03:22:29
自己レス
一旦unicode化して、"unicode-escape"を使えば行けた。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pprint
d=dict(hoge=u'欝')
k=pprint.pformat(d)
print k
>>>{'hoge': u'\u6b1d'}
u=unicode(k,'utf-8')
print u.decode('unicode-escape')
>>>{'hoge': u'欝'}

配列の中に入った日本語とかも効くようだ。
734デフォルトの名無しさん:2009/09/09(水) 07:20:56
関係ないけど /usr/bin/env を使うのは環境依存でハマる事があるからあまり良くない気が。
735デフォルトの名無しさん:2009/09/09(水) 12:17:23
環境依存ではまらないように設けた仕組みだろうに、
環境依存で動かないなんて本末転倒だな。
736デフォルトの名無しさん:2009/09/09(水) 12:20:34
> /usr/bin/env を使うのは環境依存でハマる

具体的に詳しく。

/usr/bin/env が無くて /bin/env とか、
PATHの設定に問題が、とか?
737デフォルトの名無しさん:2009/09/09(水) 12:30:11
/usr/local/bin/env
738デフォルトの名無しさん:2009/09/09(水) 13:07:17
>>734
おれも詳しく知りたい。

 #!/usr/bin/python
 #!/usr/local/bin/python

はよくなくて

 #!/usr/bin/env python

とするほうがいいとずっと思ってたんだけど、違うの?

739デフォルトの名無しさん:2009/09/09(水) 13:17:43
734は相当劣悪な環境を使っているに違いない。激しく同情する。
740デフォルトの名無しさん:2009/09/09(水) 13:20:49
レンタルサーバで使えない
741デフォルトの名無しさん:2009/09/09(水) 13:21:17
HOME以下に自分でビルドしたPythonをインストールしてパスを通してるとき、
/usr/bin/meld とかディストリビューションのアプリが #!/usr/bin/env 使ってて
軒並み動かなくなったなぁ。
742デフォルトの名無しさん:2009/09/09(水) 15:49:53
ターミナルから起動して使うと、なぜか出力が最後にまとめて行われてしまいます。
バッファリング周りを自分なりに調べて試してみたのですが、改善しません。
教えていただけるとうれしいです _ _

#!/usr/bin/env python -u
import sys

for line in sys.stdin:
  line = line.rstrip()
  if line:
    print "true"
  else:
    print "false"
  sys.stdout.flush()
743デフォルトの名無しさん:2009/09/09(水) 15:54:45
>>741
どうでもいいところでハマってそれを自慢したがるド変態のM夫君っているものですね。
744デフォルトの名無しさん:2009/09/09(水) 16:07:48
質問の本題とは関係ないのだが、

> #!/usr/bin/env python -u

shebang で複数の引数を渡そうとした場合の動作は移植性がない。
745デフォルトの名無しさん:2009/09/09(水) 16:36:04
>>743
でもこの場合は、単に君が、どうでもいいところで「こいつは自慢してるんだろう」と誤読する
キチガイなだけでは?
746デフォルトの名無しさん:2009/09/09(水) 16:45:37
#!/usr/bin/python

にすればいいじゃん?
747デフォルトの名無しさん:2009/09/09(水) 17:06:46
python2.6.2/python3.1.1 ○バッファされない ×バッファされる
× py2 sys.stdin
○ py2 sys.iter(stdin.readline, None)
○ py3 sys.stdin
○ py3 sys.iter(stdin.readline, None)

ファイルのf.next()は効率のために先読みするんだけど、それが原因かな。
py3でどこが変更されたかはよくわからなかった
748747:2009/09/09(水) 17:07:36
訂正。
× py2 sys.stdin
○ py2 iter(sys.stdin.readline, None)
○ py3 sys.stdin
○ py3 iter(sys.stdin.readline, None)
749デフォルトの名無しさん:2009/09/09(水) 17:08:49
出力がバッファリングされてるんじゃなくて、

> for line in sys.stdin:

これのために、入力が終わるまで実行が止まってる。

for line in iter(sys.stdin.readline, ""):

こうする。
750デフォルトの名無しさん:2009/09/09(水) 17:21:07
ああpy3kのf.__next__は単純にf.readlineを呼び出すだけみたいだ。
ドキュメントには先読みすると書いてあるけど、たぶんこれはドキュメントのバグ。
751742:2009/09/09(水) 17:36:41
>>744 ありがとうございます、勉強になります!
>>747-750
ありがとうございます、出来ました!
バッファリングの問題じゃなかったんですね、お恥ずかしい。
752デフォルトの名無しさん:2009/09/09(水) 17:49:21
>>745
変態のくせにプライドだけ高いなんてどんだけひとりぼっち君。
753デフォルトの名無しさん:2009/09/09(水) 18:00:03
>>752
今度の設定はプライドか。ってか俺は>>741ではないし。
なんか君のキャラ設定って、鏡に映った君自身っぽい。
754デフォルトの名無しさん:2009/09/09(水) 19:31:14
>>753
>なんか君のキャラ設定って、鏡に映った君自身っぽい。
755デフォルトの名無しさん:2009/09/09(水) 19:52:00
自分のキャラ設定は鏡に映った自分自身という、再帰的新感覚キャラ「なんか君」
756デフォルトの名無しさん:2009/09/09(水) 20:06:07
てっきりスルーされると思ったらそうでもなかった。
env の話はこのへん分かりやすかったです。
http://ya.maya.st/d/200606c.html#d20060625
757デフォルトの名無しさん:2009/09/09(水) 22:23:02
情けないようで逞しくもある
758デフォルトの名無しさん:2009/09/09(水) 22:45:56
俺はUnix系の環境持ってないから分からんけど

#!python

だとダメなの?
759デフォルトの名無しさん:2009/09/09(水) 23:48:18
堂々巡り開始
760デフォルトの名無しさん:2009/09/10(木) 12:56:13
>>758
#!./python
761デフォルトの名無しさん:2009/09/10(木) 13:48:03
emacsでpython編集してたら、なんか嫌になった
netbeansにしようかなあ
762デフォルトの名無しさん:2009/09/10(木) 14:44:37
>>760
えーと、どゆこと?
パスが必須ってこと?
それとも、そういう意味に解釈されてしまうってこと?
763デフォルトの名無しさん:2009/09/10(木) 15:35:12
>>761
バイナリをテキストエディタで編集しちゃダメですよ。
764デフォルトの名無しさん:2009/09/10(木) 15:40:31
slimeだったらタグファイル作らなくてもタグジャンプしてくれたり、
何も設定しないデフォルトでほとんど何でもできちゃうのに
python.elが貧弱すぎる
765デフォルトの名無しさん:2009/09/10(木) 15:44:17
うちのCentOSのPythonは
/usr/bin/python 2.3 (プレインストール)
/usr/local/bin/python 2.5 (自分でコンパイル)
が入ってる
ちなみに /usr/bin/python を 2.5 で上書きしてしまうと
yum が動かなくなるのでこうしてる
自分の shell の path は /usr/local/bin/python が先なので
#!/usr/bin/env python
と書いても大丈夫なような気がするけど
自前のスクリプトは
#!/usr/local/bin/python
で作ってるよ
766デフォルトの名無しさん:2009/09/10(木) 17:51:22
stow使ってる
767デフォルトの名無しさん:2009/09/11(金) 03:05:13
>>761
kondoはどうよ?emacsキーバインディングもある
http://www.activestate.com/komodo_edit/
768デフォルトの名無しさん:2009/09/11(金) 03:35:09
>>767
もちつけw
769デフォルトの名無しさん:2009/09/11(金) 11:01:20
こども? 近藤さん?
770デフォルトの名無しさん:2009/09/11(金) 11:35:07
Python 3 シリーズを将来使うために
今 2.3 とかで動かしているスクリプトを
メンテのたびに 2.6 に移し始めてます.
以降のためのガイドライン(from future importとか)
のページってありませんか?

出来れば日本語だとうれしい・・
771デフォルトの名無しさん:2009/09/11(金) 12:02:29
>>770
>出来れば日本語だとうれしい・・

Rubyなら日本語の情報が盛りだくさん!
772デフォルトの名無しさん:2009/09/11(金) 12:13:59
>>761
Editraはどうよ?viキーバインディングもある
http://editra.org/
773デフォルトの名無しさん:2009/09/11(金) 13:21:08
eggファイルってWindowsのPythonでも使える?
774デフォルトの名無しさん:2009/09/11(金) 16:07:04
つかえましたすまそ
775デフォルトの名無しさん:2009/09/11(金) 17:18:07
eggファイルといえば、site-packageにはいったeggが
展開もされずにそのまま動いてて、どうしてコレで動くんだろ?
って思ったことはあるな。
776デフォルトの名無しさん:2009/09/11(金) 17:26:28
Pythonのimportは拡張することが出来て、zipファイルからimportする拡張がデフォルトで入っている。
非圧縮zipだとファイルシステムからstatする時間が要らなくなるので通常ファイルのモジュールよりも
高速にロードできる。
777デフォルトの名無しさん:2009/09/11(金) 17:30:00
777
778デフォルトの名無しさん:2009/09/11(金) 18:16:23
Windows版2.5.1で試したことあるが
python.exeとpython25.dllだけあれば
後は全部zipに入れても動くよw
zipの中身適当に絞り込んだやつと、exeとdllを、未だUSBに入れてあるわ〜
779デフォルトの名無しさん:2009/09/11(金) 18:38:46
Python でメモリがつがつ使うプログラム書くと,
当然ながら仮想メモリまで食いつぶしていきますよね?
せめて自分がどれくらいメモリを使っているかくらいは
知りたいのですが,OSに依存しないメモリ使用量の
取得方法ってあるでしょうか?

メモリ上にデータをキャッシュするようなアプリを書いていて
最終的にはスラッシングが起こりだしたらキャッシュの量を
減らすというような処理を行いたいと思っています.
最終的には.
780デフォルトの名無しさん:2009/09/11(金) 19:06:40
>>OSに依存しないメモリ使用量の取得方法
ざっと探してみたけどないので君が作るといい
781デフォルトの名無しさん:2009/09/11(金) 20:26:46
easy_install は便利だけど同じパッケージの新しいバージョンをインストールしても
上書きしていくだけなんだよね?古いバージョンのアンインストールをきれいにやってから
新しいバージョンのパッケージをインストールしてくれないものだろうか?
782デフォルトの名無しさん:2009/09/11(金) 20:32:06
俺もピートン勉強すっかな
783デフォルトの名無しさん:2009/09/11(金) 22:29:18
>>772
日本語を入力するまでは満足してました。
784デフォルトの名無しさん:2009/09/11(金) 23:09:59
>>779
どれぐらいのメモリを使ったらスラッシングが始まるのかがOSに依存すると思うのですが。
785デフォルトの名無しさん:2009/09/11(金) 23:18:02
>>784
それは別にOS依存しててもいいのでは?
大事なのはスラッシングが起こったことが検知できるかどうかでしょ。
786デフォルトの名無しさん:2009/09/12(土) 00:09:53
ああいえばじょうゆう。
んなことできる訳ねーダロカス
787デフォルトの名無しさん:2009/09/12(土) 00:18:06
むしろスラッシングが起こったことをアプリ側に分からないようにするのが近代的なOS設計だと思うんだが。
それに逆らってどうする。
788デフォルトの名無しさん:2009/09/12(土) 05:36:22
>>787
スラッシングがおこってもプロセスが実行しつづけられるようにするのは近代的なOSの設計だといえるけど、
スラッシングが起こったことを検出できない、検出させないのは、別に近代的でもなんでもない。
検出できるような設計にしたら近代的でなくなるのか?そんなわけない。
789デフォルトの名無しさん:2009/09/12(土) 08:34:37
今年はじょうゆう14年か
790デフォルトの名無しさん:2009/09/12(土) 11:30:03
>>788
で? Pythonのプログラムが書きにくいからってOSの開発者に文句を言うつもりか?
791デフォルトの名無しさん:2009/09/12(土) 11:31:32
>>788
は気にくわないことすべてに文句つけそうで怖い。
792デフォルトの名無しさん:2009/09/12(土) 13:21:38
788の方がまっとうな考えだな。
にちゃんは半可通が多数決で正しい答を出すから恐いw
793デフォルトの名無しさん:2009/09/12(土) 13:31:19
>>790
間違いを指摘されたからといって怒るなよ。
なんで
> Pythonのプログラムが書きにくいからってOSの開発者に文句を言うつもりか?
ということになるんだ?意味わかんねー。
別に間違っててもいいじゃんか。指摘されたら修正すればいいだけ。
間違いを認めようとせず、ごまかすためにキレるほうが格好悪いぞ。
794デフォルトの名無しさん:2009/09/12(土) 13:39:55
まぁ、かと言って、全く非の打ち所のない言語もまだないからな。
その中でPythonはかなり使いやすい部類だと思う。
795デフォルトの名無しさん:2009/09/12(土) 13:42:47
摩訶不思議なコードを書いて俺SUGEEEしてる人が少ないのが良い
796デフォルトの名無しさん:2009/09/12(土) 14:02:05
つか当初の質問のレベルが低すぎるだけじゃね。
797デフォルトの名無しさん:2009/09/12(土) 14:04:38
>>795
摩訶不思議なコードを書くのは
そうでもしないと今流行りの機能が実装できない(C++の謎なテンプレートとか)か、
変なコードのほうが高速だったり(末尾再帰とか)
ミスが起こりにくかったりする(if(0==x){〜とか)

とか、そんな事情がある。
Pythonはそもそもそういうのが起こらないように設計されてるからなー
798デフォルトの名無しさん:2009/09/12(土) 14:06:36
最初はメモリ使用量とスラッシングの話だったのに
気づかないまま別の方向に向かっているおまいらがすき
799デフォルトの名無しさん:2009/09/12(土) 15:38:21
zope.interfaceが"要らない"ことに気付くまで1年かかった
800デフォルトの名無しさん:2009/09/12(土) 17:07:43
Windows で IDLE を起動してただ exit() と打つと
Python IDLE "The program is still running! Do you want to kill it?
っていうダイアログボックスがでてくるんだけどこれはバグ?

Windows Vista Business 上で Python 2.5, 2.6, 3.1 で確認しました
801デフォルトの名無しさん:2009/09/12(土) 18:30:00
ばかじゃないのおまえ
802デフォルトの名無しさん:2009/09/12(土) 18:54:01
>>792

x 半可通が多数決で正しい答を出す

o 半可通が多数決で出した答を正しいと思い込む
803デフォルトの名無しさん:2009/09/12(土) 18:56:27
>>792の意図するところはこっちだろう
o 半可通が多数決で「正しい」答を出す
804デフォルトの名無しさん:2009/09/12(土) 18:56:50
何をもってしてバグとするんだ?
805デフォルトの名無しさん:2009/09/12(土) 20:04:53
print __builtins__ の結果と

import __main__
print __main__.__builtins__ の結果が違うのはなぜでしょうか?

たとえば __builtins__.__dict__ はありますが
__main__.__builtins__.__dict__ はありません
806デフォルトの名無しさん:2009/09/12(土) 20:20:47
>>805
処理系のソースコード調べて考えろ。
807デフォルトの名無しさん:2009/09/12(土) 20:32:48
>>806
アドバイスありがとうございます
CPythonのコードはまだ読んでいませんがIDLEのコードを読んでいます。
lib\idlelib\AutoComple.py の中に

import __main__
中略
namespace = __main__.__dict__.copy()
namespace.update(__main__.__builtins__.__dict__)

というコードがあって、__main__.__builtins__.__dict__
の意味が分からず悩んでいます。
808805=807:2009/09/12(土) 20:52:19
>>806
たびたびすみません,原因が分かりました.
EclipseのPyDevで開発しているのですが,
デバッグモードで動かすと __builtins__ は dict です.
通常モードで動かすと __builtins__ は module です.
デバッグモードではこのような違いが随所にあったのが原因でした.

なお,PyDev のソースを読んだところたしかに pydevd.py で
そのような違いが表れていることが分かりました.
http://eclipse-pydev.sourcearchive.com/documentation/1.0.3-1ubuntu1/pydevd_8py-source.html
809デフォルトの名無しさん:2009/09/12(土) 21:19:57
なんかあさってだな
810805=807:2009/09/12(土) 21:50:14
>>809
スレを汚してしまってすみませんでした
811デフォルトの名無しさん:2009/09/12(土) 22:05:33
そういう意味ではない
812デフォルトの名無しさん:2009/09/13(日) 07:39:27
python2.6でpy2exeを使いmechanizeをimportしたスクリプトをexe化したいのですが
なにやら色んな物がないといわれます。で色んなもを入れたり、パス変更したりして
対応したのですが
dummy.Processというモジュールだけ見つかりません。
(python2.6/Lib/multipurocessingの中にprocess.pyがあったので/Lib/dummy/process.py
と置いてみましたがダメでした)
easy_installを試しましたがダメでした。
対処法もしくはdummy.Processがどこにあるかわかる方いますか?
813デフォルトの名無しさん:2009/09/13(日) 08:09:46
/Lib/dummy/process.py
->
/Lib/dummy/Process.py
814デフォルトの名無しさん:2009/09/13(日) 08:17:23
from multiprocessing.dummy import Process
815812:2009/09/13(日) 09:27:34
>>813
それでやってみましたがダメでした
>>814
自作スクリプト内ではdummy.processをimportしておらず、mechanize内でもimportされていなかったので
どのスクリプトのimportをそのように書き換えるのかわかりません

で、なぜかLib/multiprocessing/dummy/processとするとdummy.processは通りました
しかし、また新たにmultiprocessingが必要(?)でて
easy_installすると
こんどはmultiprocessing._mmap25とwin32processが必要といわれ。。。
なんだかきりがないように感じられたので諦めます
すいませんでした
816デフォルトの名無しさん:2009/09/13(日) 14:03:24
なんでPythonはRubyの文法を盗んでるのでしょうか
817デフォルトの名無しさん:2009/09/13(日) 14:04:32
具体例を挙げてください。
818デフォルトの名無しさん:2009/09/13(日) 15:00:45
defなんてそうだよね
819デフォルトの名無しさん:2009/09/13(日) 15:02:40
Rubyのが先に世に出たのに後からでたPythonが元祖語ってるという皮肉
820デフォルトの名無しさん:2009/09/13(日) 15:11:03
ttp://ja.wikipedia.org/wiki/Python
登場時期 1990年
ttp://ja.wikipedia.org/wiki/Ruby
登場時期 1995年
821デフォルトの名無しさん:2009/09/13(日) 15:11:18
>>819
アホか。Pythonの初出が1991年でRubyが1993年だろ。調べてから言え。
それから、RubyとPythonがどっちが優れてるかなんてフレームの元なのでやめたほうがいい。
用途によって使いやすいほうを使えば十分。
822デフォルトの名無しさん:2009/09/13(日) 15:14:59
>>818
いまだとBooとかScalaとかあるけど
PythonやRubyの前って関数定義にdef使ってるのってないのかな
823デフォルトの名無しさん:2009/09/13(日) 15:32:01
Assembly
BASIC
C
...
O
Python
Q
Ruby
S
...
Z
824デフォルトの名無しさん:2009/09/13(日) 15:36:47
スルー
825デフォルトの名無しさん:2009/09/13(日) 18:01:43
>>822
BASIC
826デフォルトの名無しさん:2009/09/13(日) 18:38:10
procedure hogehoge
function hogehoge
827デフォルトの名無しさん:2009/09/13(日) 18:50:59
>>825
DEF FN……懐かしい。
828デフォルトの名無しさん:2009/09/14(月) 11:25:01
Python2.5.2ですが、ユニコードって内部的には一律一文字2バイトで表現されていると思って良いのでしょうか?
C拡張でユニコードを扱う関数を作りたいんですが、Cでどのようにユニコード文字のバイト区切りを判断すれば良いのか分からなくて。
829デフォルトの名無しさん:2009/09/14(月) 11:41:21
ユニコード文字のバイト区切り?
830デフォルトの名無しさん:2009/09/14(月) 12:09:04
たぶん、Pythonでの扱い以前にUnicodeの基礎知識が不足していると思われ
831デフォルトの名無しさん:2009/09/14(月) 12:15:39
832デフォルトの名無しさん:2009/09/14(月) 12:22:32
欠けている部分があるので分からないわけですが、
基本知識はあると思ってるのですが...
そもそもUTF-8なんて話してません、ユニコードそのものの話です。
pythonにおいてunicode()で生成したユニコードのインスタンスをCレベルで操作したいという話です。
初期のUnicodeが16ビット固定長だった事は知っています。
しかし現在は21ビットにまで拡張されています。
ということは16ビットでは不足するケースがあるわけで、
原理的に固定長決め打ちというわけにはいかないはずです。
また、pythonのレベルからはunicode文字列の実バイト数を知るメソッドが見付けられませんでした。
833デフォルトの名無しさん:2009/09/14(月) 12:23:50
あ、>>832は、コードポイントをそのまま二進数で表現していると推測しています。
834デフォルトの名無しさん:2009/09/14(月) 12:28:16
また、BMPだけならば16ビット固定でも良いのでしょうが、
Pythonのunicodeobject.hやunicodectype.cには
UCS2、UCS4という文字列が両方とも含まれているので、
16ビット固定なのか32ビット固定なのか良く分かりません。
835デフォルトの名無しさん:2009/09/14(月) 12:30:07
2バイト固定や4バイト固定と知っているならそうと、どちらかなら判別方法を教えてくれればいいのに、わざわざUTF-8を持ち出して混乱させようとするなんて、ほんとににちゃんねるってのは根性悪いですね。
さようなら。
836デフォルトの名無しさん:2009/09/14(月) 12:34:52
さようなら
837デフォルトの名無しさん:2009/09/14(月) 13:10:56
>>> u=u'日本語'
>>> u
u'\u65e5\u672c\u8a9e'
>>> s=u.str()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'unicode' object has no attribute 'str'
>>> s=str(u)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
>>> l=u.split()
>>> l
[u'\u65e5\u672c\u8a9e']
>>> l=u.split(u'')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: empty separator

uを
s='\x65\xe5\x67\x2c\x8a\x9e'
または
l=[0x65,0xe5,0x67,0x2c,0x8a,0x9e]
というバイト列にしたいのですが
どのような方法があるでしょうか?
838デフォルトの名無しさん:2009/09/14(月) 13:16:32
>>> u=u'日本語'
>>> u
u'\u65e5\u672c\u8a9e'
>>> l = []
>>> for i in u:
...      n = ord(i)
...      l.extend((n >> 8, n & 0xff))
...
>>> l
[101, 229, 103, 44, 138, 158]
>>> map(hex, l)
['0x65', '0xe5', '0x67', '0x2c', '0x8a', '0x9e']
839デフォルトの名無しさん:2009/09/14(月) 13:26:59
>>834
len(u'\U00010000')
840デフォルトの名無しさん:2009/09/14(月) 13:49:25
>>838
thx!

>>> u=u'日本語'
>>> map(hex, reduce(lambda x, y: x + [ord(y) >> 8, ord(y) & 0xff], u, []))
['0x65', '0xe5', '0x67', '0x2c', '0x8a', '0x9e']
841デフォルトの名無しさん:2009/09/14(月) 13:51:27
おいおい。
sys.setdefaultencoding()で文字コードを再設定してやるのが先だろ?
むちゃくちゃやってやがるな……。
842デフォルトの名無しさん:2009/09/14(月) 13:55:33
843デフォルトの名無しさん:2009/09/14(月) 15:54:14
もう手遅れかもしれんが、Pythonとunicodeについて。
Pythonのビルドオプションで、unicodeはUTF-16とUCS4が選択できる。
デフォルトではUTF-16になっていて、これはWindowsでUnicodeファイル名を
そのまま扱えたり、.NET や JVM のUTF-16文字列と互換性があったりと、
相互運用性が求められるときに便利。

でも、一文字を1カウントで扱いたいという要求もよくあり、 .NET/JVM/WindowsAPI などとの
相互運用性が求められない分野ではUCS4が使われることもある。
たとえばFedoraやUbuntuなんかのPythonはUCS4でビルドされている。
844デフォルトの名無しさん:2009/09/14(月) 20:02:10
import sys
sys.argv.append("-n")
from idlelib.PyShell import main
main()

スクリプトの最後にこう書けばIDLEのインターフェイスを
立ち上げることができるんだけど,その時 Tk の
メニューを隠すとかできないもんかなぁ.

PyShell のコード自体に手を入れることはしたくない.
845デフォルトの名無しさん:2009/09/14(月) 22:22:58
しかし、ほんとユニコードってうんこ仕様だな。
まさに誰得だよ、これ。
846デフォルトの名無しさん:2009/09/14(月) 22:32:35
>>845
まあ欠点も色々あるが、結局Unicodeほど便利な文字コードも無いからな。
特にWebアプリはUTF-8で統一してしまうのが一番簡単。
847デフォルトの名無しさん:2009/09/14(月) 23:08:02
UTF-8はBOMをつけてはいけないという仕様にしてくれてれば殆ど困らなかったのになぁ。
848デフォルトの名無しさん:2009/09/14(月) 23:26:21
むしろ日本人ならBOMに理解を示そうよ。
一番BOMの恩恵受けるのは日本なんだし。
849デフォルトの名無しさん:2009/09/14(月) 23:42:04
UTF-16ならBELEあるからBOMの必要性がわかるが、
なんでUTF-8にBOMが必要なんだ?

いやとあるスレで、SJISやEUCテキストとの識別を容易にするために
BOM付きUTF-8を提案したのは俺だったりするのだが。
850デフォルトの名無しさん:2009/09/14(月) 23:52:04
BOMはトラブルの元って認識なんだが。
851デフォルトの名無しさん:2009/09/15(火) 00:12:02
Pythonやっぱつかえねーなー
852デフォルトの名無しさん:2009/09/15(火) 00:20:26
BOMはPython関係ねー
853デフォルトの名無しさん:2009/09/15(火) 00:37:51
やっぱRubyだなー
854デフォルトの名無しさん:2009/09/15(火) 00:38:04
UTF-8でソース書くときは
いつも付けてるが。
855デフォルトの名無しさん:2009/09/15(火) 00:45:08
>>850
BOM のせいで shebang がどうさしないとか
856デフォルトの名無しさん:2009/09/15(火) 00:49:52
PythonやPerl、Lispはやってて面白いし使える言語だがRubyだけは使いたくないな
存在価値も無いし
857デフォルトの名無しさん:2009/09/15(火) 02:53:36
Rubyしかありえねえだろ。日本だぞここは
858デフォルトの名無しさん:2009/09/15(火) 03:19:11
俺にとって四国は海外なので無問題。
859デフォルトの名無しさん:2009/09/15(火) 03:20:32
四国と何の関係があるの?
860858:2009/09/15(火) 04:05:24
松江って四国にあると勘違いしちゃった。テヘ
861デフォルトの名無しさん:2009/09/15(火) 05:39:33
松山と間違えたわけか
862デフォルトの名無しさん:2009/09/15(火) 07:48:27
>>843
ありがとうございます、助かります。
ヘッダやライブラリの何かの変数でどちらか判定できそうかと思ったんですが、
そこまでは分かりませんでした。
でも、debian sid x86_64ですが、UCS2っぽいです。
UCS2だとwchar_tを使っているみたいなのでなんとかなりそうです。
ctypes.c_wchar_pも使えそう。
863デフォルトの名無しさん:2009/09/15(火) 08:12:56
withステートメントの意義が分からない
864デフォルトの名無しさん:2009/09/15(火) 08:36:39
スレッドの同期オブジェクトをwithで使えるクラスを書いておくと、めーっちゃ便利。

def something(self):
 通常の処理

 with SynqObj(self.lock):
  クリティカルセクションな作業
 
 通常の処理
865デフォルトの名無しさん:2009/09/15(火) 09:12:14
>>862
関係ないかもしれないけど gcc で wchar_t って UCS-4 相当というか4バイトじゃなかったっけ?
866デフォルトの名無しさん:2009/09/15(火) 10:39:39
>>862
pyconfig.hに
Py_UNICODE_SIZEってのがある
867デフォルトの名無しさん:2009/09/15(火) 10:48:49
>>860-861
中国はパスポートが必要
868デフォルトの名無しさん:2009/09/15(火) 10:50:14
>>864
thx!
869デフォルトの名無しさん:2009/09/15(火) 11:40:05
あれ、with lock: ... って書けるよね。threadingでもthreadでも
870デフォルトの名無しさん:2009/09/15(火) 12:00:28
with 構文の as は何のため?
871デフォルトの名無しさん:2009/09/15(火) 12:33:02
reStructuredTextをはがしてPlain Textにするモジュールってありますか?
872デフォルトの名無しさん:2009/09/15(火) 13:18:30
>>869
ああ、864は複数のスレッドの呼び分けをログで確認するためにラッパーを介しているだけだから。キニスンナ。
普通はlockオブジェクトを直にwith呼び出ししてかまわない。

>>870
Python 2.6のリリースノート読め!
873デフォルトの名無しさん:2009/09/15(火) 13:44:36
874デフォルトの名無しさん:2009/09/15(火) 14:08:01
>>873
サンキュー。
でもドキュメント無いからソースよめってことね…。
875デフォルトの名無しさん:2009/09/15(火) 14:29:11
shebangのこと忘れてたよ
876デフォルトの名無しさん:2009/09/15(火) 14:38:22
rst2xxx -> xxx2txt みたいな経路でいけないかな?
877デフォルトの名無しさん:2009/09/15(火) 16:39:11
Pyhton3.0以降の言語仕様を日本語で解説してるサイトや書籍ってある?

3.0以降の資料が少なすぎて、勉強がさっぱり進まない
やはり英語を覚えるのが先なのか・・・
878デフォルトの名無しさん:2009/09/15(火) 17:24:52
腐るほどあるような気が
Python3.0でググるよりPython3000のほうが多いかも
879デフォルトの名無しさん:2009/09/15(火) 18:29:18
オライリーの第3版初めてのPythonの中でちょっとだけ触れられている
880デフォルトの名無しさん:2009/09/15(火) 18:37:56
>>878
うーん、一部を解説したものしか見つからない
できたら3.1までの仕様変更点を全て網羅している
解説が欲しいんだけど
881デフォルトの名無しさん:2009/09/15(火) 18:56:31
>>880
Python 3.0/3.1のリリースノートを読むのが結局一番早いよ。
Pythonはこの辺とても丁寧。

ところで、
IronPythonに向いた軽量なO/Rマッパーが見当たらなかったので
『100行ちょっとのやる気のないPython製O/Rマッパー』をベースに
実装してみたんだけど、試してみたい人います?

一応、Python/IronPython両用です。
882デフォルトの名無しさん:2009/09/15(火) 19:25:58
>>877
読んでみたけど
ttp://docs.python.org/3.1/whatsnew/3.0.html
ttp://docs.python.org/3.1/whatsnew/3.1.html
これくらいのボリュームなら自動翻訳でもかなり役立つと思うが。

# この先、仕事でプログラムするなら英語は何れ必要となるだろうからガンバレ
# 最近の翻訳は中国語から順に整備される傾向があるからな・・・
883デフォルトの名無しさん:2009/09/15(火) 19:35:40
>>866
確かにありました。
4になっていました。

>>865
sizeofで確認したところ確かに4バイトでした。
pyconfig.hの記述と一致してます。
UCS2って2バイトだと思ってましたが、
実装上はwchar_tで表現するので4バイトになってるってことなんでしょうか。
UCS4は元が4バイトですよね。
とりあえずPythonではunicode一文字は4バイトと思って良いのかな。
ほんとunicodeとその周辺のエンコーディングはよく分かりません。
884デフォルトの名無しさん:2009/09/15(火) 19:40:43
>>881
柴田さん乙
885デフォルトの名無しさん:2009/09/15(火) 19:47:36
pyconfig.hはautoconfなんかで出力してんじゃないの
886デフォルトの名無しさん:2009/09/15(火) 20:37:03
>>883
ucs4を使うかutf-16を使うかはconfigureオプションで指定して、
sizeof(wchar_t) == 4 && ucs4 の場合か、 sizeof(wchar_t) == 2 && utf-16 の場合にのみ
wchar_t を使う・・・という仕様だった気がする。
Pythonの拡張モジュールを作るときには、wchar_tを直接使うんじゃなくて、
Py_UNICODE を使う。
http://docs.python.org/c-api/unicode.html#Py_UNICODE
887デフォルトの名無しさん:2009/09/15(火) 22:00:25
>>886
あー、なるほど・・・
とりあえずLinux(gcc)ではi686でもamd64でもwchar_tがあり、
>>865さんの指摘どおり両方とも4バイトでした。

UCS4の場合にはどちらもwchar_tで4バイトですが、
UCS2(UTF-16)の場合にはwchar_tと不一致なので
unsigned shortが使われるようです。
これも両方共2バイトでした。

ということで、Linux(gcc)ではUCS2ならばunsigned shortで2バイト、
UCS4ならばwchar_tで4バイトということですね。
最近のLinuxディストリビューションではUCS4が多いらしいです。
Debian sidでもそうです。

Py_UNICODEを使った方が良いのだと思いますが、
Cで書く部分はできるだけPython独立にしておいて
ctypesからそれを利用したいので、
とりあえずwchar_tを使うことにします。

でもimmutableだからなのか、unicodeをそのまま渡して
中身を変更するような事はすぐにはできないっぽいです。
create_unicode_bufferを使うしかなさそうです。
888デフォルトの名無しさん:2009/09/15(火) 22:08:01
boostPython
889デフォルトの名無しさん:2009/09/16(水) 00:13:28
>>881
プププ、クソ本の著者乙(wwWwwwwWWWwwwWwWwww
890デフォルトの名無しさん:2009/09/16(水) 00:15:28
>>884,889
いや、当の著者の再配布許可が出たところなんだけど。
別に信じないならいいけどさ。
891デフォルトの名無しさん:2009/09/16(水) 00:37:33
884と889は低脳。
みんぱいの人に嫉妬するクソ本作者。
892デフォルトの名無しさん:2009/09/16(水) 00:52:06
またruby房の嫌がらせか
893デフォルトの名無しさん:2009/09/16(水) 09:03:24
大抵の謎の書き込みは >892 で納得できちゃうね
894デフォルトの名無しさん:2009/09/16(水) 09:47:25
Pythonスレはスルー力が有って良いと思う
895デフォルトの名無しさん:2009/09/16(水) 10:48:56
何か書こうと思ったんだけど忘れた
896デフォルトの名無しさん:2009/09/16(水) 12:09:33
逃げるなよ。
897デフォルトの名無しさん:2009/09/16(水) 12:27:59
逃げるが勝ちだな
898デフォルトの名無しさん:2009/09/16(水) 12:41:43
逃げちゃだめだ
899デフォルトの名無しさん:2009/09/16(水) 18:05:00
>>888
ひょっとしてctypesよりboost.pythonの方が良いっていう意味のレスですか?
そうでないとしても、それをきっかけにしてboost.pythonも検討してみました。

boost.pythonとしては、まだunicode文字列を引数としてどう受け渡すのか
方式が定まってないっぽいんですが、とりあえずPyObject* opとして受け取って
PyUnicode_AS_DATA(op)でconst char*として実際のデータバッファのアドレスを取り出して、
それをwchar_t*にキャストして自作のC++関数などに渡せば良さそうです。
C++ではwchar_t*として扱うPython独立なプログラムとして作成して、
引数を渡すところだけはこの変換をするために一枚かぶせる感じです。
unicodeの実装がwchar_tではない場合には困るんすが、C++だし、
とりあえずテンプレート使っておけば後々それほど困らないでしょうし。

これでunicode文字列をC++の中で書き換えることもできました。
boost.pythonって、ほんとに楽にC++とやりとりできますね。
900デフォルトの名無しさん:2009/09/16(水) 18:42:02
>>897
働いたら負けだよな。
901デフォルトの名無しさん:2009/09/16(水) 19:30:48
俺が逃げるまで逃げるなよ
902デフォルトの名無しさん:2009/09/17(木) 06:49:55
はやくにげてえーーーー
903デフォルトの名無しさん:2009/09/17(木) 11:18:04
boost.python前提になると他の言語からも使えるdllにならない
904デフォルトの名無しさん:2009/09/17(木) 11:28:50
Eclipse で Java 開発環境と mingw による C言語での開発
環境をスタンドアロンで持ち歩いてるんですが,
PyDev と Python 実行環境もそんなことができればなぁ
と思ってます.Windows 環境です.

Windows の Python はレジストリに何か登録しているよう
なんで,そういうポータブルなことは難しいでしょうか?
905デフォルトの名無しさん:2009/09/17(木) 11:54:05
http://portablepython.com/
公式からもリンクされてるからそんなに怪しいものでは無いと思う。
公式からのリンク:http://python.org/download/
906デフォルトの名無しさん:2009/09/17(木) 20:32:24
>>903
まずはC++で(Pythonその他から)独立したクラスを作っておけばいいんじゃないですか?
907デフォルトの名無しさん:2009/09/17(木) 21:24:45
unittest.TextTestRunner で複数のテストを次々と実行するトキ,
最初に発生した例外でストップしてほしいんですが,できますか?
908デフォルトの名無しさん:2009/09/18(金) 05:57:29
emacsのpython-mode.elで、ユニコードリテラル中にエスケープせずに文字を書くのと、
エスケープコードを書くのとで、py-execute-bufferの際に別物にされてしまう。
(素のバイトストリング扱いになるらしい)

C-x C-f foo.py
#!/usr/bin/python
# -*- mode: python-mode; coding: utf-8 -*-

print u'あ' == u'\u3042'

C-c C-c => False

$ python foo.py
True

どうしたものか。
909デフォルトの名無しさん:2009/09/18(金) 08:15:29
sys.getdefaultencoding()
910908:2009/09/19(土) 04:44:02
sys.getdefaultencoding() は環境によらず ascii を返すので原因は違うところにあるようだ。
ちなみに locale.getdefaultlocale() はいつでも ('en_US', 'UTF8') が帰る。
C-c ! で ipython を出しておいて C-c C-cすれば普通にターミナルからやるのと同じ挙動に
なったので、それでいいことにしたわ。
911デフォルトの名無しさん:2009/09/19(土) 09:48:33
循環参照してしまうとそのオブジェクトはプロセスの
終了まで解放されない?

class ClassA(object):
    def __init__(self):
        import sys
        sys.stderr.write("ClassA.__init__(...) %s\n" % str(self))
    def __del__(self):
        import sys
        sys.stderr.write("ClassA.__del__(...) %s\n" % str(self))


class ClassC(object):
    def __init__(self):
        import sys
        sys.stderr.write("ClassC.__init__(...) %s\n" % str(self))
        self.a1 = ClassA()
        self.a2 = ClassA()
        self.a1.a2 = self.a2
        self.a2.a1 = self.a1

    def __del__(self):
        import sys
        sys.stderr.write("ClassC.__del__(...) %s\n" % str(self))

これで ClassC のインスタンスを作ると,
ClassA.__del__ は永遠に呼び出されない.
せめてプロセスの終了時には呼び出されると思ってた.
912デフォルトの名無しさん:2009/09/19(土) 09:57:26
ふうむ,ガベージコレクタが __del__ の
呼び出し順を決定できないからか.
そもそもデストラクタがあるのに循環参照が
起きるような設計をするなということだよな.
913デフォルトの名無しさん:2009/09/19(土) 10:45:10
>>908
C-x C-f foo.py
#!/usr/bin/python
# -*- mode: python-mode; coding: utf-8 -*-

print u'あ' == u'\u3042', hex(ord(u'あ')), u'あ'.encode('utf8')

C-c C-c => False (どうなりますか?)
914908:2009/09/19(土) 17:52:16
>>913
C-c C-c => False 0x20
と出ます。u'あ'.encode('utf8') はエラーも出さずに飲み込まれてしまっているみたい。ちなみに
print u'あ’ -> なにも表示されない、
print u'\u3042' -> UnicodeEncodeError: 'ascii' codec can't encode character u'\u3042'...
となる。あらかじめC-c ! でipythonのバッファを出しておけばこれらの問題は起きない。
915デフォルトの名無しさん:2009/09/19(土) 19:40:27
>>911
そういうのって明示的に循環参照削除するメソッド作って呼び出すもんじゃないの?
と最近Pythonに興味もったPerl使いが言ってみる。

Perlだと参照を弱める(リファレンスカウント減らす)方法あるけど、
Pythonだと似たような方法有るのかな。
916デフォルトの名無しさん:2009/09/19(土) 19:57:07
del
917デフォルトの名無しさん:2009/09/19(土) 19:58:55
boost だと weak_ref とかの弱参照なスマートポインタがあるよな
918デフォルトの名無しさん:2009/09/19(土) 20:00:17
Pythonにもweak_refあるけど、やっぱり明示的に参照切るほうが多いかな。
weak_refは余計なコストかかるし。
919デフォルトの名無しさん:2009/09/19(土) 20:08:20
>>915
http://www.python.jp/doc/2.4/ext/refcounts.html

これ、絶対入ってるよね。
(文中の『デフォルトでは入っています』に対するレス)
920デフォルトの名無しさん:2009/09/19(土) 22:27:55
infopile思ったより本格的だった
朝から使ってたけど普通に常用メーラで行けそう
921デフォルトの名無しさん:2009/09/19(土) 22:40:02
C++は元々が自前でメモリ管理しなきゃいけないから余計にああいうの欲しくなるけど
最低限で済むPythonではやはり最低限で良いと思うやね
922デフォルトの名無しさん:2009/09/19(土) 22:54:52
>>920
宣伝乙
923デフォルトの名無しさん:2009/09/19(土) 23:47:44
>>920
Windowsだけなんだっけ?
924デフォルトの名無しさん:2009/09/20(日) 23:35:03
>>> L=[]
>>> L[:]
[]
>>> L[:]=[1,2,3]
>>> L
[1, 2, 3]

リストの初期化がなんか違和感が…
納得できん
925デフォルトの名無しさん:2009/09/20(日) 23:43:30
2つのクラス同士でクラスオブジェクト同士を相互参照したい場合、
class Topic:
 child = Reply

class Reply:
 parent = Topic

なんて書いてたら、当然2行目で未定義識別子の参照でエラーになる。
これって、2つの定義を相互参照なしに定義した後で、classmethodを明示的に呼び出して
動的に結びつけるしか方法がないよね?

用途としては自作の軽量ORMライブラリを作ってるところで、
オブジェクト化したテーブル同士の親子関係を表現しようとしている。
で、例えばTopicから連結されてるReplyのインスタンスが欲しいので何らかの形で事前に教えておく必要がある、と。
926デフォルトの名無しさん:2009/09/20(日) 23:51:30
class Topic:
    pass

class Reply:
    pass

Topic.child = Reply
Reply.parent = Topic
927デフォルトの名無しさん:2009/09/21(月) 00:01:17
>>924
それ、初期化じゃなくて代入だから・・・
928デフォルトの名無しさん:2009/09/21(月) 00:38:33
929デフォルトの名無しさん:2009/09/21(月) 01:38:05
>>924
の思考に違和感が
930デフォルトの名無しさん:2009/09/21(月) 01:40:50
class Topic:
 children = []

class Reply:
 parent = Topic

Topic.children.append(Reply)
931デフォルトの名無しさん:2009/09/21(月) 09:21:42
>>924
入門書嫁。
932デフォルトの名無しさん:2009/09/21(月) 09:34:48
>>924は何に対して違和感を感じているんだろう
配列が伸び縮みすることになのか
要素の範囲を指定して代入することになのか
L[:] ってなんかきんもー、なのか
933デフォルトの名無しさん:2009/09/21(月) 10:42:30
>>> l=[9,8,7,6]
>>> l
[9, 8, 7, 6] <- 普通
>>> l[1:]=[3,4,5]
>>> l
[9, 3, 4, 5] <- 普通
>>> l[1:]=[2,1]
>>> l
[9, 2, 1] <- きもい
>>> l[:]=0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only assign an iterable <- 微妙
>>> l[:]=[0,0]
>>> l
[0, 0] <- きもい
934デフォルトの名無しさん:2009/09/21(月) 10:47:29
[1:]=の結果に違和感覚えないのに[:]の結果に違和感覚える理由が解らん
935デフォルトの名無しさん:2009/09/21(月) 11:08:09
>>933
スライスの代入で左辺と右辺のリストの要素数が
一致していなくても構わない(右辺にあわせて伸び縮みする)のが気持ち悪いってこと?
だったらリンクリストでも勉強すれば違和感なくなるんじゃないかね
936デフォルトの名無しさん:2009/09/21(月) 13:53:54
>>934
>>> l[1:]=[2,1]
>>> l
[9, 2, 1] <- きもい
937デフォルトの名無しさん:2009/09/21(月) 14:02:18
だから入門書読めよ低脳。
938デフォルトの名無しさん:2009/09/21(月) 14:14:12
バカだなあ。
939デフォルトの名無しさん:2009/09/21(月) 14:31:56
つーか、それがキモイならスライスの意味ないだろとw
940デフォルトの名無しさん:2009/09/21(月) 17:05:35
>>> l[1:]=[3,4,5]
>>> l
[9, 3, 4, 5] <- 普通
>>> l[1:]=[2,1]
>>> l
[9, 2, 1] <- きもい

このきもいと普通の違いがわからん
要素が1個減ったらきもい?何か見落としてるんだろうか・・・
941デフォルトの名無しさん:2009/09/21(月) 17:42:29
C言語の配列かなんかと勘違いしてるんじゃね?
抽象度の高い操作を理解できないとか
942デフォルトの名無しさん:2009/09/21(月) 18:08:31
スライスの代入ってあんまりやんないからどうでもいいや
943デフォルトの名無しさん:2009/09/21(月) 20:57:09
python の配列って中身はリストなんですか?

と思ったら
L=[]
で L に代入してるな orz
944デフォルトの名無しさん:2009/09/21(月) 21:06:25
変数名がL,M,Nではじまる場合にはリストなんだよ。
945デフォルトの名無しさん:2009/09/21(月) 21:12:52
>>941
あぁ。3要素のときはreplaceに見えるからきもくないのか
よくわかったありがとう
946デフォルトの名無しさん:2009/09/21(月) 21:13:33
947デフォルトの名無しさん:2009/09/21(月) 21:30:13
>>943
質問の意味がよくわからないが、
Pythonのリストはメモリ上の連続領域を利用した配列型のリスト
(C++のstd::vectorやJavaのArrayListの類)

いわゆる連結リストではないので途中に挿入する操作には弱い。
948デフォルトの名無しさん:2009/09/21(月) 23:45:44
>>942
直感的に思えないから、俺もあまり使わないな。
冗長でも、新しいリストを作ってしまうな
949デフォルトの名無しさん:2009/09/22(火) 02:10:54
>>948

>>947 の言う通りなら新しく作りなおしてもそんなに速度は変わらなさそうですね
950デフォルトの名無しさん:2009/09/22(火) 10:35:41
実装は連続メモリ型かも知れんが
表向きリストのような動作をするように設計されてんだろうな
951デフォルトの名無しさん:2009/09/23(水) 12:59:51
from VideoCapture import Device

cam = Device()
cam.saveSnapshot('image.jpg')
952デフォルトの名無しさん:2009/09/25(金) 23:25:35
python2.5がsnow leopardでコンパイルできん・・・
だれか助けて
953デフォルトの名無しさん:2009/09/26(土) 00:04:12
いやです
954デフォルトの名無しさん:2009/09/26(土) 00:46:26
誰か、wxPythonの開発にオススメのIDEの候補があったら教えてほしい。
今まで試したのは
boa-constructorとwxGladeとPyCrust
普段visual studioとかXCode使ってるんで上で列挙した環境は微妙すぎて
使う気がおきない
955デフォルトの名無しさん:2009/09/26(土) 02:17:55
XRCed
956デフォルトの名無しさん:2009/09/26(土) 02:56:21
ついでにtkのGUIデザイナとかお願いします
957デフォルトの名無しさん:2009/09/26(土) 08:51:59
age ume
958デフォルトの名無しさん:2009/09/27(日) 16:16:42
hage
959デフォルトの名無しさん:2009/09/29(火) 17:33:52
Pythonレベルでオブジェクトのリファレンスカウントを調べる方法はありますか。
960デフォルトの名無しさん:2009/09/29(火) 18:12:06
>>959
sys.getrefcount()
961デフォルトの名無しさん:2009/09/29(火) 18:37:35
だよもん
962デフォルトの名無しさん:2009/09/29(火) 18:51:21
>>960
ありがとうございました
963デフォルトの名無しさん:2009/09/29(火) 19:56:30
pywin32の日本語ドキュメントとかないですか?
ヘルプは役に立ちません
964デフォルトの名無しさん:2009/09/29(火) 19:59:25
ちょっと質問なんだけど
E.coliの和名と属名を答えたいんだけど
どう書けばいいかな。
965デフォルトの名無しさん:2009/09/29(火) 20:36:44
>>963
Cとかでwin32api使える人向けだろうアレは
966デフォルトの名無しさん:2009/09/30(水) 07:28:39
>>964 大腸菌に詳しい人に訊いてください

ところで,あるモジュール ModuleA をインポート
使用としていて,ModuleA.py が自分と同じディレクトリにあれば
import ModuleA とできますよね?

同じモジュールがフルパス(?)で
import a.b.c.ModuleA としてもインポートできるとき,
この二つは異なるモジュールとして扱われるのでしょうか?
967デフォルトの名無しさん:2009/09/30(水) 07:31:53
>>966
同じモジュールなら同じモジュール。

print(ModuleA is a.b.c.ModuleA)
として確かめてみたら?
968デフォルトの名無しさん:2009/09/30(水) 07:55:09
import AAA.ModuleA
import ModuleA

a1 = AAA.ModuleA.ClassA()
assert isinstance(a1, AAA.ModuleA.ClassA)    #OK
assert isinstance(a1, ModuleA.ClassA)        #NG
assert AAA.ModuleA.ClassA is ModuleA.ClassA  #NG

ちなみに

a1 = AAA.ModuleA.ClassA()
a2 = ModuleA.ClassA()
print type(a1)   → <class 'AAA.ModuleA.ClassA'>
print type(a2)   → <class 'ModuleA.ClassA'>
969デフォルトの名無しさん:2009/09/30(水) 07:57:58
src/AAA/ModuleA
src/AAA/ModuleB

となっていて PYTHONPATH には src/ が通っています.
上のコードは ModuleB から ModuleA を使っています.

import AAA.ModuleA でインポートされるモジュールと
import ModuleA でインポートされるモジュールは
ファイルは同じですが異なるものとして扱われているようなのですが・・
970デフォルトの名無しさん:2009/09/30(水) 09:50:07
sys.path.append('a.b.c')
import ModuleA
971デフォルトの名無しさん:2009/09/30(水) 09:51:30
>>969
で?
自分の書いたモジュールをカレントディレクトリでアクセスしようが
特定の上位ディレクトリからアクセスしようが自分の責任なわけで、
両方の方法でアクセスしてるなら自分で最後まで責任を取るべきなんだが。
972デフォルトの名無しさん:2009/09/30(水) 10:37:28
>>968は今までしらんかった。さんくす。 by 967


>>969
どっちかに統一して使いましょう、ということなんだろうね
973デフォルトの名無しさん:2009/10/01(木) 01:53:02
root権限のないパソコンでpythonのパッケージはどのディレクトリにいれてますか?
~/lib/site-packages
とか?
974デフォルトの名無しさん:2009/10/01(木) 06:36:03
root権限のない場合はでvirtualenvとpipを使ってる
975デフォルトの名無しさん:2009/10/01(木) 06:37:20
s/はで/は/
976デフォルトの名無しさん:2009/10/01(木) 19:28:03
/usr/bin/python
/usr/lib/python2.6
/usr/lib/python2.6/site-packages

/home/hoge/bin/python
/home/hoge/lib/python2.6
/home/hoge/lib/python2.6/site-packages
977デフォルトの名無しさん:2009/10/03(土) 01:33:05
py2exeでexeにした後は
なにか適当なインストーラでパッケージング?
python流のなにか方法がある?
978デフォルトの名無しさん:2009/10/03(土) 02:46:20
>>977
Python流のやり方ってのはないな
↓でも使ってみたら
ttp://pypi.python.org/pypi/innosetup
979デフォルトの名無しさん:2009/10/03(土) 09:58:05
GUIなアプリケーションは
wxPythonがいいのかgtkがいいのか悩む

Tkはまぁ最初から入ってるしIDLEでも使ってるから
無難なのかもしれないけどなんか古臭い見た目が
980デフォルトの名無しさん:2009/10/03(土) 10:03:42
っPyQt
981デフォルトの名無しさん:2009/10/03(土) 14:19:15
色んなPythonアプリで使われてるからwxがいいんじゃない
982デフォルトの名無しさん:2009/10/03(土) 14:44:42
>>979
それはなんという偏見!
Tcl/Tkでは各OSの最新の見た目に合わせられるよう対応が追加されてる。
Python/TKが古いだけ。
対応? 知らんがな。
983デフォルトの名無しさん:2009/10/03(土) 15:15:05
Turtleとか地味に改良してるくせに
中の人はGUIやらせたくないんだろうか
984デフォルトの名無しさん:2009/10/03(土) 19:02:07
別ブランチでttkの開発されてるよ。
メインストリームに統合されるのはいつになるかわからないけど、早ければPython 2.7に
でも載るかもね。
985デフォルトの名無しさん:2009/10/03(土) 19:20:39
986デフォルトの名無しさん:2009/10/03(土) 20:55:12
別ブランチでttkの開発されてるとか、そういう情報はどこで入手すればいいの?
公式のML購読すればいいの?
987デフォルトの名無しさん:2009/10/03(土) 22:14:31
750 デフォルトの名無しさん [sage] Date:2009/10/02(金) 02:35:44  ID: Be:
    質問です。
    環境はvine5.0 Python 2.5.4 です。

    >>> from turtle import *
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    ImportError: No module named turtle

    と出ました。
    turtleが入ってないということでしょうか?
    またその場合どうすればいいのでしょうか?
    どうかご教授お願いします。

751 デフォルトの名無しさん [sage] Date:2009/10/02(金) 04:17:28  ID: Be:
    Tkinterが入ってないんじゃないか
    vine tkinter でぐぐってみて

752 デフォルトの名無しさん [sage] Date:2009/10/02(金) 14:49:59  ID: Be:
    >>751
    できました!
    ありがとうございました!

988デフォルトの名無しさん:2009/10/03(土) 23:27:05
http://code.google.com/p/python-ttk/wiki/Screenshots
どっかにWindowsやMacでのスクリーンショットもねーかな。
989デフォルトの名無しさん:2009/10/03(土) 23:33:33
Windowsの方はPythonが2.6になった時
見た目がネイティブ寄りに変更になった覚えがあるのだが。
990デフォルトの名無しさん:2009/10/04(日) 04:45:24
>>984, >>988
ttk なんてものがあるんだね。情報サンクス。

Python 3.1 には入っていて使える状態だった。
http://docs.python.org/dev/py3k/library/tkinter.ttk.html
import tkinter as tk とする代わりに
import tkinter.ttk as tk とすればいいみたい。簡単。

988のサイトの theming.py を 2to3 に通して XP 上の Python 3.1 で実行してみた。
http://www1.axfc.net/uploader/Img/so/61151.png
ちゃんと XP ライクな見た目になった。すげーすげー。
991デフォルトの名無しさん:2009/10/04(日) 06:11:10
これってネイティブのコントトールを使ってるんだよね?
まさか似せたウィジェットを頑張って全OSについて
用意しているわけじゃないよね?
992デフォルトの名無しさん:2009/10/04(日) 06:19:35
ネイティブのものを使っているみたいだね
http://tktable.sourceforge.net/tile/screenshots/windows.html

ところで Python 2.6 では使える?
993デフォルトの名無しさん:2009/10/04(日) 11:14:43
994デフォルトの名無しさん
>>993
THX
あっけなく動いた。