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

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

Pythonのお勉強 Part35

1 :デフォルトの名無しさん:2009/09/21(月) 21:11:49
Pythonオフィシャルサイト
http://www.python.org/
日本Pythonユーザ会
http://www.python.jp/Zope/
まとめWiki
http://python.rdy.jp/
関連スレ
http://find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python
前スレ
http://pc12.2ch.net/test/read.cgi/tech/1246454599/

2 :デフォルトの名無しさん:2009/09/21(月) 21:12:40
       ┌─┐
       │●│
       └─┤
       _   ∩
      ( ゚∀゚)彡
    ┌─┬⊂彡
    │●│ おっぱい!おっぱい!
    └─┘      おっぱい!おっぱい!



3 :デフォルトの名無しさん:2009/09/21(月) 21:13:22
このそっけなさが水滴クオリティ

4 :デフォルトの名無しさん:2009/09/21(月) 21:14:37
>1



5 :デフォルトの名無しさん:2009/09/21(月) 21:48:18
いまだに何て読むのか知らない

6 :デフォルトの名無しさん:2009/09/22(火) 11:38:08
ぴちょん

7 :デフォルトの名無しさん:2009/09/22(火) 11:40:29
パイゾン

8 :デフォルトの名無しさん:2009/09/22(火) 21:52:04
質問!

win xpでpython3.1.1を使っているんだけど、UFT-8のファイルの読み込み方について質問です。
import codecs
codecs.open(path, "r", "utf_8").read()
だと、BOMがついてきちゃうんだけど、自動でそぎ落としてくれたりはしないのですか?

9 :デフォルトの名無しさん:2009/09/22(火) 22:23:10
utf_8_sig

10 :デフォルトの名無しさん:2009/09/22(火) 22:50:51
>>9
どうもありがとう!

11 :デフォルトの名無しさん:2009/09/23(水) 20:11:29
ググっても分からんかったので・・・

Popen4とかでpythonのプログラムから以下のようなスクリプトを呼び出す時、

#!/bin/bash
echo "a"
sleep 1
echo "b"
sleep 1
echo "c"

python側では呼び出したスクリプトの実行が完了するまで、スクリプトの標準出力の
内容を取得出来ないんだけど(スクリプト実行完了後に3行まとめて取得してしまう)、
スクリプトが1行出力するたびにpython側で確実に1行ずつ取得する良い方法ってありますか?

ここ見れ、みたいな良いリファレンスとかでも助かります。

12 :デフォルトの名無しさん:2009/09/23(水) 20:47:08
タイムリーだなあ
http://www.python.org/dev/peps/pep-3145/



13 :デフォルトの名無しさん:2009/09/24(木) 11:57:21
オブジェクトが持ってる属性って全部 __dict__ に入ってます?
__slots__ に書いてある場合は違うのかな
たとえば Exception のインスタンスって message っていう
メンバを持ってますが, e.__dict__ にはそれらしきものが見当たらない.

e = Exception("ahoaho")
print e.message
print e.__dict__

としてみて不思議だなぁと

14 :デフォルトの名無しさん:2009/09/24(木) 18:53:38
x が何かのオブジェクトだとして
print x とすると単に

<type 'instance'>

とだけ表示されるのは何なんでしょうか?
どのクラスのインスタンス、というようなことは分からないのでしょうか?

15 :デフォルトの名無しさん:2009/09/24(木) 18:58:00
たとえば
http://www.python.jp/doc/2.5/tut/node10.html#SECTION0010400000000000000000
なんかの例を見ても

>>> try:
... raise Exception('spam', 'eggs')
... except Exception, inst:
... print type(inst) # 例外インスタンス

<type 'instance'>

となっています。print type(inst)では Exception か
その派生クラスの名前が表示されると思うのですが。


16 :デフォルトの名無しさん:2009/09/24(木) 19:03:24
新旧スタイルのクラスの違い?

17 :デフォルトの名無しさん:2009/09/24(木) 20:13:42
>>15 を 2.5.4, 2.6.2 で試したら <type 'exceptions.Exception'> になった
チュートリアルのほうが間違ってるんじゃない?

18 :デフォルトの名無しさん:2009/09/24(木) 20:19:20
最新のやつは合ってるな。
http://docs.python.org/tutorial/errors.html#handling-exceptions

19 :デフォルトの名無しさん:2009/09/24(木) 23:58:34
python.jpは糞

20 :デフォルトの名無しさん:2009/09/25(金) 00:18:53
でも、2.5のやつは間違ってる
http://www.python.org/doc/2.5/tut/node10.html#SECTION0010300000000000000000

21 :デフォルトの名無しさん:2009/09/25(金) 03:57:33
みんなipython.elのipython-completeって使えてる?
オラの環境だとEmacs内で起動されたIPythonが入力をエコーバックしてる上にstdout / stderr にわけて
出力してるせいかelisp側に変換候補のリストがわたってない
(かわりにipython-completion-command-stringをもとに作られたコマンドのエコーがわたる)らしく、
ソースファイルバッファでも*Python*バッファでも補完できないんだが。

22 :21:2009/09/26(土) 08:43:28
>>21は自決したンだが・・(原因はちょと違った。適当なこといってすまんこ)
あまりほめられたものでないバッドハックなのでメンテナに送る気になれん。
欲しい人いる?anything-ipython でassertion failed: header-pos 出るのもなおるよ。
http://groups.google.com/group/gnu.emacs.help/msg/2d74f6791f94e92b
↑こんなやつ

23 :デフォルトの名無しさん:2009/09/26(土) 08:54:06
Noop 上で動作する NooPython 公開

24 :デフォルトの名無しさん:2009/09/26(土) 09:14:41
∧||∧

25 :デフォルトの名無しさん:2009/09/26(土) 15:06:42
>>12
遅くなってしまったが、ありがとう。

質問した日の前日にpython始めたもんだから、そこまで見てなかったわ。
改善されるにしてもsubprocess使わんとだめそうね。サンクス。


26 :デフォルトの名無しさん:2009/09/26(土) 15:27:12
前スレ消費しろ

27 :デフォルトの名無しさん:2009/09/30(水) 11:26:55
逃げるなよ。

28 :デフォルトの名無しさん:2009/10/03(土) 10:23:21
spam
spam
spam
sparm
spam

29 :デフォルトの名無しさん:2009/10/04(日) 14:24:54
sperm?

30 :デフォルトの名無しさん:2009/10/05(月) 09:12:29
プログラミングを久しぶりに始めようと思う
25年ぐらい前MZ-80でBASICとマシン語サブルーチン組んでた
20年前はQuickCでBBS全盛期で今で言う専ブラを作ってた

Windowsきてからプログラミングさっぱりだったが
いろいろ探してみたらここにたどり着いたよー!!

まず何から始めよう?

31 :デフォルトの名無しさん:2009/10/05(月) 10:44:42
python

32 :デフォルトの名無しさん:2009/10/05(月) 11:09:45
Perl(OOライクなモジュールを作れるくらい)と
C#(自分用のWinアプリやクラスライブラリを作れるくらい)の経験のやつが
van Rossumのチュートリアルを一通りやったとして
次におすすめな1冊を教えて。
公式のドキュメントつーのはもっともだけど、書籍限定で。
日本語のほうがうれしい。

33 :デフォルトの名無しさん:2009/10/05(月) 11:38:47
>>32
Perlベストプラクティスみたいなのをご所望なら、オライリーの「Pythonクックブック」がいい。ちょっと古いけど。
ただ、32のスペックなら、いきなりフレームワークやGoogle AppEngineの解説書


34 :デフォルトの名無しさん:2009/10/05(月) 11:42:39
切れたので再送。

Perlベストプラクティスみたいなのをご所望なら、オライリーの「Pythonクックブック」がいい。ちょっと古いけど。
ただ、32のスペックなら、いきなりフレームワークやGoogle AppEngineの解説書に取りかかってもいいと思う。
手軽なのはDjangoかGoogle AppEngineで、実はPythonってすごいんじゃね?というのを知りたかったらZopeの本を読むといい。


35 :デフォルトの名無しさん:2009/10/05(月) 12:30:12
Jythonプログラミングがいいに決まってるだろ

36 :デフォルトの名無しさん:2009/10/05(月) 12:36:10
平日はサーバでJavaで書いてて
日曜はCPythonで遊んでるけど
まだJythonは使ったことなかったな

from java.io import *

とか魅力的すぎる

37 :デフォルトの名無しさん:2009/10/05(月) 12:55:26
>>34
早速d。参考にしつつ書店いってみます。
ひとまずクックブックを尼でなか見!してみたけど
フレームワーク、GAE、Zopeへ進むにしても持っててよさそうな内容ぽいね。

>>35
俺へのレスでいいのかな。dankogaiにも好評なようだね。
立ち読みしてみて考えます。

38 :デフォルトの名無しさん:2009/10/05(月) 13:57:11
Google AppEngineの解説書
w

39 :デフォルトの名無しさん:2009/10/05(月) 14:01:01
32の将来が心配(www

40 :デフォルトの名無しさん:2009/10/05(月) 14:04:34
WindowsでPythonって実行形式になんない??

41 :デフォルトの名無しさん:2009/10/05(月) 14:05:50
クックブックなら英語の方がいいと思う

42 :デフォルトの名無しさん:2009/10/05(月) 14:10:57
py2exe

43 :デフォルトの名無しさん:2009/10/05(月) 16:15:30
dankogaiにも好評
w

44 :デフォルトの名無しさん:2009/10/05(月) 18:44:43
前スレ埋まる前に落ちたんかな

45 :デフォルトの名無しさん:2009/10/06(火) 10:52:29
. 1. HTML    で検索した結果 1〜10件目 / 約5,040,000,000件
. 2. PHP      で検索した結果 1〜10件目 / 約2,970,000,000件
. 3. Java......   で検索した結果 1〜10件目 / 約 835,000,000件
. 4. Forth.    で検索した結果 1〜10件目 / 約 323,000,000件
. 5. Ruby..    で検索した結果 1〜10件目 / 約 275,000,000件
. 6. perl.....    で検索した結果 1〜10件目 / 約 245,000,000件
. 7. Python...   で検索した結果 1〜10件目 / 約 204,000,000件
. 8. pascal...   で検索した結果 1〜10件目 / 約 170,000,000件
. 9. Delphi    で検索した結果 1〜10件目 / 約 127,000,000件
10. VisualBasic...で検索した結果 1〜10件目 / 約 121,000,000件
11. lisp...      で検索した結果 1〜10件目 / 約.  26,700,000件
12. fortran     で検索した結果 1〜10件目 / 約.  21,300,000件
13. COBOL    で検索した結果 1〜10件目 / 約.  18,500,000件
14. HSP      で検索した結果 1〜10件目 / 約.  12,300,000件
15. FreeBasic.. で検索した結果 1〜10件目 / 約   6,320,000件
16. Tcl/Tk.     で検索した結果 1〜10件目 / 約   4,940,000件
17. QBasic     で検索した結果 1〜10件目 / 約   4,190,000件
18. VisualC....  で検索した結果 1〜10件目 / 約   1,360,000件
19. DarkBASIC. で検索した結果 1〜10件目 / 約   1,320,000件
20. BasicStudio で検索した結果 1〜10件目 / 約    304,000件
21. N88basic.   で検索した結果 1〜10件目 / 約    215,000件
22. f-basic     で検索した結果 1〜10件目 / 約    109,000件
23. ActiveBasic で検索した結果 1〜10件目 / 約.     89,800件
24. 99BASIC.... で検索した結果 1〜10件目 / 約.     11,500件

3Dprogramming で検索した結果 1〜10件目 / 約794,000件
2Dprogramming で検索した結果 1〜10件目 / 約. 57,400件

intel で検索した結果 1〜10件目 / 約729,000,000件
amd で検索した結果 1〜10件目 / 約355,000,000件

46 :デフォルトの名無しさん:2009/10/06(火) 11:36:13
ドカタ仕事の穴掘り士としては有能そうだが、頭は悪そう
そんなかんじ

47 :デフォルトの名無しさん:2009/10/06(火) 11:36:38
コピペで通報するぞゴルァ

48 :デフォルトの名無しさん:2009/10/06(火) 13:33:51
Forthがその位置にあるってことは一般名詞も入ってるんだろうな
するとRubyなんかもかなり割り引いて数えるべきだな

49 :デフォルトの名無しさん:2009/10/06(火) 13:33:55
tkinterってpython本体をmake installしたら
一緒に入るものなの?

50 :デフォルトの名無しさん:2009/10/06(火) 14:07:16
なんとかdevとか、なんとかdevelとかを入れなきゃだめ

51 :デフォルトの名無しさん:2009/10/07(水) 10:55:50
ipython って for とか def とかの
複数行の入力を履歴↑で呼び出せるんだけど
そのまま return すると IndentationError になっちゃうのって
何がいけないの?
下の行で ^A すると一行目の先頭に飛ぶ辺り、
行の構造がどこかに消えちゃってる???
ipython 0.9.1 ってのを使ってます

In [1]: for i in range(3):
...: print i
0
1
2
In [2]: for i in range(3): # 履歴呼び出し
print i
------> print(i)
------------------------------------------------------------
IndentationError: expected an indented block (<ipython console>, line 2)



52 :デフォルトの名無しさん:2009/10/07(水) 14:11:59
うちはならない

53 :デフォルトの名無しさん:2009/10/07(水) 17:58:03
うちはならへんわ

54 :デフォルトの名無しさん:2009/10/07(水) 19:58:50
sage便利だね
自分で作ったpythonのプログラムと組み合わせる方法がよくわかんないけど

55 :デフォルトの名無しさん:2009/10/07(水) 20:00:12
python3.xで画像編集できるライブラリってないの?

56 :デフォルトの名無しさん:2009/10/07(水) 20:30:04
ctypesでOpenCV使えばいい

57 :デフォルトの名無しさん:2009/10/07(水) 22:09:35
IPLだかPILだかってライブラリあった気がする

58 :55:2009/10/07(水) 22:21:38
>>56-57
レスありがとう。
PILは見つけたけど、2.x系のバイナリしか見当たらなかったのよ。
ctypesは調べること多そうで大変なので、やめておきます。

一部の処理だけ、他のスクリプトに投げることにしました。

59 :デフォルトの名無しさん:2009/10/08(木) 05:34:23
ctypes食わず嫌いで避けるなんてもったいなさすぎ

60 :デフォルトの名無しさん:2009/10/08(木) 07:04:55
初めてのPython第3版で、P.336の
「関数内でなく、関数の外側、つまりモジュールあるいは対話型コマンドラインの
トップレベルを基準にすれば、モジュール全体のスコープ(グローバルスコープ)と
ローカルスコープは同一になる。」
って説明が分かりません。
詳しく教えてください。

61 :デフォルトの名無しさん:2009/10/08(木) 07:26:51
原文は、
「When you assign a name outside a function (i.e., at the top level of
a module file, or at the interactive prompt), the local scope is the same
as the global scope -the module's namespace.」
です。


62 :デフォルトの名無しさん:2009/10/08(木) 07:37:32
関数の外側のローカルスコープはモジュール全体のスコープ(グローバルスコープ)と同一

63 :デフォルトの名無しさん:2009/10/08(木) 07:40:27
関数の外側のローカルスコープはグローバルスコープ(モジュール全体のスコープ)と同じである

っていうか日本語訳はWhenにこだわってて変になってるな

64 :デフォルトの名無しさん:2009/10/08(木) 08:01:24
>>62,63
早いレスありがとう。
トップレベルはグローバルスコープということですね。
なぜわざわざ”関数の外側のローカルスコープ”なんて分かりにくい書き方してるんだろ。
日本語訳は酷過ぎるし、読むの疲れてきた。
2版よりはマシだけど・・。


65 :デフォルトの名無しさん:2009/10/08(木) 08:03:09
LEGBルールの所だと思うけど、そこは読み飛ばした覚えがある

単に関数の外側で代入が行われた変数(グローバル変数)は
関数の内側からも外側からも見えるってことだろう
原文からして理解し難いから気にせず先に進んだほうがいいと思うよ

66 :デフォルトの名無しさん:2009/10/08(木) 08:13:07
>>65
やはり原文もヒドイですよね・・・くっそー。
変なところはクドイくせにぃ〜・・・。
明日からまた頑張ってみますw


67 :デフォルトの名無しさん:2009/10/08(木) 08:21:19
あとはクラスの使い方と例外の章を読んだら
その本はもう積んじゃっていいと思う
気が向いたら拾い読みする程度でおk

68 :デフォルトの名無しさん:2009/10/08(木) 08:28:21
>>64
>なぜわざわざ”関数の外側のローカルスコープ”なんて分かりにくい書き方してるんだろ。

namespaceの話をしているからだよ

69 :デフォルトの名無しさん:2009/10/08(木) 08:28:43
積んだ後はPythonクックブック第2版ですか?
その次が思い浮かばないw

70 :デフォルトの名無しさん:2009/10/08(木) 08:36:56
関数内でなく、←こんな言葉は入っていない
関数の外側、
つまり←「つまり」ではなく「例えば」
モジュールあるいは対話型コマンドラインのトップレベルを基準にすれば、←コマンドラインって原文のどこに書いてある?
モジュール全体のスコープ(グローバルスコープ)←()に入れるものを逆にして分かり難くしている
とローカルスコープは←なんでこれを後ろにもってくるかなぁ
同一になる←「なる」も変なんだよなぁ

というわけで、

関数の外側(例えばモジュールのトップレベルあるいは対話型プロンプト)で変数に代入したとき、
ローカルスコープはグローバルスコープ(モジュールのネームスペース)と同じである

翻訳したひとってpythonでプログラム書いたことないんじゃないかなぁw

71 :デフォルトの名無しさん:2009/10/08(木) 09:11:09
>>70
「例えば」は e.g.

あとこの場合 the same as は「同一」って訳していいのかな
完全に同一ではないってニュアンスが含まれてる気がする

72 :デフォルトの名無しさん:2009/10/08(木) 10:45:22
構造の骨だけみて直訳すれば、

関数の外(*1)でnameをassignしたら、
そのlocal scopeとglobal scopeはまさに同じ(*2)。
*1) モジュールファイルのトップレベルとか、プロンプトとか
*2) = モジュールの名前空間ね

http://www.python.org/doc/1.5.1p1/tut/scopes.html でほぼおなじフレーズがある。

全体の流れは以下。

1. 名前空間は、ビルトイン、モジュールグローバル、関数ローカルの3つ。
2. スコープは直接アクセスできる名前空間の範囲。
3. スコープは3種類あって、再内ローカル、モジュールグローバル、ビルトイン。

で、関数外では、ローカルスコープはグローバルスコープといつしょ、つまりグローバル名前空間ね、といってる。

混乱してるのは、名前空間とスコープを分離して考えてないから。

73 :デフォルトの名無しさん:2009/10/08(木) 11:03:22
クソ本なんて買うからだ

74 :デフォルトの名無しさん:2009/10/08(木) 11:17:44
>>72
>混乱してるのは、名前空間とスコープを分離して考えてないから。
どう違うの?

75 :デフォルトの名無しさん:2009/10/08(木) 12:17:53
関数内で定義された変数のnamespace

関数内のスコープ

関数外で定義された変数のnamespace

関数外のスコープ


76 :デフォルトの名無しさん:2009/10/08(木) 13:27:47
ローカルスコープは、関数内のスコープのことでしょ。
関数外のローカルスコープって意味分からん。
(関数外はグローバルスコープ)

77 :デフォルトの名無しさん:2009/10/08(木) 13:39:05
当たり前のことをもっともらしく言い回しているだけでしょ

78 :デフォルトの名無しさん:2009/10/08(木) 13:39:52
なんではじぱいが人気あるのかわからん

79 :デフォルトの名無しさん:2009/10/08(木) 14:57:58
pythonスクリプトから別のコマンドを起動して実行する場合に
subprocess.Popen()

popen2.popen3()
などの複数の方法があるようですが
後者は古いので使わない方が良いと書かれているブログもありました

疑問に思ってる点は
この二つは(パラメータ/オプションによって動作は違うでしょうけれど)
pythonスクリプトを起動したshellをA
pythonスクリプトをB
pythonスクリプトから呼ばれるコマンドをC
としたとき
前者の場合
Aの子プロセスとしてCが起動
後者の場合
Bの子プロセスとしてCが起動
の違いがあるような気がするのですが間違ってますか?

そんなの気にせずに同じと考えて良いのでしょうか?


80 :デフォルトの名無しさん:2009/10/08(木) 15:01:07
間違ってます

前者の場合
Bの子プロセスとしてCが起動

だよもん

81 :デフォルトの名無しさん:2009/10/08(木) 15:45:38
>>68
意味わからん

82 :デフォルトの名無しさん:2009/10/08(木) 15:55:09
わからないって言ってる人は

関数内のスコープ = ローカルスコープ

だと思ってるんだよね

今いる場所のスコープ = ローカルスコープ

って考えると理解しやすいかと

83 :デフォルトの名無しさん:2009/10/08(木) 15:55:51
ああ、なるほど

84 :デフォルトの名無しさん:2009/10/08(木) 15:57:14
pythonでgnuplotへのインターフェイスってないの?
pythonではグラフは他の方法で描くのが普通なの?


85 :デフォルトの名無しさん:2009/10/08(木) 16:05:40
http://gnuplot-py.sourceforge.net/

86 :デフォルトの名無しさん:2009/10/08(木) 16:08:48
http://matplotlib.sourceforge.net/

87 :デフォルトの名無しさん:2009/10/08(木) 16:09:22
>>82の説明なら分かるね。

>>68のnamespaceの話をしているからだよ
>>72名前空間とスコープを分離して考えてないから
は意味不明。知ったかオツ

88 :デフォルトの名無しさん:2009/10/08(木) 16:19:12
ちなみに >>68 == >>82 だから

89 :デフォルトの名無しさん:2009/10/08(木) 16:21:47
頭のおかしな人には気をつけましょう
http://info.2ch.net/before.html

90 :デフォルトの名無しさん:2009/10/08(木) 17:01:54
書籍もクソならスレ住民もクソだな

91 :デフォルトの名無しさん:2009/10/08(木) 17:12:10
????

92 :デフォルトの名無しさん:2009/10/08(木) 18:00:07
>>87
どれも正しくない。
>>65の説明が正しい。
ローカルに無かったらグローバルから探すっていうだけの話。

93 :デフォルトの名無しさん:2009/10/08(木) 22:57:54
Dive into Python 3 だれか翻訳しろ

94 :デフォルトの名無しさん:2009/10/08(木) 23:00:36
じゃあ輪読しようぜ

95 :デフォルトの名無しさん:2009/10/08(木) 23:14:19
>>75が意味分からん
何をいわんとしているのか

96 :デフォルトの名無しさん:2009/10/08(木) 23:23:14
Dive into Python 3 の翻訳は
この前どこかで見たぜ

97 :デフォルトの名無しさん:2009/10/08(木) 23:32:57
>>93
直訳で
だいぶいると Python3

翻訳すると
Python3人口は多いです。

