Pythonお勉強スレッド __part3__

このエントリーをはてなブックマークに追加
158150
またーり、おねがいします
http://www.geocities.co.jp/SiliconValley/5174/
キタ━━━━(゚∀゚)━━━━ッ!!
160デフォルトの名無しさん:03/01/05 20:47
>>158
linuxでも動いたよ。
フォント着ちゃないけど。
Tkinterかぁ、、、
GUI関連で将来は苦労しそう。
Red Hat Linux 7.3, Python 2.2, Pmw 1.1, JapaneseCodecs 1.4.9, Tcl/Tk 8.3.4
という環境で試しますた。

>>160 フォントはこれできれいになった。AAも完璧!(・∀・)イイ!   font=("MS PGothic",12)
 → font="-mona-gothic-medium-r-normal--14-130-75-75-p-140-jisx0208.1990-0"

   Pmw.ScrolledListBox.__init__( ... )
追加 self._listbox.config(font="k14")

   self.config(relief=Tk.SUNKEN, height=1, anchor=Tk.W)
 → self.config(relief=Tk.SUNKEN, height=1, anchor=Tk.W, font="k14")

それと、漏れの環境ではなぜか insert() するとき明示的に UTF-8 にしてやらないとだめぽ。

   self.insert(Tk.END, category.name)
 → self.insert(Tk.END, category.name.encode("utf-8"))

それぞれ似たような修正点が複数ヶ所あるけど割愛。
163デフォルトの名無しさん:03/01/06 11:28
diffしる!
このスレの連中、キモい
だれかPmwの良サイトおしえて
>>162
>漏れの環境(中略)UTF-8
BeOSですか?
>>165
>>158からたどれるだろ。
どなたかsubject.txtの落とし方を教えてくだせえ。
169162:03/01/06 22:20
>>163
diffだと長かったんで。

>>168
>>144の方法じゃダメなの?
>>166
赤帽7.3をBeOSと誤読するヤシも珍しいなw
171162:03/01/06 23:02
ちょっと訂正。モナフォントは16ドットのものを使う方がいいみたい。
AAのズレがほとんどなくなる。フォント名はコレ↓
-mona-gothic-medium-r-normal--16-150-75-75-p-160-jisx0208.1990-0

ついでにいくつか要望を。

(1) title だけじゃなく iconname も設定してホスィ。

  self.title("KittyWalk")
  self.iconname("KittyWalk") # 追加

(2) コデックは sjis じゃなく ms932 の方がヨサゲ。機種依存文字が〓にならずに済む。

(3) 大型のAAが悲しいことになるので行末の折り返しを無効にできるようにしてホスィ。
漏れはこんな風にしてみた。

class GUI(Tk.Tk):
  def toggle_word_wrap(self): # 追加
    self.message_view.toggle_word_wrap()

class MessageView(Pmw.ScrolledText):
  def toggle_word_wrap(self): # 追加
    if self._textbox["wrap"] == Tk.NONE:
      self._textbox.config(wrap=Tk.WORD)
    else:
      self._textbox.config(wrap=Tk.NONE)

class MenuBar(Tk.Menu):
  def build(self):
    bbsmenu.add_command(label="Toggle word wrap",
      command=self.master.toggle_word_wrap) # 追加
172162:03/01/06 23:03
(4) 実体参照は片っ端からUnicodeに直してホスィ。これも実装例を挙げとく。
スレタイトル中の実体参照も同じように変換する必要があると思われ。

  def render_message(self, message):
     :
    # 以下のように変更
    for old, new in [(u"<br>",u"\n"),
             (u"<BR>",u"\n"),
             (u"<a .*?>",u""),
             (u"</a>",u""),
             (u"&#?[A-Za-z0-9]+;", self.replace_entref)]:
      text = re.sub(old, new, text)
  # 以下、追加
  import htmlentitydefs
  entity_dict = {}
  for k, v in htmlentitydefs.entitydefs.items():
    if v[:2] == "&#" and v[-1] == ";":
      v = unichr(int(v[2:-1]))
    else:
      v = unicode(v, "iso-8859-1")
    entity_dict[u"&%s;" % k] = v
  def replace_entref(self, match):
    key = match.group()
    if key[1] == u"#":
      return unichr(int(key[2:-1]))
    return self.entity_dict.get(key, key)
http://mail.python.org/pipermail/python-list/2003-January/137346.html
Subject: Displaying and Inputting Japanese
わかる人いたら、だれか答えてあげて
>>173
蟻さん、Martinに撃沈されちゃった?w
彼の口調は相変わらず厳しいなあ。
175168:03/01/07 07:19
>>169
いや、肝心のsubject.txtのURLがわからんのでだれか教えてくさい。
>>150
datをダウソするときに必要な量だけダウソするようにしてはどうか?
(CookBookにヒントが載ってる)
179150 ◆ismFPlKHko :03/01/07 22:38
>>162
どうもありがとうございます。
ちょこちょこ取り込んでいってまして、これからhtmlentitydefs を調べてみます。
こんなのあったのか。

>>178
要望リストにいれときます。あぼーん記事の判別に苦戦しそうですが。
>>179
このスレはちゃんと読んだ?

monazilla Part 3
http://pc3.2ch.net/test/read.cgi/tech/1012544484/
181150 ◆ismFPlKHko :03/01/07 23:34
>>180
ちゃんと読んでなかったです。
>>176
ありがと。何とかできそうだよ。ウンコ以下だけど。
183162:03/01/08 18:34
kittywalk20030108出たよ。期待してるのでちと辛めのツッコミを。

・True を使ってるから Python 2.3a1 でないとダメポ。仕様?

・~/.kittywalk/config がデフォルト設定で上書きされる。たぶんバグ。

・実体参照の置換処理に re.sub() を使わないのはなぜ?
パフォーマンスが全然違うよ。それと、実体参照の正規表現が
&#?[A-Za-z0-9]+?; になってるけど二つ目の ? は要らなくない?

・んなこた分かってると言われるのを覚悟で書くと、
match = re.search(u"&#?[A-Za-z0-9]+?;", text[start:])
text[start:] のような部分文字列を作る処理は重いのでできるだけ
避けた方がいい。この場合は re.search(regexp, text, start) と書く。

はっきり言って Python は新しい文字列オブジェクトを作る処理が重い。
先回りしとくと text += substring のような処理も同様。部分文字列を
いくつも連結するような処理はリストに append して後で join する方が軽い。

・re.match() や re.search() は呼び出されるたびに正規表現文字列を
コンパイルする。何度も使う正規表現は re.compile() で予めコンパイル
しておく方が効率がよい。

漏れは蛇使いとしては古参の部類に入ると思うんで最近のバージョンの
パフォーマンスの改良には疎い。まあ話半分で聞いてくれ。
Trueは2.2.2にもあったりする・・・が中身は、
True, False = 1, 0
だったり。
2.3ではちゃんとboolクラスのインスタンスリテラルなんだが。

Pythonバージョンのバージョン調べて(sysモジュールな)
上のコード追加すりゃなんとかなりそうな。
"&amp;(#([0-9]+|[xX][0-9a-fA-F]+)|[a-fA-F][a-fA-F0-9]*);"
の方が正確だけど複雑すぎるか>実体参照
LinuxでのPmwのインストールの仕方を教えてください。
マニュアルを見ましたが、よくわかりません。
187IP記録実験:03/01/08 21:49
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
>>186
cd /usr/lib/python2.2/site-packages
tar zxf ~/Pmw.1.1.tar.gz
189150 ◆ismFPlKHko :03/01/08 23:54
>>183
>・True を使ってるから Python 2.3a1 でないとダメポ。仕様?
>>184 で書かれているように、True, False が定義されていないければ、
True, False = 1, 0 するようにしてみます。

>・実体参照の置換処理に re.sub() を使わないのはなぜ?
>パフォーマンスが全然違うよ。それと、実体参照の正規表現が
...
>text[start:] のような部分文字列を作る処理は重いのでできるだけ
...
>コンパイルする。何度も使う正規表現は re.compile() で予めコンパイル
>しておく方が効率がよい。
大きい dat ファイルを処理するときに、
ものすごく時間がかかっている気がするので、
このあたりを参考にします。

>>185
>"&(#([0-9]+|[xX][0-9a-fA-F]+)|[a-fA-F][a-fA-F0-9]*);"
>の方が正確だけど複雑すぎるか>実体参照
"&#?[A-Za-z0-9]+;" で引っかかった文字列が、
実体参照の辞書で定義されていなければ、放置するので、
大丈夫かなぁ、と楽観的に考えています。
正確じゃないと、気持ち悪いでしょうか>みなさま

Monazilla.org からリンクされててビクーリ。
先にダウンロードまわりを手直しします。
>>610
ポイズン
今日の晩飯はなんだろうか?

諦めな。
193デフォルトの名無しさん:03/01/09 11:06
>>191
スパムスビ
>>1のID
195184:03/01/09 13:12
>>189
> "&#?[A-Za-z0-9]+;" で引っかかった文字列が、
> 実体参照の辞書で定義されていなければ、放置するので、
> 大丈夫かなぁ、と楽観的に考えています。
あ、そういうことなら無駄に複雑にする必要はないですね。

あちしも期待しております、がんがってください。
>>184==>>185です。
ついでに184のアホtypoは見なかったことにして下さい(汗)
Monazilla.orgってありがた迷惑だな。
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
記録実験をトップニュースにする程公共性があるのかと小一時間問い詰めたい。
あとニュースなんだからちゃんと「IPアドレス」って書け。
なんか投票までやってるし。
documancer
なんか賛成票の妙な伸び方が組織票っぽいんだよな・・・
もしかして企業とかが・・・なんてね(^^)

みんなアクセスログなんて言葉聞いたこともないよな?
ありました。
http://linux.ascii24.com/linux/linuxmag/update/
ってか今朝UPされた?
>>148
へぇー、結構多いね
けんすうさん。

痛々しい事はいいです(ていうか見てるこっちが辛い)

 今用件を伝えますから電話しましょう。
 ずばっと出て下さい

 度量の小さい人は無理だろ、か。
私も復帰しました。生で。
小一時間ダメだったんだが、まあいいか。
206162:03/01/10 11:50
>>189
kittywalk20030110a (・∀・) イイ!スレの表示速度が速くなって快適っす。
ところでブックマークのスレタイトルにレス数が入るのは仕様ですか?
ブックマーク追加時のレス数のまま更新されないみたいなんですが。
どれがまじめなレスで、どれがコピペで、どれがネタなのかわからない。
2chもそう長くは存続できまい。
ここにくるだけ無駄だってことがわかった。
皆も早くほかのことに興味を持とうな。

では、さようなら
209デフォルトの名無しさん:03/01/10 12:35
pythonでポインタ使えないの?
木構造を実現したいのだが、ポインタのやり方がわからん
>>410
ああ、まったくだ
>>915
他の場所に書いてあったが、下手すりゃ人生が変わる覚悟をしてまでそこまで
やる奴がどれ位いるか。
ただでさえ告発者が叩かれる国なのに。
>>209
Pythonじゃ全オブジェクトがポインタみたいなもん(つーか参照)だから、
class node:
  def __init__(self, c=None, l=None, r=None):
    self.c = c
    self.l = l
    self.r = r
a = node(1, node(2), node(3, node(4)))
a.l.r = node(5)
print a.r.l.c
とか、C/C++のように、アドレスとかアドレスの指している先とかは
考えなくても、単に代入と参照でOKでしょ?
213150 ◆ismFPlKHko :03/01/10 13:07
>>206
> ところでブックマークのスレタイトルにレス数が入るのは仕様ですか?
その事実に気づいていなかっただけです。次のバージョンで直しておきます。
文字列処理の無駄を省くのも、次回で。
トオルたん、救急車の用意は?
>>212
ネタにマジレスでわ?
ちょっと前にも別のスレで「pythonに構造体はないの?」
とか書きこんで「クラスか辞書使えば?」とか言われても
「じゃあpythonには構造体がないんですね、構造体がない
言語なんてクソですね」みたいなネタがあったけど。
ネタにマジレスじゃなくて自作自演だったのね。。。
手の込んだあらしかたするねぇ。。。。ハァ
へ? 大阪?
Pythonの弱点、ポインタが使えない!
遂にというか、何と言うか

IPとられることが怖いやつが、こんなにいるなんて信じられん!!マンコとかく勇気すら無いやつは2chにいらんだろう!!
221162:03/01/10 23:33
>>213
あ、厭味に聞こえたらゴメン。仕様でもいいかなと思ったので。
Update board menu みたいな方法で更新をかけて未読レスがあったら
新しいレス数と一緒にスレタイトルを色付きで表示、とかやってくれると
嬉しいかも。
フシアナをハンドルにしてるハン板の顰蹙コテがいて、
これが2CHにVirus Scriptやらブラクラやらを貼ったことを自慢した揚げ句、
別のコテハンがフシアナして挑発したらポートスキャンを掛け倒したのです。

410 名前: 投稿日:03/01/10 00:08 ID:h/ETIb2F
>401 名前:三毛 ◆MowPntKTsQ :03/01/10 00:04 ID:McoZGeeY
>ウィルススクリプト貼ってケツまくるような野郎が、「公序良俗」とは笑止の限り。

