トップページ⇒tech
1001コメント325KB

Pythonのお勉強 Part5

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG
日本Pythonユーザ会
http://www.python.jp/Zope/
Python オフィシャルサイト
http://www.python.org/

前スレ
http://pc2.2ch.net/test/read.cgi/tech/1053955472/

ログや関連リンクは >>2-3
0002デフォルトの名無しさんNGNG
Pythonお勉強スレッド
1 http://pc.2ch.net/tech/kako/965/965815778.html
2 http://pc3.2ch.net/test/read.cgi/tech/1020718991/
3 http://pc3.2ch.net/test/read.cgi/tech/1020718991/
4 http://pc5.2ch.net/test/read.cgi/tech/1068824510/

pythonユーザー掲示板
http://mentai.2ch.net/prog/kako/965/965058106.html

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

【インデント】ぱいそんぱいそん!3【ムネオたん】
http://pc3.2ch.net/test/read.cgi/tech/1036811974/

【たぷるタソ】Pythonのお勉強 5【ハァハァ】
http://pc5.2ch.net/test/read.cgi/tech/1081264387/
0003デフォルトの名無しさんNGNG
python って関数内部で、引数の値を変更することはできますか?
http://www.freeml.com/message/[email protected]/0000087
の後半のような、変なことをしなければ無理っぽ?
0004デフォルトの名無しさんNGNG
(゚∀゚)タプル!!
0005デフォルトの名無しさんNGNG
>>3
> python って関数内部で、引数の値を変更することはできますか?

呼出し元の引数として与えられた局所変数の値を呼び出された関数の中で変更する
ということなら、できません。

そういうことが必要だとしたら、クラスを定義することを考えるのがよいです。
その変数は、二つの関数(呼び出す側と呼び出される側)から共に操作される対象、
すなわち一個のオブジェクトである可能性が高いからです。その変数をメンバ、
二つの関数をメソッドとしてクラスを定義すれば、呼び出される側から変数の値を
変更することが可能になります。

引用のリンク先の__call__や__repr__の用例はあまりいい用例とは思えません。
参考程度に留めるのがよいと思います。

(余談:Pythonでもどの言語でもそうですが、変だなと思うことをしたくなったら
プログラムの設計や問題へのアプローチを見直すのがよいと思います。妙なことを
しなくても自然に書ける解が往々にしてあるものだからです。)
00063NGNG
>>5
やはり出来ないですか。

で、今回は、関数の戻り値を (゚∀゚)タプル!! にして解決しました。

関数を class method にする方法も考えましたが、
引数受け渡しのためだけにクラスとクラス変数を作るのは、
global 変数を作のとあまり変わらない気がしたので、今回は見送りました。

もちろん、class に括った方がいい場合は、そうします。
余談、参考になりました。ありがとうございました。
0007デフォルトの名無しさんNGNG
>>6

def func(x):
x.append(4)

a = [1,2,3]
func(a)

print a

としたら、何が表示されるでしょうね?
0008デフォルトの名無しさんNGNG
本スレ認定
0009デフォルトの名無しさんNGNG
++本スレに激しくやる気復活++
0010デフォルトの名無しさんNGNG
変更できるケースもあります(全然おすすめできないというか,むしろ
こういう書き方をしないよう注意したほうがよいのですが).
例えば以下のコードを実行してみてください::

def myfunc(item, val=[]):
 val.append(item)
 print val

myfunc('one')
myfunc('two')
myfunc('five')

参考: http://www.python.jp/pub/doc_jp/ref/function.html

0011デフォルトの名無しさんNGNG

5と7の「引数」の解釈=呼び出す側の変数

10の解釈=呼び出された関数の中の変数
001210NGNG
>> 11 _| ̄|●" スンマセンスンマセン
0013デフォルトの名無しさんNGNG
>>10,12
ネタスレに帰れや
0014デフォルトの名無しさんNGNG
>>13
少なくとも10はネタじゃない。引数の解釈が違っただけ。
つーかネタに見える方がどうかしてる。
喪前がネタスレに逝け。そのまま帰ってくるな。
0015デフォルトの名無しさんNGNG
>>14
ば、番長!?
0016デフォルトの名無しさんNGNG
ばばんばばんばんばん ハァ〜 ビバノンノン
0017デフォルトの名無しさんNGNG
おまいらのお陰でPythonスレも四つに分裂したぞ
もうちょっとがんばればperlに勝てる
0018デフォルトの名無しさんNGNG
敗北者スレも立てるか・・・
0019デフォルトの名無しさんNGNG
Pythonで作られたゲーム・エミュレーターはありますか?
0020デフォルトの名無しさんNGNG
(゚∀゚)tuple!
0021デフォルトの名無しさんNGNG
http://developer.berlios.de/projects/xgngeo/
てゆーかPythonで作られてなくても別にいいじゃん。
0022デフォルトの名無しさんNGNG
いい加減意地を張るのをやめてRubyに統一しようよ。
リソースの分散はあまりにももったいない。
Rubyに対する明確なアドバンテージを示せないなら今すぐ開発をやめるべきだと思うがいかがかな?
0023デフォルトの名無しさんNGNG
統一言語 RuPy のスレはここでつか?
0024デフォルトの名無しさんNGNG
( ´,_ゝ`)プッ rubyだって…pythonの利用者数を知らないのかね?
0025デフォルトの名無しさんNGNG
Parrot や .NET の時代に「言語の統一」なんてもはやナンセンス。
好きなのを使えばいいだけ。
0026デフォルトの名無しさんNGNG
>>22
いい加減意地を張るのをやめてハングルに統一しようよ。
リソースの分散はあまりにももったいない。
ハングルに対する明確なアドバンテージを示せないなら今すぐ会話をやめるべきだと思うがいかがかな?

とか逝って欲しいんだろ? このマゾヒストが。
0027デフォルトの名無しさんNGNG
おまいら、コピペ厨ごときに釣られるなよ。
0028デフォルトの名無しさんNGNG
>>25
Parrotキタ━━━━(゚∀゚)━━━━!!
絵に描いた餅とはこのことだな(プププ
0029デフォルトの名無しさんNGNG
RubyとPythonもどっちも使っています。
正直、自分でも何でかわかりませんよ
0030ifs-koch0.pyNGNG
"""Koch curve""";# 2004-04-11, placed in the public domain.
from math import cos, sin, radians
from Tkinter import Tk, Canvas
CosA = cos(radians(60)); SinA = sin(radians(60))

def koch(d, (x0, y0), (x4, y4)):
    if d == 0:
        draw_line(x0, y0, x4, y4)
    else:
        rx, ry = (x4-x0)/3., (y4-y0)/3.
        x1, y1 = x0+rx, y0+ry
        x2, y2 = x1+CosA*rx-SinA*ry, y1+SinA*rx+CosA*ry
        x3, y3 = x0+2*rx, y0+2*ry
        koch(d-1, (x0, y0), (x1, y1))
        koch(d-1, (x1, y1), (x2, y2))
        koch(d-1, (x2, y2), (x3, y3))
        koch(d-1, (x3, y3), (x4, y4))

D, W, H = 5, 1000, 500
root = Tk()
can = Canvas(root, width=W, height=H, highlightthickness=0, bg='black')
can.pack(expand=True, fill='both')
def draw_line(x0, y0, x1, y1):
    can.create_line(x0, H-y0, x1, H-y1, fill='cyan')
koch(D, (0, 100), (W, 100))
root.bind_all('<Escape>', lambda ev: root.destroy())
root.mainloop()
0031デフォルトの名無しさんNGNG
>>28
すでにJythonもあるし、方向性としてはおかしくないとおもうけど。
0032デフォルトの名無しさんNGNG
IronPythonもあるしね。
http://www.python.org/pycon/dc2004/papers/9/
0033デフォルトの名無しさんNGNG
(´-`).。oO(訳の分からない返しをする厨が混じってるな。。。)
0034デフォルトの名無しさんNGNG
わざわざこんな辺境のスレまで来てご苦労なこった
0035デフォルトの名無しさんNGNG
win32apiのモジュールでGUIくつれんの?
0036デフォルトの名無しさんNGNG
うぉおおお
wxPythonってFlash見れるじゃん!
まじちびったと思ったら、
ジョイスティック扱えるんですか!
うんこぶりぶりです!!!!!!!!!!!
0037デフォルトの名無しさんNGNG
python での 2chブラウザってあるの?
0038デフォルトの名無しさんNGNG
KittyWalk
Monarch BBS browser

たぶんこれだけ。
Monarchは動かしたこと無い。
0039デフォルトの名無しさんNGNG
eclipseで使えるpython plugin でお勧めのヤツありますか?
0040デフォルトの名無しさんNGNG
ttp://pe4eclipse.sourceforge.net/
ttp://www.kalab.com/freeware/pythoneclipse/pythoneclipse.htm
これ以外しらない。ためしてみれば?
0041デフォルトの名無しさんNGNG
ttp://python.org/cgi-bin/moinmoin/EclipsePythonIntegration
他にもたくさんある模様.

ttp://pydev.sourceforge.net/
が開発は一番活発な感じ.
0042デフォルトの名無しさんNGNG
http://images.google.com/images?q=%22John%20Cleese%22&num=100&hl=ja&lr=&ie=UTF-8&oe=UTF-8&sa=N&tab=wi
0043デフォルトの名無しさんNGNG
(^Д^)ぬるぽ
0044デフォルトの名無しさんNGNG
どこで質問するのか知らないからここで聞いちゃいますけど、PyCS って
http://lowlife.jp/yasusii/weblog/2004/01/
のように月で指定しても、一か月分丸まるのログが表示されるわけではないのですか?
0045デフォルトの名無しさんNGNG
Pythonで、文字列のコーデックを自動的に判別して、
Unicodeに自動的に変換してくれるような拡張モジュールあったら教えて
004645NGNG
くださいお願いします。
0047デフォルトの名無しさんNGNG
>>45 pykf
0048デフォルトの名無しさんNGNG
pykfはUnicodeへの変換できないよ
pykfでguessしてPythonでunicodeに変換しるしかねい
0049デフォルトの名無しさんNGNG

    〃〃∩  _, ,_
     ⊂⌒( `Д´) < ヤダヤダ!
       `ヽ_つ ⊂ノ
              ジタバタ
0050デフォルトの名無しさんNGNG
          パーン
    _, ,_ ∩
 ( ‘д‘)彡☆))Д´) ← >>49
   ⊂彡
甘ったれるな。
0051guess.pyNGNG
import codecs

class Codec(codecs.Codec):
    def encode(self, data, errors="strict"): # unicode to string
        raise NotImplementedError
    def decode(self, data, errors="strict"): # string to unicode
        if filter(lambda c: "\x80" < c < "\x8e" or "\x8f" < c < "\xa0", data):
            decode = codecs.getdecoder("Shift_JIS")
        elif filter(lambda c: "\xa0" < c, data):
            decode = codecs.getdecoder("EUC-JP")
        else:
            decode = codecs.getdecoder("ISO-2022-JP")
        return decode(data, errors)

class StreamWriter(Codec, codecs.StreamWriter):
    pass

class StreamReader(Codec, codecs.StreamReader):
    pass

def getregentry():
    return Codec().encode, Codec().decode, StreamReader, StreamWriter

if __name__ == "__main__":
    u = u"ABC\u6f22\u5b57\u3072\u3089\u304c\u306a"
    assert u == unicode(u.encode("ISO-2022-JP"), "guess")
    u = u + "\uff76\uff80\uff76\uff85"
    assert u == unicode(u.encode("EUC-JP"), "guess")
    assert u == unicode(u.encode("Shift_JIS"), "guess")
0052guess.pyNGNG
unicode("....", "guess") 的に使用可能。