98 :デフォルトの名無しさん:2009/10/08(木) 23:35:27
(´・∀・`)

99 :デフォルトの名無しさん:2009/10/09(金) 02:19:29
>>93
翻訳用のファイルを作ってコミットしておいた。
http://code.google.com/p/diveintopython3-ja/

暇人の方は↓のグループに参加申請してくれれば、↑のメンバーに追加します。
http://groups.google.co.jp/group/diveintopython3-trans-ja

100 :デフォルトの名無しさん:2009/10/09(金) 12:11:29
思ったほど大した量じゃないね
これはいけるかも

101 :デフォルトの名無しさん:2009/10/09(金) 12:24:03
>>99-100
ここに移動した方がいい

【実験台】 Python 3.0 のお勉強 Part 1 【非互換】
http://pc12.2ch.net/test/read.cgi/tech/1235050215/

102 :デフォルトの名無しさん:2009/10/09(金) 18:47:43
>>97
直訳は

大仏Python

じゃないか?

103 :デフォルトの名無しさん:2009/10/09(金) 18:55:36
  _, ._
( ゚ Д゚)

104 :デフォルトの名無しさん:2009/10/09(金) 19:00:20
>>99
naninunenor

海外出張でロンドンのホテルに宿泊中の彼に、バレンタインのチョコレートを渡したいのですが、今から間に合う方法はありますか?国際郵便では間に合いそうにありません。
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1223130277


105 :デフォルトの名無しさん:2009/10/09(金) 19:41:37
dive into pythonもいいけど、
ディスクリプタみたいな少しつっこんだ仕組みを解説してる文章が日本語であんまりないのも困った。

106 :デフォルトの名無しさん:2009/10/09(金) 19:44:18
ディスクリプタってopenの返り値の?

107 :デフォルトの名無しさん:2009/10/09(金) 19:50:10
property

108 :デフォルトの名無しさん:2009/10/09(金) 20:22:11
porori

109 :デフォルトの名無しさん:2009/10/09(金) 20:27:14
>>106
instancemethod, classmethod, staticmethod, property, superとかはぜんぶディスクリプタっていう仕組みで実現されている。

たとえばメソッドの第一引数にselfが渡されるのもディスクリプタのおかげだし、
staticmethod関数とかを自作することもできる。

ふつうは知らなくても問題ないし、知ってても邪悪な黒魔術が使えるだけだけど。

110 :デフォルトの名無しさん:2009/10/09(金) 22:27:59
俺もディスクリプタのおかげで童貞卒業できた

111 :デフォルトの名無しさん:2009/10/09(金) 22:54:57
>>107-109
サンクス
漏れは当分ディスクリプタ童貞卒業できなさそうだ

112 :デフォルトの名無しさん:2009/10/10(土) 01:35:59
ディスクリプタっていわれると普通ファイルディスクリプタだと思う

113 :デフォルトの名無しさん:2009/10/10(土) 14:24:37
いあいや、USBだろ

114 :デフォルトの名無しさん:2009/10/10(土) 14:30:04
descriptor
発音は"でぃ"なのか?

115 :デフォルトの名無しさん:2009/10/10(土) 15:59:57
発音記号はdiになってる。

116 :デフォルトの名無しさん:2009/10/10(土) 16:11:53
ttp://dictionary.goo.ne.jp/leaf/ej2/19189/m0u/

117 :デフォルトの名無しさん:2009/10/10(土) 23:22:21
ttp://dictionary.goo.ne.jp/leaf/ej2/49696/m0u/null/
最初に「ヌル」って言い始めたのは石田晴久?

118 :デフォルトの名無しさん:2009/10/11(日) 00:05:29
>>117
ラテン語やドイツ語では「ヌル」と読む。

119 :デフォルトの名無しさん:2009/10/11(日) 13:25:42
筒井康隆の同人誌「NULL」「ネオ・ヌル」があるので、範囲を日本に限って、
コンピュータに限らなければ、石田晴久が元祖ということはない。

120 :デフォルトの名無しさん:2009/10/11(日) 13:29:44
ドイツ語に違いオランダ語でもヌルと読むかは知らんが
もしそうなら蘭学の時代からそうじゃね?

121 :デフォルトの名無しさん:2009/10/11(日) 20:35:47
アナルと似てるのでナルと発音するのが恥ずかしかった女子高生がヌルと言ったのが初めて。

122 :デフォルトの名無しさん:2009/10/11(日) 20:39:47
ヌルヌルポ

123 :デフォルトの名無しさん:2009/10/11(日) 21:00:48
ガガッ

124 :デフォルトの名無しさん:2009/10/13(火) 21:02:21
アドエスにRuby入れた
http://d.hatena.ne.jp/eth0jp/20091010/1255134087

arm は流行るのだろうか…

125 :デフォルトの名無しさん:2009/10/14(水) 03:32:42
ズブの素人の俺参上

126 :デフォルトの名無しさん:2009/10/18(日) 01:23:58
Tkinter使いたいんだけど、これってTcl/Tkに精通しないと無理?
リファレンスが全然優しくないというか、ツリー表示するだけでTkinterとは違うリファレンス見ないといけなくてきつい

127 :デフォルトの名無しさん:2009/10/18(日) 02:18:05
精通してても無理

128 :デフォルトの名無しさん:2009/10/18(日) 03:09:45
mjk…

129 :デフォルトの名無しさん:2009/10/19(月) 19:15:51
文字列操作メソッドのlstripってひょっとしてバグある?
できるだけreplaceとか使ったほうがいいんだろうか

130 :デフォルトの名無しさん:2009/10/19(月) 19:53:07
なぜバグがあると思ったか具体的に言ってもらわないと何とも

131 :デフォルトの名無しさん:2009/10/19(月) 19:55:05
バグを見つけたら http://bugs.python.org/ まで報告だ

132 :デフォルトの名無しさん:2009/10/19(月) 22:13:55
ごめん、バグじゃなくて仕様か。stripの機能を誤解してたわ。

>>> "netnet".lstrip("net")
"net"

みたいなのを期待してたんだけど、実際は"n","e","t"が
文字列の先頭に来ないように全部の文字列を省いちゃうわけか。

133 :デフォルトの名無しさん:2009/10/19(月) 22:16:51
ちゃうわぼけ

134 :デフォルトの名無しさん:2009/10/19(月) 22:26:01
空白文字を取り除くためのものだよ

135 :デフォルトの名無しさん:2009/10/19(月) 22:51:30
>>132
strip()は文字列の先頭及び末尾から空白文字を取り除いたものを返す
引数を指定するとその文字列が除かれる。お前の例を使うと
>>> 'netxxxnet'.strip('net')
'xxx'
こうなる

136 :デフォルトの名無しさん:2009/10/19(月) 23:01:49
>>135

137 :デフォルトの名無しさん:2009/10/19(月) 23:11:29
>>135
stripでもいいんだけども、

>>> 'netentxxxtnenet'.strip('net')
'xxx'

こういう風に"net"じゃなくても、
文字列が除かれるんだっての知らなかったら、
書き込んだだけなんだよ。それだけ。

138 :デフォルトの名無しさん:2009/10/19(月) 23:38:33
stripの引数はlistなんだぜ

139 :デフォルトの名無しさん:2009/10/20(火) 00:14:20
http://docs.python.org/library/stdtypes.html?highlight=str.strip#str.strip

140 :デフォルトの名無しさん:2009/10/20(火) 00:39:14
制御文が関数になるとかいう話はなに?

141 :デフォルトの名無しさん:2009/10/20(火) 00:52:33
どこ?

142 :デフォルトの名無しさん:2009/10/21(水) 22:08:39
wxPythonがVistaで動かないんだけど何故?

143 :デフォルトの名無しさん:2009/10/21(水) 22:10:30
バグを見つけたら公式tracに報告 http://trac.wxwidgets.org/

144 :デフォルトの名無しさん:2009/10/23(金) 05:31:45
なすーん

145 :デフォルトの名無しさん:2009/10/23(金) 13:24:18
        ┌─┐
        │●│
        └─┤
       _   ∩
      ( ゚∀゚)彡
    ┌─┬⊂彡
    │●│ おっぱい!おっぱい!
    └─┘      おっぱい!おっぱい!


146 :デフォルトの名無しさん:2009/10/23(金) 13:25:34
          ┌─┐
          │●│
          └─┤
           _   ∩
          ( ゚∀゚)彡
        ┌─┬⊂彡
        │●│ おっぱい!おっぱい!
        └─┘      おっぱい!おっぱい!



147 :デフォルトの名無しさん:2009/10/23(金) 16:14:54
今日「みんなのPython」を買ってきて、1時間ほど前から始めています。
2つ質問があります。どうかお願いします。

・画面が一瞬で消える
IDLEのエディタのほうでサンプルを書き込んで実行しても、一瞬だけ
画面(DOS窓?)が出て消えるだけになります。
どうにかして目視で結果を見たいのですが、どうしたら良いですか?

・17Pのturtle
最序盤のturtleをimportするところで、コマンドラインからではなくIDLEの
シェルで行うと、forward 100の1文のみではTurtleが(応答なし)になって
しまいます。
(もう1行線を引く命令を追加すると、どちらも反映されるんですが…)
これは、僕のインストール方法や使用法が何か間違っているんでしょうか?
それとも、みなさん同じことになるんでしょうか?


148 :デフォルトの名無しさん:2009/10/23(金) 16:16:59
sage すごい便利なんだけど、あんまり使ってる話聞かないのは
何か不具合でもあるの?

149 :デフォルトの名無しさん:2009/10/23(金) 16:21:03
>>147
IDLEは諦めて、テキストエディタ+コマンドプロンプトで勉強するのがいいと思う

150 :デフォルトの名無しさん:2009/10/23(金) 16:36:13
>>149
それが……、インストールしてあったサクラエディタで同じように打ち
込んでも、やはり一瞬で画面が消えてしまうのです。
#! usr/bin/env python
# coding: utf-8

print "Spam"
コードはこれだけなんですが……。
何度も実行していると、確かに一瞬ではありますがSpamと表示されて
いるようです。動体視力を鍛えろと言うことでしょうかorz

151 :デフォルトの名無しさん:2009/10/23(金) 17:24:04
>>150
コマンドプロンプトを立ち上げる。
python ファイルへのパス

これで実行すれば消えないだろw

152 :デフォルトの名無しさん:2009/10/23(金) 17:55:15
>>150
アイコンをダブルクリックして起動したらダメだよ

153 :デフォルトの名無しさん:2009/10/23(金) 19:03:37
decimalモジュールってイマイチ用途がわかんないんですが
これ使うと何が便利なんでしょう?

例えば
n = decimal.Decimal(str(n))
って式を見つけたんですか
この場合のnは代入前と後で何が違うんでしょう?

154 :デフォルトの名無しさん:2009/10/23(金) 20:00:02
計算が正確になる

>>> sum([0.1] * 10)
0.99999999999999989
>>> sum([decimal.Decimal("0.1")] * 10)
Decimal('1.0')

155 :デフォルトの名無しさん:2009/10/23(金) 20:49:21
>>> str(sum([0.1] * 10))
'1.0'
とは違うの

156 :デフォルトの名無しさん:2009/10/23(金) 21:04:02
http://docs.python.org/tutorial/floatingpoint.html
http://www.python.jp/doc/nightly/tut/node16.html

157 :デフォルトの名無しさん:2009/10/23(金) 22:03:47
>>155
そもそも型が違うやん

158 :デフォルトの名無しさん:2009/10/23(金) 22:35:20
>>150
最後の行に
raw_input()
を追加する


159 :デフォルトの名無しさん:2009/10/23(金) 23:57:11
>>150
サクラ使ってるんだったら、外部コマンド実行で標準出力〜にチェック入れればいい

160 :デフォルトの名無しさん:2009/10/24(土) 02:36:09
pythonとjavaが同じにみえる

どっちも同じぐらいに簡単に書けるし
どっちもモジュールが豊富


161 :デフォルトの名無しさん:2009/10/24(土) 02:42:46
Javaほどウザくない
Javaほど速くもないが

162 :デフォルトの名無しさん:2009/10/24(土) 02:46:13
>>161
その辺の他の言語と比べたpythonの立ち位置ってどこになるんだろ

163 :デフォルトの名無しさん:2009/10/24(土) 02:58:20
スクリプト言語とコンパイラ型言語は比較できるものなのか

164 :147:2009/10/24(土) 04:37:29
>>158
できました!ありがとうございます!
調べてみたら、DOS窓からキーボードの入力を受け付ける関数みたいですね。
こういう使い方もあるのかー、と驚いてしまいました。

>>149さん、>>151さん、>>152さん、>>159さん、
みなさんありがとうございます!
ここは親切なインターネッツですね><

165 :デフォルトの名無しさん:2009/10/24(土) 09:32:51
あんな型厳密なJavaが同じくらい簡単に書けるって何の冗談なんだ

166 :デフォルトの名無しさん:2009/10/24(土) 11:32:33
kbhit();

167 :デフォルトの名無しさん:2009/10/24(土) 11:42:32
import msvcrt
msvcrt.getch()

import os
os.system('pause')

168 :デフォルトの名無しさん:2009/10/24(土) 11:44:06
Java が使いにくいのは静的だからではない
http://d.hatena.ne.jp/kwatch/20080305/1204743236

169 :デフォルトの名無しさん:2009/10/24(土) 12:04:57
Ruby や Python が使いやすいのは動的だからではない
http://d.hatena.ne.jp/kwatch/20080305/1204743342

170 :デフォルトの名無しさん:2009/10/24(土) 12:13:34
つまりRubyを使えばみんな幸せってことだな

171 :デフォルトの名無しさん:2009/10/24(土) 12:19:34
またruby厨の荒らしですか

172 :デフォルトの名無しさん:2009/10/24(土) 12:27:10
dankogai w

173 :デフォルトの名無しさん:2009/10/24(土) 14:49:19
Javaに似ているところって「簡単」どうのって話じゃなくて、
「例外的な規則とかが少なくて洗練されている」あたりじゃね?

C++やPerlの例外だらけな仕様と比べるとさ。

174 :デフォルトの名無しさん:2009/10/24(土) 16:20:43
Clojureがjavaベースなのはなんでだろうと思ってな
pythonからClojureに乗り換えても不便ないかと思って

175 :デフォルトの名無しさん:2009/10/24(土) 19:37:12
hoge.add('fuga').add('fuga').add('fuga').add('fuga')

これ実はPythonの場合でも
出来ない関数/メソッド多いんだよな
self返せばいいのにNone返しやがる

176 :デフォルトの名無しさん:2009/10/24(土) 19:54:09
つlist.extend,dict.update,set.update
そーいうクソみたいなコード書くなってことだろ

177 :デフォルトの名無しさん:2009/10/24(土) 20:08:22
それどこの ruby wwww

178 :デフォルトの名無しさん:2009/10/24(土) 20:09:57
Javaで
hogehoge.addHogeHage(hogehage)
       .addHageHage(hagehage)
        ……
こんな感じに10行くらい続いてるコード思い出した

179 :デフォルトの名無しさん:2009/10/24(土) 20:23:13
キーワード引数の代わりにメソッドチェインを使ってるのを見たことがある。
こういうのはまぁしょうがないかと思うけど……
// func.optX(x).optY(y).optZ(z).exec()

inplaceな処理で戻り値返しちゃうと、
戻り値の意味がわかりづらくなっちゃうよねぇ。

180 :デフォルトの名無しさん:2009/10/24(土) 20:28:39
ちょっと違った
// func(hoge,huga).optionX(x).optionY(y).run();

こんな感じ。pythonでいうなら
# func(hoge, huga, x=x, y=y)
こんな感じのことをやっている。

181 :デフォルトの名無しさん:2009/10/24(土) 20:28:42
>>179
途中のどこかでNoneにならないか心配
正規表現のマッチングが足りないとかでよくやってしまう

182 :デフォルトの名無しさん:2009/10/24(土) 20:30:23
func(hoge, huga, **{x:x, y:y})

183 :デフォルトの名無しさん:2009/10/25(日) 03:36:25
>>174
Clojureはライブラリが多ければLisp触りたいなって人向け

184 :デフォルトの名無しさん:2009/10/25(日) 12:46:31
pass

185 :デフォルトの名無しさん:2009/10/25(日) 19:00:45
func(hoge, huga, **{'x':x, 'y':y})


186 :デフォルトの名無しさん:2009/10/25(日) 19:32:21
電卓として使ってるw
意外に便利だぜ

187 :デフォルトの名無しさん:2009/10/25(日) 22:12:01
with文をつかって、ブロックの部分を実行する・しないを制御したいんですけど、できますか。

with Condition(x, y, z):
 ## 条件がTrueのときだけここを実行
 print x, y, z

今はこんな感じでやっている処理があって、これをもっと格好よく書きたいというのが動機です。

@condition(x, y, y)
def block1():
 print x, y, y
block1()


188 :デフォルトの名無しさん:2009/10/25(日) 22:30:33
分岐は if を使う

189 :デフォルトの名無しさん:2009/10/26(月) 00:16:18
JSとVBSにある文なのか…

190 :デフォルトの名無しさん:2009/10/26(月) 00:20:29
pass

191 :デフォルトの名無しさん:2009/10/26(月) 21:10:07
with のブロックは必ず実行されちゃうんじゃないの?
def skip(): raise TypeError
def condition(x,y,z):
  condition.f = lambda inner if x + y == z else skip()
  return condition
condition.f = lambda : inner
condition.__enter__ = lambda : condition.f
condition.__exit__ = lambda type,val,trace : isinstance(val,TypeError)
def inner(): return inner
inner.__enter__ = lambda : True
inner.__exit__ = lambda type,val,trace : True

x = y = 1
z = 2
with condition(x,y,z) as f:
  with f():
    print x, y, z

こんなんしか思い浮かばない

192 :デフォルトの名無しさん:2009/10/28(水) 18:34:25
>>187
@
の使い方ってそう使うんだ
ちょっと勉強になった

193 :デフォルトの名無しさん:2009/10/29(木) 18:26:40
--------sub.py--------------
def hoge():
   global a
   a = 999
#hoge()

--------main.py-------------
a = 111
from sub import *
hoge()
print a

結果は、111

でも、コメントを外して、
sub.py内で、hoge()を実行してやると
結果は、999

誰か親切な人、どういう事なのか教えてください

それと、hoge()をmain.pyから呼び出して、
aの値を999に変える方法も知りたいです

194 :デフォルトの名無しさん:2009/10/29(木) 19:38:39
from sub import * によって sub.a が main.a にインポートされてる

195 :デフォルトの名無しさん:2009/10/29(木) 20:01:11
いや
main.py で hoge() を呼んでも
sub.py の a = 999 してるつもりが
print a で 111 になるっつー話でそ

きっと質問者は ruby のひとだと思う

196 :デフォルトの名無しさん:2009/10/29(木) 20:06:44
モジュール間で変数を直接書き換えるなんて馬鹿なことをするのが悪い

197 :デフォルトの名無しさん:2009/10/29(木) 20:07:34
>>194 が逝ってるのはこういうことだな

--------sub.py--------------
def hoge():
global s
s = 999

--------main.py-------------
s = 111
import sub
sub.hoge()
print s
print sub.s


198 :デフォルトの名無しさん:2009/10/29(木) 20:15:30
--------sub.py--------------
s = 0
def hoge():
 global s
 s = 999
#hoge()

--------main.py-------------
s = 111
from sub import *
hoge()
print s


199 :デフォルトの名無しさん:2009/10/29(木) 20:25:06
>>194でいいじゃん
hoge()した場合のfrom sub import *はmain.aをsub.aで上書き
hoge()してない場合のfrom sub... はsub.aが定義されてないからmain.aがそのまま残る

200 :デフォルトの名無しさん:2009/10/29(木) 20:29:41
つまり global a は main.py の a じゃないってことでそ
だから sub.py の hoge() をコメント取って 999 になるのは
hoge() で main.py の a を書き換えた訳じゃなくて sub.py の a しか書き換えられていない
from sub import * で main.a が隠れて sub.a が前に出てきただけ


201 :デフォルトの名無しさん:2009/10/29(木) 20:55:58
>>193
これ試してみ

--------sub.py--------------
def hoge():
    global a
    a['hoge'] = 999
#hoge()

--------main.py-------------
a = {'hoge': 2, 'fuga': 3}
a['fuga'] = 111
from sub import *
hoge()
print a


202 :デフォルトの名無しさん:2009/10/29(木) 20:57:31
PHPは糞
まで読んだ

203 :デフォルトの名無しさん:2009/10/30(金) 00:18:42
えー

204 :デフォルトの名無しさん:2009/10/30(金) 09:47:44
PHP使っててPythonに移ってきた奴は糞。

205 :デフォルトの名無しさん:2009/10/30(金) 13:53:18
Perler移民しかいなかった頃がなつかしい

206 :デフォルトの名無しさん:2009/10/30(金) 14:04:32
結局Rubyが一番っていう結論に落ち着くよね(´・ω・`)

207 :デフォルトの名無しさん:2009/10/30(金) 14:07:13
またruby厨の荒らしですか

208 :デフォルトの名無しさん:2009/10/30(金) 14:45:21
Parallel Python って使った方いらっしゃるかしら

209 :デフォルトの名無しさん:2009/10/30(金) 15:27:00
中学生にも高速化できてしまうRubyってさすが。

210 :デフォルトの名無しさん:2009/10/30(金) 15:42:28
またruby厨の荒らしですか

211 :デフォルトの名無しさん:2009/10/30(金) 17:47:51
193 の質問者です。
親切な方々レスありがとさんです

「辞書」と「リスト」は、可変性なので、
インポートで読んだ後も、mainとsubで共有されてるから
hoge()で、subのを更新したらmainのも更新されるけど、
それ以外の数値、文字列とかは、パイソンには
モジュール間をまたぐグローバル変数が無い以上
インポート時に一度代入されておしまいって事であってる?

--------sub.py--------------
a = [0,0]
b = 0
def hoge():
   global a,b
   a[0] = 999 #リストなので、効果ある
   b = 999 #数値なので、効果なし
--------main.py-------------
import sub
a = sub.a #共有される
b = sub.b #代入されるだけ

sub.hoge()
print a,b
----------------------------
結果は、
[999,0] 0

212 :デフォルトの名無しさん:2009/10/30(金) 18:04:27
Pythonは名前にオブジェクトを束縛する
変数自体が実体を持ってるCとかとは違う扱い方になる

main.a -> sub.a -> [0,0] じゃなくて main.a -> [0,0] <- sub.a
a[0] = 999 は sub.a に代入する訳ではないので参照はそのまま

同じく main.b -> sub.b -> 0 じゃなくて main.b -> 0 <- sub.b
b = 999 で sub.b の参照が書き換えられる。でも main.b は 0 を参照したまま

213 :デフォルトの名無しさん:2009/10/30(金) 20:22:10
>>208
このスレの Part 26 の 244 辺りですこし試したことあるよ。
http://www.bookshelf.jp/2ch/tech/1209480428.html

214 :デフォルトの名無しさん:2009/10/30(金) 23:54:54
クラスタに簡単にもっていけるのがイイすな。

215 :デフォルトの名無しさん:2009/10/31(土) 05:37:46
しかし速度評価は注意しないといかんのでしょうな、
Cの3倍遅いのを3台で動かしても無意味。
単一プロセスであまりCより遅くもない(2割り増しくらい??)
なら簡単にクラスタに持っていくとかイイすよな。

内製の古い因子分析プログラム(ゲロ遅い)をPython/Numpy/PyCuda/Parallel Python
などで書き換えられたらいいなぁ。でもソースが悲惨なんだよな…20年位前からあるんだわ。

216 :デフォルトの名無しさん:2009/10/31(土) 17:38:27
>>212
数値や文字列は、使い勝手は値渡しのようだけど、
実際は全部参照渡しなのか
勉強になりますた

execで、名前空間指定してやれば
他のモジュールから数値でも変更できるんだね
あんまスマートじゃないのかな
--------sub.py--------------
def hoge(b):
  exec('a = 999',b)
--------main.py-------------
import __main__,sub

a = 0
sub.hoge(__main__.__dict__)
print a
----------------------------
結果は、999

217 :デフォルトの名無しさん:2009/10/31(土) 19:14:09
質問の趣旨から言って
__main__.__dict__をhogeに渡すのは反則でしょう

218 :デフォルトの名無しさん:2009/11/01(日) 20:59:54
どこらへんが、反則ですかね?

ひょっとしたら、他にいい方法がありますかね?

219 :デフォルトの名無しさん:2009/11/05(木) 01:38:00
socketでホストを立ててTkinterでGUIみたいな物の実装例を探しています
別スレッドで走らせるにしてもTkinter側のデータの受け取りをTkAfterでポーリングするとか
微妙なのしか見つからなかったので・・・
socket側で何か起きたらTkinterのイベントが起動するみたいな実装は出来ないでしょうか・・・?
よろしくおねがいします