これが事実だったらどーすんの?(whhh
415 名前:三毛 ◆MowPntKTsQ 投稿日:03/01/10 00:15 ID:McoZGeeY
アサピーは、で

>あれは、そもそもスクリプトじゃないし単にノートンが糞だって言うだけの話。

などと言い訳をしておりまつ。
ではどーいう意図でああいうものを貼ったのか、内容をご説明頂きたいものですな。

417 名前:g056137.ppp.asahi-net.or.jp 投稿日:03/01/10 00:16 ID:6BZCtvnU
そんなに怖かった?

で、相手にログとられて晒し上げの上、朝になったらプロバイダにも抗議されてしまう、という。
いや明け方に(略
質の高い書き込み>質の低い書き込み>質の低い上に警察/訴訟沙汰になる書き込み

こんな感じなのかもね。
どっかの町で珍走が特攻服着て歩くのを禁止した条例が制定
されたら「表現の自由を奪う」と言ってみたり、「内部告発者を守れ」
とか言ってた癖に、ひろゆきが裁判で負けた事が良い事であるかの
ように報道するマスコミのダブスタは許せん!
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
でもまあ、本当にチクリしたい奴はどこかから書き込むだろ。
大学とか無線LANの穴多そうだし。
裁判所が判断を下した匿名掲示板って2ch以外にあるのか?
隊長のことハ○とかって言えなくなるのかな、寂しいな
WinnyBBS専用ブラウザならたくさんある。
http://www.nan.sakura.ne.jp/winny/page/tools.htm
オズラ(・∀・)カエレ!!
クラックしてIPげと
233150 ◆ismFPlKHko :03/01/11 18:14
>>221
> あ、厭味に聞こえたらゴメン。
いえいえ、そんなことありません。
re.sub() を使ってみたら、ものすごく速くなりました。多謝。
予想された範囲の行動なんだろうが、IPがプロバイダでこういうスレを立てたのなら
何を考えていらっしゃるのやら。
を訴えます。
236162:03/01/12 02:47
kittywalk20030111試しますた。板名とスレ名が出るのが(・∀・)イイ!
メニューのフォント設定が効いてないところがありますた。

class GUI(Tk.Tk):
  def make_widgets(self):
    boardmenu_tab = notebook.tab(0) # 追加
    boardmenu_tab.config(font=CONFIG.get("Menu","Font")) # 追加
    bookmark_tab = notebook.tab(1)
    bookmark_tab.config(font=CONFIG.get("Menu","Font")) # 追加

class ThreadMenu(Pmw.ScrolledListBox, Colleague):
  def __init__(self, mediator, parent):
    self.component("label").config(font=CONFIG.get("Menu","Font")) # 追加

class MessageView(Pmw.ScrolledText, Colleague):
  def __init__(self, mediator, parent):
    self.component("label").config(font=CONFIG.get("Menu","Font")) # 追加

class MenuBar(Tk.Menu, Colleague):
  def build(self):
    *.add_command(...
           font=CONFIG.get("Menu","Font"), # 追加(複数)
    self.add_cascade(...
             font=CONFIG.get("Menu","Font"), # 追加(複数)

スレタイトルをダブルクリックしてスレを再表示するたびにどんどん
スレ内容が重複していくみたいです(バグ?)。

スレ一覧のタイトルにレス数が付かないのはチョト寂しいです(感想)。

スレ一覧から目的のスレを探すのが結構大変なので検索できるとイイかも(要望)。
名前売りたい奴とか金儲けしたいやつとか鯖を貸したい業者なんて今が
絶好のチャンスだと思うけどな
生け贄って何ぞや?
( ´,_ゝ`)プッ 事情聴取なんて、初めてじゃねーよ!
  ヽ(´ー`)ノ
情報交換したくてもさぁ、同人って読み手と描き手がかぶってるから
ほとんどの人が何かの形でサークルに関わってるわけじゃん。
自分や知ってる奴が叩かれてるのをわざわざ喜んで見に来たりしないだろ

狭い世界だからサークル活動に悪い影響与えてるとおもうよ
「同人板で叩かれるから」って理由でコピー本やめたサークルや
褒めのカキコがあった直後「自作自演したって思われるとくやしいし
名前でたら叩かれる」ってサイト閉じたとこも…
241150 ◆ismFPlKHko :03/01/12 12:48
>>236
> メニューのフォント設定が効いてないところがありますた。
感涙。

> スレ一覧のタイトルにレス数が付かないのはチョト寂しいです(感想)。
>>161 で言われたとおり、GUI で苦労しておりまする。
とりあえず、その場しのぎしときました。
ちくり裏事情なんかは、WINNY掲示板みたいなWINNY型P2Pにして、
2ちゃんからリンクして拾ってくるようにできんかな?
zD2HIsxl
厨房逝ってよし。
なんか各所で「ブラウザを立ち上げ直してください」とかいうエラーでて書き込めないって
人がいるけど、それって何をするとでるの?
俺は見たこと無い。
>>241
Tkinterはどちらかと言うと楽にGUIを組めるツールキットだと思う。
押し着せの仕様に逆らってトリッキーなことをやり出すと苦労するけど。
そのツールキットのやり方に従って素直に作るのであれば
かかる手間暇はどのツールキットを使ってもそれほど大差ない思われ。
>>245禿同
Tkinterが使いにくいというのは迷信の塊。個人的には他のが好きだが。
C++ に詳しい人に、WxPython のチュートリアルを書いてほしい、といってみるテスト。
248デフォルトの名無しさん:03/01/13 17:35
だれかBlackAdderって使ったことある?
フォームデザイナー付きのIDEだって。
売り物らしいけど評価版があるってさ。
249山崎渉:03/01/13 18:53
(^^)
250デフォルトの名無しさん:03/01/13 19:50
なんだPythonやってるやつらってあふぉばっかじゃん(笑
21 は凄い男だな。感動した。
252162:03/01/15 08:01
kittywalk20030114試しますた。検索ダイアログ、超便利です。
変な正規表現 (閉じ括弧がない等) を食わせるとエラーを吐くので要対策。
あと、下まで検索したら上に戻るとか、下から上に向かって検索とか、
そういう割とありがちなオプションがあると嬉しいかも。
253162:03/01/15 08:35
追加。>>162の環境で試してるんだけど検索ダイアログに日本語が入力できない。
Pmw.EntryField がダメポ。Tkinter.Entry で置き換えたら入力できますた。

class ThreadSearchDialog(Colleague, Tk.Toplevel):
  def __init__(self, mediator, parent):
     :
    self.transient(parent) # 追加
    # Entry.
    self._entry = Tk.Entry(self, width=32, font=CONFIG.get("Entry","Font")) # 変更
    self._entry.bind("<Return>", self._search) # 追加
    self._entry.pack(side=Tk.LEFT)
  def focus_force(self):
    self._entry.focus_force() # 変更

ついでに transient() も追加してみますた。常に parent よりも前に
表示されるようになります。ただ、この変更を加えると、うちの環境では
Windows で言うところのタイトルバーの [x] ボタンが表示されなりますた。
この変更を取り込む場合は別途「閉じる」ボタンが欲しいです。
254山崎渉:03/01/15 17:50
(^^)
255150 ◆ismFPlKHko :03/01/16 00:14
>>245
ということは、Tkinter のせいにできないわけですね。なるほど。

>>253
ありがとうございます。修正してみます。
256超初心者@決してネタではないです:03/01/16 01:08
pythonの累乗の書き方がわかりません
 ^ だと引き算になっちゃうみたいなんですけど  
>>> 3 ** 3
27
ちなみに ^ は bit xor だ。
259超初心者@決してネタではないです:03/01/16 01:52
>>258
出来ました。
割り算もわかりません。暇だったら教えて下さい。
割り算は / だよ。
Python を始めたばかりなら「Python Tutorial」を読むことを勧める。
http://www.python.org/doc/current/tut/tut.html (英語)
http://www.zob.ne.jp/~hide-t/comp/python/py21-tut-ja/tut-ja/ (日本語)
和訳は元のバージョンがちょっと古いけど十分役立つと思われ。

     | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
     | 次でカキコ機能つけて!! |
     |___________|
          ∧∧ ||
         ( ゚д゚)||
          / づΦ
Python も何かひとつ sf でプロジェクトをやってみるのはどうだろう?
翻訳プロジェクト以外にライブラリでもアプリでも。
264162:03/01/16 08:02
さらに要望追加。カーソルキーの上下がデフォルトの動作のままだと
キーを押してからスクロールが始まるまでにタイムラグがある場合が
あるので修正して欲しいです。ついでにスペースとバックスペースに
PageDown/PageUp と同じ動作を割り当ててもらえると嬉しいです。

class MessageView(Pmw.ScrolledText, Colleague):
  def bind_events(self):
     :
    self._textbox.bind("<Up>", self.scroll_line_up)
    self._textbox.bind("<Down>", self.scroll_line_down)
    self._textbox.bind("<space>", self.scroll_page_up)
    self._textbox.bind("<BackSpace>", self.scroll_page_down)
     :
  def scroll_page_up(self, event=None):
    self.component("text").yview_scroll(1, Tk.PAGES)
    return "break"
  def scroll_page_down(self, event=None):
    self.component("text").yview_scroll(-1, Tk.PAGES)
    return "break"
  def scroll_line_up(self, event=None):
    self.component("text").yview_scroll(-1, Tk.UNITS)
    return "break"
  def scroll_line_down(self, event=None):
    self.component("text").yview_scroll(1, Tk.UNITS)
    return "break"
265162:03/01/16 08:08
チョト訂正。scroll_page_up() と scroll_page_down() はメソッド名を入れ換えた方が
いいかも。そのままコピペすることはないと思いますが念のため。
266150 ◆ismFPlKHko :03/01/16 13:33
>>261 >>264
善処します。
>>263
http://sourceforge.jp/softwaremap/trove_list.php?form_cat=178
こっちはまだまだ数が少ないし、翻訳モノの割合も多い。
今までRubyを使い慣れているんですが、年明けからPythonでプログ
ラムを書いてます。が、Rubyにくらべてかなり面倒だと思うことが
多いです。とくにリストの処理とかループとか。
Rubyより楽に書けると感じるのはif付きの list comprehension ぐ
らいしか今のところ見当たらないのですが、皆さん平気なんでしょうか?
それとも私が知らないだけでしょうか。
>>268
なら python 使うのやめろ
>>269
まあもちつけ。

>>268
漏れは Ruby も list comprehension も使ったことないけど
Python にはとても満足しているよ。Python プログラミングは
漏れにはすごく楽チン。面倒だと思う部分もすこしはあるけど
全体からすると問題にならない程度。ストレスを感じることは
ほとんどないです。
>>268-270
煽りじゃなく>>269に同意。
俺はpythonは他人に見せるコードを書くための言語だと思ってる。
だからselfを省略したいとか強力なlambdaで技巧的なコードを
書きたいとかインデントがめんどくさいとか思ったら
別の言語を使った方が良いと思う。
list comprehensionにしたってmap()とかfilter()とか使った方が
速いコードになるのになんで追加されたのか?とか考えると
速さよりも書きやすさよりも読みやすさを重視した結果じゃないかと。

俺にとっては十分速いし書きやすいけど。

        ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  〜′ ̄ ̄( ゚Д゚)< 今、>>271がいいことを言った!
   UU ̄ ̄ U U  \_____________
>>271 に同意あげ

タイプ数を減らしたければAPLでも使ってなさい。
上がってなかった;;;
275268:03/01/18 10:00
ご意見どうも。他人に見せるコードを書くため、というのは一理あ
ると思いました。確かにわやになりにくいとは思います。

タイプ数というより、ループという構造をとらないといけないので
思考をコードにするまでに余分なステップが入る感じです。filter
とかmapとかRubyのeachとかの方がダイレクトに表現できてよいで
す。何をしようとしているか、ということに名前がついているから
後からでも読みやすいと思うし(eachは違うけど)。Pythonはlambda
が弱いのでそれが使いづらく、ちょっと込み入ったことをしようと
思うとループにせざるを得ません。list comprehension があるか
らまだ救われているけど、それも式一つで書けない場合はちょっと
困ります。

Ruby等に比べてリストを調べたり操作したりするメソッドが少ない
のも不便さを感じる理由です。簡単なところでは、findとかuniqと
か見当たらないんですが、こういう処理さくっと一行で表現できる
ようになっていたりはしないですよね? リファレンスも眺めてみ
たんですが、こういうのを集めたモジュールはあるんでしょうか。
276268:03/01/18 10:02
(続きです。)
少し話は逸れますが、list comprehensionが優れているのは、入れ
子になったリストを処理するときに、生成されるリストの構造と
list comprehensionのコードの構造が似ていることだと思います。
この場合はコードの形から生成される形がわかるのがfilterなどよ
り直感的でいいですね。

話を戻して、forループだと、ループ変数がループ全体で同じフレー
ムの名前なのがまた不便に感じることがないですか? ループ中で
lambdaを生成したりすると、ループ変数(やループの中で計算した
変数)はすぐに別の値に束縛されますから、lambdaの中でそのまま
使えず、lambdaのデフォルト引数という少し苦しい技が必要になり
ます。lambda やRubyのブロックを渡す場合とか、Schemeのように
末尾再帰でループする場合なんかはループごとに別のフレームにな
るのでそのような必要は出てきません。

別にPythonを使うのを辞める気はないので、こういう書き方がある、
こういう便利なものがある、というのを教えて頂ければ幸いです。
278150 ◆ismFPlKHko :03/01/19 03:35
>>261,264 善処しました。

   ┌┬┬――┬ヽ
   │||    ||  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   │└┴――┘| | kittywalk20030118試したよ
   │┌-(,,゚Д゚)┐|<  書き込みも検索ダイアログの日本語も完璧
   ││..(ノ..........つ| | 150さん、あんた最高だ・・・
   ││................|│  \___________________
   └┴―U''U::┴┘
280デフォルトの名無しさん:03/01/19 09:27
これからLinuxやPythonの勉強をしようと思い、VineLinux2.6をインストール
したのですが、入ってたPythonのバージョンが1.5でした。
Pythonはずいぶん前に2.xになっているようですが、なぜいまだに1.5なのでしょうか?
互換性などで問題でもあるのでしょうか?
最新版欲しけりゃ玉取ってくりゃいいだろ?
つーか、システムのアップデートはしたのか?
282名称未設定:03/01/19 11:44
>>280
python2の名前で入ってるはずです。
283デフォルトの名無しさん:03/01/19 13:35
kittywalkで書き込むとコンソールにHTMLみたいなのががんがん出てくるんですが。
>>150
284デフォルトの名無しさん:03/01/19 14:11
>>281
それはそうですが、なぜデフォで入っているのが古いバージョンなのかな?と。
(新しいバージョンにするとなにか不都合でもあるのかな?)

>>282
Vine2.6には入ってないようです。

いまいちLinuxのパッケージ管理とか分からないので、すこし調べてから
新しいのを入れようと思います。
Vineなぞ捨てろ。押し着せ設定の欝陶しいことこの上なし。
見通しも悪いから、勉強しようと思うのなら尚更よ。

ところでPythonなんかを勉強するのにいいLinuxディストリって何だ?
* 構成が素直
* 最新版やモジュールを手で取ってきて入れてもパッケージ管理と喧嘩しない
slack とか source mage とか?
gentoo!
288150 ◆ismFPlKHko :03/01/19 16:22
>>283
出ないようにしました。
289デフォルトの名無しさん:03/01/20 07:37
>>285
とりあえず赤帽を推しとく。
RPMパケジが用意されてることが多いから何だかんだ言って楽だ。
漏れはパケジを使わずに野良インスコする場合は /opt 以下に入れてる。
今のところ 1.5.2, 2.2, 2.2.2, 2.3a1 とピチョンが四つも入っているワケだが。
機械伯爵って何? あしゅら男爵のともだち?
http://www.freeml.com/ctrl/html/MessageListForm/[email protected]
おいリューズ、時間をすすめろ。
293デフォルトの名無しさん:03/01/20 20:10
アニオタか。
Pythonはアニオタのイメージがつく。
本名でやってホスイ。
Ruby は二つ目の2chブラウザーができたみたい。

おいお前ら! GTK+使ってLinux版かちゅーしゃ作れや
http://pc.2ch.net/test/read.cgi/linux/1022744633/388

日本のPythonコミュニティーもがんがれ。
Python始めました。動機はGentooです。
Perlしか知らないのですが、よろしくお願いします。
297デフォルトの名無しさん:03/01/20 21:15
や〜い、Pythonのアニオター!
アニオタでも使えるpythonのお勉強u"""part3"""
>>295 >>150
kittywalkの2ch関連の部分再利用して作ってもいい?
せっかく>>150が作ってくれたんだし。
300!
>>299
Tkinter じゃないのきぼん(w。
Tkinter以外のGUIツールキットって、
win32gui, wxPython, PyGTK, PyQT ...
あと何かあったっけ?
PyCardとか Delphi を利用するのとか、、、
304150 ◆ismFPlKHko :03/01/22 00:11
>>299
厨房丸出しのコードでよろしければどうぞ。
299 さんが書き直したコードで勉強いたします。

>>302
FOX とか、PyGame を利用した PyUI とか、WideStudio とか、でしょうか。

初歩的な質問なのですが、StringIO はどういう時に使えばいいのですか?
具体的な使い道が今ひとつわからないのですが、、、
>>305
後段の処理で seek 可能なファイルオブジェクトが要求される場合によく使う。

例えば、開いたソケットは seek できないファイルオブジェクトになるので、
mimetools.Message のように seek 可能なファイルオブジェクトを引数として
渡さなければならないときは、ソケットからデータを全部読んで StringIO で
seek 可能なファイルオブジェクトにしてから渡す。ディスクに一時ファイルを
作らなくて済むのでエラー処理が省ける。ただし、データをメモリ上に持つ
ことになるのでファイルが巨大になり得る場合は要注意。

てゆーか、なんでどう使えばいいか分からないものを使おうとしてるの?
今度の CAPP (Certificate for Advanced Python Programmers) を受験する気?
307デフォルトの名無しさん:03/01/22 04:33
GUIをpythonで、実行部分は処理速度を速めるためにCで書こうとしているものです。
ただ今はpythonからCを呼び込む方法がわからずに四苦八苦しています。
簡単な例や、そういった情報が書いてあるサイトがあったら教えてもらえませんか?
>>307
プロcしらんけど探しといたでー。あってるかしらんけど。
http://lss.eternity.ne.jp/cgi-bin/link/soft_add.cgi?1057
>>302
一緒に調べたんやけどんなんたらGLってのもそうじゃないんか?
311デフォルトの名無しさん:03/01/22 05:26
>>308-309
 サン(゚∀゚)クス

 ここは頼りになるなぁ
>>311
ところでpythonって何だ?スクリプトがなんたらって書いてあったが。
/ と // はどう違うのですか?
>>> 100/3
33
>>> 100//3
33
>>> 100.0/3.0
33.333333333333336
>>> 100.0//3.0
33.0

こうなった。何に使うんだろう
将来的には100/3も33.333.... になるようにするんじゃなかった?
316デフォルトの名無しさん:03/01/22 15:09
Kittywalk公式サイトの方にあるお助け掲示板に書き込んだのですが、
どなたも(150さんすら(w )掲示板を使っていないようなので、
ここに再度書き込みします。

MicrosoftのWheel Mouseを使用しているのですが、Wheelを使って
スレ一覧やスレの内容をスクロールさせるとほぼ100%の確率で
アプリケーションエラーが出てそこで終了してしまいます。
できれば、この不具合を直していただければありがたいですが。

動作環境は
Windows2k + Python2.2.2 + Pmw1.1 + JapaneseCodecs 1.4.9
で、マウスはUSBマウスにアダプタをかませてPS/2接続です。
>>313-315
> / と // はどう違うのですか?
ttp://member.nifty.ne.jp/Fe/script/python/pep-0238.ja.html
>>307
いっそぜんぶPythonでかいちゃえ
厨房ですがどうすれば、蛇使いになれますか?
>>317
> ttp://member.nifty.ne.jp/Fe/script/python/pep-0238.ja.html
正直、よく分からなかった自分はイッテヨシですか?

>>313-315

>>> 100//(3+0j)
__main__:1: DeprecationWarning: complex divmod(), // and % are deprecated
(33+0j)
>>> 100/(3+0j)
(33.333333333333336+0j)

-----------------
赤字のエラーメッセージなんて初めて見た。
>>320
・整数/整数 -> 整数
てなるのは習慣的な実装上の都合で、数学的には正しくないから、/を使ったらとにかく
・数/数 -> 実数
にした方がよかろ、ということです(習慣を破るという意味では直感的でないけど)。
で、整数が欲しいときは//を使って、
・数//数 -> 整数(というか小数部のない数)
てことにしょう、と。

今は移行途中の段階だからさらに話がややこしく。
>>321
除算に関して閉じてない演算体系ってだけで数学的に正しくないってことはないでしょ。
323環太郎:03/01/23 03:56
ハゲドウ。
>>306
> 後段の処理で seek 可能なファイルオブジェクトが要求される場合によく使う。
> 例えば、開いたソケットは seek できないファイルオブジェクトになるので、
> mimetools.Message のように seek 可能なファイルオブジェクトを引数として
> 渡さなければならないときは、ソケットからデータを全部読んで StringIO で
> seek 可能なファイルオブジェクトにしてから渡す。ディスクに一時ファイルを
> 作らなくて済むのでエラー処理が省ける。ただし、データをメモリ上に持つ
> ことになるのでファイルが巨大になり得る場合は要注意。
解説ありがとうございます。
今の自分には必要なさそうですね。

> てゆーか、なんでどう使えばいいか分からないものを使おうとしてるの?
ファイル操作でStringIO というのが使えると知ったので、どうやって使えばいいのかと思って。
325デフォルトの名無しさん:03/01/23 18:27
テレちょん族吉本興業で 毎日で うんざりで〜す
テレちょん族吉本興業で 毎日で うんざりで〜す
テレちょん族吉本興業で 毎日で うんざりで〜す

テレちょん族吉本興業で 毎日で うんざりで〜す
テレちょん族吉本興業で 毎日で うんざりで〜す


326山崎渉:03/01/23 20:03
(^^)
327ここで質問していいのかな…:03/01/24 03:35
質問ですが、pythonの中にあるtcl/tkをつかったturtle.pyで、その実行画面をpythonのプログラムによって保存する方法ってありますか?
(python日本語版の場合、C:\python22jp\Lib\lib-tk\turtle.py にある)

具体的にはボタン押したらpythonの窓内の画面を画像ファイルにして保存、というのがいいのですが。
http://www.python.org/peps/pep-0285.html
PEP: 285

3) Should the constants be called 'True' and 'False' (similar to
None) or 'true' and 'false' (as in C++, Java and C99)?

=> True and False.

Most reviewers agree that consistency within Python is more
important than consistency with other languages.

これってどうよ?
やっぱり true/false は小文字がしっくりくるんじゃない?
>>328
C++もJavaもC99もほとんど使っていない漏れには
None/True/Falseの方が統一感が感じられる。
>>313
> / と // はどう違うのですか?

------------------------------------------------------
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/19423
CommonLisp, Schemeそして将来のPythonでは / がquo相当の働きを
するのは承知しているのですが、やはり / 演算子の今の挙動に愛
着があるので別の名前のメソッドを導入することにしました。
------------------------------------------------------

lisp 使いのしわざ?
Pythonのソースのなかで見かける、XXXってなんですか?
>>331
FIXMEと似たような意味かな?
それか、ちょっと恥ずかしいやり方っていう意味かも。
333デフォルトの名無しさん:03/01/26 11:29
すんません、Jythonでswingのウィジェットに日本語出したい場合どうすればいいですか?
Javaって日本だいじょぶだと思ったんでこれ使ってみようと思ったんだけど。。。
334名称未設定:03/01/26 22:05
>>333
普通にJavaの流儀でできるはずです。
>>332
そうだったんですか、ありがとうございます。
そんなこと言ったら、全部XXXだらけになっちゃう…。

ますますソースが見にくくなる

さらに、ゴミソースになる。
336名無しさん:03/01/27 14:20
すんません、Javaの流儀ってしりません。。。
pythonスレが3つ同時進行ってのはどうにかなんないのか。
1つより3つのほうがいいだろ。
そうか?w
340名称未設定:03/01/28 06:38
>>336
jythonはjavaしってる人がpythonうまく利用するための道具。
別にTkinterなら日本語問題ないし。
なぜにjavaしらずにjythonなの?
341デフォルトの名無しさん:03/01/28 09:41
逆にPythonからJava(特にGUI回り)に入って見よーと思って。
それにJythonならjarファイルにしてJVMのあるとこに持ってけるんでしょ?
>>341
おまえウザすぎ。
もう来るな。
>>341
俺は気にしないから 342 は無視しとけ。
C++ 用のSIGはあるのに、 C 用のSIGはないのですか?
そこそこ需要があると思うのに。
>>344
SIGってなぁに?
>>345
> SIGってなぁに?
http://www.python.org/sigs/
347デフォルトの名無しさん:03/01/29 00:57
改行文字をはさんだ正規表現にマッチさせたいときはどうすればいいのですか?
<a href ... とかのタグで、複数行にまたがっている場合があるので。
>>348
改行文字は正規表現 \n にマッチする。普通に [ \t\n]* とか書けば良い。
ただしデフォルトでは . にはマッチしない。DOTALL モードにすればOK。
>>> re.match("<a>(.*)</a>", "<a>spam\nspam</a>") is None
1
>>> re.match("<a>(.*)</a>", "<a>spam\nspam</a>", re.DOTALL).group(1)
'spam\nspam'
詳しくは http://www.python.org/doc/current/lib/re-syntax.html を参照。

ちなみに漏れなら自力で HTML を字句解析したりせずに htmllib を使う。
>>> import htmllib,formatter
>>> parser=htmllib.HTMLParser(formatter.NullFormatter())
>>> parser.feed("""<A
... href="http://www.python.org/"
... >Python Home Page</A>
... """)
>>> parser.anchorlist
['http://www.python.org/']
>>>
KittyWalkのサイトがすっからかんなのは、辞めてしまわれたからなのでつか?
>>350
そんなこと無いよ。
352名称未設定:03/01/29 22:13
>>341
それはむずかしい。
JavaのGUI(swing,awt)は癖があって、むちゃくちゃ設計きたない。
JavaでGUI勉強する場合は
http://www.beanshell.org/
とか利用した方が楽。

>JythonならjarファイルにしてJVMのあるとこに持ってけるんでしょ?

もっていける。ちゃんと互換性あって動作するから便利。
r"正規表現"ってフツーの"正規表現"と何が違うんですか?
>>353
r"" (raw string) は正規表現というよりはむしろ Python の文字列表現の一つ。
普通の文字列とは違ってバックスラッシュが通常の文字の扱いになる。
バックスラッシュが自動的にエスケープされる、と言ってもいい。
>>> r"\n"
'\\n'
>>> len(r"\n")
2
>>> r"\n" == "\\n"
1
正規表現ではエスケープされたバックスラッシュをたくさん書く必要がある場合が
あるので raw string が便利というわけ。r"""\n""" や ur"\n" という書き方も可。
>>349
サンクスコ

formatter の使い方が(ライブラリ・リファランスをよんでも)今ひとつ分からないけど、
もうちょっと勉強してみます。

HTMLParser はなんとか使えそうです。
356349:03/01/30 04:40
>>355
漏れも最初はhtmllibとformatterの使い方がよく分からなかった。
納得できたときは「オブジェクト指向ってスゲェ!」と感動したものだよ(w
典型的な使い方を挙げるからソースを読んで動作を追いかけてみるといい。

>>> import StringIO, urllib, htmllib, formatter
>>> ofile = StringIO.StringIO()
>>> ifile = urllib.urlopen("http://www.python.org/")
>>> parser = htmllib.HTMLParser(formatter.AbstractFormatter(formatter.DumbWriter(ofile)))
>>> parser.feed(ifile.read())
>>> parser.close()
>>> ifile.close()
>>> ofile.seek(0)
>>> print ofile.read()

HTMLParserはHTMLの字句解析を担当する。AbstractFormatterはスタックを
使って現在のフォントや<B>, <I>などの文字修飾を管理する。DumbWriterは
出力系 (上の例だとファイルオブジェクト) を管理する。インスタンス化
するときの書き方が示すとおり、これら三つのクラスは入れ子になっていて
ParserにfeedされたデータがFormatterで整形されてWriterのところに降りて
くるようになっている。

実際には、整形方法や出力系を変更するためにFormatterとWriterをそれぞれ
継承して必要なメソッドを適宜オーバーライドする。例えば、上の例では
リンクに番号が振られるようになっているけどそれを抑制したり、出力系を
ファイルではなくGUIライブラリのキャンバスのようなものに変えたりするのに
クラスの継承 (部分的な書き換え) が必要なる。
http://www.pygame.org/
pygame 見れないんだけど?
>>357
問題なく見れるよ。
>>357
回線切れてるんじゃないの?
この蛇が咥えてるのってSNESのコントローラ?
メガドライブ
Linux 初心者なのですけど、 python に 1.5.2, python2 に 2.2.2 が入っているのですが、
さらに、2.3 をインストールして、古いバージョンと共存させるにはどうすれば好いのですか?
つかっているのは、 Red Hat です。
363名称未設定:03/02/01 01:14
>>362
rpmでいれないでsrpmやtarからコンパイルする。
その時prefix optionで/opt以下とかに指定していれてやればいい。

漏れのマシーンは
/opt/python15 に1.5.2
/opt/python22 に2.2.2
/opt/python23 に2.3
とかになっていたりする。
>>363
configure をどういうふうにすればいいか、書いてもらえますか?
実質的に、python しかつかえない厨房なもので、、、

とりあえず、opt が /opt にあるのは確認しました(空でしたけど)
365名称未設定:03/02/01 10:37
>>364
./configure --help
で説明よんでみて。英語だけど。
$ ls /opt/python23/
bin include lib man
というふうにインストールされますた。
これで無事成功なのかな?
Good job!
368名称未設定:03/02/02 15:11
>>366
成功ですね。

好みですが、/opt/python23/bin/python とかあると思うので、これを
python23とかの名前でパスの通った所にlnしとくといいかもしれない。
python3(w で起動するように、リンクしておきますた。

もうひとつ質問です。
html 形式のライブラリー一覧はどこにあるのですか?
あれがないと、はげしく作業しにくいのですが。
370名称未設定:03/02/03 07:40
>>369
ソースから作成するならDocフォルダ内でMakeすれば作成されるはず。
html作成するにはもしかしたらLaTeXいるかもしれない。
とりあえず同梱のテキスト読んでみてください。
>>369
pydoc を使ってみてはどうですか?
単にpydocで使い方が出ます。
373名称未設定:03/02/03 21:01
>>372
まだ2.2.2だし。そのドキュメントは。
374372:03/02/03 22:04
>>373
>>369さんは2.3のHTMLドキュメントとは言ってませんよ? (そうなのかもしれないけど)
別解:Red Hat Linux の CD-ROM に入っている以下の RPM パケジを rpm -ivh する。
python-docs-1.5.2-38.i386.rpm
python2-docs-2.2-16.i386.rpm
375372:03/02/03 22:12
事故レス。
>>374のRPMパケジにはHTMLファイルは入ってなかった。勘違いスマソ。
>>372のページからtarballなりzipなりをダウソするのが一番簡単だと思われ。
2.2 のものをローカルにおいて、 2.3 のはオンラインですますことにしました。
http://www.python.org/dev/doc/devel/
結局、普通に Python をダウンロードしても、そのなかにはふくまれていないと云う事ですね。
377名称未設定:03/02/04 06:25
>>376
LaTeXからHTML作成してるからソースの中にはHTMLないです。
378名称未設定:03/02/04 07:40
>>376
あとは
pydoc -g
する事でGUIとHTTPserver起動するのでリファレンスみれる。
import pydoc
help(モジュール名)

とかでもヘルプでる。
Python ヲタのメインの使用言語はなに?
Java?
C++?
C?
PHP?

普段から Python?
>>379
漏れは普段から Python。他のプログラミング言語は滅多に使わなくなってしまった。
たまに C で拡張モジュールを書いたり簡単なプロトタイプをしたりすることはある。
あと個人的に Java は結構好き。
381162:03/02/05 21:28
ちょっと反応が遅れたけど KittyWalk 0.0.11 がリリースされますた。
ホメパゲ移転先 → http://kittywalk.sourceforge.jp/

漏れの環境 (赤帽7.3+モナフォント) だとレス番号をマウスでポイント
したときにバルーンがポップアップするのに10秒ぐらいかかります。
モナフォントはビットマップフォントなのでサイズを0.8倍して使うと
フォントが縮小されてギザギザになる上に非常に重くなるみたいでつ。

バルーンウィンドウを destroy しないで再利用するようにすると
遅延は初回のポップアップの時だけになりますた。この手の効率化は
他のところでも使えるかも知れず。ただし無闇な効率化は絶対裏目に
出るのでほどほどに・・・(^^;

むしろバルーンフォントも config ファイルで指定することにした方が
良いかも。
382162 (続き):03/02/05 21:28
class AdvancedRenderer(object):
  def __init__(self, textwidget):
     :
    font = tkFont.Font(self._text, self._text["font"])
    size = font.cget("size")
    font.config(size=int(float(size)*0.8))
    self._balloon = Tk.Toplevel(self._text)
    self._balloon.withdraw()
    self._balloon.overrideredirect(True)
    self._balloon.label = Tk.Label(self._balloon,
                    justify=Tk.LEFT,
                    bg="#ffffcc",
                    font=font,
                    borderwidth=1,
                    relief=Tk.RAISED)
    self._balloon.label.pack()

  def _on_cite(self, event):
     :
    self._balloon.label["text"] = message.rstrip("\n")
    x, y = event.x_root+8, event.y_root-self._balloon.label.winfo_reqheight()
    if y<0: y=0
    self._balloon.geometry("+%d+%d" % (x, y))
    self._balloon.deiconify()
    self._balloon.lift()

  def _off_cite(self, event):
    self._text.config(cursor="")
    self._balloon.withdraw()
383162:03/02/05 22:04
ところでアーカイブ内のディレクトリ名の日付が 20020203 ですね(w
毎回手動で配布用のアーカイブファイルを作っているのでしょうか。
パッケージングに Python 標準の distutils を使うといいかも。
初心者にあのデスクトップリファレンス勧めるセンスってどうよ?
http://www.freeml.com/message/[email protected]/0000041
>>384
はじめてのPython、人気無いね。。
各章末の「落とし穴」シリーズは結構良いと思ったけど。

テクニカルリファレンスが役に立つっつぅのは同意。

個人的には翻訳じゃなく日本人が書いた
CGI/Python/JapaneseCodecsな本があるとイイと思う。
ごついのじゃなくても、perlの入門本にありがちな感じの、
一冊読めば掲示板と占いページくらいは作れますみたいな
ライトなノリのやつ。
>>385
漏れはperl厨房なんですが、1週間くらい前から学習をスタートしまして、大体仕様は
分かったところです。
初めてのpythonを図書館で借りて読んでたんですが、あまりに冗長すぎる文章と
下手な翻訳に辟易していたところ、図書館で

PerlユーザのためのPython移行ガイド 4894714183

というのをハケーンして借りてみますた。これは素晴らしい。まさにPerl厨房のため
の本です。リファレンスもわりとしっかりしているので、コピーして資料化しますた。

Pythonはバイトコードを保存しておけるというのがいいですね。これはrubyにもない
んじゃないかな? スクリプト言語なのに最適化オプションがあるのには驚きますた。
>>386 == >>162 ?
本当に一週間?
>>387
このスレに書きこむのは初めてですよ。初めてのPerlの返却期限が2/11ですから、
およそ1週間です。
>>386
Python厨房としては、逆に君に聞きたい。
その本は PythonユーザのためのPerl移行ガイド としても使える?(w
>>389
それは無理ぽだと思います。本文中にはPython => Perlの対応表、巻末にはPerl => Py
thonの対応表(メソッドやビルトイン関数などの)が載っていますが、文章がPerlを分か
っているものとして書かれていますので、何の解説もありません。

というか、この本を読んでPerlがPythonにリードしているのってCGIモジュールくらい
だな、と思いますたよ。それは移行というより退行かと。
Perlのキモイ部分がことごとく直っていますからね。自分が井の中の蛙だと気づきま
すたよ。やはり真のPGは可能なかぎりの言語を経験しておくべきですね。
>>390
> >>389
> それは無理ぽだと思います。
やっぱダメぽですか。でも、

> やはり真のPGは可能なかぎりの言語を経験しておくべきですね。
という意味で、普及度の高いPerlも経験したかったのですが。

# 窓使いがいきなりPythonやったんで、UNIXの流儀がワカンネー
> # 窓使いがいきなりPythonやったんで、UNIXの流儀がワカンネー
例えば?

# sage 進行が続いている、、、
>>392
例えば・・・は言いづらい。
なんか曖昧模糊とした「UNIXらしさ」が、Windowsらしさとは異質な光を放っている感じで。

はぢめて触ったときは、知らない言葉のオンパレードだったし、操作のしかたはちっとも分からんかったし。

# スレ違いにつき、自分語りはこれにて。
WindowsオンリーのPythonプログラマはうじゃうじゃいるぞ。
だいたいPythonが最初開発されたのはMac上じゃなかったか?
ちなみにPythonバイトコードの最適化というのは単にサイズの最適化。
変わるのはモジュールのロード時間だけで、実行スピードは同じ。
真のプログラマはPGなどという業務系システム業界だけの業界用語は使わない。
>>394
それは知りませんでした。

>>395
すいません、もうしません。

UNIXらしさというのはPerlのキモイ記号じゃなくて、stdin/outとファイルディスク
リプタを使うかどうかということにあるんじゃないかと思います。
漏れはUNIXのコンソールアプリしか書けない厨房なんですが、ほとんど関数単位で
スクリプトとかバイナリを分け、上記のファイルディスクリプタでやりとりします。
ですからプログラムの中でファイルをオープンすることはほとんどありません。
データが分岐するときも3番以降のディスクリプタから出します。
それで別途実行用のシェルスクリプトにリダイレクト記号とともにファイル名を
書くわけです。
厨房なんでWindowsのGUIアプリなんてすごいものは書けないのでよく知らないん
ですが、Windowsだと全部1つのバイナリでこなすんですよね。
UNIXらしさ云々は何が言いたいのかよくわからんが、変なことやってるようだな。
とりあえず自分なりに考えてプログラムを書くという習慣は身に付いてるようだから、
本を何冊も読むより、人のソースみて実践であれこれ試した方が早いぞ。
GUIアプリなんて恐くない。まずToolsディレクトリの中を見れ。
くだらない質問かもしれませんけど、
try:
finally:
はどういうときにつかえばいいのですか?
tmpファイルを消したりソケット閉じたりするとき?
使ったこと無いから良くわからん。
try:main()
finally:AToShiMaTsu()
みたいな感じではないだろうか。
>>396
>>397

ソースのサンプルなら、Useless Pythonがオススメ。
http://www.uselesspython.com/
JythonってPython(Jython)とJavaのソース混在でも桶ーなのか?
402名称未設定:03/02/11 01:54
>>401
ちょっと違うかも。
Jythonは直接JavaのClass利用できる。
コンパイルすればJava Class作成できるからJavaからも利用可能。
ってかんじ。
一つのソースに混在はできないはず。
オライリーから出ているPythonのデスクトップリファレンスを買おうと
思ってるんですが、買う価値ありますか?
厨房であまり、文法を忘れがちなので。
404403:03/02/11 13:04
× 厨房であまり、文法忘れがちなので。
○ 厨房で文法忘れがちなので。

間違えました。すみません。
>>404
日本語の本が大前提ですか?
406403:03/02/11 18:15
>>405
できれば日本語がいいですが、英語でもいいです。
407403:03/02/11 19:28
2ndと最初のでは全然違いますね。なんで?
# 購入予定?
http://www.amazon.co.jp/exec/obidos/ASIN/4900900966/
Pythonデスクトップリファレンス by マーク ルッツ
価格: \900
-
# リファレンスがほしいなら、こっちはどう?
http://www.amazon.co.jp/exec/obidos/ASIN/4894712210/
Pythonテクニカルリファレンス―言語仕様とライブラリ by デビッド・M. ビーズリー
価格:¥3,800
-
# ただし、英語のほうは 2nd ed. もでている。
# 日本語は1.5 ベースだと思うので、できれば新しいほうを購入したほうがいいと思う。
# リファレンスだから、特に高度な英語力も要らないし。
Python Essential Reference (2nd Edition) by David M. Beazley
List Price: $34.99
http://www.amazon.com/exec/obidos/ASIN/0735710910/
-
# 新しいもの好きの僕としては、オススメは次の一冊。
# まだ発売されていないけど、かなり期待できると思われ。
# nutshell といいつつ、ぜんぜん薄くないのはご愛嬌で (^^;
Python in a Nutshell by Alex Martelli
List Price: $34.95
http://www.amazon.com/exec/obidos/tg/detail/-/0596001886/
409162:03/02/13 07:55
なんか反応無いなと思ってたら150さんカキコできなくなってたのね。
では、例によって KittyWalk 0.0.12 のバグ報告など。

(1) datディレクトリにsubject.txtが無い場合、板一覧の板タイトルを
2回ダブルクリックしないとスレ一覧の取得に行かない。
(1回目のダブルクリックではスレ一覧窓の板名だけが更新される)

(2) スレ一覧窓のスレタイトルを連続ダブルクリックをすると書き込みが
重複する (書き込み数が実際の2倍になったり3倍になったりする)。
410162 (続き):03/02/13 07:56
(3) 書き込み時に例外が起こる。(Python 2.3a1)
Unhandled exception in thread:
Traceback (most recent call last):
File "gui.py", line 425, in <lambda>
message=self.message()),
File "bbs.py", line 324, in post
headers = {"Content-type": "application/x-www-form-urlencoded",
File "cookie.py", line 18, in get
if db.has_key(host):
File "/opt/Python-2.3a1/lib/python2.3/bsddb/__init__.py", line 112, in has_key
return self.db.has_key(key)
TypeError: String or Integer object expected for key, unicode found

ホスト名が Unicode だったら ASCII に直すようにしてみたらオケですた。
cookie.py:

def set(host, val):
  if type(host) == type(u""):
    host = host.encode("ascii")

def get(host):
  if type(host) == type(u""):
    host = host.encode("ascii")
411Gilliam:03/02/14 12:20
「Python で学ぶプログラム作法」って本で勉強してるんですけど、
章の終わり毎の演習問題でいつも頭を悩ませるものの、
模範解答とかついて無くて困ってます。
自分の書いたのがどれだけいいのか悪いのか・・
しょうもない簡単なソースに解説の付いたいいサイト無いっすか?
>>411
> 「Python で学ぶプログラム作法」って本で勉強してるんですけど、
> 章の終わり毎の演習問題でいつも頭を悩ませるものの、
> 模範解答とかついて無くて困ってます。
> 自分の書いたのがどれだけいいのか悪いのか・・

ここに貼り付けて採点してもらう。
413403:03/02/14 18:09
>Gilliam
ぜひ、問題文もかいてね〜
414Gil(411):03/02/15 12:31
マジっすか!?
かなりしょーもない問題ですけど、お言葉に甘えます。
お題“ループと条件分岐を組み合わせて 50より小さい全ての素数を表示するプログラムを作りなさい”
for i in range (1, 51):
if i == 1:
print i
else:
j = i - 1
l = 0
for k in range(2, j):
r = i % k
if r == 0:
l = l + 1
if l == 0:
print i

python だとこういう風に書くよ、とか教えてください。
よろしくお願い島っす。
>>414
インデントを全角スペースとかに変換しなさい。

取り合えず、 1 は素数ではありません。
416414:03/02/15 12:45
すんまそん。1が素数ではないというご指摘も修正しました。

for i in range (1, 51):
 if i == 1:
  continue
 else:
  j = i - 1
  l = 0
  for k in range(2, j):
   r = i % k
   if r == 0:
    l = l + 1
  if l == 0:
   print i
417デフォルトの名無しさん:03/02/15 13:51
エラトステネスのふるいを配列を使わずに再帰だけで書くってできるかしら?
>>414
うざい。2度と来るな。
419デフォルトの名無しさん:03/02/15 14:25
>>418
お前が無

>>416
こんなんどう

def primes():
  for i in range(2, 51):
    for k in range(2, i-1):
      if (i % k) == 0:
        break
    else:
      print i
>>416 の l のあたりは何をやってるの?
>>419 がすっきりしてていいと思われ。

2 は素数と認めて、 3 以上の奇数だけをチェックするのもありだと思うけど。
たとえば、
range(3, 51, 2):
のようにして。

そうすれば、余りを調べる
range(2, i-1):
の部分ももっとすっきりかけるようになるし。
かなりへぼいけど俺も書いてみた。
penII 233 * 192MB のWin98で結構さくさく走って逆にびっくりしました。
でわお目汚しを。
def sosu():
 yield 2
 yield 3
 i = 4
 while 1:
  for j in sosu():
   if i % j == 0:break
   if j*j > i :
    yield i
    break
  i = i + 1
def printsosu(e):
 for s in sosu():
  if s > e:return
  else:print s
printsosu(50)

最初に2と3をyieldしてるのは(i % 6)によってループを
省こうとしてた名残です。(十分早いのでやらなかった)
アドバイスきぼんぬ。
422419:03/02/15 18:34
>>416
何もコメントしてなかったのでちょっとコメントしてみるす。
まず i==1 のチェックは無意味だよね。
それとcontinueしちゃってるからelse:は特に必要じゃない。
そういうスタイル嫌う人もいるけど無駄なelse(とインデント)がない方がおいらは好き。
j=i-1で変数jを導入してるけど、jの使い方から考えるとこれは無駄。
あとは l の使い方も無駄だね。
423デフォルトの名無しさん:03/02/15 20:18
Gilは帰れ。
424デフォルトの名無しさん:03/02/16 00:39
>>421
よくできてる。すごい。
でも yield 3 はいらないよね。i=3 から始めればよい。

それと printsosu() は(機能は等価ではないけど)こんなふうにもかける:
for (i,j) in zip(range(20),sosu()):
 print j
Gilは2度と来るなヴォケ
426名称未設定:03/02/16 02:12
yieldとか利用しないで書いてみた。

def subprime(n, m):
 if ((m * m) > n):
  return True
 elif ((n % m) == 0):
  return False
 else:
  return subprime(n, (m + 1))

def prime(x):
 if (abs(x) > 1):
  return subprime((abs(x)), 2)
 else:
  return False

for i in range(0, 50):
 if (prime(i) == 1):
  print i
427名称未設定:03/02/16 02:18
def prime(x):
 if (abs(x) > 1):


def prime(x):
 if ((type(x) == int) and (abs(x) > 1)):

にした方が汎用性よいかな。
428デフォルトの名無しさん:03/02/17 00:51
Jythonnなんだけど、CかC++で拡張モジュール作ったりできないの?
本とか調べてもそういう話ナイからだめっぽいけど。。。
PythonのGUIライブラリって名に使っていいかわかんないから
JythonでSWINGでも使おうと思うんだけど、
CやC++の拡張モジュール使えないと速さが。。。
429名称未設定:03/02/17 06:39
>>428
Jythonの場合はJavaと同じようにCの拡張モジュール作成できる。
JNI利用して。
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/jni/
430名称未設定:03/02/17 07:12
>>428
あとSwing利用するとどうやっても遅い。
もし、業務でないならばSWTを利用すればよい。
http://www3.vis.ne.jp/~asaki/java/eclipse/swt.html

配布する予定ならまだSWTはよくないけど。
431428:03/02/18 00:09
ありがd。
とりあえずJNI調べてみる。
SWINGは情報多いからとりあえずこっちやってみる。
>>431
だからおまえは氏ね
2度と来るな
翻訳中のライブラリを html 版でもダウンロードできるようにしてほしい、
と言ってみるテスト。
ここにあるじゃん。
http://www.gembook.jp/html/tmp/doc_jp/lib/
>>434
いや、だからこれをまとめてダウンロードできるようにしてほしいということ。
>>435
そんなもん、urllib使って自分でなんとかしる。
何か不便に思うことがあったら
「わーい、プログラミングのネタみっけ!」
と喜ぶのがプログラマというものだ。
えらい!
律動した!
lambdaはプログラムをよみにくくするから
素晴らしいpythonの世界にふさわしくない


・・・って本当?
>>438
lambda に限らず、特定言語でしか使われていない機能はやはり読みにくくなるから、
いかがなものかと思う。

うまく使えば、コードがすっきりするのは確かでしょうけど、その代償として、
一部の人以外に読みにくくなってしまうのでは、使う意味がない(できるだけ避けるべき)と思う。

lambda のほかにも、reduce とかね。
list comprehension もかなりきわどい位置にあると思う。
特定言語でしか使われていない

読みにくい

にどういう関連があるの?

たとえばインデントによるブロック構造は
特定言語でしか使われていないけど、
これも読みにくいの?
lambdaは式しか使えないから、
式と文に区別があるというpythonの欠点を
実感させてしまう罠
>>439
> >>438
> lambda に限らず、特定言語でしか使われていない機能はやはり読みにくくなるから、
> いかがなものかと思う。

あほですか……。
443デフォルトの名無しさん:03/02/19 12:13
> 特定言語でしか使われていない機能はやはり読みにくくなるから、

→特定言語でしか使われていない機能はやはり (他言語からきた初心者にとっては) 読みにくくなるから、

とすべきだったね。
しかし慣れないものが読みにくいのはあたりまえ。

でも、たしかに lambda は長ったらしくなりがちで
読みづらくなりやすいと思うことがある。
たとえばこんなの書くとき、どうする?

'-'.join(map(lambda m: '(%s,%s)' % (m.getprop(1), m.next.getid()), a.expand()))

式の途中で改行する? それとも lambda を関数として def する?
444デフォルトの名無しさん:03/02/20 16:34
Python 2.3a2 リリース age
素朴な疑問なのだけど、 Pythonでワンライナーをやったらどんなかんじになる?
perl なんかだと、シェルからいろいろファイル操作を出来たりして、有名だけど、
Python だとそのあたりはどうなの?
>>445
あーぼくもちょうど昨日そんなこと考えてました。
たぶんふつうは python ではワンライナーはやらないと思う。
1行だとインデントできないし。

まあ、オレはそれでもやりたかったので、
1行書式からインデントしたスクリプトを自動生成して
python に食わせるヘルパールーチンを書いたけど。
あんまり向いてないんじゃない?
import文とprint文をセミコロンで繋げれば
ある程度のことはできるかもしれないけど。
>>447
import はさすがに無理がありすぎでしょ(w
僕が考えているのは、 sed とか awk とかでやるような操作のことです。
>>448
>sed,awk
sysとreを使わないで書くんですか?
import sys, re ; print re.hoge("regex","replace",sys.stdin.read())
とかやるのかと思ったけど。。
445は釣りじゃなかったのか?
>>451
ぴょん?
super の使い方で質問です。

class A:
   def meth(self):
       print "hello world"

class B(A):
   def meth(self):
       super(B, self).meth()

b = B()
b.meth()    # 本当は "hello world" と表示してほしい。

というのをやろうとしているのですが、
TypeError: super() argument 1 must be type, not class
とエラーがでてうまくいきません。

どうすれば期待通りに動作するようになりますか?
Python のバージョンは 2.2.2 です。
--------------------------
class A:
def meth(self):
print "hello world"

class B(A):
def meth(self):
A.meth(self)

b = B()
b.meth()
------------------------------
↑多少面倒でもいちいちこう書く方が個人的にはオススメ

class A(object):
と言う方法も有るけど。
っっとその前に。
上記の例だけだと
class B(A):pass
だけで望みの動作になるけど
そう言う話をしてるんじゃないよね?
気に障ったらゴメンナサイ。念の為ですんで。
>>451
いちおうドキュメント書いたので、こっちのリンクを貼ってくださいな。
http://www.unixuser.org/~euske/pyone/index.html
^= というコードを見かけたのですけど、Python Library Referenceのどこに説明が載っていますか?
^ は C と同じ xor をとる演算子です。
最近はXORじゃなくてEORと呼ぶらしい。
http://naruzo.cside1.com/html/online/keisan/keisan8.htm
昔から言うよ。例えばMC68000のニーモニックもEOR。
461403:03/02/25 15:02
>>456
日本人が作ったんだから、日本語でも書いてほしい。
てすてすてす
>>461
この程度の英語は読めるようにしておいたほうが、将来のためになりますよ。
>>461
てきとーに書いたっす。
ttp://www.unixuser.org/~euske/pyone/index-j.html
>>464
ありがとうございます。
Pygameのドキュメントもがんばってください。
anygui使ってます。

from anygui import*
app = Application
win = Window(title='opao',size=(300,200))
app.add(win)
app.run()

(x,y)=(300,200)のwindowを表示させるだけのものです。
xyPythonとかのソースはどうなりますか?
app = Application()だ
wxPythonだ
PyGTK (0.6.x) のバヤイ:

import gtk
win = gtk.GtkWindow()
win.set_usize(300, 200)
win.show()
gtk.mainloop()
Tkinter のバヤイ:

import Tkinter
app = Tkinter.Tk()
frame = Tkinter.Frame(app, width=300, height=200)
frame.pack()
app.mainloop()
>467-470
感謝。今日の俺は冴えてる。
こんな簡単に作れるならDelfiとかVC.Netは必要ないですね。

python(プログラミング)は以下のページをきっかけに始めました。
http://www-6.ibm.com/jp/developerworks/linux/020111/j_l-anygui.html
と、windowを表示させることしか出来ないオレが言ってみるテスt
473デフォルトの名無しさん:03/02/27 08:58
でも結局どのツールキットを使えばいいかわかんない罠。
anyguiってまだまだだし。
474bloom:03/02/27 09:10
GMT との時差を計算するのはどうするのがいちばん簡単ですか?

Thu, 16 May 2002 16:56:11 +0900 (JST)

こういう表示をしたいのですけど、うまい方法がよく分かりません。
476デフォルトの名無しさん:03/02/27 11:31
time.asctime(time.localtime()) + (' %04d (%s)' % (-time.timezone/36., time.tzname[0]))

こんなかんじ?
こまいとこはがんばって。
>>476
timezoneを使うことでうまくいきそうです。
file オブジェクトの tell() ってなんなんでしょう?

stdio's ftell() と同様のようですが、C(?)使いではないのでよく分かりません。

ファイルを開いて一行ずつ呼んで、文字数と tell() の返す値を比べたりしているのですが、
いきなりマイナスの値を返したり、文字数と必ずしも一致した値だけ tell() の値は増えてくれなかったりして、
いまひとつメカニズムが理解できずにいます。
tell() は現在のファイルの読み取り位置 (ファイルの先頭からのバイト数) を得る関数だよ。
一旦ファイルを走査して必要なデータの開始位置と長さを覚えておき、
必要に応じて seek() でジャンプして適当な長さだけ read() すれば
ファイルの任意の位置から効率的にデータを読み出すことができる。

tell() がマイナス値を返すというのは変だね。
読み出した文字数と tell() の増分が合わないというのもおかしい。
Windows だと改行文字の関係でつじつまが合わなくなることがあるかも知れない。
OS は何?
昨日ははまりにはまった tell() ですけど、昨夜からは問題なく非負整数を返すようになってます。
だけど、昨日は確かに、 -47 とかっていう負の値を返していたんですよね、、、

> Windows だと改行文字の関係でつじつまが合わなくなることがあるかも知れない。
> OS は何?
Windows 2000 です。
改行文字は2 と扱われるみたいです。

本当は、 tell,seek,read でいろいろ移動したいのですが、まだうまく扱えません。
(ねらいどおりの位置から読んでくれない^^:)
もうちょっとがんばってみます。
Python 経由で Lisp(Scheme)とか Haskell にはまった人っている?
最近、微妙にHaskell に惹かれている。
をを、漏れも同じ流れだ。
俺はPython 経由で Lisp(Scheme)、 Haskell を通過して
Ocaml、Stackless Python、Limboに惹かれてる。
>481
最近schemeが楽しいでつ
今度 Python から少し浮気をしてスクリプト言語でないものもやってみようと思っているんですけど、
何がオススメですか?
C か Java にしようと思っているのですけど、ほかに何かお勧めはあるでしょうか?

型宣言をするタイプの言語を考えてます。
C++はどう?
templateにはまると思うニョロ。

template 統合スレとか参考になるかと。
487デフォルトの名無しさん:03/03/03 21:41
PerlでなくPythonを選んだあなたには
Eiffelをお勧めします☆
>>486
C++ はかなり難しいと聞きますが、 C の経験なしでも大丈夫なんでしょうか?

>>487
メジャーな言語もやってみたいんです。
>>488
CあがりのC++プログラマは糞。
C++から勉強しましょう。
C++よりJavaのほうがいいと思うけどなあ。
ライブラリ充実してるし。
491名称未設定:03/03/04 00:40
>>488
ちょっとやるにはC++は巨大すぎる気がする。
Javaでよいのでは。

>>489
それは極端。でもCと同じ感覚でC++やるとおかしな事になるのは確かですね。
templateを始めとしたgeneric programmingは知っておく価値があると思う。
C++, Eiffel, 次期Java のどれかに汁!
C をやるくらいなら C++ にしなさい、ということですね?

generic programming はまったくイメージが湧かないので、Java にしてみます。
C++ は有能なプログラマーにとっても、極めるのが難しいみたいですし。
つうか generic って静的な型付け言語だから意味あるわけでしょ?
Python みたいな動的な型に慣れちゃうと、
べつにたいして面白くもないと思う。
社会の趨勢を無視して Python へやって来た君達だろ?
それにふさわしい次の言語選択があっていいんじゃないか?
そうだよ。Prolog だよ。

Prologスレで待ってるぜ!
:-
!
498デフォルトの名無しさん:03/03/07 02:47
どっちを使えばいいんだ
Python !!
KittyWalk を試してみましたが、立ち上がりません。
どうして?
環境 Windows98SE + PyJUG の Python2.2.2jp + Pmw1.1

----- ここから -----
C:\python22jp\Lib\site-packages\kittywalk-0.0.13>python kittywalk.py
Traceback (most recent call last):
 File "kittywalk.py", line 12, in ?
  main()
 File "kittywalk.py", line 8, in main
  gui = GUI(bbs)
 File "C:\python22jp\Lib\site-packages\kittywalk-0.0.13\gui.py", line 62, in __init__
  self.geometry(CONFIG.get("Window","Geometry"))
 File "C:\PYTHON22JP\lib\lib-tk\Tkinter.py", line 1358, in wm_geometry
  return self.tk.call('wm', 'geometry', self._w, newGeometry)
TclError: bad geometry specifier "640x480+0x0"
----- ここまで -----

tcl/tk の DLL は新しいの入れてあります。
bad geometry specifier ってどういうこと?
501162:03/03/07 05:40
>>500
設定ファイルの初期化ルーチンにバグがあるみたい。
config.py の24行目を次のように書き換えてみて。
× "Geometry": "640x480+0x0",
○ "Geometry": "640x480+0+0",

インストールしたての状態でないと再現しない典型的なバグだと思う。

ところで遅ればせながら 0.0.13 を使ってみたわけだけど
率直に言ってかなり悪くなった気がする・・・(´・ω・`)ショボン
・800x600の画面で使ってる漏れには Reload ボタンと Delete ボタンが邪魔。
・datが無い状態でスレタイをダブルクリックしても空のタブしか表示されない。
 もう一度ダブルクリックするとようやくスレ内容を取得し始める。これ不便。
・スレ内容のダウンロード中とか描画中とかのメッセージが出なくなった。
 ついつい何度もスレタイをダブルクリックしてしまう罠。
・スレ内容の窓に入力フォーカスが移らないのでキーボードで操作できない。
・スレ内容の窓で右クリックメニューはどこ行った?
 ここに Reload と Delete があればボタンは要らない気がする。
・メニューバーの「表示」の中身がないのは何故?

漏れ的には 0.0.12 の操作感が好き。非常に細かいことだけど、
こういうところが GUI の操作感を決めるファクターだと思う。
502162:03/03/07 06:04
んー待てよ。タブブラウザになったのはまあいいとして、
必ず新しいタブを開くというのが具合悪い気がする。
一々タブを閉じないといけないのが面倒臭い (今までは閉じる操作は要らなかった)。
スレ内容を表示するときに
(a) 新しいタブを開く
(b) 既存のタブを再利用する
のどちらかを選べるとイイな。一方をデフォルトとして設定できるとなおイイ。
ReloadボタンとDeleteボタンはあってもイイ気がしてきた。
しばらく0.0.12と0.0.13を使い比べてみるよ。
出来た。サンクス>>162
504デフォルトの名無しさん:03/03/07 09:46
Python初心者です。
Oracleデータベースから日付型のデータを取得したら

「Mon Mar 01 00:00:00 2004」

というふうに取れました。これを

「04.03.01」

と直したいのですが、どなたか教えてください。
お願いします。
filter に使える関数は引数がひとつのもののみなのですか?
もう一個、別の引数も使えるとうれしいのですけど。
506デフォルトの名無しさん:03/03/07 10:52
しかし、よくこんなけったいな言語作ったよな。

これってさ、インデントしまくって、折り返したくなったらどうすんの?

あと、>>414みたいなインデント失敗したコードって、
pythonユーザは読めるの?
>>506

>これってさ、インデントしまくって、折り返したくなったらどうすんの?

その欲求は通りません。
単に行末が長くなります。

>pythonユーザは読めるの?

読めません。
508150 ◆ismFPlKHko :03/03/07 12:09
>>501
デバグありがとうございます。
162さんのご意見や、他のブラウザを使ってみて、
GUI デザインを勉強してみます。
>>506
一応マジレスしとくと、
> これってさ、インデントしまくって、折り返したくなったらどうすんの?
行末に \ を入れることで次の行に折り返すことができる。
また、リストや辞書、関数の引数リストなどの括弧の間では自由に改行できる。

人にもよるだろうが個人的にはインデントしまくって折り返しが必要になることはあまりない。
括弧の間の改行はよく使うが行末の \ による折り返しは滅多に使わない。
>>504
サラリと書いてみた。こんなもんでどーでしょ。

import re

WEEKDAY = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
MONTH = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]

re_date = re.compile(r"([A-Z][a-z][a-z]) ([A-Z][a-z][a-z]) (\d\d) (\d\d):(\d\d):(\d\d) (\d\d\d\d)")

def convert_date(s):
  match = re_date.match(s)
  if not match:
    raise ValueError, "invalid date format"
  try:
    w = WEEKDAY.index(match.group(1))
  except ValueError:
    raise ValueError, "invalid date format (bad weekday name)"
  try:
    m = MONTH.index(match.group(2)) + 1
  except ValueError:
    raise ValueError, "invalid date format (bad month name)"
  d = int(match.group(3))
  H = int(match.group(4))
  M = int(match.group(5))
  S = int(match.group(6))
  y = int(match.group(7))
  return "%02d.%02d.%02d" % (y % 100, m, d)

s = "Mon Mar 01 00:00:00 2004"
print repr(s)
print repr(convert_date(s))

一応時間や曜日も数値化してあるから return 文をいじれば別の出力も簡単に得られると思う。
>>505
> filter に使える関数は引数がひとつのもののみなのですか?
ひとつのもののみなのです。

>>> print filter.__doc__
filter(function, sequence) -> list

Return a list containing those items of sequence for which function(item)
is true. If function is None, return a list of items that are true.
>>>

> もう一個、別の引数も使えるとうれしいのですけど。
なぜ?
>>512
ちょっと便乗で質問。

python知らないんだけど、この問題ってfilterの関数をインライン定義
できる&変数をレキシカルでアクセスできるなら特に問題ないよね?
pythonもlambdaあるみたいから、
(let ((hoge 〜)(bar 〜))
 (filter (lambda(x) (foo bar x)) seq)) ;
こんな感じで書けるのかな。
インライン定義できなくても、関数オブジェクトやクロージャ渡せば
良い気もするけど。pythonだと普通はどう書くの?
lambdaクロージャで書けるよ。

hoge = 〜
bar = 〜
filter(lambda x: foo(bar, x), seq)
>>513
Python 2.2 以前は、外側のスコープの局所変数を参照するには以下のようなトリックが必要だった。

A-1)
def outer(seq, threshold):
def inner(x, threshold=threshold): # 局所変数を参照するためのトリック
return x < threshold
return filter(inner, seq)
B-1)
def outer(seq, threshold):
return filter(lambda x, threshold=threshold: x < threshold, seq)

Python 2.2 からは nested scopes がデフォルトになっているので次のように書ける。

A-2)
def outer(seq, threshold):
def inner(x):
return x < threshold
return filter(inner, seq)
B-2)
def outer(seq, threshold):
return filter(lambda x: x < threshold, seq)

詳しくは以下のドキュメントを読んでほしい。
http://www.python.org/peps/pep-0227.html
http://www.python.org/doc/current/ref/futures.html
516515:03/03/07 19:43
失礼。タブが消えちゃった。

A-1)
def outer(seq, threshold):
  def inner(x, threshold=threshold): # 局所変数を参照するためのトリック
    return x < threshold
  return filter(inner, seq)

B-1)
def outer(seq, threshold):
  return filter(lambda x, threshold=threshold: x < threshold, seq)

A-2)
def outer(seq, threshold):
  def inner(x):
    return x < threshold
  return filter(inner, seq)

B-2)
def outer(seq, threshold):
  return filter(lambda x: x < threshold, seq)
517500:03/03/07 20:18
>>501=162
ありがとう!! 動きました。すごい!
150氏もがんばって。
518513:03/03/07 20:38
了解です。
やっぱ関数型を意識してますね。
>>508
>>501-502で言いたい放題書いちゃったのでちょっとフォローを。
2ちゃんねるブラウザが乱立してることからも分かるように
万人にとって使いやすいGUIなんてものはあり得ないと思いまつ。
使いやすければ使うし、使いにくければ他のものを使えばいい。
だから、KittyWalkも150さんが「こうだ!」と思った仕様にすれば(・∀・)イイ!と思うです。
みんな同じじゃつまらない。多少とんがってるぐらいがちょうどいい。
多様性は善。
前どっかのスレでやってたけど、
lambda の中で使える 3項演算子みたいなのがあると便利なんだがなあ…。
いつも

map(lambda x: (cond(x) and "true") or "false", elements)

とやるのだけど、ちょっとわかりにくい。
KittyWalk (・∀・)イイ!!
でも、どうやって書き込むの?どこにもそれらしきものが…。
Reload や Delete はメニューバーが空いているから、
ここに入れてしまうってのはどう?


0.0.13、書き込み機能が無くなってるモヨリ。0.0.12にはあった。
523デフォルトの名無しさん:03/03/08 07:36
奇妙な言語のベスト10には入れてやる
524デフォルトの名無しさん:03/03/08 07:53
>>520
lambda に限定なわけじゃないけど、3項演算子をPython にとりいえるかで、激しく議論されているよ。

http://www.python.org/peps/pep-0308.html
PEP: 308
Title: If-then-else expression

http://mail.python.org/pipermail/python-announce-list/2003-March/002083.html
Vote on PEP 308: Ternary Operator
526デフォルトの名無しさん:03/03/08 09:55
だれかweave使ってる?
実行時コンパイルが通らないんだけど、ちゃんと使えてるの、コレ?
527504:03/03/08 10:01
510さんありがとうございました。
ベタ打ちでとれました。が
def conv..以降を関数にしようとして、
machのところでひっかかって(たぶん)出来ませんでした。
def conv..以前の扱いもよいしたら良いのか…

自分で作ったものは、IF文と文字の切り取りをつかった恥ずかしいものなので
510さんのプログラムをいただきたいのですが...
言わんとしていることは理解できますが、始めて1週間目の初心者には
どういう形にしたら良いのかむずかしくて、宜しくお願いいたします。


url をオープンするときに、 User-Agent やらを指定するには何を使えばいいのですか?
urllib2 のあたりあると思うのですけど、多すぎてよく分からない。
このスレをageる奴こそ敗北者
530520:03/03/08 14:34
>>525
これをみるとどれも ugly だね…やっぱりいらないや。

とは思っても、もう投票されちゃうのか。
>>530
2月(先月)の python-list のメーリングリスト流通の 2/3 くらいは三項演算子の話題で費やされた気がする。
Subject: を見るだけで、鬱になった。

http://mail.python.org/pipermail/python-list/
>>531
未来からメールが来てるね。
Cの3項演算子と語順が違うのは見づらくてイヤン。
だったらC使えよ
>>531
英語苦手だから今まで本家の ML は除いたことなかったんだけど、
すごいne! 議論が白熱していると入っても一ヶ月で 12MB の流量って!!
日本の ML ももう少し活発になってほすぃ…。
みんな ML 読んでんの?
ぱいでぶだけならちょくちょく。
プログラミング初心者な漏れだけど、Python はコード読みやすいし、
なんかインデントが気持ちよしなんで、おぼえようとしてる。
で、Python は初学者には最適っていわれてるよね。確かにわかり(・∀・)イイ!
とは思うんだけど、オブジェクト指向に関しての説明で優しく書いてあるのない?
チュートリアルにしても、Web 上のリソースにしても何らかのプログラミング
言語を知っているのを前提にしているものが多いんだよね。
漏れは C と awk をちょっと使ったことがあるくらいだから、この辺つらい。
エリック・レイモンドなんかもなにも知らないんだったら Python しる!
とかいってるしね。
とりあえず、今はこれ読んでる。

An Introduction to Tkinter
http://www.pythonware.com/library/tkinter/introduction/index.htm
539デフォルトの名無しさん:03/03/09 09:11
>538
今から始めるならc-baseのLuaがいいよ。
Lua VS Python
http://lua-users.org/wiki/LuaVersusPython
プログラミング言語 Lua
http://pc2.2ch.net/test/read.cgi/tech/1034182349/

pamlに入れて遊んじゃえ。
http://netpage.em.com.br/mmand/pluasamp.htm
tkinter は、あまり学習が報われないような、、、
あまりオブジェクト指向の勉強にはならないけど
結果が目に見えて分かりやすいという意味では Tkinter は初学者向きだと思ふ。
>>528
最近のバージョンだと User-Agent は次のようにすれば変更できる。
urllib.URLopener.version = "Pichon/1.0"

Python 1.5.2 だとハードコードしてあるんで次のようにしないといけない。
class URLopener(urllib.FancyURLopener):
  def __init__(self):
    urllib.FancyURLopener.__init__(self)
    self.addheaders = [("User-Agent", "Pichon/1.0")]

file = URLopener().open("http://www.python.org/")
file.close()

HTTP リクエストに他のヘッダを加えたい場合はこんな面倒なことせずに
addheader() メソッドを使えばよろしい。
>>526
weave って何?
漏れの知ってる weave は TeX 関連の超マニアックなコマンドなんだが・・・。

NAME
  weave - translate WEB to TeX

SYNOPSIS
  weave [ -x ] webfile[.web] [ changefile[.ch] ]

DESCRIPTION
  The weave program is used to create a TeX file for viewing
  a Web program.
>>543
少し不恰好ながら、 urllib.URLopener を継承する形で、 User-Agent を変更することが出来ました。
>>526
> だれかweave使ってる?
wave とは別ですか?
2.3 用のJapaneseCodecs がそろそろほしいかも、といってみるテスト。
548デフォルトの名無しさん:03/03/09 17:37
weaveってこれだよ!
http://www.scipy.org/site_content/weave 

Pythonの中にC/C++のコードが埋め込めるんだよ!
perlのinline C みたいなもの?
>>548
それ使った「へろーわーるど」きぼん。
>>550
( =´∀`)ノ
>>> import weave
>>> weave.inline('printf("Hello, world!!\n");')
>>551
速度は変わるのでしょうか?
>>552
さすがにこれだけ短いと分からん(w
554548:03/03/09 22:45
ふーー、なんとか動くようになった・・・
gccが3.2↑になってscipyのCXXのテンプレート周りで引っかかるようになったみたい。
CVSにあるのだとテンプレートをあんまり使わないscxxを使うようになってて、そっちでオケーだった。
weaveだけのビルドにちょっと躓いたけどなんとかなった。

>>550
C++版

>>> import weave
>>> weave.inline('std::cout << "Hello World" << endl;", headers=["<ostream.h>"])

これくらい短いとオーバーヘッドの方が大きくてかえって遅くなってると思う。
二重ループを含むような数値計算なんかだとかなり速くなる。
555デフォルトの名無しさん:03/03/10 15:07
Pythonの名前空間って、グローバル、モジュール、クラス、関数ごとに一つずつでいいんですか?
__builtin__を忘れている
>>555
グローバル、モジュール、ローカルの3つ。

(__builtin__は、そういう名前のモジュール)
0.0.14   が、来週の水曜日にリリースされました。
KittyWalk 書き込みテス。
KittyWalk("0.0.14").write("テスト")
561デフォルトの名無しさん:03/03/11 07:48
C/C++のコードをパースして、定数、変数、関数、クラス(とメソッド)なんかの一覧を型情報つきで返してくれるようなモジュールないですか?
>>561
開業汁!
>>562
解凍汁!
>>558
> 0.0.14   が、来週の水曜日にリリースされました。
直ってたよ。




ちっ
つまらないことかもしれないけど、
KittyHawk
から名前を取ってるの?
同じ内容のデータを
open(file, 'w')
open(file, 'wb')
それぞれで保存したときに、
os.path.getsize(file)
の値が異なる理由はなぜですか?

'wb' のほうが少しだけサイズが小さくなるのですが、、、

ファイルのプロパティを比べてみると、
「サイズ」が別で、「ディスク上のサイズ」は同じ値になっていて、
os.path.getsize()
は「サイズ」のほうを返すようです。
>>565
SillyWalkっしょ。
こんな会社があったのは知らんかった… ttp://www.sillywalk.com/

>>566
'w' はテキストモードだから、 \n が 0x0D 0x0A で出力される。
といっても、DOSとかWindowsでの話しだが。
ジョンクリーズ最高
アンチHSP諸君!! お前らpygameはどうですか?
http://pc2.2ch.net/test/read.cgi/tech/1006747830/

pygame もいつのまにかデータ落ちしたのね。
HTTPからpythonでJPEGイメージをダウンロードしたいンですけど、
これ↓読んでもわからん自分にはいつまでたってもわからんのでしょうか?
ttp://iblinux.rios.co.jp/PyJdoc/lib-j/www.html
572名称未設定:03/03/15 01:08
>>571
httplibの利用方法なら
http://www.not-enough.org/abe/manual/unix2-au99/python.html
http://www.python.org/doc/2.2/lib/module-httplib.html
見てわからないです?
とりあえず動作させてみるとわかるかと。
>>571
画像をダウンロードするだけなら urllib もいいかも。
574571:03/03/15 15:28
urlopen()で成功しますた!
http://python.jp/Zope/PyLog//1047721075/addPostingForm

オライリージャパンに対してみんなで何か運動を起こしませんか?
具体的な方法は思いつかなくて申し訳無いが。
>>575
ライブラリー本に関してか? Nutshell 本に関してか?
まともな翻訳者じゃないなら、和訳版はいらないな。
テクニカルリファレンス(だったかな?)レベルの訳は混乱を招く。
つーかみんな本買うの?(買ってんの?)
漏れは Library Reference とソースコードだけでお腹いっぱいなんだが。
オレも買ってない。
リファレンスハンドブックみたいなものはときどき欲しいけど、
Python の進歩が速すぎて本を買っても時代遅れになってしまう。

いつも本が出たあとにオイシイ機能がたくさん追加されてるからな〜
活発なのはいいんだけど。
ML の流通量を見る限り、日本のPythonユーザーの数はかなり少ないからなぁー
その上、翻訳される本がクソ本ばかりで、新たな利用者を獲得しつつあるとはいえないし。
580デフォルトの名無しさん:03/03/16 13:47
はじめまして。
これからプログラム言語を学ぼうと思うのですが、Pythonが史上最強、最高の言語だと
聞いてここにきました。
Pythonが最高ということで間違いありませんか。間違いありませんね。
わかりました。ありがとう。
>>580
日本語にしときなよ。
http://python.jp/Zope/PyLog//1047721075/index_html

に小学生・中学生とか書いてありますが、ただでさえ日本で使ってる人が
いないのに小学生・中学生で使ってる人なんているんでしょうか?
もしかして、Pythonを使ってる人の子供?

# もっとも漏れがリアル厨房なんだが…
若いんだから2ちゃんねるなんかに入り浸ってないでもっと生産的なことをしたまへ。
小学生・中学生で……って、プログラミングをしてること自体は別に
珍しくもなんともないから、あとはwebでも雑誌でもpythonに触れ
る機会さえあれば全然おかしくないと思うが。
例えば、父親がsoftware design(だかなんだか、その辺の雑誌)でも買っていれば、
父親自身は全く出来なくても、子供がpython使い(に限らないが)になるのは
十分あり得る話。
だけど MSX 全盛期にくらべて、小中学生プログラマが減っているのは事実。
むかしはパソコンなんてなんの役にも立たなかったからなあ。
楽しもうと思ったら、自分でプログラム書くしかなかった。
今じゃなんでもできすぎるからな。プログラム書くなんてばからしいのかもしれない。
Windows でOSべったりのプログラムを書けるようになるには、かなりの勉強量がいるからね。
今のガキって恵まれているよなぁ。
漏れがガキの時なんて、PC はとんでもなく非力で、BASIC か
機械語をハンドアセンブルするみたいな手段しかなかったもんな。
アセンブラも10万円とか平気でしてたし。

情報も少なくって、コンピュータのこと全然わかんなかったけど、
雑誌 (アスキー、I/O、マイコンあたり) を買ってきてなめるように
読んでたよ。
それが今じゃ、情報は有り余っているし、処理系も豊富で選び放題。
でも、くそ情報が増えた分、取捨選択するのが面倒だけどね。
奨学生だってがんばれば Python バリバリ使えると思うよ。
逆に筋のいい入り方ってのがなくなってきている気がするな。
昔はアスキーとかの雑誌しかなかったけど、
逆に主要な情報源が限られていたから、ある程度集約されていた面がある。
空気を掴むのも難しくなかった。
それに、時代が進むにつれて必要になったものが順次投入されてく
るという流れがあった。ハードとか言語とかアルゴリズムとか。
今は一度に出くわすわけだし、言語も色々目移りしちゃうね。

あと、色々手を出すより、少ない対象にじっくりつきあうとか、プログラムを
きちんと完成させる経験の方が得るものは大きいしやっておくべきだけど、
そうだと知らなくても自然にそうなる状況が昔はあった。
今は色々舐めてみても、結局余り知的能力の涵養になることなく
時間切れで大人になってしまう、ということになりがちなんじゃな
いかと思ってしまうな。
例えばアルゴリズムとかでわからないところをそのままにしても目移り先に困らんし。

この辺、実際どう影響があったと思うか、
今の学生あたりの若い層に聞いてみたいところ。
>>589

リアル厨房ですが、下手な日本語で的を得ていないレスですみません。
かなり情報がありすぎて困っています。Googleで「プログラミング 入門」みたいな
語句で検索すると沢山出てきて、いったい何を使えばプログラミングを出来るように
なればぜんぜんわかりませんでした。言語も「あれがいい」「これは純粋ななんちゃらで…」
「いろいろな分野で使われていて」「すぐに覚えられる」など、人によって言っている事が
ぜんぜん違うし。それに、日常生活で自分でプログラムするよりも
ほかの人によって作られた完成品を使ったほうが楽だし。
「ただ文字列を並べ替える」みたいなことでもプログラムが用意されていて、
ほとんど自分でプログラムしないと困ることも少ないし。

パソコンを「使える」人間が周りにいますが、ほとんどの人はプログラミング
しよう、とは思わないらしいです。自分で作りたいものを作るよりも
検索したりしているみたいで、せいぜいCGIのパラメーターをいじるくらいらしいです。
まぁ、僕もそんなこと言うほど完全にPython使えないんですが。

あと、インターネット環境がない人のがプログラミングにはまっています。

>色々手を出すより、少ない対象にじっくりつきあうとか、プログラムを…
参考にさせてもらいます。

長くなってすみません。
591名無しさん:03/03/17 21:53
困らないからやらないんならそれでいいんだよ。
困らないけど遣りたい、知りたい、そういう奴が学べば委員だよ。
そうしているうちにまだ誰も出来てないことをやりたくなるかも知れない。
そしてついには発展を担うようになるんだ。
そういう人間が必要なんだよ世の中には。
KittyWalk-20030216 試しました。

書き込みが出来なくなっています…。
で、書き込みボタンを連打すると落ちてしまうときがあります。
スレの検索は出来ました。
スレ一覧の未読数、リロードすると結果を反映するのは良いですね。

pure python のブラウザなので、期待しています。
がむばって。

593592:03/03/17 22:32
あ、ちなみに Win98SE です。(Python2.2.2)

書き込みボタンを押したときはこんなエラーが出てました。

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\PYTHON22JP\lib\lib-tk\Tkinter.py", line 1300, in __call__
return apply(self.func, args)
File "C:\TMP\kittywalk-20030316\threadpane.py", line 102, in post
thread = self.get_active_thread()
File "C:\TMP\kittywalk-20030316\threadpane.py", line 97, in get_active_thread
return self.notebook.page(name).get_thread()
AttributeError: Frame instance has no attribute 'get_thread'

>>590
> いったい何を使えばプログラミングを出来るように
> なればぜんぜんわかりませんでした。
プログラミング(プログラムを書くという行為)がどういうことか
まだよく分からないんじゃないかな。言語の選択とか各種の方法論とか
そういう話はプログラミングの本質が分かってないと意味を成さない。

最近はご丁寧にプログラミングの何たるかを説いてくれる人がいたりする。
でも、漏れがプログラミングに入門した当時はそんな親切な解説はなかったし、
そんなもの読まなくてもプログラミングがどういうものか分かるようになった。
それに、多分説明されても分からなかっただろうなと思う。漏れ自身説明する側に
まわったことがあるけど、あれこれ手を尽くして説明してもイマイチ飲み込めない
プログラミング初心者がほとんどだった。プログラミングというのは、教わっても
どういうことなのか分からない種類の行為なんだと思う。

漏れが入門当時にやったことと言えば、雑誌に載っていたプログラムソースを
打ち込んでみるとか、既存のプログラムを改造してみるとか、そういう誰でも
やってる当たり前のことだった。興味本位でそういうことを繰り返しているうちに
知識が増えて勘が働くようになり、何もない状態からプログラムを書けるように
なった。ああ、プログラミングってのはこういうことか、と実感できるように
なったのはそれから随分経ってからのことだ。きっと多少の違いはあれ、みんな
似たような経験をしてきていると思う。

Python でも Perl でも C でも Java でも何でもいいから、とにかく一つの
プログラミング言語を「分からないところはほとんどない」と言えるぐらい
やり込んでみるといいと思う。その頃にはプログラミングの何たるかが
理屈じゃなく実感を伴った経験として分かるようになっていると思う。
pythonの知名度はどうしてこんなに低いんでしょうか。
僕が思うにHSPよりも使いやすいと思うのですが。
本屋いってきた
入門書が2種類くらいしかない
しかも3800円とかする
厨学生の漏れには無理ですた
>>596
Pythonの入門書なら「Pythonで学ぶプログラム作法」。これだね。
値段も3000円+税だから、工房の俺でも買えたよ。
しかも、例え方が巧みでサンプルソースがすごくわかりやすい!


と、宣伝してみるテスト
>>595
英語がネックなのだろうと思う。漏れは英語で読んじゃうから
想像だけど、日本語だけだと情報が足りないんじゃないかな。
リソースの大半が英語という状況では、英語恐怖症の人が多い
日本での普及は望めない気がする。

もっとも漏れは「普及は善」とは思わないわけだが。
>>597
ありがとう!
さがしてみます。
>>598
アメリカやオーストラリアの小中学生は英語ペラペラだが、
日本の小中学生が英語がほとんど読めないからのう。
> 日本の小中学生が英語がほとんど読めないからのう。

大学生でもほとんど読めてませんが。
602150 ◆ismFPlKHko :03/03/18 02:39
>>593
付け焼刃で申し訳ないですが、
threadpane.py、97 行目の
 return self.notebook.page(name).get_thread()

 return self.notebook.page(name).thread
に書き換えてください。がむばります。
603デフォルトの名無しさん:03/03/18 14:36
Tkinterで3次元グラフィックってできますか?
>>603
http://pyopengl.sourceforge.net/
http://www.3dartist.com/WP/python/tkinter3d.htm
今度からは自分でググろうな。先生との約束だ。
>>603
ほんと、ちょっと検索してわかることは自分で調べよう。
漏れもヘタレだからわかんないことがあると質問するけど、
2ちゃんねるにでさえ、聞く前には1日2日は自分で調べたり、
ぐぐって色々読んでからにしてるよ。

自分で1週間考えてもわからないことを、人に教えてもらうと
1分で理解できたりする。だから、質問に答えてもらえることは
とっても貴重なことだし、そういうコストを無駄にすべきじゃない。

>>603
自分で回転行列を使って canvas に描くという方法もあるぞ。
むかしはみんなそうやったもんだ。ああ、ワイヤーフレーム。
607589:03/03/18 21:19
>>590
> リアル厨房ですが、下手な日本語で的を得ていないレスですみません。

的は射るもの、な。得るのは当。欝陶しいかもしれないがリア厨とのことなので。

> かなり情報がありすぎて困っています。Googleで「プログラミング 入門」みたいな
> 語句で検索すると沢山出てきて、いったい何を使えばプログラミングを出来るように
> なればぜんぜんわかりませんでした。言語も「あれがいい」「これは純粋ななんちゃらで…」

目的、環境、それまでの知識、によってどの言語がいいかは全く違う。
環境はOSなどだけじゃなくて、回りの人間の利用環境や興味とか、
読んでるものとかも含む。
目的は、こういうものが作りたい、というようなものだけじゃなく、
漠然とプログラミングに対してもってるイメージを含む。
ちょっと、自己紹介してみないかい。

> 検索したりしているみたいで、せいぜいCGIのパラメーターをいじるくらいらしいです。

それではコンピューティングを理解は出来まいなあ。

> あと、インターネット環境がない人のがプログラミングにはまっています。

それは理解できる。ネット環境がないというのは確かに不利ではあるけど、
興味の対象に取り組む時間は確実に長くなる。
……ゲームとかのことに時間をとられすぎなければ、だけど。
このことは、それだけ頭を使う時間が長いということ。
地味だけど長期的には強力なメリット。

> 長くなってすみません。

NewNews に比べりゃなんでもない。どうせ行数制限あるし、気にしない。
608589:03/03/18 22:06
>>594
> プログラミング初心者がほとんどだった。プログラミングというのは、教わっても
> どういうことなのか分からない種類の行為なんだと思う。

概念そのものを受け付けないとなあ。海を知らない奴に海を説明するのは難しい。

> 漏れが入門当時にやったことと言えば、雑誌に載っていたプログラムソースを
> 打ち込んでみるとか、既存のプログラムを改造してみるとか、そういう誰でも
(snip)
> なったのはそれから随分経ってからのことだ。きっと多少の違いはあれ、みんな
> 似たような経験をしてきていると思う。

俺もそれを辿ったクチだけど、今だったらもうちょっといい方法とか、
手助けのしようもあるんじゃないか……あるといいな、とは思う。
勿論、本人の意欲が最も重要ではある。

> Python でも Perl でも C でも Java でも何でもいいから、とにかく一つの
> プログラミング言語を「分からないところはほとんどない」と言えるぐらい

それは賛成。漠然とこういうことがやりたい、と思っていることが
出来ない言語ではモチベーションが続かないから、どうせなら適した言語を
選んだ方がよいだろうが。

>>597
> Pythonの入門書なら「Pythonで学ぶプログラム作法」。これだね。

英語ならwebで読めるようだね。
http://www.freenetpages.co.uk/hp/alan.gauld/

少々章立てが違うな。版が違うからだろうか。
もうちょっと具体的な Python プログラムの話をしよう。

なんか、普及とか、プログラムの概念のばかりが続くと、 Python は衰退の一途をたどっていて、
起爆剤を求めているみたいで、なんかいやな雰囲気だ。
./ でも Perl と Ruby の比較はあったけど、 Python は半分無視されているし、、、
./ ではなく、 /. ですね。
http://slashdot.jp/askslashdot/03/03/18/0042202.shtml?topic=58
Slashdotに聞け!: これからはRuby?それともまだまだPerl?
>>609
全然衰退なんかしていないと思われ。むしろ普及の一途を辿っている気がする。

ところで喪前ら、最近 Python で何を作りましたか?
漏れは日記変換スクリプトとかギコペのクローンとか Sketch のプラグインとか
iso-2022-7bit コデック (と言っても Latin-1 と日本語のみ対応) とかそんな感じ。
>611
なぜ日本で普及しない?
http://www.freeml.com/message/[email protected]/0000057
広まらない理由
http://www.freeml.com/message/[email protected]/0000060

盛り上げてやって。(せめてメーリングリストくらい)
>>611
あんたすげーよ。ギコペのソースうぷしてください。

>>612
他の地域に比べて、日本での普及率は低いかも知れないけれど、
そこの文章はあまりにも稚拙だと思う。
> ところで喪前ら、最近 Python で何を作りましたか?

じつは web ブラウザ作ってます。レイアウトエンジンが python 製。
詳細はまだナイショ。
>>612
主催者ご本人?
機械伯爵という名前からして恥ずかしい。
>>611
練習がてらにエロ画像動画自動収集ソフト作ったよ!
たしかに、「伯爵です」はないだろ。
変なやつばっかと思われて初心者に逃げられそうだ。
MPlayerが *.ramに対応してないから、*.rmをゲッツするための
スクリプトとか書いたぐらい。
本格的なアプリとかライブラリーを Python でやってる人はすくないのかなぁー。

Rubyなんかだと(比較していいのか分からないが) 学生さんでも自作のものを公開したり、
ruby-dev にもいろいろ投げている人がいるのに。
>学生さんでも自作のものを公開したり、
よくわかんないけど、汚いソースでも、恥ないで公開しれってこと?
>>611
最近ファイルマネージャつくってます。しっくりくるものがLinuxで
無いので。
作ったら、Python-announce-listで知らせてくだちい。
>>621
> >>611
> 最近ファイルマネージャつくってます。しっくりくるものがLinuxで
> 無いので。

もしかして、これ?
http://sourceforge.jp/projects/ahaetulla/
ガンがってね。
日本人の強力なPython開発者はいないみたいだから。
>>616
最近は奥さんと殺伐としてるかい?
>>616
漏れも〜。連番一括DLはヘビ使いの必修科目だよなっ!
他にも何人かいると見た(w
>>623
> 日本人の強力なPython開発者はいないみたいだから。
そのセリフは聞き捨てならんなあw
というか「強力なPython開発者」というのはどういう人を指してる?
>>625
)ノシ
>625
ヘビ使い名のるなら、特徴ベクトル割り出して自動分類
好みの画像を一発検索くらいのことやれよ。
>>628
ああ、そうだったそうだった。「ヘビ使い」は画像処理のエキスパートで
なければならないんだったよな。うっかりしていた。スマソ。
630デフォルトの名無しさん:03/03/20 11:30
pythonで分散コンピューティングってどうやるんですか?
RubyだとdRubyとかあるみたいなんだけど。
好きなの選んでくれ。ほかにもまだたくさんある。

http://py.vaults.ca/parnassus/apyllo.py/126307487.549099265
>630
ただ漠然と分散コンピューティングといわれても答えようがねえな。
どんな分野だ? 具体的にやりたいこといってみれ。
GeckoってPythonから使える?
634名称未設定:03/03/22 01:13
つかえる。けどHTMLレンダリングの場合
wxHTML
http://www-6.ibm.com/jp/developerworks/linux/020712/j_l-wxpython.html
って手もある。

XULなら利用した事ある
http://jt.mozilla.gr.jp/docs/xul/xulnotes/xulnote_oven.html

何かお題を出して、それを各人が Pythonic に書いてみる?
最近は日本語の文章ばかりで、 Python のコードがぜんぜんないから。(w
MLみたいな下らん事はヤメレ
637デフォルトの名無しさん:03/03/22 13:47
あのー、「Pythonで学ぶプログラム作法」読んでんだけど
例外処理の
try:
except:
else:

try:
finally:
って何が違うの?
else:
があればfinally要らないんじゃないの?
638デフォルトの名無しさん:03/03/22 15:12
ごめん。わかりた。
elseは例外が発生しなかった場合に実行されるんだね。
一体どのぐらいでdat落ちするんでしょうか。
ほりゅう。
pythonでCGIが使える無料サーバー教えてください。
>>640
自宅
Linux or *BSD
643640:03/03/26 12:37
いや、無料ホームページスペースって奴で…
645名無しさん@Emacs:03/03/26 20:08
646デフォルトの名無しさん:03/03/28 18:18
保守 age
>>645
>現在一般向けサーバーの募集は行っておりません。

しょぼーん…
648名称未設定:03/03/29 23:10
>>647
もう一杯になってしまったのか。
募集開始するとすぐ一杯になる、そこ。

Free系ではかなり高機能。金はらっても年2400円。
649デフォルトの名無しさん:03/03/30 12:01
教えて下さい。
printでは末尾に空白が追加されますがこれを取り除くには
どうすればいいのでしょうか。
解説されたサイトや書籍があったハズなのですが忘れてしまいました。
#####
i=0
MAX_LEN = 1024
W_STR = "a"

while i < MAX_LEN:
print W_STR,
i +=1
#####
これをリダイレクトして1kbのファイルを作ろうとしましたが
結果は2kbになってしまいます。
650デフォルトの名無しさん:03/03/30 12:35
sys.stdout を使いなされ。
それとたいていのことは Python Library Reference に載ってるから
できれば印刷して手元に置いておくこと。

#!/usr/bin/env python
import sys

MAX_LEN=1024
W_STR="a"

for i in xrange(MAX_LEN):
 sys.stdout.write(W_STR)
>>650
ありがとうございます。

>それとたいていのことは Python Library Reference に載ってるから
>できれば印刷して手元に置いておくこと。
そうします。




ぁ、インクが…
今日はじめて、BeOS+Python+Bethonというのを試してみたのだが、結構イイ!
ただ、他人に配れないのだが。
RedHat 7.3 で Python 2.2 を使ってます。

$ pydoc2
とやると、

Traceback (most recent call last):
File "/usr/bin/pydoc2", line 4, in ?
pydoc.cli()
File "//usr/lib/python2.2/pydoc.py", line 2082, in cli
print """pydoc - the Python documentation tool
TypeError: not all arguments converted

というエラーメッセージが表示されます。
エラーが出ずに起動する方法を教えてください。
>>653
/usr/lib/python2.2/pydoc.pyの最後から数えて3行目の
""" % (cmd, os.sep, cmd, cmd, cmd, cmd, os.sep) を
""" % (cmd, os.sep, cmd, cmd, cmd, cmd) に変えれば OK
655654:03/04/01 23:39
ごめん、正確にはこうだった。スマソ
""" % (cmd, os.sep, cmd, cmd, cmd, os.sep)

多分 Red Hatが下記のオプションを削除したけど、フォーマットの
修正を忘れたというオチかな。

%s -g
    Pop up a graphical interface for finding and serving documentation.
pygameの日本語解説サイト誰か作れや。
>>656
> pygameの日本語解説サイト誰か作れや。
オマエガナー
言い出しっぺの法則
>>654
うまくいきました。

微妙にスレ違いですが、便乗質問させてください。

>>653 のような Traceback のエラーメッセージをファイルなどに出力させたいときは、
どうすればいいのですか?

$ pydoc2 > filename
としても、コンソールにエラーメッセージが表示されるままで、
filename にうまくリダイレクトできないのですが。
659名無しさん@Emacs:03/04/02 17:44
>> 658
$ pydoc2 > filename 2>&1
>>659
> $ pydoc2 > filename 2>&1
イケマスタ
661デフォルトの名無しさん:03/04/02 22:20
いや、俺はスマタじゃイけないんだ・・・
662名称未設定:03/04/02 22:24
663656:03/04/02 22:34
そこ全部読んだ。他にない?
お前はお前のやりたいことが全部書いてないと何もできないんか?
暗いと不平を
言うよりも
666デフォルトの名無しさん:03/04/03 03:41
ぱぱぱぱぱいそん
とらんすくりぷと
Linux で kittywalk を試したら、起動したけど文字化けしてる。
config.py のフォント設定を変更したけど、変わらない。
なにが悪いのかなぁ。
>>666 ダミアン
669150 ◆ismFPlKHko :03/04/03 22:34
>>667
全部文字化けします?
それとも、どこか一部(メニューだけとか、書き込み内容だけとか)だけが文字化けします?
670667:03/04/04 01:04
>>669
全部です。ちゃんと動かしている方もいるんだから、自分が何か間抜け
しているような気がします。
とりあえず、過去ログを読んでモナーフォント使うように指定したつもり
なんだけど...
実は Linux 触るのはスゲー久しぶりなんで、自分の環境をもう一度
チェックしてみます。
671150 ◆ismFPlKHko :03/04/04 11:24
Linux のことは(も)、分からなくてすみません。
他のアプリで日本語表示できているのでしたら、
原因は KittyWalk か Tk ではないかと。
672162:03/04/04 20:54
問題を切り分けるために簡単なチェックをしてみるというのはどうだろう。
コマンドラインから以下のように入力してみて「テスト」と表示されたら
Tkinter (Tcl/Tk) は正常だと思う。
$ python2
>>> from Tkinter import *
>>> Label(text='\xe3\x83\x86\xe3\x82\xb9\xe3\x83\x88').pack()
673162:03/04/04 21:59
kittywalk-20030330 を入れてみたので気付いたことをご報告。
Red Hat Linux 7.3, Python 2.2.2, Pmw 1.1, JapaneseCodecs 1.4.9

スレタイトルが表示されるタブのところにスレの描画中だけ
クラスのインスタンスを str() したような文字列が表示されまつ。
ThreadViewPages._append() の self.tab(thread).config(...) の行を
page = self.add(thread) の直後に移すと直りますた。

カキコしようとすると以下のようなエラーが出ますた。
File "bbs.py", line 327, in post
key = thread.filename.replace(".dat","")
AttributeError: Frame instance has no attribute 'filename'

「お気に入りに追加」が動かないようでつ。
なぜかコンソールに <type 'instance'> と表示されまつ。

あと、以前あった「ワードラップ」が消えてる気がしまつ。(´・ω・`)

ボタン類がカラフリャ〜になりますたね。(・∀・)イイヨイイヨー
>>656
> pygameの日本語解説サイト誰か作れや。
Making games with Pygame
http://www.tomchance.uklinux.net/pygame/

たまには日本語訳をするなりして、日本の Python コミュニティに貢献シル!
675667:03/04/05 01:31
>>672
駄目でした。text='テスト' ならば、OK です。
Vine Linux2.6 (FTP インストール)、Python2.2.2、Pwm1.1
JapaneseCodecs1.4.9

Tcl/Tk は 8.0.5 なのだが、いいのでしょうか?
うーむ、Python のお勉強をするために Linux 入れたんだが...
676150 ◆ismFPlKHko :03/04/05 04:10
>>673
いつもいつもお世話になりまする。
> 「お気に入りに追加」が動かないようでつ。
> あと、以前あった「ワードラップ」が消えてる気がしまつ。(´・ω・`)
CVS のほうには、修正版を上げてあります。次のリリースでご堪能ください。
677150 ◆ismFPlKHko :03/04/05 04:23
>>675
> Tcl/Tk は 8.0.5 なのだが、いいのでしょうか?
KittyWalk は日本語文字列を Unicode で、Tkinter に渡してるんですけど、
Tk のバージョンによっては、化けるかも知れません。
開発は 8.3.5 でやってます。
間違ってたら、ごめんなさい。
678162:03/04/05 10:31
Vine の tk-8.0.5_jp-10vl6 は笠原さんの日本語化パッチを採用しているみたいですね。
このバージョンは EUC-JP, Shift-JIS, ISO-2022-JP の三つの文字コードしか
受け付けなかったと思います。某フリーソフトの開発中に必要に迫られて
日本語版 8.0 とオリジナルの 8.3 の両方に対応しようとあれこれ調べたことが
ありますが、ここはまさしく Tkinter の鬼門と言うべき部分で、まったく
どうしようもありませんでした (そのときはまだ Python 1.5.2 が結構使われていて
さらに状況が悪かった)。結局両方に対応するのはあきらめて、このバージョンまでは
日本語版 8.0 用 (内部文字コード EUC-JP)、このバージョンからはオリジナルの
8.3 用 (内部文字コード UTF-8) とした経緯があります。日本語版 8.0 用に書いた
別のもうすこし大きなフリーソフトは、両方に対応するのはおろかオリジナルの
8.3 用に書き直すのもうんざりして放置してあったりします(苦藁

実は、笠原さんのパッチには 8.3 用の国際化パッチというのもあって、
記憶が正しければこのバージョンでは文字コード関連はオリジナルのままです。
つまり、言うなれば日本語版 8.0 は消えゆく運命にある過去のバージョンです。
今さら苦労して日本語版 8.0 に対応するのは正直言って割に合わないと思います。

キティーたんにおかれましては、オリジナルの Python とオリジナルの Tk の
組合せで動くように作るのがよろしいと存じ age ます。
>>433
> 翻訳中のライブラリを html 版でもダウンロードできるようにしてほしい、
> と言ってみるテスト。
ここで一度いっているのだけど、途中まで出来上がっている翻訳されたライブラリを
sf からまとめてダウンロードできるようにする予定はないのですか?

boost の日本語化プロジェクトだと、マイルストーンという形で中間リリースしているみたいですが、、、
↓これじゃダメなの?
http://www.gembook.jp/html/tmp/doc_jp/lib/
681デフォルトの名無しさん:03/04/05 17:51
>>679
boost pythonって使いもんになる?
682デフォルトの名無しさん:03/04/05 18:45
>>679
boost pythonって何?
boostのぴちょんくんです。
http://www.boost.org/libs/python/doc/index.html
684667:03/04/05 23:09
KittyWalk やっと、日本語が出てくるようになりました。
ちょっと Python そのものの話題からはずれてしまうのですが...。

* Red Hat7.2 用の srpm をとってきて、リビルド。(環境は Vine2.6)
(tcltk-8.3.3-65.src.rpm)
* 古い Tcl/Tk をアンインストール。
* 新しく作ってやった奴をインスコ。
* ここで、KittyWalk を動かそうとしたら、Tkinter が古い Tk の
ライブラリを見つけられないと言ってきたので、Python2.2.2 を
アンインストールして、リビルドして入れ直し。

一応、日本語表示はできるのですが、
* 日本語入力できない。--> なんか、パッチが当たった奴じゃないとだめ?
* フォントが汚い。162 さんが >>171 に書いてるようにしたつもり
だけど、フォント使ってなさそうなかんじ。

----- config.py から抜粋 -----
default_config = {
"Font" : {
"UI": "-mona-gothic-medium-r-normal--16-150-75-75-p-160-jisx0208.1990",
"Entry": "-mona-gothic-medium-r-normal--16-150-75-75-p-160-jisx0208.1990",
"Content": "-mona-gothic-medium-r-normal--16-150-75-75-p-160-jisx0208.1990",
"Cite":"-mona-gothic-medium-r-normal--16-150-75-75-p-160-jisx0208.1990",
},
----- 以下、略 -----

というわけでこれは Mozilla で書いてます。
685150 ◆ismFPlKHko :03/04/05 23:59
> * 日本語入力できない。--> なんか、パッチが当たった奴じゃないとだめ?
もしかすると、8.3.4 or later じゃないとダメかも知れません。
http://www.python.jp/pipermail/python-ml-jp/2002-October/001933.html

> * フォントが汚い。162 さんが >>171 に書いてるようにしたつもり
> だけど、フォント使ってなさそうなかんじ。
~/.kittywalk/config ファイルの [FONT] の部分はどうなってますか?
こっちのファイルが優先なんです。
686667:03/04/06 00:53
>>685

>もしかすると、8.3.4 or later じゃないとダメかも知れません。
>http://www.python.jp/pipermail/python-ml-jp/2002-October/001933.html

なるほど、ありがとうございます。もう一回チャレンジしてみます。
/.kittywalk/config ってのがあったんですね。
すいません、見ていませんでした。
687667:03/04/06 05:02
KittyWalk 動きました!! ML に書かれていたアップデートでいけました。
日本語入力もフォントもおkです。150 さん、162 さんありがとうございました。

ちょっと動かしてみた限りでは、(20030330版)

>>673
>「お気に入りに追加」が動かないようでつ。

は、私のところでは大丈夫でした。
カキコは同じようにできません。
マウスの右クリックからコピーして、右クリックで張り付けようとしても
動かないのですが、キーボードでの張り付けはできました。(Ctrl-y)
(コピーはマウスでできます)
マウスがフォーカスしてくれるようになったので、キーボードでスレッドの
スクロールとかできるようになったのですが、カキコ欄からマウスが
外れると後ろにかくれちゃってちょっと不便かも。

Tck/Tk を再インストール後に最初に立ち上げたとき、カキコ欄で
日本語入力中エラーが発生して KittyWalk が固まってしまったのですが、
これは Tcl/Tk ガラミのエラーのような気がします。
(コンソールに X のエラーがナンタラとかでてきた)
688667:03/04/06 05:32
KittyWalk-20030405 書き込みテスト。
689667:03/04/06 05:41
カキコ欄がかくれなくなった。(・∀・)イイ!!
とりあえず、メニューにあるものはすべてきちんと動くみたい。

690647:03/04/08 22:51
>>645
なかなか空きませんね。
691名称未設定:03/04/09 06:15
>>690
そうですね。。
エロ限定だけど
http://www.x-beat.com/
なんてどうです?

広告我慢すればかなりよいサーバ。
692162:03/04/09 16:09
KittyWalk-20030405 でパピコしてみるテスト。
メニューの「折返しの切替(W)」のショートカットキーが
Wじゃなくて閉じ括弧になってますた。
gui.py の621行目は underline=7 が正しいと思われ。
>>691
良いですね。
でも自分21歳以下だから駄目ぽ。
向こうが空くまで待ちます。
>>647
本気でサイト運営する気があるんだったら、有料サービスでもいいんじゃない?
あれだけの環境で月200円だよ?

どうしても無料で!という場合は
ttp://a.hatena.ne.jp/xrea/simple
ここをチェックするとよいでつ。
695150 ◆ismFPlKHko :03/04/10 12:10
>692
うほ。修正しておきます。
別に修正しなくていいよ。Monarch が出たから。
http://sourceforge.jp/projects/monarch/
>>696
どうしてそういう言い方をするの?
悲しいよ。
>>696
関連スレッドってあります?
monazilla で紹介されたのはわかったけど、、、
スクリーンショットの1つや2つくらいはほしいな、、、
>>696
ど こ の 誰 だ よ 。
w x W i n d o w s は 日 本 語 使 え な い 、
っ て 言 っ た ヤ シ 。
unicodeのサポートってwindowsだけじゃなかったっけ?
Monarch は Unicode サポートを使ってないんだよ。
おお、それは目から鱗でした。
http://monarch.sourceforge.jp/
KittyのページのURLまちがっとらん?
×http://www.kittywalk.sourceforge.jp/
http://kittywalk.sourceforge.jp/
ヘンなところ突っ込んで悪いが、
一応相互リンクになってるみたいやし。。
おまいら、
Pythonとjavaどっちが重い?
>>704
Pythonは全然重くないよ。遅いよ。
そろそろだれか Python のキラーアプリを作らないかなぁ、、、
自分はセンスがないから、無理だけど。
たとえば、Java や Ruby で書かれたキラーアプリって何?
Java はあれだろ、Oracle のインストーラで決まりだな。
709デフォルトの名無しさん:03/04/15 16:14
age
>>708
あきメモリが500MBないと、警告なしに自分が死んでしまう。キラーアプリならぬ
自殺アプリ。
すげーな。anaconda にも頑張ってもらわんと。
712山崎渉:03/04/17 15:22
(^^)
713デフォルトの名無しさん:03/04/18 04:51
ほしゅー
TypeError: 'str' object is not callable
これはどういう操作をしたときに発生するものなのですか?
行番号と表示されているのだけど、今ひとつ原因がわからない ^^;
>>> 'spam'()
716デフォルトの名無しさん:03/04/18 20:07
LinuxザウルスってPython使えるの?
使ってみた人感想きぼん
717デフォルトの名無しさん:03/04/18 20:26
WINなんですが
Cygwin用のPythonと
ActivePython
はどちらが蛇学習にはいいでしょうか?
ActivePython
http://www.scintilla.org/SciTEImage.html
みたいにするにはどうしたらいいですか?マニュアル等を見たり、
インストールしてみましたが、よくわかりません。
720デフォルトの名無しさん:03/04/19 00:38
>717
ActivePythonって,readline関係は大丈夫なの?

cygwin環境が普段メインならcygwinのpythonの方がいいと思うが,,..
明日からpythonとjavaを勉強すます。
>>715
> >>> 'spam'()

原因がわかりました。

print "%s : %s"%(foo, bar)
とすべきところが
print "%s : %s"(foo, bar)
になってました。

うーん、これで数時間はまってしまった --;
>>721
java重い
>>705
重いと遅いの違いって何なの?
>>724
重い=大量にメモリを食う、CPUを占有する (反義語=軽い)
遅い=処理スピードが低い、動作が緩慢 (反義語=速い)
一般に重いアプリは遅い。
ただし、遅いアプリは必ずしも重くはない (ぴちょんは遅いけど軽い)。
726山崎渉:03/04/20 03:03
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
727山崎渉:03/04/20 03:41
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
>>725
なるほど。でもJavaは重いけど速いよね。
729162:03/04/21 08:56
KittyWalk 20030419 でパピコ。

起動直後にカキコボタンを押すとスタックトレースを吐くモヨリ。

インスコ後、一回だけセグメンテーション違反で落ちたけど再現せず。
見なかったことにする(w
KittyWalk20030419

自分も最初にセグメンテーション違反ありました。
いくつかスレッドを読み込もうとしている時だったと思われ。
外部リンクをクリックするとコンソールにメッセージがイパーイでてきます。

731onefifty ◆ismFPlKHko :03/04/22 00:04
報告ありがとうございます。善処します。
730 さんのコンソールに出てくるメッセージって、どんなのでしょうか?
732デフォルトの名無しさん:03/04/22 19:49
733730:03/04/22 20:47
>>731

Linux 上で外部リンクをクリックすると
------------------------------------
$ Exception in Tkinter callback
Traceback (most recent call last):
File "/var/tmp/python2.2.2-2.2.2-root/usr/lib/python2.2/lib-tk/Tkinter.py", line 1300, in __call__
return apply(self.func, args)
File "threadpane.py", line 259, in open_link
webbrowser.open(url)
File "/var/tmp/python2.2.2-2.2.2-root/usr/lib/python2.2/webbrowser.py", line 43, in open
get().open(url, new, autoraise)
File "/var/tmp/python2.2.2-2.2.2-root/usr/lib/python2.2/webbrowser.py", line 38, in get
raise Error("could not locate runnable browser")
Error: could not locate runnable browser
---------------------------------------------------
こんなエラーがでました。
リファレンスマニュアルの webbrowser を読んで、環境変数 BROWSER を
調べたら、「kterm -e w3m」となってました。
(ターミナル上で w3m は動きます)
で、インタプリタで

>>>import webbrowser
>>>webbrowser.open('http://yahoo.co.jp/')

とモジュールのテストをしたら同じエラーがでてきたので、
KittyWalk の問題じゃないみたいです。
でも、どうすれば委員だろ?

# Windows 上では問題ありません。

734730:03/04/22 21:02
つづきというか、ついでに。

Windows98SE 上で久しぶりに動かした時に気がついたのですが、
KittyWalk をメニューの終了を使って終らせた時は、きちんとコマンド
プロンプトがでる状態に戻るんだけど、右上の終了ボタンをクリックした
場合は、DOS 窓が固まってしまいます。

また、Linux 上で動かした時より、トレースバックを吐くことが
多いみたいです。(Win98のせい?)
再現性を確認するまでに至ってないので、アレですが、
設定でタブの開き方を変えた直後のスレッドの読み込みで固まって
しまうことが二度ほどありました。Linux 上ではマトモです。

735onefifty ◆ismFPlKHko :03/04/23 00:14
どうもありがとうございます。
どうしましょうっかねぇ。考えてみます。ソース読んだら何か分かりそうですし。
トレースバックを吐いても、ほったらかしの部分が多いので、
きちんと、バグをつぶしていきたいと思います。
>>733
環境変数 BROWSER を定義し直せばいいのでは?
シェルの設定ファイル (~/.bashrc など) を書き換えてもいいし
$ env BROWSWER="mozilla" python kittywalk.py
のように KittyWalk に対してのみ再定義してもいい。
後者をエイリアスにしておくのもいいね。
737736:03/04/23 05:25
>>733
あ、誤読したかも。kterm -e w3m を使うにはどうすればいいか、だよね。
チラッと webbrowser.py を読んでみた。%s を含めると良いみたい。
$ BROWSER="kterm -e w3m %s" python kittywalk.py
今まで mozilla が起動しちゃって難儀してたんだけど
$ BROWSER="netscape -remote 'openURL(%s,new-window)'" python kittywalk.py
とやったら非常に具合がよくなった。
正規表現を使っていたら
sre_constants.error: bogus escape (end of line)
というエラーが出たのですけど、この
bogus escape
というのはどういう意味ですか?
>>738
正規表現の中に変なエスケープ記号 (バックスラッシュ) が入っている、ということだと思われ。

bogus [形] (けなして) にせの、いんちきの
少し前にMLで話題になっていた日本語を扱うためのライブラリをまとめる?話はどうなったのですか?
立ち消えですか?

カタカナ <--> ひらがな
全角かな <--> 半角かな

などが簡単に操作できると、便利だと思うのですが。
741デフォルトの名無しさん:03/04/26 10:41
http://www.python.org/2.3/
Python 2.3b1
We are pleased to announce the release of Python 2.3b1 on April 25, 2003.
742名無しさん:03/04/26 20:27
windowsでpyqt使いたいんだけど
どこからダウンロードすればいいのか分からないよ。
だれか知らない?
>>742
http://www.riverbankcomputing.co.uk/pyqt/download.php
今度からは自分で検索しような。お兄さんとの約束だ。
744デフォルトの名無しさん:03/04/27 10:12
Pythonでマイクからの入力をどうやったら取れますか?
745デフォルトの名無しさん:03/04/27 13:29
>>743
入れてみたけどこんなんなっちゃった!!!


>>> import qt
Traceback (most recent call last):
File "<pyshell#0>", line 1, in ?
import qt
File "c:\python22jp\lib\site-packages\qt.py", line 28, in ?
import libsip
ImportError: DLL load failed: 指定されたモジュールが見つかりません。
746デフォルトの名無しさん:03/04/27 14:04
>>745
http://digit.que.ne.jp/visit/index.cgi?PyQt の下のほう嫁。
Googleを使えないんだったら、Pythonとか何とか言う前にそっちを先に覚えろ。
So what?
Oh! What a night!
終わらない?
750デフォルトの名無しさん:03/04/27 16:13
日本語で質問させてください。

print "可能"
とすると、"能" の文字が '\x94', '\\'
となっているため(?)か、

SyntaxError: EOL while scanning single-quoted string

というエラーが表示されます。
対処法を教えてください。

使っている Python のバージョンは最新の 2.3b1 です。
> 日本語で質問させてください。
他の言語で質問するのは非常識ですものね。


EUC-JPを使いましょう。
752デフォルトの名無しさん:03/04/27 20:04
>>746
ファイル全部インストールしたよ!!!
でもダメぽ・・・
PyQtのExampleのasclock.pyがAdminだと動くんだけど普通のユーザじゃだめーーー
qt-mt230nc.dllが見付からないっていわれちゃう。
Windows/XPプロでAdminでインストールしちゃったから?
753デフォルトの名無しさん:03/04/27 20:29
>>752
Adminで生活すれば?素直に。
>>750
2.3ならファイルエンコーディング指定を使うのがよいのでは。
ファイルの先頭 (1行目) に次のように書いておけばOK。
# -*- coding: Shift_JIS -*-
もちろんShift_JISではなく他の文字コードでも可。
日本語文字コードの場合は適当なコデックをインスコしておくこと。
>>754
2.3って結構べんりなんだ。まだ、betaだから敬遠してたけど、
早速使っみます。ところで、2.3になって便利になった機能って何ですか?
756162:03/04/27 23:17
kittywalk 0.1 でパピコしてみゆ。
Red Hat Linux 7.3, Python 2.3b1, Tcl/Tk 8.3.4, Pmw 1.1, JapaneseCodecs 1.4.9 で動作確認。

kittywalk-0.1.tar.gz はディレクトリ名込みでアーカイブした方が良いと思います。

全板試したわけではないですが、なぜか「AAサロン」だけスレ一覧が表示できませんでした。
「スレ一覧を作成中...」と出るだけで何も表示されません。
その後、他の板を選択するとちゃんと表示されます。

あと、Python 2.3 だと以下のようなメッセージが大量に出ます。
今のところ実害はないですが>>754の要領でファイルエンコーディングを指定しておくのはどうでしょうか。
/home/mona/kittywalk-0.1/threadpane.py:12: DeprecationWarning: Non-ASCII character '\x96' in file /home/mona/kittywalk-0.1/postdialog.py on line 30, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
>>755
sets とか itertools が個人的には(゜д゜)ウマー
ここにコピペしようと思って http://www.python.org/2.3/highlights.html を和訳したけど
はっきり言って長すぎる・・・。


    ど う す れ ば い い ん だ
759onefifty ◆ismFPlKHko :03/04/28 11:01
>>756
これからは、ディレクトリを散らかさないようにします。
AAサロンの件は調べて修正します。
エンコーディング指定は、早速いれておきます。
760onefifty@kittywalker:03/04/28 11:32
AAサロンのサーバが変わったみたいです。[設定]→[板一覧の更新] で直ります。
ちゃんとエラー表示するように修正します。
>>758
このハイライトのさらにハイライトを書けばいいのさ。
っていうかここよりPyJUGのNewsに載せた方が良くないか?
ぼちぼち 2.3 用の日本語コーデックの Windows 向けのインストーラーがほしいかも。
763162:03/04/28 13:13
>>758
AAサロンの件、回答ありがとうございます。ちゃんと直りますた。

ところで漏れは SVGA のノート PC を使ってるので時々メッセージビューを最大化したくなります。
というわけでトグルスイッチを付けてみますた。変数等の名前の付け方がいいかげんでスマソ。
もし取り込んでもらえるなら適当に名前を付けかえて下さい。
ちなみに TriPaneFrame.(left|right_top)_size に現在のペインサイズが残るので
終了時に保存して次回の起動時に復帰してくれると嬉しい気がします。

[gui.py]
class GUI(Tk.Tk):
  def make_widgets(self):
     :
    self.tri_pane_frame = tri_pane_frame
    self.tri_pane_metrics = None
     :
  def maximize_message_view(self):
    if self.tri_pane_metrics is None:
      self.tri_pane_metrics = (self.tri_pane_frame.left_size,
                   self.tri_pane_frame.right_top_size)
      self.tri_pane_frame.hpanes.configurepane("left", size=0.0)
      self.tri_pane_frame.vpanes.configurepane("top", size=0.0)
    else:
      left, right_top = self.tri_pane_metrics
      self.tri_pane_frame.hpanes.configurepane("left", size=left)
      self.tri_pane_frame.vpanes.configurepane("top", size=right_top)
      self.tri_pane_metrics = None
764162 (続き):03/04/28 13:14
class MenuBar(Tk.Menu):
  def build(self):
     :
    viewmenu = Tk.Menu(self)
     :
    viewmenu.add_command(label=j("メッセージの最大化(X)"),
               command=guicommand.maximize_message_view,
               underline=5,
               font=font)

[kittytk.py]
class TriPaneFrame(Tk.Frame):
  def __init__(self, parent=None, **kw):
    panes = Pmw.PanedWidget(..., command=self.hresize)
     :
    right_panes = Pmw.PanedWidget(..., command=self.vresize)
     :
    self.hpanes = panes
    self.vpanes = right_panes
     :
  def hresize(self, width):
    self.left_size = width[0]

  def vresize(self, height):
    self.right_top_size = height[0]

[guicommand.py]
def maximize_message_view():
  assert WIDGET.is_ready()
  WIDGET[WINDOW].maximize_message_view()
765162:03/04/28 13:18
>>764 事故レス
「メッセージの最大化」のメニューアイテム追加のところ、
underline=10 とすべきでした。スマソ。
766デフォルトの名無しさん:03/04/28 20:38
Pythonをバージョンアップする時にどうすれば、
今までインストールしたモジュール(PyQt等)をそのまま使えますか?
test
>>766
環境変数 PYTHONPATH で先に古い方の site-packages を見に行くようにするとか。
でもきっとロクなことにならないと思う。面倒でもバージョンに合ったものを
新たに入れるのが得策。
769デフォルトの名無しさん:03/04/28 21:41
>>753
そんなー。
普通Adminで生活しないでしょーー?
それともPythonな人はみんなそうなの?
やっぱRubyにしといた方がいいかぁ・・・
>>769
Googleも使えないようなアフォはどこへ行っても嫌われますよ。
>>752
NTFSか?
そのDLLのあるディレクトリのアクセス権限を確認。
KittyWalk-0.1
ツールの設定で「お気に入りダブルクリックで新しいタブを開く」だけ
有効にしておいた状態で、

・お気に入りからスレッドを一つ読み込む。
・スレッド一覧から、別のスレを読み込む。--> 既存のタブを使って新しい
スレを表示。
・お気に入りから最初に読んだスレを読み直そうとするができない。
(別のタブを開くはず)

となります。設定のタブの読み込みについて、チェックの入れ方を
逆にしても同じような症状となります。
環境は Vine Linux 2.6, JapaneseCodecs1.4.9, Pmw1.1 です。
トレースバックが長いので次に貼ります。
773つづき:03/04/28 23:36
$ Exception in Tkinter callback
Traceback (most recent call last):
File "/var/tmp/python2.2.2-2.2.2-root/usr/lib/python2.2/lib-tk/Tkinter.py", line 1300, in __call__
return apply(self.func, args)
File "Pmw.py", line 6669, in doubleEvent
_handleEvent(event, 'double')
File "Pmw.py", line 6972, in _handleEvent
_listboxCache[event.widget]._handleEvent(event, eventType)
File "Pmw.py", line 6939, in _handleEvent
command()
File "gui.py", line 379, in open_selected_item
self._open_command()
File "gui.py", line 365, in open_new_page
guicommand.open_new_page(self.selected_item())
File "guicommand.py", line 94, in open_new_page
WIDGET[MESSAGEVIEW].open_new_page(item)
File "threadpane.py", line 69, in open_new_page
self.threadview_pages.open_new_page(thread)
File "threadpane.py", line 356, in open_new_page
self._append(thread)
File "threadpane.py", line 420, in _append
page = self.add(thread)
File "threadpane.py", line 453, in add
return Pmw.NoteBook.add(self, self._make_index(index))
File "Pmw.py", line 4369, in add
return apply(self.insert, (pageName, len(self._pageNames)), kw)
File "Pmw.py", line 4291, in insert
raise ValueError, msg
ValueError: Page "<bbs.Thread object at 0x87402c4>" already exists.

とりあえず、不自由はしていないです。(w
774デフォルトの名無しさん:03/04/29 12:27
>>771
ありが豚。
良くわかんなかったけどC:\qt\binにあったqt-mt230nc.dllを
C:\python22jp\Lib\site-packagesにコピーしたら動くようになったよ!
これでPyQt使えるよ!
でも英語の本しかないね…
>>774
しかしおめーは文句ばっかだな。rubyにすれば?
776デフォルトの名無しさん:03/04/29 16:53
文句いいたくなるような点が多いって子とだろ。
これだからぴチョにぁは(りゃ
漏れは、英語とはいえドキュメントとライブラリがしっかりしているだけ
ぴちょんの方がrubyよりなんぼかマシと思うが。
778onefifty:03/04/30 12:54
>>763
そのまま使わせていただきます。多謝。

>>772
Windows 2000/XP でも、同じ症状が出るのを確認しました。
修正を試みます。
779デフォルトの名無しさん:03/04/30 18:41
#!/usr/bin/env python

#xmlをある要素の値で並び替えたいのですがわかりません。下の例でいうとname要素の値で並びかえたいのです。

from xml.dom.minidom import parseString

xml="""<?xml version="1.0" encoding="UTF-8" ?>
<file>
<item>
<name>b</name><value>4</value>
</item>
<item>
<name>c</name><value>2</value>
</item>
<item>
<name>a</name><value>3</value>
</item>
</file>"""

doc = parseString(xml)

datalist = []
for node in doc.firstChild.childNodes: 処理
#てな具合いでdatalistに追加していってsortし、もう一度domオブジェクトを作り直せばできそうですがそんな面倒なことやるんでしょうか?


>>614
そろそろ公開きぼん
>>779
面倒だけどそういうものだと思われ。DOM の他に XSLT も使える。

from xml.xslt.Processor import Processor
STYLESHEET = """\
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="file">
<xsl:copy><xsl:apply-templates select="@*" />
<xsl:for-each select="item">
<xsl:sort select="name" order="ascending" />
<xsl:apply-templates select="node()" />
</xsl:for-each>
</xsl:copy>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy><xsl:apply-templates select="@*|node()" /></xsl:copy>
</xsl:template>
</xsl:stylesheet>
"""

XML = """\
<?xml version="1.0" ?>
<file>
<item><name>b</name><value>4</value></item>
<item><name>c</name><value>2</value></item>
<item><name>a</name><value>3</value></item>
</file>
"""

processor = Processor()
processor.appendStylesheetString(STYLESHEET)
print processor.runString(XML)
pat = re.compile('(a|b|c)foo')
に対して、
pat.search(line)
のようにやって、マッチしたときに、
()の中にある、 a b c のどれにマッチしたのか調べる方法はありますか?

上の例でいえば、 a, b, c の部分を抜き出したいのですが。
pat.search(line).groups()[0]
で、(a|b|c) にマッチした部分を取り出せます。
pat.search(line).group(1) でも可。
785デフォルトの名無しさん:03/05/01 07:52
>>781
おお、XSLTというのがあるのか。
名前は聞いたことあるけど使ったことなかった。
STYLESHEETでところどころ何かいているかちんぷんかんぷんですが、これから勉強します。ありがとうございますた。
で、自分でminidomオンリーでやってみたのですが、思ったよりすっきりできたかも?

#!/usr/bin/env python
from xml.dom.minidom import parseString
from xml.dom.ext import PrettyPrint
xml="""<?xml version="1.0" encoding="UTF-8" ?>
<file>
<item>
<name>b</name><value>4</value>
</item>
<item>
<name>c</name><value>2</value>
</item>
<item>
<name>a</name><value>3</value>
</item>
</file>"""
doc = parseString(xml)
items = doc.getElementsByTagName("item")
items.sort(lambda v1, v2: cmp(v1.getElementsByTagName("name")[0].firstChild.data, v2.getElementsByTagName("name")[0].firstChild.data))
for item in items:
doc.firstChild.removeChild(item)
doc.firstChild.appendChild(item)
PrettyPrint(doc)
>>783-784
両方でできました。
ありがとう。
urlopenって、1回使って、また同じURL開こうとしたら
さっき開いたのが出るんですけど、そういう仕様なんですか?
出来れば避ける方法を教えて欲しいのですが。
kittywalk-20030503
「お気に入り」に入っている板をダブルクリックしてスレ一覧を出した後で
再度同じ板を選択してリロードしようとすると失敗してしまいます。
他の板を選択すると、ちゃんと読み込めるのですが一度読み込んだ
板の一覧は、2回目以降の読み込みで失敗するみたいです。
スレ一覧の上にある「板名」は変わるのですが、スレ一覧自体は
変化しませんでした。
# ステータスラインに取得に失敗と出てきます。(リリースメモ)
# コンソールにはなにも出てきません。

自分の環境は note(svga) なので、メッセージペインの最大化は
トテーモありがたいです。
789onefifty:03/05/06 14:35
>>788
報告ありがとうございます。動作確認しました。
エンバグしたみたいです。しばらくお待ちくださいませ。
ライブラリ・リファレンスの検索サイトって無いのですかねぇ?
phpマニュアルサイトみたいな。
日本語訳のhtmlファイルはダウンロードしてあるのですが、namazuが嫌いなんで
勉強がてら全文検索cgiを自作してるところです(phpで(笑)。
>>790
> ライブラリ・リファレンスの検索サイトって無いのですかねぇ?
> phpマニュアルサイトみたいな。
phpは知らん上に例の如く英語だが、
ttp://web.pydoc.org
はどうかね。
>>790
ここは?
http://www.python.org/search/
「website」だけチェックするか、「advanced search」に進んで
「Python documentation」だけチェックすればヨサゲ。

もっとも漏れ的にはライブラリリファレンスを全文検索したいという
要求があまりないので、多少ノイズがあっても Google で済ませてしまう。
検索語と一緒に site:www.python.org を指定するのもいい。
793790:03/05/07 20:24
>>791,792
ありがとうございました。
「全文検索」が完成したらどこかに置いときます。
794793:03/05/07 20:26
>「全文検索」が完成したらどこかに置いときます。
もちろんpythonで書き直したやつです。
>>793-794
どういう全文検索なのか簡単に解説キボン。
ユーザーからraw_inputで受け取ったメソッドを実行するにはどうしたら
いいでしょうか?
>>796
組込み関数 getattr でメソッドオブジェクトを取り出してコールする。例:

class A:
  def test(self):
    print "OK"

a = A()
m = getattr(a, raw_input(">>> "))
m()
> 勉強がてら全文検索cgiを自作してるところです(phpで(笑)。

おい、なんでpythonじゃないんだ
>>798
まだpythonがよく解っていないからです。
モノは(phpで)だいたい完成したので、あとは時間的な余裕をみてpythonで
書き直します。
>>785
parseStringもしくはparseで生成したDOMオブジェクトはencoding属性がどっか逝っちゃうのですが、なんとかなりませんか。
つまり<?xml version="1.0" encoding="UTF-8" ?>が<?xml version="1.0" ?>になってしまうのです。
attributesプロパティを利用すれば通常のエレメントには属性が設定できますが<?xml ?>にはできないみたいというかやり方がわかりません。

現状ではstring.replaceで対応しているのですが、スマートでなさスギです。
>>800
Python (と PyXML) のバージョンは?
赤帽7.3標準の Python 1.5.2 + PyXML 0.7 と
野良インスコした Python 2.3b1 + PyXML 0.8.2 で試したけど
<?xml version='1.0' encoding='UTF-8'?> って出たよ。
ただ、PrettyPrint() だとデフォルトで UTF-8 になっちゃうみたいなんで、
予めエンコーディングが分かっているなら
PrettyPrint(doc, encoding="ISO-8859-1")
のように指定すればよいと思われ。PyXML 0.8.2 の minidom では
PrettyPrint(doc, encoding=doc.encoding)
のように書くこともできますた。他にもやり方がありそうな気がする。
>>800
PrettyPrintだとたしかにできます。しかし実際はtoxmlメソッドを使ってたのでソースを眺めたらencodingの指定がデフォルトでNoneになってたのが原因のようでした。
doc.toxml(encoding=doc.encoding)でokでした。ありがとうございますた。

ただ、toxmlはエレメントをremoveしたりすると空行が残って見苦しいですね。
ファイルに出力を書き出したかったのでtoxmlメソッドかなと思ったのですが、PrettyPrintでも出力先が指定できるのですね。ファイルハンドルを渡してやればよかった。

fh = open("foo","w")
PrettyPrint(doc, stream=fh)
fh.close()
803162:03/05/10 10:39
kittywalk-20030510 でパピコ。
>>756でお願いしたファイルエンコーディングの指定が効いてないみたいです。
スペルミスっぽいので修正をおながいします。
804onefifty:03/05/11 12:52
>>803
うげ。すみません。2.3を動かして確認してませんでした。
やっときます。
Python と関数型言語を比較して、
「関数型言語の一部の機能を取り込んでいるPythonはうまくいっているのに、
どうして、関数型言語は人気がないままなのか」
といったことを批評したページがあったのですが、URLを知っている人はいないでしょうか?

たしか、どれかの関数型言語のオフィシャルページの一部にあったと思うのですが。
>>805
これかな?
http://caml.inria.fr/archives/200303/msg00070.html
ザッと読んでみたけど結構面白いスレだと思いますた。
os.system の出力をプログラムの中でうまく捕まえるにはどうすればいいのですか?

できれば、
msg = os.system('command')
というような使い方が出来るとうれしいのですが、、、、
>>807
os.popen() を使うべし。
>>808
サンクスコ
>>806
それとは別っぽい。
メーリングリストではなく、記事のような感じだったから。
言語のサイトではなく、個人のサイトだったかな、、、
811796:03/05/13 00:14
>>797
ありがとうございます。
>>807
commands.getoutput()ってのもあるよ
>>810
「人間が何かをやろうとするときには、まず手順から思いつくから」
みたいな議論のやつだっけ。
>>810
これか?
Functional Programming: Why no one uses functional languages
SIGPLAN Notices 33(8):23-27, August 1998.
http://www.research.avayalabs.com/user/wadler/topics/recent.html#why

検索に使えそうな特徴的な語句があると見つかりそうなんだが。
815デフォルトの名無しさん:03/05/14 10:22
>>815
PyJUGの方でいち早く流れてたけど具体的にどう実装されているのかがまだよくわからん。
情報キボ〜ン。
>>814 >>816
それとも違うなぁ、、、
自分も functional, map, zip, filter, popular といったキーワードを Python と絡めつつ google してるのだけど、
どうしてうまくヒットしてくれない。
カンタンに見つかると思ったのだけど、、、

全然参考にならないけど、レイアウトは枠線で囲まれた領域に大体ブラウザーでみれば、
1.0 - 1.5 ページくらいの分量のドキュメントでした。
Pythonでの関数プログラミング
ttp://www-6.ibm.com/jp/developerworks/linux/010615/j_l-prog.html

これだろう。
あるクラスの持つメソッドを調べるにはどうしたらよいでしょうか?
>>> dir(cls)
dir(klass)
じゃだめなの?
こんな時間帯にかぶってるし。
自力で継承関係をたどってメソッドを列挙してみるテスト。

from types import MethodType

def list_method(klass, list=None):
  if list is None:
    list = []
  for name in klass.__dict__.keys():
    if name not in list and type(getattr(klass, name)) is MethodType:
      list.append(name)
  for base in klass.__bases__:
    list_method(base, list)
  return list

class A:
  foo = None
  def spam(self): pass

class B(A):
  def spam(self): pass # override
  def monty(self): pass

class C(B):
  bar = None
  def python(self): pass

print A, list_method(A)
print B, list_method(B)
print C, list_method(C)
>>787
遅レスだけど urllib 自体は勝手にファイルをキャッシュしたりはしないと思う。
経路上にプロキシがあるのかも。指定した覚えがなければ透過型かも知れない。

HTTP のヘッダで強制的にプロキシにキャッシュをやめさせることができるので
コード例を張っとく。

import urllib

urlopener = urllib.FancyURLopener()
urlopener.addheader("Pragma", "no-cache")
fp = urlopener.open(URL)

あとは urllib.urlopen() と同じ。
>>821-824
ありがとうございます。
>>826
継承関係やら何やら一切合切まで欲しいなら、
>>> help(cls)
とかも。
>>825
おお、サンプルソースまで書いてくれてありがとうござい!
実は禁断の2getツールを作ろうとしたんだけど、更新しても更新しても
変わらないことに気づいちゃいますた。

そういえば、urllibはproxyを自動的にOSから読んでどうのこうのするとか聞いたような…
>>828
おっと、まだ見てますたか(w
urllib でプロキシを使うには環境変数 http_proxy を設定する。例えば、

$ env http_proxy=http://localhost:8080 python app.py

という具合に指定できる。この環境変数の設定がなければ勝手にプロキシを
使うということはないと思う。それでももしプロキシが使われているような
感じならネトワクの経路上に透過型のプロキシがあるということだと思われ。

ちなみにさっきのサンプルは今日書いたスレ常時ageスクリプトから取りますた。
subpack.htmlを見て他のスレより下がっていたら自動でageて業者を釣るのです(w
クラスを作るときに普通に
class Foo:
とやるのと
class Foo(object):
とやる流儀があるみたいですが、なにか違いがあるのですか?
>>830
クラスを継承するかしないかの違い
多重敬称の場合はクラスを","で複数書く
>>831
class A(B):
とすれば、 B を継承しているというのはもちろん知っているのですが、
聞きたいことは、単発のクラスで object(type) を継承しているものを時々見かけるので、
object を継承すると、なにかうれしいことでもあるのかと思ってね。
objectを継承しないとsuper()とかが使えないんじゃなかったっけ?
834162:03/05/20 18:42
kittywalk-20030520 リリース記念パピコ。
Python 2.3 用の coding 指定、ちゃんと効くようになりますた。サンクス。

ところで初めて読んだスレの前に○が付かなくなった気がするんですが前からでしたっけ?
(KittyWalk を再起動すると未読なしの場合には○が付きます。これは期待通り)
>>1http://www.python.jp/Zope/ を wwwc でチェックするには、
URLをどう設定すればいいの?
836onefifty:03/05/21 07:32
>>834
あれ? いつの間にか○が付かなくなっていますね。
報告ありがとうございます。
命名規則ってどんな感じにしてますか?
とくに命名規則というほどのものはないけど、女の子ならやさしい感じ、
男の子なら強くたくましい感じかな。
お父さんやお母さんの名前から一文字もらうことも多い。
( ´_ゝ`)フーン
はずしmasta
>>837
漏れ的命名規則:

・関数名、メソッド名: 英語の動詞+目的語 (例: open_file)
・変数名: 英語の名詞句 (例: remote_file)
これらは各語をアンダースコアで区切る。

・クラス名: 動作の主体を表す名詞句 (例: RemoteFileOpener)
この場合は各語の頭文字を大文字にしてつなぐ。

・モジュール名、パッケージ名: ○○lib とか ○○utils とかそんな感じ。
アンダースコアなしで全部小文字することが多い。

単語ひとつのときは省略せずに使うことが多い (buf より buffer の方が好き)。
一文字の変数名をよく使う (i, j, k, v など)。
日本人が作った Python の有名アプリってあります?
843デフォルトの名無しさん:03/05/22 00:07
WinXPでpythonはじめようと思うんですが、
ActivePythonと日本Pythonユーザー会においてあるやつと。
どっちを導入すればよいですか。
どうもActiveのほうが便利そうなんですが。

またActivePythonは日本語対応ではないと思われますが。
これとSJIS対応Pythonをマージすることはできるでしょうか。
日本語の処理を想定しています。
ふつうにコーデックで処理したほうがいいでしょうか。

あと「これも持っとけ」みたいなのがあったら教えてください。
よろしくお願いします。(いっぱい質問してスマソ)
844名称未設定:03/05/22 00:16
>>842
Pythonアプリとはいえないけど、KaaEditは有名な方?

>>843
ActivePythonの方が便利だけど、
PyJUGのやつに以下
http://www.python.jp/Zope/download/win32all
いれたやつでもいい気がする。

WinでSJISバリバリならPyJUGのがよいかも。
コデックは必須だとおもわれ。

あとはPyK
http://www.gembook.jp/page.pys?wiki=PyKf
とかいれとけばスタートとしてはいいのでは?
845デフォルトの名無しさん:03/05/22 00:29
>>844
ありがとうございます。
とりあえずPyJUGのやつで環境作ってみます。
PyKは未発見だったので助かりました。
>>844
> Pythonアプリとはいえないけど、KaaEditは有名な方?
KaaEdit の作者には失礼かもしれないけど、Ruby の tDiary みたいに多くの人に利用されている
ソフトはないのですか?
Python に疎い人でも名前は知られているようなソフト。
海外だと Mailman とかたくさんあるみたいだけど。
インストーラーとか?
>>846
無い。(キッパリ
Pythonで日本語使う場合って、
入出力はEUCとかS-JISで、内部的にはUTF-8?
>>849
プログラム次第。内部コードとして EUC-JP や Shift_JIS を使うことも
Unicode を使うこともできる。
>>848
さわやかですね。
>>849
str オブジェクトは 8 ビットデータのシーケンスなので、
エンコード(Shift_JIS、EUC-JP、UTF-8などなど)された文字列に対して、
len() や正規表現を使うときは、注意が必要。EUC-JP で
import re
print len("ぱいそん"), re.search("修","ぱいそん")
を実行すると、
8 <_sre.SRE_Match object at 0x007B9CA8>
って表示される。

Unicode オブジェクトは、Unicode 文字のシーケンスになる。reもUnicode対応。
import re
s = unicode("ぱいそん","euc-jp")
print len(s), re.search(unicode("修","euc-jp"),s)
を実行すると、
4 None
853名称未設定:03/05/23 06:01
>>845
もと文がおかしいがPyKでなくてPyKf。f必要。

>>846
ないね。
でもMailmanのソース中には日本人の記述した部分もある。
ほかのにも日本人ソースはいってる事あるみたい。

でもオリジナル物がないのは問題か。
854デフォルトの名無しさん:03/05/23 10:23
>>846
> 無い。(キッパリ


有名かどうかは別にしていくつかある。

あれ以外の何か with "任意" (Python+GTK+)
http://www.geocities.co.jp/SiliconValley-Cupertino/7565/

Gikot
http://gikot.sourceforge.net/

KittyWalk
http://kittywalk.sourceforge.jp/

ほかにもあった気がするが、、目的プラットフォームがLinux的な物が多い感じ。
ninix や Gikot は、海外に向けて積極的に紹介すれば、受けそうな気がする。
あとムネオのPEP263実装とか。
日本人が作ったアプリケーションだと何かいいことあるの?
>日本人が作った Python の有名アプリってあります?
E-CELL3は?
857デフォルトの名無しさん:03/05/23 11:43
jython と Python
どっちが速いですか?
858Python-2.2.2/wxPython-2.4.0.7@Win32:03/05/23 13:37
wxPython使っている人いますか?
XRC/XML resourceで日本語が使えなくて困惑中です。
>856
> >日本人が作った Python の有名アプリってあります?
> E-CELL3は?

http://ecell.sourceforge.net/
これか。慶應が開発の中心かな?
その方面では有名?

>>857
Javaの方が速度は早い。

>>858
結構利用されているけど日本語のあつかいが(Windows以外では)いまいち。

サンプルなら以下の2ちゃんねるブラウザのソースみてみたら?
http://monarch.sourceforge.jp/
>>859
> Javaの方が速度は早い。

なんのこっちゃ?
KittyWalk のお気に入りの編集ができたらなぁ、と思い要望をだそう
かとも思ったけど、bookmark の編集をするだけなら洩れみたいな
厨房でもできるかもとつくてみた。
Python も Tkinter もプログラミングも初心者なのでよくわかんなかったけど、なんとか動くものがでけたよ。
>>861
俺なんかKittyWalkにメーラ装備してるぞ。
とくに意味はない。
863162:03/05/23 20:47
>>861-862
余はペインサイズを保存して再起動時に復帰するパッチを晒す。
そち達も修正点をまとめてコピペするが良いぞ。

[kittytk.py]

import gui # 追加

class TriPaneFrame(Tk.Frame):
  def __init__(self, parent=None, **kw):
     :
    size = gui.CONFIG.get("Window", "HPaneSize") # 追加
    panes.add("left", size=(size is not None) and int(size) or 0.35) # 修正
     :
    size = gui.CONFIG.get("Window", "HPaneSize") # 追加
    right_panes.add("top", size=(size is not None) and int(size) or 0.35) # 修正

  def hresize(self, width):
    self.left_size = width[0]
    gui.CONFIG.set("Window", "HPaneSize", self.left_size) # 追加

  def vresize(self, height):
    self.right_top_size = height[0]
    gui.CONFIG.set("Window", "VPaneSize", self.right_top_size) # 追加
864162:03/05/23 20:53
>>863
あ、バグ発見・・・ (^^;;;

size = gui.CONFIG.get("Window", "VPaneSize") # HPaneSize は誤り
right_panes.add("top", size=(size is not None) and int(size) or 0.35)
ここから

【文句】kittyWalkを育てるスレ【あるか?】

に変更されますた
ナニヲイマサラ(w
867onefifty:03/05/23 21:59
>>861-862
うほ。ソースくださいませ。
>>633
いただきます。
KittyWalk の bookmark を編集する tiny tool。
・自分で使えればいいので、bookmark のなかみをもろ表示してます。
・エラーチェックとかもしてないす。
・こんなしょぼいのでいいんでしょうか?

from Tkinter import *
import fileinput, os
import tkMessageBox

BOOKPATH = '~/.kittywalk/bookmark'


class App(Frame):

  def __init__(self, master=None):
    Frame.__init__(self, master)
    self.pack()
    self.master.title('KittyWalk Bookmark Editor')
    self.createWidget()

  def createWidget(self):
    mfm = Frame(self)
    mfm.pack()
    
    scrollbar = Scrollbar(mfm, orient=VERTICAL)
    self.listbox = Listbox(mfm, width=50, yscrollcommand=scrollbar.set)
    scrollbar.config(command=self.listbox.yview)
    scrollbar.pack(side=RIGHT, fill=Y)
869つづき:03/05/23 22:21
    self.infile = os.path.expanduser(BOOKPATH)
    for item in fileinput.input(self.infile):
      self.listbox.insert(END, item)
    self.listbox.pack()

    fm = Frame(self)
    fm.pack(pady=3)
    
    btnUp = Button(fm, text='Up', command=self.up)
    btnUp.pack(side=LEFT)
    btnDown = Button(fm, text='Down', command=self.down)
    btnDown.pack(side=LEFT)

    btnDel = Button(fm, text='Delete', command=self.delete)
    btnDel.pack(side=LEFT, padx=10)

    btnSave = Button(fm, text='Save', command=self.save)
    btnSave.pack(side=LEFT)

    btnQuit = Button(self, text='Quit', command=self.quit)
    btnQuit.pack(side=RIGHT, padx=3, pady=3)

  def delete(self):
    if self.listbox.curselection():
      self.listbox.delete(self.getitemno())
870つづき:03/05/23 22:24
  def up(self):
    if self.listbox.curselection():
      itemno = self.getitemno()
      if itemno == 0:
        return
      item = self.listbox.get(itemno)
      self.listbox.delete(itemno)
      self.listbox.insert(itemno-1, item)
      self.listbox.select_set(itemno-1)
      self.listbox.see(itemno-1)

  def down(self):
    if self.listbox.curselection():
      itemno = self.getitemno()
      size = self.listbox.size()
      if itemno == size-1:
        return
      item = self.listbox.get(itemno)
      self.listbox.delete(itemno)
      self.listbox.insert(itemno+1, item)
      self.listbox.select_set(itemno+1)
      self.listbox.see(itemno+1)

  def save(self):
    os.rename(self.infile, self.infile+'.bak')
    f = file(self.infile, 'w')
    for x in range(self.listbox.size()):
      str = self.listbox.get(x)
      f.write(str.encode('utf-8'))
    f.close()
    tkMessageBox.showinfo(message='The bookmark was saved.')
871おしまい:03/05/23 22:25
  def getitemno(self):
    return int(self.listbox.curselection()[0])
  

if __name__ == '__main__':
  if os.path.isfile(os.path.expanduser(BOOKPATH)):
    app = App()
    app.mainloop()
  else:
    print 'bookmark not found'

# eof
(・∀・)イイヨイイヨー
>860
> > Javaの方が速度は早い。
> なんのこっちゃ?

たしかに自分でかいたのに意味不明だ。

>>861
> Python も Tkinter もプログラミングも初心者なのでよくわかんなかったけど、
> なんとか動くものがでけたよ。

Pythonってあんがいそういう所がある。
直観でなんとなく動作する物ができてしまう。
すぐできてしまうので、意外と公表されないという部分はあるのかも?
874onefifty ◆DH9qKmT7Es :03/05/23 23:23
>>868
このまんま、KittyWalk と一緒に配ってよかですか?
そのうち、ちゃんとしたのを作りますので。
>>873
学習曲線が緩やかなんだよね。とっつきやすいし急に難しくなることもない。
それでいて経験者の高度な要求にも応える。バランスがとてもいい。

876868:03/05/23 23:48
>>874
こんな初心者へぼコードでもいいんですか? (w いいですよ。
Windows だと bookmark のある path を書き換えないといけないんじゃ
ないかなぁ。Win98 と 2000 でも path が違ったような気がしますが、
最近 Windows あまりいじってないので、未確認です。

# これを機会に KittyWalk に組み込めるようにソースを読んで
# 勉強してみようかなぁ。
877onefifty ◆DH9qKmT7Es :03/05/24 09:50
>>876
KittyWalk のソースは、もうぐちゃぐちゃなので、ご自身でブラウザを作ったほうがいいかも。
Monarch のほうが、512倍きれいですよ。
今のバージョンの KittyWalk は、そろそろ捨てる頃かなと思っています。
# 猫グッズの商標とも被ってるし。
wxPythonってpython2.2.2に対応してないの?
>>877
商標は業界が異なっていれば問題ないけどね。
>>879
実際に何の分類で取られているかは念のため特許庁のデータベースで調べた方が
いいですね。
これでコナミとかMicrosoftとかのとってる商標を見ると面白いです。
881デフォルトの名無しさん:03/05/25 10:35
Pythonって、Javaなどとは違って、変数自体もオブジェクトなんですか?
どんなんだそれ。イメージ沸かん。
つまり代入や参照がメッセージ授受になるわけだろ。
884デフォルトの名無しさん:03/05/25 13:17
python2に対応した日本語の書籍って、もしかしてまだないですか?
>>882
LISP みたいな感じじゃない?
886デフォルトの名無しさん:03/05/25 13:51
>>882

int i;
string s;

s = i.tostring();

とかじゃないの?
変数(名前)に型があるんじゃなくて、オブジェクトに型があるんだよね。
print "foobar".find("bar")

ナンダカキモチワルイ....
889868:03/05/25 15:15
>>877
勝手に名前候補。
・kitty litter - 猫用トイレ(w
・kittle - 当てにならない、気まぐれ、扱いにくい
・monamania - モナリザ狂 (2ch 専用ブラウザっぽい?)

Python 覚えたら作ってみたいアプリはファイラーです。
Windows 上にはたくさんあって、好きなものが選べるけど Linux で
使いやすいのがなくて。
エクスプローラーライクな奴は嫌いだし、FD clone はいまいち。
Windows 上では DF 使ってます(これなしでは Win 使う気がしない)。
http://homepage1.nifty.com/bee/df/

# スレ違いスマソ。
試しにMonarchを動かしてみたんですけど

Traceback (most recent call last):
File "D:\PROGRA~1\PYPY\MONARCH\MONARCH.PY", line 8, in ?
app = Monarchore.MoApp(0)
File "D:\programinng\python22jp\Lib\site-packages\wxPython\wx.py", line 1808,
in __init__
File "D:\programinng\pypy\Monarch\Monarchore.py", line 80, in OnInit
owner=self, config=self._config)
File "D:\programinng\pypy\Monarch\Monarchore.py", line 138, in __init__
tbsashpos = int(self._config.get('MainFrame', 'sashpos_tb'))
File "D:\PROGRAMINNG\ACTIVEPYTHON222\lib\ConfigParser.py", line 268, in get
raise NoSectionError(section)
ConfigParser.NoSectionError: No section: MainFrame
17:11:13: Debug: e:\projects\wx\src\msw\app.cpp(439): 'UnregisterClass(canvas)'
failed with error 0x00000000 (操作は正常に終了しました。).

ってエラーが出て使えないっぽいんですよ。環境はwin98のActivPython222&wxpython&日本語とか。
どないすれば委員でしょうか?
>>888
OOP に拘らずに string.find("foobar", "bar") と書きなさい。
>>891
built-in で出来ることは出来る限り builit-in でやるというのが 2.0 以降の方針だと思うけど?
>>892
初耳。ソースきぼんぬ。
a = 3
b = a.__add__(1).__pow__(2)

print b

OOPはふんだんに活用なさい!!!
>>894
ワロタ。
ここにあるやつをひとつのファイルとしてダウンロードしたりできるところってないでしょうか。
ナローバンドなので、見るのが大変なのです。
http://www.gembook.jp/html/tmp/doc_jp/lib/
>>896
> ここにあるやつをひとつのファイルとしてダウンロードしたりできるところってないでしょうか。
> ナローバンドなので、見るのが大変なのです。

>>433
>>679
で期間を置いて2回ほど依頼済みなのだが、サイトに行って直接見るか、
自分でスクリプトを書く(or wget などを使う)などして、ダウンロードしないといけないらしい。

それが Python Way なのだろう。(寒いコミュニティだと思わんか?)
>>896
IEの「お気に入りに追加」で「オフラインで使用する」にチェック
900896:03/05/26 21:31
あがががが。。。
みなさんありがとうございます。
がんばって収集します。

ちきしょーZIPで置けよー!!
>>900
そんなもん、urllib使って自分でなんとかしる。
何か不便に思うことがあったら
「わーい、プログラミングのネタみっけ!」
と喜ぶのがプログラマというものだ。
902896:03/05/26 21:42
>>901
んなことできたら、リファレンスをDLしようなんておもわねーよ。
「どんな手を使ってでもラクをする」
プログラマっていうのは、
できるだけプログラミングしたくない人種のことだろ。
だから俺はPythonを使うのだ。
904896:03/05/26 22:12
読んだ。感動した。
ありがとう。
一人前のヘビ使いになって帰ってくるよ。
>>896
口調変わりすぎ。ウザイ。連続カキコするな。

>一人前のヘビ使いになって帰ってくるよ。
も う 二 度 と 帰 っ て く る な
次の>>896の苦情は

くそー、tgzってなんだよ。zipかlzhにしろよ。

だと思う。
>>906
*.tex ファイルが邪魔に一票。
あるいは、まだ翻訳されてないファイルがあるとか、、、
908896:03/05/26 22:49
>>905 おまえのところには帰ってこないので心配しないでください。
>>906 それは思いました。スレ違いだから書きませんでした。
>>907 てふくらい! 知ってますよ。確かに邪魔ですが。あー邪魔だ。

バレバレですか。そうですか。失礼いたしました。ごめんなさい。
レス早いからうれしくてはしゃいじゃいました。お世話になりました。
>>897
> それが Python Way なのだろう。(寒いコミュニティだと思わんか?)

この言葉にブチ切れかけた。寒いコミュニティにしているのは他ならぬ
自分だということに気がつかないDQNっぷり。開いた口が塞がらない。
コミュニティとの関わりが薄いヤシほどコミュニティのことを語りたがる
というのは実に不思議な事実だ。お前はその寒いコミュニティのために
何をしているのかと問いたい。問い詰めたい。小一時間問い詰めたい。
>>897 >>896

(゚Д゚) 二度と来るなヴォケ!!
>>909
もうブチ切れてる。
。・゚・(ノД`)・゚・。
913名無しさん:03/05/27 00:41
909が一番寒い・・・
吉野家のコピペ作ったけど貼って(・∀・)イイ?
>>914
読みたい。
ネタはこっちに張れば?

【インデント】ぱいそんぱいそん!3【ムネオたん】
http://pc2.2ch.net/test/read.cgi/tech/1036811974/
>>916
そこ、本当にネタスレだと思ってるのか?
そんな事より>>1よ、ちょいと聞いてくれよ。スレとあんま関係ないけどさ。
このあいだ、Pythonお勉強スレッド __part3__ 行ったんです。Pythonお勉強スレッド。
そしたらなんかめちゃくちゃいっぱいカキコがあって妙に盛り上がってるんです。
で、よく見たらなんかクレクレ厨がわめいてて、ドキュメントのアーカイブまだあ?とか言ってるんです。
もうね、アホかと。馬鹿かと。
お前らな、ドキュメントのアーカイブ如きで普段来てないPythonお勉強スレッドに来てんじゃねーよ、ボケが。
ドキュメントのアーカイブだよ、アーカイブ。
なんかDQNのフォローまで入ってるし。真性がつるんでおねだりか。おめでてーな。
それが Python Way なのだろう。(寒いコミュニティだと思わんか?) とか言ってるの。もう見てらんない。
お前らな、[Python-ml-jp 2258]の過去ログURL貼ってやるから二度と来るなと。
Pythonお勉強スレッドってのはな、もっと建設的であるべきなんだよ。
スレで知り合った名前も知らない蛇使いといつ新プロジェクトが始まってもおかしくない、
教えたり助けられたり、そんな雰囲気がいいんじゃねーか。真性クレクレ厨は、すっこんでろ。
919918の続き:03/05/27 01:34
で、やっと気分が落ち着いたかと思ったら、さっきのクレクレ厨が、。・゚・(ノД`)・゚・。 とかコピペしてるんです。
そこでまたぶち切れですよ。
あのな、。・゚・(ノД`)・゚・。 なんてきょうび流行んねーんだよ。ボケが。
舌の根も乾かないうちに何が、。・゚・(ノД`)・゚・。 だ。
お前は本当に泣いて詫びたいのかと問いたい。問い詰めたい。小1時間問い詰めたい。
お前、。・゚・(ノД`)・゚・。 ってコピペしたいだけちゃうんかと。
ピチョン通の俺から言わせてもらえば今、蛇使いの間での最新流行はやっぱり、
差分コピペ、これだね。
KittyWalk開発版への手動差分の分割コピペ。これが通のコピペの仕方。
開発版ってのは新機能が多めに入ってる。そん代わりバグもちょっと多め。これ。
で、それに対する手動差分の分割コピペ。これ最強。
しかしうかつにコピペするとインデントが全部消えて無くなるという危険も伴う、諸刃の剣。
素人にはお薦め出来ない。
まあクレクレ厨は、おとなしくnyでも使ってハァハァしてなさいってこった。
>>919
> しかしうかつにコピペするとインデントが全部消えて無くなるという危険も伴う、諸刃の剣。
gzip+{uuencode,mimencode}汁。
むしろ KittyWalk 作者は、
コピペスクリプトのインデントを、全角に変換する機能を追加しる。
逆はできてるんだからさ。
>>920
ソースの形で見える方がいいと思う。訳の分からない記号の羅列なんて
見てもつまらないし展開するのが面倒で誰も見ないだろう?
>>922
そのまんま貼り付けても、2chブラウザならちゃんと見えるものもあるが、
2chではそもそも貼れる量の限界が低すぎる。

延々と連続で貼ってもやっぱり誰も読まない罠。
>>921
全角に変換されたら見る分にはよくても、スクリプトを実行することを考えたら、
半角スペースに変換しなおす必要があるわけだが。
word = u'あいうえお'
に対して
str(word)
とやろうとすると、

ASCII encoding error: ordinal not in range(128)
'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)

といったエラーが出るのですが、こういうものなのですか?
文字コードの扱いには疎いもので、、、
>>925
word = u'あいうえお'
str(word)
とやったらエラーになるのは分かるけど、何を意図してそんなことをやったの?

unicode オブジェクト (上の例では変数 word に入っているオブジェクト) を
string オブジェクト (バイト列) に変換したいのなら、unicode オブジェクトの
.encode() メソッドを使う必要があるよ。例:

word = u'あいうえお'
word.encode("Shift_JIS")

ちなみに>>925のエラーが出る理屈は以下の通り。

str(word) は word.encode(sys.getdefaultencoding()) と等しい
 ↓
sys.getdefaultencoding() の戻り値は何も設定していなければ "ascii" なので
str(word) は word.encode("ascii") と等しい
 ↓
エンコードしようとしている word の値 (すなわち u"あいうえお") に
ASCII では表現できない文字が含まれる (というか ASCII で表現できない文字しか
含まれていない) ので問題の UnicodeError が発生する。
927:03/05/27 17:26
>>896
>一人前のヘビ使いになって帰ってくるよ。

ワロタ
>>926
> word = u'あいうえお'
> str(word)
> とやったらエラーになるのは分かるけど、何を意図してそんなことをやったの?
アルファベット圏の人が作ったモジュールを使う予定なのだけど、
この種のエラーが連発してかなり (゚д゚)マズー な状態なんです。
うーん、困った。
>>928
そういうことならテキストデータを unicode オブジェクトじゃなく
UTF-8 でエンコードした string オブジェクトで渡すとうまくいくかも。

import foo # アルファベット圏の人が作ったモジュール

word = u'あいうえお'
foo.func(word.encode("utf-8")) # エラーが連発してかなり (゚д゚)マズー な状態の関数
(´-`).。oO(Pythonの中の人も大変だなあ・・・)
中の人などいない!(゜Д゜)
PyQtのQMultiLineEdit上で右クリックをしたときに出てくるメニューは
どうしたら変えられますか?
http://www.jp.kde.org/~ichi/qt/index.html
を見たけど、よくわかりません。
エラー処理についての質問です。

try:
  print a
except NameError, e:
  print e

てな具合で上記例ではeにエラーの値をバインドしてます。
で、この場合はNameErrorが起きることが予期できるのでいいのですが、どういうエラーが起こるかわからないけどエラー値をバインドする方法ってありますか?つまり

try:
  print a
except , e:
  print e

みたいなことをしたいのです(上は当然ダメポ)。
except Exception, e:
とか?
935山崎渉:03/05/28 12:45
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
>>934
まさしくそれでした。ありがとうござますた。
ヒソーリとリンク
【GUIライブラリ】wxWindowsでのひょーん
http://pc2.2ch.net/test/read.cgi/tech/1052186697/
KittyWalk の「お気に入り」の数が増えて縦スクロールバーが
出てくるようになったのですが、かなり激しいものが現れたので、
ちょっと戸惑っています。
別に動作がおかしいとかじゃないんですけど、他のスクロールバーとは
趣が違います。

これは意図したものなのでしょうか? --> 150 さん。
939150 ◆DH9qKmT7Es :03/05/29 23:16
>>938
板一覧に付いているスクロールバーとは、見た目が違うってことでしょうか?
だとしたら、全然、意図してませんです。
(私ではなくて)誰かが、バグを特定してくれるかも知れないので、
プラットフォームを教えていただけますか?
940162:03/05/30 02:44
>>938-939
Linux 上でスクロールバーが出るまでブックマークを追加してみますた。
・・・確かに「かなり激しい」(笑
てことで、gui.py の BookmarkList.__init__() の以下の行を直せばよいと思われ。

× self.component("vertscrollbar").config(relief=Tk.SUNKEN, borderwidth=10)
○ self.component("vertscrollbar").config(relief=Tk.SUNKEN)
941150 ◆DH9qKmT7Es :03/05/30 03:48
>>940 さんくすです。
> borderwidth=10
もうね...。
942921:03/05/30 07:46
>>924
KittyWalk には「Pythonスクリプトとしてコピー」ってのがあるんだよ。
選択範囲の行頭にある全角スペースを、半角スペースに変換してから、
クリップボードにコピーしてるっぽい。
話題を蒸し返すようですけど、
http://www.gembook.jp/html/tmp/doc_jp/lib_jp.current.tgz
このファイルを 下の sf のサイトに置かないのはなにか理由でもあるのですか?
http://sourceforge.jp/projects/pythonjp/
>>943
ここで訊いて何か分かると思ってるの?
gembookの中の人に直接聞けばいいじゃん。
>>944 == >>162 に 23 スパム
その質問をプロジェクトの中の人に聞かないのには、何か理由でもあるのですか?

ところで、蒸し返すようですけど、
このスレを使い切ったら、新スレは立てないという方針でよろしいか?
ぱいそんスレに、まだ余裕があるから、まずはそっちに引越しか。
敗北者ってスレタイトルは嫌いだけれど、乱立するよりマシかな、というのが私見。
>>946
同意。
スレタイはともかく、Pythonスレは3つもいらない。
じゃぁ、

人生の敗北者でも使えるPythonのお勉強 Part3
http://pc2.2ch.net/test/read.cgi/tech/1053955472/

へ移行ということですか?
>>943は来ないでください
1. ぱいそんぱいそん!3 http://pc2.2ch.net/test/read.cgi/tech/1036811974/ へ移住
2. はいそんスレを使い切る
3. 敗北者スレを移住、使い切る
4. 次はまともなスレタイトルで、新スレ
5. (゚д゚)ウマー
6.煽りヨケのためにruby vs. python Part2を立てる
7.新スレはまったりで(゚д゚)ウマー
952868:03/05/31 02:20
KittyWalk-20030529 (Linux)

「お気に入り」によく逝く板を入れておいて、ダブルクリックしてスレ
一覧を表示させているのですが、初回は良くても2回目以降は
更新しなくなります。20030520 では問題なかったと思います。
python-2.2.3がでてた。
Monarch動かない
>>950
気の遠くなるような話ですな。
でもそれが現実的な解とも思うですよ。
>>953 ほんとだ!
でも 2.3 正式リリースまでアップデートは止め床。
957150 ◆DH9qKmT7Es :03/06/01 02:30
>>952
ご報告ありがとうございます。修正して cvs にあげておきました。
↓ gui.py のパッチ(スペースのテストも兼ねて)です。
551a552
>         update_is_required = (self.board==board or board.size()==0)
555c556
<         if board.size()==0:
---
>         if update_is_required:
958162:03/06/01 06:38
Tkinter の DnD 機能について勉強したのでブックマーク窓に応用してみますた。

[gui.py]

import Tkdnd # 追加

class BookmarkListItem: # 追加
  def __init__(self, index, label):
    self.index = index
    self.label = label
  def dnd_end(self, target, event):
    pass

class BookmarkList(ktk.ScrolledListBox):
  def __init__(self, parent):
     :
    self._listbox.bind("<ButtonPress-1>", self.start_drag) # 追加
    self._listbox.dnd_accept = self.dnd_accept # 追加
959162:03/06/01 06:39
  # 以下のメソッドを追加
  def start_drag(self, event):
    index = self._listbox.nearest(event.y)
    label = self._listbox.get(index)
    Tkdnd.dnd_start(BookmarkListItem(index, label), event)
  def dnd_accept(self, item, event):
    if not isinstance(item, BookmarkListItem):
      return None
    return self
  def dnd_enter(self, item, event):
    pass
  def dnd_leave(self, item, event):
    pass
  def dnd_motion(self, item, event):
    index = self._listbox.nearest(event.y)
    if item.index == index:
      return
    self.bookmark[index], self.bookmark[item.index] = \
               self.bookmark[item.index], self.bookmark[index]
    self._listbox.delete(item.index)
    item.index = index
    self._listbox.insert(item.index, item.label)
  def dnd_commit(self, item, event):
    self.update()
960150 ◆DH9qKmT7Es :03/06/01 12:54
>>958
すごすぎ...。いただきますた。
漏れはもっとマニュアルを読め、と。
age
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'age' is not defined
>>>
>>> def age():
...  print 'age'
...
964デフォルトの名無しさん:03/06/04 23:27
age()
age
>>>
generator の gi_frame, gi_running の gi はなんのこと(略?)
generator の gi_frame, gi_running の gi はなんのこと(略?)
generator の gi_frame, gi_running の gi はなんのこと(略?)
   
そう generator の gi_frame, gi_running の gi はなんのこと(略?)
generator の gi_frame, gi_running の gi はなんのこと(略?)
generator の gi_frame, gi_running の gi はなんのこと(略?)
generator の gi_frame, gi_running の gi はなんのこと(略?)
python !!!
974デフォルトの名無しさん:03/06/07 18:59
i love python
GIジョーのGI
慈愛
generator の gi_frame, gi_running の gi はなんのこと(略?)
generator の gi_frame, gi_running の gi はなんのこと(略?)
ぴちょん!
generator の gi_frame, gi_running の gi はなんのこと(略?)
ただ、なんとなく
自慰
ハアハア...
generator の gi_frame, gi_running の gi はなんのこと(略?)
慈愛
generator の gi_frame, gi_running の gi はなんのこと(略?)
generator の gi_frame, gi_running の gi はなんのこと(略?)
粘着しつこいな、、、
generator の gi_frame, gi_running の gi はなんのこと(略?)
generator の gi_frame, gi_running の gi はなんのこと(略?)
粘着しつこいな、、、
generator の gi_frame, gi_running の gi はなんのこと(略?)
粘着しつこいな、、、
粘着しつこいな、、、
ぴちょん!
995
996
まもなくここは 乂1000取り合戦場乂 となります。

      \∧_ヘ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!!       ,,、,、,,,
    /三√ ゚Д゚) /   \____________  ,,、,、,,,
     /三/| ゚U゚|\      ,,、,、,,,                       ,,、,、,,,
 ,,、,、,,, U (:::::::::::)  ,,、,、,,,         \オーーーーーーーッ!!/
      //三/|三|\     ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ∪  ∪       (    )    (     )   (    )    )
 ,,、,、,,,       ,,、,、,,,  ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ,,、,、,,,       (    )    (    )    (    )    (    )
999
そして Ruby に敗北した。。。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。