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

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

人生の敗北者でも使えるPythonのお勉強 Part7

1 :1:04/12/27 23:04:16
日本Pythonユーザ会
http://www.python.jp/Zope/
Python オフィシャルサイト
http://www.python.org/

前スレ
http://pc5.2ch.net/test/read.cgi/tech/1095684242/

2 :デフォルトの名無しさん:04/12/27 23:05:53
人生の敗北者でも使えるPythonのお勉強
2 http://pc3.2ch.net/test/read.cgi/tech/1020682294/
3 http://pc2.2ch.net/test/read.cgi/tech/1053955472/

【たぷるタソ】Pythonのお勉強 5【ハァハァ】
http://pc5.2ch.net/test/read.cgi/tech/1081264387/


3 :デフォルトの名無しさん:04/12/27 23:07:29
Pythonお勉強スレッド
http://pc.2ch.net/tech/kako/965/965815778.html
http://pc3.2ch.net/test/read.cgi/tech/1020718991/
http://pc3.2ch.net/test/read.cgi/tech/1020718991/
http://pc5.2ch.net/test/read.cgi/tech/1068824510/
http://pc5.2ch.net/test/read.cgi/tech/1081312810/
http://pc5.2ch.net/test/read.cgi/tech/1081312810/


4 :デフォルトの名無しさん:04/12/27 23:10:30
はじめまして。
今日からpythonを覚えてみようかと思います。

5 :デフォルトの名無しさん:04/12/27 23:14:33
>>1
もっとマシなスレタイは無かったのかよ

6 :デフォルトの名無しさん:04/12/27 23:37:56

    _  ∩
  ( ゚∀゚)彡 たっぷる!たっぷる!>>1
  (  ⊂彡
   |   | 
   し ⌒J

7 :デフォルトの名無しさん:04/12/28 00:26:55
>>1
ニート氏ね

8 :デフォルトの名無しさん:04/12/28 02:11:44
>>7
恥パイ二夜でお勉強にしとけばよかったのに・・

9 :デフォルトの名無しさん:04/12/28 10:08:03
    _  ∩
  ( ゚∀゚)彡 ピックル!ピックル!>>1
    ⊂彡

10 :デフォルトの名無しさん:04/12/28 14:31:22
「敗北者でも使える」って褒めなんじゃないか?

11 :デフォルトの名無しさん:04/12/28 14:36:16
バカチョン言語

12 :デフォルトの名無しさん:04/12/28 14:51:08
だれか>>6>>9を翻訳してください。

13 :デフォルトの名無しさん:04/12/28 14:52:15
>>6 右に6ビットシフト
>>9 右に9ビットシフト



14 :デフォルトの名無しさん:04/12/28 15:24:57
>>13
>>> >>6
 File "<stdin>", line 1
  >>6
   ^
SyntaxError: invalid syntax


15 :デフォルトの名無しさん:04/12/28 16:58:17
「敗北者」じゃなくて敗者じゃねーの?
ふつー。

16 :デフォルトの名無しさん:04/12/28 17:03:54
48 :名無しさん@恐縮です :04/12/28 16:42:17 ID:JDX8MPPf
  http://www.geocities.jp/doku_kiti/klack.html

  マジで最低だなこいつら。

17 :デフォルトの名無しさん:04/12/28 22:24:08
>>15
今なら負け犬のほうが良いかも。

人生の負け犬でも使えるPython

カコイイ!


18 :デフォルトの名無しさん:04/12/29 02:15:04
"""

この記号はなんと読むのですか?

19 :デフォルトの名無しさん:04/12/29 02:20:19
トリプルクオート

20 :デフォルトの名無しさん:04/12/29 08:26:57
PYTHON勉強したけど、作るものが無い…orz

洩れになにか課題をくれ

21 :デフォルトの名無しさん:04/12/29 08:43:59
>>20
文字コード自動判定モジュール

22 :デフォルトの名無しさん:04/12/29 10:12:12
>>19
6個ついているのにトリプルなの??????

23 :デフォルトの名無しさん:04/12/29 10:18:40
"は点が二つなのでダブルクォートと称するが、単一の(広い意味での)クォート文字でもある
それが3つでトリプルクォート
だから'''と書いても"""と書いても、トリプルクォートと呼ぶ

24 :20:04/12/29 10:37:35
文字コードについてぐぐってたら
こんなん見つけちゃった↓
ttp://apache.noexistent.com/~mak/kconv/kconv/index_jp.html

25 :デフォルトの名無しさん:04/12/29 10:43:51
ありもののことならPyKfの方がマシだと思うが。
http://www.gembook.jp/tsum/page.pys?wiki=PyKf

26 :デフォルトの名無しさん:04/12/30 00:08:51
>>20
MSN messenger 互換クライアント

27 :デフォルトの名無しさん:04/12/30 01:11:01
>>20
IP Messenger on KDE

28 :デフォルトの名無しさん:04/12/30 01:26:39
>>20
SNS

29 :デフォルトの名無しさん:04/12/30 01:43:28
"""""""""【スペシャルクォート (special quote)】"""""""""

30 :デフォルトの名無しさん:04/12/30 04:11:19
       ○
       ノ|)
  _| ̄|○ <し

        ○ノ
     ○ ノ|
  _| ̄|  <し

     ○ ○ノ
     人 ノ/
     〉 />

     ヽ○ノ ヽ○ノ
      /    /
     ノ)   ノ)


31 :デフォルトの名無しさん:04/12/30 05:15:55
ワラタ

32 :デフォルトの名無しさん:04/12/30 06:03:31
       ○
       ノ|)
  _| ̄|○ <し


          (○
        ○ノ
        |
  _| ̄|   > 


                    ミ
                      ○
           。゚○∠
            /
  _| ̄|     />


33 :デフォルトの名無しさん:04/12/30 06:04:29

                            ミ      ○
  _| ̄|     (´⌒;;;≡≡≡ _ /\○_  ⌒Y⌒Y 


  _| ̄|                  _| ̄|○
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄7 ミ
                                /   ○
                                |


           !||i○||i|!
             ノ)ヽ
  _| ̄|        ∧ ...


       ノ|)
  _| ̄|○ <し

34 :20:04/12/30 08:28:53
>>26-28
みんなメッサレベル高いやん…orz

じゃあ、方針変えます。
みんなでなんかテーマ決めて、それぞれソースを見せ合って、
プログラミングを勉強するのはどう??

みんなはそういうの興味ない??
仕事でPYTHON使ってるだけとか?



35 :デフォルトの名無しさん:04/12/30 09:19:03
>34
とりあえずCookbookで提示されているレベルのツールを進化させるとか。

36 :デフォルトの名無しさん:04/12/30 10:05:40
>>20
「Pythonで学ぶプログラム作法」を買って勉強する

37 :デフォルトの名無しさん:04/12/30 10:54:47
>>34
Pythonソフトウェア作法
http://www.python.jp/Zope/articles/SoftwareTools

38 :デフォルトの名無しさん:04/12/30 14:31:55
とりあえず>>30>>32-33のアニメーション化をPythonで実装すればいいんじゃねぇの?


39 :デフォルトの名無しさん:04/12/31 04:17:29
Pythonってジョイスティックあるけど欲しい?