220 :デフォルトの名無しさん:2009/11/05(木) 01:58:26
Twisted

221 :デフォルトの名無しさん:2009/11/05(木) 03:23:24
インストールマンドクサイヨ('A`)
asyncore

222 :デフォルトの名無しさん:2009/11/05(木) 15:59:47
wsgiを他の言語から使うことはできないものか

223 :219:2009/11/05(木) 19:31:28
>>220-221
レスありがとう
スクリプトの配布も検討しているのでPythonのパッケージのみインストールされている環境で
動くようにしたいので標準で同梱されているライブラリ以外は出来るだけ使いたくないのですが・・・
たびたびすいませんが、よろしくお願いします

224 :デフォルトの名無しさん:2009/11/05(木) 19:50:01
asyncore は標準

225 :デフォルトの名無しさん:2009/11/05(木) 20:36:57
twistedは病気

226 :デフォルトの名無しさん:2009/11/06(金) 09:50:21
初めまして
Pythonで学ぶプログラミング作法を読んで興味を持ちました
が、3.01を入れたらハローワールドもできず…
2.x系と3.x系でだいぶ違うようなのですが、初めてのPython第3版で勉強して3.x系でやれますか?
英語のは第4版出てるみたいなのですが、日本語化は来年以降でしょうし…
新規で始めるので、3.x系を覚えていった方がいいとは思うのですが、どの書籍で勉強すればいいか迷ってます
諸先輩からのアドバイス待ってます

227 :デフォルトの名無しさん:2009/11/06(金) 10:13:02
python 3.xならhttp://diveintopython3.org/
python 2.xならhttp://diveintopython.org/

228 :デフォルトの名無しさん:2009/11/06(金) 10:19:44
>>227
2chで遊んでないで早く翻訳やれよ。

229 :デフォルトの名無しさん:2009/11/06(金) 10:59:04
>新規で始めるので、3.x系を覚えていった方がいいとは思うのですが、

新規なら 2.5.x/2.6.x だjk

230 :デフォルトの名無しさん:2009/11/06(金) 12:41:01
>>228
俺じゃないよ...

231 :デフォルトの名無しさん:2009/11/06(金) 14:02:56
>>226

今のところは2.x使っておいたほうがいいよ。
3.xを使っている人はまだほとんどいない。

そもそも2.xと3.xは細かいところが違うだけだから、
2.6をフルにつかっていれば3.xにもすぐ対応できる。たぶんきっと

232 :デフォルトの名無しさん:2009/11/06(金) 16:06:43
>>226 は Windows7 に飛びつくタイプ

233 :デフォルトの名無しさん:2009/11/06(金) 16:20:28
>>232
絶妙な例えだなw

>>226
今はまだ情報が少なかったりで圧倒的に2系がお勧め

234 :デフォルトの名無しさん:2009/11/06(金) 16:44:15
>>233
いや必要なだけの情報はちゃんと公式にドキュメント化されている。
そこらへんはRubyと違い、Pythonのいいところ。
ただ、そのドキュメントはすでに2.xでPythonをマスターしている人むけだから、
>>226のような初心者が既存の書籍で勉強するにはまだ2.xのほうがいい。

235 :デフォルトの名無しさん:2009/11/06(金) 16:48:09
結局のところ、サードパーティ製ライブラリの対応待ちという状況

236 :デフォルトの名無しさん:2009/11/06(金) 17:02:09
Python、もっと情報っつーかサンプル欲しいですわ。
urllib使ってベーシック認証のWWWサイトに入るのに
1日掛かった。まぁ、オレは馬鹿だってのは認めるけど?

237 :デフォルトの名無しさん:2009/11/06(金) 18:04:02
ドキュメントだけでサンプル無いと判らん香具師は馬鹿だと思う

238 :デフォルトの名無しさん:2009/11/06(金) 18:11:48
>>237
馬鹿って言うな。経験の差だろ。
他言語のサンプルを見ていれば要領がわかるもの。

良いサンプルはあればあるだけよいよ。

239 :226です:2009/11/06(金) 22:08:58
みなさん様々なアドバイスありがとうございます

3.x系はこれから発展していくみたいですね
その頃には俺もある程度慣れてればいいなぁ

みなさんのアドバイスすごく参考になりました
初めてのPython第3版買って、2.x系で勉強しようと思います



240 :226です:2009/11/06(金) 22:28:02
とりあえず第4章まで読みました。
リスト内包表記やディクショナリってすごい便利ですね。
Cしか知らない無知な僕ですけど、目からうろこでした。

これからもよろしくお願いします。

241 :デフォルトの名無しさん:2009/11/06(金) 23:02:31
はい

242 :デフォルトの名無しさん:2009/11/07(土) 00:07:43
sortもかなり便利よ。多重ソートとか簡単に書けるね。

243 :デフォルトの名無しさん:2009/11/07(土) 01:08:03
>>236
urllib basic認証 でぐぐれかす

って感じが多いな俺は。
だれかしらサンプル的コードを書いてる。
まぁ間違ってたり古かったりも多いが。

244 :デフォルトの名無しさん:2009/11/07(土) 01:15:15
間違ってるのにハマると無駄な時間を食う。なんということだ。

245 :デフォルトの名無しさん:2009/11/07(土) 02:05:21
うそをうそと見抜けない人はネットは向いてない

246 :デフォルトの名無しさん:2009/11/07(土) 02:15:45
urllibとかurllib2てワンライナー専用すぎて辛い

247 :デフォルトの名無しさん:2009/11/07(土) 03:11:20
馬鹿にも分かる、関数に決まりきった値をセットすれば使えるほうがうれしいわな。
FTPLibだったかな、コマンドを手書きするやつ。
どうしてretrbinaryに'RETR xxxxx'って書かないといけないんだろう。

248 :デフォルトの名無しさん:2009/11/07(土) 14:47:00
string.chompってないの?

249 :デフォルトの名無しさん:2009/11/07(土) 14:55:01
>>248
こんなの?

>>> 'hoge\n'.strip()
'hoge'

250 :デフォルトの名無しさん:2009/11/07(土) 15:00:56
>>249
そんなの。

ありがとう。

251 :デフォルトの名無しさん:2009/11/07(土) 15:08:47
rstrip("\r\n")

252 :デフォルトの名無しさん:2009/11/07(土) 17:36:44
Python3入れてみたけどこれ文字列周り大変だな
b 付きのヤツは decode しとけばいいのかな

253 :デフォルトの名無しさん:2009/11/07(土) 18:00:36
【実験台】 Python 3.0 のお勉強 Part 1 【非互換】
http://pc12.2ch.net/test/read.cgi/tech/1235050215/

254 :デフォルトの名無しさん:2009/11/07(土) 18:01:26
【実験台】 Python 3.0 のお勉強 Part 1 【非互換】
http://pc12.2ch.net/test/read.cgi/tech/1235050215/

255 :デフォルトの名無しさん:2009/11/07(土) 18:02:19
完全にかぶった orz

256 :デフォルトの名無しさん:2009/11/07(土) 19:23:35
まえにこのスレで、新規に始めるならPython2とPython3どっちがいいって聞いたら、3を薦められたので、ずっと3使ってるんだが
使いたいライブラリが対応してなかったり、調べようとしても情報が少なかったりで、しなくてもいい苦労をたくさんした気がする。

257 :デフォルトの名無しさん:2009/11/07(土) 19:27:58
大抵2.6を勧めてるはずだが
運悪く意地悪な回答者に当たったとか

258 :デフォルトの名無しさん:2009/11/07(土) 19:30:51
若しくは回答者がWindows7に飛びつくタイプだったか

259 :デフォルトの名無しさん:2009/11/07(土) 19:43:55
>>256
2系だと今度はエンコードでちょいと苦労することもある
そんな俺は2.6+うにこーどりてらる
>>258
Vistaに飛び付くタイプ、じゃね?
バージョン的にも互換性的にも

260 :デフォルトの名無しさん:2009/11/07(土) 19:48:31
>>258
7は真っ先に手に入れるだろ。

3を使わなくてもアプリは出来るが、
7はないと動かない人が出てくる。

他人の作ったプログラムを使うことはあっても、
自分で作って他人に使ってもらったことないのか?


261 :デフォルトの名無しさん:2009/11/07(土) 19:50:34
【新世代】 Windows 7 総合 Part63
http://pc12.2ch.net/test/read.cgi/win/1257516077/

262 :デフォルトの名無しさん:2009/11/07(土) 20:01:34
>>259-260
まだSP1も出てないのに新しいものは良いだろうと安易に飛びつくと言う意味の比喩であろう
>>232 を転用したんだけど、なるほどプログラマだとそういう発想があるか。
趣味グラマだから動作確認のためにまだ使わない7を買うほど他人の事考えてやってない。

263 :デフォルトの名無しさん:2009/11/09(月) 19:40:53
インスタンスごとに別々のメソッドを定義するにはどうしたらいいですか。
以下のようにしたけどだめでした。

class Foo(object):
 def __init__(self, name):
  self.name = name

def f1(self):
 print self.name

obj = Foo("foo")
obj.f1 = f1 # インスタンスごとに独自の関数を与える
print obj.f1 # <function f1 at 0x100483d70>
obj.f1() # TypeError: f1() takes exactly 1 argument (0 given)

ここで obj.f1 が function ではなく bound method になればいいんだと思うんですが、方法が分かりません。
ご存知の方がいましたら教えてください。

264 :デフォルトの名無しさん:2009/11/09(月) 19:54:06
from types import *
obj.f1 = MethodType(f1, obj, Foo)
もしくは
obj.f1 = MethodType(f1, obj)

265 :デフォルトの名無しさん:2009/11/09(月) 20:09:13
getattr(self.name, "f1")

266 :デフォルトの名無しさん:2009/11/09(月) 20:17:04
>>264
動作が確認できました。ありがとうございました。

267 :デフォルトの名無しさん:2009/11/10(火) 11:16:27
>>264
横からだけどありがと。
今まで↓みたいにしかできないものだと思ってた。
obj = Foo("foo")
def f1():
 print obj.name
obj.f1 = f1
obj.f1()


268 :デフォルトの名無しさん:2009/11/10(火) 16:55:16
Pythonで、評価関数を指定できるmax()はありますか。
items = ["foo", "baaar", "bz"]
max_by(lambda x: len(x), items) #=> "baaar"
みたいなのです。

269 :デフォルトの名無しさん:2009/11/10(火) 17:04:42
max(items, key=len)

270 :デフォルトの名無しさん:2009/11/10(火) 17:22:51
横からだけど

>>> max(["11","111","22"])
'22'
>>> max(["11","111","22"],key=len)
'111'

おお、こんなこと出来たのか

271 :デフォルトの名無しさん:2009/11/10(火) 17:37:54
バージョン2.5以降で、keyという名前だけど比較関数なのか。

272 :デフォルトの名無しさん:2009/11/10(火) 18:15:59
確かシャチ泳ぎとか言ったような

273 :デフォルトの名無しさん:2009/11/10(火) 18:37:08
>>269
ありがとうございます。
max()のドキュメントをみたら、max(1, 2, 3, 4) みたいな使い方をするみたいだったので、
max([1,2,3,4]) のようにリストを取れるとは知りませんでした。

274 :デフォルトの名無しさん:2009/11/10(火) 18:49:39
>>273
もし max がリストを受け取らないとしても、
max(*["11", "111", "22"], key=len)
のように * でリストのアンパックをすれば利用できるよ。
* は便利だから覚えておいたほうがいい。

275 :デフォルトの名無しさん:2009/11/10(火) 18:53:49
もしリスト受け取りも展開も出来なかったら地獄を見るな。

276 :デフォルトの名無しさん:2009/11/10(火) 20:05:28
Pythonのドキュメントってかなりアバウトだよなぁ
インデントは要求してくるのに

277 :デフォルトの名無しさん:2009/11/10(火) 22:28:20
>>270
横からだけど
数字(int)とみなして比較して
22 じゃなくて 111 が max になるようにするには?

278 :デフォルトの名無しさん:2009/11/10(火) 22:33:02
っint

279 :デフォルトの名無しさん:2009/11/10(火) 22:48:41
max(["11","111","22"], key=int)
で "111"が返ってくるな。

280 :デフォルトの名無しさん:2009/11/10(火) 23:05:08
max(['11','111','22'], key=lambda x: 22-int(x))
11

281 :デフォルトの名無しさん:2009/11/10(火) 23:16:22
つ 3.6.4 変更可能なシーケンス型
ここの key と同じでしょ

282 :デフォルトの名無しさん:2009/11/10(火) 23:25:17
横からだけど
>>> sorted(['19', '210', '181', '22'], key=lambda x: max(c for c in x))
['210', '22', '181', '19']

こんなのもありか
知らなかった
dx

283 :デフォルトの名無しさん:2009/11/10(火) 23:38:22
>>282
ん?
含まれている文字の最大の文字でソート、で合ってる?
2,2,8,9
ってことだよね?

284 :デフォルトの名無しさん:2009/11/11(水) 09:48:20
>>283
多分。

c for c in x って書き方もアリなのか、
*x とか list(x)の方が分かりやすい印象。
それにしてもしっかりドキュメントに書いてあるのな、気付かなかったわ。

285 :デフォルトの名無しさん:2009/11/11(水) 09:59:47
>>> sorted(['19', '210', '181', '22'], key=lambda x: max(x))
['210', '22', '181', '19']

286 :デフォルトの名無しさん:2009/11/11(水) 12:26:03
sorted(['19', '210', '181', '22'], key=max)
でもいいんじゃね

287 :デフォルトの名無しさん:2009/11/11(水) 14:44:53
Google、オープンソースのプログラミング言語「Go」リリース - ITmedia News
ttp://www.itmedia.co.jp/news/articles/0911/11/news041.html

> 公式ブログによると、“Pythonのようなダイナミック言語での開発スピードと、
> CやC++のようなコンパイル言語の持つ性能と安全性を併せ持つ”という。

The Go Programming Language
ttp://golang.org/

どうなのかね

288 :デフォルトの名無しさん:2009/11/11(水) 15:33:29
IDE無いと使う気にならない惰弱なオレです。

289 :デフォルトの名無しさん:2009/11/11(水) 23:26:03
Pythonの実績を調べてるんだけど、Pythonで作られたなんか有名なシステムとか採用実績とかあれば教えてください。
YouTubeとGoogleは分かったので、それ以外で有名どころを教えてください。

290 :デフォルトの名無しさん:2009/11/11(水) 23:41:18
それだけです

291 :デフォルトの名無しさん:2009/11/12(木) 00:04:30
俺の家のスクリプト

292 :デフォルトの名無しさん:2009/11/12(木) 00:11:12
僕のエロ画像収集bot

293 :デフォルトの名無しさん:2009/11/12(木) 00:25:27
>>289
Wikipediaでも見れ

294 :デフォルトの名無しさん:2009/11/12(木) 00:31:02
なさじゃくさ

295 :デフォルトの名無しさん:2009/11/12(木) 00:32:23
俺のテンプレ貼り付けスクリプト

296 :デフォルトの名無しさん:2009/11/12(木) 00:33:18
yum

297 :デフォルトの名無しさん:2009/11/12(木) 01:09:27
>>289
思いつくのはtracとかzopeかな。
wikipediaに記事があったよ。
http://ja.wikipedia.org/wiki/Pythonを使っている製品あるいはソフトウェアの一覧

298 :デフォルトの名無しさん:2009/11/12(木) 01:10:55
dict.get() 相当のものは list にありますか。
[3,4,5].get(9, None)
みたいなことができればうれしい。

299 :デフォルトの名無しさん:2009/11/12(木) 01:35:03
ないよ

300 :デフォルトの名無しさん:2009/11/12(木) 01:39:41
>>292
奇遇ですね

301 :デフォルトの名無しさん:2009/11/12(木) 01:43:49
>>298
dict(zip([3,4,5],[True]*3)).get(9, None)

302 :デフォルトの名無しさん:2009/11/12(木) 01:45:20
9 if 9 in [3,4,5] else None

303 :デフォルトの名無しさん:2009/11/12(木) 01:46:24
>>298
[3,4,5].count(9) or None

304 :デフォルトの名無しさん:2009/11/12(木) 01:47:40
仕様通りじゃなかった・・・

305 :デフォルトの名無しさん:2009/11/12(木) 09:25:50
UTF8を表すエンコーディング名って、utf8 も utf-8 も使えるようですが、どっちが正しいのでしょうか。
print 'string'.encode('utf8') # OK
print 'string'.encode('utf-8') # OK


306 :デフォルトの名無しさん:2009/11/12(木) 09:31:16
'utf-8' が登録されてる名前で、 utf8 はエイリアス

>>> codecs.lookup('utf8').name
'utf-8'
>>> codecs.lookup('sjis').name
'shift_jis'

307 :デフォルトの名無しさん:2009/11/12(木) 10:17:23
SHIFT-JISを表す?エンコーディング名って、cp932 も mbcs も shift_jis も使えるようですが、どれが正しいのでしょうか。
print 'string'.encode('cp932') # OK
print 'string'.encode('mbcs') # OK
print 'string'.encode('shift_jis') # OK

308 :デフォルトの名無しさん:2009/11/12(木) 10:32:08
>>307
純粋な Shift-JIS が shift_jis
Windowsで使われている、MSの拡張が入ったShift-JISが cp932

で、 mbcs というのは、 Windows においてPython起動時に site.py というファイルの中で
Windowsの言語設定をもとに設定される cp??? へのエイリアス。
もちろんWindowsの言語設定が日本だと cp932。

309 :デフォルトの名無しさん:2009/11/12(木) 10:39:49
ありがとうございます
mbcs を使っておくのがよさげな気がします

310 :デフォルトの名無しさん:2009/11/12(木) 11:18:28
>>309
ちょっと待て、分かっているのかもしれないが念のため
どれを使えばいいかはケースバイケースで、
常にどれかを使っておけばよい、というようなものじゃないよ

311 :デフォルトの名無しさん:2009/11/12(木) 12:55:27
普通cp932だとおもうが

312 :デフォルトの名無しさん:2009/11/12(木) 12:58:56
cp932

313 :デフォルトの名無しさん:2009/11/12(木) 12:59:05
cp932

314 :デフォルトの名無しさん:2009/11/12(木) 13:15:57
utf-8

315 :デフォルトの名無しさん:2009/11/12(木) 13:20:48
euc-jp

316 :デフォルトの名無しさん:2009/11/12(木) 13:21:29
Latin-1

317 :デフォルトの名無しさん:2009/11/12(木) 13:22:43
で?

318 :デフォルトの名無しさん:2009/11/12(木) 15:11:08
>>306
さんくすです。307は違う人だけど、308も参考になりました。

319 :デフォルトの名無しさん:2009/11/12(木) 18:03:39
cp931

320 :デフォルトの名無しさん:2009/11/12(木) 18:55:46
cp65001

321 :デフォルトの名無しさん:2009/11/13(金) 12:41:00
>>298
[3,4,5][9:9+1]で[]が返る、っていうのがたまに使える

322 :デフォルトの名無しさん:2009/11/13(金) 14:30:51
>>331
それは普通に len([3,4,5]) > 9 で良くない?

323 :デフォルトの名無しさん:2009/11/13(金) 14:40:54
言いたいのはインデックスエラーを出さない方法じゃない?

324 :デフォルトの名無しさん:2009/11/13(金) 15:06:48
>>322
もちろん。「たまに」って書いたのは、こういうパターンの時。
if flags[i:i+2] == [101, 202]:
 ....
範囲と値の検査が同時にできる。

325 :デフォルトの名無しさん:2009/11/13(金) 15:15:57
あーなるほど。 >>323 の意味が判ったわ
確かに便利だ

326 :デフォルトの名無しさん:2009/11/13(金) 19:01:18
ValueErrorってどんなときに出ますか。いろいろ試してみたのですが、TypeErrorばかりが出てValueErrorが出ません。
またValueErrorとTypeErrorの使い分けの指針はありますか。

327 :デフォルトの名無しさん:2009/11/13(金) 19:28:24
>>> math.asin(2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: math domain error


328 :デフォルトの名無しさん:2009/11/13(金) 19:49:01
微妙な例だな

329 :デフォルトの名無しさん:2009/11/13(金) 19:58:34
int("hello")

330 :デフォルトの名無しさん:2009/11/13(金) 20:00:51
0 / 0

331 :デフォルトの名無しさん:2009/11/13(金) 20:06:39
math.tan(math.pi/2)

332 :デフォルトの名無しさん:2009/11/13(金) 20:07:49
>>330-331
デマ

333 :デフォルトの名無しさん:2009/11/13(金) 20:31:29
TypeErrorは、型が違う時。
例:math.cos("hello")

ValueErrorは、型は合ってるが中身が変な時。
例:int("hello")

http://docs.python.org/library/exceptions.html?highlight=valueerror+typeerror

334 :デフォルトの名無しさん:2009/11/13(金) 21:12:09
>>327-333
ありがとうございます。

335 :デフォルトの名無しさん:2009/11/13(金) 21:21:24
math.log(0)
math.log(-1)

336 :デフォルトの名無しさん:2009/11/14(土) 21:46:30
cmath.log(0)
cmath.log(-1)


337 :デフォルトの名無しさん:2009/11/15(日) 01:38:59
読めるように文字コードを変換したいんだけどインプットの文字コードは完全性が保証されない
(途中で切れたり、一部化けている可能性がある)。でも読めるところは読みたい場合って
どのようにしたらいいですかね?
今UTF-8からSJISをやっているんですがencode/decodeメソッドだと例外が発生しちゃうし・・・
nkfとか使えば出来るのだろうけどPython標準パッケージのみで何とかしたいのですが・・・

338 :デフォルトの名無しさん:2009/11/15(日) 01:49:26
.encode('shift_jis', 'ignore')

339 :337:2009/11/15(日) 04:15:01
>>338
おぉぅ、そんなオプションがあったのか。出来た
ありがとう

340 :デフォルトの名無しさん:2009/11/15(日) 21:36:24
入門書くらい読めよゆとり。

341 :デフォルトの名無しさん:2009/11/15(日) 22:34:48
入門書なんて読まないで良いからリファレンス読むべきかと

342 :デフォルトの名無しさん:2009/11/15(日) 22:39:38
あの訳のわからない日本語リファレンスか・・・

343 :デフォルトの名無しさん:2009/11/15(日) 22:41:02
GoでGoogleの姿勢がはっきりしたな

Python終了

344 :デフォルトの名無しさん:2009/11/15(日) 22:43:54
Googleは変態

345 :デフォルトの名無しさん:2009/11/15(日) 23:03:53
>>342
それなら英語読め

346 :デフォルトの名無しさん:2009/11/15(日) 23:05:47
グイドもgo開発に関わってるんだろうか

347 :デフォルトの名無しさん:2009/11/15(日) 23:06:30
>>343
Recommendation against Python?
http://groups.google.com/group/unladen-swallow/browse_thread/thread/4edbc406f544643e?pli=1

348 :デフォルトの名無しさん:2009/11/15(日) 23:09:07
Goもキワモノ言語っぽいし

349 :デフォルトの名無しさん:2009/11/15(日) 23:09:53
>>347
要約please

350 :デフォルトの名無しさん:2009/11/15(日) 23:14:36
スケールがどでかいもの作るなら素直にC++でも使えってことだ

351 :デフォルトの名無しさん:2009/11/15(日) 23:22:53
>>345
マジレスすると日本語されたから訳がわからないんじゃなくて
訳のわからない原文を訳しているから訳がわからない

352 :デフォルトの名無しさん:2009/11/15(日) 23:24:06
リファレンスって訳わからなかったっけ?
普通のリファレンスだと思うが・・・

353 :デフォルトの名無しさん:2009/11/15(日) 23:24:06
ポエムだと思って読め

354 :デフォルトの名無しさん:2009/11/15(日) 23:53:46
>>352
じゃあ聞くけどlistオブジェクトで呼べるメソッドと
そのメソッドが定義されているクラスはリファレンスの
何処を見れば判る?

355 :デフォルトの名無しさん:2009/11/16(月) 00:05:47
>>354
別の場所でも話題になっていたがライブラリリファレンスのビルトインまわりは
ドキュメントの質が特にひどいね

356 :デフォルトの名無しさん:2009/11/16(月) 00:07:18
>>354
help([])

357 :デフォルトの名無しさん:2009/11/16(月) 00:08:44
入門書嫁。

358 :デフォルトの名無しさん:2009/11/16(月) 00:09:52
俺の脳内を読め!

359 :デフォルトの名無しさん:2009/11/16(月) 00:10:23
昔から手つかずだよな。
俺はキーワードで list を入力して operations on で見に行く。

360 :デフォルトの名無しさん:2009/11/16(月) 01:39:27
>>356
英語だしリファレンスにするには説明が簡単すぎるよ(´・ω・`)

361 :デフォルトの名無しさん:2009/11/16(月) 02:28:26
つ 3.6 シーケンス型 str, unicode, list, tuple, buffer, xrange
つ 3.6.4 変更可能なシーケンス型

362 :デフォルトの名無しさん:2009/11/16(月) 08:33:13
>>361
これでPython初心者に「理解しろ」と言ってしまう奴はきっとモテないだろうなあ

363 :デフォルトの名無しさん:2009/11/16(月) 08:36:01
馬鹿よけだから仕方あるまい

364 :デフォルトの名無しさん:2009/11/16(月) 08:37:22
んな事言われても知らんがな

365 :デフォルトの名無しさん:2009/11/16(月) 08:38:02
>>364>>362に対するレスね

366 :デフォルトの名無しさん:2009/11/16(月) 08:45:02
釣れた釣れた。
ま,バカの遺伝子はそいつの世代で消え去るべきだよね〜。

367 :デフォルトの名無しさん:2009/11/16(月) 08:46:36
後釣り宣言かよw

368 :デフォルトの名無しさん:2009/11/16(月) 08:51:57
逆に釣られた362が哀れ

369 :デフォルトの名無しさん:2009/11/16(月) 18:18:09
キチガイ世にはばかる。

370 :デフォルトの名無しさん:2009/11/16(月) 19:33:31
捨て台詞大会

371 :デフォルトの名無しさん:2009/11/16(月) 20:06:56
非モテの博覧会。

372 :デフォルトの名無しさん:2009/11/16(月) 20:12:53
なにこのキモいスレと思ってスレタイを見たらPython本スレだったときの悲しさ

373 :デフォルトの名無しさん:2009/11/16(月) 20:29:45
みんな抑圧されてるのね

374 :デフォルトの名無しさん:2009/11/16(月) 20:42:23
スレ立ってから2ヶ月経っても400行ってねえし
スレ伸びたからみんなうれしいんだよ

375 :デフォルトの名無しさん:2009/11/16(月) 21:58:21
手段が目的の人が選ぶ言語

376 :デフォルトの名無しさん:2009/11/16(月) 22:11:51
>>375
低脳

377 :デフォルトの名無しさん:2009/11/16(月) 22:23:02
>>376
非モテ

378 :デフォルトの名無しさん:2009/11/16(月) 22:32:24
またruby厨の荒らしですか

379 :デフォルトの名無しさん:2009/11/16(月) 22:33:27
非モテ〜 非モテ〜 非モテ〜〜〜

380 :デフォルトの名無しさん:2009/11/16(月) 22:57:18
マイルド〜

381 :デフォルトの名無しさん:2009/11/16(月) 22:59:32
Pythonに都合の悪い話になるとRuby厨のせいかよw

382 :デフォルトの名無しさん:2009/11/16(月) 23:16:58
ティモテー
ティモテー
モルスァー

383 :デフォルトの名無しさん:2009/11/16(月) 23:56:22
>>381
phpは他言語に興味ないか自虐ネタに走るし、PerlもPythonには興味ないし、
Pythonスレを汚すのってRuby厨くらいしかいないんだよ。

384 :デフォルトの名無しさん:2009/11/17(火) 00:50:09
誰か、komodo edit(openkomodo?)でpython使ってる人居ます?

385 :デフォルトの名無しさん:2009/11/17(火) 13:06:01
いいえ、これはEditraです

386 :デフォルトの名無しさん:2009/11/17(火) 13:51:35
なんかRubyにトラウマを持っている人がいるな。可哀想に。
Rubyなんか忘れたらいいよ、そのほうが楽しい人生遅れるよ


387 :デフォルトの名無しさん:2009/11/17(火) 14:45:28
RubyじゃなくてRuby「厨」ね


388 :デフォルトの名無しさん:2009/11/17(火) 15:26:11
>>386
まったくだ。Python使ってるとRuby使う意味なんて皆無と言っていいから
Rubyは全く気にかけてない。
なのになぜかPythonスレにはRuby厨が来て荒らすんだよなぁ。

389 :デフォルトの名無しさん:2009/11/17(火) 15:34:52
this is abstract responses!
I know python programmer has foolish meadow (:

390 :デフォルトの名無しさん:2009/11/17(火) 17:42:05
>>388
両方使っている俺は来ちゃいけない訳か・・・

391 :デフォルトの名無しさん:2009/11/17(火) 17:50:50
python.el
で選択した領域のインデントを一括で下げる方法ってありましたでしょうか

392 :デフォルトの名無しさん:2009/11/17(火) 18:57:01
Rubyを先に覚えたんだけど
Pythonに興味があってこのスレ来たら
怖い人たちばっかりでかなり引いてしまった
今思えば馬鹿よけだったんだなぁと
もうすっかりPython漬けで
Rubyなんて全然使ってません
残念ながらRubyの必要性を感じない

393 :デフォルトの名無しさん:2009/11/17(火) 19:09:07
C#、Ruby、Pythonやってる俺的には
ここの怖い人たちが過疎スレの原因作ってるとしか思えない

394 :デフォルトの名無しさん:2009/11/17(火) 19:27:53
だって的外れなことしか言わないんだもん

395 :デフォルトの名無しさん:2009/11/17(火) 19:40:34
ネタが少ないっていう問題もあるやも。流れない水は腐るっていうし。

とりあえずお前らは数値かどうかの判定どうやってる?

396 :デフォルトの名無しさん:2009/11/17(火) 19:51:40
wxpythonとpyQtを比較した記事ないかなー

397 :デフォルトの名無しさん:2009/11/17(火) 20:05:03
>>395
try exceptで囲んでintで変換するだけ
unicodedata使うと多少スマートになるけどややこしいことはしない方がいい

398 :デフォルトの名無しさん:2009/11/17(火) 22:36:57
Pythonはどうしても必要なときしか使わないな(≒組み込まれていて使わざるを得ない場合)
Rubyの方がリファレンスマニュアルで頭を抱えることが少ないしコーディング量も少なくてすむ
配布すること自体まず無いから自分が使えれば困らないし

>>397
Pythonで書いていると例外をトラップしなければいけないことが多い・・・

399 :デフォルトの名無しさん:2009/11/17(火) 22:52:44
エラーなのに変な戻り値を返される方が困る

400 :デフォルトの名無しさん:2009/11/17(火) 22:55:37
A. エラーを示す戻り値をチェックし忘れて変な状態のまま処理続行
B. 例外を補足しないと止まる

どっちがいいのって話だね
Goは例外ないみたいだけど

401 :デフォルトの名無しさん:2009/11/17(火) 22:57:35
パッと書くときはAの方がラクチンだけど真面目に書くときはBの方が安心感あるな

402 :デフォルトの名無しさん:2009/11/17(火) 23:00:09
こういうときのお約束はこれだろ

>>398
っPerl

403 :デフォルトの名無しさん:2009/11/17(火) 23:39:12
>>399
エラーなのに変な戻り値ってどんな処理系だwww

>>402
Perlはソースを見ているだけで頭痛がするのでアリエナーイ

404 :デフォルトの名無しさん:2009/11/17(火) 23:43:46
irb(main):001:0> "d100".to_i
=> 0

うん、ありえないね
漏れPythonもRubyも使うけど普通にワロタ

405 :デフォルトの名無しさん:2009/11/17(火) 23:55:16
エラー処理しないで実行して、実際にエラーが起こったら変な具合に
実行続ける代わりにトレースバック出して止まるだけだから、
エラーが起こらないうちはBでもAでも楽チンなのは変わらない。

406 :デフォルトの名無しさん:2009/11/18(水) 00:09:29
>>404
オイオイ・・・リファレンスマニュアルを読めよ・・・
ttp://doc.okkez.net/static/187/method/String/i/to_i.html
>整数とみなせない文字があればそこまでを変換対象とします。変換対象が空文字列であれば 0 を返します。
↑の文が理解できればリファレンスマニュアルに沿った動作であり問題ないだろ?
動作が気に入らなきゃ該当メソッドをオーバーライドすれば良かろう
って激しくスレ違いだなw

そういえばPythonを使うようになってから気になっているんだがPythonって標準クラスライブラリに対する
メソッドの追加やメソッドのオーバーライドって出来ないのか?

407 :デフォルトの名無しさん:2009/11/18(水) 00:13:16
>>391
py-shift-region-rightとpy-shift-region-left
C-c >
C-C <


408 :デフォルトの名無しさん:2009/11/18(水) 00:22:38
>>406
んとね、to_iの戻り値から
* 変換した結果として0を返したのか
* 何も変換できるものがなかったから0を返したのか
区別が付かないのが嫌なの
リファレンスマニュアルに書いてあるとかそういう問題じゃなくてね

んでオーバーライドってのは笑うところだよね

409 :デフォルトの名無しさん:2009/11/18(水) 00:29:15
メソッドを「生やす」のって弊害のほうが大きい気がするんだけど、


410 :デフォルトの名無しさん:2009/11/18(水) 00:31:34
>>408
これはもう自己中乙って言って良いよなw
そしてやっぱり、リファレンスマニュアルを読まないのなw
>Kernel.#Integer,〜 も参照してください。
ご丁寧に書いてあるのに・・・

411 :デフォルトの名無しさん:2009/11/18(水) 00:33:10
はい、またキチガイ発生

412 :デフォルトの名無しさん:2009/11/18(水) 00:42:52
反論できなくなるとキチガイの捨て台詞ですか

これ以上はアンチスレでやった方が良いかな

413 :デフォルトの名無しさん:2009/11/18(水) 00:44:48
逃げやすい体質

414 :デフォルトの名無しさん:2009/11/18(水) 00:51:54
反論出来ないってか単に面倒だからだと思うが、それなりにエネルギーいるし。
pythonしか知らない俺からすれば408の方が的確な事言ってる気がするしな

415 :デフォルトの名無しさん:2009/11/18(水) 00:53:16
404は「設計が気に入らない」と言っただけでしょ。
それに対して「仕様通りの動作だ」とか言ってるのは論点がズレてるんだよ。

416 :デフォルトの名無しさん:2009/11/18(水) 00:55:40
メソッドオーバーライドして、他のモジュールの動作に影響が出たらどうすんの?
既存のクラスを継承した独自クラスで自分の好きな動作を実装したらいいじゃない。

417 :デフォルトの名無しさん:2009/11/18(水) 00:56:37
アパート借りに下見に行ったらデザインが気に食わなくて
不動産屋さんに言って断ろうと思ったら間取りどおりですよっていわれたみたいな

418 :デフォルトの名無しさん:2009/11/18(水) 00:57:48
ちょっとずつ動作の異なる複数のメソッドがあるよりも、
汎用的なひとつのメソッドがあるほうが良いな。
Kernel#Integerと string.to_i の動作の違いなんて覚えたくないし。

419 :デフォルトの名無しさん:2009/11/18(水) 01:01:13
>>417
その例えは微妙だなw
まあ敢えて乗っかるならその先はデザインの好みの問題だからなんとも。
少なくともここでやる話じゃないな

420 :デフォルトの名無しさん:2009/11/18(水) 01:03:07
>>416
オーバーライドとオーバーロードが混ざってる

421 :デフォルトの名無しさん:2009/11/18(水) 01:08:28
Pythonは強い動的型付け、Rubyは弱い動的型付け
動作に関して気に入らないなら好きの使えば?でFAだろ

422 :デフォルトの名無しさん:2009/11/18(水) 01:09:14
多項式を扱うライブラリでいいのない?

423 :デフォルトの名無しさん:2009/11/18(水) 01:22:04
>>404みたいな俺の思想が世界の常識みたいなのが居るから紛争が絶えないんだなw

424 :デフォルトの名無しさん:2009/11/18(水) 01:26:03
全角w君と呼ぼう

425 :デフォルトの名無しさん:2009/11/18(水) 01:26:37
じゃあ何のための例外機構だよ
まさか大域脱出のためとか…ググってワロタw

426 :デフォルトの名無しさん:2009/11/18(水) 07:57:43
例外はgotoのかわりに使うに決まってるだろ

427 :デフォルトの名無しさん:2009/11/18(水) 08:30:42
>>424
てかASCIIのwだと、「笑い」と打つのを略したことにならんだろう。

428 :デフォルトの名無しさん:2009/11/18(水) 10:53:53
>>422
SymPyとか?
http://code.google.com/p/sympy/
http://docs.sympy.org/

Polynomials Module
http://docs.sympy.org/modules/polynomials.html

429 :デフォルトの名無しさん:2009/11/18(水) 10:56:31
lol

430 :デフォルトの名無しさん:2009/11/18(水) 11:44:13
http://stackoverflow.com/questions/506748/symbolic-mathematics-python
http://thinkpython.blogspot.com/2005/03/symbolic-expressions-in-python.html
http://git.tiker.net/pymbolic.git

いっそじぶんで書いてみるってのも手だw
sympy は多機能すぎて追い駆けづらい…

431 :デフォルトの名無しさん:2009/11/18(水) 19:21:26
初心者過ぎてお恥ずかしいですが、助けてくださいorz
http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/helloworld.html
これをやろうとしていますが、「アプリケーションのテスト」のところで、
「次のコマンドで helloworld ディレクトリまでのパスを指定し、Web サーバーを起動します。
google_appengine/dev_appserver.py helloworld/」
からわからなくなりました。
コマンドプロンプトで実行するんでしょうか。
helloworldフォルダをどこにおくべきでしょうか。どう指定するのでしょうか。
よろしくお願いいたしますorz

432 :デフォルトの名無しさん:2009/11/18(水) 19:35:09
>>431
マルチポストすんな
どうせここの住民は向こうも見てるよ

433 :デフォルトの名無しさん:2009/11/18(水) 20:33:39
なんかRubyにトラウマ抱えている人が多いなあ。

Ruby で "hennano".to_i が 0 になるのは、Cのatoi()由来でしょ。awkとかperlとか古い言語はそうだし。
"abc".to_i が 0 になるのと、Integer("abc") で例外が投げられるのと、二種類用意されているんだから、使い分ければいいだけじゃん。
そんなに気にすることか?


434 :デフォルトの名無しさん:2009/11/18(水) 21:13:57
そのatoiがエラーを検出できない困ったちゃんなわけで

435 :デフォルトの名無しさん:2009/11/18(水) 21:20:41
だから例外を投げるバージョンも用意されているわけで


436 :デフォルトの名無しさん:2009/11/18(水) 21:33:14
Integer(x) と x.to_i の動作が、 Integer 型ではない String 型でも異なるというのが
気持ち悪いな。他は全部統一されてるのに。

そもそも、例外投げないバージョンが必要な理由がわからない。なんで一つじゃいけないの?
どっちが例外投げるバージョンだったか、なんていうバッドノウハウを増やさないといけない
論理的な理由があるの?

Cのatoiは、そもそも例外が無い言語だkら、エラーコードを使うとAPIが複雑になるという
理由が歩けど、例外のある言語がatoiと同じインタフェースにする必要性は無いと思う。

437 :デフォルトの名無しさん:2009/11/18(水) 21:35:30
俺Python好きだけど
誤変換放置するようなヤツの言うことよりRubyの動作のが納得できるわ

438 :デフォルトの名無しさん:2009/11/18(水) 22:03:45
宗教戦争でしか伸びない悲しいスレ

439 :デフォルトの名無しさん:2009/11/18(水) 22:04:07
2ちゃんで誤変換指摘する奴は荒らし

440 :デフォルトの名無しさん:2009/11/18(水) 22:19:41
Perl使いなのにこのスレにいる俺

441 :デフォルトの名無しさん:2009/11/18(水) 22:22:48
はっきりいって Ruby は糞
"abc".to_i が 0 って誤変換だろ
これじゃ品質を担保できないんだよ


442 :デフォルトの名無しさん:2009/11/18(水) 22:26:45
もうちょっと、上手くなってから来ようね

443 :デフォルトの名無しさん:2009/11/18(水) 22:29:04
それが僕には気持ちよかったから

444 :デフォルトの名無しさん:2009/11/18(水) 23:17:58
0120−444−444

445 :デフォルトの名無しさん:2009/11/18(水) 23:21:34
一番気持ちいいのはオナニーだよね

446 :デフォルトの名無しさん:2009/11/18(水) 23:23:08
電池の話はやめろ

447 :デフォルトの名無しさん:2009/11/18(水) 23:23:56
pass

448 :デフォルトの名無しさん:2009/11/19(木) 00:07:21
アナルの話も角電池の話もしてなだろ

449 :デフォルトの名無しさん:2009/11/19(木) 00:58:44
Python儲には使いやすいのを使うという発想が無いらしいからな

450 :デフォルトの名無しさん:2009/11/19(木) 01:04:37
def to_i(s):
try:
return int(s)
except ValueError, e:
return 0

451 :デフォルトの名無しさん:2009/11/19(木) 03:32:17
使いやすいからpython使ってますが

452 :デフォルトの名無しさん:2009/11/19(木) 07:22:42
>>436
>そもそも、例外投げないバージョンが必要な理由がわからない。なんで一つじゃいけないの?
>どっちが例外投げるバージョンだったか、なんていうバッドノウハウを増やさないといけない
>論理的な理由があるの?

お前なあ。
pythonだって、例外を投げるdict[]と投げないdict.get()が用意されているだろ。
str.find()は例外を投げないけどstr.index()は投げるだろ。
それを使い分けるのはバッドノウハウなのか?
一生懸命rubyの欠点をあげつらっているつもりだろうけど、pythonでもおんなじようなものだから、やめといたほうがいいよ。恥かくだけ。

rubyにトラウマ抱えている人は大変だなほんと。

453 :デフォルトの名無しさん:2009/11/19(木) 08:24:10
1行余計なのがスレが荒れる原因だよ

454 :デフォルトの名無しさん:2009/11/19(木) 08:29:38
ruby教信者は大変だなほんと。

455 :デフォルトの名無しさん:2009/11/19(木) 09:14:17
>>452
dict.get()は例外を投げないが
デフォルト値をちゃんと指定するようになってる
勝手に0を返したりとかはしない

456 :デフォルトの名無しさん:2009/11/19(木) 09:15:53
rubyより気が利くねぇ

457 :デフォルトの名無しさん:2009/11/19(木) 10:11:18
そういう細かい気遣いが大規模プロジェクトに使われる理由だろう

458 :デフォルトの名無しさん:2009/11/19(木) 11:11:36
まったくである

459 :デフォルトの名無しさん:2009/11/19(木) 11:17:53
str.find() は -1 を返すから見つからなかったことが判る。
一行を try-catch で囲うくらいなら if で分岐できたほうが良いので、find()が便利。
でも、部分文字列が見つかるはず && もっと大域のtry-catchにエラー処理を任せられるならば
if + raise よりも index() の方が便利。
どちらもエラー処理が可能だし、使い分けるための理由がちゃんとある。

460 :デフォルトの名無しさん:2009/11/19(木) 13:19:23
Python厨にC系のコードとか書かせたら
バッファオーバーランだらけになるんだろうな
入力値のチェックをしないらしいからな

461 :デフォルトの名無しさん:2009/11/19(木) 13:47:06
C経験者は多いと思う

462 :デフォルトの名無しさん:2009/11/19(木) 13:52:32
むしろC使ってたときは引数も戻り値もチェックしまくってたけど
Pythonを好んで使うような人は暗黙の何とかが嫌いだろ

463 :デフォルトの名無しさん:2009/11/19(木) 14:48:11
1

464 :デフォルトの名無しさん:2009/11/20(金) 02:56:26
PyPMってどうなの。
使いやすい?

465 :デフォルトの名無しさん:2009/11/24(火) 11:36:56
PythonでShift_JIS側で「−」「梶vを読み込むのってどうやったらいいですか?
UnicodeEncodeErrorになります
「〜」とかはうまくいったんですが上の2文字がUnicodeEncodeErrorになるのです

466 :デフォルトの名無しさん:2009/11/24(火) 11:43:35
>>465
http://pc12.2ch.net/test/read.cgi/tech/1256350845/230-286

467 :デフォルトの名無しさん:2009/11/24(火) 11:53:27
>>466
sitecustomize.pyで
import sys
sys.setdefaultencoding("cp932")
で設定したらいけました、ありがとう

468 :デフォルトの名無しさん:2009/11/28(土) 09:49:38
pythonってコード丸見えの状態で配布する以外方法はないですか?
Javaとか.NETもやりようによってはソースコード丸見えらしいですが、普通は見えないらしいです
pythonには隠す方法はないんですかね?

469 :デフォルトの名無しさん:2009/11/28(土) 09:59:23
>>468
いまいちピンと来ないんだが、コンパイル言語みたいにexeとかの実行方式で配布したいってこと?
スクリプト言語ではこれは無理なような気がするけど、py2exeもスクリプトファイル内包してたよな…
単純に配布時に見せたくないってだけだったら、zipなりlzhなりで固めてから配布すればいいだけだと思う

470 :デフォルトの名無しさん:2009/11/28(土) 10:09:31
>>469
すみません、目的を言うと、ある程度ソースコードの機密性を確保したいという事なんですが
やはりスクリプト言語は私の目的には合わないですかねー
非常にエレガントなpythonの記述法に興味を持ったのですが…

471 :デフォルトの名無しさん:2009/11/28(土) 10:14:47
Pythonのバイトコンパイルされたコード(.pyc/.pyo)は素人が中身見ても
わかんねえよ
ハッカー相手なら何やっても無駄だから諦めろ、それはどんな言語を使っても
同じ


472 :デフォルトの名無しさん:2009/11/28(土) 10:16:14
内容は全部Cで書いてpydにして、それを呼び出せば見えないね

473 :デフォルトの名無しさん:2009/11/28(土) 10:18:21
>>471
なるほど、コードをそのまま配布するわけじゃないんですね。
ありがとうございます。ぱっと見て分からなければ十分です。

474 :デフォルトの名無しさん:2009/11/28(土) 10:24:08
pyc/pyoは配布用ファイルというわけじゃないし。
素直に諦めてください。

475 :デフォルトの名無しさん:2009/11/28(土) 10:28:31
psyco

476 :デフォルトの名無しさん:2009/11/28(土) 10:29:24
cython

477 :デフォルトの名無しさん:2009/11/28(土) 10:29:31
>>473-474
.pyc/.pyoがあれば動くので、.pyを配布したくなければ配布する必要は無い
zipimportというJavaでいうjarのような機能もあるんで
.pyc/.pyoをさらにzipで固めてもいいよ
Windowsならpy2exeが手軽だが

478 :デフォルトの名無しさん:2009/11/28(土) 10:30:31
機密性ってどんな機密性?
ただ単にコード見られたくないだけなら
py2exe使えばわざわざ見る人は居ないと思うよ

479 :デフォルトの名無しさん:2009/11/28(土) 10:32:20
>>474
バイトコンパイルされたファイルを配布しても問題になることは普通ないと思う
あとは>>471と同じ
正直Reflector使えば笑えるくらい綺麗に出力される.NETよりマシ

480 :デフォルトの名無しさん:2009/11/28(土) 10:39:45
ありがとうございます
py2exeで十分な気がしてきました。
これもデコンパイラを使えば見えてしまうようですが、そこまでする相手には何をしても無駄ですよね

481 :デフォルトの名無しさん:2009/11/28(土) 23:51:04
LXRやGNU-GLOBALみたいにリンクつきHTMLでソースコードを読ませてくれるような
python向けのツールのお奨め教えてください。

482 :デフォルトの名無しさん:2009/11/29(日) 01:06:01
>>481
HTMLじゃないけど、ctagsでいいんじゃないだろうか

483 :デフォルトの名無しさん:2009/11/30(月) 07:17:02
ttp://morepypy.blogspot.com/2009/11/some-benchmarking.html
PyPy速いなあ

484 :デフォルトの名無しさん:2009/11/30(月) 07:28:55
PyPyにはまじで期待してる

485 :デフォルトの名無しさん:2009/11/30(月) 10:38:20
名前がなぁ…

486 :デフォルトの名無しさん:2009/11/30(月) 11:00:13
LLVMだっけ

487 :デフォルトの名無しさん:2009/11/30(月) 16:31:40
.pyo/.pycってアーキテクチャ違うマシンでもそのまま動く?

488 :デフォルトの名無しさん:2009/11/30(月) 17:01:49
ok

489 :デフォルトの名無しさん:2009/11/30(月) 20:34:01
pypyもバイトコード互換?

490 :デフォルトの名無しさん:2009/11/30(月) 21:50:47
変数がNoneであるかを判断するには
a == None と a is None のどちらがいいのでしょうか?

491 :デフォルトの名無しさん:2009/11/30(月) 21:53:13
MomiMomiはないの?

492 :デフォルトの名無しさん:2009/11/30(月) 22:26:49
>>490
not a

493 :デフォルトの名無しさん:2009/11/30(月) 22:43:06
それだと a = 0 のときも通っちゃうだろ

494 :デフォルトの名無しさん:2009/11/30(月) 23:56:29
>>490
is None が正解

495 :デフォルトの名無しさん:2009/11/30(月) 23:57:24
http://oldriver.org/python/pep-0008j.html
- None のようなシングルトンとの比較には、いつも「is」や「is not」を
使うべきである。

また「if x is not None」を表現するのに「if x」と書けることを知って
おくこと。たとえば、デフォルトで None が代入される変数や引数に、他
の値を持っていることをテストするときに使える。他の値には、False も
含まれることに注意。


496 :デフォルトの名無しさん:2009/12/01(火) 00:27:00
>>494
a == None
がダメな理由って何?

497 :デフォルトの名無しさん:2009/12/01(火) 00:28:48
馬鹿な実装だと遅い。

498 :デフォルトの名無しさん:2009/12/01(火) 00:53:33
こいつのコードは当てにならんという印

499 :デフォルトの名無しさん:2009/12/01(火) 01:00:31
こういうのって言語ごとに
どうやるか異なるからややこしい
統一してくれよ

500 :デフォルトの名無しさん:2009/12/01(火) 01:14:45
どれに統一するかで骨肉の争いが

501 :デフォルトの名無しさん:2009/12/01(火) 01:22:23
>>496
== はオーバーロード可能な演算子。
a.__eq__(other) の実装しだいでは、 a が None ではなくても a == None になり得る。
あと、 is の方が速い。

あとは、== は「同値」かどうかを判定するための演算子で、
is は「同一」かどうかを判定するための演算子。
シングルトンの性質上、「同一性」を判定するほうが正しい。

この辺は Java の equals() と == の違いと一緒。
個人的に、 == が同値で is が同一になっているPythonの方がJavaよりも好き。

502 :490:2009/12/01(火) 01:31:29
==とisの違いは理解してましたが、==はオーバーロード次第でバグのもとになるのですね
ありがとうございました

503 :デフォルトの名無しさん:2009/12/01(火) 02:00:03
>>495
まちがってね?

Also, beware of writing "if x" when you really mean "if x is not None"
-- e.g. when testing whether a variable or argument that defaults to
None was set to some other value.  The other value might have a type
(such as a container) that could be false in a boolean context!

"if x is not None" を意図しているときに "if x" と書いてしまわないように
注意してください。たとえば、デフォルト値を None に設定した変数や引数に他
の値が代入されたかどうかをテストするときに注意が必要です。「他の値」が、
boolean context で false になるような型 (たとえばコンテナなど) の場合も
あります。

504 :デフォルトの名無しさん:2009/12/01(火) 03:15:37
Python屋は暗黙の了解が嫌いとか言っているそばから
==じゃなくてisを使うのが当然だとかなんてダブルスタンダードwww

505 :デフォルトの名無しさん:2009/12/01(火) 03:57:25
釣れますか?よりも
日本語使えますか?と聞きたくなるレスだな

506 :デフォルトの名無しさん:2009/12/01(火) 04:46:59
ElementTreeでもこんなのがあった
結構はまりどころなのかも

http://effbot.org/zone/element.htm#truth-testing

507 :デフォルトの名無しさん:2009/12/01(火) 07:27:15
>>495
その日本語訳間違ってるな
原文と意味が違う

- Comparisons to singletons like None should always be done with
'is' or 'is not', never the equality operators.

Also, beware of writing "if x" when you really mean "if x is not None"
-- e.g. when testing whether a variable or argument that defaults to
None was set to some other value. The other value might have a type
(such as a container) that could be false in a boolean context!


508 :デフォルトの名無しさん:2009/12/01(火) 07:33:45
               _,.__
            ぇYにェt:、ヽ
           /´   `ミ、}} ハ
              {     i.j!゙レ' }
           !|i    i lj| |_,.ィ
           |l!{、川!l|lfT´ lヘ
               |!Y^t_lリi^| _,ゝ、)
          r'r_ノ   r' 〔
                  ⌒`

509 :デフォルトの名無しさん:2009/12/01(火) 07:34:42
>>503
概出だった
すまそ


510 :デフォルトの名無しさん:2009/12/01(火) 07:37:34
>>506
0 と '' と empty (コンテナ) と False と None をごっちゃにするのは perl の悪臭

511 :デフォルトの名無しさん:2009/12/01(火) 09:54:38
>>503 >>507
そこまでひどい間違いがあると
http://oldriver.org/python/pep-0008j.html
ほかにも間違ってる罠がありそうで怖くて参考にならないなw
原文読んだ方がいいわ


512 :デフォルトの名無しさん:2009/12/01(火) 10:22:03
あんまり叩くなよ
英文読める人にとっていちいち日本語に訳すことほど面倒なことはないんだから
訳してくれる人は貴重

513 :デフォルトの名無しさん:2009/12/01(火) 13:48:28
直す姿勢があればね

514 :デフォルトの名無しさん:2009/12/01(火) 15:08:43
>>512
それってblogの誤った情報と一緒だな
填って無駄に時間を消費する危険がある

515 :デフォルトの名無しさん:2009/12/01(火) 15:41:11
>>514
そうだね
漏れはpythonの内部コード表現=UNICODE=UTF-8っていうサイトを見て信じてひどい目にあった

516 :デフォルトの名無しさん:2009/12/01(火) 15:50:56
┐(´ー`)┌

517 :デフォルトの名無しさん:2009/12/01(火) 15:57:50
>>515
え、ちがうの?くわしい話を聞こうか

518 :デフォルトの名無しさん:2009/12/01(火) 16:27:27
中の人などいないって何回言えばわかんだよ!!!!

519 :デフォルトの名無しさん:2009/12/01(火) 16:31:37
Rubyをやればすっきり解決

520 :デフォルトの名無しさん:2009/12/01(火) 17:26:30
Rubyはたまに無性にやりたくなるけど、書き始めると萎える

521 :デフォルトの名無しさん:2009/12/01(火) 19:16:21
片手間に他言語で遊べるだけの脳みそがうらやましい

522 :デフォルトの名無しさん:2009/12/01(火) 19:45:56
Ruby一筋になればすっきり解決

523 :デフォルトの名無しさん:2009/12/01(火) 21:04:06
>>522
Rubyの使用を強制されることは少ないが
Pythonの使用を強制されることは結構ある

524 :デフォルトの名無しさん:2009/12/01(火) 22:09:44
確かに色々なアプリに組み込まれてるからな

525 :デフォルトの名無しさん:2009/12/02(水) 00:59:29
Rubyはツクールくらいだろw

526 :デフォルトの名無しさん:2009/12/02(水) 02:06:58
SketchUpもRubyだな

527 :デフォルトの名無しさん:2009/12/02(水) 08:29:21
みんなPython忘年会行く?

528 :デフォルトの名無しさん:2009/12/02(水) 08:32:11
うちの近所のつぼ八でやってくれたら行く

529 :デフォルトの名無しさん:2009/12/02(水) 08:37:12
キャバクラでやるなら行く

530 :デフォルトの名無しさん:2009/12/02(水) 09:19:42
嫌味なRuby厨が混ざってくるからいやだ。

531 :デフォルトの名無しさん:2009/12/02(水) 11:02:09
rubyは共産主義って感じ

532 :デフォルトの名無しさん:2009/12/02(水) 12:07:49
確かにそんな感じだが、成功した資本主義的なオープンソースなんて物に
お目にかかったことがない

533 :デフォルトの名無しさん:2009/12/02(水) 13:31:47
redmineがrubyなんだよな
truacより便利そうだから導入したいけど
導入方法がめんどくさい

534 :デフォルトの名無しさん:2009/12/02(水) 14:05:24
またRuby厨が荒らしてるのか

535 :デフォルトの名無しさん:2009/12/02(水) 14:20:42
単四て拡張してから行ったほうがいいですか?

536 :デフォルトの名無しさん:2009/12/03(木) 15:16:16
ちょっと手の込んだ3次元のグラフィックスを表示したり、印刷したりするのに
お勧めのライブラリってどれでしょうか?
pygame ?
web上でも表示できるとうれしいのですが

537 :デフォルトの名無しさん:2009/12/03(木) 15:21:23
>ちょっと手の込んだ3次元のグラフィック
アブストラクトで賞

538 :デフォルトの名無しさん:2009/12/03(木) 15:51:10
WebGLは来年まで出ないのか
googleの3次元描画してるやつって何で動いてるんだろ

539 :デフォルトの名無しさん:2009/12/03(木) 18:02:30
>>533
どこが面倒くさいんだ。
むしろTracより楽だろ。

540 :デフォルトの名無しさん:2009/12/04(金) 13:06:49
Ruby入れるのが面倒
RoRを入れるのが特に面倒

541 :デフォルトの名無しさん:2009/12/04(金) 15:03:00
>>538
IEが足引っぱって来年も出ない気がする。

542 :デフォルトの名無しさん:2009/12/04(金) 19:53:51
> RoRを入れるのが特に面倒

たった数十文字打ち込むのが面倒なの?
よくプログラミングできるね

543 :デフォルトの名無しさん:2009/12/04(金) 20:18:26
>>542
ニホンゴ リカイ デキマスカ?

544 :デフォルトの名無しさん:2009/12/04(金) 20:33:06
RoR対抗としてTurboGearsなんて物があるらしいが

545 :デフォルトの名無しさん:2009/12/04(金) 20:35:19
またruby厨が荒らしてますね

546 :デフォルトの名無しさん:2009/12/04(金) 22:18:48
Rubyは至高の言語

547 :デフォルトの名無しさん:2009/12/04(金) 22:31:26
同意

548 :デフォルトの名無しさん:2009/12/04(金) 23:00:01
Pythonは究極の言語

549 :デフォルトの名無しさん:2009/12/04(金) 23:02:41
異議あり

550 :デフォルトの名無しさん:2009/12/04(金) 23:25:42
異議を認めます

551 :デフォルトの名無しさん:2009/12/04(金) 23:55:15
PythonはRubyの次に最高!

552 :デフォルトの名無しさん:2009/12/05(土) 00:00:49
次の次に一票

553 :デフォルトの名無しさん:2009/12/05(土) 00:23:10
たしかにRubyの醜さ、使いづらさは最高だな
Perl以下だ

554 :デフォルトの名無しさん:2009/12/05(土) 00:39:46
祝 555 get !!!


555 :デフォルトの名無しさん:2009/12/05(土) 00:56:52
⊂(゚Д゚⊂⌒`つ≡≡≡≡≡≡≡≡≡≡

556 :デフォルトの名無しさん:2009/12/05(土) 10:20:05
アパッチで管理してるいろいろな物
svnとかに影響与えないように RoRを入れるのが難しいんだよ

557 :デフォルトの名無しさん:2009/12/05(土) 22:34:08
スレ違いだ
消えろ

558 :デフォルトの名無しさん:2009/12/05(土) 22:42:14
Fuck

559 :デフォルトの名無しさん:2009/12/06(日) 01:21:23
動画のサムネイルを作るスクリプトを作っているんだけど、
subprocess.Popenでffmpegを起動させてるのね。
それで、第一引数には配列を渡して、shell=Falseにして、pythonからffmpegが実行されるようにしたんだけど、
たまに python - cmd.exe - ffmpegっていう風に、直接 ffmpeg が実行されないことがあるんだよね。
cmd.exeが間に入ると、サブプロセスを強制終了させたときに、cmd.exeが死んでるのに
ffmpegが残っちゃうことがあるんだよね。
cmd.exeを間に入れないようにする方法か、孫プロセスも確実に一緒に終了させる方法ないかな。

560 :デフォルトの名無しさん:2009/12/06(日) 01:29:31
os.system() ?

561 :デフォルトの名無しさん:2009/12/06(日) 01:36:09
os.systemだと、標準出力とかが取れないので、ちょっとそれも困るんだよね。

562 :デフォルトの名無しさん:2009/12/06(日) 01:49:45
標準出力取りたいならos.popen ()は?

563 :デフォルトの名無しさん:2009/12/06(日) 02:30:07
popen2.popen3

564 :デフォルトの名無しさん:2009/12/06(日) 11:43:25
VPython使いたいんだけど↓みたくなって動かない。誰か直し方わかる?deian sid amd64です。

Python 2.5.4 (r254:67916, Nov 19 2009, 22:14:20)
[GCC 4.3.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from visual import *
>>> redbox=box(pos=vector(4,2,3), size=(8.,4.,6.),color=color.red)

(<unknown>:3864): GdkGLExt-WARNING **: Cannot open \xc0j\xf6\u0001

(<unknown>:3864): GdkGLExt-WARNING **: Cannot open \xe0\xca\xf6\u0001

glibmm-ERROR **:
unhandled exception (type std::exception) in signal handler:
what: Unable to get extension function: glCreateProgramObjectARB even though the extension is advertised.

aborting...

Process Python aborted


565 :デフォルトの名無しさん:2009/12/06(日) 12:58:28
>>559
このへんの話?
http://msdn.microsoft.com/ja-jp/library/cc429376.aspx

ほんとにcmd.exeが間に入ってるの?

566 :デフォルトの名無しさん:2009/12/06(日) 16:19:34
immutableなリテラルと同一性の関係ってどうなってる?
>>> a=1 # int is immutable
>>> b=1
>>> a is b
------> True

>>> a=() # tuple is immutable
>>> b=()
>>> a is b
------> True

>>> a=[] # list is mutable
>>> b=[]
>>> a is b
------> False

>>> a=(1,) # tuple and int are immutable
>>> b=(1,)
>>> a is b
------> False
なんで最後だけFalseになるのか分からない。

567 :デフォルトの名無しさん:2009/12/06(日) 16:59:19
is演算子は、immutableかどうかは関係なくて、参照で比較してるだけだよ。

1) int型の値が同一になるのは、-255〜256までの値のオブジェクトが内部的に使い回される実装になってるだけ。
2) 空のタプルも使い回される
3) 別のオブジェクトなので同一ではない
4) 別のオブジェクトなので同一ではない

------
>>> a = 256
>>> b = 256
>>> a is b
True

>>> a = 257
>>> b = 257
>>> a is b
False

短い文字列も使い回される
>>> a = "abc" * 6
>>> b = "abc" * 6
>>> a is b
True

>>> b = "abc" * 7
>>> a = "abc" * 7
>>> a is b
False


568 :デフォルトの名無しさん:2009/12/06(日) 17:19:28
>>566
基本的に実装依存。同一、あるひは非同一だと仮定してはいけない。
CPythonでもたとえば1は同一だけど1000は同一にならないとかあるし、バージョンによって
異なる可能性もある。

569 :デフォルトの名無しさん:2009/12/06(日) 17:34:35
にゃるへそ

570 :デフォルトの名無しさん:2009/12/07(月) 00:02:51
>>567-568
トンクス

同一性が保証されてるのはNone/True/Falseくらいなもんか。

571 :デフォルトの名無しさん:2009/12/07(月) 00:28:07
保証してるのかな?
思いつきでよく考えたわけじゃないが、
RPCとか分散python(not parallelpython)みたいなものなら
違う動きをしてもおかしくない気がする。



572 :デフォルトの名無しさん:2009/12/07(月) 09:13:07
>563
正直あの辺のネーミングセンスは何とかならんのかのう

と思ったら
DeprecationWarning: The popen2 module is deprecated. Use the subprocess module.
なのね

573 :デフォルトの名無しさん:2009/12/07(月) 21:22:24
urllib2とかもそうだがその場しのぎの名前が多くて笑える

574 :デフォルトの名無しさん:2009/12/07(月) 21:52:33
バージョン間の互換性のためにやってるからねぇ、 〜2 系のモジュール名は。
とりあえず Python 3 になったら整理されてるから、3が主流になるまでは我慢。

575 :デフォルトの名無しさん:2009/12/07(月) 21:55:10
名前なんてただの飾りです

576 :デフォルトの名無しさん:2009/12/07(月) 22:14:18
飾りはきれいなほうがいい

577 :デフォルトの名無しさん:2009/12/07(月) 23:12:36
>>575
おっぱい好きな人にはそれがわからんとです

578 :デフォルトの名無しさん:2009/12/07(月) 23:14:26
ん?てことは名前が飾りだと思ってる人間はおっぱい好きじゃないってことか?
それはおかしい

579 :デフォルトの名無しさん:2009/12/07(月) 23:18:17
逆だ、おっぱいが好きな人は名前にも拘るんだよ

580 :デフォルトの名無しさん:2009/12/07(月) 23:49:31
名は体を表す

581 :デフォルトの名無しさん:2009/12/07(月) 23:54:39
>>575
つまりこういうことか
import urllib2
urllib = urllib2

582 :デフォルトの名無しさん:2009/12/08(火) 00:28:11
>>581
2と3両対応のコード書きたいときとか必須だな

583 :デフォルトの名無しさん:2009/12/08(火) 02:50:42
>>582
いらないだろw

584 :デフォルトの名無しさん:2009/12/08(火) 08:47:34
http://docs.python.org/3.1/whatsnew/3.0.html#porting-to-python-3-0
> It is not recommended to try to write source code
> that runs unchanged under both Python 2.6 and 3.0

585 :デフォルトの名無しさん:2009/12/08(火) 10:00:26
>>581
import urllib2 as urllib, urllib2

586 :デフォルトの名無しさん:2009/12/08(火) 17:50:46
PILではKMeans法で作ったパレットでディザリングって
やっぱできないのかねぇ
パレットに設定された色はすげーきれいなんだけど


587 :デフォルトの名無しさん:2009/12/08(火) 23:27:50
>>581
うろ覚えだが、urllib2使ってても
時々urllibも同時に使う必要が有った気がする。

588 :デフォルトの名無しさん:2009/12/08(火) 23:35:31
VPython触ってみたけど、これまじすげーね。


589 :デフォルトの名無しさん:2009/12/08(火) 23:38:43
>>588
matplotlibと比べてどうなの?

590 :デフォルトの名無しさん:2009/12/09(水) 00:50:00
用途はぜんぜん別だな、VPythonは超簡単に3Dで玉や長方形や線を描いたり動かしたり出来る。

591 :デフォルトの名無しさん:2009/12/09(水) 00:52:06
>>584
どうして3を作った・・・

592 :デフォルトの名無しさん:2009/12/09(水) 00:52:51
>>591
別途書けってことだろ

593 :デフォルトの名無しさん:2009/12/09(水) 01:06:44
>>587
それはpython2だ
urllibにしかない関数がある。

594 :デフォルトの名無しさん:2009/12/09(水) 08:13:23
>>589
そう、matplotlibはグラフ作成だけどVPythonは3DCGを作れる。
一応グラフ作成昨日もちょっとあるけど、普通のグラフならmatplotlibの方が良いと思う。
OpenGLモジュールは面倒くて挫折したけどVPythonはほんと簡単。


595 :デフォルトの名無しさん:2009/12/09(水) 09:58:57
グラフだと matplotlib 対抗(?)で
Chaco(Enthoughtのやつ)なんてのもあるみたいだよ

どうインストールするのかよくわからんかった… orz

596 :デフォルトの名無しさん:2009/12/09(水) 16:05:53
VPython って Windows 環境だと
C: 以外のドライブにインストールすると正常に動作しない
なんとかならんのかね

597 :デフォルトの名無しさん:2009/12/09(水) 17:07:00
前スレの120あたりから
Vpythonで遊んでる人がいる

598 :デフォルトの名無しさん:2009/12/09(水) 18:14:40
3DといえばOpenGLをpytonで使うなら、どれがお勧め?

using Pyglet instead of PyOpenGL

とか言ってる人もいるけど

599 :デフォルトの名無しさん:2009/12/10(木) 09:28:11
blender

600 :デフォルトの名無しさん:2009/12/10(木) 14:00:45
pygletのサンプルみたら

@window.event
というのが良くわからない

601 :デフォルトの名無しさん:2009/12/10(木) 14:03:15
名前からエスパーするとデリゲートっぽい

602 :デフォルトの名無しさん:2009/12/10(木) 15:03:56
デリゲートゾーンのかゆみ

603 :デフォルトの名無しさん:2009/12/10(木) 15:57:38
blenderの中でvpython使うという手もあるか

604 :デフォルトの名無しさん:2009/12/10(木) 16:00:02
>>598
すまない、pytonは知らないや。

605 :デフォルトの名無しさん:2009/12/10(木) 19:51:20
角電池はまだ無理っす。

606 :デフォルトの名無しさん:2009/12/10(木) 21:27:38
pygletって何がいいの?


607 :デフォルトの名無しさん:2009/12/10(木) 21:28:55
なまえがかわいい

608 :デフォルトの名無しさん:2009/12/10(木) 22:06:57
PyPyのほうがかわいい

609 :デフォルトの名無しさん:2009/12/10(木) 22:26:55
pytonもかわいさでは負けてない

610 :デフォルトの名無しさん:2009/12/10(木) 22:28:35
ChinChinはないの?

611 :デフォルトの名無しさん:2009/12/10(木) 22:33:59
pychinkoならあるけど

612 :デフォルトの名無しさん:2009/12/10(木) 22:41:49
>>605
アッー!

613 :デフォルトの名無しさん:2009/12/10(木) 22:58:00
pygmonはないの?


614 :デフォルトの名無しさん:2009/12/10(木) 23:25:55
pyO2

615 :デフォルトの名無しさん:2009/12/11(金) 09:36:34
ダンジョーが可愛い

616 :デフォルトの名無しさん:2009/12/11(金) 12:34:59
Python 2.7 Release
http://www.python.org/download/releases/2.7/


617 :デフォルトの名無しさん:2009/12/11(金) 12:41:13
alpha 1 ね。一般人はまだ2.6使おう。

618 :デフォルトの名無しさん:2009/12/11(金) 12:41:40
3とはまた別にバージョンアップしてたのか

619 :デフォルトの名無しさん:2009/12/11(金) 12:43:32
>>618
これが2系の最終版になる予定。2.8は無い。

620 :デフォルトの名無しさん:2009/12/11(金) 12:54:34
>>617
一般人は2.5使うでしょ。

621 :デフォルトの名無しさん:2009/12/11(金) 13:23:10
2.6 ならともかく
一部のアプリが対応していないから2.5っていう
個人的事情を「一般人」を自称して言うのは問題人だね

622 :デフォルトの名無しさん:2009/12/11(金) 14:03:21
Debianとかまだ2.5だよ

623 :デフォルトの名無しさん:2009/12/11(金) 14:16:30
pythonを使うのは一般人じゃないよパイソニアだよ

624 :デフォルトの名無しさん:2009/12/11(金) 17:44:39
2.7って何が変わったん?
でも現実的には色んなモジュールが対応しない限り
2.5が使われ続けるよね。


625 :デフォルトの名無しさん:2009/12/11(金) 17:47:32
Pythonは下位互換性が高い言語だから、 2.5 用のモジュールの大半は何もしないでも 2.7 でも
動くよ。deprecated warningは大量に出るだろうけど。
Python 2.7 は Python 3.1 の機能のうち OrderedDictとか Python 2系でも動くものが移植されてる。
ほかにも、パフォーマンス向上とかしてる。

626 :デフォルトの名無しさん:2009/12/11(金) 19:33:55
python で MIME メールのデコードをしてたら
charset=windows-874 っていうのが混ざってて
LookupError: unknown encoding: windows-874
で堕ちてしまいました

unicode 化するときに python が知らないよってことなんだと思うのですが
こういう場合代替手段なんかはあるのでしょうか?
例外拾って無視するしかないですか?

(結局オリジナルのソースを見ると
中身は SPAM だということが分かったので
無視でもいいんですが・・・)

627 :デフォルトの名無しさん:2009/12/11(金) 19:51:27
windows-874          : タイ語 (Windows)

だな

628 :デフォルトの名無しさん:2009/12/11(金) 20:07:31
例外拾ってasciiとして処理しちゃえばいいんじゃね?

629 :デフォルトの名無しさん:2009/12/11(金) 20:12:42
from encodings.aliases import aliases
aliases['windows_874'] = 'cp874'

encodings._cache がキャッシュだから必要に応じて消してね

630 :デフォルトの名無しさん:2009/12/11(金) 21:42:03
>>827-
ありがとうございます

UnicodeDecodeError しか拾ってないのが原因でしたので

exception (UnicodeDecodeError, LookupError), e:
 hogehoge

で解決しました

631 :デフォルトの名無しさん:2009/12/11(金) 21:45:05
>>629
そんな方法もあるんですね
でも今回たまたま 874 だっただけで
今後不明なエンコーディング指定があるかも知れないし
悪意のあるメールだとエンコーディング情報も出鱈目の可能性を考えないといけないので
無意味なエンコーディング情報が渡されたときも正常に動作しないといけないのです

632 :デフォルトの名無しさん:2009/12/12(土) 01:08:19
ちょっと質問なんですけど、pythonでrubyみたいに
組み込みオブジェクトにメソッド追加したりはできるんでしょうか?

633 :デフォルトの名無しさん:2009/12/12(土) 01:17:48
Ruby最高!

634 :デフォルトの名無しさん:2009/12/12(土) 01:37:33
オチを先に言うなよwww
お前らホントにRubyキライなのな

635 :デフォルトの名無しさん:2009/12/12(土) 01:47:05
Rubyが嫌いっていうよりディスる連中がいるから嫌いになったという感じかな
まぁRuby自体もパッしないと思うけどなー

636 :デフォルトの名無しさん:2009/12/12(土) 01:53:32
そんなこと言いつつ本当はみんなRubyが大好きでたまらないんです

637 :632:2009/12/12(土) 01:55:38
え、ここでrubyってタブーなんすか。
例えば文字列オブジェクトに変換処理を追加したいんですよ。

>>> "aiueo".to_kana()
あいうえお

とかやりたいんですけど、なにか方法はないでしょうか?

638 :デフォルトの名無しさん:2009/12/12(土) 01:56:30
まぁRuby厨はRoRでアホなソーシャルネットワークを作って商売してればいいさ

639 :632:2009/12/12(土) 02:15:12
ひどいなぁ。
別に僕がruby厨かどうかは良いとして、どうなんでしょう、
組み込みオブジェクトをオーバーライドはできないんですか?
class strとかは意味なかったです。

640 :デフォルトの名無しさん:2009/12/12(土) 02:17:15
>オブジェクトにメソッド追加
そもそもPythonにメソッドチェーンの文化ないし、無理やりメソッドにしてもそんなにメリットないよ。
PythonならPythonらしく関数使いな。

641 :632:2009/12/12(土) 02:27:49
>>640
ありがとうございます。了解しました。これ試してから、
諦めて関数つかいます!http://www.shido.info/py/python9.html

642 :デフォルトの名無しさん:2009/12/12(土) 03:02:25
>>641
それだと(新しく定義した文字列クラスを ore_string として)こんな感じになるね。
>>> ore_string("aiueo").to_kana()

でもそれだったら
>>> to_kana("aiueo")
で十分じゃね?

643 :632:2009/12/12(土) 03:26:37
>>642
ありがとうございます!
そうなんですよね。結局"aiueo".to_kana()が出来なかったら、
コンストラクタ書く分どうしても見通しが悪いんですよね。

python3.0とかでいじれるようにとかは、、ならないですよね。
関数で行く事にします!

644 :デフォルトの名無しさん:2009/12/12(土) 04:10:38
半オブジェクト思考

645 :デフォルトの名無しさん:2009/12/12(土) 04:34:44
そこら辺はjoin()論争に通じるところがある気がするな。
我が道を行くって所があるから思想理解してないと違和感感じる事が多いと思う

646 :デフォルトの名無しさん:2009/12/12(土) 10:22:59
>>> "aiueo".to_kana()
あいうえお

俺Rubyやってるけどこう言うのマジキモイ
こういう表現出てくる度に吐き気がする
でもPythonのタブブロックはもっとキモイのでしょうがなくRubyやってる

647 :デフォルトの名無しさん:2009/12/12(土) 10:37:30
たいしたことするわけじゃないのにクラス/メソッド定義とかだるいわー
でも時々クラスも使いたくなる漏れには最高の言語です

648 :デフォルトの名無しさん:2009/12/12(土) 11:07:32
$ ruby -e '"aiueo".to_kana()'
-e:1: undefined method `to_kana' for "aiueo":String (NoMethodError)

>>646 は何を言ってるんだ?

649 :デフォルトの名無しさん:2009/12/12(土) 11:37:10
>>648
Rubyは既存のクラスにあとからメソッドを追加できるんだよ。

650 :デフォルトの名無しさん:2009/12/12(土) 11:48:54
>>649 それで?

651 :デフォルトの名無しさん:2009/12/12(土) 11:53:40
Stringクラスに便宜的なメソッドとしてto_kana()を追加する

"aiueo".to_kana()が可能になる。

FUCK

652 :デフォルトの名無しさん:2009/12/12(土) 11:56:29
書き捨てのスクリプトならともかく、普通は見通しが悪くなるだけだよねぇ


653 :632:2009/12/12(土) 13:52:54
考え方にもよると思うんですけど,ore_string作るってなった時に、
"aiueo".to_kanaとかできると、そのクラスとかテストのコードが
非常にすっきりします。

確かになんでもかんでもやるとあれですけど、閉じたコンテキストの中で
使用する分には便利な機能だと思います。
あとはweb系でvalidationとかにも、個人的には使いたいです。



654 :デフォルトの名無しさん:2009/12/12(土) 14:42:39
だからRubyを(r

655 :デフォルトの名無しさん:2009/12/12(土) 14:44:29
>>649
pythonでも出来るんじゃないの?

656 :632:2009/12/12(土) 14:53:48
>>655
是非、教えて下さい!

657 :デフォルトの名無しさん:2009/12/12(土) 15:16:31
組み込みの場合は継承使わないと無理だろ

658 :デフォルトの名無しさん:2009/12/12(土) 16:05:21
生 ruby は好きだけど rails は嫌いっていうひとは多い
理由は >>652 とおなじだと思う

659 :デフォルトの名無しさん:2009/12/12(土) 21:46:46
Railsは気持ち悪いなあ

なんか注目される前にフェードアウトしそうな雰囲気だけど
Djangoはどうなんだろうな

660 :デフォルトの名無しさん:2009/12/13(日) 00:43:57
今の状態で注目されてないんなら、注目されることはないな

661 :デフォルトの名無しさん:2009/12/13(日) 04:08:19
ロリってのはきもい


662 :デフォルトの名無しさん:2009/12/14(月) 03:35:35
version:Python 2.5.2 in Ubuntu
Tkinter.Tkを継承したAppというクラスのコンストラクタにおいて、
super(App,self).__init__()とすると、typeじゃなくて
これはclassオブジェクトだとエラーがでる。
なにがまずい?

http://gist.github.com/255551

663 :デフォルトの名無しさん:2009/12/14(月) 03:42:09
classic style classはsuper使えますん
Tk.__init__(self)にしろ

664 :デフォルトの名無しさん:2009/12/14(月) 09:54:54
Tkinter of laugh of laugh

665 :デフォルトの名無しさん:2009/12/14(月) 10:02:05
Pythonでimportかけてモジュールを読み込むとき、
読み込んだタイミングでそのPATHを再帰的に標準出力やログに書き出す方法ってない?

import文に割り込みをかけるような感じだと思うんだけど。

666 :デフォルトの名無しさん:2009/12/14(月) 10:22:09
その文脈で「再帰的に」ってどういう意味?

667 :デフォルトの名無しさん:2009/12/14(月) 10:26:55
目的を書かないと何がしたいのか分からない

668 :デフォルトの名無しさん:2009/12/14(月) 10:29:17
>>666
importするモジュールがまたimportを呼びだすから、必然的に再帰的になる。
>>667
今書いているプログラムが読み込んでいるモジュールのスクリプトファイルの一覧が欲しい。
exe化を行うため。

669 :デフォルトの名無しさん:2009/12/14(月) 10:34:50
py2exe使え
modulefinder嫁

670 :デフォルトの名無しさん:2009/12/14(月) 10:46:37
C:\> python -v

671 :デフォルトの名無しさん:2009/12/14(月) 11:05:31
sys.modules()

672 :デフォルトの名無しさん:2009/12/14(月) 12:16:22
pylabのグラフをパワーポイントに貼りたいんだけど
画像としてしか貼れないので、貼った後の編集ができない
pylabはsvg形式では保存できるらしいけどsvgをパワーポイントに貼る方法がわからない

673 :デフォルトの名無しさん:2009/12/14(月) 12:17:08
python関係なくなっちゃった

674 :デフォルトの名無しさん:2009/12/14(月) 12:31:57
pylabがオフィスでも扱える形式でグラフ吐いてくれるといいのに

675 :デフォルトの名無しさん:2009/12/14(月) 13:33:46
pythonって教育用言語として設計されたのか。
知らなかった。

676 :デフォルトの名無しさん:2009/12/14(月) 13:46:27
pythonのおかげでオブジェクト指向の思想や構造が分かった気がするよ。
じゃあさようならpython

677 :デフォルトの名無しさん:2009/12/14(月) 13:52:34
Rubyにようこそ!

678 :デフォルトの名無しさん:2009/12/14(月) 14:27:53
日記は自分のブログで

679 :デフォルトの名無しさん:2009/12/14(月) 20:07:40
初めてのプログラミングとしてPythonをはじめようと思うのですが、
2.5.xを入れるべきか2.6.xを入れるべきか迷っています。
もしよろしければアドバイスをお願いいたします

680 :デフォルトの名無しさん:2009/12/14(月) 20:20:43
プログラミング入門用としてならどちらでもいいよ


681 :デフォルトの名無しさん:2009/12/14(月) 20:37:11
ていうかPC Unixならシステムのパッケージでpythonってのを入れると
入る奴を素直に使えばいいんじゃないかと。

682 :デフォルトの名無しさん:2009/12/15(火) 00:38:20
2.4以下は糞
勝手に入る香具師だと2.3とかだったりする

683 :デフォルトの名無しさん:2009/12/15(火) 00:40:22
Ubuntuは2.5だけど

684 :デフォルトの名無しさん:2009/12/15(火) 00:42:06
最新のUbuntuは2.6だ。

685 :デフォルトの名無しさん:2009/12/15(火) 00:50:46
なぜLinuxしかも特定ディストロの話

686 :デフォルトの名無しさん:2009/12/15(火) 02:28:09
CentOSには2.4.3

687 :デフォルトの名無しさん:2009/12/15(火) 06:05:28
どのOSのユーザが一番おおいのかな

688 :デフォルトの名無しさん:2009/12/15(火) 06:47:30
windows vistaかな

689 :デフォルトの名無しさん:2009/12/15(火) 07:03:21
自分でコンパイルしたら最新のが入るから
ちゃんと入れ直した方がいいよ

690 :デフォルトの名無しさん:2009/12/15(火) 07:52:11
バイナリのパッケージでいいよ
セキュリティーパッチやアップデートのたびに面倒くさいことになる
環境構築が趣味のやつなら止めないけど


691 :デフォルトの名無しさん:2009/12/15(火) 10:39:49
Rubyでいいよ

692 :デフォルトの名無しさん:2009/12/15(火) 13:14:01
Rubyは至高の言語

693 :デフォルトの名無しさん:2009/12/15(火) 13:21:10
↑こういう馬鹿が来るからrubyだけは要らん
lispとpythonとperlだけでよし

694 :デフォルトの名無しさん:2009/12/15(火) 13:27:41
perlはいいのかよ

695 :デフォルトの名無しさん:2009/12/15(火) 13:29:41
lispとpythonは用途が少し被っちゃうよ…

696 :デフォルトの名無しさん:2009/12/15(火) 13:49:04
いや、まずperlっしょ

697 :デフォルトの名無しさん:2009/12/15(火) 14:26:18
rubyってperlとSmalltalkの混ぜそこないだよな
好きな人にはそれがいいのかもしれんが

698 :デフォルトの名無しさん:2009/12/15(火) 16:15:34
実はまつもとゆきひろが自演してるだけで
rubyのユーザはたった1人なんだよ

699 :デフォルトの名無しさん:2009/12/15(火) 16:34:41
みなさんありがとうございます。
買った書籍が2.5を対象に書かれているようなので、2.5.x入れることにしました
今回はWindowsなのですが、Unixにも手をだすつもりだったのでとても参考になりました。

700 :デフォルトの名無しさん:2009/12/15(火) 19:28:56
>>697
糞 perl に納得がいかなくてブランチしたはずなのに
もろ perl を引き摺ってるお

701 :デフォルトの名無しさん:2009/12/16(水) 00:25:18
age

702 :デフォルトの名無しさん:2009/12/16(水) 13:45:21
ぱっぱいっぱいぱぴいあっっっぱぴあいあぱいあそん

703 :デフォルトの名無しさん:2009/12/16(水) 19:03:19
質問です

昔segwayのプロトタイプのプログラムはpythonですべて書いたと聞いたことがあるのですが、
pythonではモーターの制御とかロータリエンコーダの入力やジャイロセンサの入力
の処理までできるものなのでしょうか?

704 :デフォルトの名無しさん:2009/12/16(水) 21:58:21
yes we can

705 :デフォルトの名無しさん:2009/12/17(木) 00:14:36
>>703
組み込み系のPythonはどうなってるのか、まったく知らないが、PC用でよければ、
ctypes使うかCでpythonモジュール書くか、シリアルデバイスであればpySerialってのもあるらしい。
http://www.python.jp/doc/contrib/pySerial/README_JP.txt

けど、Pythonでモータ制御できるようにメーカーが積極的にそういうモジュールなりを用意しているかどうかは知らない。
LabViewとかの方が一般的なんじゃないかなぁ。

706 :デフォルトの名無しさん:2009/12/17(木) 06:22:31
>>703
Arduino使ってるとかかもね。

シリアルで通信すればおk

707 :デフォルトの名無しさん:2009/12/18(金) 01:54:10
ファイル開くのって、
f=open("foo.txt") か f=file("foo.txt") かどっちがいいの?

708 :デフォルトの名無しさん:2009/12/18(金) 02:02:26
>>707
open。以下マニュアルより
> file 型のコンストラクタです。
> ...
> ファイルを開くときは、このコンストラクタを直接呼ばずに open() を呼び出すのが望ましい方法です。
> file は型テストにより適しています (たとえば "isinstance(f, file)" と書くような)。

709 :デフォルトの名無しさん:2009/12/19(土) 02:14:58
fileに移行したのも今となってはいい思い出w

710 :デフォルトの名無しさん:2009/12/22(火) 11:29:47
マックでctypes経由で使うようなpythonのライブラリは
時々うごかないらしいけど
pythonは基本的にwindowsかlinuxが前提になってるってことでいいの?
マックはあまり使われない?

711 :デフォルトの名無しさん:2009/12/22(火) 12:53:18
>>710
そんなことない。
LinuxやWindowsを前提としたライブラリはたくさんあるけれど、標準ライブラリのほとんどは
クロスプラットフォームに作られている。

712 :デフォルトの名無しさん:2009/12/22(火) 13:27:54
Unix系>Win>Mac

713 :デフォルトの名無しさん:2009/12/22(火) 14:51:22
Image-SIG MLによると PILがmacで動かないらしい


714 :デフォルトの名無しさん:2009/12/22(火) 17:23:12
しょっちゅうwin x64バイナリがないモジュールに出くわしてワロス

715 :デフォルトの名無しさん:2009/12/22(火) 18:09:10
Pythonモジュールコンパイルするのって、依存ライブラリが複雑でない限りは簡単だろ。
Visual C++ をインストールしていれば勝手にレジストリから検索してコンパイルしてくれるし、
Windows SDK も環境変数一つ設定しておくだけであとは全自動だし。

716 :デフォルトの名無しさん:2009/12/24(木) 08:54:33
py2exeの"bundle_files"ってなんですか?
2にするとwxPythonらしきファイルが消えて
GUIの表示もwxっぽくなくなりました

717 :デフォルトの名無しさん:2009/12/24(木) 12:11:52
PythonのC、C++組み込みについて書いてある本をアマゾンで探したけど見つからないんですがそもそもそういう本ってありますかね?

718 :デフォルトの名無しさん:2009/12/24(木) 13:00:54
ないと思うな
Cならヘッダとpython.exeとかのソース見た方が早い。ドキュメントにも大体載ってる
C++は知らん

719 :デフォルトの名無しさん:2009/12/24(木) 13:29:32
boost python

720 :デフォルトの名無しさん:2009/12/25(金) 20:10:16
test

721 :デフォルトの名無しさん:2009/12/25(金) 22:16:13
Python の Routes で URL をリマッピングする方法について質問です。
例えば、
http://foo.example.com/countries/1/states/7
http://foo.example.com/countries/2/states/4
を、
http://country-1.example.jp/state/7
http://country-2.example.jp/state/4
のような URL にマップしたいのですが実現可能でしょうか。
ASP.NET の <urlMappings> のような機能がやりたいことに近い感じです。
現在、コントローラは REST コントロラーとして以下のようにマップしています。
map.resource('state', 'states',
parent_resource=dict(member_name='country',
collection_name='countries'))


722 :721:2009/12/25(金) 22:19:37
補足です。自動でマップしたいということではなく、
http://foo.example.com/countries/1
の部分を
http://foobar.example.jp/
のような任意ドメインのルートに固定でマップしたいということです。




723 : 【豚】   【140円】 :2010/01/01(金) 03:16:14
!omikuji !dama

724 :デフォルトの名無しさん:2010/01/02(土) 07:45:16
dist-packagesとsite-packagesの違いってなんですか?

725 :デフォルトの名無しさん:2010/01/02(土) 11:27:20
/usr/lib/python
 Python標準ライブラリ

/usr/lib/python/site-packages
 Python非標準ライブラリ
 ユーザー・管理者用

/usr/lib/python/dist-packages
 Python非標準ライブラリ
 一部のディス鳥が作成・使用
 (ユーザー・管理者の管理下であるsite-packagesへ勝手に入れるわけにもいかないので)


726 :デフォルトの名無しさん:2010/01/02(土) 17:11:50
>>725
ありがとうございます。
site-packagesにぶち込めばいいんですね!

727 :デフォルトの名無しさん:2010/01/06(水) 10:47:14
iso-2022-jpで送られてくるデータを
data.decode( "utf-8" )すると、文字化けるんですが
どうにかなりませんか

728 :デフォルトの名無しさん:2010/01/06(水) 10:49:28
>>727
どうして
data.decode('iso-2022-jp')
しないんだ?

729 :デフォルトの名無しさん:2010/01/06(水) 10:50:00
iso-2022-jpでデコードすればいいんじゃないかい!?

730 :デフォルトの名無しさん:2010/01/06(水) 10:52:38
>>> print u"文字化けるんですが".encode("utf-8").decode("utf-8")
文字化けるんですが

731 :デフォルトの名無しさん:2010/01/06(水) 10:56:25
>>730
print u'\u6587\u5b57\u5316\u3051\u308b\u3093\u3067\u3059\u304c'.encode('utf-8').decode('utf-8')

732 :デフォルトの名無しさん:2010/01/06(水) 11:10:25
>>730
それ、ひょっとしてidle上でやってる?
Pythonに内蔵されているインタラクティブシェルは大丈夫なんだけど、PythonでPythonの
インタラクティブシェルを作るとそうなってしまう。
Python3では発生しない問題だし、Python2系でも回避可能な問題だけど、idleはハマる。

733 :デフォルトの名無しさん:2010/01/07(木) 00:12:11
>>728
ありがとうございます。
data.decode( "iso-2022-jp" )したところ、例外が多発しました。
たとえば、"思" などの漢字を変換できません。

734 :デフォルトの名無しさん:2010/01/07(木) 00:32:19
それはほんとにiso-2022-jpで送られてきてるのか?

735 :デフォルトの名無しさん:2010/01/07(木) 00:34:06
>>733
'\x1b$B;W\x1b(B'.decode('iso-2022-jp')

とかやると UnicodeDecodeError が発生するってこと?

736 :733:2010/01/07(木) 01:30:39
ircから送られてきてるデータをutf-8に変換したいんです。

737 :デフォルトの名無しさん:2010/01/07(木) 01:36:15
'iso2022_jp' codec can't decode bytes in position 5-6: illegal multibyte sequence
こんなメッセージでした。2連投さーせん

738 :デフォルトの名無しさん:2010/01/07(木) 01:48:32
>>737
それは、 irc がiso-2022-jpを強制しているわけではないので、
iso-2022-jp以外のエンコーディングのメッセージもircに流れているから
だと思われます。

try:
  umsg = msg.decode('iso-2022-jp')
except UnicodeDecodeError:
  try:
    umsg = msg.decode('utf-8')
  except:
    umsg = msg.decode('iso-2022-jp', replace)

739 :デフォルトの名無しさん:2010/01/07(木) 11:03:08
>>738
>umsg = msg.decode('iso-2022-jp', replace)

NameError: nane 'replace' is not defined

740 :デフォルトの名無しさん:2010/01/07(木) 11:04:45
739はアホの子

741 :738:2010/01/07(木) 11:10:44
>>739
ごめん、'replace' だ。

742 :デフォルトの名無しさん:2010/01/07(木) 11:26:27
ナネ?

743 :デフォルトの名無しさん:2010/01/07(木) 12:20:05
間違いを指摘してアホ呼ばわりされるのがPython。

744 :デフォルトの名無しさん:2010/01/07(木) 12:48:58
間違いを指摘して必死に言い訳するのがRuby

745 :デフォルトの名無しさん:2010/01/07(木) 18:58:42
App Engineの本がアマゾンから届いた。
お勧めPython本が「初めてのPython 第二版」になってた。
そのまま読むのを止めたので、他にどんな古い情報が書いてあるのか知らない。

746 :デフォルトの名無しさん:2010/01/08(金) 00:22:24
GAEはJavaの本しかないな

747 :デフォルトの名無しさん:2010/01/08(金) 09:38:22
黄緑色かなにかの google app engine本は
一応 python がターゲットなんじゃなかったっけ?

読んでないけど

748 :デフォルトの名無しさん:2010/01/08(金) 13:06:41
Google App Engineでpythonが動くそうですが
このGoogle App Engineというのはcgiで動かせばHPとして使うこともできるのでしょうか?

749 :デフォルトの名無しさん:2010/01/08(金) 14:10:27
一見分かりやすい釣りと見せかけて
実際は本当の初心者なんです

って雰囲気の裏の裏をかく高度な釣りだな?

750 :デフォルトの名無しさん:2010/01/08(金) 14:32:43
は?
そんなこと書き込む暇があったら答えろや、カス

751 :デフォルトの名無しさん:2010/01/08(金) 14:59:47
このあと、バカは放置され、放置されたバカが「答えられないんだろう」と涙目でシャウト、
だがそれも放置され哀愁漂うエンディングへと繋がります。

752 :748:2010/01/08(金) 15:00:39
>>749
htmlしかやってこなくて、プログラム自体は始めてなもので釣りではありません

753 :デフォルトの名無しさん:2010/01/08(金) 15:22:09
マジレスしとくと、いきなりGAEなんて始めずに
まずはPer/CGIやPHPから始めたほうがいいよ。

754 :デフォルトの名無しさん:2010/01/08(金) 16:02:53
身近にperlとphpが出来る人がいるのでpythonを覚えたいのですが
perlやphpよりも難しいでしょうか?

755 :デフォルトの名無しさん:2010/01/08(金) 16:17:52
>>745
>お勧めPython本が「初めてのPython 第二版」になってた。

書店で手に取って,同じところが気になった.
そして買わずに帰ってきた.

756 :デフォルトの名無しさん:2010/01/08(金) 16:48:17
蛙だけに

757 :デフォルトの名無しさん:2010/01/08(金) 17:28:54
名前を見ても「誰それ?」っていう人の書いた本をみんなが買うほど経済状態はよくないよね
何エキスパートか知らないけど

758 :デフォルトの名無しさん:2010/01/08(金) 17:47:53
またパイソニアが一人増えると良いなあ

759 :デフォルトの名無しさん:2010/01/08(金) 18:48:25
このスレ超和むwwwwwww

760 :デフォルトの名無しさん:2010/01/08(金) 18:50:01
あ?

761 :デフォルトの名無しさん:2010/01/08(金) 20:54:12
webprog板のphp住民と比べるとこのスレの住民が神に見える俺

762 :デフォルトの名無しさん:2010/01/09(土) 02:20:03
「あ、これGAEでやりたい」ってネタが出てから
公開するならきちんとやらなきゃ、って思い始めると
関連知識が足りないから資料集めて、
最低この本は読んどかなきゃって本が読み切れなくてまだ手がつかない。

ってことない?

763 :デフォルトの名無しさん:2010/01/09(土) 02:29:22
ない。

画面をクリアしようと思ったらclsかclearをos.systemで呼ぶ。
ctypesとFillConsoleOutputCharacterの使い方は後で調べる。

764 :デフォルトの名無しさん:2010/01/09(土) 06:42:40
洋書でも和書でもいいので、
詳しい話(言語仕様、バイトコードとか)が載ってるおすすめの本、教えてください
言語の進化が早く陳腐化が激しいそうであまりなさそうですが・・・

765 :デフォルトの名無しさん:2010/01/09(土) 09:29:03
それこそ公式ドキュメント + ソースじゃん

766 :デフォルトの名無しさん:2010/01/09(土) 10:01:39
このスレ読んで書店に行ってみた。GAEの新刊本があったよ。
値段の割に薄かったので買わなかったけど。ぼったくりか?

767 :デフォルトの名無しさん:2010/01/09(土) 10:36:11
>>759
       _, ._
     ( ・ω・) んもー
     ○={=}〇,          ( ´・ω・) もー
      |:::::::::\, ', ´          |o={=}o ,',,
   、、、、し、、`(.@)wwwwwwwwwしw((@)wwwwwwwwwwwwwwwwwwww

768 :デフォルトの名無しさん:2010/01/09(土) 17:07:05
草が増えてね?

769 :デフォルトの名無しさん:2010/01/09(土) 18:18:52
>>764
言語仕様
http://docs.python.org/reference/
バイトコード
http://docs.python.org/library/dis.html#python-bytecode-instructions

770 :デフォルトの名無しさん:2010/01/09(土) 19:29:04
dosで「python test.py」と打つとtest.pyが実行されますが
これをtest.pyのコードを直接dosに書いて実行することってできませんか?

771 :デフォルトの名無しさん:2010/01/09(土) 20:12:34
関連付けする

772 :デフォルトの名無しさん:2010/01/09(土) 21:25:19
764みたいなやつは目標設定が高すぎて結局なにも作り出せない脳内学者

773 :デフォルトの名無しさん:2010/01/09(土) 21:29:06
そんな、何かに駆り立てられるようにレッテル貼っても^_^;

774 :デフォルトの名無しさん:2010/01/10(日) 00:30:48
シャドーボクシングが得意なんだろw

775 :デフォルトの名無しさん:2010/01/10(日) 00:50:55
自分とは戦ってないな。
どっちかというと通り魔。

776 :デフォルトの名無しさん:2010/01/10(日) 02:30:06
>>775
774

777 :デフォルトの名無しさん:2010/01/10(日) 10:11:58
Perlでできる事はPythonでもできますか?

778 :デフォルトの名無しさん:2010/01/10(日) 10:13:37
どちらでもあなたのできることしかできません

779 :デフォルトの名無しさん:2010/01/10(日) 10:14:37
>>777
言語本体にできることは大差ないと思うよ
でもPerlにある○○ライブラリがPythonにないからといって怒らないでね

780 :デフォルトの名無しさん:2010/01/10(日) 10:31:57
>>777
PHPにできなくてPerlで出来ることがあると聞いたので疑問に思ってました
ありがとうございます
ライブラリについては必要なものは自分で移植してみます

781 :デフォルトの名無しさん:2010/01/10(日) 10:38:46
pythonのsqlite3でcommit()に失敗することがある(journalファイルができていてINSERTされない)あるのですが、commit()が失敗したかどうかどうすればわかるでしょうか?

782 :デフォルトの名無しさん:2010/01/10(日) 10:41:48
例外処理すればいいんでないの

783 :デフォルトの名無しさん:2010/01/10(日) 14:21:37
自前でdllをロードしてexecute関数に'commit'を渡して戻り値で確認

784 :デフォルトの名無しさん:2010/01/10(日) 19:14:12
>>782
commit()は失敗しても何も例外出していないようです・・・
C++のsqlite3だと戻り値ありますが、pythonのはあるんでしょうか

785 :デフォルトの名無しさん:2010/01/10(日) 19:27:51
OperationalErrorとか投げられてない?
再現コードが欲しい

786 :デフォルトの名無しさん:2010/01/10(日) 19:36:38
SQLite 8
http://pc11.2ch.net/test/read.cgi/db/1250225486/136-

787 :デフォルトの名無しさん:2010/01/10(日) 19:50:50
マルチポスト先で解決済みかよ
せめて結果報告くらいしてくれればいいのに

788 :デフォルトの名無しさん:2010/01/10(日) 19:57:22
>>738
の方法使えばアスキーアートもutfにできる?


789 :デフォルトの名無しさん:2010/01/10(日) 20:01:22
>>786はcommit失敗の原因は何かが問題であって
>>781はcommit失敗の検出が出来ないって問題でしょ?

内容が全然違うように思うんだけど。


790 :デフォルトの名無しさん:2010/01/10(日) 20:15:23
いやあ同じ症状だから参考になるかと思って
もしファイルシステムの問題ならどうしようもないなと

791 :デフォルトの名無しさん:2010/01/10(日) 20:30:20
ファイルシステムに原因があるのは別に良いとして(w
commitエラーを検出できないとなると結構深刻。

Python-2.6.4/Modules/_sqlite/connection.c 391-433
Python-2.6.4/Modules/_sqlite/util.c 48-105

ラッパーを見る限りは、NULLを返す(例外)か、Noneオブジェクトを返すみたいだけど。

792 :デフォルトの名無しさん:2010/01/10(日) 20:34:38
だからpython的にはsqliteからエラーが返ってくれば例外投げてるからそれ以上は対処しようがないんじゃないかと

793 :デフォルトの名無しさん:2010/01/10(日) 21:53:02
rc = sqlite3_prepare(self->db, "COMMIT", -1, &statement, &tail);
rc = pysqlite_step(statement, self);
rc = sqlite3_finalize(statement);

とりあえずこの行の直後に、エラーならprintf、とか入れてみたら

794 :デフォルトの名無しさん:2010/01/10(日) 23:29:51
Genshiつかってる人いたら教えてください。
phpで言うnl2br()みたいなのをやりたいんだけど、どうしたらいいでしょうか。
たとえば、
<div>一行目
二行目
三行目</div>
とあるそれぞれの\nの箇所に<br />を挿入するようなことをしたいんですが。
テンプレートに突っ込む前に改行を<br />に置換してみたらエスケープされてしまいました。

795 :デフォルトの名無しさん:2010/01/11(月) 00:08:56
\でエスケープされるのが嫌なら、raw文字列にしてみたら?

796 :794:2010/01/11(月) 00:41:00
あ、なるほど。
やってみます。ありがとう!

797 :794:2010/01/11(月) 00:56:45
って、raw文字列に変換する関数なんてあったっけ?
preタグでお茶を濁すことにします・・・。

798 :デフォルトの名無しさん:2010/01/11(月) 02:29:11
使ったこと無いけどApiDocs見てみた
<div> の中の文字列を\nで配列に分けて tag() の引数に入れて
配列の要素の間(改行になっていた場所)に tag.br() とか Element('br') を入れてみるとか?

799 :デフォルトの名無しさん:2010/01/11(月) 02:31:58
strip_markup=Trueあたりも試してみるといいかも

800 :デフォルトの名無しさん:2010/01/11(月) 12:05:13
うん。いいかもね。

801 :794:2010/01/12(火) 01:00:01
なんとはなしに見にきたらうおおありがとう!
それやってみます。やる前にSQLAlchemyでコケてて先になるけど。メモして取っとく。

802 :デフォルトの名無しさん:2010/01/12(火) 11:03:51
try:
f = open(...);
finally:
f.close();

これでエラーでないんだけど、こういう書き方って一般的?

803 :デフォルトの名無しさん:2010/01/12(火) 11:09:28
>>802
f = open() が IOError を投げたら、 f は未初期化変数になる。
それを f.close() しようとしたら、エラー名忘れたけどランタイムエラーになるはず。

Python 2.4 でも動くようにするなら、
f = open(...)
try:
 fを使った処理
finally:
 f.close()

Python 2.4 を切り捨てるなら、
from __future__ import with_statement
with open(...) as f:
 fを使った処理

804 :デフォルトの名無しさん:2010/01/12(火) 13:59:05
>>803
thx

805 :デフォルトの名無しさん:2010/01/12(火) 14:20:23
>>794
置換した方が速い

806 :デフォルトの名無しさん:2010/01/12(火) 15:38:21
>>801
>SQLAlchemyでコケてて

何かコツが分かったら漏れにも教えてくれ

807 :!dama:2010/01/12(火) 15:42:56
>>802
なんで;が・・・

try:
f = None
f = open(...)
finally:
if f:
f.close()

これで2.4以下でも以上でも動く

808 :デフォルトの名無しさん:2010/01/12(火) 17:46:50
>>806
いま困ってる内容はレベル低いw
manytomanyとかリレーション張るの設定するじゃん。あれの書き方とかでこけてるんだよ。
整理ついたらここかstackoverflowで質問しようと思う。ひとさまの役に立つ内容だったら書きにくるよ。
家でpython職場でphp書いてるとsyntax errorでまくるな

809 :デフォルトの名無しさん:2010/01/12(火) 21:12:21
複数行にわたって書く場合の「\」のあとにコメント書こうとしたら怒られた・・・

810 :デフォルトの名無しさん:2010/01/12(火) 21:30:53
そらそうよ

811 :デフォルトの名無しさん:2010/01/12(火) 23:16:42
そらそうよ、とは思うけど >809 の気持ちも分かるんだよなー

812 :デフォルトの名無しさん:2010/01/13(水) 00:26:13
hogehoge = fugafugafuga - # comment \
hagehage # 上の続き
って書けばいいのかな

813 :デフォルトの名無しさん:2010/01/13(水) 02:15:56
それだと\もコメントとみなされる

814 :デフォルトの名無しさん:2010/01/13(水) 09:04:55
hoge = (fuga - # comment
hage)
でOK

815 :デフォルトの名無しさん:2010/01/13(水) 09:15:07
ハゲ言うのやめれ!!!くそ… orz

816 :デフォルトの名無しさん:2010/01/13(水) 11:51:10
# comment
hoge = (fuga - hage)
じゃイヤなのか

817 :デフォルトの名無しさん:2010/01/13(水) 12:10:44
>>816
それならこう書くべきでは

''' comment '''
hoge = (fuga - hage)

818 :デフォルトの名無しさん:2010/01/13(水) 12:11:51
たしかにそうだ。

819 :デフォルトの名無しさん:2010/01/13(水) 13:59:10
>>812
そもそも1行に収まらないような計算式は2行に分ける。

820 :デフォルトの名無しさん:2010/01/13(水) 14:00:08
Pythonはそういう言語だ。
まあ、2項演算子から書き始めたら一応前の行に続けることはできるけどな。

やっと書けた……

821 :デフォルトの名無しさん:2010/01/13(水) 19:47:49
ReportLabを使ってPDFを生成しようとしてるんだけど、
文章を縦書きにPDF化した人いる?

2点ほど不明な点があって困ってます。
・縦書きにすると横方向に左寄せになっている
・システムのフォントで縦書きに出力する方法が分からない

822 :デフォルトの名無しさん:2010/01/14(木) 14:14:48
Pylonsって人気ないのかのう
スレ立っては落ちると昔どっかで見た記憶があるけど

823 :デフォルトの名無しさん:2010/01/14(木) 19:59:06
web板のTurboGearsとかPylonsとかのスレは何度も堕ちてる

824 :デフォルトの名無しさん:2010/01/14(木) 22:19:34
Pylonsって向こうでもあんまり人気ないんじゃない?
Djangoと比べてだけど。

825 :デフォルトの名無しさん:2010/01/15(金) 00:48:42
wep.py は?

826 :デフォルトの名無しさん:2010/01/15(金) 01:06:04
wsgiをラップして自分用のFramework創ったらdjangoもweb.pyもいらなくなった

827 :デフォルトの名無しさん:2010/01/15(金) 01:49:05
テスト

828 :デフォルトの名無しさん:2010/01/15(金) 01:52:48
→↓
↑←


829 :デフォルトの名無しさん:2010/01/15(金) 10:16:06
822す。
phpから移ってきた俺みたいな底辺プログラマにはweb.pyありがたかった。
web.pyでひととおり作って、だいたいの仕組みを把握したところでほかのPylons触ってる。
>>824
そなのか。PylonsとTGとがそのうち統合するとかいう話があったので、主流になるに違いないと勘違いして取り組んだ俺が間抜けだっただけなのかもしれない。

830 :デフォルトの名無しさん:2010/01/15(金) 10:23:47
TurboGearsはとっくにPylonsベースになってるよ。

831 :デフォルトの名無しさん:2010/01/15(金) 11:34:06
えwPylonsがTGを取り込むもんだと思ってた!うーんCatWalkあるのいいよなあ
ここ数日構築ばっかりやってる気がする。選定は大事ですね

832 :デフォルトの名無しさん:2010/01/15(金) 18:34:04
【Python】TurboGearsスレ Part 1【Framework】
http://pc11.2ch.net/test/read.cgi/php/1176022606/


833 :デフォルトの名無しさん:2010/01/16(土) 01:56:08
お前らIDE何使ってる?win上で。

834 :デフォルトの名無しさん:2010/01/16(土) 02:01:40
meadow

835 :デフォルトの名無しさん:2010/01/16(土) 02:03:44
pyscripter

836 :デフォルトの名無しさん:2010/01/16(土) 02:24:40
エディタで充分
xyzzy

837 :デフォルトの名無しさん:2010/01/16(土) 02:35:44
この世にマトモな統合開発環境(笑)なんてあるのか?www
Visual Studioですら統合なんてお笑いなのに。

838 :デフォルトの名無しさん:2010/01/16(土) 02:40:36
eric4

839 :デフォルトの名無しさん:2010/01/16(土) 02:41:23
この世に無いものをマトモとするのは
あまりマトモじゃないかもな。

840 :デフォルトの名無しさん:2010/01/16(土) 10:01:35
gvimにautocomplpopとctagsとtlistだな

841 :デフォルトの名無しさん:2010/01/16(土) 13:35:24
Eclipse + PyDevだろ常考

842 :デフォルトの名無しさん:2010/01/16(土) 14:51:01
は?

843 :デフォルトの名無しさん:2010/01/16(土) 20:30:37
NetBeans IDE 6.8

844 :デフォルトの名無しさん:2010/01/16(土) 20:40:14
xyzzy

845 :デフォルトの名無しさん:2010/01/16(土) 20:48:34
EmEditor

846 :デフォルトの名無しさん:2010/01/16(土) 20:53:05
サクラエディタ

847 :デフォルトの名無しさん:2010/01/16(土) 20:58:12
Pylons分かる人いたら教えてください。
(Pylonsスレないし)

DBに対してINSERTして、その一部を取り出すという一連の動作をやりたいんだが、こういうのってどこに記述するのが適当なんでしょう。
ワンタイムコード発行して返すというのをやりたいのね。
まさかcontrollerで毎度毎度似たようなこと書くわけにもいかないし、helperに書けばいいのかな。


848 :デフォルトの名無しさん:2010/01/16(土) 23:14:59
>>821
> ・縦書きにすると横方向に左寄せになっている
横書きしか試したことないけど、
フォントを"HeiseiMin-W3"とか"HeiseiKakuGo-W5"とかにして
LinuxBoxとかで生成したPDFをWindowsで表示させると文字が左に寄る。
このこと?
なら、Windowsが上記フォントをMS Pゴシックへ関連付けしているのが
原因らしい。文字の開始位置は固定幅フォントを想定しているのに
実際の描画では可変幅フォントを使うので「う」とか記号とかが
やけに左にくる。
で、HeiseiMin-W3とかじゃなくてMS 明朝とかを登録・指定して
PDFを作ったら表示の問題は出ない。あたりまえ。
PDF生成するサーバにもMS 明朝とかを導入せねばならないのが少々
いやーんだけど。
PDFを見る側のWindowsのレジストリいじってフォント関連付けを
直してもいいのだろうが。

> ・システムのフォントで縦書きに出力する方法が分からない
ぐぐると普通に縦書きしてるページあるけど?


849 :デフォルトの名無しさん:2010/01/16(土) 23:41:53

ただ縦書きフォント使うだけなら
フォント名の前に「@」付ければ

850 :デフォルトの名無しさん:2010/01/17(日) 00:00:33
VisualStudio並にインテリセンスが働く、Python用IDEはどれだよ
インテリセンスの働かないテキストエディターとか、使ってられっかよ

851 :デフォルトの名無しさん:2010/01/17(日) 00:15:02
IDEなんて言葉を使っている時点でお前には一生満足できるものは見つからない

852 :デフォルトの名無しさん:2010/01/17(日) 00:18:06
前にもどっかでVisualStudioがどうのって暴れてる子いなかったっけ

853 :デフォルトの名無しさん:2010/01/17(日) 00:23:16
俺じゃないことは確かだな。
俺以外にも同じように思っている連中が大勢いるってことだろ。

854 :デフォルトの名無しさん:2010/01/17(日) 00:27:14
vimの補完機能を改造したら、結構良いものができそうだが。

855 :デフォルトの名無しさん:2010/01/17(日) 00:34:16
>848-849
どうもありがと。
チャットで嫌なことがあったから親切に答えてくれる人がいると心が和みます。

>MS Pゴシックへ関連付け
たぶんそれが原因の可能性が高いですね。haru free pdf libraryではずれないんだけど、
フォントの位置設定をかなり細かく指定しているみたいだし。

>で、HeiseiMin-W3とかじゃなくてMS 明朝とかを登録・指定して
>PDFを作ったら表示の問題は出ない。あたりまえ。
>フォント名の前に「@」付ければ
試してみたけど、だめだった。
というかReportLabはシステムフォントをフォント名で指定する機能が無いみたいだから無理。
最初にも書いたけどフォントファイルのPATHで指定するしか無い。

856 :デフォルトの名無しさん:2010/01/17(日) 01:14:34
Windowsならフォント名->フォントファイルのパスに変換できるAPIがありそう

857 :デフォルトの名無しさん:2010/01/17(日) 10:29:30
WindowsのPython25なんですが、コマンドプロンプト上で
XXX.py option
と打ったときに使われるインタプリタはどこで指定できるんでしょうか?


858 :デフォルトの名無しさん:2010/01/17(日) 10:36:09
>>857
Windowsは拡張子.pyにインタプリタが関連付けられてる
関連付けの状況はassocで調べられる

C:\>assoc .py
.py=Python.File

関連付けを変更するにはftype

C:\>ftype Python.File
Python.File="C:\Python26\python.exe" "%1" %*

859 :デフォルトの名無しさん:2010/01/17(日) 18:10:16
>>858
アドバイスありがとうございます。

assoc.py
拡張子.pyのファイルの関連付けが見つかりかません

なのでやはりこれ関係の問題のようです。GUI上ではpython.exeに結びついているはずなのに・・・
もう少し調べてみます。

860 :デフォルトの名無しさん:2010/01/17(日) 18:12:48
>>859
もちつけ

assoc .py
assoc.py

861 :デフォルトの名無しさん:2010/01/17(日) 18:18:34
こんなコマンドがあったとは・・・!

862 :デフォルトの名無しさん:2010/01/17(日) 18:39:40
assoc.py
assoc .py
でもどっちでも同じ結果でした・・・
Python26入れてからかWindows7にしてからおかしくなったような
ちょっとPython25再インストールしてみます
別のXPのパソコンでやったらちゃんと関連付けられていたので


863 :デフォルトの名無しさん:2010/01/17(日) 18:47:21
おーーー
再インストールしたら関連付け直りましたー
普段GUIで設定してましたが、こんなコマンドもあったんですね
ありがとうございました。

864 :デフォルトの名無しさん:2010/01/17(日) 19:52:42
他にHKEY_CURRENT_USER\Software\ClassesはHKEY_CLASSES_ROOTにオーバーレイされてる
GUIもassocもHKEY_CLASSES_ROOTを直接いじろうとするから手動で設定するしかないけど
この辺はカオス過ぎる

865 :デフォルトの名無しさん:2010/01/23(土) 03:05:19
新しいGILいいね
http://www.dabeaz.com/python/NewGIL.pdf

866 :デフォルトの名無しさん:2010/01/23(土) 16:10:23
3.2導入は確定なの?

867 :デフォルトの名無しさん:2010/01/24(日) 08:31:45
これでやっとマルチスレッディングでメニーコア使い倒せるんか?
multiprocessingだとnumpyのデータ共有するとか面倒なんだけど、メモリ共有並列処理も簡単になるんか。


868 :デフォルトの名無しさん:2010/01/24(日) 10:28:27
>>867
ムリ

869 :868:2010/01/24(日) 10:43:35
あ、ムリでもないのか。
CPU処理のうちでも、numpyみたいにGILを開放する系の処理では
マルチスレッドで並行処理できるから、 new GIL を使うとパフォーマンス上がる。
GILを開放しない系の処理では、new GILを使ってもシングルスレッドには
原理的に勝てない。

870 :デフォルトの名無しさん:2010/01/24(日) 15:44:48
マルチスレッドでマルチコア使えるようになるんなら
もしかして結構大事件?

871 :デフォルトの名無しさん:2010/01/24(日) 16:33:16
>>870
いや、マルチスレッドの効率が向上するだけで、基本は今までと変わらない。

Pythonのコードを実行したりPythonのオブジェクトを操作できるスレッドは
一個のままだし、逆にシステムコールを呼び出したりC言語で書かれた
重い処理を実行する場合は今までも並列化できていた。

872 :デフォルトの名無しさん:2010/01/25(月) 00:12:31
『programming python』読み始めた。
おもしろいんだけど、終わるのに半年くらいかかりそうだ。

873 :デフォルトの名無しさん:2010/01/25(月) 00:28:16
では半年後にまたお越しください

874 :デフォルトの名無しさん:2010/01/25(月) 01:04:43
なんであれだけわかりやすい資料でNew GILについて理解してないやつが沢山いるんだ?

875 :デフォルトの名無しさん:2010/01/25(月) 01:20:22
>>870
スピード命なら、PyCUDAを使うんだ。
CUDAのドライバーAPIを使って、nvccでコンパイルしてGPUに放り込むのがPyCUDA。
でかい行列の積を取るなんてのはアホ速いぞ

876 :デフォルトの名無しさん:2010/01/25(月) 01:24:15
そしてハード障害からくる計算の不一致に悩む一週間

877 :デフォルトの名無しさん:2010/01/25(月) 01:31:01
最近はATI使ってる人のほうが多そうだけど大丈夫か

878 :デフォルトの名無しさん:2010/01/25(月) 01:31:20
泣きながらTeslaに買い替えですね。わかります。
でもPythonでガス星雲生成のシミュレーションとか出来たら超ぱねぇっすよ

879 :デフォルトの名無しさん:2010/01/26(火) 13:41:21
これの日本語版てないんだろうか。
http://docs.python.org/search.html

880 :デフォルトの名無しさん:2010/01/26(火) 14:00:45
http://pythonjp.sourceforge.jp/dev/search.html

881 :デフォルトの名無しさん:2010/01/26(火) 14:19:46
>>880 Thanx!

882 :デフォルトの名無しさん:2010/01/26(火) 20:26:28
http://diveintopython3-ja.rdy.jp/

↑これはもっと評価されるべき。

883 :デフォルトの名無しさん:2010/01/26(火) 21:56:30
触発されたので wxPython in Action の日本語訳サイトつくってみる

884 :デフォルトの名無しさん:2010/01/26(火) 22:33:39
wxPython in ActionがGPLにでもなったのか?

885 :デフォルトの名無しさん:2010/01/27(水) 00:58:01
Dive into Python 3がもう訳されてるなら、
後は公式ドキュメントの日本語版が揃えばひとまず充分だな。

それで、まだ翻訳始まってないの?

886 :デフォルトの名無しさん:2010/01/27(水) 01:01:54
質問です

python入門者がこれからバリバリやっていこうと思うなら
どのバージョンのPythonから手をつければいいでしょうか?

887 :デフォルトの名無しさん:2010/01/27(水) 01:04:58
使い方によって違うんじゃね

888 :886:2010/01/27(水) 01:09:54
全く何のしがらみもないのですが・・・

889 :デフォルトの名無しさん:2010/01/27(水) 01:16:38
>>886
じゃあIronPythonで

890 :デフォルトの名無しさん:2010/01/27(水) 01:22:36
考えるの面倒だったらRubyでいいよ!

891 :デフォルトの名無しさん:2010/01/27(水) 10:24:09
ひょっとして、pysqlite2はパスワード付きSQLite3 DBをサポートしてない?

892 :デフォルトの名無しさん:2010/01/27(水) 11:52:29


893 :デフォルトの名無しさん:2010/01/27(水) 16:09:03
>>886
python 2をおすすめする。python 3はライブラリが対応してないし、日本語のドキュメントもほとんどない。

それに、python 2がある程度分かるようになったら、python 3に移るのもそう難しくないし。

894 :デフォルトの名無しさん:2010/01/27(水) 17:15:52
C++とCのどっちから勉強するのがいい?
と聞かれてCからと答えるのと似てるかな

895 :デフォルトの名無しさん:2010/01/27(水) 17:21:35
似てなくね?

896 :デフォルトの名無しさん:2010/01/27(水) 17:54:23
3から始めると最初すごく戸惑うよ。
3から始めた俺が言うんだから間違いない。

897 :デフォルトの名無しさん:2010/01/27(水) 18:00:44
お前はなにを(ry

898 :デフォルトの名無しさん:2010/01/27(水) 18:03:05
おれは、(ryとか嫌いだぜ。

言いたいことがあるならちゃんと(ry

899 :デフォルトの名無しさん:2010/01/27(水) 18:05:06
3は2の上位互換ですか?

900 :デフォルトの名無しさん:2010/01/27(水) 18:12:32
互換性はない

901 :デフォルトの名無しさん:2010/01/27(水) 18:12:42
互換性ないです。
いくつか細かい点が改正された。

902 :デフォルトの名無しさん:2010/01/27(水) 19:05:35
日本語っつーかunicodeまわりで苦労しないのは3のはずなんだが
それ以外は2をお勧めする
(とりあえず今の時点での話 / 来年の今頃同じ答えが返ってくるとは限らない)

903 :デフォルトの名無しさん:2010/01/27(水) 19:34:25
2で動くコードが3では動かなかったりその逆もしかりなわけで、
学習という観点では似ている別の言語だと思うべき。

で、フレームワークやライブラリの都合で2を使うハメになるのが現状。
そしてそこに書かれているコードを理解するために結局2に精通する必要がある。

Pythonのライブラリとかは、ソース見て理解しろ、が基本スタンスだからな。

904 :デフォルトの名無しさん:2010/01/27(水) 20:51:51
http://pc12.2ch.net/test/read.cgi/unix/1127388574/857-

905 :デフォルトの名無しさん:2010/01/27(水) 22:26:45
Python飽きた

906 :デフォルトの名無しさん:2010/01/27(水) 23:24:07
> Pythonのライブラリとかは、ソース見て理解しろ、が基本スタンスだからな。

マジかこれ?
もうPython勉強するのやめる

MSDNが充実しているマイクロソフト系の言語いくわ・・・

907 :デフォルトの名無しさん:2010/01/27(水) 23:31:04
>>906
F#メチャクチャ早いしおもろいぞ
OCamlでもいいけど

908 :デフォルトの名無しさん:2010/01/27(水) 23:36:45
MSDNのライブラリは読みにくいと思うのは俺だけか
なんとなくだが

909 :デフォルトの名無しさん:2010/01/27(水) 23:39:40
ダメ人間は逃げたまま帰ってこなくていいよ。

910 :デフォルトの名無しさん:2010/01/27(水) 23:40:14
>>908
天然か?
機械翻訳なんだから当たり前だろう

911 :デフォルトの名無しさん:2010/01/28(木) 03:43:23
>>906
MSDNは仕様の記述に間違いが多いので(ry

912 :デフォルトの名無しさん:2010/01/28(木) 13:06:42
>>906

でも「ソース読んだら解説サイトにのってない機能発見した!」
みたいな楽しみもあるんだけどな。


913 :デフォルトの名無しさん:2010/01/28(木) 13:16:31
シェルでdirやhelpすればいい

914 :デフォルトの名無しさん:2010/01/28(木) 14:31:13
>>912
そういう機能はある日突然なくなったりする心配はない?

915 :デフォルトの名無しさん:2010/01/28(木) 18:33:16
地球が明日なくなる可能性も厳密に言うとゼロじゃないよ。

916 :デフォルトの名無しさん:2010/01/28(木) 19:08:29
そうだ、俺に彼女ができる可能性もゼロじゃないぞ。

917 :デフォルトの名無しさん:2010/01/28(木) 19:11:36
>>916
ごめん、その可能性はないわ。

918 :デフォルトの名無しさん:2010/01/28(木) 19:35:49
努力しないとゼロは1にならないぜ?

919 :デフォルトの名無しさん:2010/01/28(木) 19:39:16
0はゼロ、1はイチ、ゼロはイチにならない

920 :デフォルトの名無しさん:2010/01/28(木) 19:45:10
※ただしイケメンに限る

921 :デフォルトの名無しさん:2010/01/28(木) 19:54:17
構文解析やりたいんだけど、PLYがいいかね?

922 :デフォルトの名無しさん:2010/01/29(金) 12:35:21
pythonってピヨンって読むの?

923 :デフォルトの名無しさん:2010/01/29(金) 12:52:38
ぴちょーん

924 :デフォルトの名無しさん:2010/01/29(金) 13:29:53
ぺ・チョンでしょ?

925 :デフォルトの名無しさん:2010/01/29(金) 17:09:51
おい、再帰バリバリのコードかいてたら再帰が深すぎますとか言われたぞ
末尾再帰最適化してないのかよ!!マジぶちぎれ

926 :デフォルトの名無しさん:2010/01/29(金) 17:13:25
Scheme使えよ

927 :デフォルトの名無しさん:2010/01/29(金) 17:17:07
schemeはライブラリが少ないだろ
なんで世の中のすべての言語はどこかしら欠陥があるんだ

928 :デフォルトの名無しさん:2010/01/29(金) 17:19:49
末尾呼出最適化な

929 :デフォルトの名無しさん:2010/01/29(金) 17:22:15
末尾再帰最適化されれば7行のコードが2行に収まるのに。
ちっくしょう

930 :デフォルトの名無しさん:2010/01/29(金) 18:30:55
Stackless Pythonの話もほとんど聞かなくなったしな

931 :デフォルトの名無しさん:2010/01/29(金) 19:25:43
>>925
確かデフォルトが1000段までだけど
どっかの設定ファイルで変えられたはず

932 :デフォルトの名無しさん:2010/01/29(金) 19:38:23
270 名前:パー速のローカルルールが変わりました[sage] 投稿日:2010/01/29(金) 19:29:04.88 ID:kPG21xgo
だれか書き込み代行 or モリタポください
http://pc12.2ch.net/test/read.cgi/tech/1253535109/
>>931
import sys
sys.setrecursionlimit(depth)

933 :デフォルトの名無しさん:2010/01/29(金) 20:25:36
stackless python使えよ

934 :デフォルトの名無しさん:2010/01/29(金) 20:35:09
Stackless Python 使っても sys.setrecursionlimit() しないと同じエラーになる。
sys.setrecursionlimit(10000) とかしたときに SEGV するかしないかの違い。

そういや、末尾再帰最適化するデコレータがどっかにあったな。

>>929
7行 vs 2行、できたら見せて。

935 :デフォルトの名無しさん:2010/01/29(金) 21:59:53
webのテキストエリアなどから入力されたpythonコードを安全に実行する
フレームワークはありませんか。公式ドキュメントを見てもそれっぽい
モジュールがdeprecatedになっていて使うのが不安です。

936 :デフォルトの名無しさん:2010/01/29(金) 22:07:33
代行れす
>>931
import sys
sys.setrecursionlimit(depth)

937 :デフォルトの名無しさん:2010/01/29(金) 22:09:16
ごめん
すぐ上にあったわ

938 :デフォルトの名無しさん:2010/01/29(金) 23:57:51
次スレ勃て誰か代行してくれんかのぅ

939 :デフォルトの名無しさん:2010/01/30(土) 00:01:03
>>927
JVMか.NET系の関数型言語なら、「ライブラリが少ない」ということは無いな
つまりScalaやF#

>>934
http://code.activestate.com/recipes/496691/
これやね

940 :デフォルトの名無しさん:2010/01/30(土) 00:54:28
>>939
ライブラリのインストールに手間取りたくない
pythonはとにかくライブラリの導入がめちゃくちゃ楽

941 :デフォルトの名無しさん:2010/01/30(土) 01:08:34
禿堂

942 :デフォルトの名無しさん:2010/01/30(土) 10:19:57
htmlを簡略表記から生成してくれる
lisp のcl-who
みたいなものないの?

943 :デフォルトの名無しさん:2010/01/30(土) 12:43:40
EXIF解析のuptodateなやつないかね。
EXIF.pyだと新しめのやつが読めないっぽい。

944 :デフォルトの名無しさん:2010/01/30(土) 13:17:09
今書いてるから少し待って

945 :デフォルトの名無しさん:2010/01/30(土) 13:18:56
pythonスクリプトがCネイティブより速い件について

946 :デフォルトの名無しさん:2010/01/30(土) 14:36:00
>>945
どんなケース?

947 :デフォルトの名無しさん:2010/01/30(土) 14:51:27
>>946
僕のはクーラーマスター。

948 :デフォルトの名無しさん:2010/01/30(土) 14:52:15
>>946
漏れは星野金属。

949 :デフォルトの名無しさん:2010/01/30(土) 14:58:44
>>945
pythonモジュールのいくつかはCネイティブだからね

950 :デフォルトの名無しさん:2010/01/30(土) 15:08:07
>>945
それはお前のCのコードがへたくそなのでは?

951 :デフォルトの名無しさん:2010/01/30(土) 15:30:20
すげえ入れ食いだ

952 :デフォルトの名無しさん:2010/01/30(土) 16:28:29
ttp://gist.github.com/289467
ちょっとおもしろい

953 :デフォルトの名無しさん:2010/01/30(土) 16:31:20
>>945
www


954 :デフォルトの名無しさん:2010/01/30(土) 17:12:06
どこのuncyclopediaだよ

955 :デフォルトの名無しさん:2010/01/30(土) 17:13:08
だから何?

956 :デフォルトの名無しさん:2010/01/30(土) 17:32:33
http://ja.uncyclopedia.info/wiki/Python#Python.E3.81.AE.E9.80.9F.E5.BA.A6

957 :デフォルトの名無しさん:2010/01/30(土) 17:42:57
>>952
最後爆笑

958 :デフォルトの名無しさん:2010/01/30(土) 17:45:42
> Python expert programmer
これFirst Year Haskellerじゃね

959 :デフォルトの名無しさん:2010/01/30(土) 20:08:02
Pythonコミュニティの有名人

* まつもとゆきひろ - 2000年ごろまで、USENET ニュースグループ comp.lang.python に出没していた。その熱心な投稿姿勢には誰もが引き込まれたという。

960 :デフォルトの名無しさん:2010/01/30(土) 20:12:18
Python-ml-jpでも見かけたぞ

961 :デフォルトの名無しさん:2010/01/31(日) 00:56:15
まぁ優秀な学者だし、不思議でもない。

962 :デフォルトの名無しさん:2010/01/31(日) 01:14:52
Ruby Creator Yukihiro "Matz" about Ruby, Functional Programming and Programming Languages Design
ttp://www.infoq.com/interviews/yukihiro-matz-language-design

963 :デフォルトの名無しさん:2010/01/31(日) 11:34:31
Matzは学者ではない。プログラマだ。

964 :デフォルトの名無しさん:2010/01/31(日) 12:17:12
Ruby厨死ね

965 :デフォルトの名無しさん:2010/01/31(日) 14:03:24
Matz嫌いじゃないけど、写真全面ってのはやりすぎ。
そこまで耐えられるビジュアルじゃないだろ・・・


966 :デフォルトの名無しさん:2010/01/31(日) 14:30:53
そうだな どうしておまえはそんなに顔を出したいんだ? とだけ訊いてみたい。

967 :デフォルトの名無しさん:2010/01/31(日) 14:54:40
すげえな。同じ匿名掲示板でも海外だと殆ど荒れない。
http://dis.4chan.org/read/prog/1180084983/


968 :デフォルトの名無しさん:2010/01/31(日) 15:01:50
過疎ってるだけじゃん

969 :デフォルトの名無しさん:2010/01/31(日) 16:08:41
> malloc() MY ANUS

970 :デフォルトの名無しさん:2010/01/31(日) 16:30:36
汚い void * だなあ

971 :デフォルトの名無しさん:2010/01/31(日) 16:36:20
そういうことにしたいのですね

972 :デフォルトの名無しさん:2010/01/31(日) 16:50:53
Pythonのお勉強 Part36
http://pc12.2ch.net/test/read.cgi/tech/1264924208/

973 :デフォルトの名無しさん:2010/01/31(日) 20:28:32
tkinterってなんて読むの?
てぃーきんたー?

974 :デフォルトの名無しさん:2010/01/31(日) 21:03:41
てぃーけー いんたー だろう

975 :質問:2010/01/31(日) 21:45:46
http://wiki.wxpython.org/Getting%20Started#Sizers
のサンプルを実行したら以下のようなエラーが出ました。
Pythonのバージョンはstackless python 2.6.4です。
原因がわからないのですが、どなたかお分かりになる方いらっしゃいませんか?

Traceback (most recent call last):
File "boxsizer.py", line 69, in <module>
frame = MainWindow(None, "Sample editor")
File "boxsizer.py", line 26, in __init__
self.Bind(wx.EVT_MENU, self.OnOpen, wx.ID_OPEN)
File "○○○\Python26\lib\site-packages\wx-2.8-msw-unicode\wx\_core.py", line 3917, in Bind
id = source.GetId()
AttributeError: 'int' object has no attribute 'GetId'

976 :質問:2010/01/31(日) 22:39:49
self.Bind(wx.EVT_MENU, self.OnOpen, wx.ID_OPEN)
という呼び出しなのに、

def Bind(self, event, handler, source=None, id=wx.ID_ANY, id2=wx.ID_ANY):
if source is not None:
id = source.GetId()

の id = source.GetId() の部分で
exceptions.AttributeError: 'int' object has no attribute 'GetId'
というエラーメッセージが出るのはよくわかりません。
すみません、Python勉強始めたばかりなので見落としあるかもです・・・

977 :質問:2010/01/31(日) 22:52:20
もしかすると、サンプルが想定するPythonバージョンがちょっと古いのかも。

978 :デフォルトの名無しさん:2010/01/31(日) 22:53:25
例が間違ってる悪寒
sourceがID_OPENって定数なのはピンとこない
self.Bind(wx.EVT_MENU, self.OnOpen, id=wx.ID_OPEN) とすれば動きそう

979 :デフォルトの名無しさん:2010/01/31(日) 23:18:48
26 self.Bind(wx.EVT_MENU, self.OnOpen, id=wx.ID_OPEN)
27 self.Bind(wx.EVT_MENU, self.OnExit, id=wx.ID_EXIT)
28 self.Bind(wx.EVT_MENU, self.OnAbout, id=wx.ID_ABOUT)

33 self.buttons.append(wx.Button(self, -1, "Button &"+`i`))

とやると動く。

980 :質問:2010/01/31(日) 23:30:01
>>979
>>978
ありがとうございます!
解決できました

981 :デフォルトの名無しさん:2010/02/01(月) 02:57:06
>>974
どうも

982 :デフォルトの名無しさん:2010/02/01(月) 10:16:11
>>943
自分もexifを使うことがあったのでpypiで検索かけてみた.
上位にあるやつならいいのかな?
http://pypi.python.org/pypi?%3Aaction=search&term=exif&submit=search

983 :デフォルトの名無しさん:2010/02/02(火) 10:01:00
教えて下さい。ネットにあるバイナリーファイルをダウンロードしたいんですけど
今は
f = urllib.urlopen(url)


fp = open(filename+'.exe','wb')
fp.write('%s' % (f.read()))
fp.close()
としています。でもファイル容量が大きいと大変なことになってしまいます。
逐次バッファーをファイルに書くやりかたがわかりません。
よろしくおねがいします。

984 :デフォルトの名無しさん:2010/02/02(火) 10:12:31
恐ろしいことをしてるな

985 :デフォルトの名無しさん:2010/02/02(火) 10:23:00
exeかいな。

f.read()の引数でサイズ指定して
fp.write()してfp.flush()ってループ回せば
良いんでない

986 :デフォルトの名無しさん:2010/02/02(火) 10:27:30
拡張子の箇所を見て震撼した

987 :デフォルトの名無しさん:2010/02/02(火) 10:31:24
fp.writeのところの、 '%s' % は要らない。
while True:
    buf = f.read(1024*1024)
    if not buf:
        break
    fp.write(buf)

988 :デフォルトの名無しさん:2010/02/02(火) 10:33:07
ありがとうございます。
帰宅したら試してみます。

989 :デフォルトの名無しさん:2010/02/02(火) 11:42:17
つーかurlretrieveではいかんのか

990 :デフォルトの名無しさん:2010/02/02(火) 15:08:38
shutil.copyfileobj

991 :デフォルトの名無しさん:2010/02/02(火) 16:34:45
>>989

>>987 だと残り何%とかって出すなり出来そうだけど

992 :デフォルトの名無しさん:2010/02/02(火) 20:36:28
989じゃないがurlretrieveのシグネチャを良く見るんだ

993 :デフォルトの名無しさん:2010/02/03(水) 00:06:50
平和な世の中だ。というか、
exeファイルをダウンロードするなら、チェックサムとか一応確認しようね。(したいよね。)


994 :デフォルトの名無しさん:2010/02/03(水) 01:18:07
ttp://hikozaemonchan.blogspot.com/2008/11/python-urlliburlretrieve.html
import sys, urllib
def _reporthook(blocknum, bs, size):
sys.stdout.write("%4d%%\r"%(blocknum*bs*100/size))
sys.stdout.flush()
if __name__ == "__main__":
uri = sys.argv[1]
urllib.urlretrieve(uri, uri[uri.rfind('/')+1:], _reporthook)
print

ttp://www.python.jp/doc/2.5/lib/module-urllib.html
urlretrieve(url[, filename[, reporthook[, data]]])
URL で表されるネットワーク上のオブジェクトを、必要に応じてローカルなファイルにコピーします。URL がローカルなファイルを
指定していたり、オブジェクトのコピーが正しくキャッシュされていれば、そのオブジェクトはコピーされません。タプル (filename,
headers) を返し、filename はローカルで見つかったオブジェクトに対するファイル名で、headers は urlopen() が返した (おそらく
キャッシュされているリモートの) オブジェクトに info() を適用して得られるものになります。 urlopen() と同じ例外を送出します。
2 つめの引数がある場合、オブジェクトのコピー先となるファイルの位置を指定します (もしなければ、ファイルの場所は一時ファイル
(tmpfile) の置き場になり、名前は適当につけられます)。 3 つめの引数がある場合、ネットワークとの接続が確立された際に一度呼び出
され、以降データのブロックが読み出されるたびに呼び出されるフック関数 (hook function) を指定します。フック関数には 3 つの引数が
渡されます; これまで転送されたブロック数のカウント、バイト単位で表されたブロックサイズ、ファイルの総サイズです。3 つ目の
ファイルの総サイズは、ファイル取得の際の応答時にファイルサイズを返さない古い FTP サーバでは -1 になります。
url が http: スキーム識別子を使っていた場合、オプション引数 data を与えることで POST リクエストを行うよう指定することが
できます (通常リクエストの形式は GET です)。 data 引数は標準の application/x-www-form-urlencoded 形式でなくてはなりません;
以下の urlencode() 関数を参照してください。


995 :デフォルトの名無しさん:2010/02/03(水) 01:19:03
バージョン 2.5 で 変更 された仕様: 'urlretrieve()' は、予想 (これは Content-Length ヘッダにより通知されるサイズです) よりも
取得できるデータ量が少ないことを検知した場合、 ContentTooShortError を発生します。これは、例えば、ダウンロードが中断された
場合などに発生します。
Content-Length は下限として扱われます: より多いデータがある場合、 urlretrieve はそのデータを読みますが、より少ないデータ
しか取得できない場合、これは exception を発生します。
このような場合にもダウンロードされたデータを取得することは可能で、これは exception インスタンスの content 属性に保存されています。
Content-Length ヘッダが無い場合、urlretrieve はダウンロードされたデータのサイズをチェックできず、単にそれを返します。
この場合は、ダウンロードは成功したと見なす必要があります。

>>992
ありがとうございました

996 :デフォルトの名無しさん:2010/02/03(水) 12:46:43
次スレ

Pythonのお勉強 Part36
http://pc12.2ch.net/test/read.cgi/tech/1264924208/

997 :デフォルトの名無しさん:2010/02/03(水) 12:52:37
埋め。1000ならオレはPythonの達人

998 :デフォルトの名無しさん:2010/02/03(水) 12:56:15
梅。1000なら、Pythonで人と会話できる

999 :デフォルトの名無しさん:2010/02/03(水) 12:57:10
↓こいつ童貞

1000 :デフォルトの名無しさん:2010/02/03(水) 13:02:50
つ鏡

次スレ

Pythonのお勉強 Part36
http://pc12.2ch.net/test/read.cgi/tech/1264924208/

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

183 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)