decode() 内の文字コード判別は pykf 等を使って書き直すのがいいかも。
エンコード時の文字コードは推定できない(笑)ので未実装エラーとした。
guess.py は public domain software とする。
0053デフォルトの名無しさんNGNG
おやおや
ずいぶんと宵っ張りの朝寝坊さんですこと
ちゃんと社会生活できているんでしょうか(プププ
0054デフォルトの名無しさんNGNG
Gentooで使われているPythonを勉強してみようと思いました。
ところで、ノーマルの状態では日本語は通らないらしいですね。
dev-pythonの下に
cjkcodecs
iconvcodec
japanesecodecs
3つのcodecsがありましたがどれがいいのでしょうか?
0055デフォルトの名無しさんNGNG
JapaneseCodesc をインストールすると、日本人におなじみの
euc-jp, iso-2022-jp, shift_jis も使えます。 CJKCodecs を
インストールすると、日本語のコーデックの他に、中国、韓国の
コーデックも利用可能になります。
また、Python 2.4 以降は、CJKCodecs が Python 標準配布物に含まれ、
新たなコーデックの追加インストールも不要になる予定です。
http://www.python.jp/Zope/articles/japanese/Python4Japanese-2

だそうですので、2.3.3とcjkcodecsの組み合わせて使うことにしました。
お騒がせしました。
0056デフォルトの名無しさんNGNG
JapaneseCodecs/CJKCodecs は JIS X 0213:2004 には対応せんのかな。
てか、Python 以外でも対応したとこってあるのかな?
0057デフォルトの名無しさんNGNG
Perlは?
0058デフォルトの名無しさんNGNG
>>57
してるぽ。
0059デフォルトの名無しさんNGNG
>>56
CJKCodecsは JIS X 0213 に対応してるんじゃない?

> Supported Encodings
> Japanese: cp932 shift-jis shift-jisx0213 euc-jp euc-jisx0213 iso-2022-jp iso-2022-jp-1 iso-2022-jp-2 iso-2022-jp-3 iso-2022-jp-ext

この shift-jisx0213 と euc-jisx0213 って
JIS X 0213 対応版の Shift_JIS と EUC-JP じゃないのかな。
0060デフォルトの名無しさんNGNG
>>59
それは JIS X 0213:2000 だから、
0061デフォルトの名無しさんNGNG
ところでみんなPythonで何作ってんの?
0062デフォルトの名無しさんNGNG
>>61
最近作った(変更した)ものを ls -lt ~/python/*.py | head の出力から抜粋。
以前似たようなカキコをしたので一部かぶってるかも。

guess.py - 文字コード判別コデック。>>51に貼った。
dump_folha_online.py - 某ネット新聞の記事をテキスト化。htmllib/formatter使用。
tuple_anime.py - たぷるタソのテキストアニメ。反応がなくて悲しかった。
tr.py - 翻字コマンドtrの実装。他スレに貼った。反応がよくてうれしかった。
cannalib.py - Cannaクライアント。Cannaプロトコルでサーバと直接おしゃべりしてかな漢字変換。
namiki.py - IRCログ取りロボット。某チャンネルに常駐。
dml2latex.py - XML形式の日記をLaTeXに変換。某blogの製本サービスに触発されて古いコードを更新。
nyo.py - 語尾を「にょ」に変換。Unicodeコデックとして実装。過去スレに貼った。
dailynews2tex.py - NHK国際放送のニュース原稿をLaTeXに変換。二段組でコンパクトに印刷。
live.py - 随時更新されるウェブカメラの静止画像を定期DLして表示するビューワ。犬板に貼った。
dlpo.py - 某オンライン辞書のクライアント。古いネスケだと利用できないので仕方なく作った。
romaji.py - ローマ字をかなに変換。辞書で状態遷移図を作ってみたがアプローチとしてはイマイチ。
dml2html.py - XML形式の日記を閲覧用HTMLに変換。すこしずつ手を入れながら5年近く常用。
gtkhtmlconv2.py - 多国語テキストをHTML文字参照に変換するためのGUIエディタ。GTK+ 2.x使用。
0063デフォルトの名無しさんNGNG
今までPerlを使ってきてPythonをちょっと勉強始めたんですが、
Perlのようなデリファレンス時のごちゃごちゃしたものが
一切ないのがいいですね<Python
0064デフォルトの名無しさんNGNG
>>62
wc -l したらどんな感じ?
0065デフォルトの名無しさんNGNG
Monarch。潜水艦ゲーム。あと吉野家マーリン。
0066デフォルトの名無しさんNGNG
>>64
こんな感じでした。
     31 guess.py
     58 dump_folha_online.py
     22 tuple_anime.py
     23 tr.py
    190 cannalib.py
    334 namiki.py
    320 dml2latex.py
     30 nyo.py
     70 dailynews2tex.py
     78 live.py
    156 dlpo.py
    221 romaji.py
    458 dml2html.py
     89 gtkhtmlconv2.py
   2080 合計
0067デフォルトの名無しさんNGNG
すくな!
0068デフォルトの名無しさんNGNG
楽な言語だ。
0069デフォルトの名無しさんNGNG
俺もPython使おう。
0070デフォルトの名無しさんNGNG
オレも見てみたけど Python で 500行超えるコードってほとんど書かないな。
0071デフォルトの名無しさんNGNG
おまいらは
他の言語ではバリバリコード書くわけですか?
0072デフォルトの名無しさんNGNG
必要な機能が満たされていれば、コードの行数なんて関係ない。
問題はおまいの作るプログラムに課せられた機能量のこと。
0073デフォルトの名無しさんNGNG
そうだにゃ
だが、必要な機能が複雑になれば
コード量もそれに比例して大きくなってゆくだろ

つまりだにゃ
Python以外では複雑なコードを書いていて、Pythonでは単純なことしかしないから行数が少ないのか
そもそも複雑なコードを書く能力がないから少ない行数しか書かないのかを
知りたかったわけだにゃ

>>72
なんか厨房のいいわけみたいだにゃ(w
0074デフォルトの名無しさんNGNG
>>73
> 必要な機能が複雑になれば
> コード量もそれに比例して大きくなってゆく

一般論としてはそうだけど、Pythonではこれは当てはまらない稀ガス。
少ない行数の割に多くの機能が得られることがある一方で
たくさん書いた割には大した機能の量にならないこともある。
実感として、Pythonでは得られる機能の量と行数とが一致しない。

その理由としては高度な機能が集められたモジュール群が大きい。
既存のモジュールをうまく使いこなすと行数と機能量が解離する。
urllibモジュールやreモジュールはその典型。
逆に、大きな辞書や文字列を定数としてコード中に列挙すると
小さな機能の割にやたらと行数の多いプログラムになったりする。

ついでに付け加えると、GUIライブラリはどれを使っても行数が多くなるっぽい。
機能量<行数となる(作るのが面倒くさい)プログラムの典型。
その点、GUIとして既存のブラウザが利用できるWebアプリケーションは楽でいい。
0075デフォルトの名無しさんNGNG
とりあえず行数が少なくて済むからPython∩(・ω・)∩ばんじゃーい
C/C++/Javaはうんこ、とか言ってるやつは厨房ケテーイですか。
0076デフォルトの名無しさんNGNG
>ついでに付け加えると、GUIライブラリはどれを使っても行数が多くなるっぽい。

そうだね
コード量は,機能の組み合わせ数と絶対数に比例するんだよね

>一般論としてはそうだけど、Pythonではこれは当てはまらない稀ガス。

PythonでもGUI作ろうとすると行数多くなるだろ

けっきょくPython以外でも複雑なコードは書かないってことだな
よくわかった希ガス(ブワッハッハッハッ
0077デフォルトの名無しさんNGNG
ジョーは酒場で論理学の教授と知り合った。
「論理学ってのはどういったもんですか?」
「やって見せましょうか。お宅には芝刈機があります?」
「ありますよ」
「ということは、広い庭があるわけですね?」
「その通り!うちには広い庭があります」
「ということは、一戸建てですね?」
「その通り!一戸建てです」
「ということは、ご家族がいますね?」
「その通り!妻と2人の子供がいます」
「ということは、あなたはホモではないですね?」
「その通り!ホモじゃありません」
「つまりこれが論理学ですよ」
「なるほど!」
深く感心したジョーは、翌日友人のスティーブに言った。
「論理学を教えてやろう。君の家には芝刈機があるか?」
「いや。ないよ」


「ということは、君はホモだな!!」
0078デフォルトの名無しさんNGNG
それはアメリカンジョークというより、落語。
0079デフォルトの名無しさんNGNG
>>77
ワロタ
0080デフォルトの名無しさんNGNG
>>75
あんたが Python そのものを組んだり
MMX命令を使おうかどうか悩むような
類いのプログラムを作ったりしている
のでないならそれでいいよ。

世の中にはうんこまみれにならざるを
えない分野もあるっていう事で。
0081デフォルトの名無しさんNGNG
C で拡張モジュールを作ったことがあるヤシが真の Python プログラマ。
0082デフォルトの名無しさんNGNG
>>77
アメリカ人は4行目くらいで寝る
0083デフォルトの名無しさんNGNG
お尋ねします。

ftpサーバでファイルを受信したら、そのファイルに対して
いろいろ実行してくれるようなものが欲しいと思ったのですが、
普通のftpサーバでは、自分で勝手に機能をアタッチできるようなものなんて
無さそうなので、試しに自分で作ってみようと思いました。

でも、ネットワークのことなんて余り知らないしどうしようと思ってたら
pythonっていろいろライブラリが用意されていて便利ということを聞いたので
python勉強してみようと思いました。

でも、調べて見たらftpクライアントのライブラリは合ったのですが、ftpサーバ用の
ライブラリって見当たらないんですが、やっぱりないのでしょうか?
あるいはpythonで書いたftpサーバのスクリプトとかどっかに落ちてないでしょうか?

ご存知の方、よろしくお願いします。
0084デフォルトの名無しさんNGNG
>>83
Zope




ウソ

Twistedあたりを探してみれ

いずれにしろ
そういうことするためにはネットワークの知識が必要だという希ガス
0085デフォルトの名無しさんNGNG
medusa

ttp://www.amk.ca/python/code/medusa.html
0086デフォルトの名無しさんNGNG
ftp いじるなら rfc959 に目を通しといたほうがいいような希土類

www.ietf.org/rfc/rfc959.txt
008783NGNG
>>84-86

んー、やっぱりいろいろ勉強する必要がありそうですね。
特に、rfcはヒトスジナワではいかなそう…
pythonとrfc、じっくり勉強してみます。
どうもありがとうございました。
0088デフォルトの名無しさんNGNG
>>87
そこまでして自作のサーバを作りたいのは何か特別な理由でもあるのですか?
0089デフォルトの名無しさんNGNG
普通のftpサーバに手を入れる方が百倍簡単だと思うけど。
0090デフォルトの名無しさんNGNG
>>87
小手先の知識でもなんとかなるかも試練が
詳細を知っておかないと、はまった時に抜け出せない

ま、プログラミングに限らず、
根気のないやつはなにやっても駄目だがな...
0091デフォルトの名無しさんNGNG
>90
ほんとに出来る人ってこういうこと言わないんだよね。
こういうこと書くやつって、大抵口先だけの奴しかいない。
0092デフォルトの名無しさんNGNG
>>90
おまえもすこしもちつけ
009383NGNG
>>88-90

あ、いえ、どうしてもって訳でもないんですけど、
もともとはftpサーバで受信ファイルに何かさせる機能ぐらいは
あると期待していたのに、意外とないもんなのね。
ということで、せっかく良い目標が出来たので、いろいろ勉強しながら
自分で作ってみたかっただけです。
で、導入としてはお手軽な方法が良いと考えて、何かないかと探してた訳です。

締め切りのある作業は嫌いなんですが、自分のペースで勉強しながら
何かやるのは好きなんです。

お騒がせしました。
0094デフォルトの名無しさんNGNG
>>91
ゴメンね、
なにか気に障っちゃったのかな?(プププ
口先だけのやつってホントにムカつくよね(プンスカ!

>>93
えらい!
がんばれ!

ついでにいうと、
締め切りなんて多めに見積もっておけば何とかなる!(w
0095デフォルトの名無しさんNGNG
>>93
> 締め切りのある作業は嫌いなんですが、自分のペースで勉強しながら
> 何かやるのは好きなんです。

理想としてはね。
なかなかそんなこといってられないけど。
0096デフォルトの名無しさんNGNG
締め切りが迫ってきたら
そこそこいい感じにまとめあげる能力は重要(w

延々手元で開発して
成果を出せない奴は厨







あ、決して91のことじゃないからね(プププ
0097デフォルトの名無しさんNGNG
粘着質が一匹いるみたいだな
GW早く終わらんかね
0098デフォルトの名無しさんNGNG
3匹くらいだと思う。
0099デフォルトの名無しさんNGNG
>>96
>締め切りが迫ってきたら
>そこそこいい感じにまとめあげる能力は重要(w
これ若い時の俺!!!(・∀・)イイ

>延々手元で開発して
>成果を出せない奴は厨
今の俺だ・・・(´・ω・`)ショボーン
0100デフォルトの名無しさんNGNG
>>96
Python自体が
自ら締め切りをもうけつつ、着実に成果を出力している成果物の好例だと思う
Guidoパパは優秀な開発者であると同時に、優秀なプロジェクトマネージャーでもある
0101デフォルトの名無しさんNGNG
>>93
亀レスだけど、
FTP鯖のログを見てうpが記録されていたら××するというスクリプトを
cronで定期実行するのが簡単でいいのではないだろうかとオモタ。
0102デフォルトの名無しさんNGNG
os.systemって終了ステータスを返すんですね。
コマンドの出力文字列を得るにはどうするのが手軽でしょうか?
0103デフォルトの名無しさんNGNG
>>102
popen系を使うとか?
0104デフォルトの名無しさんNGNG
commands.pyというのがあった。
0105デフォルトの名無しさんNGNG
正規表現オブジェクトを dump, loadってできるでしょうか?
marshalモジュールではサポートされてないようですが。
0106デフォルトの名無しさんNGNG
pickle を使うようすすめます.marshal は一般のオブジェクトを dump する
ためのモジュールではありません.
ttp://www.python.jp/pub/doc_jp/lib/module-marshal.html
ttp://www.python.jp/pub/doc_jp/lib/module-pickle.html
0107デフォルトの名無しさんNGNG
レスどうもです。
こちらでも先程見つけて試していたのですが、dumpされたファイルを覗くと、
どうも reオブジェクトの元になった文字列の形で保存してるようなので、
コンパイル済みのオブジェクトを使い回して
高速化しようという目的には合わなそうでした。残念。
0108デフォルトの名無しさんNGNG
どうでもいい話だけど、正規表現のコンパイル時間を節約したい状況ってどんなの?w
0109デフォルトの名無しさんNGNG
情報ルータでも作りたいのかな?
0110Anthonyタソの中の人NGNG
[Python-Dev] RELEASED Python 2.3.4, release candidate 1
http://mail.python.org/pipermail/python-dev/2004-May/044803.html

特に問題がなければ Python 2.3.4 の最終版を来週下旬にリリースするにょ。

Anthony Baxter
0111デフォルトの名無しさんNGNG
PythonからDirectXを直接使う方法ってありますか?
0112デフォルトの名無しさんNGNG
>>111
pygameとかのライブラリ経由じゃなくて直接ってんなら、
C/C++で拡張するか、COM経由(実用的かはしらん)になる。
0113デフォルトの名無しさんNGNG
マルチプラットホームで使えるCursesみたいなテキストベースのインターフェースを
提供するライブラリはないでしょうか?
0114デフォルトの名無しさんNGNG
curses を使って、 Windows 用は cygwin でごまかす。
0115デフォルトの名無しさんNGNG
>>113 こんなのどう?
Windows Console Driver
ttp://www.effbot.org/zone/console-index.htm
0116115NGNG
よく見たらcurses非互換でした・・・
誤情報スマソ
0117デフォルトの名無しさんNGNG
164, 162 という数字のペアから 'あ'を得るには
どうしたらいいのかな。
0118デフォルトの名無しさんNGNG
chr(164)+chr(162)
0119110NGNG
[Python-Dev] python 2.3.4 delayed for a week
http://mail.python.org/pipermail/python-dev/2004-May/044921.html

ThomasがWindows用インストーラを作れないから一週間リリースを延ばすにょ。

Anthony Baxter
0120デフォルトの名無しさんNGNG
>>> import lib2ch
>>> thread = lib2ch.open("tech", "1081312810")
>>> thread.age()
>>>
0121デフォルトの名無しさんNGNG
>>> thread.age()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
StopIteration
>>>
0122デフォルトの名無しさんNGNG
lib2ch保水
0123デフォルトの名無しさんNGNG
保守
0124デフォルトの名無しさんNGNG
http://python.org/2.3.4/
0125デフォルトの名無しさんNGNG
hottondo baguphiqqusu dane
0126デフォルトの名無しさんNGNG
print u"\u305d\u3046\u3060\u306d\u3001\u30d0\u30b0\u30d5\u30a3\u30c3\u30af\u30b9\u30ea\u30ea\u30fc\u30b9\u3060\u3057\u306d\u3002"
0127デフォルトの名無しさんNGNG
中国語plz
0128デフォルトの名無しさんNGNG
print u"\u662f\uff0c\u8fd9\u662f\u4fee\u6b63\u9519\u8bef\u7684\u7248\u672c\u3002"
0129デフォルトの名無しさんNGNG
welldone
0130デフォルトの名無しさんNGNG
hoge.fugaと同じ事を、
hoge に "fuga"という文字列を使ってやりたいのですが、
どうしたらいいのでしょうか?
rubyでの hoge.send("fuga")相当の事です。
0131デフォルトの名無しさんNGNG
getattr()のようなことをしたいのかな?
ttp://www.python.jp/pub/doc_jp/lib/built-in-funcs.html#l2h-32
0132デフォルトの名無しさんNGNG
>>131
そうです。ありがとうございました。
組み込み関数ぐらい、把握しとかなきゃダメですね……。失礼しました。
0133デフォルトの名無しさんNGNG
stackless python を使ってみようと思ったんですが、落としてきたアーカイブの中にある
python23.lib,python23.dll,python23.expをどこに置けばいいんでしょうか?特にpython23.exp。

0134デフォルトの名無しさんNGNG
.libや.expは削除しても問題ない。
0135デフォルトの名無しさんNGNG
ありがとうございます。とりあえずpython23.dllをc:\windows\system32 に入れたら
サンプルは動きました。
0136デフォルトの名無しさんNGNG

[Python-Dev] pre-announce: Python 2.4a1 is about a month away
http://mail.python.org/pipermail/python-dev/2004-May/045028.html

  これは、約一ヵ月後に迫った Python 2.4 の最初のアルファ版の事前アナ
  ウンスです。この告知の目的は、皆さんの注意を喚起することです。もし
  2.4で修正してほしいバグがあるならば、今から検討を始めて下さい。

  このリリースサイクルの間ずっとバグ修正を歓迎します。ただし、最初の
  ベータ版以降は、振舞いの変化をともなうバグ修正が認められる見込みは
  比較的少なくなります。

では、修正してほしいバグがある場合、あなたは何をすべきでしょうか?

○ そのバグが SourceForge (SF) に登録されていない場合は登録して下さい。
○ 登録されたら、その問題を修正するパッチ、または少なくともそのバグを
  例証する単純なテストプログラムを追加することを検討して下さい。
○ もし他の誰かがバグ修正を提供してくれたら、その修正があなたにとって
  具合のよいものかどうかを調べて調査結果をバグ情報に追加して下さい。
○ うまく機能するバグ修正がある場合は、遠慮なくその修正をCVSに移すこと
  を依頼するメモを追加して下さい。SF の Python 用バグ追跡システムには
  *大量*のバグが登録されていて、バグが見過ごされやすいのです。
0137デフォルトの名無しさんNGNG

単に2.4で何が起こるのかに興味がある場合は、現行の開発バージョンの文書
「What's New in 2.4」を見て下さい。
http://www.python.org/dev/doc/devel/whatsnew/whatsnew24.html

Python 開発チームを代表して感謝の意を表します!
Anthony

[選り抜きのバグ修正を遅れずに提出する機会を皆さんに与えるために、この形式の
事前アナウンスが今後の Python の全バージョンのリリース工程の一部となることを
期待しています。この工程に関する意見があれば、遠慮なく私にメールを下さい]

--
Anthony Baxter <anthony at interlink.com.au>
“幸せな子供時代を過ごすのに遅すぎるということはない”
0138デフォルトの名無しさんNGNG
>>136-137
長すぎ。
要約して一言でいうと何なの?
0139デフォルトの名無しさんNGNG
>>138
( ゚Д゚)ポカーン
0140デフォルトの名無しさんNGNG
>>138
一言でまとめると。138は血性。
0141デフォルトの名無しさんNGNG

[Python-Dev] Python bug day?
http://mail.python.org/pipermail/python-dev/2004-June/045090.html

2.4alpha1のリリースに向けて、皆で一緒に未処理のバグを減らすのが良さげ。
Zope, GNOME, Mozilla などのプロジェクトには「バグ取り日」というものがある。
IRC に集まってバグデータベースをくまなく調べ、的はずれな報告や不正確な報告を
クローズしたり曖昧な報告用の小さなテストプログラムを書いたりするわけだ。

Python バグ取り日ってのをやってみる価値がある希ガス。
計画を立てて何が(ツールとか)要るのか明確にすべく Wiki ページを書いてみた。
http://www.python.org/cgi-bin/moinmoin/PythonBugDay
コメントきぼんぬ。特に他のプロジェクトのバグ取り日に参加してる香具師。
IRC のログって要る? #python を使うべき? それとも別チャンネル?

詳細が時間内に詰められれば多分今週末にもバグ取り日を開催できると思われ。
平日よりも週末の方がいい? 参加したい香具師、どーよ?

--amk
0142デフォルトの名無しさんNGNG
質問です。
pythonでファイルをアップロードするCGIを作りたいんですが、
便利なスクリプトや情報があれば教えてください。

(簡単なセキュリティとしては、ファイルサイズとか何が考慮
されているのかな?)
0143デフォルトの名無しさんNGNG
LibRef 11.2 cgi -- CGI (ゲートウェイインタフェース規格) のサポート:
ttp://www.python.jp/pub/doc_jp/lib/module-cgi.html

アップロードされるファイルのバイト数を制限したいのなら,
ttp://www.python.jp/pub/doc_jp/lib/node401.html
に書かれているように,まず POST メソッドで添付されたファイルがあるか
確かめて,その後許容バイト数まで読み出すようにしたらどうですか.
0144デフォルトの名無しさんNGNG
>>142
ttp://www.python.jp/pub/doc_jp/lib_2.3/node401.html
の下のほう。
0145デフォルトの名無しさんNGNG
けこーん
0146デフォルトの名無しさんNGNG
>>143
>>144
ファイルサイズのチェックだけ、というのが順当な線のよう
ですね。ありがとうございました。
0147デフォルトの名無しさんNGNG
エロい人にしつもん


でこれーたーしんたっくすって何?
0148デフォルトの名無しさんNGNG
http://shattered.teched.net/www.python.org/peps/pep-0318.html のことカ?
0149デフォルトの名無しさんNGNG
例えば def hogetahogeo(foo, bar) as classmethod: みたいに書くと(書式は未定らしい)
classmethod() 使わなくてもクラスメソッドにしてくれる機能らしい。

正直要らん気がする。 def public static hanamogera(): なんて気分悪い。
まして def hodgepodge(){'type': 'classmethod'}: なんてやめてくれよ。
0150デフォルトの名無しさんNGNG
>>149
+1
0151デフォルトの名無しさんNGNG
αではいろんな書き方できるようにして
みんなに試してもらえばいいジャン
とか言ってる香具師がいてなえた(;´Д`)
0152デフォルトの名無しさんNGNG
新しい言語仕様はもうお腹いっぱい、という人は挙手して下さい。

ノシ
0153デフォルトの名無しさんNGNG
pythonって日本語ちゃんと使えない時点でアウトだね
hoge = ['DQN', 'ドキュン', 'いやーん']
とかできないでしょ

rubyだとできる
0154デフォルトの名無しさんNGNG
>>153
できるじゃん。
0155デフォルトの名無しさんNGNG
釣ってるつもりでしょ。
0156デフォルトの名無しさんNGNG
ruby 使いって、どうしていやらしい人たちばかりなの?
0157デフォルトの名無しさんNGNG
153 は釣りかもしれないが、じっさいそう思ってる人もいるのかもよ。
0158デフォルトの名無しさんNGNG
>>157
unicode()使ったり,バイト列で書かなければならないと思っている人多い。
0159デフォルトの名無しさんNGNG
知ってる人は知ってるだろうけど、知らない人は↓を読むよろし。
http://www.python.jp/Zope/articles/japanese/Python4Japanese-2
0160デフォルトの名無しさんNGNG
PythonでWindowsの音量をコントロールしたいのですが,
可能でしょうか
0161デフォルトの名無しさんNGNG
>>160
COM経由で可能だとおもう。
0162デフォルトの名無しさんNGNG
iconv_codec と CJKcodecs入れてみたけど,
ドキュメントないし,ソース見てもよくわからないし
文字コード変換の仕方を解説してあるところアリアますか?
0163デフォルトの名無しさんNGNG
>>162
>>159のリンク先の解説では不足かな?
コデックの使い方は全部共通でコデック名だけが違う。
意図したコデックを指すコデック名を与えればいいだけだよ。
例:unicode("日本語EUC", "iconvcodec.euc-jp")
0164デフォルトの名無しさんNGNG
Unicode を経由して、unicode(letters, A).encode(B, errors) かな?
ttp://www.python.jp/pub/doc_jp/lib/built-in-funcs.html#l2h-74
ttp://www.python.jp/pub/doc_jp/lib/string-methods.html#l2h-175
0165デフォルトの名無しさんNGNG
日本語の解説が見当たらないんだけど
codecs.open() と codecs.EncodedFile クラスは知ってると便利だと思われ。

例えば、日本語 EUC のファイル (filename.txt) があったとして、
>>> import codecs
>>> file = codecs.open("filename.txt", "r", "euc-jp")
のようにファイルを開くと file.readline() は Unicode 文字列を返す。
つまり EUC-JP → Unicode 変換を自動的にやってくれる。また、
>>> file = codecs.EncodedFile(open("filename.txt"), "sjis", "euc-jp")
のようにファイルを開くと file.readline() は Shift_JIS のバイト列を返す。
つまり EUC-JP → Unicode → Shift_JIS 変換を自動的にやってくれる。

codecs.open() は以下の処理と等しい。
>>> Reader = codecs.getreader("euc-jp")
>>> file = Reader(open("redhat73"))
ファイルオブジェクトが StringIO クラスのインスタンスなどの場合は
この Reader クラスでラップする方法が使える。

以上は読み出しについての話だけど書き込み時にも同様の自動変換ができる。
Writer クラス (入手するには codecs.getwriter()) というのもある。
興味があれば調べてみてちょ。
0166デフォルトの名無しさんNGNG
うへ。ミスった。
>>> file = Reader(open("redhat73"))
このファイル名に意味はないです。
0167164NGNG
>>163
>>164
ありがとうございました。

UTF-8な文字列をshift_jisでかいたスクリプトを使って,
shift_jisで書き出すときに

# coding: shift_jis
hoge = unicode(utf8string,"UTF-8")
print hoge

としたらうまくできました。

0168デフォルトの名無しさんNGNG
>>167は>>162のカキコです。
0169162NGNG
>>165
ありがとうございます。
ファイルを読み書きしていたので,
これは透過的にできていいですね。
googleで見つけたtransliterate (�@ → (1) のような変換)もやって見ます
0170162NGNG
でも,UTF-8にあって,shift_jisにない文字が入っているとエラーはきますね。
たとえば ñ (nの上に〜)が入っていると
UnicodeEncodeError: 'cp932' codec can't encode character u'\xe3' in position 12: illegal multibyte sequence
と怒られる
アクセント付きの文字はアクセントなしの文字に変換するとか,
ない文字は豆腐にしてだすとか,そこまで親切にはやってくれないのですね。
出力先がhtmlブラウザの場合は,そういった文字たちをUnicode実態参照に変換する
ような処理をかませばいいんでしょうけど。
0171デフォルトの名無しさんNGNG
hoge = unicode(utf8string,"UTF-8", 'replace') でトウフ
hoge = unicode(utf8string,"UTF-8", 'ignore') で無視
hoge = unicode(utf8string,"UTF-8", 'xmlcharrefreplace') でXMLエンティティ
hoge = unicode(utf8string,"UTF-8", 'backslashreplace') でバックスラッシュエスケープ

ttp://www.python.jp/pub/doc_jp/lib/module-codecs.html



0172162NGNG
>>171
ありがとうございます。
もっとドキュメント読み込みます。
0173162NGNG
IDLEではうまくいきますが,なぜかコマンドプロンプトではうまくいきません
コマンドプロンプトでは,errorをstrictにしたのと同じ結果が出ます。
replaceやignoreが聞いていないようです。
もう少し試行錯誤してみます
0174デフォルトの名無しさんNGNG
ttp://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/251871
こんなのをこないだ見つけはしたけども。
0175デフォルトの名無しさんNGNG
unicode() で Unicode 文字列を作っているところじゃなくて,別の
(cp932にエンコードして) 書き出すところがエラーになっていませんか.
0176デフォルトの名無しさんNGNG
Pythonとクレヨンしんちゃんはどのような関係があるのでしょうか?

http://www.google.co.jp/search?hl=ja&ie=UTF-8&c2coff=1&q=Python+%E3%81%97%E3%82%93%E3%81%AE%E3%81%99%E3%81%91&lr=
0177デフォルトの名無しさんNGNG
子プロセスの STDOUTを、自プロセスから /dev/nullあたりに
繋ぎ直す事は可能でしょうか?
0178デフォルトの名無しさんNGNG
nullfile = file('/dev/null', 'wb')
dup2(nullfile, sys.stdout)
かな?試してないので動くかどうかわかりません.
ttp://www.python.jp/pub/doc_jp/lib/os-fd-ops.html#l2h-1368
0179デフォルトの名無しさんNGNG
>>178
おぉ、fileno()を加えたらできました。
……とはいうものの、cursesアプリなんですが、
curses.endwin()がうまくいかないや。ちょっと考えてみよ。
0180デフォルトの名無しさんNGNG
linux初心者なのですが、JapaneseCodecsをインストールしようと思うのですが
/usr/lib/python2.3/config/Makefile (No such file or directory)
と表示されてインストールできません。
どうすればいいのでしょうか、どなたか教えてください。
0181デフォルトの名無しさんNGNG
情報少ねーな、おい。
0182デフォルトの名無しさんNGNG
>>180
もしpythonをパッケージで導入しているなら、
python*-devel や python*-dev
が入っていない。
0183180NGNG
>>182
0184180NGNG
どうもありがとうございます。できました。
二重かきこみすみません。
0185デフォルトの名無しさんNGNG
asm --> C --> C++ or Python ?

(゚∀゚)Python!!
0186デフォルトの名無しさんNGNG
(゚∀゚)ノシ PyPython!!
0187デフォルトの名無しさんNGNG
Pythonって、ギガトンブローとか使えるんですよね?
0188デフォルトの名無しさんNGNG
java.....(-_-)

perl.....( ´,_ゝ`)

ruby.....('A`)

python...(*´ω`*)
0189デフォルトの名無しさんNGNG
>>188

scheme...((()))
0190デフォルトの名無しさんNGNG
>>189
Lisp (( . )( . ))
0191デフォルトの名無しさんNGNG
SmallTalk... [x x]
0192デフォルトの名無しさんNGNG
PHP... ($ $)
PostScript { % _ % } def
0193デフォルトの名無しさんNGNG
日本語以外の文字も含んだユニコード文字列に対して、
中に含まれる所謂半角カナ部分を全角カナにして返すようには、
どうするのが速くっていいですかね。
日本語だけなら pykf そのままですが。
0194デフォルトの名無しさんNGNG
よくやるのはこんな感じ:

h2z = {}
for (z,h) in zip(u"アイウエオ", u"アイウエオ"):
 h2z[h] = z

def conv(s):
 return "".join([ h2z.get(c,c) for c in s ])

「プ」→「プ」などの変換もやりたいとすると、ちょっと面倒だな。
0195デフォルトの名無しさんNGNG
'import site' failed; use -v for traceback


これは何ですか?
0196デフォルトの名無しさんNGNG
じゃあこんな感じで。(手作業)ワ行の解釈は適当。
z = list(u"ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ・ー、。「」")
h = [u"ァ", u"ア", u"ィ", u"イ", u"ゥ", u"ウ", u"ェ", u"エ", u"ォ", u"オ",
   u"カ", u"ガ", u"キ", u"ギ", u"ク", u"グ", u"ケ", u"ゲ", u"コ", u"ゴ",
   u"サ", u"ザ", u"シ", u"ジ", u"ス", u"ズ", u"セ", u"ゼ", u"ソ", u"ゾ",
   u"タ", u"ダ", u"チ", u"ヂ", u"ッ", u"ツ", u"ヅ", u"テ", u"デ", u"ト", u"ド",
   u"ナ", u"ニ", u"ヌ", u"ネ", u"ノ",
   u"ハ", u"バ", u"パ", u"ヒ", u"ビ", u"ピ", u"フ", u"ブ", u"プ",
   u"ヘ", u"ベ", u"ペ", u"ホ", u"ボ", u"ポ",
   u"マ", u"ミ", u"ム", u"メ", u"モ",
   u"ヤ",u"ャ", u"ユ", u"ュ", u"ヨ", u"ョ",
   u"ラ", u"リ", u"ル", u"レ", u"ロ",
   u"ゥァ", u"ワ", u"ウィ", u"ウェ", u"ヲ", u"ン", u"ヴ", u"カ", u"ケ",
   u"・", u"ー", u"、", u"。", u"「", u"」"]

z2h = dict(zip(z, h))
h2z = dict(zip(h, z))

def hanzen(ustr):
  return ''.join(h2z.get(uc, uc) for uc in ustr)
def zenhan(ustr):
  return ''.join(z2h.get(uc, uc) for uc in ustr)
0197デフォルトの名無しさんNGNG
折れはよく re.sub() を使うんだが、この場合は list comprehension の方がずっと速いね。

$ cat a.py
import re, time, sys

HAN = u"\uff71\uff72\uff73\uff74\uff75"
ZEN = u"\u30a2\u30a4\u30a6\u30a8\u30aa"
MAPPING = dict(zip(HAN, ZEN))
n = int(sys.argv[1])
s = HAN * n

def replace(match):
    return MAPPING[match.group()]
re_aiueo = re.compile(u"[\uff71-\uff75]")

t = time.time()
r = re_aiueo.sub(replace, s)
print time.time() - t
assert r == ZEN * n

t = time.time()
r = "".join([MAPPING[c] for c in s])
print time.time() - t
assert r == ZEN * n

$ python2.3 a.py 100000
32.1520619392
5.83971500397
0198デフォルトの名無しさんNGNG
>>197
それは濁点あつかえないし、UCS-2/4の半角/全角カナの配置から考えると
苦しくないか?
0199デフォルトの名無しさんNGNG
問1.タプルと配列の違いが良く分かるように書きなさい

答え.萌え度が違う
0200デフォルトの名無しさんNGNG
>>198
> それは濁点あつかえないし、UCS-2/4の半角/全角カナの配置から考えると
> 苦しくないか?

そかな。コード値の並びに依存しないために辞書(変数 MAPPING)を使ったんだけど。
濁点は re.compile(u"[\uff61-\uff9f][\uff9e\uff9f]?") のような正規表現と
それに対応する MAPPING の内容を準備することを考えていた。

むしろ濁点を扱うのが難しいのは list comprehension の方では?
一文字ずつ処理されるから、例えば>>196のコードの h2z[u"ガ"] というエントリは
実際には参照されないと思われ。
0201デフォルトの名無しさんNGNG
タプルとはPerlでいうと何に相当するんでしょうか?
0202デフォルトの名無しさんNGNG
あのぅ・・・>>195 のメッセェジが必ず出るんですが何故でしょうか?(結果には支障はない今のところは)

% ./hoge.py
'import site' failed; use -v for traceback
Hello World!

こんな感じ
消したい
0203デフォルトの名無しさんNGNG
>>201
Perlにはない。MLとかHaskellにはある。
0204デフォルトの名無しさんNGNG
>>202
use -v for traceback
0205デフォルトの名無しさんNGNG
>>195
site.py にエラーがあって import に失敗している。
site.py は Python の起動時に自動的に読み込まれる設定ファイル。
python -v hoge.py とするとエラーメッセージが(他の大量のメッセージと共に)表示される。
エラーの内容を確認して site.py を修正するべし。
0206デフォルトの名無しさんNGNG
>>200

Σ('o' これでどうかな

uc_ptn = re.compile(u"[\uff61-\uff9f][\uff9e\uff9f]?")
def hanzen(ustr):
  return ''.join([h2z.get(uc, uc) for uc in uc_ptn.findall(ustr)])
def zenhan(ustr):
  return ''.join([z2h.get(uc, uc) for uc in ustr])

s1 = u"デッドパロット"
s2 = u"デッドパロット"

print hanzen(s2).encode('shift_jis')
print zenhan(s1).encode('shift_jis')
0207デフォルトの名無しさんNGNG
findall() は良さげだね。list comprehension と正規表現のいいとこ取りだ。
あとは重箱の隅だけど「ア゙」とか「ン゙゙゙」みたいな変な文字の並びはどーなる?
0208デフォルトの名無しさんNGNG
>>205 thx
解決しました
0209デフォルトの名無しさんNGNG
z = list(u"ァアィ ... 「」゜゛")
h = [u"ァ", u"ア", u"ィ", ..., u"「", u"」", u"゚", u"゙", ]
にしといて、
def hanzen(ustr):
  firstpass = ''.join([h2z.get(uc, uc) for uc in uc_ptn.findall(ustr)])
  return ''.join([h2z.get(uc, uc) for uc in firstpass])

なんてどうでしょう?
0210デフォルトの名無しさんNGNG
なんで Python 2.3.4 (final) なの?
           ~~~~~~~

開発停止?(((; ゚Д゜)))ガクガクブルブル
それとも次が 2.4.1 or 3.0.1 だから?(*´ω`*)
0211デフォルトの名無しさんNGNG
What's New in Python 2.4
http://www.python.org/dev/doc/devel/whatsnew/whatsnew24.html
0212デフォルトの名無しさんNGNG
>>203
Haskellはちょっと触ったことがあるけど、
Haskellのタプル、およびリストというのは
どんな型でもOKの配列、統一された型による配列
という違いかと思いました。
(1,"abc")  [1,2,3]
Pythonもこういう感じなんでしょうかね。
0213デフォルトの名無しさんNGNG
>>210
2.3.4 (final) というのは、2.3 系列の最終版という意味ではなくて
(alpha, beta, release candidateと続いてきた)2.3.4 のリリースの最終版という意味。
当然ながら一つ前のバージョンの 2.3.3 にも (final) があった。
これはすべての Python のリリースについて言える。
0214デフォルトの名無しさんNGNG
あ、待てよ。2.3.4 には alpha は中田かも。まあいいよね。
一般には final リリースまでそういう流れでダメ出しするということです。
0215名無しさん@Vim%ChaliceNGNG
unicode化した文字列での、各文字の全角半角を判定したいのですが、
何か、いい方法がありましたら、教えて頂けませんでしょうか。

文字列の桁数をそろえたくて、
今のところ、re.( '........', hogehoge )てな感じで、やってるんですが、
桁数をを全角に合わせると、半角の分、短くなっちまうもんで。
unicodeにこだわるものでもないです。
どなたか、ご教示をお願いいたします。
0216デフォルトの名無しさんNGNG
>>> google.search('Unicode 半角 全角')[0].url
'http://www.developer.ibm.com/ja/tech/faq/individual?oid=2:23549'
0217デフォルトの名無しさんNGNG
>>212
>統一された型による配列
それはuniform vectorでは?

リストもタプルも型混在可能だよん
0218デフォルトの名無しさんNGNG
>>213
ややこしいね
fixed の表記にしてほしいよ
0219デフォルトの名無しさんNGNG
整数(int, long)は 2.4 で統合されるみたいだけど、リストとたぷるは統合の話はない?
0220デフォルトの名無しさんNGNG
スレちがいだけどStringBufferとStringも統合されたほうがいい?
0221デフォルトの名無しさんNGNG
>>219
今から書くコードはlongで統一しておいた方がいいかな?
backward compatibility はあるにしても
0222デフォルトの名無しさんNGNG
>>218
ややこしいか?
0223デフォルトの名無しさんNGNG
>>220
リストとタプルって、mutable と immutable を区別するためのものなんですか?
0224デフォルトの名無しさんNGNG
>>223
コンパイラや実行環境がね。
暗黙の型変換があるから利用者はあまり意識しなくてもいける。
あとタプルなら辞書のキーにもつかえたりするね。
0225デフォルトの名無しさんNGNG
>>218
Pythonに限らずほかのソフトでもたまにみかけるぞ(final)って表記
0226215@Vim%ChaliceNGNG
>>216
ありがとうございます。
参考にさせて頂きます。
0227デフォルトの名無しさんNGNG
>>216
読んでみたけど、日本語に限った判定法みたい。
0228デフォルトの名無しさんNGNG
>>> def iswide(c):
>>> return 1 < len(c.encode("japanese.ms932"))
...
>>> iswide("a")
False
>>> iswide(u"\uff71") # ア
False
>>> iswide(u"ア")
True
>>>
0229デフォルトの名無しさんNGNG
なんで PyDS は Python 2.2 系じゃないとダメなんだよヽ(`Д´)ノ
ぶっちゃけ断念したヽ(`Д´)ノ付属品がおおすぎてダルいんだよヽ(`Д´)ノ
0230デフォルトの名無しさんNGNG
>>223
General Python FAQ
4.15 Why are there separate tuple and list data types?
http://www.python.org/doc/faq/general.html#why-are-there-separate-tuple-and-list-data-types

4.15 なぜタプルとリストという別個のデータ型があるのですか?

リストとタプルは多くの点で似ていますが、普通は根本的に異なる方法で用
いられます。タプルは、Pascal のレコード、もしくは C の構造体と似たよ
うなものであると考えることができます。すなわち、タプルは互いに関連す
るデータの小さな集まりであり、一個のグループとして操作される別個の型
となり得るのです。例えば、デカルト座標は二つ乃至三つの数値のタプルに
よりうまく表現できます。

一方、リストは他の言語における配列に似ています。リストが保持するオブ
ジェクトの数は随時変化し、それらのオブジェクトはみな同じ型を持ってい
て一つずつ順に処理される傾向にあります。例えば、os.listdir('.') はカ
レントディレクトリにあるファイル群を表す文字列のリストを返します。こ
の出力を処理する関数は、普通はそのディレクトリにファイルが一つや二つ
増えても動作しなくなることはありません。

タプルは不変 (immutable) です。これは、一度タプルが作られるとその要
素を新しい値で置き換えることはできない、ということを意味します。リス
トは可変 (mutable) であり、リストの要素をいつでも変更することができ
ます。不変の要素だけが辞書のキーとして使えるので、タプルはキーとして
使えますがリストはキーとして使えません。
0231デフォルトの名無しさんNGNG
>>230
Python に class がなかったころの名残?
0232デフォルトの名無しさんNGNG
質問なのですが、javascriptでいうescape()や
unescape()の代わりになる関数はありますか?
0233デフォルトの名無しさんNGNG
>>231
別にclassの有無とmutable/immutableの区別の有無は関係ないだろ…
0234デフォルトの名無しさんNGNG
>>232
ttp://www.python.jp/pub/doc_jp/lib_2.3/module-urllib.html
urllibモジュール
0235デフォルトの名無しさんNGNG
tupleは使い捨て構造体みたいなものと思っている。
本来ひとつの値しか入らない場所 (リストの要素とか、
関数の返り値とか、辞書のキーとか) に複数の値を入れたいとき
ごく自然にタプルを使う場面が出てくる。

例:
1. ", ".join([ "%s=%s" % (k,v) for (k,v) in dic.items() ])
2. return (value, flag)
3. dic[(2,3)] = 8

(1.の例はやや冗長)
0236232NGNG
>>234
サンキュー
見落としてました。;
0237名無しさん@Vim%ChaliceNGNG
>>228
をを、1バイトunicode以外は、全角と見なすのですね。
参考にさせて頂きます。
0238デフォルトの名無しさんNGNG
h2z って、\u00a5 や \u203e は考慮する必要ないの?
0239デフォルトの名無しさんNGNG
カタカナ変換だろ。記号が入ってるのはサービスだよ!(逆ギレ)
0240デフォルトの名無しさんNGNG
if os.unlink(mailFile):
print "removed: " + mailFile
else:
print "could not remove: "+mailFile

で,削除が成功したのにcould not removeが表示されます
os.unlinkは成功するとFALSEを返すのでしょうか?
0241240NGNG
インデント消えちゃいました

if os.unlink(mailFile):
  print "removed: " + mailFile
else:
  print "could not remove: "+mailFile
0242デフォルトの名無しさんNGNG
python ではふつうその手の手続きは失敗すると例外を発生するので、
返り値をチェックしても成功したかどうかわからないよ。perl とは流儀が違う。

たぶんやりたいのはこうでしょう。

try:
  os.unlink(mailFile):
  print "removed: ", mailFile
except OSError, e:
  print "could not remove: ", mailFile, "error:", e
0243デフォルトの名無しさんNGNG
公式のドキュメントにも返値が書いてないし、返値は使わないが吉。
ttp://python.org/doc/2.3.4/lib/os-file-dir.html
たぶん成功しても返値はNone。

失敗の時はOSError例外を投げるから、そっちで対処しろってことかと。
0244243NGNG
かぶった・・・しかも後出し負けっぽい適当レス・・・orz
0245デフォルトの名無しさんNGNG
>>242-243
ありがとうございました。
じつはこういったモダンなエラー処理を備えている言語を本格的に使うのは初めてでした
このような場合にも使えるのですね。勉強になりました。
0246デフォルトの名無しさんNGNG
wxPythonでカーソルをプログラムから動かすにはどうしたらよいでしょうか?
0247デフォルトの名無しさんNGNG
dirdict = {wxUP: "上", wxDOWN: "下", wxRIGHT: "右", wxLEFT: "左"}
def moveCursor(direction, mickey=0):
  dirstr = dirdict[direction]
  mickeystr = ""
  if mickey:
    mickeystr = " %d ミッキーだけ"
  wxMessageDialog("カーソルを%sに%s動かしなさい" %(direction, mickeystr),
           "黙って言うとおりにしなさい")
0248デフォルトの名無しさんNGNG
真面目に回答するならこれ。

from wxPython.wx import *
import time, math

class TestApp(wxApp):
  def OnInit(self):
    self.frame = wxFrame(None, -1, '', size=(800, 600))
    EVT_CHAR(self.frame, self.OnKey)
    self.SetTopWindow(self.frame)
    self.frame.Show(True)
    id = wxNewId()
    self.timer = wxTimer(self, id)
    EVT_TIMER(self, id, self.OnTimer)
    self.timer.Start(10)
    return True

  def OnKey(self, evt):
    self.ExitMainLoop()

  def OnTimer(self, evt):
    hw, hh = map(lambda x: x/2, self.frame.GetSizeTuple())
    x = int(hw + 0.8*hw*math.sin(5*time.clock()))
    y = int(hh + 0.8*hh*math.sin(3*time.clock()))
    self.frame.WarpPointer(x, y)

if __name__=="__main__":
  app = TestApp(0)
  app.MainLoop()
0249246NGNG
>>247-248
ありがとうございました。
0250デフォルトの名無しさんNGNG
wxPython てみんなどれくらい使ってんの?
0251デフォルトの名無しさんNGNG
wxPythonはまだないんだけど、
Windowsでも見た目がおかしくないからWxはよくつかう。
上のソースをみてもインターフェースはまんま一緒みたいだね。
0252デフォルトの名無しさんNGNG
Tkinterに関して教えてください。
100×100のキャンバスに最大サイズの矩形を描くプログラムですが

from Tkinter import *
root = Tk()
c = Canvas(root, width=100, height=100, bg='#ffffff')
c.pack()
c.create_rectangle(0, 0, 99, 99) #この数値がおかしい。
root.mainloop()

左上の座標が(0, 0)で、右下の座標が(99, 99)だと思ったのですが、
上のようにすると、矩形の上辺と左辺が描かれず、右辺と下辺が
Canvasの端から離れてしまいます。

5行目を
c.create_rectangle(2,2,101,101)
に変えると、思いどおりの矩形が描かれるのですが
この 2 と 101 は、どこから出てくる数値ですか?
0253デフォルトの名無しさんNGNG
誰かオジさんにOOPを分かり易く解説してくれ
0254デフォルトの名無しさんNGNG
>>252
Tcl/Tk の Canvas の座標系は (1, 1) が原点だと思われ。
漏れの環境 (Python 2.3.4、Tcl/Tk 8.3.4、X Window System) では
c.create_rectangle(1, 1, 100, 100)
とすれば100×100のキャンバスいっぱいに黒い線の矩形が描かれる。

c.create_rectangle(0, 0, 99, 99) だと左と上の辺が欠ける。

c.create_rectangle(2, 2, 101, 101) だと右と下の辺が欠ける。
0255デフォルトの名無しさんNGNG
Tk Usage FAQ (Frequently Asked Questions)
6.8. Why doesn't the canvas seem to start at 0,0?
ttp://tcl.sourceforge.net/faqs/tk/#canvas/border
0256コロ助NGNG
>>253
データ+手続き=クラス

データとそのデータを直接操作する手続きをひとつのクラスにまとめるナリ。
オブジェクト指向プログラミングの基本はこれだけナリ。

クラス外からデータを操作したい場合はそのクラスが提供している手続きを呼
び出すことによってデータ操作を行なうナリ。この取り決めによって、データ
がクラス内に隠されるナリ。その結果、手続きの名前や引数を変更しない限り、
クラス内のデータの表現や処理方法をどのように変更しようと、クラス外のプ
ログラムに変更が必要になることはなくなるナリ。つまり、クラスの独立性が
高まるナリ。

ここでクラス外のコードは、別のクラスの手続きかも知れないし、Python の
場合は関数やスクリプトの地の文かも知れないナリ。

このようなアプローチ、すなわちオブジェクト指向でプログラムを書く場合、
何をクラスとするかが設計上の問題になるナリ。つまり、データと手続きとを
どのようにクラスにまとめるかということナリ。

解決したい問題のなかに現れるデータと処理とをいくつかのクラスにまとめて
クラス間の呼び出し関係を破綻なく構成するのは実は簡単なことではないナリ。
そのため、どのような関係のクラス群を構成すればうまくいくかという経験則
を知っておくのが重要ナリ。オブジェクト指向関係の書籍で扱われているのは
この経験則に他ならないナリ。片手間に読んでおくと設計の善し悪しに大きな
差が出るナリ。もちろん失敗から学べることも多いナリ。

分かったナリか?
0257252NGNG
>>254-255
ありがとうございます。
c.xview('moveto', 0)
c.yview('moveto', 0)
を追加したらうまくいきました。
0258デフォルトの名無しさんNGNG
>>256
分からん。

> データ+手続き=クラス
なぜ可読性を犠牲にするのかが分からん。
手続きとデータを分離した方がプログラムの論理が明解になるし
データも任意のものを用意できると思うのだが。

> データがクラス内に隠される
データ保護はある意味で汎用性が全くない気がするが?

> 経験則
要はアホのひとつ覚えのように手当り次第に組めばいいということか。
エレガントでないな。まず仮説というか理論を適用するような方法が確立できないものか。
0259デフォルトの名無しさんNGNG
擦れ違い。こっちでやれ。
オブジェクト指向・嗜好・試行・至高・歯垢
http://pc5.2ch.net/test/read.cgi/tech/1049778124/l50
0260デフォルトの名無しさんNGNG
ク、クマー

黒箱に可読性とかいってるの(プ
0261デフォルトの名無しさんNGNG
>>258
> > データ+手続き=クラス
> なぜ可読性を犠牲にするのかが分からん。
可読性とオブジェクト指向はまったく別の問題(直交した概念)だと思われ。
まあしかし、読みにくいオブジェクト指向のプログラムが多いのは認める(w

> 手続きとデータを分離した方がプログラムの論理が明解になるし
> データも任意のものを用意できると思うのだが。
具体例を挙げよう。
Python のファイルオブジェクトはオブジェクト指向的なものの一例だ。
組込み関数 open() で開く普通のファイルオブジェクトに加えて、
urllib.urlopen() で開くネットワーク越しのストリームや
StringIO.StringIO() で作る疑似ファイルオブジェクト(実体はメモリ上の文字列)もある。

ファイルオブジェクトを処理対象にするクラス外のプログラム(別クラスの手続きや
モジュール関数)は、与えられたファイルオブジェクトが特定の手続きを持つことを
要求する。よく用いられるのは readline() や write() などの手続きだ。逆に、必要と
される手続きをそろえたクラスは何でもファイルオブジェクトになることができる。

クラス外のプログラムを書くときに仮定することは、
そのクラスが所定の手続きを実装しているということだけ。
クラス内のデータ構造がどうなっているかは考える必要がない。
0262デフォルトの名無しさんNGNG
> > データがクラス内に隠される
> データ保護はある意味で汎用性が全くない気がするが?
ポイントは「データの保護」ではなくて「データの隠蔽」にある。
Python では他の型付きオブジェクト指向言語と違ってデータ保護機能が弱い。
ぶっちゃけ、無理にアクセスしようとすればいくらでもアクセスできてしまう。
それよりも大事なのはデータがクラス内に隠されているということ。
上のファイルオブジェクトの例で言えば、Python でファイルを操作するプログラムは
与えられたオブジェクトが readline() や write() を実装していれば動く。
手続きを介して内部データにアクセスするという「取り決め」を守っているからだ。
readline() や write() を実装したファイル的オブジェクト (file-like object) であれば
何でもよいという汎用性はオブジェクト指向プログラミングによって生まれた利点だ。
0263デフォルトの名無しさんNGNG
よく分からん
0264デフォルトの名無しさんNGNG
>>259
0265デフォルトの名無しさんNGNG
なんか知らんが相当たまってるんだな。
0266デフォルトの名無しさんNGNG
データを隠蔽したら何も見えないじゃないか!
0267デフォルトの名無しさんNGNG
隠蔽するデータと見せるデータは別に
0268デフォルトの名無しさんNGNG
脳味噌に電極ぶっさして直接信号を送り込むのではなく耳や目といったインタフェースを使って情報を送るということだ
0269デフォルトの名無しさんNGNG
全ては闇の中
0270246NGNG
248さんのプログラムの

  def OnTimer(self, evt):
    hw, hh = map(lambda x: x/2, self.frame.GetSizeTuple())
    x = int(hw + 0.8*hw*math.sin(5*time.clock()))
    y = int(hh + 0.8*hh*math.sin(3*time.clock()))
    self.frame.WarpPointer(x, y)

のところを、

  def OnTimer(self, evt):
    x , y = wxGetMousePosition()
    self.frame.WarpPointer(x, y)

とすると、マウスポインタが斜め下の方に勝手に行ってしまうのですが、
ポインタをその場に居させるようにするにはどうしたらよいでしょうか?
0271デフォルトの名無しさんNGNG
>>270
説得する
0272wxPythonGTK-py2.3-2.5.1.5NGNG
うちだと self.frame.WarpPointer(x-5, y-21) で静止します。
wxGetMousePosition()でとれてる値は正常なのでWarpPointerのほうの問題?
5と21ってなんだろ。
0273デフォルトの名無しさんNGNG
wxGetMousePosition() はスクリーン座標で、
window.WarpPointer() は window の座標系。
>> 272 の 5, 21 はウィンドウの(タイトルバーや淵より内側の)左上端
の座標でしょう。
window.ScreenToClientXY() を使って座標変換してください。
あと、単にカーソルを動かしたくないのなら、タイマよりマウスイベントを
拾ったほうがよいでしょう。また、イベント処理の中でカーソルの位置を
調べても泥縄で、最初から動かしたくないのなら OnInit() の段階で
wxGetMousePointer() しないといけません。
たとえばこんな感じにです。

def OnInit(self):
  ...
  cx, cy = wxGetMousePosition()
  self.x, self.y = self.frame.ScreenToClientXY(cx, cy)
  EVT_MOTION(self.frame, self.OnMotion)
  return True

def OnMotion(self, evt):
  self.frame.WarpPointer(self.x, self.y)



0274デフォルトの名無しさんNGNG
大量の定数があってそれを元にさまざまな機能を実現したい時とか
変数をグローバルにする事無く実装できるのがいいと思うんだけど。
似たような関数がたくさんあってどれも捨てられないような時、
使う変数も似通っているので変数をまとめて集中管理できるところとか。
なんでもかんでもオブジェクトには大反対ぃ〜
0275デフォルトの名無しさんNGNG
>>274
そういうごっちゃなコードがあったとしても、
モジュール化してネームスペースは分けましょう。
コードも日本語も読み手に負担をかけないように心がけるのです。
0276デフォルトの名無しさんNGNG
pythonのcgiでhttpのリターンコードをいじる方法ってありませんか?
phpの
header("HTTP/1.0 404 NotFound");
とか、
javaの
response.setStatus(404);
のようなことがやりたいのですが。
0277デフォルトの名無しさんNGNG
print "Status: 404 Not Found\n\n";

CGI自体の仕様を確認すべし。
http://www.w3.org/CGI/
0278デフォルトの名無しさんNGNG
>>277
文末のセミコロンはいらん
0279276NGNG
>>277
おお、なるほど。
即レスありがとうございます。解決しました。
そっち方面から調べれば良かったんですね。勉強になります。
0280デフォルトの名無しさんNGNG
6 名無しさん@お腹いっぱい。[sage] 04/06/26(土) 20:35
         ,.. 、
        ( ... \
   , - 、  ヽ ::::... ヽ
  ( :::... \ ヽ ::::;... `ー‐- 、
   \ :::.... ン´       `丶、
    \ ::/             ヽ
        ソ                 ',
     |                l   / ̄ ̄ ̄ ̄
      ヽ         ●   ●| <   ぬるぽ
       ',          ,○、  |   \_____________
         l             (_人_)|
       }            └┘ |
        |                  |
        |             l
      /´ヽ               /
       L.__,,ゝ、     _  r 〈
          "'' ‐- 、__{__}‐'′
0281デフォルトの名無しさんNGNG
>>280
かのOSでも動くんだっけ?
こんどはメットをかぶったバージョンをよろ。
0282デフォルトの名無しさんNGNG
「ぬるぽ」はPythonだとどうなるん?
None ・・・??
0283デフォルトの名無しさんNGNG
オレはこんなのよく出すけど。

AttributeError: 'NoneType' object has no attribute 'strip'
0284デフォルトの名無しさんNGNG
wxgladeをつついてみたけど使いかた、っていうか
いままでやってたCUIとしての(この表現で合ってるのか?)pythonとの
連携のしかたが分からん。マニュアルみてもボタンの項目には
ボタンのウィジェットの説明しかないし。
これってどうやったら実用レベルになれるんでしょうか(私が)
0285デフォルトの名無しさんNGNG
>>284
100% Python の wm のソースコードでも眺めていれば?
0286デフォルトの名無しさんNGNG
>283
じゃあ「のんた」ってとこか?
0287デフォルトの名無しさんNGNG
>>283
ガッ!!
>>286
ガッ!!
0288デフォルトの名無しさんNGNG
このスレは「ぬるぽ」はスルーで「のんた」がガッされるのか
0289デフォルトの名無しさんNGNG
>>288
ガッ!!
0290デフォルトの名無しさんNGNG

\_WWWWWWWWWWWWWWWW/
≫  のんたぁぁぁぁぁぁぁー!  ≪
/MMM| /MMMMMMMMMMM、\
     |/

''''''─- .....,,,_        __人_人,_从人_.人_从._,人_人_
 ̄"゙'"''''''─‐- ゙"ニ ─__ )
 r──---   ...___    ) 待ちやがれ!
 三 /レi ニ |   ニ ≡ )  頭叩かせろ!
 .ニ ( ´∀)|  ニ  |!カ_ ろ   待ってくれー!!
 | /  つ つ Lニ-‐′´   )/⌒Y⌒Y⌒l/⌒Y⌒Y⌒Y⌒
 '''''゙゙゙゙゙ ̄  _,, -‐'''∧_∧ っ ゚
--─="゙ ̄    ⊂(Д´;) ゜ {三}
ニ─        _,.. ゝ、 つ===回
      _,.. -‐'"   しへ ヽ  .{三}
__,, -‐''"         ,  ゙ー'
            , '    /
0291デフォルトの名無しさんNGNG

'''''|  | .....,,,_
 ̄|  |''''''─‐- ゙"ニ ─__
  |  |─ガッ-   ...___
  |  |/レi ニ |   ニ ≡
  |  |`Д)|  ニ  |!カ_
  |  | つ つ Lニ-‐′´
 ''|  |゙゙ ̄  _,, -‐'''
--|  |"゙ ̄
ニ|  |      _,.
  |  |  _,.. -‐'"
__,,|  |''"
  |  |
0292デフォルトの名無しさんNGNG
ぬるぽほどインパクトがないなあ…
0293デフォルトの名無しさんNGNG
http://www.google.co.jp/search?q=cache:oV_R0gSYnmkJ:www.nhk.or.jp/a-room/kotoba/12yamaguchi/12episode07.html+%E3%81%AE%E3%82%93%E3%81%9F&hl=ja
0294デフォルトの名無しさんNGNG
>285
申し訳ない
煽るつもりはないんだけど
でもたぶん煽ってるみたいに聞こえちゃうんだろうけど
pythonでGUIプログラムを始めたい人って
皆、そんな遠回りしないと始められないんですか?
0295デフォルトの名無しさんNGNG
>>294
何?そしたら何かい、漏れに python/{tk, gtk} のガイトサイトを探してこいと
0296デフォルトの名無しさんNGNG
「日本語」という属性を捨てていいなら、
tkinter でも、pyfltk でも、pygtk1 でもいくらでも手軽な選択肢はある。

本当の原因は、日本語をきちんとサポートしているクロスプラットフォームの
gui ツールキットが少ないことにあると思う。

ちなみに wxpython はまだ発展途上という気がする。
Windows版は安定してるのかもしれないが、linux では gtk まわりの
assertion で落ちることが多い。ドキュメントも少ない。

pygtk2 のほうが安定して動くしドキュメントも多いし、まともだと思う。
でもこっちは Windows 版がインストールしづらい。見た目も Windows 標準じゃないし、
一長一短。
0297デフォルトの名無しさんNGNG
つぅか M$ とニホンゴは捨てるだろ普通。
どっちもしょぼいから切ったほうが良い。
一体なんのための UI なのか・・・
0298デフォルトの名無しさんNGNG
> 一体なんのための UI なのか・・・

商売ということを考えたとき、
しょぼくても ui があるのとないのでは
売れる数が違うと思うけど?
0299デフォルトの名無しさんNGNG
ttp://www.pygtk.org/pygtk2tutorial/index.html
ttp://www.pygtk.org/articles.html

まだまだいっぱいあるやん。とりあえず読んだらええんとちゃうの?
0300デフォルトの名無しさんNGNG
ttp://www.pythonware.com/library/tkinter/introduction/index.htm
ttp://wxpython.org/tutorial.php

だるい。あとは↓
ttp://www.python.org/cgi-bin/moinmoin/GuiProgramming
0301デフォルトの名無しさんNGNG
>>294
> pythonでGUIプログラムを始めたい人って
> 皆、そんな遠回りしないと始められないんですか?

Python はマイナーな言語だよ。そのマイナーな言語用の、さらにマイナーな
GUI ライブラリのドキュメントなんて無くて当たり前。「あったらラッキー」
ぐらいのつもりで、むしろ最初から既存のコードを読むつもりでないと。

というか、既存のコードを読まずに習得できるプログラミング言語や
ライブラリなんてほとんど無いと思うんだけど、オールドタイプなのかな(俺が)
0302デフォルトの名無しさんNGNG
import してから help() を呼んでみると良い。例えば
>>> import Numeric
>>> help(Numeric)
0303デフォルトの名無しさんNGNG
pydoc ……って、winではどうしてるのかな。
0304デフォルトの名無しさんNGNG
help()、便利だよなー。
前は print hoge.fuga.__doc__ とかやってたけど面倒だった。
0305デフォルトの名無しさんNGNG
>>301
> Python はマイナーな言語だよ。
そう卑屈になるなよ。かの google の保守も Python で行っているっていう話
もあるし他も凄い処で Python が使われてる(例えば NASA のあるプロジェクトで)。
日本というごく狭い意味のない制限を付けるとマイナーに見えるかもしれないが
それは君が世間知らずだからという他あるまい。

> そのマイナーな言語用の、さらにマイナーな GUI ライブラリのドキュメントなんて無くて当たり前。
>>299-300 を見れば判るように初心者向けの読み物はわりとしっかりとしているし数も豊富だよ。

> 既存のコードを読まずに習得できるプログラミング言語やライブラリなんてほとんど無いと思うんだけど、
> オールドタイプなのかな(俺が)
敢えて君に勧めるが CPAN の資源を Python で利用できるように働きかけなさいな。Python 修得のために。
0306デフォルトの名無しさんNGNG
世界で一番普及してるスクリプトじゃなかったの?
0307デフォルトの名無しさんNGNG
漏れはPythonには「地味にメジャー」って印象がある。残念ながら使ってないけども。
0308デフォルトの名無しさんNGNG
>>306
Zope を捨てて PHP をマージしたときに Python は真の意味でそのような地位を築くことができる
0309デフォルトの名無しさんNGNG
辺境にあって中央にあり。
0310デフォルトの名無しさんNGNG
>>305
あなた、Python の開発経験にとぼしそうだね。
ドキュメントの少なさに苦労したことがある人間のことばとはとても思えない。

> CPAN の資源を Python で利用できるように働きかけなさいな。

意味不明。
0311デフォルトの名無しさんNGNG
>>310
あなた、Python の開発経験がほうふそうだね。
ドキュメントの少なさに苦労したことがある人間のひとりに思える。
打開策を披露しなさい。
0312デフォルトの名無しさんNGNG
ネタスレでやれば?

最近立場が逆転している希ガス。
0313301=310NGNG
>>311
> 打開策を披露しなさい。

>>284さんも書いてるけど、ライブラリのマニュアルは機能の羅列で
何と何をどう組み合わせたらいいのか分からないことがよくある。
GTK+ のマニュアルはその典型だね。Tutorial は必読だけど量的に全然足りない。

なので用例を探す。

所望の API の使用法を解説したページが見つかればラッキーな方で、
無ければそのライブラリのアプリを探してコードを読む。
それでもダメならライブラリのソースを読むしかない。

そーいや GTK+ 2.x で Input Method (IM) の切替方法を調べたときは大変だった。
それっぽい API 関数がいろいろあるんだけど組み合わせ方が分からない。
用例も見つからない。試行錯誤の結果、何とか動くものができたけど挙動がぁゃιぃ。
仕方なくライブラリのソースコードを読んでみたら予想外の答えが得られた。
実は「どの API 関数も呼ばなくていい」の(w
何のことはない、最初からテキストウィジットに IM 切替メニューが組み込まれてて
右クリックすればデフォルトで出てくんの! もうね、アボカド、バナナかと。
そういう重要なことはマニュアルにデカデカと赤文字で書いとけYO!なんてね。
メニューの内容は環境変数 GTK_IM_MODULE_FILE で指定した設定ファイルで
変更できるんだけど、それについてもドキュメントが見当たらなかった(当時)。
まあこんなことは日常ちゃめしごと(←なぜか変換できない)。もう慣れっこだ。
やっぱオールドタイプだな、俺は。
0314デフォルトの名無しさんNGNG
>>313
> 何と何をどう組み合わせたらいいのか分からないことがよくある。
そのまえに何がやりたいのかが決められないのでは?

> Tutorial は必読だけど量的に全然足りない。
具体的にはどのような事が不足していると感じて理想の(必要十分な)ドキュメントはどのようなものなのか教えれ

> 所望の API の使用法を解説したページが見つかればラッキーな方で、
どうやら君には自分でテストしてみるという概念が欠けているように見える。
さらに何故マニュアルの記述が極めて抽象的であるかという理由を良く理解していないように思える。

> そういう重要なことはマニュアルにデカデカと赤文字で書いとけYO!なんてね。
それは君が単に無知だったからだろ?ソースコードを読んでなかったからだし
それにマニュアルは君だけの為に存在する訳でもないからね。

> 変更できるんだけど、それについてもドキュメントが見当たらなかった(当時)。
で、君のしたことはちゃんとドキュメントのかたちで表明したのかね?
してないならその不満を言える立場に居ないということを自覚して貰わないとね。

> やっぱオールドタイプだな、俺は。
だからそう卑屈になるなって(w
0315301=310NGNG
ク、クマー(ズザザ
0316デフォルトの名無しさんNGNG
>>315
これだから素人は…
0317デフォルトの名無しさんNGNG
開発経験がなくて日本語も出来ない上に粘着質ってことだね。
世界的視野に立っているんだね。
森を見て木を見ずってこのことだね。
0318デフォルトの名無しさんNGNG
粘着中に割り込み失礼します。
ttp://sourceforge.jp/projects/pythonjp/files/
からPython23jp.chmギったんですが表示できません。
金払わずに見る方法を教えてください。
つかtext/plainの時点でぶっ壊れているような。
0319デフォルトの名無しさんNGNG
> Python23jp.chmギったんですが表示できません。
それはギったとは言わん。

> つかtext/plainの時点でぶっ壊れているような。
これはsourceforge.jpの設定の方がおかしい。

こっちでは普通に表示できたけど……。

とりあえずチェックサムは一致してる?
もし一致してないなら、「間もなくダウンロードが開始されます」
のページの時にブラウザの読み込み停止ボタンを押して、
リンクを右クリックして、対象をファイルに保存してみ。
あるいはダウンローダを使うか。

それでダメなら……Windowsがおかしいか、WindowsじゃないOSかだ。
0320デフォルトの名無しさんNGNG
>>318
右クリックでは保存できないよ
0321デフォルトの名無しさんNGNG
>>310
> あなた、Python の開発経験にとぼしそうだね。
乏しいどころか全くありません。
ライブラリリファレンスを読まなければならないのですが読む気が失せる。。。

> > CPAN の資源を Python で利用できるように働きかけなさいな。
>
> 意味不明。
えぇと、単純に 100% Pure Perl "PPython" みたいなのが既にあるのかなぁ〜
ということです(JPython のような感じで Perl の資源も Python 側から全部使えればなぁ)
0322デフォルトの名無しさんNGNG
>>310-321
         ,.. 、
        ( ... \
   , - 、  ヽ ::::... ヽ
  ( :::... \ ヽ ::::;... `ー‐- 、
   \ :::.... ン´       `丶、
    \ ::/             ヽ
        ソ                 ',
     |                l   / ̄ ̄ ̄ ̄
      ヽ         ●   ●| <   またーりしよう
       ',          ,○、  |   \_____________
         l             (_人_)|
       }            └┘ |
        |                  |
        |             l
      /´ヽ               /
       L.__,,ゝ、     _  r 〈
          "'' ‐- 、__{__}‐'′
0323デフォルトの名無しさんNGNG
>>322
氏ねや

誰だpythonなんて1日でマスターできると逝った奴は!!!!!!!!!!!!
0324デフォルトの名無しさんNGNG
>>323
いきなり『氏ねや』って、どういう事ですか?君には社会の常識がないのですか?
普通は、『あのう、すいませんけれども氏んでくれませんか?』とか
『あなたはには、氏ぬという選択肢もありますよ』とか言うものですよ。
あなたみたいに最初から喧嘩腰だと、言われた方は『じゃぁ氏んでみようかな』
とかいう気持ちがなくなるものです。
まずは、親切丁寧に『氏んで』と頼むべきだと思いますよ。
そこから、人の輪と協調が生まれ、『よーし氏んでみるか』という気持ちが生まれるわけです。
0325デフォルトの名無しさんNGNG
>>324
         ,.. 、
        ( ... \
   , - 、  ヽ ::::... ヽ
  ( :::... \ ヽ ::::;... `ー‐- 、
   \ :::.... ン´       `丶、
    \ ::/             ヽ
        ソ                 ',
     |                l   / ̄ ̄ ̄ ̄
      ヽ         ●   ●| <   warota
       ',          ,○、  |   \_____________
         l             (_人_)|
       }            └┘ |
        |                  |
        |             l
      /´ヽ               /
       L.__,,ゝ、     _  r 〈
          "'' ‐- 、__{__}‐'′
import 2chaa
aa = 2chaa.new('nullpo_plan9')
aa.compose('warota')
aa.anotateComment('hoge')
aa.2chPost('http://pc5.2ch.net/test/read.cgi/tech/1081312810/',None,'sage')
0326デフォルトの名無しさんNGNG
>>323
いつの間にか嵌まるよね(´ー`)
0327デフォルトの名無しさんNGNG
>323
> 誰だpythonなんて1日でマスターできると逝った奴は!!!!!!!!!!!!

おそらく英語圏の意見が翻訳されただけかと
0328318NGNG
>>323
俺

>>319-320
ありがとうございます。
IEで正規購入したら見れました。
0329デフォルトの名無しさんNGNG
パロット
0330デフォルトの名無しさんNGNG
絵に描いた餅。
0331デフォルトの名無しさんNGNG
取り敢えず C/C++, Java, PHP, Perl の主要言語へのラッパーは存在するようだ。
ということで Python をそれらの言語インターフェイスと考えれば Python を習熟すれば
他の5つの言語を使えるようになる。尤も整合性は他の言語への理解度の深さに依存するが(^^;
0332デフォルトの名無しさんNGNG
sackit的。
0333デフォルトの名無しさんNGNG
>>321
> ライブラリリファレンスを読まなければならないのですが読む気が失せる。。。

具体的にどんなことがしたいんだ、え? 言ってみな。
寄ってたかってお節介してやっから。
0334デフォルトの名無しさんNGNG
>>333
取り敢えず kernel の全てを Python で書き換えてまともに動かしたいです。
あ、そのまえに shell を、ってこれはもう既にありますね;-)
0335デフォルトの名無しさんNGNG
kernelをPythonで実装するのなら、そのkernelを実行するPythonは
どこで実行されるんだろうね?
0336デフォルトの名無しさんNGNG
kernelをCで実装するのなら、そのkernelを実行するCは
どこで実行されるんだろうね?
0337デフォルトの名無しさんNGNG
>>336は微妙にわかってないね。
0338デフォルトの名無しさんNGNG
カーネルモジュールを python で書こうとしたことはある。
0339デフォルトの名無しさんNGNG
Pentium7辺りではぴちょんインタプリタがハードに実装されているんだよ。
みんなもう少し待つんだ。俺は要らないけど。
0340デフォルトの名無しさんNGNG
をいおまいら Tkinter, PyGTK, wxPython ,PyGUI の中から好きなの選べ
0341デフォルトの名無しさんNGNG
をいおまいら SWIG, Jython, Mod_python, PyPerl の中から好きなの選べ
0342デフォルトの名無しさんNGNG
じゃ、PyPanで。
0343デフォルトの名無しさんNGNG
ttp://starship.python.net/crew/theller/pypan/
0344デフォルトの名無しさんNGNG
漏れだったらPyGTKとJythonを選ぶかな。
0345デフォルトの名無しさんNGNG
PyGUIとPyPerlをステ
0346デフォルトの名無しさんNGNG
wxPython(使えてないけど)

なんだかんだ言って今の世の中windowsとの互換性は大事よ?
職場で仕事効率化のツールを組んでも
Linux入れなきゃ使えないとなれば誰も使わないし
0347デフォルトの名無しさんNGNG
漏れ native linyxer だから M$ との互換性なんて概念すら無いよ。
sf.net も POSIX の方が M$ よりも大規模だしな。
0348デフォルトの名無しさんNGNG
自分自身が完全にLinuxで完結できたとしても、他人と関わる以上M$との互換性は
気にせざるを得ない。>>347のように他人との接触がないヒッキーならともかく。
0349デフォルトの名無しさんNGNG
>>348
君ねぇ〜分かってないね。M$ なんか無視して良いんだよ。
めくらの OS 上に乗っけてまともに保守する気あんの?
良いものを創るんだったら POSIX で実装しないとね。いろんな意味で。
言語レベルで互換性が保たれてるからぶっちゃけ移植は後まわしでいいし。
0350デフォルトの名無しさんNGNG
さすが,世界的視野に立っている香具師は言う事が違うね(;´Д`)。
0351デフォルトの名無しさんNGNG
気概*だけ*は立派だけどね;-)
0352デフォルトの名無しさんNGNG
それより日本人なら >>342-343 のネーミングが気になるだろ?
0353デフォルトの名無しさんNGNG
帝國ポストンは絶対狙ってやってると思うんだけどなぁ。
0354デフォルトの名無しさんNGNG
>>353
マジだとしたら相当イタいね。
全然成長している気がしないからね。
0355デフォルトの名無しさんNGNG
pyqt は?
0356デフォルトの名無しさんNGNG
帝國ポストンは人を使うのがうまいんだよ。
0357デフォルトの名無しさんNGNG
ある一定期間中にキー入力やマウスクリックがあったか、なかったかを
チェックしたいんですが、pythonで可能でしょうか?
0358デフォルトの名無しさんNGNG
可能

環境もろくに書かないんだからこういう回答を期待してるんだよね?
0359デフォルトの名無しさんNGNG
win32comでの質問です。

COMを使って、すでに起動しているIEを制御するにはどうすればいいですか?
ie=win32com.client.Dispatch("InternetExplorer.Application")
じゃ新しいのが立ち上がっちゃうよね?
0360デフォルトの名無しさんNGNG
ここで聞くより他の方がいくないか?
0361デフォルトの名無しさんNGNG
>>360

いえ、いったん繋がった後は、他の言語と同じなのでいいのですが、
すでに起動しているものへのアタッチの仕方がわからないのです。

rubyのwin32oleでいうところのconnect()がPythonでは何かがわかりません。
0362デフォルトの名無しさんNGNG
ttp://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/269345

google://win32com python connect で一番上にくるんだけどねぇ
0363デフォルトの名無しさんNGNG
2.3.3から2.3.4にあげるときは、いったん、以前のものをアンインストールする必要があありますか?
OSはWindows 2000です。
0364デフォルトの名無しさんNGNG
No new features have been added in Python 2.3.4. The 2.3 series is now in bugfix-only mode.
0365デフォルトの名無しさんNGNG
2.4がもう完成しつつあるんだろうね
0366デフォルトの名無しさんNGNG
なんのこっちゃ?
0367デフォルトの名無しさんNGNG
>>362
ありがとう。吊ってくる。
0368デフォルトの名無しさんNGNG
もう2.3系ではバグフィックス以外やること無いってことでしょ
0369デフォルトの名無しさんNGNG
2.4系でバイトコード実装
2.5系で2.4系の虫取り
2.6系で

犬核みたいだな…
0370デフォルトの名無しさんNGNG
バイトコード実装て何?

あと、Pythonは2.0頃からずっと、しっくり来る安定点を探って
言語仕様を模索しつつ変化し続けている印象が。

おかげで面白い反面安心して使いづらい……。
0371デフォルトの名無しさんNGNG
2バイトコード標準実装の略ですスマソ >>370
0372デフォルトの名無しさんNGNG
もう5年になるんだね。
0373デフォルトの名無しさんNGNG
>>371
その略し方は激しく間違っとる
普通は「多バイト文字」とかの言葉を使う。
「バイトコード」というと全く別の意味に解釈されてしまう。
0374デフォルトの名無しさんNGNG
あるいは「2バイト文字コード」だね。ところで、

>>369
> 2.5系で2.4系の虫取り

これのソースある?

Python のバージョンには「マイナーバージョンが奇数なら開発版」という
決まりはなかったと思うので。いつの間に変わったのかな。ってことで
ソースきぼんぬ。
0375デフォルトの名無しさんNGNG
バグフィックスのみのリリース (patch releases) のことは
PEP-6 で定義されています。
(知る限り、奇数が開発版という風習はありませんでした。)

http://www.python.org/peps/pep-0006.html

Version Numbers

Starting with Python 2.0, all feature releases are required to
have a version number of the form X.Y; patch releases will always be
of the form X.Y.Z.
0376デフォルトの名無しさんNGNG
Perlって

@array = `cat hoge.txt`;

みたいにコマンドの結果を変数やら配列に格納できるじゃないですか。
pythonではどうやるんですか?
0377デフォルトの名無しさんNGNG
>>376
ttp://www.python.jp/pub/doc_jp/lib_2.3/module-commands.html
お手軽なのはこれ。もしくはpopen系を利用する。

残念ながら、出発がシェルプログラミング用途のPerlのような便利な構文はありません。
0378デフォルトの名無しさんNGNG
>>377
なるほど、さんきゅ
0379デフォルトの名無しさんNGNG
> あるいは「2バイト文字コード」だね。
>
EUC-JPとかは1〜3バイト可変長だよ、と無粋なつっこみしていい?
0380デフォルトの名無しさんNGNG
普通にマルチバイトっていえや。
0381デフォルトの名無しさんNGNG
[Python-Dev] RELEASED Python 2.4, alpha 1
http://mail.python.org/pipermail/python-dev/2004-July/046013.html

Python 開発チームと Python コミュニティを代表して Python 2.4 の最初の
アルファ版を披露することをうれしく思います。

Python 2.4a1 はアルファリリースです。ダウンロードして離陸前のテストを
行ない、見つけた問題を知らせてもらえると大変ありがたいです。しかし、
このリリースは業務での利用には向きません。

  http://www.python.org/2.4/

このリリースには、多くの新しいモジュール、高速化のためにCで再実装され
た多くの既存モジュール、多数の改良、既存モジュールへの機能追加、そして
修正されたバグの数々が含まれています。ハイライト、「the What's New in
Python 2.4」、または詳細な NEWS ファイルを参照して下さい。

少なくともあと1回、数週間以内にアルファリリースを行ない、最初のアルファ
版に入れられなかった若干の新しい機能を取り込む予定です。

このリリースで見つけたあらゆる問題を是非 SourceForge のバグ追跡システ
ムに登録して下さい (2.4a1 を使っていることを明記して下さい)。

  http://sourceforge.net/bugs/?group_id=5470

新リリースをお楽しみ下さい。
Anthony

Anthony Baxter
anthony at python.org
Python リリース・マネージャ
(Python-dev チーム全体を代表して)
0382デフォルトの名無しさんNGNG
>>381
翻訳ありがと。チェック早いね。

> [Python-Dev] RELEASED Python 2.4, alpha 1

むぅ、CJKCodecs は最新じゃないのか……。
cjkpython.i18n.org の方の CVS じゃ、JIS X 0213:2004 対応のコードが
一昨日辺りに入ったんだが、さすがに α1 には間に合わなかったようで。

でもそれ以外の日本語コーデック達は入ってるからいいけど。
0383デフォルトの名無しさんNGNG
とりあえず generator expression が良いな。
0384デフォルトの名無しさんNGNG
組み込み集合型: 2.3 での set 型を C で実装.組み込み型 set/frozenset の提供 (PEP218)
整数型と長整数型の統合: 整数型演算は結果に応じて長整数型を返す (PEP237)
ジェネレータ式: 内包表記 x(i) for i in S がジェネレータを返す.[x(i) for ...] の内包表記は撤廃へ.(PEP289)
reversed(): 配列の末尾から順に要素を返す組み込み関数 reversed() の提供. (PEP322)
decimal モジュール: 浮動小数点数の 10 進表現 (0.1 が 2 進表現によって 0.10000000000000001 にならないような数値表現). (PEP327)
0385デフォルトの名無しさんNGNG
dict.update(): dict() と同じ引数,map, イテレータ,(key,value) リストをサポート.
string: ljust/rjust/center のマージン文字サポート,末尾から split する rsplit() の追加.
sort() のキーワード引数: sort() 時に cmp (比較関数の設定), key (比較する前に要素をフィルタ), reverse (逆順).
sorted(): sorted(x) が x のソート済みコピーを返す(sort() は in-place で,値を返さない).
cjkcodecs: cp932, shift-jis(-jisx0213), euc-jp(-jisx0213), iso-2022-jp-(1,2,3,ext) 他中韓国語 codecs の提供.
collections.deque: 汎用コレクション型,特に双端キュー(deque).
モジュールの C 実装: heapq, bisect.
imaplib: THREAD 命令の実装.
itertools.groupby(iter, func): iter の要素から,同じ値を持つ隣接する要素同士をリストにして返すイテレータ.
itertools.tee(iter, N): iter からイテレータを二つ生成して返す.
logging.basicConfig: 基本的な機能を備えた logger.
operator.attrgetter(a)/itemgetter(N): インスタンスの属性 a や N 番目の要素を返すオペレータ.
posix.os.getsid(): プロセスのセッション ID を返す.
poplib: POP over SSL のサポート.
profile: C extenstion 中の関数をプロファイルできるようになった.
random.getrandbits(N): randrange() よりも効率的に N ビットの長整数乱数を返す.
re: (?(grp)A|B) grp の後ろに正規表現 A または B が来ればマッチ.
weakref: 関数,インスタンス,set, frozenset, deque, array, file, socket, 正規表現パターンをサポート.
xmkrpclib: 複数の XML-RPC 呼び出しを一つの HTTP 操作で行えるようになった.
cookielib: HTTP cookie 処理のサポート.
C/API: Py_RETURN_TRUE/FALSE/NONE の追加,PyTuple_Pack(o1,o2,...) のサポート
インタプリタのプロファイル: --enable-profiling ビルドで gprof プロファイリングをサポート
Win32 コンパイラサポートの追加: MSVC++7.1 ビルドの提供
timeit: タイミングループ中にガベージコレクションを抑制
base64: RFC 3548 準拠の Base64/32/16 符号化をサポート
0386デフォルトの名無しさんNGNG
いつからライブラリリファレンスにサンプルコードがあんなについてきたんだろ?
とても嬉しいからいいけど
0387デフォルトの名無しさんNGNG
> [x(i) for ...] の内包表記は撤廃へ.
これはいくらなんでも嘘だろ。
ざっと見どこにもそんなこと書いてないし。
0388デフォルトの名無しさんNGNG
[x(i) for x in a, b, c] 形式の内包表記を撤廃 だった.すまん.

ttp://www.python.org/peps/pep-0289.html,Details.4
0389デフォルトの名無しさんNGNG
>>384-385
乙です。折れもハイライト訳そうかと思ったけど分量にメゲた。
0390デフォルトの名無しさんNGNG
列データ型linesをループにかけるとき
for x in lines:
としてxとかlines.count[x]を使うのと
for x in range(len(lines)):
としてlines[x]とかxとか使うのとでは
善し悪しとかあるんでしょうか?
0391デフォルトの名無しさんNGNG
for index, line in enumerate(lines):
がモアベター。ただし2.3以降限定。それ以前なら、
for index, line in zip(range(len(lines)), lines):
で代替できる。ループ内でどちらかを自前で計算するより、
このイディオムを使う方が見やすいしバグも入りづらいと思われ。
0392デフォルトの名無しさんNGNG
さくらインターネットのレンタルサーバがデフォルトでPythonサポート
するようになったらしい.
ttp://www.sakura.ad.jp/news/20040706-001.news
0393デフォルトの名無しさんNGNG
それって月額500円のプランからだよ
125円のは無理
0394デフォルトの名無しさんNGNG
なぜFedoraをサーバーに使うのか、使えるのかが不思議 > さくら
0395デフォルトの名無しさんNGNG
今日はさくらたんの日ですよ
0396デフォルトの名無しさんNGNG
> Ruby、Python、PHP(※2)、MySQL(※2)の利用が可能。
> ※2 スタンダードプラン、プレミアムプランでのみ対応。
> プラン名 ライト スタンダード プレミアム
> 月額料金 125円(※1) 500円 1,500円
だから 125 円でいいんじゃないの?
0397デフォルトの名無しさんNGNG
ライトの場合は sqlite 使えばいいか。
0398デフォルトの名無しさんNGNG
Python がある事より Perl が無い事が驚きだな。
0399デフォルトの名無しさんNGNG
>・CGI、SSIはもちろん、Ruby、Python、PHP(※2)、MySQL(※2)の利用が可能。
> プログラム作成も思いのまま。
ここでCGI==Perl説を推してみる。
0400デフォルトの名無しさんNGNG
perl は PHP に吸収されました
Java は Python に吸収されました
0401デフォルトの名無しさんNGNG
2.4a1は予定通りOld Macのコードがごっそり消えてる……。
0402名無しさん@そうだ選挙に行こうNGNG
ファイル名を変更したいときはどのメソッドを呼べばいいんですか?
0403名無しさん@そうだ選挙に行こうNGNG
ttp://www.python.jp/pub/doc_jp/lib_2.3/os-file-dir.html
os.rename(src, dst)
0404名無しさん@そうだ選挙に行こうNGNG
結局decorator syntaxってどうなるの?
まだ仕様でもめているのかな。
0405名無しさん@そうだ選挙に行こうNGNG
Perlが書けない
こんなサーバじゃ
0406名無しさん@そうだ選挙に行こうNGNG
アプリ開発の場合CPANあってのPerlだから、レンタルだと辛いね。
0407名無しさん@そうだ選挙に行こうNGNG
Python は CPAN 資源まで利用可能です
さよなら Perl・・・
0408デフォルトの名無しさんNGNG
ポイズン
0409デフォルトの名無しさんNGNG
>>405
パイソン
0410デフォルトの名無しさんNGNG
そっちか
0411デフォルトの名無しさんNGNG
入出力時の方法として f.readline() と f.readlines()の様に
一行毎の取り込みと一括取り込みの2パターン用意されていることが
多い様ですが、これらの使い分けはどの様になっているのでしょうか?

イマイチ2パターンあることの必然性が理解できないと言うか...
0412デフォルトの名無しさんNGNG
1行10bytesのデータを10万行処理したければreadlines
1行100Kbytesのデータを10万行処理しようと思ったらreadline
0413デフォルトの名無しさんNGNG
Python で業務してるところってないね・・・
たいていは C/C++ とか Java とか PHP だね・・・
Python だったらそれらのどれにもラップできるのにね・・・
0414デフォルトの名無しさんNGNG
  ∧ ∧     ┌─────────
  ( ´ー`)   < わざわざラップしなくてもいいんじゃネーノ?
   \ <     └───/|────
    \.\______//
      \       /
       ∪∪ ̄∪∪
0415デフォルトの名無しさんNGNG
Python のほうがコード読むの楽だし・・・
0416デフォルトの名無しさんNGNG
>>413 Google
0417デフォルトの名無しさんNGNG
googleのスタッフ募集条件ってかなり厳しいものじゃなかった?
0418デフォルトの名無しさんNGNG
>>417
東京都中野区にお住まいの若林純子さんの履歴書
http://www.google.co.jp/jobs/sample_resume.html
0419デフォルトの名無しさんNGNG
pythonでホームページ中のFORMを自動入力してsubmitする様なスクリプトを
組めないかと思っているのですが、そういったことはできるのでしょうか?

0420デフォルトの名無しさんNGNG
できると思います。
0421デフォルトの名無しさんNGNG
>420
方法を調べたいのですがそのあたりの情報源などありますか?
0422デフォルトの名無しさんNGNG
はい、ありますね。
0423デフォルトの名無しさんNGNG
419 (11:18) -> 420 (11:22) 応答4分
421 (11:45) -> 422 (12:07) 応答22分

>421で深く突っ込まれた後の>422の心の動きが目に浮かぶようだ
0424デフォルトの名無しさんNGNG
420 (11:22) -> 421 (11:45) 応答23分

この、応答時間も考慮に入れるべきでは?
0425デフォルトの名無しさんNGNG
ちなみに>419の具体的な方法はどういったものですか>知ってる人
0426デフォルトの名無しさんNGNG
そんなこと、どうでもいいじゃないですか。
0427デフォルトの名無しさんNGNG
〜只今考え中〜
0428デフォルトの名無しさんNGNG
暫くお待ち下さいな
0429デフォルトの名無しさんNGNG
>>419
FORMに入力するまでが自動なのか
送信するのも自動なのかハッキリしろ。
仕様が曖昧だハゲ
0430デフォルトの名無しさんNGNG
>〜submitするスクリプトを
なんだから送信するのも自動じゃないの?
0431デフォルトの名無しさんNGNG
ブラウザのアドオンなのか、それ自体Webクライアントなのかも不明
前者ならブラウザ環境も書かなきゃね
0432デフォルトの名無しさんNGNG
要約すると他のスクリプトを引数つけて起動したいということか?
htmlを経由しなくてもいいんじゃねーの?
0433デフォルトの名無しさんNGNG
f = urllib.urlopen("http://www.musi-cal.com/cgi-bin/query")
0434デフォルトの名無しさんNGNG
>>433 は打ち間違いです。失礼しました。

とりあえず419のスクリプトですがブラウザのアドオンではありません
というかそんなことができるなんて今はじめて知りました (^ ^;
普通にurllibで巡回ソフトを作っているうちにURLを直接指定できない所
(上記のようにフォームを入力してsubmitのボタンを押すことで開くページ)
があったので質問しました。正直方法があるならこだわりません。
でもせっかくpythonの勉強してるしpythonから離れたくないなー
0435デフォルトの名無しさんNGNG
>>434
他でもない urllib で出来るわけだが。

URL にパラメタを ? と & で列挙すれば HTTP の GET メソッドで、
urllib.urlopen() の第2引数に & でつないだパラメタ文字列を渡せば PUT メソッドで
それぞれ CGI を呼び出せる。

import urllib, sys

ACTION = "http://www.google.co.jp/search"
DATA = "q=%(q)s&hl=%(hl)s&lr="
q = "Python"
hl = "ja"
urlopener = urllib.FancyURLopener()
urlopener.addheaders = [('User-agent', "Mozilla/3.0")]
print urlopener.open(ACTION + "?" + DATA % locals()).read()

Google は User-agent を見てるみたいなので小細工をしている。
User-agent を見ない CGI なら

print urllib.urlopen(ACTION + "?" + DATA % locals()).read()

で OK。PUTメソッドを使うCGIの場合は以下の通り。

print urlopener.open(ACTION, DATA % locals()).read()
0436435NGNG
詳しいことは urllib のマニュアルとソースを見てちょ。
FancyURLopener クラスを継承すると HTTP レスポンスの挙動を変えたり
クッキーを処理したりといった芸当もできる。
0437デフォルトの名無しさんNGNG
>>435
ありがとうございます。上のサンプルいじくりながら
使い方を調べてみます
0438デフォルトの名無しさんNGNG
guido: Yeah, I've already told Anthony that I'm out of time to look at recent
discussion & proposals, so let's try again for 2.4a2.

結局decoratorは2.4a2以降に持ち越し。
0439デフォルトの名無しさんNGNG
>>438
ありがとうございました、ずっと気になっていたんです。
2.4に盛り込まれないってことじゃないようなので、ひとまず安心しました。
0440デフォルトの名無しさんNGNG
関数 FncA, FncB, FncC ・・・があるとします。

文字「A」が入力されたら FncA を返し、文字「B」が入力されたら FncB を返し・・・
という関数を(場合分けじゃなく)エレガントに作るにはどうしたらよいのでしょうか?

Perl だと &Fnc{$X} みたいに簡単にできるんですけど。
0441デフォルトの名無しさんNGNG
lambda c: {'A': FncA, 'B': FncB, 'C', FncC ・・・}[c]
0442デフォルトの名無しさんNGNG
あ、ちょいtypoった。まぁ適宜読み替えてくれ。
0443デフォルトの名無しさんNGNG
>>440
そういうトリッキーなことをしたがる頭を切り替えた方がよいと思われる。
0444440NGNG
441-442さんありがとうございます。
eval を使ったら出来ました

def FncA():
 return 'AAA'

def FncX(X):
 return eval('Fnc' + X)

print FncX('A')()

トリッキーなことをしたいわけじゃなくて、思った通りのプログラミングをしたいんですよ
0445デフォルトの名無しさんNGNG
eval は不正な入力のチェックが面倒じゃないかな。
折れだったら辞書にするか、あるいはクラスにして getattr() する。

class InputHandler:
    def invoke(self, key):
        try:
            method = getattr(self, "handle_" + key)
        except AttributeError:
            method = self.handle_unknown
        method()
    def handle_unknown(self):
        print "unknown"
    def handle_A(self):
        print "A"
    def handle_B(self):
        print "B"

if __name__ == "__main__":
    handler = InputHandler()
    handler.invoke("A")
    handler.invoke("B")
    handler.invoke("C")
0446デフォルトの名無しさんNGNG
>>444の場合において、FncX()の引数が文字列である事が保証されてるとしてだけど、
どういう事チェックする必要あったりしますか?
元質問者じゃないけどちょっと興味あり。
0447デフォルトの名無しさんNGNG
>>> def FncX(X):
... return eval('Fnc'+X)
...
>>> FncX('X')
<function FncX at 0x0093DDF0>
>>> FncX('X')()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: FncX() takes exactly 1 argument (0 given)
>>>

エレガントすぎて涙が出ますね
0448デフォルトの名無しさんNGNG
FuncX('X(); some_evil_method();')

とかできないのかなぁ。
0449デフォルトの名無しさんNGNG
>>447
取り敢えず涙を拭け
0450デフォルトの名無しさんNGNG
涙を拭いてこうしてみたよ。
>>> def FuncX(s):
... return globals()['Func'+s]
...
>>> FuncX('X')
<function FuncX at 0x0093DCB0>
>>>
0451デフォルトの名無しさんNGNG
>>446
想定してしないコードの含まれた文字列が渡される可能性があると思われ。

def hack():
    print 'BBB'

print FncX('A, hack()')()

もし eval のスコープ内に os モジュールがあることを攻撃者が知っていたら
os.system("rm -rf /") などの邪悪なコードが含まれた文字列を渡されるかも。
0452デフォルトの名無しさんNGNG
 return eval('Fnc' + X)
でなく
 return eval('Fnc%s' % X)
ならでーじょーぶなのではないかな?
0453デフォルトの名無しさんNGNG
いまだにlambdaの使い方がわからないのですが,
わかりやすく説明してください
お願いします。
0454デフォルトの名無しさんNGNG
答えになってないけど、
Pythonのlambdaは存在自体の受けはいいけど機能が中途半端だから、
直前にローカル関数定義したほうがPythonぽくていいと思う。
0455デフォルトの名無しさんNGNG
文字列 ls=['spam', 'egg', 'bacon'] を長さで並べ替えたいとします.
ls.sort(func) として,func に文字列の長さで比較を行う関数を
指定すれば実現できます.def を使うなら::
def lengthcomp(a, b):
  return len(a)-len(b)
としておいて,ls.sort(lengthcomp) としなければなりません.
lambda を使うと, ls.sort(lambda a, b: len(a)-len(b)) で
実現できます.その場で作成されてすぐ使える関数のようなものだと
考えてください.lambda とコロンの間には好きなだけ引数を
入れられます.コロンの後ろには,式しかかけません.戻り値は
式を評価した結果です.map, reduce といった関数を引数にとる関数の他,
list comprehension や generator expression でも,lambda が
便利なことがあります.
def func(x):
  return x**2
a = [func(x) for x in range(10)]
のように,func をあらかじめ def で定義しなくても,
a = [lambda x: x**2 for x in range(10)] とかけるからです.
0456デフォルトの名無しさんNGNG
>>452
だめぽ。eval は文字列の内容を評価するから
式として成り立つ文字列は何でも実行されてしまう。
0457デフォルトの名無しさんNGNG
(´-`).。oO(ほんとに危険か試してみてるんだろか?)
0458デフォルトの名無しさんNGNG
[(1, 1), (2, 1), (3, 1)] というのを
(1,2,3)と(1,1,1)の2つに分解させるうまい方法はありますか?
0459デフォルトの名無しさんNGNG
>>458

>>> a = [(1,1),(2,1),(3,1)]
>>> apply(zip, a)
[(1, 2, 3), (1, 1, 1)]
0460458NGNG
>>459
+1
0461デフォルトの名無しさんNGNG
zip(*a)よりかはapply(zip, a)の方が好み
0462デフォルトの名無しさんNGNG
私は zip(*a) 派なんだけど、私の知ってる限りは apply(zip, a) 派の方が多い。
後者の方が Lisp 的だから? 明示指向だから? それとも昔からあるから?
0463デフォルトの名無しさんNGNG
小学生のころポインタが理解できなくて苦労したからじゃない?
0464デフォルトの名無しさんNGNG
>>462
結構ぜんぶあたってそう。

>>463
つまんね
0465デフォルトの名無しさんNGNG
単にzip(*a)なんて書き方知らないだけ、という人も多いのでは?
0466デフォルトの名無しさんNGNG
小学生までだよね
ポインタが許されるのは
0467デフォルトの名無しさんNGNG
>>466
w
0468デフォルトの名無しさんNGNG
>>466
キャハハハ
キモーイ
0469デフォルトの名無しさんNGNG
Pythonのコード書くのにエディタは何を使ってますか?

私は、Eclipseのpydevとかいうプラグインを試してるんだけど、
import sys とかやると sys が見つからないとか言われちゃう。
もちろん実行は出来るんだけど。
0470デフォルトの名無しさんNGNG
emacs
気分次第でvim
0471デフォルトの名無しさんNGNG
Pythonのグイド・ヴァンロッサム氏へのインタビュー
http://slashdot.jp/interview/04/07/24/1020202.shtml?topic=58
0472デフォルトの名無しさんNGNG
>>471
紹介サンクス。エイプリルフールのParrot事件懐かしいっす。
0473デフォルトの名無しさんNGNG
日本語的には「グイド」でいいの?
0474デフォルトの名無しさんNGNG
「ジム・ピーターズ」にショボーン
0475デフォルトの名無しさんNGNG
>>471 の骨子

1 Ruby に一言: カスだね.眼中にない
2 データ構造ライブラリがないよ: ディクショナリとリストで我慢しれ
3 Jython どうよ?: CPython のプロトタイプ.汚れ役をやらすのだわよ
4 CPAN みたいなのないやん: カタログ作るのマンドクセ
5 パイソンのスケッチネタですよ…: スレ違い
6 ライセンスどないなっとんのや?: 承諾の儀式なんか要らんやろ >CNRIの弁護士
7 インデントを文法に組み込んだ理由教えれ(可読性以外で): コーディングスタイル論争は不毛だろ?!
8 ジムの禅と PEP のこれから: 中庸で
9 最萌 Python コードは?
>>> http://www.linuxwiki.dk/Python_2fObfuscatedPython
>>> Digital Creations(Zope)
>>> でも教育上でプログラミング原理を学ぶのに使われるのが本望だ
0476デフォルトの名無しさんNGNG
>>475
ひどい要約だな。インタビュー記事を勝手にいじるな。
0477デフォルトの名無しさんNGNG
>>476
じゃあ試しにおまいがまとめてみれ
0478デフォルトの名無しさんNGNG
そんなことせずに本文読めばいいのに。
0479デフォルトの名無しさんNGNG
もしかして>>475は要約orまとめのつもりなのかw
0480デフォルトの名無しさんNGNG
>>479
>>475の全うなabstract or summaryを自分で
さらっと作ってみて晒してみてよ。1レス分量でね。
0481デフォルトの名無しさんNGNG
1 蓼食う虫も好き好き。お互いに。
2 木が必要になるころには自作できるでしょ。
3 興味深いプロジェクトだしいい関係じゃないかな。
4 PyPI作ってるところだからもうちょっと待って。
5 その手のくだらない質問はもう答える気がしない。
6 CNRIの解釈は善意があって妥当だね。FSFの態度にはちょっと不満だ。
7 構文解析器でもないのに波括弧ブロックの方が読みやすいのがFAなんて思えないね。
8 変更はゆっくりやるつもりだから心配しないでね。
9 すごい実装はある。でも大事なのはもっと基本的なことなんだ。
0482デフォルトの名無しさんNGNG
475は無駄に敵をつくるタイプ。
0483デフォルトの名無しさんNGNG
>>475は、もしもグイドたんが2ちゃんねらだったら・・・ っていうネタでしょ。
ワロタよ
0484デフォルトの名無しさんNGNG
さっきまで Larry Wall の電波インタビュー読んでた(鬱)
時間の無駄だたーよ。肥大化言語の末路を垣間見た気がする。
やはりバーゲンセールよりもエレガントに生きたい。グイドタソ萌え。

――Python だけで全言語の代替が実現可能だと信じて疑わない者より
0485デフォルトの名無しさんNGNG
>>484
>全言語の代替が実現可能だと信じて疑わない

Python 自信は何で書くの?
0486デフォルトの名無しさんNGNG
>>>484
それのPythonをRubyで置き換えた文章見たことあるよ。ダサー
0487デフォルトの名無しさんNGNG
なんだか484は475と同じ臭いがするな。
0488デフォルトの名無しさんNGNG
>>487
当たり

>>481が下らなすぎるので流れを変えようかなと思ったが
もうどーでもええわw
0489デフォルトの名無しさんNGNG
>>482
きっと現実でも(ry
0490デフォルトの名無しさんNGNG
このスレって流れてたのか!
0491デフォルトの名無しさんNGNG
(゚∀゚)タプル!!
0492デフォルトの名無しさんNGNG
今日、大学でPythonの試験があったよ。
0493デフォルトの名無しさんNGNG
>>492
どんな問題?
0494デフォルトの名無しさんNGNG
>>493
・テキストファイルを読み込んで、特定の文字列を置換した上で表示しろ
・テキストファイルを読み込んで、m行目からn行目までを表示しろ
・九九の表をHTMLファイルに書き出せ
・テキストファイルを読み込んで、1行づつ文字列を反転させて表示しろ

ちなみに、プログラミング初心者向けの授業です。
0495デフォルトの名無しさんNGNG
>>494
高知大学?
0496デフォルトの名無しさんNGNG
>>494
何分で?
0497デフォルトの名無しさんNGNG
>>495
大学名に関してはノーコメントで。
>>494
一応60分。
0498デフォルトの名無しさんNGNG
ふうん
0499デフォルトの名無しさんNGNG
「づつ」ってゆーなー
0500デフォルトの名無しさんNGNG
grep, head, tailの実装とループの練習とリストの練習かな
あんまり興味なし
0501デフォルトの名無しさんNGNG
小学生向きの問題だな……
0502デフォルトの名無しさんNGNG
>>501
高知大学ならそんなもんだろ。
0503デフォルトの名無しさんNGNG
なるほど
0504デフォルトの名無しさんNGNG
492が494の答え合わせをしたいそうだ。
0505デフォルトの名無しさんNGNG
ご冗談を。
0506デフォルトの名無しさんNGNG
といいつつも必死に494を解き始める505

漏れは余裕で静観(´ー`)
0507デフォルトの名無しさんNGNG
お前って…
0508デフォルトの名無しさんNGNG
494は出題者本人だろ。学生があれほど詳細に問題文覚えているわけないし。
0509デフォルトの名無しさんNGNG
>>508
(#゚Д゚)ハァ?バカデスカアナタハ?
0510デフォルトの名無しさんNGNG
ワラタ
0511デフォルトの名無しさんNGNG
>>508
そんなこといってると院試で落ちるぞ
0512デフォルトの名無しさんNGNG
いつの間にか高知大学スレッドに!
0513デフォルトの名無しさんNGNG
高知大学に通報しますた。
0514デフォルトの名無しさんNGNG
>>494
何が悪いってコードを書きたいと言うモチベーションが湧かない。
いくら小学生レベルとはいえこれではな。授業も相当つまらないと思われる。
0515デフォルトの名無しさんNGNG
そんな喪前のために書いといた。
python -c 'print file("input.txt").read().replace("foo", "bar")'
python -c 'print "".join(list(file("input.txt"))[m-1:n])'
python -c print "<html><body><pre>\n"+"\n".join([" ".join(["%2d" %((x+1)*(y+1)) for x in range(9)]) for y in range(9)])+"\n</pre></body></html>"'
python -c 'print "\n".join(["".join([s[0-i] for i in range(1, len(s)+1)]) for s in file("input.txt").read().strip().split("\n")])'
0516デフォルトの名無しさんNGNG
ttp://www.f7.ems.okayama-u.ac.jp/~yan/python/
この人岡山大らしいけどPython教えてるの?
つぅか国内の大学でどういうところがPython教えてるの?(教えられる人いるの?)
あとGoogleや楽天以外でPython使ってること教えれよおまいら
0517デフォルトの名無しさんNGNG
>>515
ひどいコードだね…
0518デフォルトの名無しさんNGNG
ずいぶんと古いネタだなあ。
SoldamのショッピングサイトはPythonだったり
NSI JapanはZopeだったり。
0519デフォルトの名無しさんNGNG
517の書くコードはもっと酷いからね…
0520デフォルトの名無しさんNGNG
>>518
Zopeと一緒にするなよ。
Zopeと一緒にするなよ。
Zopeと一緒にするなよ。



な。頼むよ。
0521デフォルトの名無しさんNGNG
Zopeを要求しないPythonで書かれたblogが欲しい
0522デフォルトの名無しさんNGNG
>>521
ttp://www.python.org/~jeremy/weblog/031104d.html

Zopeは悪くないと思うけど、日本のユーザ会が……。
0523デフォルトの名無しさんNGNG
>>521
Python Desktop Server by George Bauer
http://pyds.muensterland.org/

これも悪くないと思うけど、インストールが結構めんどいかも。
0524デフォルトの名無しさんNGNG
自分で調べられない521はJUGEMで十分。
0525デフォルトの名無しさんNGNG
>>522 駄目だね
>>523 論外だね
>>524 意味不明

やっぱり自作かねぇ〜
0526デフォルトの名無しさんNGNG
おまい岡山大学の学生だろ。
煽り方が小学生レベルだ(プ。
0527デフォルトの名無しさんNGNG
漏れは飯台
でも小学生レベルのレスを敢えてする
こんなところでマヂになってどうするんだ
懐の浅い人間にはなりたくないものだな
0528デフォルトの名無しさんNGNG
底 = 深い/浅い
懐 = 広い/狭い
0529デフォルトの名無しさんNGNG
>>527
レスってなんですか。
0530デフォルトの名無しさんNGNG
(゚∀゚)タプル!!
0531デフォルトの名無しさんNGNG
>>527
レズって何ですか?
0532440NGNG
>529, >531
reモジュール内のメソッド達のこと
0533デフォルトの名無しさんNGNG
さんてん。
いまどきようちえんじでもわらわない。
0534デフォルトの名無しさんNGNG
別にTabじゃなくてもスペースでもいいんだ・・・
0535デフォルトの名無しさんNGNG
どちらかというとスペース推奨
Python的にはタブ=スペース8つだからね
0536デフォルトの名無しさんNGNG
>>535
エディタの方で4に設定してますが?
0537デフォルトの名無しさんNGNG
見た目の問題ではない
0538デフォルトの名無しさんNGNG
タブを使う奴は厨。
PEP 8を嫁。

ttp://www.oldriver.org/python/pep-0008j.html
0539デフォルトの名無しさんNGNG
>>521
空きなの使えば
ttp://lowlife.jp/cgi-bin/moin.cgi/PythonBasedBlogSoftware
0540デフォルトの名無しさんNGNG
2ちゃんねるでは pep のことを「別府」と呼ぶよう提案したいのだがどうか。
0541デフォルトの名無しさんNGNG
PEP勇午?
0542デフォルトの名無しさんNGNG
(PεP)<エェーッ >>540
0543デフォルトの名無しさんNGNG
警部と呼びたいが。
0544デフォルトの名無しさんNGNG
加齢臭が。
0545デフォルトの名無しさんNGNG
>>> a = "xyz"
>>> b = "xyz"
>>> a is b
True
ちょっと意外.当然,
>>> a = "xyz"
>>> b = "xy" + "z"
>>> a is b
False
0546デフォルトの名無しさんNGNG
へーそういう最適化はされてるんですね。
0547デフォルトの名無しさんNGNG
a というモジュールがあって A というクラスが定義されている。B というクラスが定義された b というモジュールを a 内にインポートした時、A に B を継承させたい。この時新しいクラス C は作らない。

ということはできますか?
0548デフォルトの名無しさんNGNG
鉄πどうよ?
http://www.ironpython.com/
0549デフォルトの名無しさんNGNG
>>545
英数字とアンダースコアのみからなる文字列は
辞書検索の効率をあげるために intern されるのだそうな。
だから空白を含むと intern されない:

>>> a = "x z"
>>> b = "x z"
>>> a is b
False
0550549NGNG
しつれい。
×文字列 → ○文字列定数
0551デフォルトの名無しさんNGNG
>>547
素直にこうじゃないの

// in a.py
import b
class A(b.B):
    後略
0552デフォルトの名無しさんNGNG
>>548
0.6ってやっぱり60%くらいのできなの?
それとも0.4は飾りの足ですか?
0553デフォルトの名無しさんNGNG
>>551
最初から継承されているとまずいのです。
なんとかならんでしょうか。
0554デフォルトの名無しさんNGNG
>>553
A が old style class なら、
A.__bases__ = (b.B,)
でなんとかならん? new style class だとダメだった(in Python 2.3.4)。

ちなみに、基底クラスを入れ替えるより前に作成した A のインスタンスも
b.B のメソッドを lookup するようになるんで、そこんとこ注意。
それが嫌なら class C(A, b.B): とするしかない。

# てか、絶対クラス設計からして間違ってるよなぁ……
0555デフォルトの名無しさんNGNG
>>554
最後の一行に禿同。
0556デフォルトの名無しさんNGNG
>>538
emacsとか使ってるのがアホ
メモ帳使え
0557デフォルトの名無しさんNGNG
なんでemacsを使うとアホなの?
0558デフォルトの名無しさんNGNG
>>557
陳腐なエサに釣られんなよ。
0559名無しさん@Vim%ChaliceNGNG
cygwinでpythonを使ってます。

んで、gvimをつかってると、バックアップファイルとして、
'...txt~'てなのが作られるんです。
こいつを正規表現で引っかけようと、

re.compile( r'~$' )
とか
re.compile( r'\~$' )

とやるんですが、引っかかってくれません。
代わりに、

re.compile( r'.*~$' )

とやるとうまく行きますが、ちとスマートでないし・・・。
これについて、原因をご存じの方がいらっしゃいましたら、
ご教示頂けませんか。
0560デフォルトの名無しさんNGNG
>>559
match じゃなくて search だと引っかかるよ
0561名無しさん@Vim%ChaliceNGNG
をを、ありがとうございます。
それにしても、matchともsearchとも書いてないのに・・・。(赤面
0562デフォルトの名無しさんNGNG
>>561
あ〜、この罠、正規表現を最初に使ったころにはまった。
0563デフォルトの名無しさんNGNG
まぁ、通過儀礼のようなもんだと思うしw
0564デフォルトの名無しさんNGNG
一皮ムケたわけだな(藁
0565デフォルトの名無しさんNGNG
>>559
そういう用途なら、正規表現よりもむしろ s.endswith("~") で判定する。
0566545NGNG
>>549
( ・∀・)つ〃∩ ヘェーヘェーヘェー
0567名無しさん@Vim%ChaliceNGNG
>>565
あいや、コンパイル済みのマッチ・オブジェクトを
リストに格納してループで回す、ということをやりたかったんで。
0568デフォルトの名無しさんNGNG
またdecorator syntaxでモメてるなぁ。
0569デフォルトの名無しさんNGNG
>>568
何をどうモメてるのか解説キボン。
0570デフォルトの名無しさんNGNG
LLW行く日といる?
0571デフォルトの名無しさんNGNG
>>570
ノシ
0572デフォルトの名無しさんNGNG
げっ 2.4a2 出てる。予定より2日早い。
0573デフォルトの名無しさんNGNG
2.4a2 の Misc/NEWS.txt で、

- Patch #941229: The source code encoding in interactive mode

now refers sys.stdin.encoding not just ISO-8859-1 anymore.
This
allows for non-latin-1 users to write unicode strings directly.


というのが、やや気になるのですが、何をいっているのかよくわからないので
誰か解説してください。
0574デフォルトの名無しさんNGNG
>>573
コメントに2byte文字使ってもいいよ、だって
0575デフォルトの名無しさんNGNG
えっ、そういう事なのですか?
0576デフォルトの名無しさんNGNG
さあ、適当に>>573だけ読んで独断で意訳しただけ
0577デフォルトの名無しさんNGNG
ソースファイルなら先頭に
-*- coding: euc-jp -*-
と書いてエンコードの指定ができるから困らないけど、
インタラクティブモードの場合は困るので、
unicode strings(utf-8なのか?)が通るようにしたんだって。
0578デフォルトの名無しさんNGNG
ん、対話モードのときのコードは全て unicode で統一か?
0579デフォルトの名無しさんNGNG
PEP-0318 がついに入ったんね。

俺としてはこの構文で満足。
[ ] とか使うのはなんか好かない感じだったから。

他の人はどう?
0580デフォルトの名無しさんNGNG
>>579
ソース貼れよ
('A`)ワケワカンネ
0581デフォルトの名無しさんNGNG
@を使った書き方自体よりも,コードブロック
に対する宣言なのにインデントしないところが気持ち悪いなぁ.
0582デフォルトの名無しさんNGNG
>>580
Python-DEVでごちゃごちゃ揉めてたんでまとめづらくて。
めんどいから自分で追っかけてる人にしか分からなくていいやと思った。
すまん。でもちょいとまとめてみた。

関数につける修飾子の構文どうしよう? ってのがPEP-318
ttp://python.org/peps/pep-0318.html

で、むちゃくちゃ揉めてるんだけど、
現在の候補とメリット・デメリットは↓がよくまとまってると思う。
ttp://www.python.org/moin/PythonDecorators

α2では↓のような構文が採用された。
  @classmethod
  def foo(arg1, arg2):
      pass

……そしてリリース後もまだ揉めてる……
どんな風に揉めてるかはPython-DEVを直接見てくれ。
ttp://mail.python.org/pipermail/python-dev/
0583デフォルトの名無しさんNGNG
Pythonにいいエディタなにー
0584デフォルトの名無しさんNGNG
割り込むなボケ
0585デフォルトの名無しさんNGNG
>>583
オレは emacs + python-mode。慣れればそこそこ。

>>584
仕切るなボケ
0586デフォルトの名無しさんNGNG
vim以外考えられん
0587デフォルトの名無しさんNGNG
お前はそこで思考停止してろ
0588デフォルトの名無しさんNGNG
(゚∀゚)tuple!
0589デフォルトの名無しさんNGNG
http://mail.python.org/pipermail/python-dev/2004-August/046610.html より:

pje: なんだ? @表記が勝ったのか?
barry: πに似てるからだよ。ともかく動くようになったのはうれしいね。
anthony: おい、俺は Guido の決定に従ったまでだ。殿のお考えによると
  とりあえず 2.4a2 に入れてみて、どうにも嫌われたら a3 では引っこめる。
pje: []表記なら python のみで実装できて古いインタプリタと互換性が保たれる。@じゃ無理。
martin: もう議論する時間は終わったんだよ。
guido: ほんと? すごいハックだね。インタプリタのデフォルトのふるまいをどうやって防ぐ?
pje: (コード提示)
skip: これを guido が「すごいハック」と呼ぶかどうかは疑問だな(w
guido: うげ、そりゃだめだ。し、[classmethod] そのものを書けない。
exarkun: (decorate() 文を提案)、でもこれはmethodにしか使えないという欠点がある。
fperez528: >>exarkun +1だ。よりpythonicだし、やっぱりぼくは ipython を変えたくない。
marktrussel: >>exarkun いままで見た中で一番いいね。
jhylton: 実装の大変さが問題なわけではないんだ、どれが好まれるのかという問題だ。
pje: >>exarkun その欠点は致命的。互換性だけが問題なら他にもやりかたはある。
guido: >>pje それなら旧式の foo=classmethod(foo) でいいじゃん、なぜだめ?
barry: >>guido +1
0590デフォルトの名無しさんNGNG
(>>589 のつづき)

jim: そこだよ。なぜ @ が必要なの? 覚えることが増えるのに。この機能は強力すぎる。
guido: その議論はいままでずっとやってたでしょ。
jhylton: PEPはいまの議論を追うように更新されてる? 重複した議論を避けるのもPEPの目的。
dave: guido の考えを変えるつもりないが、言語の核をいじらない実装のほうが最初は安全だ。
guido: そういう実装はあったよ、でもそれは後置記法だった。前置記法がほしかった。
pje: >>guido なぜ新しい文法か、可読性を上げるため、でしょ。それでも互換性にはこだわる。
guido: そんなに後方互換性を考えるのは制約がきつすぎるからいや。
guido: >>exarkun それじゃ曖昧だからという理由で却下された [classmethod] と同じだ。
  decorate() がなにか遠くで関数を操作してるように見える。いまさらそれをなぜ提案?
pje: [foo] は現行の python でなんの副作用もないが [foo()] は副作用があるから。
guido: 微妙すぎな理由。それに sys.settrace は実装の機能であって言語の機能ではない。
nidoizo: Python3 で as が使われるようになったら、@ とは機能的に重複するの?
guido: as が使われるとしても decorator としてではない予定。たぶん型指定かrename。
exarkun: >>guido decorator() は言語じゃなくライブラリに置けるからいいと思った。
  しかしそもそもこの機能はなぜ今すぐ必要なのか?
0591デフォルトの名無しさんNGNG
(>>590 のつづき)

guido: @deco や [deco] の利点のひとつとしてコンパイル時に決定できるというのがある。
  あらかたのアイデアは出つくした。どれも一長一短だ。今後待ってもどうせ解決しない。
exarkun: だからそもそも本当に必要なのかという話。もうこれは出つくしたけど。
tjreedy: @ はたしかに複雑だが、初心者は無視できるのがいい。[] じゃ混同する。
nas: 本当に必要なのか疑問。目立つ人がそう主張しているだけに見える。
barry: decorator が可読性を上げるのはたしか。でもほとんどのコードは変わらない。
guido: そのとおり。標準ライブラリでも staticmethod なんかを使っているのは少数。
jim: >>tjreedy 初心者は無視できないだろう。人はコードを理解したがるものだ。
andrew: 高度な機能はほかにもある。metaclassとか。でも、ほとんど見ないから問題ない。
jim: classmethod なんかは metaclass よりははるかに使われるよ。

...もう疲れたのでここまで。おやすみ。
0592デフォルトの名無しさんNGNG
いつもながら良い仕事
0593デフォルトの名無しさんNGNG
>>589-591 はたぶん新山氏
0594デフォルトの名無しさんNGNG
ごめん、あげてしまった…
ばかばか。
0595デフォルトの名無しさんNGNG
">>hoge +1"って/.からの借用かい?
どうでもいいけど@ってPerlにあるよね?
0596デフォルトの名無しさんNGNG
>>595
ttp://www.python.org/peps/pep-0010.html
0597デフォルトの名無しさんNGNG
すごくくだらない質問かもしれませんけど、Winでpython2.3と2.4は同居させることができます?
0598デフォルトの名無しさんNGNG
(´・ω・`)
0599デフォルトの名無しさんNGNG
>>597
2.4は試したことがないけどたぶん可能。
同じバージョンでも同居可能だから。
0600デフォルトの名無しさんNGNG
>>599
> 同じバージョンでも同居可能だから。
これはだうと気味。
Windowsだとシステムディレクトリにpython2x.dll(インタプリタ本体+一部の
拡張モジュール)が入るんだけど、2.3シリーズはみんなpython23.dllって名前
だから、上書きされる。2.4シリーズはpython24.dllって名前なんで同居可能。
pythin2x.dll以外(*.pyなモジュールとか)はそれぞれ別なところに入るんで、
そこは上書きインストールしない限り衝突しないんだけど。
ま、2.3.3と2.3.4を同居させたい、とかなんてまずやらないと思うけど。

# LLWに行けなかった _no...
0601デフォルトの名無しさんNGNG
LLWのPythonの発表はどうだった?
行った人の感想きぼん!
0602番長NGNG
どうでもいいからMLでやれ。
0603デフォルトの名無しさんNGNG
os.walk()というのは、「各ディレクトリ(top 自身を含む) から、
タプル (dirpath, dirnames, filenames) を生成」すると、リフ
ァレンスにあります。でも、普通のタプルのように「[]」を使っ
たアクセスができません。os.walk()で生成されるタプルって、
普通のタプルと違うんでしょうか?
>>> t1 = ('Paul','Jim','Tim')
>>> t1[0]
'Paul'
>>> t2 = os.walk('/tmp')
>>> t2[0]
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: unsubscriptable object
0604デフォルトの名無しさんNGNG
タプルじゃなくてタプルのシーケンスを(generatorで)返すので、

for t in os.walk('/etc'):
  print t[0]
0605デフォルトの名無しさんNGNG
たぷるがたっぷりある
0606デフォルトの名無しさんNGNG
>>604
理解できました。ありがとうございました。
0607デフォルトの名無しさんNGNG
http://www.paulgraham.com/pypar.html
The Python Paradox
0608デフォルトの名無しさんNGNG
>>607 って
Python 覚えても仕事の役にたたないよ、って言ってる?
0609デフォルトの名無しさんNGNG
>>608
議論の前提として、java に比べると pythonなどの job が
少ないといっているのでしょう。
0610デフォルトの名無しさんNGNG
>>609
jython で java の job が取れるのだけれど…
0611デフォルトの名無しさんNGNG
たぷるがたっぷる
0612自信ないからツッコミあったらヨロシクNGNG
この前のエッセイで,わたしは人を怒らせるようなことを書いた.
つまり,Java のプロジェクトで仕事をするよりも,
Python のプロジェクトで仕事をしたほうが
良いプログラマになれると.

わたしは Java プログラマがアホだと言いたかったのではなく,
Python プログラマが優秀だと言いたかった.
新しいプログラミング言語を覚えるのは大変な仕事であり,
誰も仕事を得ようと思って Python を覚えたりなんかしない.
プログラムが純粋に好きで,すでに知っている
プログラミング言語(Javaとか)に満足していない
ような人が Python を覚える.

0613デフォルトの名無しさんNGNG
会社が雇うべきなのは,こういったプログラマだ.
この法則のうまい名前が無いので,Python パラドックスと呼ぶ.
「もし,会社がソフトウェアを書くのにマイナーな言語を選んだとしたら,
より優秀なプログラマを雇うことができる.
なぜなら,マイナーな言語は,そういうマイナーな言語を
覚えるような人だけを惹きつけるからだ.」
プログラマの立場からは,このパラドックスはこうも言える.
「もしよりよい職を得たいなら,習得するべき言語は,
人々が単に職を得るために覚える言語ではない,マイナーな言語だ.」

[Google の事例]

[友人の話だとソースの見た目がどうとか]

[Perl と Python の構文の話]

Perl も Python も moving target だ.
Ruby とか(その他の言語)も,
プログラミングを真剣に考えている人々に
よって作られ,使われている点では同じだ.
そして,そういった人は,仕事をうまくやる人で
あることが多い.
0614デフォルトの名無しさんNGNG
Shiroさんがいつも和訳してるね。「この前のエッセイ」も。
ttp://www.shiro.dreamhost.com/scheme/trans/pypar-j.html
0615デフォルトの名無しさんNGNG
Python も Java も方向性は似ていると思うな。
すなわち、ぶっ飛んだ所が少なくて、誰でも使える、ちょっと便利な言語。

Paul Graham 的には、
Java <-- 流行ってるから叩いておけ
Python <-- Lisp 仲間が流れていってるから、ちょっと叩くのは止すか
てな感じがする。言ってる事はかなり同意なんだけど。
0616デフォルトの名無しさんNGNG
C/C++ も Java も Tk も GTK も Qt もPerl も PHP も
全部 Python 側から扱えるよ.
Shell も WM も Python で記述してあるよ.
0617デフォルトの名無しさんNGNG
>>616
>Python 側から扱えるよ

ここの Dynamic FFI くらいのレベルなら文句無いんだけどね。
FFI は Lisp 系が一番優れていると思うよ。

http://xarch.tu-graz.ac.at/autocad/lisp/ffis.html
0618デフォルトの名無しさんNGNG
PythonでSJISの文字列をEUCに変換するにはどうすればいいのですか?
0619デフォルトの名無しさんNGNG
>>618
http://www.google.co.jp/search?hl=ja&ie=UTF-8&q=python+sjis+euc+%E5%A4%89%E6%8F%9B&lr=
0620デフォルトの名無しさんNGNG
1つ教えてください。
最近pythonを勉強し始めたのですが、よく他人のソースを見ていると
関数を定義するときに必ずといっていいほどselfという引数が使われているのですが、
このselfという引数はなにか特別なものなのでしょうか?
0621デフォルトの名無しさんNGNG
>Conventionally, the first argument of methods is often called self. This is
>nothing more than a convention: the name self has absolutely no special
>meaning to Python. (Note, however, that by not following the convention
>your code may be less readable by other Python programmers, and it is also
>conceivable that a class browser program be written which relies upon such
>a convention.)
0622デフォルトの名無しさんNGNG
>>621
どうもっす。
特に意味は無いんですね。そして他の人に分りにくくなると・・・w
ところでもし良かったら、引用元を教えてもらえませんか?
0623デフォルトの名無しさんNGNG
>>620
ttp://www.python.jp/pub/doc_jp/tut/node11.html

チュートリアルは全部目を通しておこう。
せっかく初学者のために用意されてんだし。もったいない
0624デフォルトの名無しさんNGNG
>>623
有難う御座います。助かります。
とりあえず最初から順に読んでいきますね。

#selfを使う慣習は、従わないと読みにくいのか・・・読み間違えたorz
0625デフォルトの名無しさんNGNG
self は Python 固有のものじゃなくて OOP 関係を理解すれば分かるかと。
0626名無しさん@Vim%ChaliceNGNG
文字列フォーマットについて教えて頂きたいんです。

print '\s \s' % ( 'hoge', 'hoge' )

ってやりますが、こいつを

hoges = ( 'hoge', 'hoge' )
print '\s \s' % hoges

ってできないんでしょうか・・・。
参照すべきドキュメントなどご存じでしたら、ご教示ください。
0627名無しさん@Vim%ChaliceNGNG
あう。

'\s \s' -> '%s %s'

でした。m(_ _)m
0628デフォルトの名無しさんNGNG
rubyではなく、pythonを使うメリットを分かりやすく教えてください。
0629デフォルトの名無しさんNGNG
日本代表と世界代表
0630デフォルトの名無しさんNGNG
思いこみの激しさが作者だけか、ユーザーぐるみか。
0631デフォルトの名無しさんNGNG
日本に閉じこもるか世界に出るか
初期開発者がもし死んでも開発が継続する体制があるかないか
とか?
0632デフォルトの名無しさんNGNG
>>626
質問する前に試した?
0633デフォルトの名無しさんNGNG
よく釣れるスレだな。
0634デフォルトの名無しさんNGNG
暇なんだよ
0635626NGNG
>626
やりましたよう。いろいろやったんですがうまく行かなくて。

・・・今、やってみたら、ちゃんと期待通りに動くじゃないですか(- -;
括弧入れたりカンマ入れたり、いろいろやったけど、
正しいのだけは見事に外してたのでせうか・・・。
お騒がせしました。m(_ _)m
0636626NGNG
訂正。
626は私で、助言をいただいたのは632様でした。m(_ _)m
0637デフォルトの名無しさんNGNG
ruby の作者のキモさだけで ruby を使うことを辞めた漏れは
Python 使いになって正解だった。
0638デフォルトの名無しさんNGNG
まわりも同類だから、キモさを意識する手段がないもんな…。
0639626NGNG
また戻って参りました。m(_ _)m

626, 627のやつですが、タプルやマップなら受け付けて、
リストだと受け付けんのですな。

ナゼダ。orz
0640デフォルトの名無しさんNGNG
>>638
ヲイ、rubistはΩ儲と同じぐらい痛い集団だぞ!
0641デフォルトの名無しさんNGNG
>>639
ttp://www.python.jp/pub/doc_jp/lib/typesseq-strings.html
をよく読め。
0642639NGNG
いや、読みましたとも。
仕様である、といわれればそれまでですが・・・。
0643デフォルトの名無しさんNGNG
PyJUGで配布している Python 日本語環境用インストーラ (Win32) ですが、
5月末に本家で 2.3.4 がリリースされて三ヶ月近く経っても未だに 2.3.3 ですね。
2.3.4 のニュースリリース ttp://www.python.org/2.3.4/NEWS.html だと結構
バグ直ってるっぽいんですが、Windows で Python している人はどっち使ってます?
というか 2.3.4 の日本語版はリリース予定ないんでしょうかね。
0644デフォルトの名無しさんNGNG
バックスラッシュの問題にからむコードを書かなければ、
日本語版はとくにいらないし。
0645デフォルトの名無しさんNGNG
shade6でpython使ってるんですけど、ブーリアン演算を
書くとうまくいきません。
ブラウザで実行すると以下の文が生成されるんですが、
xshade.scene.active_shape.name"*パート"
これをスクリプトから実行しようとするとエラーになってしまいます。
わかる方いましたら、お願いします。

0646デフォルトの名無しさんNGNG
>>645
> shade6でpython使ってるんですけど、
ほぅ、最近じゃShadeにもPythonが付いてるんか。
CG関係にも人気があるんかね、Pythonは。

> ブラウザで実行すると以下の文が生成されるんですが、
> xshade.scene.active_shape.name"*パート"
思いっきり文法違反なんだが……ブラウザがタコいんでない?
ShadeのAPIは知らないんで、正しい(とShadeが主張する)コードは、
すまんがわからない。

APIリファレンスみたいなのはないの?
0647デフォルトの名無しさんNGNG
>>645
ちゅーこんで
Shade 相談/質問スレッド Ver.3.0  ドゾー( ´∀`)つ
ttp://pc5.2ch.net/test/read.cgi/cg/1079609445/
0648デフォルトの名無しさんNGNG
IDLE の EditorWindow.py の def short_title() と def long_title() の
return の返り値に unicode() を噛ませたら、今まで文字化けしていた
ウインドウタイトルのパス名の日本語部分が正常に表示されるように
なった。万歳。

……でもバージョンアップして IDLE を入れなおしたらまた書き直
さないといけないんだね。本家で直してくれないかな。
0649デフォルトの名無しさんNGNG
>643
CJKPython
0650デフォルトの名無しさんNGNG
ふぃすろん?って読むの?
0651デフォルトの名無しさんNGNG
>>649
2.4系でマージされたのはどっちの方なの?
0652643NGNG
>>649
確かに CJKPython なり JapaneseCodec なりを使えば
日本語版にこだわる理由もなくなるとは思うんですが、
pykf の最新版 (0.3.4) の Windows用バイナリって配布されてないですよね。
VS 持ってないからコンパイルできないし。
pykf が必要なのは、Popee (ttp://isrf.homeip.net/Projects/Popee) が pykf を
使うからなんです。日本語版Pythonなら pykf が最初から入っているので。

CJKPython を使えれば pykf 必要ないですよね。ちょっとソースコード見て
何とかしてみようと思います。

>>651
「どっち」というのが JapaneseCodec と CJKPython を指すなら、CJKPythonのはずです。
0653デフォルトの名無しさんNGNG
>>650
> ふぃすろん?って読むの?

                \ │ /
                 / ̄\   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
               ─( ゚ ∀ ゚ )< ぱいそんぱいそん!
                 \_/   \_________
                / │ \
                 ∩ ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ ∩ ∧ ∧ \( ゚ ∀ ゚ )< ぱいそんぱいそんぱいそん!
ぱいそん〜〜〜!   >( ゚ ∀ ゚ )/ |   / \__________
________/ |  〈  |   |
            / /\_」  / /\」 
0654643NGNG
>>652
CJKPython を CJKCodecs を混同していました。というより CJKPython の存在を知りませんでした。
>>649さんありがとう。
Python-ml-jp の過去ログだと JapaneseCodec との動作に若干の違いがあるようですが、
2.3.4 版がリリースされているのはありがたいです。使ってみます。pykf も入っているようですし。

PyJUG には CJKPython に関する記述はないようですが、僕のように Python を新しくやってみようと
いう者には混乱が起きそうですね。日本語版 2.3.4 がないのなら CJKPython へ誘導するなりして
くれるとありがたいのですが。
0655653NGNG
ずれた。。。
0656デフォルトの名無しさんNGNG
CもKもイラネ
0657デフォルトの名無しさんNGNG
>>652
Popeeでのpykfは勢いあまって入れてしまっただけなので、次のリリースからは
削除の予定〜。
0658デフォルトの名無しさんNGNG
socketでjpgとかバイナリデータを送受信した方いらっしゃいますか.
テキストはできるのですが, structとsocketの使い方がいまいち理解できていません
0659デフォルトの名無しさんNGNG
socketでjpgとかバイナリデータを送受信した方いらっしゃいますか.
テキストはできるのですが, structとsocketの使い方がいまいち理解できていません
0660デフォルトの名無しさんNGNG
>>659
struct要らないんでない?

送信側:
fileName = "hoge.jpg"
image = open(fileName, "r")
socket.send("%s %d\n" % (fileName, len(image))
socket.send(image)


受信側:
line = ""
while True:
 c = socket.recv(1)
 if c == '\n':
  break
 line += c
(fileName, size) = line.split()
image = socket.recv(int(size))
file = open(fileName, "w")
file.write(image)
file.close()

こんな感じかな?
0661660NGNG
少々間違いが。

image = open(fileName, "r")
↓
image = open(fileName, "r").read()
0662デフォルトの名無しさんNGNG
import struct
import socket
s = socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect('your.target.host', 101010)
infile = open('binarydata_file', 'rb') # do not forget 'b'
data = infile.read()
header = struct.pack('<I', len(data)) # encode header (32bit uint LE)
s.sendall(header)
s.sendall(data)
-------
# s is a socket returned by accept().
hdrsize = struct.calcsize('<I')
hdr = ''
to_read = hdrsize
while to_read>0: # read header bytes
 hdr += s.recv(to_read)
 to_read = hdrsize-len(hdr)
datasize = struct.unpack('<I', hdr) # decode header length (32bit uint LE)
to_read = datasize
data = ''
while to_read>0: # read data bytes
 data += s.recv(to_read)
 to_read = datasize-len(data)

0663デフォルトの名無しさんNGNG
>>652

> VS 持ってないからコンパイルできないし。

これは参考にならない?
.NET SDKとVC++Toolkitで無理矢理やってるけど。
http://www.zob.ne.jp/~hide-t/mt/archives/2004/07/pyrex.html
0664デフォルトの名無しさんNGNG
>>643
> 2.3.4 の日本語版はリリース予定ないんでしょうかね。

日本語版の中の人に直接聞け。日本語版は中の人がひとりで作っているもので、
「予定」なんてものは無いと思われ。ユーザからの要望がなければずっと古い
ままという可能性も大いにありうる。たぶん中の人はこのスレを見てないから
直接メールするなりしないとダメポ。
0665デフォルトの名無しさんNGNG
ちょっと質問させてください。
python1.5.2だと
>>> a = ['ああ']
>>> print a
['\244\242\244\242']

python2.1.3だと
>>> a = ['ああ']
>>> print a
['\xa4\xa2\xa4\xa2']
となり、出力される結果が違います。

なんとか2.1.3で出力しても1.5.2と同じ形式にしたいのですが
うまい方法はありますでしょうか?
0666デフォルトの名無しさんNGNG
import pprint, re

class Printer(pprint.PrettyPrinter):
    re_numeric = re.compile(r"\\(t|n|x[0-9A-Fa-f][0-9A-Fa-f])")
    def __repr(self, object, context, level):
        re_numeric.sub(pprint.PrettyPrinter.__repr(
            object, context, self.__depth, level), self.__replace)
    def __replace(self, match):
        s = match.group()
        if s[1] == "x":
            return r"\%03o" % int(s[2:], 16)
        elif s[1] == "t":
            return r"\011"
        elif s[1] == "n":
            return r"\012"
        raise RuntimeError, "should not reach here"

if __name__ == "__main__":
    pprint.PrettyPrinter = Printer
    pprint.pformat(["n\n\012\0x0a\xa4\xa2"]) == "['n\012\012\012\244\242']"
0667デフォルトの名無しさんNGNG
最後の文が assert になって中田。全然ウゴカネーので>>666は無視して呉。スマソ
0668デフォルトの名無しさんNGNG
import pprint, re

safe_repr = pprint._safe_repr

re_escape = re.compile(r"\\(t|n|x[0-9A-Fa-f][0-9A-Fa-f])")

def compat_safe_repr(object, context, maxlevels=None, level=0):
    rep = list(safe_repr(object, context, maxlevels, level))
    rep[0] = re_escape.sub(replace, rep[0])
    return tuple(rep)

def replace(match):
    s = match.group()
    if s[1] == "x":
        return r"\%03o" % int(s[2:], 16)
    elif s[1] == "t":
        return r"\011"
    elif s[1] == "n":
        return r"\012"
    raise RuntimeError, "should not reach here"

pprint._safe_repr = compat_safe_repr

if __name__ == "__main__":
    assert pprint.pformat(["n\n\012\x0a\xa4\xa2"]) == r"['n\012\012\012\244\242']"
0669デフォルトの名無しさんNGNG
pprint.PrettyPrinter.__repr() みたいにアンダースコアふたつで始まる名前のメソッドは
継承できないのを忘れてた。つーか何でこのメソッドは継承不可なんだYO!(逆ギレ)
0670デフォルトの名無しさんNGNG
>>669
他のOO言語でいうところの private 関数だから
0671デフォルトの名無しさんNGNG
いや、だから質問は
「なんでこのメソッドが private なんだYO! (逆ギレ)」
ということじゃないの?
0672665NGNG
>>668
わざわざプログラムまで作成していただきありがとうございます!
文字列のコードが8進数→16進数に変わっているわけですねぇ。。。
勉強になりました。
0673デフォルトの名無しさんNGNG
> 「Pythonの紹介」に終始。というのが、現在の日本のPythonのポジションを表現しているような。
(w
0674デフォルトの名無しさんNGNG
>>673の引用元
言いたいことはわかる。

でも、Pythonはここ一年間ですら言語仕様がいろいろ増えたし、紹介は必要
だったと思う。ただ全体を見渡す視点が足りなかったのかもというのはある。

Pythonとさっぱり変わってない言語をその教祖がホームグラウンドで比較
した色眼鏡ばりばりの寸評に、どんなまともな価値があるんだか疑問。
0675643NGNG
>>663
どうも。CJKPython で問題は解決しましたが今後参考になりそうです。
GPL な Python を Windows で使うにあたって MS のコンパイラが必要というのが
なんか残念ですね。といっても Cygwin とか使うってのもマニアックになってしまうし。
0676デフォルトの名無しさんNGNG
>>675
PythonはGPLじゃないYo!
0677デフォルトの名無しさんNGNG
>>675
ここよみなされ。
http://www.python.jp/pub/doc_jp/inst/tweak-flags.html#SECTION000622000000000000000
0678番長NGNG
>>674
>ただ全体を見渡す視点が足りなかったのかもというのはある。

10分では無理

ていうか
2年続けてプロジェクタ真っ黒の言語オタの負け惜しみはみっともない(プ


二日目の最後に日記CGI作ってる出しゃばりおやぢが登場したり
今年はR言語は評判悪い
日本のR言語のポジションをよく象徴している
0679デフォルトの名無しさんNGNG
Pythonでムービープレイヤー作れますか?
0680デフォルトの名無しさんNGNG
>>679
http://www.pygame.org/docs/ref/Movie.html
ここらへん使えば?
0681デフォルトの名無しさんNGNG
質問する前に google://python movie player/ する知恵も浮かばない>>679 は
ttp://freshmeat.net/projects/pyplayer/ とか
ttp://xtheater.sourceforge.net/pythontheater/ を見れ。
0682デフォルトの名無しさんNGNG
>>678 漏れ的には、R陣営は教祖と最後のオヤジ以外の印象はさほど悪くなかったよ。
出しゃばり具合で言うならむしろ「俺のは79行!」とか「1時間で書いたYO!」とか
ガァガァうるさいフタデブラクダの方が目障りだった。奴がラクダ代表を自認してる間は
あちこちに敵をつくりつづけるんだろうな。合掌。
0683デフォルトの名無しさんNGNG
引用元だとか、なんかついてけない。
セミナーだかなんだかに参加してた人専用?
0684679NGNG
携帯からだったんですいません。
>>680-681
thankです!
0685679NGNG
pygameすごいよpygame
0686643NGNG
>>676
GPL互換ですた。勘違いでつた。指摘どうも。GPLか、GPL互換かってのは大きな違いですね。
ttp://itpro.nikkeibp.co.jp/NIP/license.html ちょっと調べてたらライセンスの一覧がありました。
BSD ライクなライセンスなんですね。

>>677
mingw なんて手もありましたか。どうも。これで安心しましたよ。

0687デフォルトの名無しさんNGNG
>>678
Rの評判って悪いの?詳細きぼん
0688デフォルトの名無しさんNGNG
初歩的な質問で申し訳ないのですが、
アドバイスお願いします。

>>> class c1:
pass

>>> array1 = c1() # ok
>>> array2 = c1()[10] # damepo
>>> array3 = c1[10]() # damepo
>>> array4 = c1[10] # damepo

C++ みたいに
array = new c1[10]
って、できないのでしょうか?
0689デフォルトの名無しさんNGNG
くわしくないんだけど
ttp://www.python.jp/pub/doc_jp/lib/typesseq.html
ここを見るとこう書けるっぽい。

array = [c1()] * 10

なんかいけてない。
0690デフォルトの名無しさんNGNG
コピーだからこれだと配列の中身は同一のインスタンスになるね
ごめん↑のは忘れて
0691デフォルトの名無しさんNGNG
>>689 さん

いえいえ、リンク先を示して頂いただけでも充分ありがとうです。

array = [c1() for i in range(10)]

ということですね。
ばっちりでした。

# たしかになんかいけてない書き方ですね w
0692デフォルトの名無しさんNGNG
こういのを見ると Python の [] って、やっぱ配列じゃなくて
リストなんだなぁと改めて実感するな。
0693688NGNG
何度も質問してすいません。
print が出力できる情報量について聞きたいのですが、、、

from nntplib import NNTP
s = NNTP("news.media.kyoto-u.ac.jp", 119, "guest", "guest")
t = s.list()

# OK -----------------------
fout = open("list.txt", 'w')
fout.write(str(t))
fout.close()

# NG (反応が返りません) ----
print str(t)

ファイルにすると約2MBほどの情報なのですが、
うーん。。。

print に対して 2MB のデータを突っ込むことはできないのでしょうか?
こちら側で気を付けなければならない仕様なのでしょうか?

すいませんがわかる方教えてください。
よろしくお願いします。

Python version : 2.4a2
IDLE version : 1.1a2
0694688NGNG
とりあえず 693 のコードがダメなのは
私の環境では IDLE だけのようです。

↓は OK でした。
・cygwin の python
Python 2.3.4 (#1, Jun 13 2004, 11:21:03)
[GCC 3.3.1 (cygming special)] on cygwin

・Python(command line)

IDLE のときは print に無理をさせないようにしたいと思います。
お騒がせしました。
0695デフォルトの名無しさんNGNG
おすすめのPythonの入門書があれば教えてください。言語経験はJavaの文法が一通りわかる程度です。
0696デフォルトの名無しさんNGNG
>>695
ttp://www.python.jp/pub/doc_jp/tut/

次回テンプレに入れといたほうがいいね
0697デフォルトの名無しさんNGNG
>>692
んだなぁ  (´ー`)y−〜〜
リスト慣れしていない漏れたちこそイケてないんじゃないかなぁ _| ̄|○ili
0698デフォルトの名無しさんNGNG
イケてる人たちはみんな scheme とかに走ってしまうわけで。

イケてなくても上等、というのが Python なのかも。
0699デフォルトの名無しさんNGNG
最近はイケている人ほどPythonを使うような気もするんだが。
そもそも、PythonのListとLisp/Schemeのそれは違うもんだし。
0700デフォルトの名無しさんNGNG
>>693-694 に4ポストン。
0701デフォルトの名無しさんNGNG
www.python.jpに繋がらない。。。
0702デフォルトの名無しさんNGNG
>>700
そーういのはネタスレで。
0703デフォルトの名無しさんNGNG
自分の事を 「イケてる」 と思ってる人たちとはあまり付き合いたくない。
0704デフォルトの名無しさんNGNG
イッチー!
0705デフォルトの名無しさんNGNG
キラーン
0706番長NGNG
ネタスレに逝け。
0707デフォルトの名無しさんNGNG
そして誰もいなくなった。
0708デフォルトの名無しさんNGNG
# pygame でフォント作りまくると落ちまくるんだけどこれはこういう物なの?
import pygame
def puttext(screen, font, text ,x = 0, y = 0, color = (255, 255, 255)):
  screen.blit(font.render(text, True, color), (x, y))
def rend(screen, font):
  screen.fill((0,0,0))
  puttext(screen, font, u"spam, egg.")
  pygame.display.flip()
  while True:
    for e in pygame.event.get((pygame.MOUSEBUTTONDOWN, pygame.QUIT)):
      if e.type in (pygame.MOUSEBUTTONDOWN,):return False
      elif e.type in (pygame.QUIT,):return True
    pygame.time.wait(10)
def main():
  pygame.init()
  screen = pygame.display.set_mode((640, 480))
  pygame.font.init()
  for i in pygame.font.get_fonts():
    pygame.display.set_caption(unicode(i))
    if rend(screen, pygame.font.SysFont(i, 100)):return
if __name__ == '__main__':
  try:main()
  finally:pygame.quit()
0709デフォルトの名無しさんNGNG
pygame の Movie だけど、 使い終わったらいちいち
display.quit() しておかないとタイトルバーの機能が
効かなくなったりするよ。(WindowsXP)

ところで、このまま pygame のネタをここに書き落として
いってもいいのかな。

それともゲ制作板にスレ立てしないと駄目?
0710デフォルトの名無しさんNGNG
ゲ制作板にスレ立てても速攻で落ちそうなので、ここでいいと思われ。
0711デフォルトの名無しさんNGNG
あの板は滅多なことでは落ちない
0712デフォルトの名無しさんNGNG
odbc経由でMS ACCESSにPythonから画像ファイルをinsertしたいのですがデータが壊れているようです。
MySQLの場合ではうまくいくのでACCESS固有の話のような気はしますが、ご存じだったら正しい方法を教えて下さい。

import sys, os, MySQLdb, StringIO
import odbc

# MySQLの場合
con = MySQLdb.connect(db="test")
cur = con.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS foo (img BLOB)")
data = StringIO.StringIO(file("foo.bmp","rb").read()).getvalue()
cur.execute("INSERT INTO foo SET img=%s",(data))
con.close()

# MS ACCESSの場合(testはODBCに設定済み)
dsn = "test"
con = odbc.odbc(dsn)
cur = con.cursor()
cur.execute("CREATE TABLE foo (img IMAGE)")
data = StringIO.StringIO(file("foo.bmp","rb").read()).getvalue()
cur.execute("INSERT INTO foo (img) VALUES(?)",(data))
cur = con.cursor()
con.close()

0713デフォルトの名無しさんNGNG
最後から2番目で(Closeしていない)カーソルを一度棄ててもう一度
作成しているのには,何か理由があるのかな?
0714デフォルトの名無しさんNGNG
>>713

た、たいぽです。
0715デフォルトの名無しさんNGNG
>>714
どこからどこへの家庭で発祥した逮捕゜なんだよ ( ゚∀゚)σ)´Д`)
脳内からアクセクへの家庭科、
或いはアクセクのコードのペインからの家庭で撃ち損じたのか?

(´-`).。oO( 後者はコピー&ペーストで済むからありえへんねやろ… )
0716デフォルトの名無しさんNGNG
>>715
いくら2chでも当て字多すぎ。最初見たとき誤爆かと思った。
0717デフォルトの名無しさんNGNG
>>710-711
なんか寂しい事になりそうなので引き続きこちらでよろしくお願いします。


ついでに一つ。

ttp://sansa.s16.xrea.com/text/pygame_sample.html の「音楽を再生」
みたく pygame.init() をせずに pygame.mixer.init() だけして音楽を鳴らす
と、鳴ることは鳴るのだけれども変な音になる。(WindowsXP)

多分、HP作者の環境だと問題無く動いているんだと思うけれど…。

pygame は自動的に初期化されるモジュールも多いけれど、
エラーも出さずに変な動作をしてくれる場合も多く危険だ。
0718名無しさん@Vim%ChaliceNGNG
メソッドの引数って、リストの場合は参照じゃなくて、
値渡しになっちまうんでしょうか。
下記のようなことをやって、Rootのcolumnを、
単一のインスタンスを参照するようにしたいのですが。
このとき、columnは、Rootのインスタンス変数であって、
クラス変数ではないということで。
もしかして、リストじゃなくて、タプルだったら参照渡しになりますか・・・。

class Node:
 def __init__( self, column ):
  self.column = column

 def addColumn( self, column ):
  self.column.append( column )

class Root( Node ):
 def __init__( self ):
  self.childnodes = []
  column = [ 'col1', 'col2' ]
  self.childnodes.append( Node( column ) )
  self.childnodes.append( Node( column ) )
  self.childnodes.append( Node( column ) )
0719デフォルトの名無しさんNGNG
>>> class a:
def b(Self,x):x[0]="hoge"


>>> c=[1,2,3]
>>> c
[1, 2, 3]
>>> d=a()
>>> d.b(c)
>>> c
['hoge', 2, 3]


普通に参照渡しだと思うけれども、こういう話とは違うの?


>下記のようなことをやって、Rootのcolumnを、
>単一のインスタンスを参照するようにしたいのですが。
>このとき、columnは、Rootのインスタンス変数であって、
>クラス変数ではないということで。

サブクラス Root は親クラス Node の __init__ を呼んでいないけれど
そのへんはどういうつもりの設計なの?
0720名無しさん@Vim%ChaliceNGNG
> サブクラス Root は親クラス Node の __init__ を呼んでいないけれど

生半可ですみません。m(_ _)m
今後、転写するコードは動作するものだけにします。

で、バグに気がつきました。
別に、clearColumnというメソッドがあって、
それを実行したときに、self.columnに新しいインスタンスを
与えてしまっていたのでした・・・。
self.column[ 1: ] = []
に修正しました。

お騒がせしました。m(_ _)m
0721デフォルトの名無しさんNGNG
なんのこっちゃ
0722デフォルトの名無しさんNGNG
>>716
た、たいぽです。
0723デフォルトの名無しさんNGNG
print"".join([[m[i][j]==0 and(j>13 and"#\n"or"#")or(j>13 and" \n"or" ")for\
i in g(15)for j in g(15)]for n in[[(r.insert(0,n),[(len(s)and[[r.append((x+k,
y+l))for m[x+i][y+j],m[x+k][y+l]in[(2,2)]]for i,j,k,l in[o.choice(s)]])or[0\
for x,y in[r.pop()]]for s in[[((-1,0,-2,0),(1,0,2,0),(0,-1,0,-2),(0,1,0,2))\
[i]for i in g(4)if[x>1,x<13,y>1,y<13][i]and m[x+[-2,2,0,0][i]][y+[0,0,-2,2]\
[i]]==1]]])for n in r]for m,x,y,r,o,g in[([[i*j==1 and 2 or i*j%2 for i in\
range(15)]for j in range(15)],1,1,[(1,1)],__import__("random"),range)]]][0])
0724デフォルトの名無しさんNGNG
凄い、こんなこと出来るんだ。感動した。>>723は神。
0725デフォルトの名無しさんNGNG
>>723
面白そうなので、短くしてみた。

print"".join(*[[["# "[m[i][j]/2]+"\n"[:j/14]for i in g for j in g]for n in[[(r.
insert(0,n),[s and[[r.append((x+k,y+l))for m[x+k/2][y+l/2],m[x+k][y+l]in[(2,2)]
]for k,l in[o.choice(s)]]or[0 for x,y in[r.pop()]]for s in[[(k,l)for k,l in[(-2
,0),(2,0),(0,-2),(0,2)]if m[(x+k)%15][(y+l)%15]%2]]])for n in r]for m,x,y,r,o
in[([[i*j%2 for i in g]for j in g],1,1,[(1,1)],__import__("random"))]]]for g in
[range(15)]][0])
0726デフォルトの名無しさんNGNG
>>723
>>725
おまいら凄すぎる。
0727デフォルトの名無しさんNGNG
Guido タンが嘆きそうなソースだけどね。w
0728デフォルトの名無しさんNGNG
scheme から逃げてきましたが何か?
0729デフォルトの名無しさんNGNG
>>728
scheme捨てないで!
0730デフォルトの名無しさんNGNG
字下げも無い括弧の山を瞬間的に判別できるのは十代の内だけだよね。
0731デフォルトの名無しさんNGNG
Schemeでも普通に字下げするし。
0732デフォルトの名無しさんNGNG
Cでも普通に字下げするし。
0733デフォルトの名無しさんNGNG
プロジェクト面接時に小さなコード記述させて、インデントがないと絶対採用しない会社が実在する
0734デフォルトの名無しさんNGNG
それはまともな会社に思えるが

そもそもインデントしないでコードを書く人間など、
私生活でも散らかってるやつに決まっとる!
0735デフォルトの名無しさんNGNG
>>730

Scheme で本当にタチが悪いのは特殊構文と普通の関数の区別がつかないことだ。
たとえば set! は特殊構文だが、vector-set! は同じ破壊的な操作をおこなう関数でも
特殊構文ではない。同様に let や cond も慣れないとわかりにくいし、
慣れたあとでさえときどき間違える。これでマクロが自由自在に定義できたときには
恐しいことになるだろう。Scheme でも頑張れば Python と同じくらい
生産的になることはできるだろうが、Python にあるようなプログラマをミスから
守ってくれそうな細かい気配りが Scheme には欠けている。Emacs でバリバリ色を
つければそれなりに何とかはなるだろうが、それでも言語設計の段階からそういう
ミスについて配慮している Python のほうが印象がいい。

と最近思いましたです。
0736デフォルトの名無しさんNGNG
>>735
同様に扱える、というのはメリットでもあるよ
0737デフォルトの名無しさんNGNG
>>698 でも言われているが、基本的に Scheme は「頭がキレる」人のための
言語なのだと思う。物事を抽象的に考えるだけでなしに、カッコをすばやく認識できる
パターン認識能力とか、複雑なマクロ展開を (使うとして) 理解できる記憶力が
必要だからだ。Python はそれよりもいくぶん「バカ対策」がされている。
そこに親しみを覚えるか、それをダサいと思うかが Python ユーザと Scheme ユーザの
違いだろうな。自分がバカであると自覚している人間にとっては Python のほうが
親しみやすい。そして謙虚でないプログラマにろくなやつはいない。
0738デフォルトの名無しさんNGNG
昔で言えば C と BASIC の違いみたいなもんか。
0739デフォルトの名無しさんNGNG
確かに、「何でPython使ってるの?」って尋ねられたとき、
「LispもPerlもバカで理解できなかったから」って答えて
るな・・・
0740デフォルトの名無しさんNGNG
俺もPythonやりたいんですが
参考書はどれを買ったらいいですか
プログラミングはBASICしかやったことがないので簡単な奴がいいです
萌えるパイソン「萌えパイ」みたいな本はないですか
0741デフォルトの名無しさんNGNG
>>740
あれこれ選べるほど本は出てないので、
プログラムも初心者に近いなら内容は古くなるけど

「Pythonで学ぶプログラム作法」(ピアソン・エデュケーション)
ttp://www.esbooks.co.jp/books/detail?accd=30878132

がいいんじゃないかな。

あと、お金に余裕があれば、辞書代わりに
「Pythonクイックリファレンス」(オライリー・ジャパン)
ttp://www.esbooks.co.jp/books/detail?accd=31355239
0742デフォルトの名無しさんNGNG
>>740
オンラインマニュアルには目をとおした?

ttp://www.python.jp/pub/doc_jp/index.html
チュートリアルは元が英語だからくどいけど、ウソは書いてない。
0743デフォルトの名無しさんNGNG
あと、萌え本はないので。
0744740NGNG
レスありがとう!!>>741-743
半分ネタで書いたんだけどね。
どこかのサイトにあったPython入門を見て、
これなら俺でもいけそうだって思ったのがはじまり。
でも、書籍はオライリーのむずかしいそうなやつしかないし
「Pythonで学ぶプログラム作法」も俺にはちょっと敷居が高そうだった。
それで、もっと簡単な本はないのかなあと聞いてみたかったのでした。
0745デフォルトの名無しさんNGNG
結局、オンラインマニュアルか、
オライリーの「初めてのPython」しかないと思う。
「Python入門」「Pythonプログラミング」は
Pythonを使って具体的に何をしていくか、
ということに主眼が向いているような気がして
初心者はきついと思う。
0746デフォルトの名無しさんNGNG
最近の初心者は軟弱ですか
0747デフォルトの名無しさんNGNG
萌えイラスト描いてくれる人がいるなら、初心者向け入門書作ってみたいね
0748688NGNG
パイ子萌え。
0749デフォルトの名無しさんNGNG
>>744
日本Pythonユーザ会 http://www.python.jp/Zope/

の「初めての方へ:」にある

インスタント・ハッキング http://www.python.jp/Zope/intro/instant_hacking_jp
インスタント・パイソン http://www.python.jp/Zope/intro/instant_python_jp

はどう?
「Pythonで学ぶプログラム作法」が駄目というならこれでも駄目かもしれないけれど。
0750デフォルトの名無しさんNGNG
>>746
いくら簡単でも学校の教科書みたいに真面目な物だと駄目なんだろうね。

それと普通のユーザーが普通に使っている、つまり GUI のツールや
ビデオゲームが作れないと駄目だろうし。

SqueakToys みたいなのが必要なのかも。
あるいは高橋麻奈氏に「やさしい Python」を書いてもらうとか。
0751デフォルトの名無しさんNGNG
易しくみっちりと全10巻 キボ〜ン (*´3`)
0752デフォルトの名無しさんNGNG
変数を使って数字をファイルに書き込みたいのですが、
どのようにすればいいのでしょうか?
x=100
f.write(x)やf.write('x')
と書くとエラーがでてしまいます。
わかる方いましたら、お願いします。
0753デフォルトの名無しさんNGNG
str(x) とか '%d' % x とか
0754デフォルトの名無しさんNGNG
>>752
エラー内容をそのまま書かんとわからんよ。
f.write()の引数は文字列で、`x`は文字列だから本来エラーにはならない。

ファイルのオープンで書き込み可能にしてないとかかな?
0755デフォルトの名無しさんNGNG
>>754
type error argument must be string or read only character
buffer not int
というようなエラーメッセージが出てきます。
f.write('x') でやるとファイルには数字ではなくxそのものが
書き込まれてしまうのですが。
0756デフォルトの名無しさんNGNG
>>753
>>754
できました!
アドバイスほんとにありがとうございました。
0757688NGNG
> type error argument must be string or read only character
> buffer not int

めちゃくちゃ丁寧にエラーの原因を示しているじゃないですか。。。

と、そんな野暮なツッコミは放っておいて質問です。
Python の read only character buffer って何を指しているのですか?
"STRING" ってリテラル(literal 定数) だと思うし、
これかな?と思って試してみたら
__name__ = "test"
使い道のわからない事もできちゃうし、、、

2.3.10 特殊な属性
http://www.python.jp/pub/doc_jp/lib/specialattrs.html

のことを指しているのですかね?
わかる方よかったら教えてください、お願いします。
0758デフォルトの名無しさんNGNG
>>757
組み込み関数 buffer() あたりを想定したエラー出力なんではないかな。
http://www.python.jp/pub/doc_jp/lib/non-essential-built-in-funcs.html

>>> a=buffer("hoge")
>>> a
<read-only buffer for 0x00A245A0, ptr 0x00A245B4, size 4 at 0x00A24560>
>>> print a
hoge
>>> a[1]="a"
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: buffer is read-only
0759デフォルトの名無しさんNGNG
Mac OS 9.2.2 で Python 2.3.3 を使ってます。

アプレットを実行するときに、ダブルクリックしてアプレットが立ち上がるのはスムーズなんですが、
そこから実際にスクリプトが実行されるまで10秒くらい時間がかかることがあります。
その間がなくてすぐに実行されることもありますが、時間がかかることのほうが多いです。

今更、古い環境ですけど、なにか解決できるような情報ないでしょうか?
0760デフォルトの名無しさんNGNG
1gentoolinuxユーザとして質問します。

gentooのどの部分にPythonが使われているのでしょうか?
また、それはPythonでなければいけないのでしょうか?

0761デフォルトの名無しさんNGNG
一つ目の質問: Portage。
二つ目の質問: Portage のメンテナーがそう思ってる間は Python でなければならん。
0762688NGNG
>>758
情報ありがとうございます。
しかし、『非必須組み込み関数』と書かれているせいか、
(もしくは自分が頭悪いせい)
他の文字列と目立った違いがわかりませんでした。
read only ... については、昔は違ったのかもしれませんが、
今はあんまり気にしなくてもいいのかな?

ところで a[1] = "a" に関してですが、
文字列の一部分を変えようと思ったら

a = buffer("hoge") # a = "hoge" でも同様
a = a[0] + "a" + a[2:]

としなくてはいけない?(めんどい・・・)
『オブジェクトの内容変更は明確にする』という python の思想が
あちらこちらで見受けられますね。

>>759,760
http://www.gentoo.org/doc/en/portage-manual.xml
http://www.gentoo.org/doc/ja/portage-manual.xml
Portageシステムは、Pythonのコアの部分と、
BASHスクリプトベースのebuildとの融合物であるといえます。
Makefileやmakeコマンドで処理する代わりに、Pythonのパワーと、
オブジェクト指向の特徴の一部を利用したシェルスクリプティングの使いやすさを活かし、Portageはユニークでパワフルなシステムを作り上げています。だから敢えて言いましょう。Portageは現在存在する他のすべてのportsシステムを超越しています。

一般性が強く上位層に位置するシステムについては
C や Perl とかよりも python の方が向いてるのでしょうね。
個人のクセが少なくて読みやすいだろうし。
0763688NGNG
ぐあ、番号ミスった。
0764デフォルトの名無しさんNGNG
>>762
> ところで a[1] = "a" に関してですが、
> 文字列の一部分を変えようと思ったら

MutableString が使えます。

>>> import UserString
>>> a = UserString.MutableString("hoge")
>>> a[1] = "a"
>>> a
'hage'

といいつつ、オレは実地で使ったことは一度もないのだが。

たいてい文字列の中身をいじりたい場合は一度なんらかの形で
parseしてトークン列からなるリストをつくり、最後にそれを
''.join(seq) で文字列に戻す、ということをやる。
0765デフォルトの名無しさんNGNG
「Pythonで学ぶプログラム作法」ってよんだことないけど、
amazon の書評をみると、あんまり初心者向けではないって
書いてあるなあ。
0766688NGNG
>>764
どうも勉強になります。
http://www.python.jp/pub/doc_jp/lib/module-UserString.html
あまり使って欲しくないような書き方していますね。

通常は 764 さんのいう
リストと join を使う方法でやりたいと思います。

>>759
使用しないモジュールは import しないようにするくらいしか思いつきません。。。

# http://www.python.jp/pub/doc_jp/lib/ 内の
# <tt class="module">(.*?)</tt> をほぼ全部 import したら
# print "hoge" するまで、それなりに時間が掛かりました。
0767764NGNG
たぶん、文字列の特定の部位を、文字単位の位置を指定して
書き換えたくなることって、そんなにないような気がするのです。

スキャンが必要なら、正規表現の re.sub を使えばいいし、
バイナリデータを扱う場合なら ArrayType を使ったほうがずっと効率いいし。
0768688NGNG
そうですねえ。普通は
『"hoge" という文字列を "hage" に置換したい』
という欲求であって
『二文字目を "a" にしたい』
という、やたら直接的な欲求は起こりませんよねえ。

組み込み、システム屋さんには使いづらいだろうけど、
言語の棲み分けという点では上手いことやってるなあ、とちょっと感心。
0769デフォルトの名無しさんNGNG
>>765
http://www.amazon.co.jp/exec/obidos/ASIN/4894714019/250-2830995-5097019
の amazon には「初心者向けだ」というレビューしか無いけれども。
0770デフォルトの名無しさんNGNG
>>769
オレが見たのはこれ
http://www.amazon.com/exec/obidos/tg/detail/-/0201709384/
0771デフォルトの名無しさんNGNG
なるほど。
日本語版は初心者向けで、英語版は初心者向けではない、という事か。

>>770
英語を読める人なら http://www.freenetpages.co.uk/hp/alan.gauld/
で内容を読めるので初心者向けかどうかは自分で判断できると思う。
0772688NGNG
自分がレビューを読んだ限りは英語版も初心者向けに感じましたが。。。

ただ 『説明が足んねぇんだよ、ゴラァ!』 みたいな書き込みがちらほらあったので、
他に初心者向けの良書があるならば、
そちらを読んでみるといいのかもしれませんね。

個人的には Web サイトのチュートリアルを一通り試してみてから
中級者向けの本でも買えばいいかと。

# ぶっちゃけ、これだけドキュメントがあるならば
# 特別買わなくてもいいと思います、ハイ。
0773デフォルトの名無しさんNGNG
きついことをいうかもしれないが、
いくらやさしい本を買っても覚えられない人は覚えられないよ。

プログラミングは (最初のうちは) かなり学校の勉強に
似ていると思う。学校で勉強ができない奴を見ていると、
たいていは参考書の答えを先に見てしまったりして、
自力でしばらくがんばってみる、ということをしない。
あるいは、ちょっとやっただけですぐ飽きてしまう。

しばらく進めばそれはもう苦にはならず、楽しくなってくるのだが、
初めてプログラミングを習ったときから楽しくできました、なんて人は
あまりいないんじゃないかんな。
0774773NGNG
ただし、まれに好奇心のすごくつよい人がいて、
コンピュータのようなものを見たとたんに「どうなってるんだろう」と
引きこまれてしまう人もいるね。こういう人は大して苦労せずに
プログラミングを覚えられると思う。

でも、すでにあるソフトを見て「こんなことがやってみたい!」と思ったり、
プログラマーにあこがれてプログラミングを始める人は、たぶん
現実と想像とのギャップを越えるのにそれなりの努力が必要だろう。
0775デフォルトの名無しさんNGNG
>>773
多分その、

>たいていは参考書の答えを先に見てしまったりして、

を「入門書」に期待する層が多いんだろうね。1001Tips とか。
Perl と JavaScript の本にはその類いが多い気がする。


Python の場合問題なのは、ABCのその次を担う本が(日本では)
ほとんど無い事だと思う。
Tkinter とか pygame とかを使ってGUIツールやゲームを作るのは
日本語の資料だけだと難しいと思うし。
0776デフォルトの名無しさんNGNG
初心者にありがちな感情として、自分の考えているコードはもしかしたら
とんでもなく無駄なことをしているんじゃなかろうか、というのがあるとおもう。
そこで無駄かどうかとか考えずに、いま一番良いと思い付いたことを書き出すこと
が上達への大一歩だとおもう。
0777デフォルトの名無しさんNGNG
>>776がいいこと言った
0778デフォルトの名無しさんNGNG
まずは英語で読めるようになることだな
そのほうが後々捗るようになるし
0779773NGNG
>>778
> まずは英語で読めるようになることだな
> そのほうが後々捗るようになるし

それは真実ではあるが、いささか悲しい。
英語がまったくダメなのはさすがにつらいが、英文を参照するのは
api のリファレンスとインストールマニュアル程度で、
長い説明文のようなものはなるべく日本語で読めるようにすべき。

すべき、って、オレも翻訳やんなきゃいけないわけですが。
0780デフォルトの名無しさんNGNG
中級レベルになると、手取り足取りしてくれる本じゃなくて
その分野の勘所を説明してくれる本こそが必要になるん
だよね。

そこで、その説明に使われているコードが Java であれ
VisualBasic であれそれを Python に置き換えて読める
人は既に上級者なわけで…。

「Pythonを256倍使うための本」とか出てくれるといいん
だけれどね。
0781デフォルトの名無しさんNGNG
そんな人にはrub(ry
0782デフォルトの名無しさんNGNG
むしろ「pythonを0.3倍使うための本」を出してほしい
0783デフォルトの名無しさんNGNG
0.3という数値はどこから?
で、0.3とかいいつつ256倍本より濃い罠。
0784デフォルトの名無しさんNGNG
256倍とかいって鼻息荒くするのはもう発想が古い。
これからは、いかに手をぬくかに主眼をおくべきだという考え。
0.3倍という数字にとくに意味はない。0.24倍でもいいよ。
0785デフォルトの名無しさんNGNG
0.00390625倍で
0786デフォルトの名無しさんNGNG
Pythonを使えばどんな事ができますか?
0787デフォルトの名無しさんNGNG
>>786

何でもできるが、特に目的が無いのであれば、PyGameとか使って、簡単な
ゲームなんかを作ってみてはいかが?
Web系もCGIはもちろん作れるし、なれてきたらZopeなんかを弄ってみるのもいい。
0788786NGNG
>>787
とりあえずPyGame?でパズルゲーム作ってみます。
どうもありがとう。
0789デフォルトの名無しさんNGNG
ブール代数の'!'を使用して図形を加工した後に
'*'や'-'を使いたいのですが、'!'を使ったために、
*-の効果が現れません.どのような方法でやればいいのか
わかる方いましたら、
教えてください。
0790デフォルトの名無しさんNGNG
ゴバキング?
0791デフォルトの名無しさんNGNG
ShadeだかTruespaceだかの話かな?
Pythonつながりで。
0792デフォルトの名無しさんNGNG
>>782-784
むしろ3.14倍にすべき。
0793デフォルトの名無しさんNGNG
なる
0794デフォルトの名無しさんNGNG
ほう、TrueSpaceもPython使えるのか。
0795デフォルトの名無しさんNGNG
人によると思いますが、標準以外のモジュールを使うケースって
結構多いんでしょうか? 配布するアプリを作る場合、いろんな
モジュール使うと相手に負担(手間)がかかりますよね?

あまり配布向きじゃないんでしょうか?
0796デフォルトの名無しさんNGNG
>>789

>>> True
True
>>> int(True)
1
>>> float(True)
1.0
>>>
0797デフォルトの名無しさんNGNG
>>794
trueSpaceのPythonスクリプトは、ちょっと癖があるけど、
特にアニメーション (tの関数) でうまく使うと、非常に良い。
trueSpaceでアニメーションするんであれば、あの Path オブジェクトでは
限界あるので、Pythonをマスターすべしってかんじ。
0798デフォルトの名無しさんNGNG
>>795
Windows あたりだとそもそも Python 自体が入ってないので、
どのみちインストゥールしなくてはならないのは同じ事。
py2exe でまとめちゃえばインストゥールするのは一回で済む
ので標準外のモジュール使っていても関係無し。

Windows 以外なら……モジュール入れるくらいの手間を惜しむ
人間がマイナー環境使っているはずもなし。無問題でしょう。
0799デフォルトの名無しさんNGNG
Shade, TrueSpace, Blender, Metasequoia

他にPythonが組み込んである3D CG制作ツールってあったっけ?
0800デフォルトの名無しさんNGNG
PoserとかVueとかもじゃなかったっけ?
0801デフォルトの名無しさんNGNG
3Dでないが
ttp://opensource.adobe.com/
0802デフォルトの名無しさんNGNG
Illustrator, Photoshop, After Effects もか……
確かPaint Shop Proもだよね。
0803デフォルトの名無しさんNGNG
>>799 CuriousLabs Poser
0804デフォルトの名無しさんNGNG
import _codecs で _codecs モジュール
0805デフォルトの名無しさんNGNG
↑>>804ごめんミスった

import _codecs で _codecs モジュールを取り込めますが,
これはどこで定義されているんでしょうか?
Python の lib ディレクトリ以下を探しても,
このモジュールに対応するファイルは見つかりませんでした.

PYTHON/lib/codecs.py (←これはある) のソースを見ると,
この _codecs モジュールを取り込むように書かれていました
(まぎらわしいな).

一応 print で表示させると,こうなった↓
>>> print _codecs
<module '_codecs' (built-in)>
0806デフォルトの名無しさんNGNG
Pythonのエンジンそのものをハックするのでなければ
只のツールにすぎないのだからそんなに深刻にお勉強しなくてもええよ
漏れはPython使うてカオスのお勉強中;-D
0807デフォルトの名無しさんNGNG
>>805
> 一応 print で表示させると,こうなった↓
> >>> print _codecs
> <module '_codecs' (built-in)>

惜しい
>>> help(_codecs)
0808デフォルトの名無しさんNGNG
built-in(組み込み)モジュール一覧はsys.builtin_module_namesで見れる。
Windowsの場合そういうモジュールはインタプリタ本体と一緒になってるんで、
システムフォルダのpython2x.dllの中に機械語で書いてあるということに。

# 各種Unix類だとどうだかは知らないっす。
0809デフォルトの名無しさんNGNG
なんども出てきた問題だと思いますが、WinとLinuxと(ほかのUNIXも)
クロスプラットフォームな日本語対応GUIアプリをPythonで作る場合の
現実解はPyGTK2でいいでしょうか?

あとWinでは配布が簡単じゃないと困るんですが、やはりPython、Gtk、
PyGTKをそれぞれインストールしてもらってから自分のアプリを入れて
もらう手順はさけられないでしょうか? たとえばpy2exeで全部一緒に
配布とか。
0810デフォルトの名無しさんNGNG
suzukiさんはお元気だろうか?
0811デフォルトの名無しさんNGNG
>>809
散々ガイシュツだが現実解はTkinterかと。いやマジで。
Tkのクセに逆らわないように設計してコーディングすれば
意外なほど簡単にWindowsとUnixの両方できちんと動くGUIアプリが作れる。
何よりもPythonに標準で入っているのが強みだ。
日本語関連はUnicodeに統一すれば特に問題はないと思われ。

むしろクロスプラットフォーム性の難関はGUIよりもファイル入出力
とかユーザ設定の方法とかそういうOSごとの決まりごとがある部分に
ある気がする恭子の頃。
0812デフォルトの名無しさんNGNG
wxPythonじゃダメなの?
0813デフォルトの名無しさんNGNG
インスコめんどくさいじゃん。
0814デフォルトの名無しさんNGNG
cx_Freeze 使って固めればいいんじゃないの?
0815デフォルトの名無しさんNGNG
>>809
まともな Windows ユーザーならば、単にアプリ一つ入れるのに
無関係なライブラリを入れられるのは嫌うはず。なので、

>やはりPython、Gtk、
>PyGTKをそれぞれインストールしてもらってから自分のアプリを入れて
>もらう

なんてのはそもそもナンセンス。

>py2exeで全部一緒に
>配布とか。

というのが現実的ですね。

なのでライブラリに何を使おうが関係無し。
ですから、Linux なり Mac なりの他の環境での対応具合を主にして
決めていいと思う。

Tkinter が枯れていて無難じゃないかな。
0816デフォルトの名無しさんNGNG
Wine の UI 系ライブラリを Python で実装してしまうのもアリかなとオモタ。
つぅか win との互換性を考えるよりも 100% Python OS のプロジェクトをs
0817デフォルトの名無しさんNGNG
Linuix, *BSD系カーネル で init の代わりに Pythonインタプリタ起動(w
でもやっぱりMachとかのマイクロカーネル & Python Serverってのがいいなぁ。
0818688NGNG
pygame 使ってスクリーンセーバー作ってみましたが、
コード量がめちゃくちゃ少なく済むので楽ですね、コレ。
感動しました。

# 呼び出し方法がちと考えものだったので
# MFC で InitPyScr.scr を作成し、
# そこから各スクリプトを呼べるようにしました。
# だる。
0819デフォルトの名無しさんNGNG
もうtupleは要らないような気がしなくもないな。
[[x, y], z] = [[0, 1], 2]
とか普通にできるし。
0820デフォルトの名無しさんNGNG
そうはい神崎。

>>> {}[[]] = 0
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: list objects are unhashable
>>>
0821デフォルトの名無しさんNGNG
そういえばそうだった。この前引っかかったばかりだったのにw
でも、それだけのためにtupleが存在してるのもなぁ。
他にもlistでできないことってあるのかな?
0822デフォルトの名無しさんNGNG
実際問題としてはどちらか一方でも何とかなるだろうな。

じゃあ、なぜタプルとリストの二つがあるかと言えば
概念的に別モノだからだと思われ。

タプルの要素は典型的には互いに異なる「属性」の値だ。
例えば (2004, "September", 10) という三つ組 (3-tuple) は日付を表していて
三つの要素はそれぞれ年、月、日の三つの属性の値だとみなせる。
また、要素が増減するとそれはもう日付ではなくなる。
ここでタプルは不変 (immutable) であるという性質が利いてくる。
つまり、オブジェクトとしての同一性を保ったまま要素数を変えることは
できないので、日付を表し続けることを保証できる、ということだ。

一方、リストの各要素は同じデータ型であることが多い。
例えば ["Guido", "tim_one", "effbot"] は名前の集合 (set) を表している。
名前が増減しても名前の集合であるというオブジェクトの性質は変わらない。
また、リストを扱うプログラムは要素数がいくつであっても動くことが多い
(というかそういう場面でリストをよく使う)。

要するに、タプルはオブジェクトを一定数の値の組で記述するのに使い、
リストは集合を表すのに使うのがキホソということだ。
(無論、他の使い方は不可、ということではないので念のため。)

似て非なるものであるが故に一方を他方で代用せず、二つを別個の
基本データ型として採用したところに Guido の言語設計者としての
センスの良さが表れている。
0823デフォルトの名無しさんNGNG
・・・というようなことを書いていて思ったのだけど、
タプルの不要感は、リストと似ているという点もさることながら、
オブジェクトを記述するという本来の用途がクラスと被っているという点に
起因している希ガス。
0824デフォルトの名無しさんNGNG
だから、いちいちクラスを設計するのが面倒くさい時に便利なのでしょ。
速度はもう完璧に一緒なのかね?
0825デフォルトの名無しさんNGNG
Python初心者なんですが、他言語でいうと

タプル=構造体
リスト=リスト

って認識してますがOKでしょうか?
0826デフォルトの名無しさんNGNG
漏れは
タプル: 個数が一定でそれぞれの型が決まってるもの
リスト: 型は同じだけど個数は不定なもの
ってイメージを持ってる。実際はそんなことはないわけだけど。

Pythonは静的型付けな言語じゃないから
分けてある理由がわかりづらくなってしまってるんじゃないかなぁ。
0827デフォルトの名無しさんNGNG
>>823,824
当初pythonにはclassなんてなかったんだから仕方ないじゃん

・・・あれっ、禁句だった?
0828デフォルトの名無しさんNGNG
あっ、俺様のパッチが2.4a3にコミットされてるー。(´∀`)ワーイ
0829デフォルトの名無しさんNGNG
>>822
リストとタプルの概念的な違いは分かるんだけど、
Pythonのポリシーとしては、むしろ両者を統合したほうが自然な気が。

昔はリストでできることとタプルでできることにかなり差があった
のではないかと邪推してみる。

# 俺もGuidoのセンスの良さは抜群だと思う。
0830デフォルトの名無しさんNGNG
>>828
マジ?日本人でいたんだ、そんな人。
ほんとにおめ。
0831デフォルトの名無しさんNGNG
どうせなら文字列や辞書にも書き換え可なヤツと不可なヤツの両方を
作っておけばタプルとリストの違いなんて発展解消されるよね。

リストと辞書が統合されている言語(キーに整数だけ使うとリストとして
使えるやつ)も多いわけだし。
Python の選択もたまたま中庸を選んだらそこらへんになった、程度の
ものなんだろうな。

個人的には、タプルは () じゃなくて r[] みたくリストに何か前置する形式
にでもして欲しかった。(式をまとめる () と紛らわしいのが嫌)
0832デフォルトの名無しさんNGNG
>>831
> 個人的には、タプルは () じゃなくて r[] みたくリストに何か前置する形式
> にでもして欲しかった。(式をまとめる () と紛らわしいのが嫌)
-1. Shine.
0833デフォルトの名無しさんNGNG
-10
0834デフォルトの名無しさんNGNG
貴殿らは (1,) という式をみて何ぞ感じまするか。
0835デフォルトの名無しさんNGNG
([([(), (), ()], [(), (), ()], [(), (), ()]),([], []),([])], [(), ()], [])
0836デフォルトの名無しさんNGNG
要素がひとつのtuple≒scalarとみなしたかったんじゃないかな?
x, y, z = f()
x, y = g()
x = h()
実際は>>834のような奇妙な結果になってるわけだけど。
0837デフォルトの名無しさんNGNG
パイスぉんを日本語かしよう計画:

#!/客/瓶/燕尾 パイスぉん
輸入だ シス
輸入だ オス

もし 〜〜名前〜〜 == 「〜〜主要〜〜」:
 合計 = 零
 まだしも い 内にある 範囲(十):
  プリントするぜ 合計
  合計 += い
  もし い == 五:
    オス、分岐()
 プリントするぜ 「完了」
0838デフォルトの名無しさんNGNG
>>834
はじめてその表記法を知ったときは奇妙だなぁと思った。
しかし、要素数が1のタプルをコード中に書くことはほとんどなく、
事実上問題にならないということが後から分かってきた。

(1,) という表記法を避けるための方法はいろいろあったんだろうけど
敢えて () を採った Guido のバランス感覚はやはり素晴らしい。

最近はコア開発者が増えて多数決で設計している。
恐らく Guido 的でない表記や仕様もあるのだろう。
だけど最終的にゴーサインを出しているのは Guido だし、
タプルのように一見イマイチな設計でも後から良さが分かることもあるから
まずは実際に使ってみることにしている。
イヤになったら Python 捨てりゃいいんだし。

そーいや list comprehension も最初見たときは分かりにくいと思ったが
使ってみると意外に直観的だったな。もうやられっぱなし。おやじ、超クール。
0839デフォルトの名無しさんNGNG
zope.co.jp に入社したいんだけど?
いづれは関西圏内にも拠点を立てるのだろうからそこにはいりたし。
0840デフォルトの名無しさんNGNG
pcをシャットダウンするモジュールとかあります?
0841デフォルトの名無しさんNGNG
あるよ。いま作った。

# shutdown
def shutdown():
 import os
 os.system("shutdown -h now")
0842デフォルトの名無しさんNGNG
Windowsだと
shutdown -s -f
だから、場合分けが必要だね。
0843デフォルトの名無しさんNGNG
シェルを Python (すでにある)にしてしまってる人にお訊ねしますが
使いにくくないですか?
0844840NGNG
>>842
shutdown -s -f
にしても動かないです・・。

IndentationError: expected an indented block

が三行目に出てきてしまいます・・。何でか不明。
0845デフォルトの名無しさんNGNG
全角スペースを半角スペースに置換汁
0846デフォルトの名無しさんNGNG
つーかここにコード片を貼るときは
行頭の半角スペースを&nbsp;に置換汁。
そーすりゃコピペでそのまま使える。
例:

def f():
    print "spam"
0847844NGNG
半角に気をつけたらエラーメッセージは消えましたが
Python IDLE でもBlenderでも動きません(T_T)
0848デフォルトの名無しさんNGNG
Windows に shutdown てあったっけ?
どのバージョン? >>842
0849847NGNG
win32apiを呼び込む悪寒
0850デフォルトの名無しさんNGNG
Cygwinじゃない? よく知らんけど.
ちなみにNetBSDではshutdown -p nowで電源断.
# pkgsrcで入れたTkinterが動かん!
0851デフォルトの名無しさんNGNG
動かんかったら直してパッチをdevに投げろよ
0852デフォルトの名無しさんNGNG
>>848
XPなら標準である。
NT以降にはなんとかキットで用意されてるはず。

cygwinにもあります。<サスペンドとかできて便利
0853デフォルトの名無しさんNGNG
とりあえず直した.一応Python関係なのでスレ違いではないと信じつつ,
pkgsrc/x11/py-tkのパッチ貼り.
begin 644 -
M+2TM("]U<W(O<&MG<W)C+W@Q,2]P>2U4:R]F:6QE<R]S971U<"YP>2YO<FEG
M:6YA;`E3=6X@4V5P(#$R(#`P.C$W.C$Y(#(P,#0**RLK("]U<W(O<&MG<W)C
M+W@Q,2]P>2U4:R]F:6QE<R]S971U<"YP>0E3=6X@4V5P(#$R(#`P.C$W.C4R
M(#(P,#0*0$`@+3(U+#<@*S(U+#<@0$`*(`D)"6EN8VQU9&5?9&ER<SU;8FQI
M;F-L+"!X,3%I;F-L72P*(`D)"6QI8G)A<GE?9&ER<SU;8FQL:6(L('@Q,6QI
M8ETL"B`)"0ER=6YT:6UE7VQI8G)A<GE?9&ER<SU;=&-L<G1L:6(L('1K<G1L
M:6(L('@Q,7)T;&EB72P*+0D)"6QI8G)A<FEE<SU;)W1K)RP@)W1C;"<L("=8
M,3$G70HK"0D);&EB<F%R:65S/5LG=&LG+"`G=&-L)RP@)U@Q,2<L("=P=&AR
296%D)UT*(`D)*0H@"5T*("D*
`
end
0854デフォルトの名無しさんNGNG
>>853
こんなとこに貼るなよ
0855デフォルトの名無しさんNGNG
line = 'X(0 1 2) Y(3.5 4.5 5.5) Z(-6 -7 -8)'

こんな感じの文字列があった時に

values = [0, 1, 2, 3.5, 4.5, 5.5, -6, -7, -8]

と数値だけを抜き出すにはどうすればいいですか?
0856デフォルトの名無しさんNGNG
>>855
line = 'X(0 1 2) Y(3.5 4.5 5.5) Z(-6 -7 -8)'
a = []
for x in line:
    if x in "0123456789.-":
        a.append(x)
    else:
        a.append(" ")
values = eval("[" + ",".join("".join(a).split()) + "]")
print values
0857856NGNG
正規表現使えば for ループは消せるし、結果が float型に変換されていても
良いのならば eval も消せると思うけれど取っ掛かりとしてはこんなもんかな。
0858デフォルトの名無しさんNGNG
どうも eval は遅くってなあ。

$ time python -c 'len([ int("%s"%i) for i in range(1000000) ])'
real 0m4.992s
user 0m4.320s
sys 0m0.660s

$ time python -c 'len([ float("%s"%i) for i in range(1000000) ])'
real 0m6.175s
user 0m4.520s
sys 0m0.700s

$ time python -c 'len([ eval("%s"%i) for i in range(1000000) ])'
real 0m38.140s
user 0m34.200s
sys 0m1.150s
0859デフォルトの名無しさんNGNG
>>858
855 の

>line = 'X(0 1 2) Y(3.5 4.5 5.5) Z(-6 -7 -8)'
>こんな感じの文字列があった時に
>values = [0, 1, 2, 3.5, 4.5, 5.5, -6, -7, -8]

に拘るならば、小数点が入っていたら float() 入っていなかったら int() とするコードを加えればいいかと。

もっとも実際の所、 int が float になってしまって困る事は少ないと思うけれど。
0860デフォルトの名無しさんNGNG
こんなのは?

def conv1(s):
  try:
   return int(s)
  except ValueError:
   return float(s)

これとどっちが速いかね。めんどくさくてまだ試してないけど。

def conv1(s):
  if "." in s:
   return float(s)
  else:
   return int(s)
0861デフォルトの名無しさんNGNG
ご批判は承知であえてワンライナーにしてみました.
>>> line = 'X(0 1 2) Y(3.5 4.5 5.5) Z(-6 -7 -8)'
>>> import re
>>> map(lambda x: int(x[0])+(not len(x[1]) or float(x[1]) or 0), re.findall('(\d
+)(\.\d+)?', line))
[1, 2, 3, 3.5, 4.5, 5.5, 7, 8, 9]
0862デフォルトの名無しさんNGNG
間違えた...
>>> map(lambda x: int(x[0])+(float('0'+x[1]) or 0), re.findall('([-]?\d+)(\.\d+)
?', line))
[0, 1, 2, 3.5, 4.5, 5.5, -6, -7, -8]
>>>
0863デフォルトの名無しさんNGNG
そんなあなたに内包表記.
>>> [ int(x[0])+(float('0'+x[1]) or 0) for x in re.findall('([-]?\d+)(\.\d+)?', line) ]
それにしても,よくこんなの思い付くなぁ.凄い.
0864デフォルトの名無しさんNGNG
>>856-863
ありがとうございます。
最後の方はすごすぎて理解するのに時間がかかりました・・・
0865デフォルトの名無しさんNGNG
>>855-863
+1
0866デフォルトの名無しさんNGNG
[ ("." in x) and float(x) or int(x) for x in re.findall('(-?[0-9.]+)', line) ]
割とシンプルにいける.
0867862NGNG
>>866
+リスペクト!
0868デフォルトの名無しさんNGNG
お前らは ruby 使ってろ。
0869デフォルトの名無しさんNGNG
先生っ!!
Python のソースコードを見て勃起しそうですっ!!
0870デフォルトの名無しさんNGNG
>>869
レッドスネーク・カモン!
0871デフォルトの名無しさんNGNG
先生っ!!
漏れのは一応硬いですっ!!
0872デフォルトの名無しさんNGNG
そんなにヘビを硬くしてちゃダメだ!もっとその、頭をつかってだな、
自分のヘビを〜柔軟に〜扱えなきゃいかんよ!
0873デフォルトの名無しさんNGNG
>>866のコードはfloat(x) == 0.0のときおかしくなるな.
やはりlambdaや内包表記で条件分岐ができないのは辛い….
0. Cの三項演算子を導入
1. lambda内で文の記述を認める
2. 0 == Falseとなる仕様を変える
うーん.どれも望めそうにない.

とりあえず別解↓
map(eval, re.findall('(-?[0-9.]+)', line))
0874デフォルトの名無しさんNGNG
>>873
>やはりlambdaや内包表記で条件分岐ができないのは辛い….

というか、それこそが正に Guido の狙いなんだろうね。

どうせなら lambda なんかも ver.3 あたりで廃止すればいいと思うけれど。
0875デフォルトの名無しさんNGNG
> どうせなら lambda なんかも ver.3 あたりで廃止すればいいと思うけれど。
どうやら本当にその気らしい。
PEP-3000 -- Core language -- To be removed
ttp://python.org/peps/pep-3000.html
0876デフォルトの名無しさんNGNG
>>874, >>875
勘弁してください
0877デフォルトの名無しさんNGNG
>>876
君はもうそろそろ Python を卒業して scheme を極めるべきなんだよ。















…Ruby とかの半端言語に走っちゃ駄目だよ。
0878デフォルトの名無しさんNGNG
>>875
おぉー
ところで各 PEP の到達可能性ってのは議論のネタになりそうですか?
スコープを技術だけのアスペクトで考えるの.てかオナニーは非公開にしてく
れですか・・・あぁそうですか・・・

>>877
Ruby の中の人は LM の記事を読む限りにおいては真性だから Ruby は眼中に
ないよw てか異様に Python を敵視してんのw 哀れというか何というかw
まぁスケープゴート的にオモロイ存在ではあるがマジで拘りたくはないな
0879デフォルトの名無しさんNGNG
>>877
いや,SchemeからPythonに乗り換えたんだけど….
そういう人,けっこう多いと思う.
やっぱり適度な糖衣構文はあった方が見やすいし書きやすい.
Pythonはセンスよしバランスよしの構文で,俺のハートをガッチリ掴んだ.
Guidoがlambdaを廃止するというのなら,きっとそれは正しい方向なんだろうけど,
個人的には激しくショーーーック.
0880デフォルトの名無しさんNGNG
>>866を改良して小数点以下を分けてみるというのはどうだろうか。

[[int(x), float(x+y)][y and 1 or 0] for x, y in re.findall('(-?\d+)(\.\d+)?', line)]
0881デフォルトの名無しさんNGNG
>>880
if cond then x else y
は
[y, x][cond]
と書けるのか.スバラシイ.(常にx, yとも評価されてしまうけど)
[int(x), float(x)]["." in x]
と書けないのは残念.
0882デフォルトの名無しさんNGNG
つーか、float 決め打ちじゃ駄目なのか?

そもそも e 表記が入る可能性や、整数型の範囲を超えて長整数型
が来る可能性は考慮しなくていいのだろうか。
0883デフォルトの名無しさんNGNG
>>882
いや,みんな(といっても2〜3人っぽいけどw)パズル的に楽しんでるだけだから.
ちなみに,e表記や長整数もOKなコードは>>873(俺です)の
map(eval, re.findall('(-?[0-9.]+)', line))
とか.
0884デフォルトの名無しさんNGNG
普段はこんな abuse しないから楽しいな。
0885デフォルトの名無しさんNGNG
> [int(x), float(x)]["." in x]
代わりに
{True: float(x), False: int(x)}['.' in x]
でどうよ
0886デフォルトの名無しさんNGNG
http://www.python.jp/Zope/download/pythonjpdist
↑ここのSJIS対応版をインストールしました。

test.pyというファイルネームで、

print "あいうえお"

というソースを作って、

python test.py

で実行すると、警告がでます。
どうすれば消せますか?

sys:1: DeprecationWarning: Non-ASCII character '\x82' in file test.py on line 1,
0887デフォルトの名無しさんNGNG
>>886
ttp://www.python.jp/pub/doc_jp/ref/encodings.html

日本語対応版だとこの<encoding-name>に日本語のものが使えるので、
たとえばWindows環境なら

# -*- coding: cp932 -*-
print "あいうえお"

とできます。
0888デフォルトの名無しさんNGNG
>>887
解決しました。
0889デフォルトの名無しさんNGNG
>>885
やってみれば判るけど,問題点は「float(x)とint(x)が両方評価されてしまう」ことなので,
残念ながらそれでは解決しない.
[lambda : int(x), lambda : float(x)]['.' in x]()
と遅延評価っぽいことをすれば一応解決するが….
0890デフォルトの名無しさんNGNG
なんだみんな手抜きばっかりでしょうがねえな
クソまじめにトーカナイザから実装するやついねえのか

import re
TOKEN_REGEX = re.compile(ur"[0-9]*\.[0-9]+|[0-9]+|[a-zA-Z_][a-zA-Z0-9_]|[()]|\s")
T_FLOAT = 1
T_INT = 2
T_IDENT = 3
T_PAREN_BEGIN = 4
T_PAREN_END = 5
class TokenizationError(ValueError): pass
def tokenize(s):
 while True:
  if not s[i:]: break
  m = TOKEN_REGEX.match(s, i)
  if not m:
   raise TokenizationError("Illegal character: %s at %d", (s[i:i+1], i))
  t = m.group(0)
  if t == "(":
   yield (T_PAREN_BEGIN, None)
  elif t == ")":
   yield (T_PAREN_END, None)
  elif t.isdigit():
   yield (T_INT, int(t))
  elif "." in t:
   yield (T_FLOAT, float(t))
  elif t[0].isalpha():
   yield (T_IDENT, t)
  else:
   assert t.isspace(), "Impossible! t=%r" % t
 return
0891デフォルトの名無しさんNGNG
キターーーー!
0892デフォルトの名無しさんNGNG
ゴメソ
テストせずに書き込んだらやっぱりバグありだった..

import re
TOKEN_REGEX = re.compile(ur"[0-9]*\.[0-9]+|[0-9]+|[a-zA-Z_][a-zA-Z0-9_]+|[()]|\s")
(T_NONE, T_FLOAT, T_INT, T_IDENT, T_PAREN_BEGIN, T_PAREN_END) = range(6)
class TokenizationError(ValueError): pass

def tokenize(s):
 i = 0
 while True:
  if not s[i:]: break
  m = TOKEN_REGEX.match(s, i)
  if not m:
   raise TokenizationError("Illegal character: %s at %d" % (s[i:i+1], i))
  t = m.group(0)
  if t == "(":
   yield (T_PAREN_BEGIN, None)
  elif t == ")":
   yield (T_PAREN_END, None)
  elif t.isdigit():
   yield (T_INT, int(t))
  elif "." in t:
   yield (T_FLOAT, float(t))
  elif t[0].isalpha():
   yield (T_IDENT, t)
  else:
   assert t.isspace(), "Impossible! t=%r" % t
  i+=len(t)
 return
0893デフォルトの名無しさんNGNG
長すぎるといわれたので 2回にわける。

class ParsingError(ValueError): pass

TOKEN_NAME = {
T_NONE:"?", T_FLOAT:"float", T_INT:"integer", T_IDENT:"identifier",
T_PAREN_BEGIN:"'('", T_PAREN_END:"')'"
}

def parse(tokens):
vars = {}
name = None
args = []
try:
while True:
(t,arg1) = tokens.next()
if t != T_IDENT:
raise ParsingError("Identifier expected: got %s: %r" % (TOKEN_NAME(t), arg1))
name = arg1
(t,arg1) = tokens.next()
if t != T_PAREN_BEGIN:
raise ParsingError("Open-parenthesis expected: got %s: %r" % (TOKEN_NAME(t), arg1))
args = []
while True:

(つづく)
0894デフォルトの名無しさんNGNG
>>893
(t,arg1) = tokens.next()
if t != T_INT and t != T_FLOAT: break
args.append(arg1)
if t != T_PAREN_END:
raise ParsingError("Close-parenthesis expected: got %s: %r" % (TOKEN_NAME(t), arg1))
yield (name, args)
name = None
args = []
except StopIteration:
if name or args:
raise ParsingError("Premature end of file.")
return

使い方はこんなかんじ:
>>> list(parse(tokenize("X(3 4 5) Y(8) Z()")))
[('X', [3, 4, 5]), ('Y', [8]), ('Z', [])]

ちなみに >>890 のコードにもバグあった。TOKEN_REGEX は正しくはこうだ:
TOKEN_REGEX = re.compile(ur"[0-9]*\.[0-9]+|[0-9]+|[a-zA-Z_][a-zA-Z0-9_]*|[()]|\s")
こうしないと 1文字の変数名がエラーになってしまう。
0895デフォルトの名無しさんNGNG
> ちなみに >>890 のコードにもバグあった。TOKEN_REGEX は正しくはこうだ:

失礼… >>891 のコードのことね。
もう頭ボケててだめだな。
それじゃ。
0896デフォルトの名無しさんNGNG
しまったああ! エラー処理がアホってるよ。
TOKEN_NAME(t) じゃなくて TOKEN_NAME.get(t) だ。
くそー
0897デフォルトの名無しさんNGNG
ああ、そういえば空白を &nbsp; にすんの忘れてた。まあいいや。
どうしても見たい人はソース見てくれ。

navi2ch で行頭のスペースを全部 &nbsp;にするような
フックかけんのかなー
0898デフォルトの名無しさんNGNG
Aho のドラゴン本を地で行くコードだね。(・∀・) イイ!
字句解析器と構文解析器の手書きは楽しいよねえ。
文法に合致したあらゆる式がものの見事に構文木に分解される様は何度見ても感心する。
あーまた何か処理系が書きたくなってきたなー。
0899デフォルトの名無しさんNGNG
正規表現エンジンを Python で再構築する会
0900デフォルトの名無しさんNGNG
100% poor Python!
0901デフォルトの名無しさんNGNG
>>899
すでにやった。
欲しけりゃあげるよ。
0902デフォルトの名無しさんNGNG
>>901
対C実装比でどのくらいの速度出た?
0903デフォルトの名無しさんNGNG
sre*.pyはPure Pythonですが。
0904デフォルトの名無しさんNGNG
Python 3.x で S 式を実装する.マヂで.漏れは本気だよ
0905デフォルトの名無しさんNGNG
「S式を実装する」の意味がよく分からん.
S式パーサを作るって意味? それともSchemeインタプリタでも作るつもり?
0906デフォルトの名無しさんNGNG
>>904
別に 3.x まで待たなくても、与えられたリストやタプルをS式として解釈して
評価して値を返してくれる 「scheme モジュール」 でも作って公開すれば
いいんじゃない?

lambda 廃止で行き場を無くした lisper 達がこぞって使うかもしれないし。
0907デフォルトの名無しさんNGNG
いや、目的は唯一つ。Python 自らの言語を用いて
Python 言語そのものを実装する。これが最後のラッパーになると思う。
他の主要なものはラップ済み。Python だけ知っていれば C の資源も Perl の
資源も利用可能。これ以上素晴しい言語はないだろう。
0908デフォルトの名無しさんNGNG
アフォと天才は紙一重。
アフォはアフォなことを言い、天才は凡人にはアフォなこととうつることを言う。
0909デフォルトの名無しさんNGNG
アァアフォデスヨ('A`)キニシナイケドナ
0910デフォルトの名無しさんNGNG
sreはCで書かれている部分もあるよ.
0911デフォルトの名無しさんNGNG
いっそ構文もS式にして欲しいな。
意味のあるインデントは嫌いなんで...
0912901NGNG
>>902
比較してない。そもそも検索対象が文字列じゃないんで、
既存のライブラリは使えなかった。それが自作した理由だ。
が、generators とかバックトラック使いまくってるんで
とにかく遅いだろうな。速度はそんなに気にしないのよ。
0913901NGNG
python3.x って python 3000 のこと?
0914デフォルトの名無しさんNGNG
>>913
http://www.sourcekeg.co.uk/www.python.org/peps/pep-3000.html
ぐぐれよ。
0915デフォルトの名無しさんNGNG
>>911
それはもはやPythonじゃないだろ….
0916デフォルトの名無しさんNGNG
>>911
そんな貴方に scheme
0917デフォルトの名無しさんNGNG
S式がいいとかいってる奴がなんで Python 使ってんのかさっぱりわかんない。
さっさと scheme に行けばいいのに。
誰も止めないよ
0918デフォルトの名無しさんNGNG
lisp front-end for the Python programming language
www.caddr.com/code/lython/

既出だったらスマソ.S 式諸兄,使用感レポよろ
0919デフォルトの名無しさんNGNG
Zope と Apache を同じ鯖で同時に立てても問題ないですか?
0920デフォルトの名無しさんNGNG
>>919
問題ないよ。設定をちゃんとしてね。
0921デフォルトの名無しさんNGNG
「ニシキヘビは重要な部分でした、始め以来グーグリになる、またシステムが
成長し発展するとともに、そのように残ります。今日、ダース、グーグリにな
る、エンジニアはピュートーンを使用します、また、私たちはこの言語におけ
る熟練を持ったより多くの人々を捜しています。」ピーターNorvig(Google社
の探索品質の管理者)は言いました。
0922デフォルトの名無しさんNGNG
"Python は初め以来のGoogle の重要な部分であり、残物はためにシステム育
ち、展開する。今日Google たくさんのエンジニアはこのlanguage." で
Python および技術のより多くの人々を捜すwe're を使用する; 、前述のピー
ターNorvig Google の調査の質、株式会社のディレクター。
0923デフォルトの名無しさんNGNG
ニシキヘビ・バージョン
ニシキヘビ 2.3 (医者)
ニシキヘビ 2.2 (医者)
0924デフォルトの名無しさんNGNG
>>921-923
いやー面白い面白い すごいすごい
0925デフォルトの名無しさんNGNG
よし、スパゲティコードで proof of concept 完了! RAD 言語の真髄だなー。




・・・・動いたからもういいや。ちゃんと仕上げるの マンドクセ ('A`)
0926デフォルトの名無しさんNGNG
from wxPython.ogl import *

wxOGLInitialize()

と書くだけで落ちてしまうのですがどうしてでしょうか。

環境:
Windows2000/Python 2.3/wxPython 2.5
0927デフォルトの名無しさんNGNG
idle(Python GUI)からwxPythonを使うとうまくいかないと聞いたことがあるような・・・
関係なかったらスマソです。
0928デフォルトの名無しさんNGNG
wx._core.PyNoAppError: The wx.App object must be created first!

というエラーが出ていませんか?
0929デフォルトの名無しさんNGNG
>>928
それでそのエラー表示にしたがってもダメだったの?

ttp://www.google.com/search?lr=lang_ja&ie=sjis&q=wxPython
で適当なサンプルコードを見つけて、自分のコードとくらべてみよう。
0930デフォルトの名無しさんNGNG
>>928 は>>926 じゃないですよ...
0931デフォルトの名無しさんNGNG
http://www.python.jp/Zope/
のどこをクリックすれば
http://www.python.jp/pub/doc_jp/
に飛べますか?
0932デフォルトの名無しさんNGNG
>>931
右の方にある、

 初めての方へ:
 >>>オンラインドキュメント

を選び、それから

 ・ドキュメント (最新版: 2.3.3)

の「2.3.3」というバージョン番号をクリック。
0933デフォルトの名無しさんNGNG
>>932
御丁寧にありがとうございます。

0934デフォルトの名無しさんNGNG
そんなところにあったのか!
メニューは左側にまとめてくれるとうれしいな
0935デフォルトの名無しさんNGNG
>934
mlで言え
0936デフォルトの名無しさんNGNG
Zope Japan の日々の活動の詳細報告を求む
0937デフォルトの名無しさんNGNG
Zopeスレで聞け
0938デフォルトの名無しさんNGNG
[Python-ml-jp 3027]
> 数日中にPython 2.3.4 SJIS版インストーラ(***日本語ドキュメント付き***)を
> リリースできると思いますので、お楽しみに。

ヨロコベ!
0939デフォルトの名無しさんNGNG
2.4からはCJKコーデックが入る見ただけど、いまSJIS版Pythonのメリットって何があるの?
0940デフォルトの名無しさんNGNG
メリットが無いと思う人には無いんじゃないか?
0941デフォルトの名無しさんNGNG
ボチボチ新スレ。
0942デフォルトの名無しさんNGNG
>>938
もう CJKPython に乗りかえちゃった。

これだと IDLE の Default Source Encoding を UTF-8 にしてもまともに動作するな。
JUG の日本語化版だと None 以外は誤動作したのに。
0943デフォルトの名無しさんNGNG
> ボチボチ新スレ。
既存スレに移動しる。

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

1からPythonを学ぶスレ
http://pc5.2ch.net/test/read.cgi/tech/1061640768/
0944デフォルトの名無しさんNGNG
そうだな。
スレ乱立イクナイ!
0945デフォルトの名無しさんNGNG

    ∩___∩           |
    | ノ\   ,_ ヽ      |   ……………
   /  ●゛  ● |         |
   | ∪  ( _●_) ミ       (=) >>943 = 944
  彡、   |∪|   |       J
 /     ∩ノ ⊃  ヽ
 (  \ / _ノ |  |
  \  "  /  | |
   \ / ̄ ̄ ̄ /
      ̄ ̄ ̄ ̄
0946デフォルトの名無しさんNGNG
■■■10月発行予定書籍■■■
ISBN4-87311-210-9
初めてのPython 第2版

http://www.oreilly.co.jp/catalog/soon.shtml
0947デフォルトの名無しさんNGNG
>>946
マジかよ。この間、初めてのPython買っちゃたよ。
0948デフォルトの名無しさんNGNG
> 初めてのPython 第2版

なんかミョーなタイトルだなぁ。初体験(実は2回目)みたいな。
0949デフォルトの名無しさんNGNG
>>948
経験豊富な執筆者が、初体験の読者に手ほどきするのだから、問題ない。
0950デフォルトの名無しさんNGNG
Cookbook の日本語版ってあるんだっけ?
0951デフォルトの名無しさんNGNG
Pythonも三項演算子導入してくれ
0952デフォルトの名無しさんNGNG
イラネ
0953デフォルトの名無しさんNGNG
>>946
本家のお医者さんに飛べばそんなのイラネ
0954デフォルトの名無しさんNGNG
三項演算子がないおかげでせっかくのラムダが台無しだよ。頼むよ。
0955デフォルトの名無しさんNGNG
pythonの案件が増えるといいですね。
0956デフォルトの名無しさんNGNG
>>955
・google に入社する
・Zope Japan に入社する
・
0957デフォルトの名無しさんNGNG
表には見えない保守やバッチ用のツールには
結構Pythonをつかってるけどな。

スクリプト言語では保守性いいし
・言語習得が容易
・ソースの見通しがよい
・例外が使える
など
0958デフォルトの名無しさんNGNG
>>954
and や or でどうぞ
0959デフォルトの名無しさんNGNG
>>954
ラムダは廃止される予定です。

>>956
NASA に入社する
0960デフォルトの名無しさんNGNG
>>958
A ? B : C
と
A and B or C
じゃ、B が空のとき違うじゃん。
0961デフォルトの名無しさんNGNG
{True: lambda: B, False: lambda: C}[bool(A)]()

ここまでしても python 使いたければどうぞ
0962デフォルトの名無しさんNGNG
あまり甘やかすと、次は代入演算子が欲しいって言い出すぞ。
0963デフォルトの名無しさんNGNG
>>962
???

a+=b

これのことか?
0964デフォルトの名無しさんNGNG
if (a=f(b)) is None: のよーな書き方のできる
塩山市のことだと思われ。
0965デフォルトの名無しさんNGNG
(B,C)[A]
0966デフォルトの名無しさんNGNG
>>965
おお。
0967デフォルトの名無しさんNGNG
>>965

>>> ([0], range(100000000000))[0]
Traceback (most recent call last):
File "<stdin>", line 1, in ?
MemoryError
>>>
0968デフォルトの名無しさんNGNG
>>964

if (locals().update({'a':f(b)}),a)[1] is None:

ここまでしても python 使いたければどうぞ
0969デフォルトの名無しさんNGNG
a=(input"あなたの名前? ")
print a
こんなプログラムで、文字列を入れるとエラーになります
調べてみると、inputでは数字しか入力できないみたいです
文字列を入力できるinput文ってないんでしょうか
' 'でくくると一応入力はできますが
0970デフォルトの名無しさんNGNG
>>968
Pythonを相当使い込んでるね….
lambdaの制約にイライラしながらもPythonを使う姿が目に見えるようだ.
0971デフォルトの名無しさんNGNG
>>969
input()の代わりにraw_input()を使います。

詳しくはインタラクティブモードで
>>> help(raw_input)
0972969NGNG
>>971
できました
ありがとう
0973970NGNG
>>970
> Pythonを相当使い込んでるね….
> lambdaの制約にイライラしながらもPythonを使う姿が目に見えるようだ.

残念ながらイライラしてないのだ。ぼくは lambda いらない派だからね。
あんなものを書くくらいなら最初からちゃんと関数内関数を書くよ。
0974デフォルトの名無しさんNGNG
<Vodafone 702NK [Nokia6630](ノキア製)の概要>
ttp://www.vodafone.jp/japanese/release_detail/20040922/V702NK.html

 いよいよ日本発売が決まったpythonも動く(らしい)携帯ですが、
開発には年会費(税込40万円)の Forum Nokia PROディベロッパー
プログラム

ttp://www.nokia.co.jp/company/release_040519.html

に参加しないといけないとか。特定フォルダの読み書きのみ
サポートでもいいので、一般ユーザーにもランタイムを公開
してくれないもんですかね。
0975デフォルトの名無しさんNGNG
>>974
BREWもそうだが、携帯業界は勝手アプリ撲滅の方向のようで、至極残念。
0976デフォルトの名無しさんNGNG
>>973
うーん.そうなんだ.
関数内関数はコードを読むときに流れが阻害されそうで,ちょっとためらうんだよな.
map(lambda ...
となっていれば,事前にmapすることを知ってからlambdaの内容を読むことになるけど,
def func():
  ...
map(func, ...
となっていると,funcが何に使われるか分からないままfuncのコードを読むことになる.
まぁ実際にはそんなに違わないかも知れないけど,気分的にね.
0977デフォルトの名無しさんNGNG
>>975
>BREWもそうだが、携帯業界は勝手アプリ撲滅の方向のようで、至極残念。

 業界サイドからみると、勝手アプリ増やしても利益にならん、と
いうことなのかな。それにしても個人には40万は高すぎ。
Forum Nokia AMATURE ディベロッパー プログラム ってので4万位
でなんとかならんか? あるいは言語別とか。それとも windows
mobile phone に期待するか。
0978970NGNG
>>976
> funcが何に使われるか分からないままfuncのコードを読むことになる.

それは普通の関数定義でもそうだと思うがね。
たしかに関数内関数は lambda ほどには map との関係が強く示せない。
ぼくは map などのイテレータに使う関数は、名前を「なんとか1」とすることで
単一のアイテムに適用されることを示すようにしている。
conv1 とか、 disp1 とかね。
そもそもぼくはもう map も使わずに内包表現なんだけど。

あと、これは map と関係ないが、ぼくは再帰をよく使うので、
そういうときだと関数に名前をつけられない lambda は使いにくい。
たとえばこんなのだな:

def disptree(treeobj):
  def disp1(node1):
    print node1.name
    for c in node1.children:
      disp1(c)
  disp1(treeobj.root)
  return
0979デフォルトの名無しさんNGNG
OOPにすればいいと思うよ
0980デフォルトの名無しさんNGNG
>>978
なるほど.関数名に軽い規則を作っておくのは悪くないね.
ぶっちゃけ関数内関数を使いたくない一番の理由は,名前をつけるのが
面倒臭いからだったりw
再帰するときだけ関数内関数にするのも,考えてみれば格好悪いかも.

# でもやっぱり三項演算子は欲しい….
0981デフォルトの名無しさんNGNG
ttp://www.happypenguin.org/images/demonpit.png
アスキーキャラクタでこういう画面を作りたいのですが
(べつにゲームじゃなくてもいいのだけど)
キャラクタを画面の好きな位置に表示する命令はないのですか?
昔のBASICでいうLOCATE x,y や CURSOR x,y 、画面をクリアするCLSなどです。
0982デフォルトの名無しさんNGNG
>>981
curse を使うとか?
0983デフォルトの名無しさんNGNG
なんつーか、Pythonって凄いね。hackerから初心者まで。
最初の言語としてPythonに触れる人は幸せだなぁ。
0984デフォルトの名無しさんNGNG
>>983
ttp://www.linuxjournal.com/article.php?sid=3882
これ?
0985デフォルトの名無しさんNGNG
>>983
手に職を付ける目的の人が JAVA とか VB.NET とかに走るのは仕方がない
けれど、学校教育で JAVA とか使うのは何の悪意があっての事かと思うね。

Python じゃないとしても Squark とか、JAVA 以前に既にあるまともなOOPは
いくらでもあるというのに、なんで半端で理不尽な代物をわざわざ選ぶのか。

JVM使うにしても言霊 http://www.crew.sfc.keio.ac.jp/projects/kotodama/
あたりに走るならまだ理解出来るのだけれど。
0986981NGNG
>>982
curseで調べましたが、書いてあるとしたらこのへんでしょうか。
ttp://www.python.jp/pub/doc_jp/lib/curses-window-objects.html
0987デフォルトの名無しさんNGNG
>>984
いや、981さんみたいな初心者(ごめん。悪意はないんだ)から
新山さんみたいなhackerまで、いろんな人が使ってるんだなーって。
0988デフォルトの名無しさんNGNG
手に職をつける目的で学校でJavaを教えるんじゃないのか。
OOもC++とJavaくらいしかまともな参考書無いじゃん。
Python使ったOOの解説書とかあんの?
0989デフォルトの名無しさんNGNG
>>986
余計なお世話だけどcurseじゃなくてcursesなので念のため。
0990デフォルトの名無しさんNGNG
>>988
read docs
0991デフォルトの名無しさんNGNG
>>990
行間嫁。
0992デフォルトの名無しさんNGNG
>>991
このスレッドの纏め

http://www.python.org/

の全てのサイトを全て読め!

そして完全に理解しろ!

常に source code を hack しろ!
0993デフォルトの名無しさんNGNG
Windows に curses ってあるの?
あるとしても DOS窓の上では遅いような気がする。
結局 Tkinter のキャンバスを使うのが楽なような。
0994デフォルトの名無しさんNGNG
>>981
import curses
scr = curses.initscr() # 初期化
scr.addstr(y, x, str) # (y, x)にstrを書き込み
scr.refresh() # 画面更新
とりあえずこれだけ覚えとけばOK.

>>993
on cygwin ならあるけど,ネイティブのはどうなのかな.
0995デフォルトの名無しさんNGNG
>>992
クダラン
0996981NGNG
>>994
cursesというモジュールがないというエラーがでます。
どこからか拾ってこないとだめなわけですね。
昔のBASICで簡単にできたことが意外と難しくて
初心者がそこまで手を出すのはまだ早かったような気がします。
0997デフォルトの名無しさんNGNG
オブジェクトが持ってるメソッドやプロパティの一覧を見るようなことは
可能でしょうか。Pythonの対話シェルで作業してる時に見れると便利なんですが・・・。
例えば、tclshでは存在しないサブコマンド(メソッドみたいなもの)を書くと、
そのコマンドの持ってるサブコマンド一覧が出てこの中から選べと言われたり、
引数が違ってたら例文が出たりするんですが、このような入力補助(?)みたいな
事ができればと思ってます。よろしくおねがいします。
0998デフォルトの名無しさんNGNG
dir(obj) # 一覧のみ
help(obj) # 一覧と説明文など
0999デフォルトの名無しさんNGNG
>>998
おおまさしくこれです。ありがとうございます。
1000デフォルトの名無しさんNGNG
Pythonのお勉強 Part6
http://pc5.2ch.net/test/read.cgi/tech/1095684242/
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。