40 :デフォルトの名無しさん:04/12/31 13:14:59
         ,.. 、
        ( ... \
   , - 、  ヽ ::::... ヽ
  ( :::... \ ヽ ::::;... `ー‐- 、
   \ :::.... ン´       `丶、
    \ ::/             ヽ
        ソ                 ',
     |                l   / ̄ ̄ ̄ ̄
      ヽ         ●   ●| <   ぬるぽ
       ',          ,○、  |   \_____________
         l             (_人_)|
       }            └┘ |
        |                  |
        |             l
      /´ヽ               /
       L.__,,ゝ、     _  r 〈
          "'' ‐- 、__{__}‐'′

41 :デフォルトの名無しさん:04/12/31 13:27:11
PythonってPlan9で動くのか?

42 :デフォルトの名無しさん:04/12/31 13:53:27
PLAN9のシンボルは何ファイルかに紛れてるが、サポートがあるふうではないな。

43 :デフォルトの名無しさん:04/12/31 15:07:52
  ∧_∧
  (,, ・∀・) ↓PSP            人 ガッ
  (    つ(+□::)-=ニ三三三三三◎<  >_∧∩
  |  |  |                  V`Д´)/←>>40
  (__)_)

44 :デフォルトの名無しさん:04/12/31 16:47:56
2.3 の Windows バイナリを non-admin で入れましたが,
numpy や scipy はインストーラが admin でしか入れることができません.
setup.py で入れるにも,VC++ を要求されます.

VC++ 無し,admin 権限無しで WindowsXP に numpy をインストールするには
どうしたら良いのか教えてください.

45 :デフォルトの名無しさん:04/12/31 17:47:41
2.4でZope使えてる人いる?どうやってるの?

46 :デフォルトの名無しさん:04/12/31 17:49:48
>>44
あのバイナリはzipfileモジュール使って解凍できる。
だからがんばって解凍、んで手動でコピー。

47 :デフォルトの名無しさん:04/12/31 18:31:58
>>45
たぶんこのスレにエスパーはいないよ?

48 :デフォルトの名無しさん:04/12/31 18:41:15
>>47
呼んだ?

49 :デフォルトの名無しさん:04/12/31 21:59:28
>41
かなり昔に移植されている
ttp://www.python.jp/pipermail/python-ml-jp/2001-December/000875.html
動作テストはされているような

>44
mingwでインストールできる

50 :デフォルトの名無しさん:05/01/01 00:23:47
ageオメ!

51 :デフォルトの名無しさん:05/01/01 05:42:33
Windows板2.4用のPILインストーラってないの?

52 :デフォルトの名無しさん:05/01/01 10:12:01
http://effbot.org/downloads/#PIL

53 :デフォルトの名無しさん:05/01/02 19:47:08
YYYY/MM/DDTHH:MM:SS形式の2つの時間の差を返す関数ありますか?


54 :デフォルトの名無しさん:05/01/02 20:07:50
>>53
とりあえずこれで出来はする。もっといい方法はある?
#!/usr/local/bin/python
import time
t1 = "2004/01/01T12:00:00"
t2 = "2005/12/31T18:00:00"
format = "%Y/%m/%dT%H:%M:%S"
print time.mktime(time.strptime(t2, format)) - time.mktime(time.strptime(t1, format))


55 :デフォルトの名無しさん:05/01/02 20:30:43
datetimeモジュールは使えない?

56 :デフォルトの名無しさん:05/01/02 21:54:03
datetime.isoformat()の逆、つまり文字列から時間を得るメソッドがないように思う。

57 :デフォルトの名無しさん:05/01/02 22:01:42
http://www.python.org/psf/grants/
PSFがJythonを後援するらしい。

58 :デフォルトの名無しさん:05/01/02 23:20:45
最近目立ってないからな、Jython。おもしろいのに。

59 :デフォルトの名無しさん:05/01/02 23:48:52
正月早々,タプルちゃんですよ

60 :デフォルトの名無しさん:05/01/02 23:52:58
Jythonの最初の開発者であったJim Huguninは、.NET上のPython実装である
IronPythonの開発者でもあり、その功績で今はMicrosoftにいる。MSはWindows
とOffice製品で吸い上げた豊富な資金で、オープンソース界からも人材を貪欲
に釣り上げているようだ。優れた頭脳の供給を断たれたら、オープンソースは
死ぬか、あるいはMSに隷属してほそぼそと生かされるかしかない。

61 :デフォルトの名無しさん:05/01/03 00:09:11
>>60
Jim Huguninなんて長いことJythonの開発・メンテナンスなんてやってないよ。


62 :デフォルトの名無しさん:05/01/03 01:17:06
Jython は j2sdk1.5 で使えないのでどうでもいいよ

63 :デフォルトの名無しさん:05/01/03 09:51:54
スケジュールとしては2005年5月にJDK1.5対応作業も予定されている。

64 :44:05/01/03 11:18:12
>>46
できました.普通に zip を展開して,
正しいディレクトリに放り込んであげるだけなんですね.

展開してみたことは以前にもあったのですが,
大文字のディレクトリ (DATA, PLATLIB など) があってビビってしまい,
インストーラの中の人しかできないのだと思い込んでおりました.

65 :デフォルトの名無しさん:05/01/05 01:37:23
>20
自分に興味のある分野のちょっとしたソフト作ることから始めれば?
ネットワークに興味あるなら簡単なサーバーとクライアント作ったりとか

66 :デフォルトの名無しさん:05/01/05 13:53:40
Adding Optional Static Typing to Python -- Part II
http://www.artima.com/weblogs/viewpost.jsp?thread=86641

動的型言語の利点を出来るだけ失わずに、より安全な方向に向かうようだ。

67 :デフォルトの名無しさん:05/01/05 14:17:19
>>20 エミュレータなんかどう?

68 :デフォルトの名無しさん:05/01/06 01:26:05
('A`)初心者です…

Pythonスレが乱立してますが、どれが本スレなのかわからんとです。

('A`)初心者です…

まるで日本におけるZopeのような混乱ぶりを思わせるとです。




('A`)初心者、いや小心者です…


69 :デフォルトの名無しさん:05/01/06 22:36:26
http://gnosis.cx/TPiP/chap2.txt
David Mertz氏はどうやって、文書を書いているのでしょう。
reST→Tex, html, etc.
なんかスクリプトとか公開してますか?

70 :デフォルトの名無しさん:05/01/06 22:56:57
Windowsでパイプで入ってきたものをもにゅもにゅも入するにはどうしたらいいですか

hoge.exe | spamegg.py > result.txt

みたいなことをしたいのです

71 :デフォルトの名無しさん:05/01/06 23:00:31
すれば?

72 :デフォルトの名無しさん:05/01/06 23:08:05
sys.stdin.read() でパイプから入ってきたデータ読めるでしょ。
それよりWindowsで*.pyなファイルに直接パイプで繋げたっけ?

73 :デフォルトの名無しさん:05/01/06 23:15:29
fileinputモジュールなら標準入力ととともにコマンドラインでのファイル名指定にも対応。

import fileinput
num = 1
for l in fileinput.input():
    print num, l,
    num += 1


74 :m9っ・∀・):05/01/07 00:14:59
>>69
本人に直接聞いてみよう。

75 :デフォルトの名無しさん:05/01/07 01:17:46
>>70-73
シェルが使いにくいから全部 python の中でやってしまった方が楽かと思います.


ところで Windows のコマンドプロンプトで動く curses はありませんか?
日本語の表示,文字色の変更,1 文字入力をやりたいです.
os.system() で色を変えるやつは,画面の色全てが変わるので使いものになりません.

76 :デフォルトの名無しさん:05/01/07 01:23:21
なんで今更cursesなんか…

telnetサーバとして実装して、teratermとか使った方が楽かもしれず。ネットワーク対応にもなる。

77 :デフォルトの名無しさん:05/01/07 02:04:05
>75
PDcursesっていう互換ライブラリがあるから、それのブリッジを作ればいけるかも。

78 :デフォルトの名無しさん:05/01/07 07:32:24
>>75
あったと思う。どっかで見た。暇があったら探しとく。しばし待て。

79 :75:05/01/07 09:08:14
>>76
curses って CUI を高機能にする定番かと思ってたんです.
では最近の方法を教えてください.
とりあえず telnet を試してみます.

80 :m9っ・∀・):05/01/07 12:03:57
WConioはどうだろう。
ttp://newcenturycomputers.net/projects/wconio.html
最下行に印字するとスクロールアップするという
DOS窓の古典的な制約を受けちゃうけど。日本語は通るモヨリ。

81 :デフォルトの名無しさん:05/01/07 23:10:47
>69
smart ASCII

ttp://www-106.ibm.com/developerworks/xml/library/x-tipt2dw.html



82 :デフォルトの名無しさん:05/01/08 01:31:18
普通にTKinterでよくね?

83 :デフォルトの名無しさん:05/01/09 05:56:30
漏れの独断の予見では3年後ぐらいに某ruby教祖さんは我らがPython陣営に加わる、ような気がする。
rubyの存在価値がこの先なくなるのではないかと内心自覚しはじめているのではなかろうか。
今も、そしてこれからもPythonはrubyを内包しているに違いない。つぅか方向性同じやし。
企業に喩えるとより膨大な資本を保有するPythonが子会社を買収して傘下に収めるといったイメージ。

84 :デフォルトの名無しさん:05/01/09 06:54:39
質問です。
スクリプトのサイズと実行速度に関係はありますか?
例えばコメントをたくさん書くと容量が大きくなりますが、
速度も遅くなるんでしょうか?

また実行速度を量る方法はありますか?

85 :デフォルトの名無しさん:05/01/09 07:44:21
>>84
内部コンパイラはコメントアウト部分を解釈しない。

実行環境を全く一致させる手段は無い。

86 :デフォルトの名無しさん:05/01/09 10:14:30
>>83
誤爆?

87 :デフォルトの名無しさん:05/01/09 10:29:44
>>83
そんなことはないと思うよ.
あの人は,ユーザにとっての言語の存在価値を全てと考えているのではなくて,
自分の趣味の部分も,自分なりのポリシーも,ユーザとの関わりもそれなりに
斟酌した上で,自分自身にとって存在価値があるかどうかを優先しているんじゃ
ないかな.結局本人に言語仕様どうこうしたいという希望があって,かつ
それを実行できる環境があれば,開発は続くし言語自体はなくならないと思う.
宗旨替えするユーザは多少いるかもしれないけどね.


88 :デフォルトの名無しさん:05/01/09 11:05:50
教祖はPythonには満足できなかったからRubyを作った。
何より、本人は今のRubyに満足なんだから、いまさら本人が宗旨替えする理由があろうはずもない。

問題は、今のRubyの状況に満足していない信者。つーか俺。

89 :75:05/01/09 11:10:57
>>80
ありがとうございます.試してみます.
Linux でも動かすからちょっと余計に書かないとならなさそうですが.

>>82
TKinter が最近の主流なんですか?
コマンドで動くやつなんですが,コマンドをファイルに書いて標準入力から入れる,
といったことができないと不便です.

90 :デフォルトの名無しさん:05/01/09 11:11:18
>>87
つぅか奴はグイドタソにベタボレだからruby捨てればいいのになw
なぜpythonを良いものにしようとしないのか不可解だよ

91 :デフォルトの名無しさん:05/01/09 13:44:49
>90
ある意味、「something better than python for me」を作った結果がRubyなんでわ。

92 :デフォルトの名無しさん:05/01/09 14:56:01
>>91
そのつもりなのにPythonの方が圧倒的に使われているし、
Pythonの方が圧倒的に使える、というわけだな。

93 :デフォルトの名無しさん:05/01/09 15:34:17
>>89
tkinterはデフォで使える唯一のGUIツールキットです。それだけ。
もちろん他のGUIもあるよ。Pythonは他言語との親和性が強いので。

>>92
「日本人が作った」という枕詞が無かったら見向きもしなかっただろうな、ruby
日本語のアドバンテージも今や無くなったし漏れにとってはどうでもいい言語の一つ(^^;
今は単純にpythonが面白い

94 :デフォルトの名無しさん:05/01/09 16:21:21
closureとか情報隠蔽とかではrubyが優位な点もあるね。

95 :デフォルトの名無しさん:05/01/09 16:42:58
>>94
モジュールもドキュメンテーションも少ないのに、それだけの理由でRubyを選ぶのは、教祖本人と言語オタだけ。


96 :デフォルトの名無しさん:05/01/09 16:45:07
いやいや、Martin Fowlerなんて大御所もいるぞ。
言語オタの一人に含まれるかもしれないが。

97 :デフォルトの名無しさん:05/01/09 19:11:50
Martin Fowlerが大御所。笑わせるな。

98 :デフォルトの名無しさん:05/01/09 19:13:42
真の大御所はPythonを使う。たとえば


99 :デフォルトの名無しさん:05/01/09 19:31:57
徳川家康

100 :デフォルトの名無しさん:05/01/09 19:34:20
おまいら多分スレ違いでつよ。
http://pc5.2ch.net/test/read.cgi/tech/1099804004/

101 :デフォルトの名無しさん:05/01/10 11:51:52
pyjugにwikiって置いてある?

102 :デフォルトの名無しさん:05/01/10 12:19:24
Matzなんか話題にするなよ。汚れるから。出すならMertzにしてくれ。

103 :デフォルトの名無しさん:05/01/10 15:00:41
python で mp3 の ID3 タグを管理するツールを
用意したいといじっているのですが unicode/encoding 周りで
良く分からないので教えていただけないでしょうか。

ライブラリ は eyeD3(http://eyed3.nicfit.net/ の 0.6.3)が v2 のタグを扱えるので
使いたいです(他に id3v2 扱えるものであればそれでもいいです)。

# ちなみに id3v1 であれば http://id3-py.sourceforge.net/
# id3info = ID3.ID3(mp3file)
# id3info[key] = unicode(EUCSTRING ,'japanese.euc-jp').encode('japanese.shift_jis')
# id3info.write()
# なんて叩き込むことができるようです。

import eyeD3
tag=eyeD3.Tag()
tag.link('01.mp3' )
tag.setArtist(unicode('中島 みゆき','japanese.euc_jp').encode('japanese.shift_jis'))
tag.update()

これだと
eyeD3/frames.py", line 560, in render
data = self.encoding +\
UnicodeDecodeError: 'ascii' codec can't decode byte 0x92 in position 0: ordinal not in range(128)
こんなエラーを吐きます。


104 :102:05/01/10 15:01:52
(103 続き)

eyeD3 ライブラリの frames.py の 190行目辺りに
UTF_8_ENCODING = "\x03";
SJIS_ENCODING = "\x04"; ## 追加

#DEFAULT_ENCODING = LATIN1_ENCODING;
DEFAULT_ENCODING = SJIS_ENCODING; ## 書き換え

さらにそのすぐ下の
def id3EncodingToString(encoding): に
elif encoding == SJIS_ENCODING:
return "japanese.shift_jis";
を追加するとなんとか使えるっぽいんですが…

もっといい方法 or べつのライブラリなどどなたかご存じではないでしょうか。


105 :m9っ・∀・):05/01/10 19:01:58
動くんならいいんじゃないの?

106 :デフォルトの名無しさん:05/01/10 19:23:21
>>103-104
TagLibのPython bindingsなんかどう?
http://namingmuse.berlios.de/

107 :デフォルトの名無しさん:05/01/10 19:37:45
ちゃんと
#!/usr/bin/python
# -*- coding: euc-jp -*-
って書いてる?

108 :デフォルトの名無しさん:05/01/10 20:15:35
Python をマスターすれば Google か NASA にアプライできますよ!

109 :102:05/01/10 21:05:00
まずその後調べていたら mp3 の ID3v2 って規格上は SJIS ではなく
utf-8 など unicode 限定のはずらしいですね。
で、手元の MuVo2 が v2 を SJIS で解釈するという変態だっただけみたい。ショボーン。

>105
いや、まあ、その… もともと勉強がてらなんでなんかいけてないなーという…

>106
情報 thx. 調べてみます
(でも規模がでかくなってヘタレには hack しにくそうっす orz)

>107
今回は一応そういうところではないみたいです。
(一応デバッグで引数渡す前に print したりでは確認はしてみてますし、
ライブラリを書き換えた奴では通っているんで)

(sjis問題はともかく)今回の問題のライブラリ(eyeD3)が encoding を
どうやって指定するものなのか良く分からないんです。
Tag() を呼ぶ前とかに eyeD3.DEFAULT_ENCODING を変更してみたり
してもダメっぽかったんで。

110 :デフォルトの名無しさん:05/01/11 18:26:24
pyid3libはどうだろう。id3libへのラッパーだけど。

111 :デフォルトの名無しさん:05/01/11 18:53:44
> (sjis問題はともかく)今回の問題のライブラリ(eyeD3)が encoding を
> どうやって指定するものなのか良く分からないんです。
import eyeD3.frames
tag.encoding = eyeD3.frames.SJIS_ENCODING


112 :デフォルトの名無しさん:05/01/11 20:07:22
threading.Thread内で一定時間待ちたい場合、time.sleep()を使ってもいいんでしょうか?
LinuxとWindowsで試した限りではtime.sleep()でも意図したとおりの動作でしたが、
モジュールドキュメントにはスレッドについて言及してないので不安です。

JavaみたいにThread.sleep()があればいいんですが、
近いのはthreading.Event.wait()ぐらいしか見つかりませんでした。

113 :デフォルトの名無しさん:05/01/11 20:38:43
Modules/timemodule.cを見ると、time.sleep()はUNIXではselect、WindowsではWaitForSingleObjectを使って
実装されているので、事実上は問題ないと思われる。
全てのプラットフォームで、指定した時間だけ特定のthreadの動作を停止する方法はなさそう。

114 :デフォルトの名無しさん:05/01/11 22:08:25
Pythonを初めて使ってみようとしてるんですが、
他の言語のnullやnilに対応する値は何でしょうか?

あと、perl, lisp, rubyあたりとの簡単な対応表があると
教えていただけると助かります。



115 :デフォルトの名無しさん:05/01/11 22:16:16
> 他の言語のnullやnilに対応する値は何でしょうか?
None

対応表はhttp://c2.com/cgi/wiki?PythonVsRuby とか。

116 :デフォルトの名無しさん:05/01/11 22:19:12
>>114
None

あと対応表がありそうなリンク
http://www.unixuser.org/~euske/doc/python/python-lisp-j.html
http://www.google.co.jp/search?hl=ja&q=lisp+python&lr=


117 :114:05/01/11 22:22:55
ありがとうございます。

真理値として評価したときに偽となるものは None, False 以外にも
何かありますか? Cと同様に0がそうであるというのはどこかで聞いたことがあって
知っているのですが。


118 :114:05/01/11 22:24:23
ああ、偽となる値は116のリンクの先に書いてありました。すみません。


119 :112:05/01/11 23:07:13
>>113
レスどうも。
仕事で使うコードなので、一応安全だと思われる
ダミーのthreading.Event.wait()を使うことにしました。

120 :デフォルトの名無しさん:05/01/11 23:09:28
数値 (整数も実数も) を返す関数が偽を返したときにはビビッタ.

こういうときは,正常なら数値,以上なら[例外|None|False]を返すようにして,
if f(x) is not None:
みたいにするのが普通ですか? ( if f(x): にしてビビッタんです )

121 :デフォルトの名無しさん:05/01/11 23:22:30
暗黙のキャストは使わない方がPython(現代?)的だろうね。

if f(x) is not None:
でいいと思う。

122 :113 :05/01/11 23:24:21
>>119
Lib/threading.pyを見ると、threading.Event.waitもtime.sleepを使って待ちに入るので、
time.sleepが正しく実装されていないプラットフォームでは意図通りに動作しない。
さらにthreading.Event.waitはwaitしているスレッドが0.5〜50msecごとにpolling
するのでパフォーマンスが悪化するというおまけ付き。
仕事で使うなら、対象プラットフォームでの正常動作を確認したうえでtime.sleepを使うのが筋だろう。


123 :112:05/01/11 23:33:49
>>122
threading.Event.wait内でそのままtime.sleep使ってるんですね。
threading.Eventはスレッドセーフなはずだから、
time.sleepもスレッドセーフな実装を要求してると好意的に解釈しときます。
わざわざソース調べていただいてありがとう。

124 :デフォルトの名無しさん:05/01/14 11:38:38
配列や集合にある要素(またはある条件を満たす要素)一つがあるか調べたい
(あればそれを返し、なかったらエラーにならずにNoneを返してほしい)ときは
何を使うべきでしょうか?

Lispのmemqやfindに相当するものがPythonにもあるだろうと思うのですが
探し方が悪いのかみつけられません。


125 :デフォルトの名無しさん:05/01/14 11:51:38
一つのスクリプトファイルが一つのモジュールになるらしいということは
わかったのですが、これは無条件で全ての名前が外部から参照できてしまう
のでしょうか。関数を外部に見せないようにすることはできますか?

目的としては、内部処理用のものは、Cのstatic関数のように完全に外部に見せない
ようにしたいのですが。


126 :デフォルトの名無しさん:05/01/14 12:07:15
> 配列や集合にある要素(またはある条件を満たす要素)一つがあるか調べたい

これでいいか?
>>> a = [1, 2, 3]
>>> 1 in a
True
>>> 4 in a
False


127 :デフォルトの名無しさん:05/01/14 12:15:46
> 関数を外部に見せないようにすることはできますか?
できない。
__all__ を定義すれば、from module import * したときに特定の名前だけ取り込ませる、
ということはできる。
アクセス制御は紳士協定で。

128 :デフォルトの名無しさん:05/01/14 12:21:05
ああ、そうするわけですか。ありがとうございます。

あと、LispやRubyのfindのように、ある条件を満たす最初のものをみつけたいときは
どう書くのが定跡でしょうか?
find(lambda x: x.attr == k, list1)
みたいな操作がPythonにも標準であるんじゃないかと予想するのですが、

>>127
あう、できませんか。残念。
お答えありがとうございます。



129 :デフォルトの名無しさん:05/01/14 12:21:51
>>124

>>126さんと同じ方法で
条件を満たす要素「1つ」じゃくて「リスト」を返すならこんな感じ
L = [-1, 2, -3, 4, -5]
[ x for x in L if x > 0]

最初のやつを1つなら
[ x for x in L if x > 0][0]


130 :デフォルトの名無しさん:05/01/14 12:24:03
Python のあまりのエレガントさについおまいらが優秀にみえてくるから凄いよな Python

131 :129:05/01/14 12:36:27
訂正
>>126さんと同じ方法で
in の意味が違った…


132 :129:05/01/14 12:51:36
>>128
ここらへんを見ても分かるとおり
ttp://naeblis.cx/rtomayko/2004/09/13/cleanest-python-find-in-list-function
Pythonにはそういう関数はないから自分で作るしかないみたい

133 :デフォルトの名無しさん:05/01/14 13:02:13
2.4ならジェネレータ式を使って、
(x for x in list1 if x.attr == k).next()

あるいは、
itertools.ifilter(lambda x: x.attr == k, list1).next()

ただ、どちらも該当要素が無い場合は例外が飛ぶ。

134 :デフォルトの名無しさん:05/01/14 13:21:48
>>128
def find(iterable):
for x in ある条件:
return x
return みつかんなかった

ぐらいしか思いつかない。

上の例なら、
for x in itertools.ifilter(lambda x:x.attr == k, list1):
とか、

135 :デフォルトの名無しさん:05/01/14 13:26:51
lambdaは撤廃されたものとしてください

136 :デフォルトの名無しさん:05/01/14 13:55:15
がーん。
>>134みたいなのを各自用意するしかないんですか?
かなりよく使われる部類の操作だと思うのですが、2.4になってもないというこ
とはそのつど定義して大して苦に(かつ重複を無駄に)思わないか、
Python人はこんな操作を自然に避けるような組み方をするのか……。

どうも、組込み・標準ライブラリで用意されるもの・そうでないものの
選定基準がまだよくわかりません。


137 :デフォルトの名無しさん:05/01/14 14:09:06
>>136
> どうも、組込み・標準ライブラリで用意されるもの・そうでないものの
> 選定基準がまだよくわかりません。
グイドタソに直接問い詰めて下さい。

138 :デフォルトの名無しさん:05/01/14 14:20:45
> >>134みたいなのを各自用意するしかないんですか?

132とか133とかを先に読んだうえで言ってるのか?

139 :デフォルトの名無しさん:05/01/14 15:38:17
関数型言語ならlambdaがないと面倒だし見通しが悪くなるけど、
逐次実行なんだから、内部関数定義すればいいはなし。

140 :デフォルトの名無しさん:05/01/14 16:14:16
でもlist.indexがあるんだから、listのメソッドに入れてくれたっていいよな。

141 :デフォルトの名無しさん:05/01/14 16:19:19
>>> a = ['foo', 'bar', 'baz', 'spam', 'egg']
>>> 'baz' in a and a.index('baz') or None
2
>>> 'bacon' in a and a.index('bacon') or None
>>>    # ←None が返っている

これでどうでしょう.

142 :デフォルトの名無しさん:05/01/14 18:00:50
>>141
値そのものが返ってこないし、属性(a.attrとか)や条件が使えない>>124に言われそうです。
早く誰かが>>124を満足させるのです。

143 :デフォルトの名無しさん:05/01/14 18:19:15
>>132のリンク先の様にfindを実装してlambdaを渡せばいいんじゃない。
findをモジュールからimportすれば毎回定義せずに済む、別にimportしなくてコピペでもいいし。

でも、近い将来にlambdaは廃止されます。


144 :デフォルトの名無しさん:05/01/14 18:19:40
X in a and X or None # 値そのもの (そもそも問題設定おかしいよね)
X in a and X.__len__() or None # 属性
X in a and {True:'foobar', False:'spamegg'}[X in ['foo', 'bar', 'baz']] or None # 条件分岐
というのはだめなんですか.

145 :デフォルトの名無しさん:05/01/14 18:31:39
んなややこしいことせんでも、>>133のを改良して
chain(ifilter(lambda x: x.attr == k, list1), [None]).next()
でいいやん。

関数にした方がよりわかりやすいが。
find = lambda f, seq: chain(ifilter(f, seq),[None]).next()

でも、これが組み込みにないのが不満だと言ってるんだから、
もはやGuidoタンに直談判するしかないでしょう。

146 :デフォルトの名無しさん:05/01/14 18:37:51
>>132のリンク先
ttp://naeblis.cx/rtomayko/2004/09/13/cleanest-python-find-in-list-function
から持ってきた

def find(f, seq):
for item in seq:
if f(item):
return item

fred = find(lambda person: person.name == 'Fred', peeps)

これで>>128
find(lambda x: x.attr == k, list1)と同じ。


147 :デフォルトの名無しさん:05/01/14 21:50:20
PythonでCGIを書けるとかいう話だが,
それらを勉強できるようなWebや書籍等ってあります?

148 :デフォルトの名無しさん:05/01/14 21:59:00
>>147
初めてのPython
http://www.oreilly.co.jp/books/4873112109/

149 :デフォルトの名無しさん:05/01/14 22:04:33
>>147
ライブラリリファレンス11.2

150 :デフォルトの名無しさん:05/01/14 22:15:52
f, seqが常識的な範囲なら
[x for x in seq if f][0]
でいいじゃん…。

> 関数にした方がよりわかりやすいが。
> find = lambda f, seq: chain(ifilter(f, seq),[None]).next()
これなにやってるか普通のひとわからないよ。

まずlist comprehension使って、うんざりするほど遅かったらまたそのとき考えようぜ。
というか、うっかりlamda使うとかえって遅くなるかもなのです。

151 :デフォルトの名無しさん:05/01/14 22:17:40
python cgi でぐぐると少ないながら出てくるよ。
Cookieは標準で入ってるし、セッション管理したければ
web-libだかなんだかの追加パッケージをインストールすれば一応使える。

152 :デフォルトの名無しさん:05/01/15 00:10:52
自分で position_if (見つかり次第終了) とか
map_and_position_if (基本的に map だけど検査もして,
ダメな要素があればそこまでの map の結果と None のタプルを返す) とか作ってる.

float() が例外を出すようになっていると,コードの量が増えますよね?
例外を掴まえて None なり False を返す isfloat() と作ってしまっています.

なんかこう,今の python をそのままで受け入れられるようになる文書は
無いものでしょうか.On Lisp 読んでハァハァしているようじゃ
python は使えませんか.

153 :デフォルトの名無しさん:05/01/15 00:18:40
http://www.python.org/peps/pep-0008.html

154 :150:05/01/15 12:33:26
2.4ならgenerator expression使ってこう書ける。
lambda使うより速く、直感的にもわかりやすい。

def first(i):
try:
return i.next()
except StopIteration:
return None

seq = [1, 2, 3]
print first(x for x in seq if x % 2 == 1)
print first(x for x in seq if x < 0)


155 :152:05/01/15 14:17:54
import math
x = range(10)
y = [math.sin(x/100.0) for x in x]
print x
print y

>>> import math
>>> x = range(10)
>>> y = [math.sin(x/100.0) for x in x]
>>> print x
9

俺は恐怖した.何行も直した (x を a とか b に w.

156 :デフォルトの名無しさん:05/01/15 16:22:53
>for x in x

>>155に恐怖した

157 :デフォルトの名無しさん:05/01/15 20:44:25
def find(f, seq):
 for item in seq:
  if f(item):
   return item

俺はこれがいいと思う.

158 :デフォルトの名無しさん:05/01/15 22:53:22
REALbasicのスレでみてwxPythonに興味を持ったのですが
wxPython、REALbasicともクロスプラットフォームで手軽にアプリケーションが開発できるとのことです。
どちらのほうがコードの実行速度が速いでしょうか?
また得意分野、不得意分野など比較できませんか?

159 :デフォルトの名無しさん:05/01/15 22:58:01
wxPythonはインストールすれば巨大なDemoプログラムが動かせるから、それ見て判断して。

160 :デフォルトの名無しさん:05/01/15 23:01:06
wxPythonってインラインで日本語入力できたっけ?

161 :デフォルトの名無しさん:05/01/15 23:06:35
とりあえずテキストボックスには日本語入った

162 :デフォルトの名無しさん:05/01/15 23:09:46
JythonってJ2SDKの5.0で動かないの?

163 :デフォルトの名無しさん:05/01/15 23:24:20
漏れはwxPythonを要求するAPIが多いので仕方無しに入れている。
将来的にはPy-Qtで自前で容易したし。

164 :152:05/01/15 23:26:00
本当は >>155 をうまくやる方法を教えて戴きたかったのですが,
煽りのようなネタにしてしまって申し訳ありません.
みなさんならどうやりますか?
(もちろん,*数値ものなら* import Numeric しますが...)

165 :デフォルトの名無しさん:05/01/15 23:29:39
> JythonってJ2SDKの5.0で動かないの?
>>63

> wxPythonを要求するAPIが多いので
意味がわからん

> みなさんならどうやりますか?
なにをやりたいのかわからん

166 :デフォルトの名無しさん:05/01/16 02:08:23
len()で文字列の文字数を数えるとき、
”a”は1文字で”あ”は2文字とカウントされます。
日本語も1文字にカウントさせる、
もしくはこの文字列はascii

167 :166:05/01/16 02:09:22
すいません、途中で…
asciiかどうかを判断する方法はありますか?

168 :デフォルトの名無しさん:05/01/16 02:52:13
unicode()

169 :デフォルトの名無しさん:05/01/16 12:02:11
日本語は、encodingによっては1文字が3バイト表現にもなる。
文字単位で扱いたいなら、unicode文字列に変換するのが一番手っ取り早い。
ここでも見とけ。
http://www.python.jp/Zope/articles/japanese/Python4Japanese-2

170 :166:05/01/16 12:33:39
ブラウザからの入力を対象としてたのですが
len(unicode(i,"sjis"))で解決しました。
ありがとうございましたm(_ _)m

171 :102:05/01/16 22:29:26
102,109 です.

教えて頂いたことなどを参考に,一応自分で使う範囲では
UTF-16 の id3v2 を eyeD3 で書けるようになりました.
自分の目的の第一段階はクリアしたんでお礼に報告させて頂きます.

# -*- coding: euc_jp -*-
import eyeD3;

# 以下4行の順番を間違えると泣くみたい...
tag=eyeD3.Tag();
tag.link( '01.mp3' );
tag.header.setVersion(eyeD3.ID3_V2_3);
tag.setTextEncoding( eyeD3.UTF_16_ENCODING );
# setTextEncoding() は eyeD3 v0.6.3 以降

tag.setArtist(unicode('誰々','japanese.euc_jp'));
tag.setTitle(unicode('ほげふが','japanese.euc_jp'));
tag.update();

(その他は http://www.ginganet.org/ginga/memo/python-id3/ 参照)

172 :デフォルトの名無しさん:05/01/16 22:52:10
乙かれ〜。

173 :デフォルトの名無しさん:05/01/17 08:25:59
ttp://www.f7.ems.okayama-u.ac.jp/~yan/python/python07.html
ここのhtml.pyで使用している『writeDict(os.environ)』って
どんな機能ですか?



174 :デフォルトの名無しさん:05/01/17 08:52:27
ソースコード見たまんまじゃないか。


175 :デフォルトの名無しさん:05/01/17 09:15:57
  def writeDict(self, dict):
    print '<DL>'
    for x in dict.keys():
      print '<DT>%s' % x
      print '<DD>%s' % dict[x]
    print '</DL>'

こんな機能。
しかしほんとにインデント間違えるとで命取りになるなこれ。
大丈夫なのか?

176 :デフォルトの名無しさん:05/01/18 18:23:44
たかがこんな処理に命がけですか。

177 :デフォルトの名無しさん:05/01/18 20:29:50
emacs の python-mode で,改めてインデントし直していると
たまに for の終わり (インデントが浅くなるところ) が失われますね.
コーディングスタイルを何とかすれば良さそうなんですが,
具体的にどうすれば...?
2 行空けるとブロックの終わりと見倣そう,とかは無いのかな.

178 :m9っ・∀・):05/01/18 21:13:49
1. 再インデントしたい部分の先頭で C-SPC (set-mark-command)。
2. 再インデントしたい部分の最後に移動。
3. 思うさま C-x C-i (indent-rigidly) を連打。

179 :デフォルトの名無しさん:05/01/18 21:35:59
region 決めて C-x > とか C-x < じゃないの?

180 :デフォルトの名無しさん:05/01/18 21:36:50
C-c > だった… orz

181 :177:05/01/18 22:38:16
>>178-180
なるほど.region の部分を深くしたいときは,
インデントを崩さないようにすればいいんですね.
いままで rectangle を使っていて不満でした.
これでガンガン書けます.ありがとうございました.

# C-h m したら書いてあった鬱

182 :デフォルトの名無しさん:05/01/19 07:04:42
>>181
ポストンポストン!

183 :デフォルトの名無しさん:05/01/23 17:47:37
Debian woody入れたらPythonが2.1.3だった。

184 :デフォルトの名無しさん:05/01/23 17:56:37
PyCon DC 2005 のスケジュールが出ましたな。
ttp://python.org/pycon/2005/schedule.html

Pychinko が気になる……

185 :デフォルトの名無しさん:05/01/23 19:42:45
>183
Debianは骨董趣味ですから。

186 :デフォルトの名無しさん:05/01/23 19:50:51

  ○ チンコ タッテキタ
 ( V
  >>

187 :デフォルトの名無しさん:05/01/23 20:46:03
パイチンコのURL
ttp://www.mindswap.org/~katz/pychinko/


188 :デフォルトの名無しさん:05/01/23 22:15:17
どこからちんこが出てくんだよ。
ページ見てもわからんぞ。


189 :デフォルトの名無しさん:05/01/23 22:19:17
>>183
python2.xって別パッケージない?
まーWorkStation的な利用だったらsargeにするのがふつう。

190 :166:05/01/24 11:15:24
>>183
Knoppix入れたら2.4があるよ

191 :デフォルトの名無しさん:05/01/24 11:17:09
pychinkoワロタ

192 :デフォルトの名無しさん:05/01/24 12:32:24
pychinkoをCで実装したchinkoを公開します

193 :デフォルトの名無しさん:05/01/24 13:23:26
pychinkoをC++で実装したchinko++を公開します

194 :デフォルトの名無しさん:05/01/24 13:54:03
chinkoのサブセット、tinychinkoを公開します

195 :デフォルトの名無しさん:05/01/24 15:48:29
                             .,/  _,/      .、、     ...、ヽ,,-、
                           .,,メ-‐'"       _"',|  .、、._,i.""│._、
                      ._,,,/`,イ―''      ,`",l゙、、,,ジ'"`.```.|゙゛
                    .,,,-,i´,―--―''"      、、,!冖'"`、_、,,,/'゚,,."゙l-‐''
       _,,,,,,,,,,,,,、    _,,,,,--''"`'",/゙            、、.',j/′.、,,∠''"` .'_ヽ.',゙l.._,,、
    ,,-'"゙`    `゙゙''lーイ"`     .‐′    _,..,,/ .ヽ、,i,i´ ``゙’   、、シ":"'.「
  .,,i´         `'i、\ ゙!,      ._,-'"ン'` 、、`_,/`,i´ _,___,ニ='" .'゙、゙".゙l,,-'`
 .,/′          `'i,\ ′  .,,,,-',,,,、.,i´、_:_'_v`"゙i、|   ```` `  、_,Jィ""゙l, _,,,,、
: ,i´             ゙l. ヽ丶  .r‐'"、.l゙、、:,p=l┴丶 .!,,!  `'"''''''冖''?'''゙~."""'."'/゛ `
: |,,r                ゙l, 、 i、、、、:,,_,xl!ヴi,、      、、っ,,,,    、`',,,,、`、`、|、
  |、            、"| .i、 lrr-''"゙,,ハ;、-'"゙゙'''''''"丶ヽ.,,冫``~`"`"~"``` `/ `''''
  `''r,,、 、 、、 .、丶、.``ヽ,レ"°  `` .j゚'=∠、````,,,,,∠ ~'ヽ```````、_,r‐'ヘi、
    `゙'ーi,,_、、、、、: :._,,,r〃       "  /^゚"'广  ,/  .,/゙゙゙'''ヶ―''''″   `
       `゙^""""''"'"                `   ′  ′  ."   
ぱいちんこ!ぱいちんこ〜〜!!

196 :デフォルトの名無しさん:05/01/24 17:21:30
2.4への機能強化で広がるPythonの世界 (1/4)
http://www.itmedia.co.jp/enterprise/articles/0501/24/news034.html

ここでもぱいちんこー

197 :デフォルトの名無しさん:05/01/24 18:12:02
磯さんわはー

198 :デフォルトの名無しさん:05/01/24 22:28:52
エスパー募集見飽きた
人に虫取りさせるならコード全部さらせと言いたい
てかマジ勘弁

199 :デフォルトの名無しさん:05/01/24 22:36:08
>>196
なぜPEPに触れていないんだろうか・・・・・・・・・・・・・・・・

200 :デフォルトの名無しさん:05/01/24 22:47:15
>>198
奴のスレッドは読まずに捨てます。これで解決。

201 :デフォルトの名無しさん:05/01/24 23:19:12
ttp://www.mindswap.org/~katz/pychinko/downloads/README-0.1.html

$ python run_tests.py
Running all Pychinko testcases ← 何を調べてるんだよ
Pychinko time: 0.412466049194 ← なんだか知らんが早いぞお前
parsing: generatedtests/testoutput.rdfs-closure1.pychinko.n3 ← 閉包かよ!
no differences. ← 誰と違わないんだよ!

202 :デフォルトの名無しさん:05/01/24 23:48:07
ワロタ

名前って重要だな。

203 :デフォルトの名無しさん:05/01/25 03:51:02
>>201
つっこみ ワロス

204 :デフォルトの名無しさん:05/01/25 10:55:44
                \ │ /
                 / ̄\   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
               ─( ゚ ∀ ゚ )< ぱいちんこぱいちんこ!
                 \_/   \_________
                / │ \
                    ∩ ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< ぱいちんこ!
ぱいちんこ〜!    >( ゚∀゚ )/ |    / \__________
________/ |    〈 |   |
              / /\_」 / /\」               ̄     / /


205 :デフォルトの名無しさん:05/01/25 13:32:55
numpy と scipy の win32 バイナリキボン.

206 :デフォルトの名無しさん:05/01/25 15:49:00
CygwinのPythonで最新のnumpyを使うことができるけどそんなことする奴はいないか。
言いだしっぺの>>205がコンパイルしてうp。
ついでに>>205のpychinkoもうp。

207 :デフォルトの名無しさん:05/01/25 18:21:13
それは2.4用が欲しいのか。

208 :205:05/01/25 20:47:42
ヲヲ.見事に 「2.4用の」を忘れていた orz
MinGW で作れるものは Linux でも作れたんでしたっけ?
良く分かりませんけど.これが無いと 2.4 に以降できませぬ.
ついでに pychinko というのも分かりません.google日本語で 3 件.

209 :デフォルトの名無しさん:05/01/26 11:55:05
pyyhon-2.4のインストールの質問なのですが./configureで --without-tcl
って出来ないですか?インストールされているtclが古いのでmakeでエラーが出る
のですが、tkinter関係要らないのでmake時に選択されないようにしたいのです。


210 :デフォルトの名無しさん:05/01/26 13:53:20
make distclean して, Modules/Setup から tkinter を外してみてください.

211 :デフォルトの名無しさん:05/01/26 13:55:29
>>208
いいえ。

212 :デフォルトの名無しさん:05/01/26 16:55:47
Numeric-23.7.win32-py2.4.exe はすんなりできたけど,SciPyに手こずって時間切れ.

213 :デフォルトの名無しさん:05/01/26 17:05:52
mod_pythonもpyCryptoも2.4対応したので,もうそろそろ2.4移行かな

214 :デフォルトの名無しさん:05/01/26 21:02:20
男なら商用サイトをZope 2.7.4+ Python2.4 + Fedoraできまり。

215 :デフォルトの名無しさん:05/01/27 02:52:21
いや、Plone-Zope-Python-SuSE Linux だ。


216 :デフォルトの名無しさん:05/01/27 09:03:20
Guido必死だなw
http://www.rubyist.net/~matz/

217 :デフォルトの名無しさん:05/01/27 10:25:13
>>216
君はこっち

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

218 :デフォルトの名無しさん:05/01/27 14:44:27
> Rubyのプレゼンスが向上したことをすなおに喜ぼう。
> 割とRubyに対して警戒心を持っているようで

まつもと必死だなw

219 :デフォルトの名無しさん:05/01/27 14:49:23
変更点もまとめずにリリース、
直後に一部修正して同じファイル名で再リリースするようなRubyが
Pythonと肩を並べようとは片腹痛いわ。

220 :デフォルトの名無しさん:05/01/27 15:03:36
× Rubyに対して警戒心を持っているようで
○ Rubyの作者に対して警戒心を持っているようで

221 :デフォルトの名無しさん:05/01/27 15:08:35
警戒心というよりかは疑心暗鬼だな(w

222 :デフォルトの名無しさん:05/01/27 15:11:12
でもぶっちゃけ、日本でPython使いだけどRuby使えない人って少ないんじゃない?

223 :デフォルトの名無しさん:05/01/27 15:13:44
rubyなんて入れてませんが?使う必要全く無いし。

224 :デフォルトの名無しさん:05/01/27 15:49:58
>>223
日本だとまったく逆な奴のほうが多いだろうな。

225 :デフォルトの名無しさん:05/01/27 15:57:24
>>222
Rubyを知る以前からPythonを使ってたから、
Rubyを使って何か書いたりはしてこなかった。

226 :デフォルトの名無しさん:05/01/27 16:34:10
>>224
ニホンジン作者なんていう属性はしょうもないことなんですよ。
私がニホンジンでなかったら Ruby なんて注目すらしていなかったでしょう。
そういうことです。その程度なんですわ。Ruby なんていう言語は。

227 :デフォルトの名無しさん:05/01/27 22:14:19
PythonユーザーでRubyを叩く人間も別スレに移動したほうがいいよ。
Rubyの人たちに荒らされる原因になるもん。

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


228 :デフォルトの名無しさん:05/01/27 23:35:40
たたくとかそういうことでなくて眼中にない。

229 :デフォルトの名無しさん:05/01/28 00:02:10
>>228
だから出てけって。
しつこいしキモイよ。
Pythonの話をしろよ。

230 :デフォルトの名無しさん:05/01/28 00:28:03
>>227
救いようのないスレだと思うが(W

231 :デフォルトの名無しさん:05/01/28 00:31:28
そりゃ救いようのない人達が群れ集まるスレですから。

232 :デフォルトの名無しさん:05/01/28 00:48:50
救いようのない人達が群れ集まるスレ〜になるでしょう〜♪

233 :デフォルトの名無しさん:05/01/28 01:13:44
Ruby on Railsに対抗して、PythonのWebアプリに革命をもたらす勇者はいずこ

234 :デフォルトの名無しさん:05/01/28 01:20:00
まだ試してないが、とりあえず貼っとくか
Quixote上のweb application framework。
http://www.qlime.org/

235 :デフォルトの名無しさん:05/01/28 04:17:26
もしかして Zope-2.7.4 上では Plone-2.0.5 は使えない?!

236 :デフォルトの名無しさん:05/01/28 11:09:49
>>235
使えません。

237 :デフォルトの名無しさん:05/01/28 14:03:39
>>233
WebアプリくらいPHPにくれてやれ。

238 :デフォルトの名無しさん:05/01/28 14:10:33
PHPなんてヤダヤダ(AA略)
たっぷるたっぷる(AA略)

239 :デフォルトの名無しさん:05/01/28 15:25:09
>>236
なんで使えないか分かりますか?
具体的には handlers と子プロセス関係の Plone 側の方がどうなってるのか知りたし。

240 :デフォルトの名無しさん:05/01/29 14:12:03
Python厨を黙らせるには難しい質問をすればいいらしい

241 :デフォルトの名無しさん:05/01/29 15:27:29
ラムダちゃんさようなら

242 :デフォルトの名無しさん:05/01/29 15:52:05
Python はネイティブスレッドによる並行実行をサポートしているそうだけれど.リファレンスカウンタ増減に対して排他制御をかけていないようだ.本当にそれでいいの?

243 :デフォルトの名無しさん:05/01/29 16:10:33
pythonは、インタプリタ自体は並行動作しない。
システムコールの呼出しなど、インタプリタを抜けるときだけMT動作を許可する。

244 :デフォルトの名無しさん:05/01/29 16:24:13
Pythonが採用しているデータ構造を理解しておきたい。
着手はどこからが良いでしょうか?

245 :デフォルトの名無しさん:05/01/29 16:25:53
>>242
インスタンスでやっているから別にいい。各自独立したスレッド。
競合した場合はプリミティブにkernel依存じゃないかな。

246 :デフォルトの名無しさん:05/01/29 16:37:36
>>244
詳しく

247 :デフォルトの名無しさん:05/01/29 16:49:06
>>246
具体的にはPythonの非常に柔軟な型対応を実現している個所のソースを読みたいんですよ

248 :デフォルトの名無しさん:05/01/29 17:02:47
>>245
おまえは http://www.python.jp/pub/doc_jp/api/threads.html を声に出して100回読め。

249 :デフォルトの名無しさん:05/01/29 19:07:48
>>247
「Pythonの非常に柔軟な型対応」って何のこと?

250 :デフォルトの名無しさん:05/01/29 23:55:22
>>249
    _  ∩
  ( ゚∀゚)彡 タップル!タップル!
  (  ⊂彡
   |   | 
   し ⌒J


251 :デフォルトの名無しさん:05/01/30 12:47:39

       タップル!! タップル!!
    タップル!! タップル!! タップル!!
  タップル!! ∩   ∩ ノ)   タップル!!
 タップル!!  川 ∩ 川彡'三つ  タップル!!
タップル!! ⊂ミ∩、⊂ミ∩彡⊃    タップル!!
タップル!!⊂三ミ( ゚∀゚)彡三彡三⊃ タップル!!
タップル!! ⊂彡川⊂彡川ミ⊃    タップル!!
タップル!!⊂彡川∪⊃ U川彡⊃   タップル!!
 タップル!! (ノ ∪  川 ∪ミ)  タップル!!
  タップル!!      ∪     タップル!!
    タップル!! タップル!! タップル!!
        タップル!! タップル!!
            タップル!!


252 :デフォルトの名無しさん:05/01/30 18:55:10
>>251
なんか北斗百裂拳みたい。

253 :デフォルトの名無しさん:05/01/30 19:30:03
                  タップル!!一筋30年
     _
   ( ゚∀゚)x"⌒''ヽ、        鍛えに鍛えた左腕
   (|     ...::   Y-.、
    |  イ、     ! :ヽ      求めるものはただ一つ
    U U `ー=i;;::..   .:ト、
          ゝ;;::ヽ  :`i      今日も明日も腕を振る
            >゙::.   .,)
           /:::.  /;ノ
     ゞヽ、ゝヽ、_/::   /          
     `ヾミ :: :.  ゙  _/             
       `ー--‐''゙~

254 :デフォルトの名無しさん:05/01/30 21:04:14
キモw

255 :デフォルトの名無しさん:05/01/30 22:11:18
必須の便利モジュール教えれ。

256 :デフォルトの名無しさん:05/01/30 22:21:51
timeit.py

257 :デフォルトの名無しさん:05/01/30 22:25:21
Pythonの規格読むの面倒なので教えて。
Pythonってどういう言語なの?
関数型言語なの?

258 :257の通訳:05/01/30 22:32:56
過疎だから無理にでも盛り上げよう

259 :デフォルトの名無しさん:05/01/30 22:36:09
PYTHON/CGIに興味ある人いないかい?
サイト作ろうと思ってんだけど…

260 :デフォルトの名無しさん:05/01/30 22:45:14
チュートリアル読め。



261 :デフォルトの名無しさん:05/01/30 22:48:04
>>257
Pythonは最高にクールでゴキゲンな言語だぜ!!!!

262 :デフォルトの名無しさん:05/01/31 00:13:36
ジェネレータというのを使ってみると,高尚なことをやっている気分になりますね.
遅延評価とか,あのわけわからない関数言語の特徴がこんなに簡単に,みたいな.

263 :デフォルトの名無しさん:05/01/31 00:39:26
      | _
      |∀゚) ダレモイナイ・・タプルナラ イマノウチ
      |⊂
      |
    _  ∩
  ( ゚∀゚)彡 タップル!タップル!
  (  ⊂彡
   |   | 
   し ⌒J
    _ _
  ( ゚∀゚) タップル!タップル!
  (    )
   | 彡つ 
   し∪J
    _, ,_∩∩
   (;`Д)彡彡 タップル!タップル!
  ((⊂⊂彡
   |   |
   ヽ_つJ
∩∩_, ,_ _, ,_∩∩
ミミ(Д´≡`Д)彡 タップル!タップル!タップル!タップル!
 ミ⊃⊃⊂⊂彡
   |   |
   し ωJ


264 :デフォルトの名無しさん:05/01/31 02:15:25
問題は現行のZope信者がキモすぎて普及の妨げになっていることだな。

265 :デフォルトの名無しさん:05/01/31 09:51:44
>>253
なんか失敗したエビフライみたい。

266 :デフォルトの名無しさん:05/01/31 11:39:31
jythonってJAVAのクラスファイル作れるの?

267 :デフォルトの名無しさん:05/01/31 11:51:10
作れますよ。
Javaアプレットを作る例なんかもjython.orgに載ってた気がします。

268 :デフォルトの名無しさん:05/01/31 12:15:07
>>267
さんきゅ〜〜
ということは、JAVAで書くと面倒くさい処理をpythonで書いて
JAVAへ変換、ということができるということか。便利だね

269 :デフォルトの名無しさん:05/01/31 21:26:05
>>259
mod_python使った方が幸せになれるよ。

270 :デフォルトの名無しさん:05/02/01 00:25:54
2.3.5 ... rc1:問題がなければ来週にもfinal
2.4.1 ... 二ヶ月以内予定

271 :デフォルトの名無しさん:05/02/01 06:06:46
2.3.5って存在価値あるの?

272 :デフォルトの名無しさん:05/02/01 08:53:51
sys.stdin/out/err を閉じるときにバッファがflushされない
弱参照されているオブジェクトを含む循環参照をgcしようとするとうまくいかないことがある
ある種のWindows DLLを読み込もうとするときに落ちる
exec() の中でtype()を使って作成したクラスに__module__がない
__init__.pyがディレクトリだとクラッシュする
Solarisでコンパイルがうまく通らないことがある
データを解凍せずにzlib.decompress.flush()を呼ぶと落ちる
非ブロックSSLソケットがブロックしている
OpenSSLのバグ回避
xmlrpclibでUnicodeをキーに使った構造体を操作できない

その他もろもろが修正されてる。


273 :デフォルトの名無しさん:05/02/01 09:07:41
行頭に - とか ・ つけるなり、区点使ってはどうかと。

274 :デフォルトの名無しさん:05/02/01 12:53:52
>>273
じゃ、残りよろしく
ttp://python.org/2.3.5/NEWS.html

275 :デフォルトの名無しさん:05/02/01 15:24:07
      | _
      |∀゚) ダレモイナイ・・オッパイスルナラ イマノウチ
      |⊂
      |
    _  ∩
  ( ゚∀゚)彡 Oh!Py! Oh!Py!
  (  ⊂彡
   |   | 
   し ⌒J
    _ _
  ( ゚∀゚) Oh!Py! Oh!Py!
  (    )
   | 彡つ 
   し∪J
    _, ,_∩∩
   (;`Д)彡彡 Oh!Py! Oh!Py!
  ((⊂⊂彡
   |   |
   ヽ_つJ
∩∩_, ,_ _, ,_∩∩
ミミ(Д´≡`Д)彡 Oh!Py! Oh!Py! Oh!Py! Oh!Py!
 ミ⊃⊃⊂⊂彡
   |   |
   し ωJ



276 :デフォルトの名無しさん:05/02/01 16:37:03
次のPythonのキラーアプリを考える会

Zope→Bittorrent→?

277 :デフォルトの名無しさん:05/02/01 16:40:07
>>276
Pythonを殺すアプリの事ですね。
VisualPythonとか。

278 :デフォルトの名無しさん:05/02/01 20:50:18
Googleテクノロジーのお下がりで使える汎用サーチエンジンが次期候補と予想しておこうかな

279 :デフォルトの名無しさん:05/02/02 01:08:40
    _ _
  ( ゚∀゚) Pychinko!
  (    )    Pychinko!
   | 彡つ 
   し∪J

http://www.mindswap.org/~katz/pychinko/

280 :デフォルトの名無しさん:05/02/02 12:46:21
Reteアルゴリズムに基づいたRDFのルールエンジン。
どこからPychinkoなんて名前を付けたんだ。

281 :デフォルトの名無しさん:05/02/02 14:49:43
                \ │ /
                 / ̄\   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
               ─( ゚ ∀ ゚ )< ぱいちんこぱいちんこ!
                 \_/   \_________
                / │ \
                    ∩ ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< ぱいちんこ!
ぱいちんこ〜!    >( ゚∀゚ )/ |    / \__________
________/ |    〈 |   |
              / /\_」 / /\」               ̄     / /


282 :デフォルトの名無しさん:05/02/02 16:45:05
Nokiaの携帯はPychinkoできるらしい
http://www.itmedia.co.jp/news/articles/0502/02/news022.html

283 :デフォルトの名無しさん:05/02/02 16:50:06
      | _
      |∀゚) ダレモイナイ・・パイチンコスルナラ イマノウチ
      |⊂
      |
    _  ∩
  ( ゚∀゚)彡 pychinko! pychinko!
  (  ⊂彡
   |   | 
   し ⌒J
    _ _
  ( ゚∀゚)   pychinko! pychinko!
  (    )
   | 彡つ 
   し∪J
    _, ,_∩∩
   (;`Д)彡彡 pychinko! pychinko!
  ((⊂⊂彡
   |   |
   ヽ_つJ
∩∩_, ,_ _, ,_∩∩
ミミ(Д´≡`Д)彡 Pychinko! Pychinko! Pychinko! Pychinko!
 ミ⊃⊃⊂⊂彡
   |   |
   し ωJ


284 :デフォルトの名無しさん:05/02/02 17:10:11
>>282
確かに携帯とFOAFとかは相性が良さそうだが、

> Nokiaの携帯はPychinkoできるらしい
http://www.itmedia.co.jp/news/articles/0502/02/news022.html

この記事のどこにPychinkoの事が書いてあるんだ?

285 :デフォルトの名無しさん:05/02/02 17:53:59
行間嫁

286 :デフォルトの名無しさん:05/02/02 20:06:08
Pythonキラーアプリの変遷
Zope→Bittorrent→Pychinko

287 :デフォルトの名無しさん:05/02/02 22:07:14
最凶のキラーアプリ
-> py2ch

288 :デフォルトの名無しさん:05/02/03 14:10:35
pyslsk

289 :デフォルトの名無しさん:05/02/03 15:02:21
>>285
ハァ?
意味の取れない文章を書いておきながら、行間嫁だと?

290 :デフォルトの名無しさん:05/02/03 15:15:40
俺の行間を読んでくれ。
今日の朝は

だ。

291 :デフォルトの名無しさん:05/02/03 15:16:06
何となくかっこよさそうなので行間嫁と言ってみたくて仕方がない年頃なんだよ。

292 :デフォルトの名無しさん:05/02/03 15:17:17
>>290


293 :デフォルトの名無しさん:05/02/03 15:29:59
>>285
つまりノキアの携帯は、ぱいもちんこも付いてるふたなりなのだと?!

294 :デフォルトの名無しさん:05/02/03 18:05:10
Nokiaってティモテな金髪美女のイメージ
そんな彼女達も一皮剥けばPychinko

295 :デフォルトの名無しさん:05/02/03 20:30:36
>>289
> 意味の取れない文章を書いておきながら

残念ッ!

>>> 282 == 285
False
>>>

296 :デフォルトの名無しさん:05/02/03 21:05:41
>>289
うむ。十分に意味が読み取れる文章だよ。
 PythonでPychinco動かせる。
 NokiaでPython動かせる。
 じゃぁNokiaでPychincoうごくじゃん。
という見事な三段論法だ。

297 :デフォルトの名無しさん:05/02/03 21:34:53
>>296
つまりNokiaの中のPythonは、Pythonのサブセットじゃなくてフルセットなわけか?
それともサブセットだけどPychincoは動くと誰かが確認したのか?

298 :デフォルトの名無しさん:05/02/03 21:46:28
>>296
>>297
Pychincoではない!Pychinkoだ!丁寧にもヘボン式ローマ字表記だ!

299 :デフォルトの名無しさん:05/02/03 22:44:05
J2MEでJythonは動きますか

300 :デフォルトの名無しさん:05/02/03 22:57:43
山は死にますか

301 :デフォルトの名無しさん:05/02/04 00:07:22
Jythonのassert対応版、いつ出るのよ

302 :デフォルトの名無しさん:05/02/04 00:56:45
いま必死に取り組んでおります<Jython

303 :デフォルトの名無しさん:05/02/05 11:29:17
ちょっとよろしいですか
pythonのurllib.urlencodeで'%20'という文字を入れると
'%2520にencodeされてしまうんですが
どにかして%20にできないでしょうか?

304 :デフォルトの名無しさん:05/02/05 13:11:59
前提というか要求がおかしいよ、それ。
urllib.quoteならurllib.quote('%20', '%')とはできるけど。

305 :デフォルトの名無しさん:05/02/05 14:35:52
そうですね。解決しました

306 :デフォルトの名無しさん:05/02/06 01:46:33
ftplibで大き目のファイルを転送しているときに、今どのくらいまで転送したか
知るにはどうすればできますか?
プログレスバーのようなものを考えています。

307 :デフォルトの名無しさん:05/02/06 03:26:51
受信はretrbinary()の引数callbackがつかえるが、送信のstorbinary()にはないので(謎)、
引数のfileオブジェクトのread()を適宜オーバーライドするのがいいかな?

308 :デフォルトの名無しさん:05/02/06 15:13:03
定期的に集計するログ(テキストファイル)の中に
なんでか\x03や\x1aなどの制御コードが入るので、
これを除去するスクリプトを作っています。

bchar = '\x03' # または\x1a
achar = '@'

fp=open(filename,"rb")
fp2=open(filename+"_replaced", "wb")
rep = re.compile(bchar)
buf=fp.read(1024)
while buf != "":
  m=rep.search(buf)
  if m != None:
    buf2 = str.replace(buf,bchar,achar) 
    fp2.write(buf2)
  else:
    fp2.write(buf)
  buf=fp.read(1024)
fp.close()
fp2.close()

とりあえずreadlineではなぜか検知してくれなかったので
バイナリとして読み込んだら検知はしました。
しかしstr.replaceでは文字化けしてしまって…
str.replaceに代わるものはあるのでしょうか?


309 :デフォルトの名無しさん:05/02/06 15:48:16
>>308
文字化けするとゆーことは、ログファイルは日本語?
EUC-JP だと除去以前に元もと文字化けしてるだろうから
ログファイルの文字コードは Shift_JIS かな。
いずれにせよ(\x03 はともかく)\x1a の除去は難しいな。
EUC-JP や Shift_JIS では \x1a が文字の一部として現れるからね。
Unicode に変換して処理するのが基本だけど、
変なバイト値が入ってくるとコデックが文句を言うかも。
errors="ignore" を指定してみるとうまくいくかも知れない。

310 :デフォルトの名無しさん:05/02/06 15:50:02
あ、誤読した。\xa1じゃなくて\x1aか。てか自分でもそう書いてるし。orz
つーことで下3行以外は無視して下さい。スマソ

311 :デフォルトの名無しさん:05/02/06 15:53:09
UTF-16じゃあるまいし、文字の一部として^Zが現れるエンコーディングがどこにあるのかと小一時間

312 :308:05/02/06 16:07:38
情報不足ですいません。
ログファイルはutf8nエンコードで日本語が入ってます。
pythonはwindowsの2.3を使っています。
スクリプトの頭でerrors="ignore"と宣言すればいいのでしょうか…?

313 :309:05/02/06 16:29:02
>>312
UTF-8(string型)をUnicode文字列(unicode型)に変換して処理するべし。
組込み関数 unicode() を使うのが基本だけど
(errors="ignore"とゆーのは unicode() のオプション引数です)、
ファイルの読み書きのときに自動的に unicode() を呼ぶ以下のような方法もある。
リファレンスマニュアルで意味を調べつつ処理を追いかけてみて。
(StringIOは実際のファイルの代わりなので、真似して使う必要はない。)

# -*- coding: Shift_JIS -*-

import StringIO, re, codecs

Reader = codecs.getreader("utf-8")
Writer = codecs.getwriter("utf-8")

log = u"日本語\x03ASCII\x1a\n" * 3

istream = Reader(StringIO.StringIO(log.encode("utf-8"))) # fp
ostream = Writer(StringIO.StringIO()) # fp2

re_control = re.compile("[\x03\x1a]")

while 1:
    line = istream.readline()
    if not line:
        break
    print repr(line), "->",
    line = re_control.sub("@", line)
    print repr(line)
    ostream.write(line)

314 :309:05/02/06 16:36:48
補足。ループの部分は以下のようにも書ける。この方が簡単だね。

for line in istream:
    print repr(line), "->",
    line = re_control.sub("@", line)
    print repr(line)
    ostream.write(line)

print "istream:", repr(istream.getvalue())
print "ostream:", repr(ostream.getvalue())

最後の2行でファイルの中身を表示してみる(StringIOならではの処理)。
UTF-8で、なおかつ問題の文字が置換されているのが確認できると思われ。

315 :デフォルトの名無しさん:05/02/06 17:56:28
っていうか、テキストファイルの中に\x03や\x1aが入る原因を調べるほうが先じゃないか?

316 :308:05/02/06 18:02:44
むうーすいません、ちと理解するのに時間が…

>>315 
謎です、Webからの入力をそのまま吐き出してるはずなんですが…
その際使ってるアプリケーションの問題かも知れません。

317 :デフォルトの名無しさん:05/02/06 18:03:26
状況には場当たり的に対処し
いつまでも仕事は減らさぬよう増やさぬよう

318 :308:05/02/06 18:12:40
readなりreadlineなり使ってファイルから読み込む際に
文字列として読み込むために、\x1aとか\x03とかに遭遇した時点で
処理が終了してるような気が…orz

319 :デフォルトの名無しさん:05/02/07 00:16:07
超coooooooooooooooolなアイコンくれ

320 :デフォルトの名無しさん:05/02/07 08:28:19
超cooooooooooooooool の検索結果のうち 日本語のページ 約 72 件中から自分で探せよ。

321 :デフォルトの名無しさん:05/02/07 11:53:21
      _  ∩
    ( ゚∀゚)彡 ぱいがめ! ぱいがめ!
    (  ⊂彡
     |   | 
     し ⌒J

322 :デフォルトの名無しさん:05/02/07 13:23:30
>>321
GJ!!!!!!!!!!
ああいう解説、もっとキボンヌです。
これからば作者さんのページに「Features, Docs, Screenshots, Download, ...」
に加え、「Tutorial with me」が必須でしょう。

323 :デフォルトの名無しさん:05/02/09 18:37:27
人生の敗北者でPython使ってる奴って
実際どれくらい敗北してんの?

324 :デフォルトの名無しさん:05/02/09 20:31:30
そだなー。テトリスにたとえるならこんな具合の敗北度。

┃                  ┃    . . .... ..: : :: :: ::: :::::: ::::
┃                  ┃         Λ_Λ . . . .: : :
┃      ┌┐┌┬┬┬┨        /:彡ミ゛ヽ;)ー、 . ::
┃┌┐┌┼┼┼┼┴┴┨       / :::/:: ヽ、ヽ、 ::i . .::
┠┼┼┼┼┼┼┼┬┐┃       / :::/;;:   ヽ ヽ ::l .
┠┼┼┼┼┼┼┼┼┤┃  ̄ ̄ ̄(_,ノ  ̄ ̄ ̄ヽ、_ノ ̄ ̄
┠┼┼┼┼┼┼┼┼┤┃
┠┼┼┼┼┼┼┼┼┤┃
┠┼┼┼┼┼┼┼┼┤┃
┗┷┷┷┷┷┷┷┷┷┛

325 :デフォルトの名無しさん:05/02/09 21:16:50
↑って連鎖の大チャンスじゃん。

326 :デフォルトの名無しさん:05/02/09 21:45:02
>>325
失敗をバネにして成功を勝ち取れ!というメッセージが通じんのか

327 :デフォルトの名無しさん:05/02/09 22:54:48
Pythonで人生が開けたみなさまの喜びの声↓


328 :デフォルトの名無しさん:05/02/09 22:55:29

┃                  ┃    . . .... ..: : :: :: ::: :::::: ::::
┃                  ┃         Λ_Λ . . . .: : :
┃      ┌┐┌┬┬┬┨        /:彡ミ゛ヽ;)ー、 . ::
┃┌┐┌┼┼┼┼┴┴┨       / :::/:: ヽ、ヽ、 ::i . .::
┠┼┼┼┼┼┼┼┬┐┃       / :::/;;:   ヽ ヽ ::l .
┠┼┼┼┼┼┼┼┼┤┃  ̄ ̄ ̄(_,ノ  ̄ ̄ ̄ヽ、_ノ ̄ ̄
┠┼┼┼┼┼┼┼┼┤┃
┠┼┼┼┼┼┼┼┼┤┃
┠┼┼┼┼┼┼┼┼┤┃
┗┷┷┷┷┷┷┷┷┷┛

329 :デフォルトの名無しさん:05/02/10 20:57:41
ttp://slashdot.jp/developers/05/02/08/0010222.shtml?topic=44

WindowsでPyQt製のeric3使ってみようかな、日本語使えない気がするけど。

330 :デフォルトの名無しさん:05/02/10 22:44:00
split(`ps -ef`) ...
とか、外部プロセスの出力結果を簡単に取り込むシンタックスシュガーが欲しい脳


331 :デフォルトの名無しさん:05/02/10 23:47:34
Perlとちがって純粋なプログラミング言語を目指してるから、
実装されることはないだろうね。

自分では結構仕事でPython取り入れてるけど、
そういうのにはやっぱりPerlを使うし。

332 :デフォルトの名無しさん:05/02/11 01:52:36
自分で定義するんじゃだめか?

from subprocess import Popen, PIPE
def shellexec(cmd):
    return Popen([cmd], stdout=PIPE, shell=True).communicate()[0].split()

for f in shellexec('ls *'):
    print l


333 :デフォルトの名無しさん:05/02/11 02:02:04
    _  ∩
  ( ゚∀゚)彡 ポーペン! ポーペン!
  (  ⊂彡
   |   | 
   し ⌒J

334 :デフォルトの名無しさん:05/02/11 02:27:00
commandsモジュールを使う

335 :デフォルトの名無しさん:05/02/11 23:02:13
IronPython、開発者がMSの.net開発チームに入ったって
鳴り物入りでニュースになったけど、その後どーなっている
んだろう。

336 :308:05/02/12 03:52:50
>>313-314
何とかいけました(遅 ありがとうございました。

337 :デフォルトの名無しさん:05/02/12 04:25:48
Noneの比較の際は == None ではなくis None が推奨されるようですが、
理由は何ですか?

338 :デフォルトの名無しさん:05/02/12 04:54:22
文字列ではないから

339 :デフォルトの名無しさん:05/02/12 16:48:02
>>337
None は唯一無二のオブジェクトだから。

二つのオブジェクトが同じ値かどうかを調べるのが == 演算子。
二つのオブジェクトが同じオブジェクトかどうかを調べるのが is 演算子。

二つのオブジェクトが共にNoneならば、その二つは同じオブジェクトであるハズ。
その予想を確認する最も確実な方法が is None というわけ。

340 :デフォルトの名無しさん:05/02/12 17:45:36
>>339
is None と ==Noneで別の結果が返ってくる例ってあります?

341 :デフォルトの名無しさん:05/02/12 18:13:35
>>340
無いと思われ。

以前は None に代入できたが最近のバージョンでは SyntaxError になる。
また、C言語で拡張モジュールを書く場合でも None のインスタンスは
Py_None という定数で表される。したがって「None」が None オブジェクト
以外である状況というのは考えにくい。

もし None に代入できれば is None が偽(つまり別のオブジェクト)で
== None が真(値が同じ)になる状況というのはあり得ると思う。

一方、is None が真で == None が偽になる状況はあり得ない(演算子の
定義から明らか)。

342 :デフォルトの名無しさん:05/02/12 19:28:54
こうか。

>>> None = 106
<stdin>:1: SyntaxWarning: assignment to None
>>> n =106
>>> n == None
True
>>> n is None
False

343 :デフォルトの名無しさん:05/02/12 21:08:40
or dieの代わりに流行らせようとして失敗したんだよな

344 :デフォルトの名無しさん:05/02/13 02:33:43
or die はカッチョイイからな。チェケラッって感じ。

ところでオライリーの新しいやつってどんなでしょうか。
買う価値ありますか。

345 :デフォルトの名無しさん:05/02/13 02:41:58
なんでこのスレのテンプレってPyJUGとかへのリンクがないのさ。

346 :デフォルトの名無しさん:05/02/13 02:47:55
> ところでオライリーの新しいやつってどんなでしょうか。
初めてのPython 第2版のこと?

だったら、内容はすごく丁寧。
初学者でもつまづかないように注意深く書かれてる。
Python使いでもあんまり知らないようなディープなことも載ってるし。
ただし言語仕様についてが重点的に書かれていて、
ライブラリのことはほとんど書かれてないという弱点が。

それをふまえて、買う価値があるかどうかは自分で決めてくれ。

347 :デフォルトの名無しさん:05/02/13 02:49:21
>>345
>>1

348 :デフォルトの名無しさん:05/02/13 02:50:49
Python 2.3.5(final) released!

349 :デフォルトの名無しさん:05/02/13 03:01:08
subprocess ってのは2.4からか。知らなかった。

350 :デフォルトの名無しさん:05/02/14 21:44:27
1から100までの数字を選んでそれをプログラムに当てさせるプログラムを作れって問題があるんですがうまくできないです。
何処が悪いか教えてもらえないでしょうか?問題は101以上の数字を入力して再入力するよう指示できないところです。
よろしくお願いします。

G = 1
A = int(raw_input("choose a number: "))

while A < 0 and A >100:
A = int(raw_input("choose a number: "))

while G != A:
G +=1

print "the number is ", G

raw_input("enter")


351 :デフォルトの名無しさん:05/02/14 21:47:08
350です。
出来ました。
ANDじゃなくてORですね。
スレ汚しすみません。


352 :デフォルトの名無しさん:05/02/14 21:57:27
細かくつっこむと
今のままだと100が入力できないのと、
個人的趣向で最初の
A = int(...

A = 0
の方がすきなとこ。

353 :352:05/02/14 21:59:13
ごめん100は入る。
スレ汚しスマソ

354 :デフォルトの名無しさん:05/02/14 22:06:42
0を入力すると…

355 :デフォルトの名無しさん:05/02/14 22:45:38
> 何処が悪いか教えてもらえないでしょうか?
そんなあほな例題を出してる奴の頭が一番悪い。
「1から100までの数字を選んでそれをプログラムに当てさせるプログラム」って何だよ。
ユーザが最初に入力した値そのものが答えだろ。もっとよく考えて問題作れよ。

while 1:
 try:
  n = int(input("enter number?"))
  if 0<n<=100:
   print "out of range (must be 0<n<=100)"
  else:
   print "the number is %d" %(n)
 except ValueError:
  print "your input is not a number! bye..."
  break

感想の欄があったら「例題があほすぎます。まじめに教える気あるんですか?」って書いとけ。

356 :デフォルトの名無しさん:05/02/14 22:50:35
> if 0<n<=100:
if not 0<n<=100: だし、input() も raw_input() だ。
俺もっとあほや。首吊ってくる。

357 :デフォルトの名無しさん:05/02/14 23:17:31
> print "the number is %d" %(n)

もっと言うと n のまわりの括弧は要らないね。

C言語で return(n); って書くタイプ?

358 :デフォルトの名無しさん:05/02/14 23:21:45
(n,) ならどうだろうか。

359 :デフォルトの名無しさん:05/02/14 23:40:34
return(n);
なんて書くやついるのか。
いや〜

360 :デフォルトの名無しさん:05/02/14 23:51:55
sizeof(n)とは書くけど…

361 :デフォルトの名無しさん:05/02/15 00:25:24
> 1から100までの数字を選んでそれをプログラムに当てさせる

プログラム「50ですか?」
人間「もっと大きい」
プログラム「75ですか?」
人間「もっと小さい」
プログラム「63ですか?」
……

という感じのじゃないのか?


362 :デフォルトの名無しさん:05/02/15 00:27:19
それで矛盾した情報をインプットすると爆発するんだよな。

363 :デフォルトの名無しさん:05/02/15 03:00:50
基本的なアルゴリズム:
予め1から100までの自然数マップテーブルを定義して(静的でよい)
「表面に」ユーザからの任意入力を受けつけて
マップテーブルとのコネクションを確立させる。
なければエラー入力とみなす。
次に「裏面」でこのコネクションを探索するエンジンを動かす(乱数でよい)
「表面」と「裏面」は独立したオブジェクト構成にして「イカサマ」がないように立証する。

# 実装はしませんよ。そんな低俗な労働は精神衛生上よくありませんので(^^;

364 :デフォルトの名無しさん:05/02/15 04:03:15
(1+sqrt(5))/2 を使うのかい。

365 :デフォルトの名無しさん:05/02/15 07:38:24
なぜ黄金比?

366 :デフォルトの名無しさん:05/02/15 10:09:56
プログラム「50ですか?」
人間「もっと大きい」
プログラム「51ですか?」
人間「もっと大きい」
プログラム「52ですか?」
……


367 :デフォルトの名無しさん:05/02/15 10:30:33
>>363はsuckitだな。

368 :デフォルトの名無しさん:05/02/15 10:37:29
>>366
ε-δ論法?

369 :デフォルトの名無しさん:05/02/15 10:51:30
>365
http://gakuen.gifu-net.ed.jp/~contents/museum/golden/page62.html
一番下を見ろ。

370 :デフォルトの名無しさん:05/02/15 11:48:57
nですか?nではありません→O(n)
nですか?nより(大きい|小さい)です→O(logn)

371 :デフォルトの名無しさん:05/02/15 20:37:50
pythonでWindowsのコマンドラインに入力できる関数ってありますか?

372 :デフォルトの名無しさん:05/02/15 20:43:07
>>371
Win32APIのSendMessage

373 :デフォルトの名無しさん:05/02/15 20:55:40
>>372
pythonでwin32api使いたいんですけど
ActivePython入れるしかない?

374 :373:05/02/15 20:57:11
ごめ。すぐ見つかった。
スレ汚しスマソ

375 :デフォルトの名無しさん:05/02/15 21:04:17
>>371
もしかしたら勘違いしたかも。標準入力からの入力のことを言っているのだったりして…
sys.stdin.readline()

376 :371:05/02/15 21:41:57
えと、pythonからDOSのコマンドを実行したいんですけど
具体的な例を教えてくれませんか?
pythonから別のアプリを引数つきで起動したいんです。

あと質問ですが
pythonのWin32apiってCでWin32api使うのと同じぐらいの機能はあります?

377 :デフォルトの名無しさん:05/02/15 21:42:05
os.popen() じゃない?
などと >>371 の質問をいろいろに解釈してみるテスト

378 :377:05/02/15 21:43:52
しまった、ボケたつもりだったのに・・・

379 :デフォルトの名無しさん:05/02/15 22:53:04
>> 376

例えば,os.system() が使えます.
>>> import os
>>> os.system('"c:\\Program Files\\Adobe\\Acrobat 6.0\\Acrobat\\Acrobat.exe" d:\\docs\\mypaper.pdf')
0

ドキュメントを関連付けされたアプリで開きたいだけなら os.startfile() を使います.
>>> os.startfile("acrobat.exe")

win32api を使うと色々なAPI機能にアクセスできるけど,すべてのAPIに対応している
わけではないでしょう.それに,コールバックが入ってくるようなプログラムを
書こうとしたら苦労するはずです.C で使うほどには融通利かないと思う.

380 :376:05/02/15 23:25:51
>>379
ありがとうございます。
osモジュールは滅多に使わないので解りませんでした。
win32apiは使ってみる価値がありますね。win32guiモジュールも気になる。

日本語の解説サイトが少ないのが悲しいかなw

381 :デフォルトの名無しさん:05/02/15 23:26:30
>376
えーと、例えばDOSプロンプトで
> type
とか
> copy
とか
> xcopy
とかやるような? だったら>379にもう一工夫
>>> os.system('"command.com xcopy 〜〜"') ←9x、Me

>>> os.system('"cmd.exe xcopy 〜〜"') ← 2000,XP

でも、普通にshutil使った方がよかないかい? netコマンド使うとかならしらんけど。

382 :デフォルトの名無しさん:05/02/16 02:41:25
http://d.hatena.ne.jp/doc2/20050204#p1
PyHSP(PygameをHSP風に使えるようにするラッパー)を製作中


383 :デフォルトの名無しさん:05/02/16 02:52:31
>>382
お前は明らかに言語のエレベータで『下がる』ボタンを押してるよ

384 :デフォルトの名無しさん:05/02/16 02:57:28
HSP厨の存在は単なる冗談かと思っていたけれど、本当にいたんだ、こんな人。
まわりのりんごまで腐らないといいけれど。。

385 :デフォルトの名無しさん:05/02/16 03:08:37
貶めるバカが居るとは思わなかった

386 :デフォルトの名無しさん:05/02/16 03:31:47
pygameってFFの画面を思い浮べてしまうんだけどw
でも画像ビュアとかプレゼンUIとかのバックエンドで秘かに使われているので
なんとなしに複雑な心境(´・ω・`)

387 :デフォルトの名無しさん:05/02/16 11:39:09
Pythonでも「るびま」みたいなのがあればいいなー。
どうでしょ?

388 :デフォルトの名無しさん:05/02/16 12:18:29
情報が増えるってのはいいことだ
特に日本語の。

389 :デフォルトの名無しさん:05/02/16 12:48:29
>>388
そのとおりですね。小さなブログ記事1000本よりも、「るびま」風
のまとまった記事1本の方がわかりやすかった。だから、「ぱいそま」
に一票。


390 :デフォルトの名無しさん:05/02/16 12:51:55
ところで、「ぱいそま」で投稿をお願いしたいPythonの
人を募集!

* Rubyist Hotlinks 第 1 回 まつもとゆきひろさんさん
* Rubyist Hotlinks 第 2 回 前田修吾さん
* Rubyist Hotlinks 第 3 回 かずひこさん
* Rubyist Hotlinks 第 4 回 ただただしさん
* Rubyist Hotlinks 第 5 回 増井俊之さん

391 :デフォルトの名無しさん:05/02/16 12:52:53
なんで増井さん…

392 :デフォルトの名無しさん:05/02/16 13:20:40
なんで日本語なんだよ。

393 :デフォルトの名無しさん:05/02/16 13:30:55
>> 391
プロトタイピングとして、Perl4からRubyに乗り換えたんだって。
増井さんの記事、面白かった。

394 :デフォルトの名無しさん:05/02/16 15:30:36
                             .,/  _,/      .、、     ...、ヽ,,-、
                           .,,メ-‐'"       _"',|  .、、._,i.""│._、
                      ._,,,/`,イ―''      ,`",l゙、、,,ジ'"`.```.|゙゛
                    .,,,-,i´,―--―''"      、、,!冖'"`、_、,,,/'゚,,."゙l-‐''
       _,,,,,,,,,,,,,、    _,,,,,--''"`'",/゙            、、.',j/′.、,,∠''"` .'_ヽ.',゙l.._,,、
    ,,-'"゙`    `゙゙''lーイ"`     .‐′    _,..,,/ .ヽ、,i,i´ ``゙’   、、シ":"'.「
  .,,i´         `'i、\ ゙!,      ._,-'"ン'` 、、`_,/`,i´ _,___,ニ='" .'゙、゙".゙l,,-'`
 .,/′          `'i,\ ′  .,,,,-',,,,、.,i´、_:_'_v`"゙i、|   ```` `  、_,Jィ""゙l, _,,,,、
: ,i´             ゙l. ヽ丶  .r‐'"、.l゙、、:,p=l┴丶 .!,,!  `'"''''''冖''?'''゙~."""'."'/゛ `
: |,,r                ゙l, 、 i、、、、:,,_,xl!ヴi,、      、、っ,,,,    、`',,,,、`、`、|、
  |、            、"| .i、 lrr-''"゙,,ハ;、-'"゙゙'''''''"丶ヽ.,,冫``~`"`"~"``` `/ `''''
  `''r,,、 、 、、 .、丶、.``ヽ,レ"°  `` .j゚'=∠、````,,,,,∠ ~'ヽ```````、_,r‐'ヘi、
    `゙'ーi,,_、、、、、: :._,,,r〃       "  /^゚"'广  ,/  .,/゙゙゙'''ヶ―''''″   `
       `゙^""""''"'"                `   ′  ′  ."   
ぱいちんこ

395 :デフォルトの名無しさん:05/02/16 16:47:46
>>390
* Hotlinks 第 1 回 mojixさん
* Hotlinks 第 2 回 たけしさん
打ち切り。

396 :デフォルトの名無しさん:05/02/16 18:32:37
だれか暇な人pythonでマルコフ連鎖書いて〜

397 :デフォルトの名無しさん:05/02/16 18:35:51
>>396
マルコフ連鎖の意味解かっていますか?

398 :396:05/02/16 18:39:50
解らないから書いてほしい。
接頭語句と接尾語をあーだこーだするみたいだけど全く解らない。
つかすれ違いかな。

過疎スレなのに返信速くてワロw

399 :デフォルトの名無しさん:05/02/16 18:53:35
>>387
全うな Pythonist は PEP8 を遵守して英語でコメントせねばなりませんので・・
どうしても日本語情報を欲っするのならばブログのトラバを集めたポータルを
ご自分で作られてはいかがか?

400 :デフォルトの名無しさん:05/02/16 18:54:37
Kakashiで分かち書きしてマルコフ連鎖で文章を自動生成させるPythonスクリプトを以前書いたよ。
夏目漱石風だの梶井基次郎風だのが簡単にできて結構おもしろかった。
そーゆーことがやりたいんだよね?

401 :デフォルトの名無しさん:05/02/16 19:01:16
>>398
一般的なマルコフ連鎖についてもう少し勉強してから来てください。
http://markun.cs.shinshu-u.ac.jp/learn/probability/i_04-00.html

402 :デフォルトの名無しさん:05/02/16 19:08:08
>>401
理解不可w

403 :デフォルトの名無しさん:05/02/16 19:12:28
I'm feeling Lucky!

404 :デフォルトの名無しさん:05/02/16 19:26:53
今読んでるdictionaryの説明のところで dictionary の value について
"values can be immutable. They can be anything you want"
ってあるんですが文脈からいってこれって mutable のまちがいなのではとおもうんですが
実際のところどうなんでしょうか?

405 :デフォルトの名無しさん:05/02/16 19:42:20
>>395
たけしって誰?

406 :デフォルトの名無しさん:05/02/16 19:47:40
PlanetPythonJでいいじゃん。

407 :デフォルトの名無しさん:05/02/16 19:55:04
>>405
Zopeスレへgo!

408 :デフォルトの名無しさん:05/02/16 20:16:02
>>404
その前の文章はどうなってるの?
↓予想

(keyはimmutableでないといかんが、valueはmutableでもおっけーよ。)←文脈
もちろんimmutableでもよい。つまりvalueはなんでもありっす。

409 :デフォルトの名無しさん:05/02/16 20:22:06
>>404←エスパー募集
>>408←エスパー1号

410 :デフォルトの名無しさん:05/02/16 20:25:09
↓エスパー魔美

411 :デフォルトの名無しさん:05/02/16 20:38:40
>>408
おっしゃるとおりです。
value のが sequance として imutable なんだって説明しているの飼って思ってたんですが
value に入れられるものについての説明だったのかぁ。
value と sequance がなんかごっちゃになってました…。
ありがとう御座いました。

412 :デフォルトの名無しさん:05/02/16 20:43:19
何でこんなにもスレ伸びてるの?

413 :デフォルトの名無しさん:05/02/16 20:45:24
↑こういうレスがあるから(含むこのレス)

414 :デフォルトの名無しさん:05/02/16 21:20:09
>>402
高校生になるまでこのスレに書き込むな。
小・中学生には確かに難しすぎる。

415 :デフォルトの名無しさん:05/02/16 21:31:22
Pythonってインデント間違ってると誤動作しますか?

416 :デフォルトの名無しさん:05/02/16 21:42:53
そういうこともある。

417 :デフォルトの名無しさん:05/02/17 00:34:08
これ 0 を最初に入力したらループが抜けるとおもってたんですが抜けないんですよねぇ…。
何処が悪いんでしょう?本に載ってるやつと何処が違うのかいまいちわからない。

choice = None
dic = {"a": "aaaa", "b":"bbbb", "c":"cccc"}

while choice != 0:
print \
"""
0: Quit
1: Look up a term
2: Add a term
3: Redifine a term
4: Delete a term
5: Display all items

"""

choice = raw_input("Make a choice: ")
noterm = "we do not have the term"

if choice == "0":
print "\nGood Bye"

raw_input("enter")


418 :デフォルトの名無しさん:05/02/17 00:36:00
417です。
あ、わかりました。

419 :デフォルトの名無しさん:05/02/17 10:43:16
PerlならCPAN、TeXならCTAN、RならCRAN、PHPならPear・・・と、
「まずはここで探せ」という場所があるんですが、
Pythonだとどこが拠点になるんでしょうか。
皆さんはどうしてますか?
PyPI(ぱいぱい?)というのがそれに相当するんでしょうかね?

420 :デフォルトの名無しさん:05/02/17 10:48:06
だいたいここらで探してる。
h ttp://www.python.org/pypi
h ttp://www.vex.net/parnassus/

421 :デフォルトの名無しさん:05/02/17 11:50:24
>>419
つぅか sf か freshmeat のサーチエンジン使え

422 :デフォルトの名無しさん:05/02/17 16:16:24
以下のコードで,セーブ時にエラーがでて,実行できません.
「〜」って使えないんでしょうか?

----------------------------
# coding=shift_jis

print "〜"
----------------------------

423 :デフォルトの名無しさん:05/02/17 16:44:58
セーブ時にエラーがでて

424 :デフォルトの名無しさん:05/02/17 17:26:34
エディタの問題をPythonスレで聞かれてもリンダ困っちゃう

425 :デフォルトの名無しさん:05/02/17 17:36:29
文字列を標準出力にセーブするときの話だろ。

426 :デフォルトの名無しさん:05/02/17 17:42:21
「標準出力にセーブ」?

427 :デフォルトの名無しさん:05/02/17 17:59:09
エスパーを激しくきぼんぬするスレになりました

428 :デフォルトの名無しさん:05/02/17 18:52:09
おさえの投手が内野ゴロをトンネルして逆転負けっていう話じゃないか?

429 :デフォルトの名無しさん:05/02/17 20:32:36
入力された文字をエンティティ化したいのですが、
JavaScriptのcharCodeAt()みたいなメソッドはありますか?
ttp://www.openspc2.org/reibun/javascript/form_textfield/036/

430 :デフォルトの名無しさん:05/02/17 20:51:42
>>> s = u"\u3000"
>>> s[0]
u'\u3000'
>>> ord(s[0])
12288


431 :429:05/02/17 21:22:27
組み込み関数で用意されていたとは…orz
ありがとうございました!!

432 :デフォルトの名無しさん:05/02/17 22:40:48
ordをorzと誤読した

433 :デフォルトの名無しさん:05/02/17 23:51:07
>>> orz = ord
>>> print orz('\u3000')
12288

これで問題ない

434 :デフォルトの名無しさん:05/02/18 01:49:56
流石だな、兄者。

435 :デフォルトの名無しさん:05/02/18 02:11:20
寧ろ Python そのものを讃えるんだな

436 :419:05/02/18 06:42:33
レス遅れてすみません。
>>420-421 ありがとう。
決定版な場所というのはないにせよ、
だいたい見に行く場所ってのは限定されているんですね。

437 :デフォルトの名無しさん:05/02/18 08:07:40
別に Bittorrent 宜しく、"anywhere"でもいいんだよ。
それだと甚大なアタック被害を被ることはありませんですし。

438 :デフォルトの名無しさん:05/02/18 22:15:57
ODBCやらJDBCやらDBIみたいな統一APIがないと聞きますが
そのうちどーにかなりますか

439 :デフォルトの名無しさん:05/02/18 22:56:54
>>435


440 :デフォルトの名無しさん:05/02/19 00:00:56
>>438
これのことですか?

Python Database API Specification v2.0
http://python.org/peps/pep-0249.html

441 :デフォルトの名無しさん:05/02/19 01:49:20
質問自体が間違いの気もしますが
タプルにどうにかして要素を追加する方法ってありませんか?


442 :デフォルトの名無しさん:05/02/19 01:51:17
>>> x = (1, 2, 3)
>>> x += (4, 5, 6)
>>> x
(1, 2, 3, 4, 5, 6)
>>>

443 :デフォルトの名無しさん:05/02/19 08:07:54
>>440
ttp://www.python.jp/pub/doc_jp/contrib/peps/pep-0249.txt

444 :デフォルトの名無しさん:05/02/19 09:12:18
わかってるんだろうけど、listと違いtupleはimmutableなので

>>> a = (1,2,3)
>>> id(a)
1077626556
>>> a += (4,5,6)
>>> id(a)
1077607900

要素を変更したい場合は、listに変換するのが正しい方法だと思う。

445 :デフォルトの名無しさん:05/02/19 17:00:28
次ぎのエラーの原因がわからないのですがいったい何なのでしょうか?
python2.2.3を使っています。

>>> file = open("D:\a\TEXT\memo.txt","r")
Traceback (most recent call last):
File "<pyshell#7>", line 1, in ?
file = open("D:\a\TEXT\memo.txt","r")
IOError: [Errno 2] No such file or directory: 'D:\x07\\TEXT\\memo.txt'

446 :デフォルトの名無しさん:05/02/19 17:09:20
>>445
パス名がエスケープシーケンスでやられてる

447 :デフォルトの名無しさん:05/02/19 17:14:04
>>446
ありがとう御座います。
どう対処すればいいのでしょうか?


448 :447:05/02/19 17:24:19
/ じゃないとだめなのか。

449 :デフォルトの名無しさん:05/02/19 17:31:31
>>447
\\で'\'とかの話じゃないのかな?

450 :447:05/02/19 17:35:01
>>449
あ、なるほど!
ストリングか。

451 :デフォルトの名無しさん:05/02/19 18:36:24
こういう場合os.pathモジュール推奨なんじゃないの?
まーWindowsとUnixだけなら'/'で間に合うけど。

452 :デフォルトの名無しさん:05/02/19 20:44:57
file = open(r"D:\a\TEXT\memo.txt","r") という手も蟻。

453 :デフォルトの名無しさん:05/02/19 23:42:55
今日初めてpydoc使ってみて驚愕しました。イカす。


454 :デフォルトの名無しさん:05/02/20 04:52:23
>>453
標準ライブラリとかでやったか?
次は自分で作成したモジュールでやって見るべし。

455 :デフォルトの名無しさん:05/02/21 10:30:22
「もし X が 4の倍数なら」っていうのはどうやってかけばいいんですか?

456 :455:05/02/21 10:55:15
for x in range(0,101,2):
print x

こんな感じになるのかなぁ。

457 :デフォルトの名無しさん:05/02/21 11:45:23
>>455
厳密じゃないかもしれませんが、
そのまま「4の倍数なら」って書き方はできないから、
4の倍数の「4で割った余りが0」という性質をつかって書きます。

458 :デフォルトの名無しさん:05/02/21 20:39:41
>>455
if x % 4 == 0:
  xが4の倍数の時の処理
else:
  そうで無いときの処理

>>457
どうせガッコの課題かなんかなんだろうから、
もったいつけてないで直接コードで教えたれや。

459 :デフォルトの名無しさん:05/02/22 03:30:07
まさかPythonの課題などあるまい・・・

460 :デフォルトの名無しさん:05/02/22 08:42:24
C言語スレだと絶対に宿題呼ばわりされちゃうから
意表を突いてPythonスレにしたんだな。賢いやつだ。

461 :デフォルトの名無しさん:05/02/22 13:51:46
PythonからC言語に移植できるような賢いやつが
xが4の倍数かどうかで悩まない気が・・・。

462 :デフォルトの名無しさん:05/02/22 18:26:22
リファレンスの、「Pythonインタプリタの拡張と埋め込み」で
所有権に関する記述があるんだけど、頭悪いせいかさっぱりわからん。
どのタイミングで参照カウントを下げればいいの?
借用した参照は、そのローカルでしか使えないの?

463 :441:05/02/22 19:03:19
タプルに一つの要素ぶっこむ方法できたよーw
>>> x=(1,2,3)
>>> x+=(4,)
>>> x
(1, 2, 3, 4)

この方法ってさ、邪道ですか?

464 :デフォルトの名無しさん:05/02/22 19:12:21
>>442で既出

465 :441:05/02/22 19:22:04
>>> 4,
(4,)
ってことに感動しただけでした。

466 :デフォルトの名無しさん:05/02/22 21:40:45
2.4は最高ですか?

467 :デフォルトの名無しさん:05/02/22 21:45:21
2.5最高です。

468 :デフォルトの名無しさん:05/02/22 22:51:48
ipython最高

469 :デフォルトの名無しさん:05/02/22 23:22:37
すいません、助けてください。
Pythonに限った事ではないんですが‥
テキストに一行ずつランダムな五桁の数字があり(総行数は一定ではない)、
上から順にテキストを読んで行き、参照している行にある数値が前10行の内、
最大の数値であれば、HIT!、それ以外はpassするスクリプトを書くとしたらどのように書きますか?

ちょっと意味不明な文章かもしれませんが、誰か知恵を下さい。

470 :デフォルトの名無しさん:05/02/22 23:51:33
宿題じゃないことを証明せよ

471 :デフォルトの名無しさん:05/02/23 00:06:33
nyanko=eval(str([0]*10))
def wanko(a,b):pass
for line in sys.stdin.xreadlines():
 for b in nyanko:
  wanko(int(line.strip()),b)
 nyanko.pop(0)
 nyanko.append(int(line.strip()))

472 :デフォルトの名無しさん:05/02/23 00:16:08
内側のループはわんこの中に入れたほうが良いね。
あと1行目が意味不明。

473 :デフォルトの名無しさん:05/02/23 01:29:25
単純に。

import sys

lst = []
for line in sys.stdin:
  curNum = float(line.strip())
    for n in lst:
      if n == curNum:
        print "Hit", curNum, lst
        break

    lst.append(curNum)
    f len(lst) == 10:
      lst.pop()

ではダメかね。


474 :デフォルトの名無しさん:05/02/23 01:35:16
インデント失敗。

import sys

lst = []
for line in sys.stdin:
  curNum = float(line.strip())
  for n in lst:
    if n == curNum:
      print "Hit", curNum, lst
      break
  lst.append(curNum)
  if len(lst) == 10:
    lst.pop()


475 :デフォルトの名無しさん:05/02/23 02:20:30
zlibについて質問させてください。
以下のようなコードを書きました。

#!/usr/bin/python

import zlib

f = open("test.gz", "r")
all = f.read()
f.close

all = zlib.decompress(all)

print all,

すると「zlib.error: Error -3 while decompressing data: incorrect header check」というエラーになってしまいます。
「test.gz」はgzipコマンドを使って手動で作ってファイルです。
ヘッダーが壊れているとは思えないのですが……。
もちろんgzipコマンドでは解凍することが出来ます。
お知恵を拝借させてください。
よろしくお願いします。

476 :デフォルトの名無しさん:05/02/23 03:32:07
f = open("test.gz", "rb")
バイナリモードで開くべし

477 :469:05/02/23 03:46:19
>>471,474
ありがとうございます。でもどちらも上手く行きません。
例えば
2,1,5,3,1,1,1,1,1,1,1,1,4
とあった場合(コンマ区切りは一行として)
最初の2が最大値としてスタートし、5と4がヒット。
>>474さんの場合は3もヒットしてしまいます。
自分でもいろいろ試してみましたが、完璧なものが作れません...orz
頼みます。誰かお願いします。

478 :デフォルトの名無しさん:05/02/23 06:50:05
>>477
import sys

lst = []
for line in sys.stdin:
  curNum = float(line.strip())
  try:
    if curNum >= max(lst):
      print "Hit", curNum, lst
  except ValueError:
    pass

  lst.append(curNum)
  if len(lst) > 10:
    lst = lst[1:]


479 :469:05/02/23 07:24:06
>>478
完璧です!ありがとうございます!
ほんとに助かりました。
調べながらソース見て勉強させて頂きます。

480 :R(x):05/02/23 09:56:50
>>469

def hit_max_mae_10(lst, idx): return idx and lst[idx] > max(lst[max([0,idx-10]):idx])

dataをlstで与えられ、そのidx番目の値が前10個の値と比較して大かどうかでTrue/Falseを返すと思う。
idxが0の時、無条件にFalseを返すように工夫してみた。あと、pythonらしくなるようにも。

481 :デフォルトの名無しさん:05/02/23 11:26:17
>>480
なんか、Pythonらしいというか、Lisp風だなぁ。

482 :469:05/02/23 12:10:22
>>480
ごめんなさい
俺の知識じゃ、それの使い方すらわからない。
どのように扱うのでしょうか?

483 :745:05/02/23 12:15:20
何方か>>745わかりませんか?

484 :デフォルトの名無しさん:05/02/23 12:24:49
>>475
gzip.open("test.gz")

485 :R(x):05/02/23 12:52:55
>>480 私はLispを知らないのですけど、そうなんですか。
>>483 >>475

hit_max_mae_10(lst, idx)のlstに、元になるテキストから作られたリストを入れてください。
例えば、こんなのです。[2, 3, 8, 1, 2, 5, 9, 8, 1, 0, 7, 9, 2, 9, 3]
で、その中でチェックしたい値の番号をidxに与えます。
例えば例のリストの9だったら、6ですね。
そしたらこの関数は、条件にあっていればTrue値、そうでなければFalse値を返します。
idxに0を指定した時は、どうしょうかと思ったのですけど、無条件にFalse値にしときました。

オマケに私の作成した時のコードを全部、貼り付けますね。>>482
インデントを全角スペースにしたので、半角に置き換えて動かしてみてください。
import random
def hit_max_mae_10(lst, idx): return idx and lst[idx] > max(lst[max([0,idx-10]):idx])
print '- '*20
s = [random.randint(0,9) for x in range(random.randint(15,20))]
print s, len(s)
for i in range(len(s)):
  if hit_max_mae_10(s, i): print 'HIT!', i, s[i]

486 :デフォルトの名無しさん:05/02/23 12:54:49
>>484
あんたすごい。745=475ってことね・・・
エスパー決定w

>>482
どこまで分かるのかが解らないんですけんど
max()は組み込み関数で、リストの中で最大の数値を返す。
Pythonのリストはスライスって機能があって
たとえば
>>>lst=[1,2,3,4,5]
>>>lst[2:4]
[3, 4]
って感じだよ

>>480
max([0,idx-10])をする意味がよく解らんのですが・・・

487 :R(x):05/02/23 13:03:36
>>486 それはですね、、、こうしないとこのスライスをとったときに
に例えばidxは5だった時に、lst[-5:5]ってなって、空リストが返ってしまってたからです。

488 :469:05/02/23 13:18:45
>>485
できました!
これも完璧ですね。
本当に勉強になりました!ありがとうございます!

489 :デフォルトの名無しさん:05/02/23 13:48:37
>>487
なる。そこまで配慮したのね

490 :R(x):05/02/23 14:29:43
>>489 そうしないと、出来なかったのです。例えば。
>>> range(7)[-5:5]
[2, 3, 4]


491 :デフォルトの名無しさん:05/02/23 14:52:41
ttp://www.cubelab.com/ymasuda/python/wxpython/simplesample.html
ここの一番下辺りにあるOnInitメソッドの
self.frame.Show(true)
って間違ってません?


492 :デフォルトの名無しさん:05/02/23 18:14:43
>>491
frame.Show(True)
の間違いだろうね。

493 :デフォルトの名無しさん:05/02/23 19:17:36
Pythonにはcのgetcやputcみたいに1文字ごとに入出力ってないの?

494 :デフォルトの名無しさん:05/02/23 19:46:59
getc?: c = sys.stdin.read(1)
putc?: sys.stdout.write('!')

495 :デフォルトの名無しさん:05/02/23 21:24:48
>>494
どうもです。
writeは知りませんでした。

496 :デフォルトの名無しさん:05/02/24 01:57:14
ここ以外でも、python系スレで、shelveモジュールについて、話題になった事ってあるのでしょうか?
最近初めて使って、これの便利さ加減に驚愕し、もっと便利な使い方はないかなと思って。

497 :デフォルトの名無しさん:05/02/24 02:04:59
何ソレ?

498 :デフォルトの名無しさん:05/02/24 06:01:40
>>496
なんかのdbm系 + pickleで同じような動作を自分で作れる。
トランザクションとかがほしい場合は、Standalone ZODB使ってもいい。
あと、こんなのも http://www.mems-exchange.org/software/durus/ ある。

>>497
せっかく和訳軍団ががんばっているのだから、
http://www.python.jp/pub/doc_jp/lib/module-shelve.html
くらい読むように。

499 :デフォルトの名無しさん:05/02/24 08:16:23
>>496
pyweblibでセッション管理に使われてますね。
重宝してます。動作の仕組みはさっぱりわからんけど…

500 :デフォルトの名無しさん:05/02/24 12:31:25
ユーノス500

501 :496:05/02/24 16:19:49
>>498-499 ありがとうです。見てみましたが、ほとんど分かりませんでした;;
shelveは必ず実体のあるファイルを要求するんですね、fileオブジェクトでもいいと
もうちょっとうれしかったかも。使い方の問題なのかな?
私の特にうれしいと思った点は、ちょっとの事ならDBを立てないですむ事。読む速度が早い事。
リアルタイムな書き換えの必要無い場面で、pythonのよく使うオブジェクトをそのまま入れておきたいとき便利ですよね。
またprotocol パラメタかなにかを使って、圧縮や暗号化も出来るのですか?

502 :デフォルトの名無しさん:05/02/24 17:19:53
shelve.py を読んでみるといいよ。小さなモジュールだから簡単だと思われ。

shelve が強力なのは pickle モジュールが強力だからだね。
pickle は Python のオブジェクトを文字列に変換したりオブジェクトに
戻したりするのに使うモジュール。オブジェクトを文字列に変換できれば、
ファイルへの格納もできるし、圧縮・暗号化することもネットワーク上を
流すこともできる。shelve は pickle の有用な応用の一つというわけ。

503 :デフォルトの名無しさん:05/02/24 17:54:37
信者ってキモイね

504 :デフォルトの名無しさん:05/02/24 18:39:17

 | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
 |   次でボケて!!!   |
 |________|
    ∧∧ ||
    ( ゚д゚)||
    / づΦ

505 :ウエシマ:05/02/24 19:29:51
ハゲを直したい!!

506 :デフォルトの名無しさん:05/02/24 20:04:10
>>505
さすが敗北者スレ

507 :デフォルトの名無しさん:05/02/24 21:39:47
>>505
         ,. -──‐- 、
        /        \
       /       MSCB   ヽ
     _|==、__, --- 、  ____  l
     f勹 -`l-==、 j=v'___ ヽ.|
     .!L!    `ー彡' ト、__゙ノV!
     L.j,     / `‐' -'ヽ  〃 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       |   ヾュェェュ,, 〉 /j <  ハゲも爽快感があって気分いいですよ。
       |ヽ、   ヽ二´  /   \______________
    _,. -''^ヽ \       /ヽ、   
-‐'''´   || ヽ ヽニニr'´   `゙ヽ、

508 :デフォルトの名無しさん:05/02/24 22:05:10
AA貼るな。荒れるから。

509 :デフォルトの名無しさん:05/02/24 22:47:12
>>502 あれから、shelve.pyを見てみました。
小さいと言うより、ほとんど以上の処理を、他のモジュールに投げてしまってましたね。
shelveはアイデアが良かったか伝統的なのか何故か標準モジュールになってるのでしょうね。
これなら>>498 の言うように自分の欲しい機能を実装したものを作るのも頷けますね。
独自でこれを拡張するってのもアリでしょうね。

510 :デフォルトの名無しさん:05/02/25 02:46:57
丁度今pickleの移植中、個人的にタイムリーな話題

>>501
protocolはpickleのパラメータで、データを保存するフォーマットのバージョン番号みたいなものです。
省略時は 0 で、すべてのデータが文字列として書き込まれ、
1 や 2 を設定すると、データはpackされ、バイナリで保存されます。

データ全体を圧縮とまではいかないけど、
重複する要素は参照にして、データの実態はひとつにまとめるくらいの工夫はされてます。
オブジェクトの参照が保たれる為、循環構造も保存できます。暗号化はされません。

>>> a = []
>>> b = [a]
>>> a.append(b)
>>> pickle.dumps(b)

# marshal.dumps だと segmentation fault

511 :デフォルトの名無しさん:05/02/25 15:02:21
>>507
だれ?
ホリエモンでもないし。

512 :デフォルトの名無しさん:05/02/25 15:16:46
>>511
ttp://columbia.jp/~chiharu/

513 :デフォルトの名無しさん:05/02/25 17:18:45
pythonのプログラミングコンテストがあるようです。
http://www.samhita.info/Home.htm

514 :デフォルトの名無しさん:05/02/25 19:27:14
>>511-512
ttp://mojix.org/

515 :デフォルトの名無しさん:05/02/25 21:16:56
>>512 「粋」の代表的な例
>>514 「野暮」の代表的な例


516 :デフォルトの名無しさん:05/02/26 01:34:38
で、この人がどうかしたの?

517 :デフォルトの名無しさん:05/02/26 02:24:10
pygameについて質問ですが
spriteを動かしたら残像が残るんですがどうしたらいいでしょうか?

518 :デフォルトの名無しさん:05/02/26 05:30:21
>517
http://www.unixuser.org/~euske/doc/pygame/pygameintro1.html

519 :デフォルトの名無しさん:05/02/26 14:50:25
timedeltaってどうやったら使えるようになるんですか?
import timedelta ってしたらエラーがでるんですが。
python は2.2 2.3 2.4 入れています。
よろしくお願いします。

520 :デフォルトの名無しさん:05/02/26 14:59:46
from datetime import timedelta


521 :デフォルトの名無しさん:05/02/26 15:10:38
ありがとう御座います
なんかよく使い方がわからないです…。
とりあえず今日の日付をだしてほかの日付との差を出してみたいんですが、どう言う風に使えば委員でしょうか。
今日の日付の出し方もわからないんですよね…。
import datetime
d = datetime.today()
じゃだめなんですか?
ほんと基本的な質問だとはおもうんですがすいません。

522 :デフォルトの名無しさん:05/02/26 15:13:32
なんとなくわかりました。
今日の日付はこうするんですね。
datetime.datetime.today()

523 :デフォルトの名無しさん:05/02/26 17:24:52
この下のところでエラーが出るんですがどうしてなんでしょうか?
def quit_time():
data_file = shelve.open("data.dat", "c")
data_file["quit_time"] = "test"
print data_file["quit_time"]
raw_input("enter")

Traceback (most recent call last):
File "D:\a\TEXT\Py\going_over\going_over.py", line 192, in -toplevel-
main()
File "D:\a\TEXT\Py\going_over\going_over.py", line 190, in main
quit_time()
File "D:\a\TEXT\Py\going_over\going_over.py", line 156, in quit_time
data_file = shelve.open("data.dat", "c")
File "D:\A\UTILITIES\PYTHON\PYTHON23J\lib\shelve.py", line 231, in open
return DbfilenameShelf(filename, flag, protocol, writeback, binary)
File "D:\A\UTILITIES\PYTHON\PYTHON23J\lib\shelve.py", line 212, in __init__
Shelf.__init__(self, anydbm.open(filename, flag), protocol, writeback, binary)
File "D:\A\UTILITIES\PYTHON\PYTHON23J\lib\anydbm.py", line 80, in open
raise error, "db type could not be determined"
error: db type could not be determined

524 :デフォルトの名無しさん:05/02/26 17:26:14
age

525 :デフォルトの名無しさん:05/02/26 17:30:44
どうも今は教えてクンに教える気分になれねえ。
任せた。


526 :デフォルトの名無しさん:05/02/26 17:36:41
(・∀・)ウンコー

527 :デフォルトの名無しさん:05/02/26 17:43:35
そんなこといわずに教えてくださいな。
こう見えてもdocumentationも検索したし本も見たんですからぁ。

528 :デフォルトの名無しさん:05/02/26 17:54:46
まずエラーメッセージを声に出して読んでみろ。

529 :デフォルトの名無しさん:05/02/26 18:29:40
やっぱりわかんないです、先生。
いろいろ調べてみたんですが↓これっすか? パイソンを再インストールすればいいんのかなぁ。なんのこっちゃわけわかんないっす。

The Suse 6.2 distro does not have dbm built in. Recompile Python but first
edit the Modules/Setup file to allow gdbm to be compiled in as a shared
library. Shelve will work but I have not been able to build Tkinter
correctly this way. So I use /usr/bin/python for Tkinter apps and
/usr/local/bin/python for shelve apps.



530 :デフォルトの名無しさん:05/02/26 18:50:10
> File "D:\A\UTILITIES\PYTHON\PYTHON23J\lib\anydbm.py", line 80, in open
> raise error, "db type could not be determined"
anydbm.pyの80行目では何の処理をやっている?

プログラマならgoogleより先にまずドキュメントとソースを見る。
それが出来ないなら足を洗った方がいい。時間の無駄だから。

531 :デフォルトの名無しさん:05/02/26 19:11:12
>>530
ありがとうございます。できました。
すごく勉強なりました。
そういうふうに原因を探していけばいいんですね。目からうろこでした。
プログラミング自体勉強し出してひとつきぐらいなんでそう言う風に調べていくんだってことも知りませんでした。
ありがとうございました。


532 :496:05/02/26 19:13:45
openの時に'c'って指定してるのに、data.datってファイルを作って無いとか?>>523
と、試さずに言ってるので、違ってたらスマソ

533 :496:05/02/26 19:15:05
あ、sageたのに上がった!と思ったら解決でしたか。では

534 :デフォルトの名無しさん:05/02/27 21:57:28
python について質問できるところでもっとも人が多い(レスが早い、書き込み数が多い)ところって英語のサイトも含めて何処でしょうか?

535 :デフォルトの名無しさん:05/02/27 22:00:41
c.l.py?

536 :デフォルトの名無しさん:05/02/27 22:20:18
2ch

537 :デフォルトの名無しさん:05/02/27 22:22:17
初心者です。ただいまPythonをダウンロードしたばかりなんですが、
インストールした後に何をやればいいのかわからない初心者です。
ここにいる皆さんは次何をしましたか?
教えてください。

538 :デフォルトの名無しさん:05/02/27 22:43:51
>537
とりあえずコマンドプロンプト立ち上げて
> python
って打って、手元のはじPyのサンプルをぽちぽち入力して「おー」と感心した。

539 :デフォルトの名無しさん:05/02/27 22:44:45
おー

540 :デフォルトの名無しさん:05/02/27 22:45:54
>>538
ありがとうございます!やってみます!
よければ皆さんのお勧めのPythonの本を教えてください。

541 :デフォルトの名無しさん:05/02/27 23:04:35
>>540
ネットで読めるドキュメントで十分

542 :デフォルトの名無しさん:05/02/27 23:06:19
自分もインストールした後どうすればいいのかわからなくて
本買うまで何もしなかった(できなかった)です…。

543 :デフォルトの名無しさん:05/02/27 23:14:32
プログラミング経験が全く無いのであれば、本家サイトのチュートリアル
から始めるのがいいと思う。
その次は「Python Cookbook」かな・・・
「初めてのPython」は良書だと思うけど、何気にレベル高い。

544 :デフォルトの名無しさん:05/02/27 23:16:41
>>540
>>538が「はじPy」と略してるが、
・初めてのPython 第2版
ttp://www.oreilly.co.jp/books/4873112109/
俺は買ってないが入門にちょうど良いだろう。日本語でのPython本としては最新だろうし。

あとは、各種モジュール・ライブラリを使うために、
・Pythonクイックリファレンス
http://www.oreilly.co.jp/books/4873111773/
は出来れば持っていたほうがいい。

あと入門書としてはちょっと古いけど
・Pythonで学ぶプログラム作法
http://www.pearsoned.co.jp/washo/prog/wa_pro45-j.html
これは一般のプログラミング初心者向けに書かいてあるので、Python独自のつっこんだ解説はないが
逆に読みやすいかもしれない。

545 :デフォルトの名無しさん:05/02/27 23:23:51
恥py2、ほんとに初めての人はビビる値段と厚さだな

546 :デフォルトの名無しさん:05/02/27 23:34:59
>>541>>542>>543>>544>>545
みなさんほんとにありがとうございます(泣)
他のスレだとみんなに馬鹿にされまともに答えてもらえず、騙され続けました。
本当にありがとうございました。
がんばって習得してみます!!!!!!!・゜・(ノД`)・゜・。

547 :デフォルトの名無しさん:05/02/27 23:46:45
VB、HyperTalk、C++、Perl、Ruby とさわってきたのだが
Pythonは end や } がないのがとても不安で
トイレを流さず出てきたみたいな気がする。
# end def とか入れてたこともあった。
いつになったら、堂々と流さなくなれるんだろうか。

548 :デフォルトの名無しさん:05/02/27 23:54:06
> # end def とか入れてたこともあった。

それやると、コメントの場所が最初から間違ってたり、
スクリプトは修正してもコメントはそのままだったりして余計に混乱するんだよね

549 :デフォルトの名無しさん:05/02/28 00:09:37
>>534
#python-cleese
#python-gilliam

550 :デフォルトの名無しさん:05/02/28 00:34:37
>>537へのお題
いろいろ弄って慣れてきたら、下記の物を作ってみそ

@指定URLのHTMLファイルからタイトルと『http://』から始まるurlを全て抽出
A抽出したURLのそれぞれのページを開き、それぞれのタイトルを取得
B最初に指定したURLのタイトルでテキストファイルを作成し、
  『url<>タイトル』の書式で書き込む。

読み書き処理とURL処理が出来るだけでも結構遊べるから、よかったら挑戦して見て下さい。


551 :デフォルトの名無しさん:05/02/28 00:40:43
ところでpythonで使えるvalidationまでやってくれるXMLパーサってある?
XML Pathも使えればなおよし。


552 :デフォルトの名無しさん:05/02/28 01:01:33
libxml2-python

553 :デフォルトの名無しさん:05/02/28 01:21:21
PyXML

554 :デフォルトの名無しさん:05/02/28 03:03:14
importしたfileが存在する場所のpathを知るにはどうすればいい?


555 :デフォルトの名無しさん:05/02/28 03:57:26
inspect.getsourcefile(module)

556 :デフォルトの名無しさん:05/02/28 12:59:39
>>550さんありがとうございます!
やってみます♪

557 :デフォルトの名無しさん:05/02/28 13:42:50
                             .,/  _,/      .、、     ...、ヽ,,-、
                           .,,メ-‐'"       _"',|  .、、._,i.""│._、
                      ._,,,/`,イ―''      ,`",l゙、、,,ジ'"`.```.|゙゛
                    .,,,-,i´,―--―''"      、、,!冖'"`、_、,,,/'゚,,."゙l-‐''
       _,,,,,,,,,,,,,、    _,,,,,--''"`'",/゙            、、.',j/′.、,,∠''"` .'_ヽ.',゙l.._,,、
    ,,-'"゙`    `゙゙''lーイ"`     .‐′    _,..,,/ .ヽ、,i,i´ ``゙’   、、シ":"'.「
  .,,i´         `'i、\ ゙!,      ._,-'"ン'` 、、`_,/`,i´ _,___,ニ='" .'゙、゙".゙l,,-'`
 .,/′          `'i,\ ′  .,,,,-',,,,、.,i´、_:_'_v`"゙i、|   ```` `  、_,Jィ""゙l, _,,,,、
: ,i´             ゙l. ヽ丶  .r‐'"、.l゙、、:,p=l┴丶 .!,,!  `'"''''''冖''?'''゙~."""'."'/゛ `
: |,,r                ゙l, 、 i、、、、:,,_,xl!ヴi,、      、、っ,,,,    、`',,,,、`、`、|、
  |、            、"| .i、 lrr-''"゙,,ハ;、-'"゙゙'''''''"丶ヽ.,,冫``~`"`"~"``` `/ `''''
  `''r,,、 、 、、 .、丶、.``ヽ,レ"°  `` .j゚'=∠、````,,,,,∠ ~'ヽ```````、_,r‐'ヘi、
    `゙'ーi,,_、、、、、: :._,,,r〃       "  /^゚"'广  ,/  .,/゙゙゙'''ヶ―''''″   `
       `゙^""""''"'"                `   ′  ′  ."   
ぱいちんこ


558 :デフォルトの名無しさん:05/02/28 13:56:00
>>547
インデントが滅茶苦茶になったら (そんなケース無いけど) どうしよう,
とは思います.lisp ならカッコのお陰で emacs がちゃんとやってくれるんですが.

でも,結局は「馴れ」なんですよね.

559 :デフォルトの名無しさん:05/02/28 14:34:45
>>558
emacsならpython-modeがpythonのソースの中にあるからそれを使えば、

560 :デフォルトの名無しさん:05/02/28 14:44:52
努力次第ではキミもぱいちんこ、と言いたいところだけど、

561 :デフォルトの名無しさん:05/02/28 14:50:08
>>559
python 付属の python-mode はちょっと古くて PEP318 対応(decorator)がないよ

562 :デフォルトの名無しさん:05/02/28 15:16:59
>>561
そうなのか。
デコレータ使ったことないから俺は問題ないけどな。

っていうか使用例があるなら知りたいね、デコレータ。

563 :デフォルトの名無しさん:05/02/28 16:22:56
>>558
慣れですむかよ。
インデントが失われたら、機械的には元に戻せないんだぞ。

564 :デフォルトの名無しさん:05/02/28 17:26:16
>>563
インデントが失われるってどんな状況ですか?

565 :デフォルトの名無しさん:05/02/28 17:27:47
(・∀・)ニヤニヤ

566 :デフォルトの名無しさん:05/02/28 17:40:18
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* !!!!!!!IF YOU CHANGE TABS TO SPACES, YOU WILL BE KILLED!!!!!!!
* !!!!!!!!!!!!!!DOING SO FUCKS THE BUILD PROCESS!!!!!!!!!!!!!!!!
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


567 :デフォルトの名無しさん:05/02/28 17:44:36
>>556
あとお勧めのエディタはJmEditor

568 :デフォルトの名無しさん:05/02/28 17:45:34
もしかして: Mediator

569 :デフォルトの名無しさん:05/02/28 17:54:53
(・∀・)ニヤニヤ

570 :558:05/02/28 18:10:01
>>563
いえ,失われないように編集できるように馴れましょう,ってことです.

571 :デフォルトの名無しさん:05/02/28 18:16:59
コードをコピペするな

572 :デフォルトの名無しさん:05/02/28 18:25:20
高性能なリファクタリングブラウザ作ってから言え

573 :デフォルトの名無しさん:05/02/28 18:35:50
(・∀・)ニヤニヤ

574 :デフォルトの名無しさん:05/02/28 18:52:27
インデントが失われたら機械的に元に戻せないなんて、
"}"や"end"が失われたら機械的に元に戻せないのと
同じ位にしか危機感を感じませんが、皆さんはどうですか?

575 :デフォルトの名無しさん:05/02/28 18:52:36
>>555
ごめん、importしたfileじゃなかった。あるclassを定義してるmoduleがあるん
だけど、そのmodule自身が存在する場所のPathを知りたいんです。importした
fileだとそれでうまくいったんだけど、自身のmoduleをどう指定したらいいか分
からん。inspect.getsourcefile(self)だとerror出るし。自身のmoduleを指定
する識別子ってある?


576 :デフォルトの名無しさん:05/02/28 19:04:24
>>> import os
>>> os.__file__
'C:\\Python23\\lib\\os.pyc'

577 :デフォルトの名無しさん:05/02/28 19:14:18
[foo.py]
class A:
    def __init__(self):
        m = __import__(__name__)
        print m.__file__

[IDLE]
>>> import foo
>>> a = foo.A()
C:\Documents and Settings\Super Hacker\My Documents\foo.pyc

578 :デフォルトの名無しさん:05/02/28 19:17:22
>574
ネタにマジレス超クール

579 :デフォルトの名無しさん:05/02/28 19:22:22
Python コードは Python IDE 上で弄ぶのが通。

580 :デフォルトの名無しさん:05/02/28 21:30:48
>>574
空白と、} や end などの文字列では失う可能性がまるで違う。


581 :デフォルトの名無しさん:05/02/28 21:55:19
>>580
物がソースコードって事を考えると、空白だろうがそうでなかろうが、
1byteでも失った時点でどうかしてると思うよ。

582 :デフォルトの名無しさん:05/02/28 22:05:02
>>567さんありがとうございます!!
挑戦してみます!!(^ヮ^)

583 :デフォルトの名無しさん:05/02/28 22:36:05
自分はPy厨だから戻れないけど、一般的な感覚のプログラマなら、
インデントを失う可能性に嫌悪感というか危機感をもつのが通常だろうね。

584 :デフォルトの名無しさん:05/02/28 22:48:27
>>571 やっべ、ばれたか

585 :デフォルトの名無しさん:05/02/28 22:57:57
>>583 rubyのendどれと対応してるのかわからなくなるので
endが消えるとめんどい。Pythonは、その危険性がどの行にも
あるようなもんかな。

586 :デフォルトの名無しさん:05/02/28 23:07:00

    〃〃∩  _, ,_
     ⊂⌒( `Д´) < インデント消えたらヤダヤダ!
       `ヽ_つ ⊂ノ
              ジタバタ

    〃〃∩  _, ,_
     ⊂⌒( `Д´) < Pythonでも消えたらヤダヤダ!
       `ヽ_つ__つ
              ジタバタ

      _, ,_
     (`Д´ ∩ < JavaでもLispでもヤダヤダ
     ⊂   (
       ヽ∩ つ  ジタバタ
         〃〃

    〃〃∩  _, ,_
     ⊂⌒( つД´) < Cでもヤダヤダ
       `ヽ_ ノ ⊂ノ
              ジタバタ

       ∩
     ⊂⌒(  _, ,_) < ヤダヤダ…
       `ヽ_つ ⊂ノ
              ヒック...ヒック...

       ∩
     ⊂⌒(  _, ,_) 
       `ヽ_つ ⊂ノ  zzz…


587 :デフォルトの名無しさん:05/02/28 23:29:00
>>576
そのようにimportされたmoduleならinspect.getsourcefileで得られるので
問題ないです。実行中のmoduleから自身のpathを得る方法が分からないんです。

>>577
__import__(__name__).__file__で得られました。thanks

588 :デフォルトの名無しさん:05/02/28 23:43:22
藻前らが愛用してるヴィジュアライゼーション・アイテムを教えてください.
超クールなプロット,グラフが出せるやつをお願いします.

589 :デフォルトの名無しさん:05/02/28 23:47:35
>>588
Microsoft Excel。win32com でウハウハ。

590 :デフォルトの名無しさん:05/02/28 23:51:43
まやび

591 :デフォルトの名無しさん:05/03/01 04:59:04
matplotlib

592 :デフォルトの名無しさん:05/03/01 08:37:26
PyX

593 :デフォルトの名無しさん:05/03/01 09:46:05
PyQtのQCanvasで自前で描画

594 :588:05/03/01 12:56:06
>>589-593
親切にありがとう! #(本当に愛用してい(ry

unix でも windows でも使いたいということで,win32 バイナリのある
まやびと matplotlib を試してみます.
どちらも動作はあまり軽くないですね...

>>588 ctypes ってことですか?

595 :588:05/03/01 21:40:19
メモ: matplotlib 試用中...show() すると window を閉じるまで次の処理ができないorz

596 :デフォルトの名無しさん:05/03/01 22:01:56
>>594
> ctypes ってことですか?

これはどのレスに対する問いだ?(エスパーの俺にも分からん)

597 :396:05/03/01 22:47:32
今更だけど書けました(文章自動生成)。自分のレスを見返すと恥ずかしい・・・

598 :588:05/03/01 23:42:08
>>596
レス番号ミスでした.>>589 の win32com にレスシマシタ.

matplotlib は deb を apt でインストールしたところ,
pygtk が使われているみたいです.
これと show() しないと表示されないのと関係あるのでしょうか?
敗北者な私でも機能が少ない Gnuplot-py からは脱脚したいものです.

599 :デフォルトの名無しさん:05/03/01 23:54:14
.matplotlibrcでbackendをGTKAggからTkAggとかに変えてもだめかな?
俺windowsだからよくわからんけど

600 :588:05/03/02 00:16:58
>>599
backend 変わりました! でも show() しないと出てこないのは相変わらずです.
インタラクティブに操作したいときは困りますよねぇ...

601 :デフォルトの名無しさん:05/03/02 00:36:55
>>598
> レス番号ミスでした.>>589 の win32com にレスシマシタ.

http://starship.python.net/crew/mhammond/win32/

>>> import win32com.client.dynamic
>>> app = win32com.client.dynamic.Dispatch("Excel.Application")
>>> book = app.Workbooks.Open(r"C:\Documents and Settings\Super Hacker\My Documents\mona.xls")
>>> sheet = book.Worksheets(1)
>>> sheet.Cells(1, 1).Value
u'mona'
>>>
のよーに Excel などの Windows アプリ(COM鯖)を Python から操作できる。

602 :デフォルトの名無しさん:05/03/02 00:40:02
あ…
同じく.matplotlibrcでinteractiveをTrueにしてみて

603 :588:05/03/02 00:55:13
>>602
show() しなくてもできました! 手取り足取りありがとうございました.
これからガンガン試してみます.

604 :デフォルトの名無しさん:05/03/02 01:42:13
人生の敗北者は「まやび」をMayaViと変換できなさそうだな
orz

605 :デフォルトの名無しさん:05/03/02 02:37:57
(・∀・)<u"\u041d\u0423\u0420\u0423\u041f\u041e"

606 :デフォルトの名無しさん:05/03/02 10:12:47
(´-`).。oO(ふつーはRPyを使うだろうに・・・

607 :デフォルトの名無しさん:05/03/02 11:38:13
何か処理を行おうとして、それが
組み込み関数やらで用意されているか
自分で作らなくてはならないか
どうかの判断はどのようにすればよい?

608 :デフォルトの名無しさん:05/03/02 11:50:26
ライブラリのリファレンスをざっと見て、どこになにがあるかの内容を把握しとけ。
それも言語習得の一過程。

609 :デフォルトの名無しさん:05/03/02 13:09:07
                \ │ /
                 / ̄\   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
               ─( ゚ ∀ ゚ )< ぱいちんこぱいちんこ!
                 \_/   \_________
                / │ \
                    ∩ ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< ぱいちんこ!
ぱいちんこ〜!    >( ゚∀゚ )/ |    / \__________
________/ |    〈 |   |
              / /\_」 / /\」               ̄     / /


610 :デフォルトの名無しさん:05/03/02 13:09:23
>>607
(1)とりあえず具ぐる。
標準ライブラリにあるものは当然リファレンスのページが見つかる。
「こーゆー処理がやりたいんだけど」的なML・掲示板のやりとりも見つかる。
誰かが作った便利なモジュールも見つかる。
(2)見つからなければML・掲示板で聞く。
要求を具体的に書く。それが後に誰かが検索したときの役に立つ。
(3)それでもダメなら存在しないと諦めて自炊する。

具ぐるときのキーワードを選ぶ(探す)のが意外と難しいわけだが、
それはまた別の話。

611 :デフォルトの名無しさん:05/03/02 13:16:06
Pythonソースコードを見ればどんなモジュールがどういうふうに使われているのかが分かるよ。

612 :デフォルトの名無しさん:05/03/02 16:28:29
Pythonで、別のフォーマットのファイルを
XML にして書き出すのって何を使えばいいのでしょうか?

自分でタグを print してもいいのですが、もっといい方法があれば教えてください。

613 :デフォルトの名無しさん:05/03/02 18:29:35
DOM ツリーをこさえて .toxml() とか。
invalid な文書を吐く心配がない点がメリット。
反面、禿しく面倒くさい。折れならやらん。

614 :デフォルトの名無しさん:05/03/02 19:20:28
>>612
RSS.py

615 :デフォルトの名無しさん:05/03/02 20:44:53
dictionary で
d = {("a","b"):"c"}
としたとき
"a" だけをつかって "c" をよびだすこってできないんでしょうか?

616 :デフォルトの名無しさん:05/03/02 20:49:25
見つかるまで全ての要素を回せば?

617 :デフォルトの名無しさん:05/03/02 20:53:46
>>615
要素が一つだけじゃ、なんとも言えない気がする。
d = {("a","b"):"c", ("a","d"):"e"} は無いってことか?
d = {("a","b"):"c", ("d","a"):"e"} はありうるのか?

618 :デフォルトの名無しさん:05/03/02 21:08:04
>>617
今のところはないとおもいます。
まわすってのは
keys = d.keys()
for key in keys:
 for element in key:
  if elemtnt = "a":
   destination = key

d[destination]
てなかんじですか?



619 :デフォルトの名無しさん:05/03/02 22:12:08
なら素直に
d = {"a":("b","c")}
とか
d = {"a":(("a","b"),"c")}
にしと毛。

620 :デフォルトの名無しさん:05/03/02 22:23:57
>>617のようになるとして、
{'a': {'b': 'c', 'd': 'e'}}
としたらどうか。>>615

621 :デフォルトの名無しさん:05/03/02 22:28:03
>>618
はげしくtypoだらけだが、まあそんなとこじゃないかな

622 :デフォルトの名無しさん:05/03/02 22:47:00
{"n": {"u": {"l": {"l": {"p": {"o": {}}}}}}}

623 :デフォルトの名無しさん:05/03/02 23:12:48
皆さんありがとう御座います
>>619>>620>>622
そっか辞書の中に辞書をいれてもいいんですね。
そう言う風にした場合
d = {("a","b"):"c"}
のbの検索は出来なくなりませんでしょうか?
たとえば
{("本","ほん"):"本の意味"}
というような感じにしたいんですが別々に登録({本:ホンの意味、ほん:ホンの意味})しないでなにかうまい方法ありますか?

624 :デフォルトの名無しさん:05/03/03 00:10:03
>>623
本質的には別々に登録するのと同じだけど・・・
d={}
d.update(dict.fromkeys(("本","ほん"),"本の意味"))
d.update(dict.fromkeys(("紙","かみ"),"紙の意味"))
ちなみに
d.update(dict.fromkeys(("神","かみ"),"神の意味"))
とやると、"かみ"が上書きされてしまう

625 :デフォルトの名無しさん:05/03/03 00:20:02
>>623
要するにキーと値の対応関係が N:1 の辞書を作りたいってことだな。
いろいろ方法があると思うけど、こーゆーのはどうだろう。

$ cat smartdict.py
class SmartDict(dict):
    TEXT, LINK = "text", "link"
    def lookup(self, key):
        type, value = self[key]
        print "*** key: %s => type: %s, value: %s" % (key, type, value)
        if type is self.LINK:
            return self.lookup(value)
        return value

if __name__ == "__main__":
    d = SmartDict({
        "neko": (SmartDict.TEXT, "a cat"),
        "giko": (SmartDict.LINK, "neko"),
        })
    print d.lookup("neko")
    print d.lookup("giko")

$ python smartdict.py
*** key: neko => type: text, value: a cat
a cat
*** key: giko => type: link, value: neko
*** key: neko => type: text, value: a cat
a cat

626 :デフォルトの名無しさん:05/03/03 01:04:12
辞書を2つで、こんな感じはどうか?
oya_dct = {'猫': 2, 'かみ': 1, 'ネ申': 1, 'ぬこ': 2, 'ねこ': 2, '神': 1}
ko_dct = {1: '神の意味', 2: '猫の意味'}


627 :デフォルトの名無しさん:05/03/03 01:22:04
>>625>>626
すげーっ。
勉強なりました。
ありがとう御座います!!!!!

628 :626:05/03/03 01:49:09
先に断っておけば良かったが、この形の辞書は作るのや更新するのが大変かも知れない。>>627
>>626の例に追加で 'neko': '猫の意味' を加えようと思ったら、どうしても
'猫の意味'から ko_dct のキー 2 を探し当てないといけないので、適当にキーを付けるのは良くなさそう。
こんなときにhash(hmacモジュール?)とか使うといいのかな?私にはわからんのだけど。


629 :デフォルトの名無しさん:05/03/03 05:20:57
>>> lst = [1,2,5,4,3]
>>> max(lst)
5
>>>

という風にリストの最大値は取り出せるけど、
最大値の位置を求める方法はありますか?
例えば上の場合は『2』になるような…


630 :629:05/03/03 05:25:36
すまん。自己解決しました。
lst.index(max(lst))
で出来ました。

631 :デフォルトの名無しさん:05/03/03 13:28:23
そこでまたブチ切れですよ。

632 :デフォルトの名無しさん:05/03/03 13:56:56
>>623
short answer: use RDB

long answer:
Pythonでは、文字列はimmutableなオブジェクトなので、
同一の文字列は内部でひとつにまとめて参照される為、
漢字とひらがなそれぞれ辞書に登録しても, indexを参照するのとたいして変わらない.

つまり、下のように別々に登録した場合でも、

dct['猫'] = '猫の意味'
dct['ねこ'] = '猫の意味'

同一スコープ内で、(例の場合)'猫の意味'はどちらも同じメモリ上のデータを指す.

ひらがなキーで重複する場合は、どうするのかしらないけど、
漢字<=>ひらがなの関連を保持したい場合、効率良く探索する為には別のテーブルに定義するといい。

値を変更する可能性があるなら、適当なオブジェクト作って参照を登録するようにする

class WordDefinition:
  def __init__(self, desc):
    self.desc = desc

# object は mutableなので, 必ず同じ参照を登録するように注意.
>>> d['猫'] = d['ねこ'] = WordDefinition("猫の意味")
>>> d['猫'].desc = '猫の意味2'
>>> d['ねこ']
'猫の意味2'

633 :デフォルトの名無しさん:05/03/03 14:28:25
普通は long answer の要約 == short answer となるように書くものだと思うのだが・・・・

634 :デフォルトの名無しさん:05/03/03 20:28:36
http://www.lilypond.org/cygwin/cyg-apt

635 :デフォルトの名無しさん:05/03/03 20:43:03

(*´д`*)ピチョン♥
 ↓
Σ(゚д`*;)ピッ,ピチョッ♥
 ↓
Σ(*゚Д`;)ピ…ピ…ピッチョォォォォォォォン♥!!!!
 ↓
(*´д`;)…
 ↓
…(*´д`)ピチョン…♥

636 :626:05/03/04 00:33:54
>>632 すごっ、私にはそこまでは考えられなかったなぁ。dictについてもそこまで知らなかったなぁ。


637 :デフォルトの名無しさん:05/03/04 00:59:35
> dct['猫'] = '猫の意味'
> dct['ねこ'] = '猫の意味'
>
> 同一スコープ内で、(例の場合)'猫の意味'はどちらも同じメモリ上のデータを指す.

誤解を招きそうな表現だな。確かに同じ文字列リテラルは一つにまとめられるが…

>>> a = "abc"
>>> b = "a" + "b" + "c"
>>> a == b
True
>>> a is b
False


638 :デフォルトの名無しさん:05/03/04 01:23:30
Pythonのメモリアロケーションの詳細が良く分かるドキュメント(英語)を探しています。

639 :デフォルトの名無しさん:05/03/04 01:33:53
>>> a = "abc"
>>> b = intern("a" + "b" + "c")
>>> a is b
True
>>> help(intern)

Help on built-in function intern:

intern(...)
intern(string) -> string

``Intern'' the given string. This enters the string in the (global)
table of interned strings whose purpose is to speed up dictionary lookups.
Return the string itself or the previously interned string object with the
same value.

640 :デフォルトの名無しさん:05/03/04 01:41:34
書くの忘れたけど、
> 文字列はimmutableなオブジェクトなので、

> 同一の文字列は内部でひとつにまとめて参照される為、
も意味が繋がってない。

641 :デフォルトの名無しさん:05/03/04 01:49:32
後出しでジャンケンに負けたヤシをそこまで追い込まなくても・・・(藁

642 :デフォルトの名無しさん:05/03/04 09:58:12
>>632の最後の2行だけど、こう出るよね。
>>> d['ねこ']
<__main__.WordDefinition instance at 0xXXXXXXXX>
これだけでなくて、いろいろ怪しく見えてきた。

643 :デフォルトの名無しさん:05/03/04 10:24:21

>>637
"a"+"b"+"c"は式になってるので、"abc"と同じリテラル表現ではないのだけど。b = "a" "b" "c" なら a と同じになるはず。
同じ値の文字列でも別のオブジェクトになる事があるのは指摘の通り、
同一の文字列という表現は不十分でした。コンパイル時に決定されるリテラルと言った方が良かったかな。
実行時に同じオブジェクトを得たい場合は >>639 が示してくれたようにinternを使う。フォローthx u>>639

>>638
http://evanjones.ca/python-memory.html



644 :デフォルトの名無しさん:05/03/04 19:06:13
「同一スコープ内で」というのも間違いでは?

645 :645:05/03/04 22:41:11
FreeBSD (4.8-RELEASE)のマシンにPython-2.4を(ソースコードから)インストールし
ようとしています。

/usr/local/Pythonにインストールするため、
 % ./configure --prefix=/usr/local/Python
 % gmake
を実行したのですが、途中で

building '_hotshot' extension
gcc -pthread -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC -pg -fno-strict-aliasing -I. … -c …/Modules/_hotshot.c -o build/temp.freebsd-4.8-RELEASE-i386-2.4/_hotshot.o
gcc -shared -pg build/temp.freebsd-4.8-RELEASE-i386-2.4/_hotshot.o -L/usr/local/lib -o build/lib.freebsd-4.8-RELEASE-i386-2.4/_hotshot.so
*** WARNING: renaming "_hotshot" since importing it failed: build/lib.freebsd-4.8-RELEASE-i386-2.4/_hotshot.so: Undefined symbol "fgetc"

というのが出てきます。一方、

building 'array' extension
gcc -pthread -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC -pg -fno-strict-aliasing -I. … -c /…/Modules/arraymodule.c -o build/temp.freebsd-4.8-RELEASE-i386-2.4/arraymodule.o
gcc -shared -pg build/temp.freebsd-4.8-RELEASE-i386-2.4/arraymodule.o -L/usr/local/lib -o build/lib.freebsd-4.8-RELEASE-i386-2.4/array.so
building 'cmath' extension

の 'array' extension のように、何のエラーも出ないものもあります。


646 :645:05/03/04 22:48:14
ごめんなさい、
 http://pc5.2ch.net/test/read.cgi/unix/1107967998/840
は私ですが、こちらの方が適切かと思いましたので移動させていただきまし
た。

841 :名無しさん@お腹いっぱい。:05/03/04 22:36:27
->840
|FreeBSD (4.8-RELEASE)のマシンにPythonを(ソースコードから)
|インストールしようとしています。
portsだとうまくいくのですか?

842 :840:05/03/04 22:44:07
ごめんなさい、考え直して
  http://pc5.2ch.net/test/read.cgi/tech/1104156256/645
に移動させていただくことにしました。

>>841
> portsだとうまくいくのですか?

いえ、試していないので…。
エラーが起こるにしても、なぜfgetcなのかな、と。fgetcって標準Cライブラリ
の関数ですよね。

647 :デフォルトの名無しさん:05/03/04 23:05:12
1. portsを試す。
2. もしダメなら古いバージョンのportsを試す。
3. もしビルドできたら野良ビルドとの違いを調べる。

648 :645:05/03/05 00:55:21
リンク時(gcc -shared …)に、最後に -lc を付けたら大丈夫っぽいです。意味
が分かりません…。

% env LD_LIBRARY_PATH=/…/Python-2.4:/usr/lib ./python
Python 2.4 (#1, Mar 4 2005, 16:41:41)
[GCC 2.95.4 20020320 [FreeBSD]] on freebsd4
Type "help", "copyright", "credits" or "license" for more information.
>>> import math
Traceback (most recent call last):
File "<stdin>", line 1, in ?
ImportError: /…/Python-2.4/build/lib.freebsd-4.8-RELEASE-i386-2.4/math.so: Undefined symbol "fabs"
>>> ^D
%

-lcを付けると
 >>> import math
 >>>
となり、 ImportError: … のエラーは表示されなくなるんです。

649 :デフォルトの名無しさん:05/03/05 01:12:17
>648=645
いやその。藻前さんが645に書いた警告に対処する一番直球な方法が
>最後に-lcを付ける
ってことなんだが。「fgetc()なんてねーぞゴルァ!!」とお怒りのリンカに
「ここにあるYo!」ってlibc.aを明示的に渡してやっている(リンカオプションに-lcを追加)という図式。
うーむ、Cのプログラムコンパイルしたことのない人間にはソースからのインスコってのは
まだまだ難しいもんなのか。

650 :645:05/03/05 01:26:02
>>649
-lcを付けなくてもうまくいく場合があることがあるんですよ。例えば
'cmath' extension のソースコード cmathmodule.c ではfabs()が使われているにもかか
わらず、エラーが出ない。

651 :645:05/03/05 01:34:55
>>650
ライブラリやプログラムをビルドするときに -lc を付けなくてもよいのは
なぜですか?

-lcを付けなかったこと自体が直接の原因というわけではなかろうに。。
'math' extensionでも fabs() で '_hotshot' extension と同様のエラーを出すけど、リン
ク時にはきちんと -lm が追加されていたのでね。

それともう一つ、
  *** WARNING: renaming "…" since importing it failed: …
が表示されるのはコンパイルとリンクが完了した「後」です。

652 :651(=645):05/03/05 01:36:32
>>651
s/>>650/>>649/

653 :デフォルトの名無しさん:05/03/05 01:38:16
自分の無知を他人にあたっても仕方なかろ。
このへん読むとわかるようになるんじゃないかな。
http://www.amazon.co.jp/exec/obidos/ASIN/4274064379/

654 :645:05/03/05 02:08:32
>>645で出した例が悪かったですかね。('_hotshot',fgetc,-lc)だけだとあいまいだ
が、>>651('math',fabs,-lm)を見ると>>649は(申し訳ないが)的外れ決定ですな。

まぁ、いくらイライラしても、会ったこともない人に対して
 >>649
 > Cのプログラムコンパイルしたことのない人間には
などと罵る人間にはなりたくないもんだ。

655 :デフォルトの名無しさん:05/03/05 03:10:21
>>654
まあ餅つけや。
649みたいな分かったつもりになってるジジイは放っとけ。

ところでバグ虎はもう見た?
未知の障害で再現性があるなら報告しる。
ドキュメントに名前が載る(かも知れない)チャンスだ(笑

656 :デフォルトの名無しさん:05/03/05 03:40:45
>>654
別に649は罵ってるようには読めないけどな。

ほとんど読まずに書き込むが、
warningの一つや二つ出たっていいじゃん。

657 :デフォルトの名無しさん:05/03/05 03:57:24
>>656
ごめん。よくなかったのね。
本当に全然読んでませんでした。

658 :645:05/03/05 04:28:36
>>655
http://www.python.org/dev/にある「Bug Tracker」のことですね。初めて見ました。

configureスクリプトの --disable-profiling が働かない(--enable-profilingを指定した
のと同じ状態になる)というのも、まぁバグの一つでしょうね。Bug Trackerを
ざっと眺めてみたところ、そういう報告は上がっていないようですね。

>>656
> warningの一つや二つ出たっていいじゃん。

 今回の件の場合、この WARNING が意味するのは、importできない=そのextension
が使えないということなんですよね。
# (Pythonに限らず)コンパイル時に警告が出るというのであれば、危険はあっ
# ても使えないことはないのですがね。(そっちの方の警告は見なかったこと
# にしてたことが多いなぁ (゚∀゚;)

 使えないのが、確認しただけで6つもあるんです: _hotshot, math, time, datetime, zlib, bz2
 まぁ、>>653氏推薦の本を読んでいくと何か分かるかもしれませんね。

 ありがとうございました。

659 :658:05/03/05 04:30:40
あれ、reloadしてたけど>>657見えなかった。(^^;

660 :デフォルトの名無しさん:05/03/05 08:25:13
654を読んで( ゚д゚)ポカーン

661 :デフォルトの名無しさん:05/03/05 11:13:23
>会ったこともない人に対して

2ch以前の問題として、ネットの掲示板で何言ってんだ? このバカは?

662 :デフォルトの名無しさん:05/03/05 12:11:28
>>645 UNIX板から粘着しにきました。
意地でもportsを使わずに野良buildして失敗して質問する人が私の会社にも
いますが、そういうこだわりの背景には何があるんでしょうか。その人にも
質問したんですが、ごまかすだけで筋の通った返答をもらったことはないです。

663 :662:05/03/05 13:14:33
>>658
ところで、pythonはlibc_r(libcのreentrant版)にリンクしているんだけど、
FreeBSD 4.8-RELEASEのlibc_rってfgetcとか入ってないの? -lcをつけ足すと
エラーが出なくなるということはそういうことよね。

$ objdump -T /usr/lib/libc_r.so | grep fgetc
これを実行すると「*UND*」とか出る?

FreeBSD portsについて補足だけど、これは別に「楽をできる」とかいうだけ
じゃなくFreeBSD特有で必要になる修正や変更のうち、開発元(python.org)へ
フィードバックが必要(または開発ツリーにのみ取り込みずみ)だけどまだ
リリース版には反映されていないような変更を吸収する働きもあるんだよ。
(他のOSでも似たしくみがあると思うけど) あと各人が野良buildして同じところで
ハマるのって時間の無駄でしょ?

664 :658:05/03/05 15:08:51
>>663
  % objdump -T /usr/lib/libc.so | grep fgetc
  0001e1ec g DF .text 00000069 fgetc
  %
でした。
# 「*UND*」って "UNDefined" から来てるのか。このファイルでは定義されていない
# けど、別のところで定義されているのを利用しているよ、みたいなことです
# かね。


> まだリリース版には反映されていないような変更を吸収する働きもあるんだ
> よ。

 files/以下にあるpatch-*とかですよね。あれは私もよく参考にさせていただい
てますよ。勉強になりますから。
 Pythonに関しては、2.4では修正されていない PSF-2005-001 の件もportsではパッ
チとして提供されてますね。

665 :デフォルトの名無しさん:05/03/05 15:39:20
>>664
>>663さんの指摘によれば
/usr/lib/libc.so じゃなく
/usr/lib/libc_r.so なのでは。

fgetc() とか fabs() って環境によってはマクロになってそうだね。
エラーの原因は分からないけど、コンパイル時に使うヘッダとリンク時に使う
ライブラリが正しく対応していないんじゃないかなーと何となくオモタ。
(コンパイラが複数入っていたりすると割とありがち)

666 :658:05/03/05 16:59:04
うわ、すみません。。両方コピペするつもりだったんですが…

% objdump -T /usr/lib/libc_r.so | grep fgetc
0002504c g DF .text 00000069 fgetc
%

> fgetc() とか fabs() って環境によってはマクロになってそうだね。

 マクロになってる可能性があるのはfgetc()ではなくてgetc()の方ですね。こち
らの環境(FreeBSD 4.8-RELEASE)ではgetc()はマクロになっているようです。


> エラーの原因は分からないけど、と何となくオモタ。
> (コンパイラが複数入っていたりすると割とありがち)

 利用したコンパイラはすべて /usr/bin/ にあるもの(gcc 2.95.4)です。という
わけで、今回の件に関しては、
  > コンパイル時に使うヘッダとリンク時に使うライブラリが正しく対応し
  > ていないんじゃないかなー
の可能性は低いかと。

667 :デフォルトの名無しさん:05/03/05 17:19:30
スレ違い

668 :デフォルトの名無しさん:05/03/06 01:01:17
pythonを勉強しようと思い、
ttp://www.python.jp/Zope/introを見つつ手をつけはじめたところなんですが、
早速つまずいてしまいました。以下、上記サイトより。

簡単なPythonスクリプトを動かして見ましょう。
print "Hello World!"
リスト 1: greeting.py
リスト 1 の greeting.py をエディタで作成し、次のようにして起動します。
%python greeting.py
Hello World!
見事にご挨拶が返ってきました。 Python はスクリプトファイルを読みこんで実行するだけでなく、対話モードで使用することもできます。

をやってみようと思い、まずはhelloworld!。しかし次のリスト1のgreeting.pyをエディタで作成し・・・
エディタってなんでしょうか?上記内容をそのまま入力するとエラーが出ます。
それと、入力する際改行はどうやって入れるのでしょうか?

プログラミング自体が全くの初心者、いやそれ以前の段階なので、釣りではないです。
よろしくお願いします。


669 :デフォルトの名無しさん:05/03/06 01:03:32
h = httplib.HTTP(host)
h.putrequest('GET', path)
h.putheader('Accept', 'text/html')
h.putheader('Accept', 'text/plain')
h.endheaders()
errcode, errmsg, headers = h.getreply()

これでyahoo.co.jpにアクセスするとerrcode==200なんですが
google.co.jpにアクセスすると302となってしまいます。
回避策などありますでしょうか?

670 :デフォルトの名無しさん:05/03/06 01:57:23

頭おかしいんじゃないの?

671 :デフォルトの名無しさん:05/03/06 02:05:14
>>668
エディタで作成っていうのは、Windowsだったらメモ帳とかワードパッドで先に書いて、
greeting.pyって名前で保存して実行するってこと。
あと他にもプログラミング向けのエディタとかもあるから、victorで探していろいろ
試すと良い。

それと対話モードってのが一行ずつ入力、実行していく方法(簡単な計算等に使用)
コマンドプロンプトでやる場合は『ファイル名を指定して実行』からcmdを入力。
『python』って入力するとpythonが起動する。
そこから『print helloworld!』と入力すると>>helloworldとなる。

672 :デフォルトの名無しさん:05/03/06 02:14:58
>>671
おおなるほど!
ありがとうございます。

673 :デフォルトの名無しさん:05/03/06 02:17:57
>>669
よく判らないけど、
httplib.HTTPConnection(host)
でやってみたらどう?

674 :某ヌレの12:05/03/06 02:27:37
>>668
ようこそ(笑)

>>669
302 Found の場合、改めて参照すべき URL が headers["Location"] に
書いてある。その URL に対してもう一度 GET リクエストを出せば OK。
詳しくは RFC 2616 あたりを読んでちょ。

675 :669:05/03/06 12:11:58
あのソースはどこかで拾ってきたものなのですが、
オンラインのリファレンスを見たら>>673さんの言う
HTTPConnectionを使ったやり方が書いてあり、そちらでやったら
302とならず200を返してくれました。
あのソースは原始的なやりかたっぽいですね。

>>674
ttp://www.studyinghttp.net/status_code#Code302
調べたらこーいうのが出てきて概念は理解できました。
あのソースを使った場合の回避策も理解できましたが
手間いらずのHTTPConnectionを使おうと思います。


回答いただきありがとうございましたm(_ _)m

676 :デフォルトの名無しさん:05/03/06 14:13:20
                             .,/  _,/      .、、     ...、ヽ,,-、
                           .,,メ-‐'"       _"',|  .、、._,i.""│._、
                      ._,,,/`,イ―''      ,`",l゙、、,,ジ'"`.```.|゙゛
                    .,,,-,i´,―--―''"      、、,!冖'"`、_、,,,/'゚,,."゙l-‐''
       _,,,,,,,,,,,,,、    _,,,,,--''"`'",/゙            、、.',j/′.、,,∠''"` .'_ヽ.',゙l.._,,、
    ,,-'"゙`    `゙゙''lーイ"`     .‐′    _,..,,/ .ヽ、,i,i´ ``゙’   、、シ":"'.「
  .,,i´         `'i、\ ゙!,      ._,-'"ン'` 、、`_,/`,i´ _,___,ニ='" .'゙、゙".゙l,,-'`
 .,/′          `'i,\ ′  .,,,,-',,,,、.,i´、_:_'_v`"゙i、|   ```` `  、_,Jィ""゙l, _,,,,、
: ,i´             ゙l. ヽ丶  .r‐'"、.l゙、、:,p=l┴丶 .!,,!  `'"''''''冖''?'''゙~."""'."'/゛ `
: |,,r                ゙l, 、 i、、、、:,,_,xl!ヴi,、      、、っ,,,,    、`',,,,、`、`、|、
  |、            、"| .i、 lrr-''"゙,,ハ;、-'"゙゙'''''''"丶ヽ.,,冫``~`"`"~"``` `/ `''''
  `''r,,、 、 、、 .、丶、.``ヽ,レ"°  `` .j゚'=∠、````,,,,,∠ ~'ヽ```````、_,r‐'ヘi、
    `゙'ーi,,_、、、、、: :._,,,r〃       "  /^゚"'广  ,/  .,/゙゙゙'''ヶ―''''″   `
       `゙^""""''"'"                `   ′  ′  ."   
ぱいちんこ


677 :デフォルトの名無しさん:05/03/06 20:02:21
ttp://www.google.com/search?hl=ja&lr=&ie=UTF-8&oe=UTF-8&q=%E3%81%B1%E3%81%84%E3%81%A1%E3%82%93%E3%81%93&num=50
C言語とCVSのスレで「ぱいちんこ」やった奴出て来い。タダでは済まさんぞ。

678 :デフォルトの名無しさん:05/03/06 20:17:06
>>677
おおかた脳味噌にチンポでも生えているのだろう。

679 :デフォルトの名無しさん:05/03/06 21:00:48
>>677
ばいちんこって何?
ウィルスか何かですか?

680 :デフォルトの名無しさん:05/03/06 23:21:00
みなさん
else:
pass
は使用しますか?

681 :デフォルトの名無しさん:05/03/06 23:37:03
YES とも NO とも答えられるね。ダメじゃん。

682 :デフォルトの名無しさん:05/03/07 00:06:49
それもだけどtry:のfinallyも私は使わないね。>>680
forのelseはたまに使うけど。

683 :680:05/03/07 00:09:43
>>682
処理速度に違いは出てきますかね?

684 :デフォルトの名無しさん:05/03/07 01:00:03
>>680

else:
   pass
   # print "OK"

みたいにブロック内をコメントアウトしたときに使うぐらいかな。

>>683
違いがあったとしても問題にならない程度だと思われ。

685 :684:05/03/07 01:06:18
訂正。こうでした。

else:
   # print "OK"
   pass

こう書くと Emacs の python-mode で自動インデントがうまく働くのでした。

686 :デフォルトの名無しさん:05/03/07 04:21:08
>>684
自分もそれとよくにたことやるよ。



687 :デフォルトの名無しさん:05/03/07 09:18:27
較べてみよう。

>>> from dis import dis
>>> disassemble = lambda src: dis(compile(src,"","exec"))
>>> disassemble("pass\n" * 100)
>>> disassemble("if n: func()\n")
>>> disassemble("if n: func()\nelse: pass\n")


688 :デフォルトの名無しさん:05/03/07 12:23:23
ちょっと質問があるのですが、
海外の現地時刻を計算するのはどうやるの?
夏時間も考慮してやるには?
教えてください。

689 :デフォルトの名無しさん:05/03/07 12:55:31
自己解決しました。
pytz ( World Timezones for Python)ってがあったので
それを使いました。

690 :680:05/03/07 17:52:50
>>687
やってみたけど、意味不明です…

691 :デフォルトの名無しさん:05/03/07 18:17:16
>>679
Python使っているくせに、ぱいちんこも知らないのか?
もぐりだな。

692 :デフォルトの名無しさん:05/03/07 18:45:58

       ∧  ∧
       |1/ |1/
     / ̄ ̄ ̄`ヽ、
    /        ヽ
   /  ⌒  ⌒    |
   | (●) (●)   |
   /          |
  /           |
 {            |
  ヽ、       ノ  |
   ``ー――‐''"   |
    /          |
   |          | |
   .|        |  | |
   .|        し,,ノ |
   !、          /
    ヽ、         / 、
     ヽ、⊂、   /ヽ.ヽ、
       |  |   |   ヽ.ヽ、
      (__(__|     ヽ、ニ三

ムーミンがぱいちんこに興味を持ったようです

693 :デフォルトの名無しさん:05/03/07 18:57:17
お前らRubyスレ池よ。あっちなら歓迎してくれるぞ。

694 :デフォルトの名無しさん:05/03/07 19:25:59
ところでこのムーミンのAAは、なぜ他のキャラでなくムーミンが選ばれたのだろうか。

695 :デフォルトの名無しさん:05/03/07 20:05:27

            __,,,,_
            /´      ̄`ヽ,
            / 〃  _,ァ---‐一ヘヽ
         i  /´       リ}
          |   〉.   -‐   '''ー {!
          |   |   ‐ー  くー |
           ヤヽリ ´゚  ,r "_,,>、 ゚'}
         ヽ_」     ト‐=‐ァ' !  < ぱいちんこ、ぱいちんこ
          ゝ i、   ` `二´' 丿
              r|、` '' ー--‐f´
         _/ | \    /|\_
       / ̄/  | /`又´\|  |  ̄\

皇太子様までがこのスレ、とゆーかぱいちんこに興味をお持ちになったようです。

696 :デフォルトの名無しさん:05/03/07 20:07:45
>>693
.._ .......、._    _ /:/l!            まぁまぁ。
 :~""''.>゙' "~ ,、、''‐'、|            ここで歓迎するくらい余裕を持ちましょうよ。
゙、'、::::::ノ:::::::_,.-=.  _〜:、         /_.}'':, こころの狭いスレだと思われますよ。
 ``、/:::::::::__....,._ `゙'Y' _.ェ-、....._ /_゙''i゙ノ、ノ
 ,.--l‐''"~..-_'.x-='"゙ー 、`'-、 ,:'  ノ゙ノブ
"   .!-'",/  `'-‐'') /\ `/ でノ-〈
 .-''~ >'゙::    ‐'"゙./  ヽ.,'   ~ /
   //:::::       ',    /    ,:'゙


697 :デフォルトの名無しさん:05/03/07 23:23:25
Pythonなんて使ってる奴はこころ狭いだろ。
クズどもばっかりだからな。

698 :デフォルトの名無しさん:05/03/07 23:24:34
   な
     っかり

699 :デフォルトの名無しさん:05/03/08 00:04:20
       て   て
       か   か

700 :デフォルトの名無しさん:05/03/08 00:45:05
あったま

701 :デフォルトの名無しさん:05/03/08 01:27:31
>>697
全員が>>649,>>661みたいなヤシってわけではなかろうて。。。

702 :デフォルトの名無しさん:05/03/08 01:53:42
>>697
心は広いよ。
でもチンコが小さい。

703 :デフォルトの名無しさん:05/03/08 10:21:29
排泄器としてしか使ってないからOk

704 :デフォルトの名無しさん:05/03/08 11:01:01
そんな悲しいことをいうな

705 :デフォルトの名無しさん:05/03/08 13:00:40
排泄器と生殖器を兼ねるんだから、ちんこはたとえるならpickle並のすごい働き。

706 :デフォルトの名無しさん:05/03/08 13:09:15
 ぱいチンコびろーん
   ∩___∩     
   | ノ      ヽ/⌒) 
  /⌒) (゚)   (゚) | .|  
 / /   ( _●_)  ミ/
.(  ヽ  |∪|  /
 \    ヽノ /   
  /      /  
 |   _つ  /    
 |  /UJ\ \       
 | /     )  )       
 ∪     (  \    
        \_)




707 :デフォルトの名無しさん:05/03/08 13:41:16
>>703
さすがは敗北者スレ

708 :デフォルトの名無しさん:05/03/09 11:33:21
pythonにずっと計算させてると、CPUが常に100%になってしまいます。
CPU使用率を制限させる方法はありますか?

709 :デフォルトの名無しさん:05/03/09 12:14:19
Pythonに限った話じゃないと思われるのでスレ違い(とゆーか板違い)。
とゆーか使っているOSの名前も出さないなんてエスパー募集ですか?

710 :デフォルトの名無しさん:05/03/09 12:19:35
>>708
演算量が多ければ当然の動き。計算の所要時間が延びても構わないのか?

711 :デフォルトの名無しさん:05/03/09 12:43:58
>>CPU使用率100%
所詮はCPUの自己申告。本当はたっぷりサボってるんだから気にせずガンガン叩いてOK!


712 :708:05/03/09 12:50:38
>>709
ごめんなさい、OSはWinXPです。
>>710
構いません。バックでゆっくり計算してもらいたいです。

ソースをどうこうして実現するのは不可能でしょうか?


713 :デフォルトの名無しさん:05/03/09 12:56:56
できるか

714 :デフォルトの名無しさん:05/03/09 13:24:48
>>712
アプリの優先度を下げる。

715 :デフォルトの名無しさん:05/03/09 13:36:04
ループのよく通る場所にtime.sleep(0.1) とか入れとけ。

716 :デフォルトの名無しさん:05/03/09 15:28:09
>>709
勘違い(とゆーか基地外)。

717 :デフォルトの名無しさん:05/03/09 15:35:46
>>716
優先度の制御はOSに依存した話であってpythonの話じゃないだろ。
Windowsは知らないがUNIXならniceコマンドの仕事。


718 :デフォルトの名無しさん:05/03/09 16:42:02
(´-`).。oO(なんの計算なんだろう・・・

719 :デフォルトの名無しさん:05/03/09 16:54:20
さすがは敗北者スレ

720 :709:05/03/09 16:58:16
>>716
失敬な(w

721 :デフォルトの名無しさん:05/03/09 17:03:45
なんかいかにも就職活動中って感じの女子大生が真昼間の
ファーストキッチンで胸とかバンバン揉ませてるわけ。同じ年くらいの
男子大学生ぽい奴に。しかもスーツの内側に手入れて直で揉んだり
してるわけ。なんか女のほうも廻りを気にしながらも小声で
笑ったりしてるわけ。「ヤダァ♪」とか言いながら。

俺は思ったね。お前ら独身中年なめんな、と。お前らのすぐ隣に座ってる
俺はお前らの様子見ながら正直、勃起してんだよ。ていうか信じられないよ。
素人同士で金のやり取りもなく胸揉むなんてよ。俺はヘルスで平均40回ぐらい
揉むわけ。12,000円で40モミ。1モミ300円。俺はそいつら見ながら「あ、300円」
とか「また300円」とかカウントしてたわけ。で、そのカウントが6,000円ぐらいに
達した時、突然こみ上げてきたわけ、嗚咽が。押さえ切れないほどの憤怒が。
で、声に出して泣き出しちゃったわけ。真昼間のファーストキッチンで。独身中年が。

急に声をあげて泣き出した俺を珍獣でも見るように一瞥した挙句、クスクス笑いながら
店を出ていくそいつらの後ろ姿を見ながら俺は思ったわけ。これはもう階級闘争だ、と。
謂なき触穢の鉄鎖に蹂躙された日陰者の人権は闘争によってしか解放されないのだ、と。
そんなわけで俺は闘うわけ。ここに常駐するグズなお前らも闘え。取り戻せ。矜持を。

722 :デフォルトの名無しさん:05/03/09 17:15:23
PyblosxomがWebProgになかったので、板違いかもと思いつつも失礼。。
Pyblosxomで、non-blogなコンテンツ(普通のHTMLページですね)
を表示するPluginのようなものはあるでしょうか?
サイドバーに静的ページのリンクが自動的に表示できたりしたら、便利
だと思うのですが。
http://wiki.subtlehints.net/moin/PluginDevelopmentTutorial3 の「1」)


723 :デフォルトの名無しさん:05/03/09 17:37:44
      _
      /,.ァ、\
     ( ノo o ) )  空
      )ヽ ◎/(.    気
    (/.(・)(・)\ . 嫁
    (/| x |\)
      //\\
   . (/   \)

724 :デフォルトの名無しさん:05/03/09 19:25:59
>>717
winだとstartだね。

winアプリだとアプリ側で制御することも多いけど。

725 :デフォルトの名無しさん:05/03/09 20:00:26
>>724
start /low hoge.exe とかすればいいんかな? 勉強になった。サンクス。
UNIXでもRC5アタック等のクライアントのように「皆さんのお仕事の邪魔は
いたしませんので、ええ」なんつーものはアプリ側で制御することもあるね。

os.nice ってのがあるけど、 availability: UNIX って書いてあるから
Windowsではダメっぽいねえ。cygwin版なら使えるのだろうか?




726 :デフォルトの名無しさん:05/03/09 23:41:46
なんでヤシは人に自分の探し物をさせるんだ?

727 :デフォルトの名無しさん:05/03/10 09:19:50
文字列の文字コードについてMS932 --> UTF-8 変換をやりたいのですが、
hoge = unicode(strings,"MS932")
この時点で
UnicodeError: MS932 decoding error: invalid character 0xa03b
と言われ、一文字ずつ切り出していったら
UnicodeError: MS932 decoding error: truncated string
と言われてしまったのですが
何かよい回避策はありますでしょうか…

728 :デフォルトの名無しさん:05/03/10 10:37:09
>>725
cygwin版で試してみたよ。

os.nice(1)ってやったらプロセスの優先度が「通常」から「低」に下がってた。
os.nice(-1)で上げるのも問題なし。

ついでにwin版でも試してみたけど、こっちは「no attribute」でエラーでした。

729 :デフォルトの名無しさん:05/03/10 11:12:04
>>727
unicode関数の引数errorsを使ってみては?

730 :デフォルトの名無しさん:05/03/10 11:39:08
[0xa0 0x3b] というバイト並びは、通常のShift JISエンコーディングなテキストではありえない不正な文字列だが、
それを承知で、できる範囲でテキトーに変換したいのならunicode()の第3引数に"ignore"なり"replace"を指定すればよい。

731 :デフォルトの名無しさん:05/03/10 17:24:51
みんなエディタなに使ってる??

732 :デフォルトの名無しさん:05/03/10 18:28:22
xyzzyのpy-mode + キーワード補完。
簡単なテストはipython。
QtのWindows版がフリーになったらQt製のエディタを試す予定。

733 :デフォルトの名無しさん:05/03/10 18:42:49
>>729-730
errorsの記述で一部でもやり過ごせるかと思いきや、文字列全体が文字化けしてしまって…
本当にShift_JISにあるまじきデータのように思われます。
それならそれで別の策を考えなきゃ…レスいただきありがとうございました。

734 :デフォルトの名無しさん:05/03/10 18:58:43
コモンセンスを啓蒙してもらうのにすら論理が必要だと思っている奴は新興宗教でも立ち上げろや(プ


735 :デフォルトの名無しさん:05/03/10 19:36:50
>>731
IDLE

736 :デフォルトの名無しさん:05/03/10 22:13:29
http://www2.garage.co.jp/Search/sections/download/docs/python

737 :デフォルトの名無しさん:05/03/11 00:06:37
>>233

Subway
ttp://subway.python-hosting.com/

738 :デフォルトの名無しさん:05/03/11 11:23:29
>>731
eric3

739 :デフォルトの名無しさん:05/03/11 21:17:49
突然ですが、正規表現を使って文字列をヒットさせて、置換させるようなメソッドってないでしょうか?
文字列のReplaceにreを上手く組み合わせると出来ます?

740 :739:05/03/11 21:23:54
もっと具体的にはCGIで、formから受け取った文字列をまたWebページに表示させたいのだけど、半角スペースの連続は1個と変わりないので、それを置換させたいのです。今のところこんな感じになってます。
△のとこは半角スペースのつもりです。あ、改行の扱いもこれでよかったんでしょうか???
word = ('\n'.join([x.strip() for x in cgi.escape(cgi.FieldStorage().getfirst('word', '')).replace('△△','△').replace('\r\n','\n').replace('\r','\n').split('\n')])).strip('\n').replace('\n', '<br>')


741 :デフォルトの名無しさん:05/03/11 21:34:21
>>740
そんなふうに1行を長く読みにくくして人生楽しいか?

742 :739:05/03/11 21:53:57
こうですか!?わかりません!
sWord = cgi.escape(form.getfirst('word', ''))
sWord = sWord.replace('△△','△').replace('\r\n','\n').replace('\r','\n')
sWord = sWord.strip('\n') # ←このタイミングの方が無駄が減る事が分かりました。TNX>>741
sWord = '\n'.join([x.strip() for x in sWord.split('\n')])
sWord = sWord.replace('\n', '<br>')

743 :デフォルトの名無しさん:05/03/11 22:21:10
>>742
re.sub()とかじゃダメなんか?


744 :739:05/03/11 22:37:31
私も今チュートリアルのここを見ていました。
www.python.jp/pub/doc_jp/tut/node12.html#SECTION0012500000000000000000
なんとか、re.sub()でやってみますね。

745 :デフォルトの名無しさん:05/03/11 22:42:00
import re
import cStringIO

sWords = "lskdjflks\r\n sjfjsj \r dfsdjfkj\n"
words = []
for line in cStringIO.StringIO(re.sub(" +", " ", re.sub(r"(\r\n|\r)", r"\n", sWords))):
  words.append("%s<br>" % line.strip())
print words

こんな感じの処理がしたいのかな?


746 :739:05/03/11 23:11:29
ありがとうございます。>>745
私のしたかった事とは少し違うのですけど、そこからなんとか出来そうです。
wordsの前後の改行も省きたかったのです。

747 :739:05/03/11 23:33:34
私のしたかった事は結局。こうでした。ありがとうです。>>743>>745
sWord = cgi.escape(sWord)
sWord = re.sub(r' +',r' ',sWord)
sWord = re.sub(r'(\r\n|\r)',r'\n',sWord)
sWord = ''.join([re.sub(r'(^ | $)',r'',x) for x in cStringIO.StringIO(sWord)])
sWord = re.sub(r'(^\n*|\n*$)',r'',sWord) # ←さっきこれを上にした方が無駄がどうとか言いましたが、間違いでした。ここでないといけないです。
sWord = re.sub(r'\n',r'<br>',sWord)


748 :デフォルトの名無しさん:05/03/11 23:52:39
>>> import re
>>> re.sub("[\r\n]+", "<br>", " word\r\n\r\nword\r\nword ".strip())
'word<br>word<br>word'
>>>

749 :739:05/03/12 00:22:26
むむ。私の>>747も間違ってますね、、、。4行目のre.sub(r'(^ | $)',r'',x) が行末に\nがあるので、上手く働かないですね。
cStringIOも使ってみたかったですが。
>>748 それだと、'あ\n\n\nあ'も'あ<br>あ'とならないですか?文字と文字の間の改行は残したいんです。

750 :739:05/03/12 00:48:08
こうしました。
sWord = '\n'.join([x.strip() for x in cgi.escape(sWord).replace('\r\n','\n').replace('\r','\n').split('\n')])
sWord = sub(r' +', ' ', sWord)
sWord = sWord.strip('\n').replace('\n', '<br>')


751 :デフォルトの名無しさん:05/03/12 01:38:02
 ぱいチンコびろーん
   ∩___∩     
   | ノ      ヽ/⌒) 
  /⌒) (゚)   (゚) | .|  
 / /   ( _●_)  ミ/
.(  ヽ  |∪|  /
 \    ヽノ /   
  /      /  
 |   _つ  /    
 |  /UJ\ \       
 | /     )  )       
 ∪     (  \    
        \_)


752 :デフォルトの名無しさん:05/03/12 01:39:24
ぱいチンコびろーん  びろろ〜ん  べろーん  びろんぬ
   ∩___∩ ∩___∩ ∩___∩ ∩___∩
   | ノ      ヽ/⌒)     ヽ/⌒)     ヽ/⌒)     ヽ/⌒)
  /⌒) (゚)   (゚) | .|    (゚) | .|    (゚) | .|    (゚) | .|
 / /   ( _●_)  ミ/ ( _●_)   ミ/ ( _●_)   ミ/ ( _●_)   ミ/
.(  ヽ  |∪|   /  |∪|   /   |∪|   /  |∪|    /
 \    ヽノ /     ヽノ ./      ヽノ /      ヽノ  /
  /      / ./       / ./      / ./         /
 |   _つ  / |   _つ  / |   _つ  / |   _つ  /
 |  /UJ\ \.|  /UJ\ \|  /UJ\ \.|  /UJ\ \
 | /     )  )| /     )  )| /     )  )| /     )  )
 ∪     (  \      (  \      (  \      (  \
        \_)       \_)       \_)       \_)


   ∩___∩             ∩___∩
   |ノ      ヽ            |ノ      ヽ 
  /  (゚)   (゚) |          /  (゚)   (゚) |
  |    ( _●_)  ミ         |    ( _●_)  ミ  
 彡、   |∪|  、` ̄ ̄ヽ    /彡、   |∪|  ミ  
/ __  ヽノ   Y ̄)  |   (  (/     ヽノ_  | 
(___)       Y_ノ    ヽ/     (___ノ
     \      |       |      /
      |  /\ \     / /\  |     
      | /    )  )    (  (    ヽ |
      ∪    (  \   /  )    ∪
            \_)  (_/


753 :デフォルトの名無しさん:05/03/12 05:10:30
ハッスルハッスル

754 :デフォルトの名無しさん:05/03/12 11:47:37
 (⌒) .(⌒)             
 ( ´・●・)つ このスレのあり方を
 ( 二つ        見直そうよ 
  \./ /、             
    ∪`J             


755 :デフォルトの名無しさん:05/03/12 14:00:08
さーて、いよいよプログラム板でも
AAフィルタかけなきゃダメになってきたか?

756 :デフォルトの名無しさん:05/03/12 15:32:14

  /\___/\
/ /    ヽ ::: \
| (●), 、(●)、 |    / ̄ ̄ ̄ ̄ ̄
|  ,,ノ(、_, )ヽ、,,   |  < >>755、ねぇ、笑って
|   ,;‐=‐ヽ   .:::::|    \_____
\  `ニニ´  .:::/
/`ー‐--‐‐―´´\

757 :デフォルトの名無しさん:05/03/12 20:20:17
あははははははは(乾いた笑い)

758 :デフォルトの名無しさん:05/03/13 15:49:57
つか、本スレなのかネタスレなのかはっきりしてほしい。

759 :デフォルトの名無しさん:05/03/13 16:27:26
>>758
ここは本スレでありネタスレでもあります。
頭の硬い人たちがスレ立て時にいつも一つに統合したがるので。

760 :デフォルトの名無しさん:05/03/13 22:32:12
そもそもネタすれって何だよ。
その存在意義は?

761 :デフォルトの名無しさん:05/03/14 10:31:21

    _  ∩
  ( ゚∀゚)彡 たっぷる!たっぷる!
  (  ⊂彡
   |   | 
   し ⌒J


762 :デフォルトの名無しさん:05/03/14 11:14:22
たっぷる!たっぷる!みんなたっぷる!

763 :デフォルトの名無しさん:05/03/14 23:42:09
でぃくしょなりにも愛をちょうだい( ´д`)人

764 :デフォルトの名無しさん:05/03/15 11:34:46
                \ │ /
                 / ̄\   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
               ─( ゚ ∀ ゚ )< ぱいちんこぱいちんこ!
                 \_/   \_________
                / │ \
                    ∩ ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< ぱいちんこ!
ぱいちんこ〜!    >( ゚∀゚ )/ |    / \__________
________/ |    〈 |   |
              / /\_」 / /\」               ̄     / /


765 :デフォルトの名無しさん:05/03/15 14:41:14
2ch自体がネタなのに、本スレだのネタすれだのは無意味

766 :デフォルトの名無しさん:05/03/15 14:50:23
asyncoreって何て発音するの?

767 :デフォルトの名無しさん:05/03/15 16:20:41
>>766
あしんこわ

768 :デフォルトの名無しさん:05/03/15 18:22:34
>>766
あ、チンコは

769 :デフォルトの名無しさん:05/03/15 22:54:13
pychinko

770 :【今日のキーフレーズ】:05/03/15 23:50:29

asyncore pychinko [ア チンコハ パイチンコ]

771 :デフォルトの名無しさん:05/03/16 01:11:01
ぱいチンコ・・・・
   ∩__   _∩      
   | ノ   | /|    ヽ/⌒)   
  /⌒) (゚) |;;;;;;;|   (゚) | .|  
 / /   (_|;;;;;;;| ●_)  ミ/   
.(  ヽ  | |;;;;;;;;|∪|  /    
 \    ヽ|;;;;;;;|ノ /       
  /___________| \|___/       
  /;;;;;;;\ \;;;;\         
 /;;;;;;;;;;;;;;\ \;;;;\      
 |~~~~_つ~~|;;;;;;;|~~/       
 |  /UJ\ |;;;;;;;| \      
 | /     |;;;;;;;|   )      
 ∪     (| \|  \      
           \_)  



772 :デフォルトの名無しさん:05/03/16 01:21:32
>771
とりあえず、CUBEの犠牲者+1。

773 :デフォルトの名無しさん:05/03/16 23:21:46
自分でconfigure,makeしてインストールすると、/usr/libにlibreadline.があるにもかかわらず
readlineモジュールがインストールされないのですが、どうすればされるようになりますか?

ちなみに、元からインストールされているPythonでは、readlineモジュールが無事使えます。

774 :デフォルトの名無しさん:05/03/16 23:45:44
>>773
ヘッダファイルがないのとちゃう?

775 :デフォルトの名無しさん:05/03/17 11:37:49
configureのログを見よ。原因はそこに書いてある。

776 :デフォルトの名無しさん:05/03/18 10:47:33
       タップル!! タップル!!
    タップル!! タップル!! タップル!!
  タップル!! ∩   ∩ ノ)   タップル!!
 タップル!!  川 ∩ 川彡'三つ  タップル!!
タップル!! ⊂ミ∩、⊂ミ∩彡⊃    タップル!!
タップル!!⊂三ミ( ゚∀゚)彡三彡三⊃ タップル!!
タップル!! ⊂彡川⊂彡川ミ⊃    タップル!!
タップル!!⊂彡川∪⊃ U川彡⊃   タップル!!
 タップル!! (ノ ∪  川 ∪ミ)  タップル!!
  タップル!!      ∪     タップル!!
    タップル!! タップル!! タップル!!
        タップル!! タップル!!
            タップル!!


777 :デフォルトの名無しさん:05/03/18 17:59:09
グーグル、オープンソース開発者向けに「Google Code」 を開始
ttp://japan.cnet.com/news/media/story/0,2000047715,20081426,00.htm

最初はC++とPython向けのツールを提供だと。
GoogleはPythonをよく使うねぇ。

778 :デフォルトの名無しさん:05/03/18 18:08:31
人の人生にいちいちケチつんなよ! 別にいいだろ!
俺の仕事はな、おまえら弁当によく入ってる魚の形した醤油入れ知ってるか?
あれのふたを閉める仕事だ。
おまえらバカにするかもしれんけどな、俺は誇りを持ってやってるぜ。
親戚に紹介してもらってやっと今の会社に入れたんだからな。
別にいいだろ。
別に何人やったからって女にもてるわけでもねーじゃん。
おまえらつまらんこと気にすんな。
おれはスカイラインに乗ってるぜ、どーだおまえらすげえだろ。


779 :デフォルトの名無しさん:05/03/19 18:00:51
自分のプログラムの中で
tkFileDialog.askopenfiles()
だけを使いたかったのですが,ファイルを選ぶウィンドウが閉じた後も
tk のウィンドウが開き放しになります.
速攻でこいつを消すにはどうしたらいいですか?

780 :デフォルトの名無しさん:05/03/19 19:54:29
>>778
敗北者

781 :デフォルトの名無しさん:05/03/19 21:07:21
⊂⌒ヽ          (⌒⊃
  \ \  /⌒ヽ  / /
 ⊂二二二( ^ω^)ニニ二⊃
     \ \_∩_/ /
      (  (::)(::)  )
       ヽ_,*、_ノ  ぱいチンコびろーん!
   ///         おシリもびろーん!
 ///


782 :デフォルトの名無しさん:05/03/19 21:55:10
カワイイ!

783 :デフォルトの名無しさん:05/03/20 00:02:22
Pythonの未来は明るい。
ttp://www.itmedia.co.jp/news/articles/0503/19/news013.html

784 :デフォルトの名無しさん:05/03/20 01:02:36
>>783
次は「犯罪者が使うPythonのお勉強」か

785 :デフォルトの名無しさん:05/03/20 16:29:32
>>779
コンソール画面が開いたままということ?

それだったらpythonではなくてpythonwで起動すればいいと思う。
関連付けで、pyファイルをpythonwにしとくとか。

786 :779:05/03/20 17:02:37
>>785
ごめんなさい.環境を書き忘れていました.誤解させてしまいました.
Linux の仮想ターミナルから起動しています.
みなさんのところでも,askopen...() と同時に「tk」という名前のウィンドウと
ファイルを開くウィンドウの 2 つが出て来るのだと思います.
で,選択しても片方は閉じません.Windows では閉じたような気がします.

787 :デフォルトの名無しさん:05/03/20 18:51:06
>>777
goopy/functionalって具体的になんなの?

788 :デフォルトの名無しさん:05/03/20 18:53:15
>>786
askopen...で開くとmasterをとる方法が無いから
素直に
tk = Tkinter.Tk()
tkFileDialog.askopenfiles()
tk.destroy()
するしかないような・・・。

789 :デフォルトの名無しさん:05/03/20 19:00:28
>>787
データの基本操作系の関数の詰め合わせ。
sort, reverse, some, every, remove_duplicatesとか
リストの操作系の関数が多いかな。

790 :787:05/03/20 19:33:26
ソース読んでみた。
なるほどしょーもない。次回に期待。

こんなにネタがあればPythonの
未来も明るいと言えるよね。

791 :デフォルトの名無しさん:05/03/20 19:38:46
  /⌒\
 (    )
 | / ⌒\    / ̄ ̄ ̄ ̄ ̄ ̄ ̄
 | (・∀・  )  <  サスーリ!
 |((⊂  |    \_______
 |  (  )ノ
 |   |
 |   |
 | / ⌒\    / ̄ ̄ ̄ ̄ ̄ ̄ ̄
 | (・∀・  )  <  サスーリ!
 |((⊂  |    \_______
 |  (  )ノ
 |   |
 |   |
 | / ⌒\    / ̄ ̄ ̄ ̄ ̄ ̄ ̄
 | (・∀・  )  <  サスーリ!
 |((⊂  |    \_______
 |  (  )ノ
 |   |
 |   |  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 |   | <  ぱいちんこ!
 ( ・∀・)   \_____________
  )   (
 (__Y_)


792 :779:05/03/20 21:33:08
>>788
できました.ありがとうございました.

793 :デフォルトの名無しさん:05/03/20 22:19:01
こんなにネタがあればPythonの
未来も明るいと言えるよね。
こんなにネタがあればPythonの
未来も明るいと言えるよね。
こんなにネタがあればPythonの
未来も明るいと言えるよね。
こんなにネタがあればPythonの
未来も明るいと言えるよね。
こんなにネタがあればPythonの
未来も明るいと言えるよね。
こんなにネタがあればPythonの
未来も明るいと言えるよね。
こんなにネタがあればPythonの
未来も明るいと言えるよね。


794 :デフォルトの名無しさん:05/03/21 00:47:16
文字コードについてぐぐってたら
こんなん見つけちゃった↓
ttp://apache.noexistent.com/~mak/kconv/kconv/index_jp.html


795 :デフォルトの名無しさん:05/03/21 01:31:34
>>794
kconvは変な関数あって楽しいぞ

796 :デフォルトの名無しさん:2005/03/21(月) 06:15:58
Pythonデスクトップリファレンスは買い?第2版まで待ったほうがよい?

797 :デフォルトの名無しさん:2005/03/21(月) 08:32:59
さすがに1.xベースは古くないか?

798 :デフォルトの名無しさん:2005/03/21(月) 08:37:27
iTunesのDRM技術を破る新アプリ「PyMusique」公開
http://www.itmedia.co.jp/news/articles/0503/19/news013.html

ソースも公開っぽい
http://fuware.nanocrew.net/pymusique/

799 :デフォルトの名無しさん:2005/03/21(月) 18:08:49
>>798
犯罪者

800 :デフォルトの名無しさん:2005/03/21(月) 19:44:05
トヨタスポーツ800

801 :デフォルトの名無しさん:2005/03/21(月) 20:22:12
いきなり質問ですみません。
ファイルの最終更新時間を知りたいのですが、

import time
time.strftime("%c", time.gmtime(os.path.getmtime(PATH)))

とすると9時間程ずれるのですが、どのようにすれば良いでしょうか?

>>> print time.strftime("%z",time.gmtime())
東京 (標準時)

とは出るのですが・・・。

802 :デフォルトの名無しさん:2005/03/21(月) 20:28:27
time.localtime() にしたら?

803 :801:2005/03/21(月) 21:02:20
ありがとうございます。
time.strftime("%c", time.localtime(os.path.getmtime(PATH)))
で出来ました。

804 :デフォルトの名無しさん:2005/03/21(月) 21:59:02
 ぱいチンコびろーん
   ∩___∩     
   | ノ      ヽ/⌒) 
  /⌒) (゚)   (゚) | .|  
 / /   ( _●_)  ミ/
.(  ヽ  |∪|  /
 \    ヽノ /   
  /      /  
 |   _つ  /    
 |  /UJ\ \       
 | /     )  )       
 ∪     (  \    
        \_)


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

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)