1からPythonを学ぶスレ
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNG0002デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1053955472/
0003名無しさん@初心者
NGNG>>> while a < b:
・・・ print a,
・・・ a = a + 1
・・・
0 1 2 3 4 5 6 7 8 9 ダァ〜!!
>>>数え杉。
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNGそんなわからんものが使えてもうれしくない
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNGますますわからん
それはえっちなものなのか?
0012デフォルトの名無しさん
NGNG学校の情報系の先生が皆python狂なんだど
皆、敗北者だったのか
0013名無しさん@Emacs
NGNGPython は見やすい構文と、使えるライブラリ、とっつきやすいインタプリタが売り物。
これは個人的な感想だけど、Perl がワンライナーのような
「一発ネタ」に向いているのに対して、
Python はどちらかというとじっくり考えて組むようなプログラムに向いてると思う。
(ソースがきれいだし複雑なデータ構造が扱えるから。)
プロトタイプ作成とか、グルー言語 (C で書かれたモジュールをつなぎ合わせる)
として使う人もいる。構文が簡単なため、入門用言語としてすすめる人もいる。
欧米ではかなりの人気だが、日本では
Ruby のほうが相対的に有名なため、Python はマイナーだと思われている。
0014デフォルトの名無しさん
NGNG重複スレの削除依頼はまだか?
0015名無しさん@Emacs
NGNG0016デフォルトの名無しさん
NGNG0017名無しさん
NGNG学べや!
0018デフォルトの名無しさん
NGNGguidoマンセー
0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNG. : : : : : : `゙'ヽ、:::゙ヾ´::::::::::::::::::::::`゙゙゙'''‐'、. l|
、、 . : : : : : : : : r'":::::::::::::::::::::::::,r':ぃ::::ヽ::::::::ヽ! ,、- 、
.ヽ:゙ヽ; : : : : : :ノ:::::::::::::::::::::;;、-、、゙::: rー-:'、 / }¬、
. \::゙、: : : :./::::::::::::::;、-''":::::::::: ,...,:::,::., :::':、 _,,/,, ,、.,/ }
ヽ:ヽ、 /::::::::::::::::::::::::: _ `゙''‐''" __,,',,,,___ /~ ヾ::::ツ,、-/
`ヽ、:::::::::;;;、、--‐‐'''''',,iニ- _| 、-l、,},,  ̄""'''¬-, ' ''‐-、 .,ノ'゙,i';;;;ツ
_,,,、-‐l'''"´:::::::' ,、-'" ,.X,_,,、-v'"''゙''yr-ヽ / ゙゙'ヽ、, ,.' j゙,,, ´ 7
,、-''" .l:::::::::::;、-''" ,.-' ゙、""ヾ'r-;;:l 冫、 ヽ、 / __,,.ノ:::::ヽ. /
l;、-'゙: ,/ ゞ=‐'"~゙゙') ./. \ / '''"/::::;:::;r-''‐ヽ
,、‐゙ ヽ:::::..,.r'゙ ,,. ,r/ ./ ヽ. ,' '、ノ''" ノ
,、‐'゙ ン;"::::::. "´ '゙ ´ / ゙、 ,' /
0021デフォルトの名無しさん
NGNG00221
NGNG0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG私はScheme使ったこと無いのでえらいこと言えないが、
ttp://cruel.org/freeware/hacker.html
の IVの1を読んでみることをお勧めする。
0026デフォルトの名無しさん
NGNG肝心のインデントが消えちゃってるぞ
0027デフォルトの名無しさん
NGNGPerl以外
0028デフォルトの名無しさん
NGNGSchemeでゲームやパズルを解くとかAI的な方面で勉強したらどうでしょ
0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNGそれは、 Monty Python の映画、 Meaning of Life ('83) における
素晴らしいミュージカル風のシーンで歌われた歌の一節でしたっけ
0032デフォルトの名無しさん
NGNG邪路に訴えますよ。
0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNGPython Tutorial(日本語版)
http://www.python.jp/pub/doc_jp/tut_2.3/
0039デフォルトの名無しさん
NGNGインスタント・ハッキング
http://www.python.jp/Zope/intro/instant_hacking_jp
ちなみに上の二つは非プログラマ向けの文書の筆頭に挙げられている。
http://www.python.org/topics/learn/non-prog.html
0040デフォルトの名無しさん
NGNG00411 ◆x0qRLOoQFY
NGNGもうね
赤裸々に答えますよ
気合入れて質問ください
0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNG>ファイル名操作
> [...] Windows環境では問題が発生します。Windowsではパス区切り文字が"\"で、
>全角文字の2バイト目が "\" に当たる場合があるためです。
Python2.3 + WinXP なのだけど、これはちょっと改善されているみたいで、
os.getcwdu() -> unicode が追加されています。
>>> import os
>>> os.chdir(unicode('/表\')) #Shift_JISで'\'を含む文字をリテラルで書くためのよくあるクラッジ
>>> os.getcwd() #伝統的getcwdで、string型を返す
'C:\\\x95\\'
>>> os.getcwdu() #これは新機能で、unicode型を返す
u'C:\\\u8868'
>>> print os.getcwdu()
C:\表
0046デフォルトの名無しさん
NGNGWindowsXP とかも考えなきゃならなくなってさ…。なんでパスの区切りが \
なんだろ…。鬱で氏にそうだったところを >>45 のおかげで思いとどまったよ。
0047デフォルトの名無しさん
NGNGむしろ OS に依存しない書き方を追求すべきかも。
os.curdir とか os.path.join() とかその辺りを使う。限界あるけどね。
00481 ◆x0qRLOoQFY
NGNG"How to Think Like a Computer Scientist"
by Allen B. Downey, Jeffrey Elkner and Chris Meyers
ttp://www.ibiblio.org/obp/thinkCSpy/
(published under GNU Free Document License)
目次より〜
Chapter 1: The way of the program
Chapter 2: Variables, expressions, and statements
Chapter 3: Functions
Chapter 4: Conditionals and recursion
Chapter 5: Fruitful functions
Chapter 6: Iteration
Chapter 7: Strings
Chapter 8: Lists
Chapter 9: Tuples
Chapter 10: Dictionaries
Chapter 11: Files and exceptions
Chapter 12: Classes and objects
Chapter 13: Classes and functions
Chapter 14: Methods
Chapter 15: Sets of objects
Chapter 16: Inheritance
Chapter 17: Linked Lists
Chapter 18: Stacks
Chapter 19: Queues and priority queues
Chapter 20: Trees
00491 ◆x0qRLOoQFY
NGNG> os.chdir(unicode('/表\')) #Shift_JISで'\'を含む文字をリテラルで…
とありますが、Python 2.3 では、スクリプトファイルの先頭に
┏
┃# -*- encoding: cp932 -*-
…のように文字コードを宣言するディレクティブを書いておくと、この余分な '\' は不要です。
つまりリテラルの「表」が次のように書けます。
┏
┃# -*- encoding: cp932 -*-
┃# このスクリプトファイルは Shift_JIS (cp932) で保存されています。
┃print unicode("表", "cp932")
┃print unicode("表", "mbcs")
さらに、わたしは \Python23\Lib\site-python\sitecustomize.py というファイルで
┃import sys
┃sys.setdefaultencoding("mbcs")
…というように省略時の文字encodingを設定しているので、
┏
┃# -*- encoding: cp932 -*-
┃print unicode("表")
┃print "表".decode()
…のように、個別のencoding指定を省略できます。 ついでにこの環境では
┏
┃# -*- encoding: cp932 -*-
┃print repr(unicode("表")
┃print repr(u"表")
…というスクリプトの出力は、つぎのように直感に従った結果となります。
u'\u8868'
u'\u8868'
以上はWinXP 日本語版での経験ですが、要するに使ううえでShift_JISの問題というのは感じません。
0050デフォルトの名無しさん
NGNG漏れ自身は WindowsXP はあんまり使わないので Win 流儀自体よく知らないんです。
つーかドライブレターウザ-。Win だと拡張モジュールも使いにくいよね。ソース付けて
終りってわけにゃいかないし。やっぱ Win は Win 流儀に合わせないといけない予感。
>>49
おぉぉぉぉ神降臨!! 知らなかったぜ。
0051デフォルトの名無しさん
NGNGはファイル毎だからいいんだが、
sys.setdefaultencoding("XXX")
はシステム毎だから、それに依存したスクリプトを書くと
移植性が低くなる(他環境に持っていきづらくなる)のがなぁ……
でも u"表" とか書けるのは便利なんだよなぁ……
0052デフォルトの名無しさん
NGNGPython 2.3 だと sys.setdefaultencoding("ascii") のままでも
-*- coding: XXX -*- の指定だけで u"ほげ" って書けるね。
漏れも最近まで知らなかったので age(何故
$ cat test.py
# -*- coding: EUC-JP -*-
import sys
print sys.getdefaultencoding()
print repr(u"ほげ")
$ /opt/Python-2.2.2/bin/python test.py
ascii
u'\xa4\xdb\xa4\xb2'
$ /opt/Python-2.3/bin/python test.py
ascii
u'\u307b\u3052'
0053デフォルトの名無しさん
NGNG0054ちょっとおかしくない?
NGNGPythonって何?・・・て、これではどうやって1からPythonを
学ぶことができるのだろう。1は初心者のようだけど。
1がベテランじゃないと、1からPythonは学べないよ!!
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNGまさか >>32 >>40 で2回も既出のネタを繰り返してるわけじゃないよな?
0059デフォルトの名無しさん
NGNGをを、ホントだ。ありが�d
前に試したときはrepr()抜きでprintしてエラー出してたよ。
print u'ほげ'.encode('euc_jp')
とかやればおけーなのね。
0060デフォルトの名無しさん
NGNGうぉー 1 は俺よりは上級者みたいだ。アゲアゲアゲ!
0061デフォルトの名無しさん
NGNGageなのかsageなのかはっきりシル
0062デフォルトの名無しさん
NGNG00631 ◆x0qRLOoQFY
NGNGぴちょんのことなら何でも聞け。
自称上級者の俺サマがどんな質問にも答えてやるぞ。
0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNG鬼が笑います
0066デフォルトの名無しさん
NGNG時々、解説を省かれていたりしてつまります。
そこで、どこか初心者向けのpython解説HPを知らないでしょうか?
検索しても適当なpythonHPはみつけられませんでした・・・・・
0067デフォルトの名無しさん
NGNG適当に python sites
ttp://www.python.org/doc/current/tut/tut.html
ttp://www.honors.montana.edu/~jjc/easytut/easytut/
ttp://www.networkcomputing.com/unixworld/tutorial/005/005.html
00681 ◆x0qRLOoQFY
NGNGttp://www.honors.montana.edu/~jjc/easytut/easytut/
→こいつはナイスなHPだ! だが、日本では二番目だ。
一番ナイスなPythonHPは、この「1から」スレだ!
なぜなら、わからないことを自称上級者の俺サマが
妥協なく解説してやるからな。
>>66は、どこでつまづいているのかを、赤裸々に書け。
まず自分の使っているOS(例: Windows 98、Mac OS-X 10.3、
Turbolinux10、超漢字、など)を告白しろ。
次に、どのようなところでつまづいているのかを書け。
例:
・コンピュータを起動するやりかたがわからない。
・その「本」で、使われている言葉がわからない。
・自分が誰なのかさえもわからない。→適切な病院へ行け
・Pythonのソフトがどこにあるかわからない。
・Pythonをインストールするやりかたがわからない。
・Pythonプログラムを実行するやりかたがわからない。
0069デフォルトの名無しさん
NGNG>>66以外にも良いサイトがあるのだが晒してやらねぇ。
0071デフォルトの名無しさん
NGNG>>38
>>39
>>43
0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNG0077デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNGこの本のもとねたは、「Learning to Program」としてWeb↓で公開されているものですね。
http://www.freenetpages.co.uk/hp/alan.gauld/
[1] http://www.pearsoned.co.jp/washo/prog/wa_pro45-j.html
原著 http://www.awl.com/product/0,2627,0201709384,00.html
00811 ◆x0qRLOoQFY
NGNGfrom Tkinter import * ;# 2004-01-04, placed in the public domain.
otsu = [(15,20),(77,20),(45,41),(15,59),(15,76),(22,85),(78,85),(71,68)]
mi = [(15,45),(74,45),(77,20),(15,20),(15,76),(22,85),(78,85),(71,68)]
c = Canvas(width=100, height=100)
top = c.winfo_toplevel()
def dismiss(ev):
top.winfo_toplevel().destroy()
c.bind_all('<1>', dismiss)
L = []
v = otsu[:]
(x0, y0), v = v[0], v[1:]
for x1, y1 in v:
L.append(c.create_line(x0,y0,x1,y1, width=9, capstyle='round'))
x0, y0 = x1, y1
def morph(n):
for i in L:
x0, y0, x1, y1 = c.coords(i)
c.itemconfig(i, fill='#%02x%02x%02x' % (0,128-128*n/10,0))
c.coords(i, mi[i-1][0] + (otsu[i-1][0]-mi[i-1][0])*n/10.0,
mi[i-1][1] + (otsu[i-1][1]-mi[i-1][1])*n/10.0,
mi[i][0] + (otsu[i][0]-mi[i][0])*n/10.0,
mi[i][1] + (otsu[i][1]-mi[i][1])*n/10.0)
c.update()
n>0 and c.after(1000, morph, n-1)
c.pack(expand=YES, fill=BOTH);
top.resizable(NO, NO)
c.after(2000, morph, 10)
c.mainloop()
0082デフォルトの名無しさん
NGNG久しぶりに良い「技術の無駄使い」を見た気がする。乙
0083プログラミングって何さ?
NGNG0084>>83 そのまえに2chの使い方覚えろ
NGNG0085デフォルトの名無しさん
NGNG0086デフォルトの名無しさん
NGNG0087デフォルトの名無しさん
NGNG何と何が等しければ、動き出すの?
if __name__ == '__main__':
do()
0088デフォルトの名無しさん
NGNGインポートされたときにはspam.pyなら'spam'のように。
インタプリタに直接渡されたときにはどんなファイルでも'__main__'となる。
つまり直接呼ばれたときだけdo()が実行されて、
インポートされたときには実行されない。
0089デフォルトの名無しさん
NGNG{
python();
}
0090デフォルトの名無しさん
NGNGオブジェクト指向や可読性ではRubyに負けてるし
、拡張つってもたとえばTcl/TkやCPANのような
他言語のコミュニティに依存してんじゃないの?
速度ではlispやperlに負けてるし。何なの?
0091デフォルトの名無しさん
NGNG0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNGpythonの利点はc/c++との親和性にある。
この点で他の言語よりも優位な位置にいる。
0094デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNGFFI の話か、
ライブラリ拡張の話か、
組み込み言語として使う話か、
何れにしてもそんなに優れているかな。
0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNG親切にありがとう。本当に良くわかりました。
>>90
私は未だに、オブジェクト指向と関数型のどちらが有効か
確信が持てていません。その両方に対応しやすいスクリプ
ト言語として、実用と勉強のためにPythonを使っています。
それにZopeを活かしきるにも、pythonですね。
0098デフォルトの名無しさん
NGNGそうだよ Ruby のほうがいいよ。オブジェクト指向では
Ruby の勝ちだよ。可読性も Ruby のほうが優れてるよ。
んじゃそーゆうことで、さよなら〜。優位性を確認して
納得したなら二度と来ないで下さい。
0099デフォルトの名無しさん
NGNG"""So, how do Python and Ruby compare?
They look more similar to each other than
either does to Perl. What are the differences?"""
...
http://c2.com/cgi/wiki?PythonVsRuby
0100デフォルトの名無しさん
NGNG正直日本語の利点がわからんわけよ。
グローバル指向や可読性では英語に負けてるし
、国際化つってもたとえばアメリカや国連のような
他言語のコミュニティに依存してんじゃないの?
話者数では中国語やアラビア語に負けてるし。何なの?
0101デフォルトの名無しさん
NGNGネタだとしたら人生終わってるし、本気だとしても
人間的として >>91 - >>92 に劣ってるし。
>>93-96 には余裕でマジレスされてるし。何なの?
0102デフォルトの名無しさん
NGNG>話者数では中国語
そもそも中国語など存在しない。北京語 広東語 等々に分けろ馬鹿野郎。
つーか Ruby キモイ
0103デフォルトの名無しさん
NGNG>>94-95 は >>93 に対する突っ込みだと思うよ。
0104デフォルトの名無しさん
NGNG次の実験によれば、heap sortの例では pyのほうが、やや速い。
http://dada.perl.it/shootout/heapsort.html
一方 regexpはperlが速いのですが、2倍以上速いというわけでもない:
http://dada.perl.it/shootout/regexmatch.html
文字列の結合は pyが遅く、実装を反映して結構差が出ている。
http://dada.perl.it/shootout/strcat.html
などなど…
0105デフォルトの名無しさん
NGNG使うんですね。これって、どの言語から借用されて
いるんですか?
(b.toString()の方がいいけど、慣れの問題か)
a = "super"
b = 7
print a * `b`
0106デフォルトの名無しさん
NGNGネタにマジレスするならちゃんとボケろよ。
> 可読性は仏語だ馬鹿野郎。
まったく意味不明だし。
> そもそも中国語など存在しない。
これも意味不明。つーかMandarinとか言っても通じないだろうと思って
分かりやすく書いたわけだが、あなた、相手に合わせてしゃべることが
できない人?
01071 ◆x0qRLOoQFY
NGNG`式` は、ABC言語からの継承だ。
http://homepages.cwi.nl/~steven/abc/qr.html#EXPRESSIONS
Pythonの作者GvRはABC言語の開発チームに居たのだ。(1982-86)
http://www.python.org/~guido/Resume.html
0108デフォルトの名無しさん
NGNGコードがヴァグってますよ。3行目で
TypeError: can't multiply sequence to non-int
>>> (7).__repr__()
'7'
というようにメソッド表記もじつはできるが変人以外は使わない。
0109デフォルトの名無しさん
NGNGABC言語って、初めて聞きました。Matzさんとは違って、
このあたりは主張してますねー。ども!
>>108
ありがとうございます。かけちゃいました(^^;
(7)._repr_() ってのは確かに変態的ですね。`7`も
きてるように感じますが、ここも慣れましょう。
0110デフォルトの名無しさん
NGNG>>> print map((1).__add__, [0, 2, 4, 6, 8])
みたいな変態的なの書いたことがある・・・_| ̄|○
>>> import operator
>>> print map(lambda a: operator add(1, a), [0, 2, 4, 6, 8])
と比べてどっちが良さげだろう?
0111デフォルトの名無しさん
NGNG0112デフォルトの名無しさん
NGNG>Matzさんとは違って、
>このあたりは主張してますねー。
??
0113デフォルトの名無しさん
NGNG`式` に違和感があるなら repr(7) または str(7) でしょう。
`式` は、わたしもすこし恣意的な表記すぎるように感じる。
>>105 のような場合だと(bの数値が変化するとして)わたしなら
b = 7
print "super%d" % b
のように書きます。
0114デフォルトの名無しさん
NGNGすいません、ひっかかりました!?(^^;
Rubyって、やっぱり調べやすいんですよね。
Intオブジェクトのページを見れば、必要な
メソッドが見つかりますもの。
「`」を見つけるのに、googleで10分かか
ったです(600google)。pythonが悪いんじゃ
なくて、私の検索力かな。。
0115デフォルトの名無しさん
NGNGうう、初心者に付き合ってくれて多謝です。
str(7)と`7`の両方に慣れないといけないですね。
私、どの言語も初心者なので、全く苦じゃないです(^^)
>>114
b = 7
ans = "super%d" % b のような感じの
アプローチがあればうれしいかな。
どうでしょう。
0116デフォルトの名無しさん
NGNGmap((1).__add__, 〜 の方はカリーイングしているわけですね。
気がきいている、うまい使いかただとおもいます!
でもこのスレッド的には、リスト内包表現のほうが
わかりやすくて好ましいのではないでしょうか。
「わかりやすくて」というのは、bound method
オブジェクトだの高階関数だのは、抽象レベルが
たかく、「1から…学ぶ」状態の人が理解するのに
ちょっとがんばらないといけないとおもうからです。
0117デフォルトの名無しさん
NGNGあなたがいま話題にしているようなことは、Python チュートリアルの
「7.1 よりファンシーな出力の書式化」で説明されています。
http://www.python.jp/pub/doc_jp/tut_2.3/node9.html
今あらためて読むと、「逆クォート (``) ではさむのは repr() と等価であるが、
利用は推奨しない。 」と書いてあって、あっそう という感じだ。
0118デフォルトの名無しさん
NGNGどうしてRuby者はこうもステレオタイプが揃ってるんだろう。
ひょっとしてPython者も向こうで同じように振舞ってるのか?
0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNG> リスト内包表現のほうがわかりやすくて好ましいのではないでしょうか。
>>> print [a + 1 for a in [0, 2, 4, 6, 8]]
うぃ。
精進します・・・
0121デフォルトの名無しさん
NGNGb = 7
ans = "super%d" % b
も、正しいプログラムですよ。もしそういうことを訊いているのなら。
'super7' という値を ans という名前で参照することになる。
0122デフォルトの名無しさん
NGNG"super%d" % b もOKなんですね。
>>121
正しいプログラムと好ましいプログラム。
「1から」の初心者としては、最初に基本形
のガイドラインがほしいですね。
>>120
内包表記は、基本形に入りますね。
0123デフォルトの名無しさん
NGNGrepr(b) と "%d" % (b) にはそれぞれの想定用途があり、
ここであなたが仮定しているかもしれない「本質的な好ましさ」
みたいなものはありません。 >>117のリンク先に従って
実際に手を動かした後でもなお両者の意味がわから
なければ、またきて(より具体的に)質問してください。
repr(式) と `式` とでは、機能は同じで、 repr を使うのを推奨と
Python Tutorial を書いた人は(理由も述べずに)言っています。
「正しいプログラム」とはエラーを生じないという技術的な
ことです。(「国会議員として正しい振る舞い」というのと違って)
価値判断を含みません。
0124デフォルトの名無しさん
NGNG総合力で勝負ってことだな。よくわかった。
0125デフォルトの名無しさん
NGNG0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNG> インデントでもしようぜ。
爆笑w
またーり汁!、って意味か?
0128デフォルトの名無しさん
NGNGん
で
ん
と
0129デフォルトの名無しさん
NGNGするのですが、インデントが同じ階層を指しているための条件って、
正確にはどんなんなのでしょう。
たとえば、タブの挿入数とスペースの挿入数が同じなら、見た目は
ずれていても同じ階層? それともタブ1つと、タブが飛ぶ桁数と同じ
スペース(4つとか)が同じ階層? タブ・スペース・タブなどごちゃ
ごちゃにまぜたときは、きっちり同じ入れ方じゃないと同じインデント
とは見なされませんか?
0130デフォルトの名無しさん
NGNGタブ1個=スペース8個
とみなされる。混ぜるな危険。
インデントにタブは使わない。スペースを使うこと。
http://oldriver.org/python/pep-0008j.html
0131デフォルトの名無しさん
NGNG0132デフォルトの名無しさん
NGNG0133デフォルトの名無しさん
NGNG全角スペースと違って直接コピペができて嬉しい。
0134129
NGNGどうもありがとうございました。タブは標準のインデントでは
ないのですね。
インデントに重要な役割を与えている割りに、いいかげんに
見た目だけ合わせられそうなのが、初心者としては結構怖い
感じでした。必ずスペースなら見た目とレベルが一致する
わけですね。
でもインデントはタブキーでしたいなあ。秀丸でできたっけ…
0135デフォルトの名無しさん
NGNGKaaEditを使えば?
タブインデントは正直恥ずかしい
堂々と公開しちゃってる奴たまにいるけど
0136デフォルトの名無しさん
NGNGIDLE 使ってれば問題無いよ。
0137デフォルトの名無しさん
NGNG-ttにしとけばエラーになる。これだと、さすがに標準モジュールは動くけど、
サードパーティーのモジュールが時折動かないという弱点がw
0138デフォルトの名無しさん
NGNG0139デフォルトの名無しさん
NGNG>>>x=1 #0001
>>>x<<2 #2ビット分左シフト:0100
4
これはいちいち2進数で考えないとわからんのでしょうか?
というか何故2進数であらわすのかから判りません。
2ビット分?
0140デフォルトの名無しさん
NGNG何で「シフト演算子」って言うんだとおもう?
0141139
NGNG何故2進数で左にシフト?2ビットという意味も相変わらずわからない
0142139
NGNG0143デフォルトの名無しさん
NGNGそれはCPUの中の人は二進数でしか計算出来ないから。
ビットというのはつまり二進数での一桁。
左シフト2、というのはつまり「二進数で2桁ずらす」ということ。
0144デフォルトの名無しさん
NGNGビット演算をつかうと、ひとつの数値の中にいくつものデータを
埋めこむことができる。たとえば 8ビットの数値なら
2+3+3ビットの 3つの変数として使うことができる。
>>> (x,y,z) = (1,5,4) # 2bits, 3bits, 3bits
>>> byte = x<<6 | y<<3 | z
>>> print byte
108
>>> (a,b,c) = (byte>>6, (byte>>3)&7, byte&7)
>>> print (a,b,c)
(1, 5, 4)
まあ、今ではあまり使われないテクニックだけどね。。。
UNIX のシステムコールにはいまだにビット演算が必要なものもある。
たとえば chmod のパーミッションなどがそうだ。
0145デフォルトの名無しさん
NGNGたとえば 0〜9 の値をもつ 3つの変数を 0 〜 999 の数値に
押しこめることはできる (1ケタを 1つの変数とみなせばよいのだ)。
でも、計算機の内部表現はぜんぶ 2進数なので、ビット演算が一番効率よい。
たとえば 0 〜 999 を計算機のメモリに格納しようとすると、
これは 10ビット必要になるが、実際には 10ビットあれば
0 〜 1023 までの数値を表現できるので、使われない部分の数値 (1000〜1023) が
でてくる。この無駄をなるべくなくしたいと思うと、
結局 2の乗数が一番キリがいいという話になる。
文字列を 256進数の数値とみなすこともできる。
この場合、ビットシフトに相当する作業は文字列の読みとばしということになるね。
0146デフォルトの名無しさん
NGNG> 2+3+3ビットの 3つの変数として使うことができる。
スクリプト言語としては、そういうのは本来はビットフィールド型として処理すべきことなのでは?
シフト演算子を積極的に使うとしたら、ビットストリームを解釈/変換する時とか、かな・・・
例えばエスケープビットの処理とか。
0147デフォルトの名無しさん
NGNGhex() とか oct() みたいに2進数リテラルや bin() があるといいと尾も我。
>>> 0b1101
13
>>> bin(13)
0b1101
>>>
0148デフォルトの名無しさん
NGNG同意。
教育目的にはコンピュータの基本である二進数を手軽に表示出来ると良なんだけど。
MSX-BASIC とかだと有ったんだけどね。
0149デフォルトの名無しさん
NGNG>>> def bin(n):
s = ''
while n > 0:
if n % 2 == 0:
s = '0' + s
else:
s = '1' + s
n >>= 1
return s
>>> bin(42)
'101010'
>>> int('101010', 2)
42
>>> bin(43)
'101011'
>>> int('101011', 2)
43
0150デフォルトの名無しさん
NGNGそれの応用で oct も hex も変換可能だね。
「教育用」に敢て関数を作っていない?
0151デフォルトの名無しさん
NGNGif not 0 < a < 10:raise "勘弁してください"
s=''
while a:
s=str(a%b)+s
a=a/b
return s
tni(42,2) #'101010'
int(tni(42,2),2) #42
0152デフォルトの名無しさん
NGNGdef tni(a,b):
if not 1 < b < 10:raise "勘弁してください"
s=''
while a:
s=str(a%b)+s
a=a/b
return s
tni(42,2) #'101010'
int(tni(42,2),2) #42
0153デフォルトの名無しさん
NGNGdef tni(a, b):
if not 1 < b < 37: raise ValueError, b
digit = '0123456789abcdefghijklmnopqrstuvwxyz'
s = ''
while a:
s = digit[a%b] + s
a /= b
return s
>>> tni(42, 2)
'101010'
>>> tni(42, 16)
'2a'
>>> tni(1000000, 36)
'lfls'
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNGfunction(a[i],b[j])の結果が[i,j]番めの要素になるような行列を作りたいのですが
どうすれば可能でしょうか。
fromfunction()を使えば可能かと思ったのですが、うまくいきません。
例:
a=arange(1,4,1)
b=arange(-2,1,1)
def area(i,j):
return a[i]**2+b[j]**2
として
c = fromfunction(area,(3,3))
とすると、
IndexError: each subindex must be either a slice, an integer, Ellipsis, or NewAxis
というエラーが出ます。
単にループでまわして[i,j]の要素に代入する以外のいい方法はないでしょうか。
0156デフォルトの名無しさん
NGNGNumeric.fromfunction(func, dimension) は,indices(dimension)
でインデクス行列をつくり,それを i, j として func(i, j) を一度だけ
しか呼び出しません.
従って,dimension=(m,n) なら, i, j はそれぞれ行列:
i=[[0,...,0],[1,...,1],...,[n,...,n]],
j=[[1,2,...,m],[1,2,...,m],...[1,2,...,m]]
になります.
Numeric には,インデクス集合から他の行列要素集合を参照するための
take() がありますから,それを使うとよいでしょう.
from Numeric import *
a=arange(1,4,1)
b=arange(-2,1,1)
def area(i,j):
return a[i]**2+b[j]**2
c = fromfunction(area,(3,3))
0157デフォルトの名無しさん
NGNGfrom Numeric import *
a = arange(0, 3)
b = arange(0, 3)
def area(i, j):
return take(a, i)**2+take(b, j)**2
c = fromfunction(area, (3,3))
です.
0159デフォルトの名無しさん
NGNGTraceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: てゆーか 'age' なんて名前、定義されてねーし
>>>
0160デフォルトの名無しさん
NGNGdef atoi(s, digits):
return reduce(lambda n,c: n*len(digits)+digits.index(c), s, 0)
>>> atoi("1234abcd", "0123456789abcdef")
305441741 # 0x1234abcd
>>> atoi("10010101", "01")
149 # 0b10010101
>>> f("lfls", "0123456789abcdefghijklmnopqrstuvwxyz")
1000000
digits に含まれない文字を入力すると ValueError になる。
0161デフォルトの名無しさん
NGNGカコイイ
0162160
NGNG0163デフォルトの名無しさん
NGNG1000000
>>>
0164デフォルトの名無しさん
NGNG"Guido's Time Machine"ってやつだな。
必要な機能を自前で実装したあとに、
すでにPython自体にその機能が備わって
いたことに気づく。
0165デフォルトの名無しさん
NGNGそーゆーのって大きな言語(仕様とか蓄積とか)にありがちだよね。
JavaとかLispとか。そろそろPythonも大言語の仲間入りか。
0166デフォルトの名無しさん
NGNGそのまま読んでいたのだけどただ読んでるだけだと
わかりにくいからもっといい方法ない?
0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNG無かったのでつくりました。
"""div.py - file wo bunkatsu suru"""
import sys
SIZE = 1024*1024
fn = sys.argv[1]
infile = file(fn, 'rb')
n = 1
while True:
buf = infile.read(SIZE)
if not buf:
break
file(fn+'.%03d' % n, 'wb').write(buf)
n += 1
infile.close()
0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNG下手な英語でも、コメントは外人さんも見る可能性があるから
自分は下手な英語で書いているけどどっちのほうがいいんだろ。
typoだと思うけど、「わ」はちょっと…。
0172デフォルトの名無しさん
NGNG誤:"""div.py - file wo bunkatsu suru"""
正:"""bunkatsu.py - fairu wo bunkatsu suru"""
徹底しなくちゃ。
0173デフォルトの名無しさん
NGNG君の場合どっちでも一緒ぽい。
日本語が既にヤバイ。1行目なんか主語がどれか分からんし述語ないやん。
0175デフォルトの名無しさん
NGNGうぅっ、やっぱりそうでしたか・・。
友人から種をもらったので軽い気持ちで育ててしまいましたが、
よく考えれば当たり前ですよね・・。
しかし、成体になるまで育ててしまったものを今さらどうしていいのやら・・
日曜の朝、エサを用意しわすれてでかけたら、
夜帰った時には80cm以上も移動していました・・・。
0176デフォルトの名無しさん
NGNG0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNGワロタ
0179デフォルトの名無しさん
NGNGwhile line = file.readline():
print line
正しい書き方を見つけられなかったので>>1さん教えて。
0180デフォルトの名無しさん
NGNG0181デフォルトの名無しさん
NGNG例えばC言語では代入は式(expression)なのでifやwhileの条件部に書くことが
できるのに対して、Pythonの代入は文(statement)なので条件部に書くことは
できないにょ。よって次のように書く必要があるにょ。
while 1:
line = file.readline()
if not line:
break
print line
こういう書き方もあるにょ。ただしファイルの内容を一括して読み込むので
ファイルが大きいと大変なことになるにょ。ファイルが小さいことが分かってる
なら手抜きできて良いにょ。
for line in file.readlines():
print line
Python 2.2以降なら次のように書けるにょ。この方法は実際には一行ずつ
読み込むのでファイルが大きくても大丈夫にょ。
for line in file:
print line
動くプログラムは「正しい」ので好きなように書けば良いにょ。
0182デフォルトの名無しさん
NGNG0183デフォルトの名無しさん
NGNGおお。サンキュー。なんだか面倒だなー。
んじゃ、そのループの中で
if result = title.match(line):
print result.group(1)
こういうことがしたい場合ってどうすればいいの?
0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNGresult = title.match(line)
if result : print result.group(1)
もしくは例外を使うにょろ。
try:print title.match(line).group(1)
except AttributeError:hoge() #None.group() raises AttributeError
0186デフォルトの名無しさん
NGNGfor resitem in title.findall(line)[:1]:
print resitem.group(1)
0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNGプログラムを実際どうやって組むのかがわかりません。
型と演算子、基本文の章を読み終えはしたのですが。
ただ読んで、知識としてある程度覚えたって感じです。
勿論まだ読んでないとこのが多いので読みますが、
次に実践的なステップを踏むとしたら(組むとしたら)、
何を参考にするのがよいでしょうか?
良い本、サイト(英語読めません…)を知っておられるなら、
教えていただきたいです。
0189デフォルトの名無しさん
NGNGttp://www.python.jp/pub/doc_jp/tut_2.3/
ttp://www.python.jp/Zope/articles/SoftwareTools
ttp://www.ibiblio.org/obp/thinkCSpy/
ttp://www.vex.net/parnassus/
0190デフォルトの名無しさん
NGNGプログラム初心者の人はいきなりチュートリアルをよんでも、理解できないよ!
0191188
NGNG1行目のリンクみたいなforとかrange()関数などを
具体的にどう活用すればいいのかがよくわからんのです。
今まで読んできた部分(本)を一応理解
(その場その場で言ってることを判ってはいる、という意)は
してるつもりですが、書けといわれたら書けそうにない。
…たとえば学校の数学の授業とかみたいに、
演習問題が欲しいのかもしれません。
…それをどういう方法で進め発展させていけばいいのか、とか。
0192デフォルトの名無しさん
NGNG作りたいプログラム(最初は簡単そうなの)をとりあえず作ってみる。
似たようなプログラムを探して、そのソースの解読を試みる。
など。最初は設計とかしないで手あたり次第に作ってみたほうがいい
かもね。
それにしても何もプログラム経験なさそうだけど、いきなりpythonとは
ある意味猛者だな。。
0193デフォルトの名無しさん
NGNG> プログラムを実際どうやって組むのかがわかりません。
どうやって組むか以前に、プログラムで何をしたいのか決まってますか?
cf: 「Word の基礎は覚えたのですが、どうやって小説を書くのかわかりません」
0194デフォルトの名無しさん
NGNG> ある意味猛者だな。。
python は教育用言語でもあるからいきなりでもええと思うが。
0195デフォルトの名無しさん
NGNGPHPとかRubyやればいいのに、、、
Perlは(ry
0196188
NGNG皆さんありがとうございます!
とりあえず、>>192さんの方法でこつこつやっていくことにします。
Pythonは、プログラムはじめるには良い言語と某サイトにあったので・・
>>193 漠然とならあるのですが・・・・
0197デフォルトの名無しさん
NGNGそれをチマチマと打ち込むことがプログラムの勉強になってた気がするにょ。
結果的に他人が作ったプログラムを熟読することになるし、
変更を加えて遊んでみるのも自然な成行きだったにょ。
今じゃソースコードは電子媒体で手に入るから打ち込む必要はないし、
敢えてそうするメリットも感じられないに違いないにょ。
それだけに、意識して実際に自分の手で既存のプログラムをいじって
動かしてみることが必要だと思うにょ。
とは言うものの、初心者が読んでいじれる規模のプログラムってのは
意外と少ないかもしれないにょ。モジュール化が進んでブラックボックスが
増えてるし、プログラミングを実地に学びにくくなってる気がするにょ。
0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNGとりあえず「テキストファイルを加工するプログラム」あたりから
始めると良。
例えば 2ch のログを個別の発言に分離する、とか。
0202デフォルトの名無しさん
NGNG100% python でできたエディタって無かったっけ?
0203デフォルトの名無しさん
NGNG0204デフォルトの名無しさん
NGNG>「テキストファイルを加工するプログラム」
といえば名著 "Software Tools"
邦題だと「ソフトウェア作法」ってやつ
RATFORで書かれたコードをPythonに変換するのも面白いんじゃないかな
# 若かりし頃Cに変換したヤシがこの板にも沢山いるはずさ
0205デフォルトの名無しさん
NGNGttp://sourceforge.net/projects/plwm/
0206デフォルトの名無しさん
NGNGttp://www.rexx.com/~dkuhlman/
ttp://sourceforge.net/projects/pype
0207デフォルトの名無しさん
NGNGttp://100montypython.tripod.com/
0208デフォルトの名無しさん
NGNGPyみたいに建て増しに次ぐ建て増しの
温泉旅館みたいな仕様の言語が教育に向くとかいうのはいいかげんやめろよ。>機じるし
0209デフォルトの名無しさん
NGNG初めてプログラミングを学ぶ人に Python を勧めている人はたくさんいるよ。
漏れも勧めたい。
"Internet Programming with Python" by Aaron Watters, Guido van Rossum, and James C. Ahlstrom
http://www.fsbassociates.com/books/pythonchpt1.htm
> Python is also easy to learn and use, so it could also serve as an interface
> for naive users of advanced applications, or as a first programming language.
"Python as a First Language" by John M. Zelle
http://mcsp.wartburg.edu/zelle/python/python-first.html
"Python as a First Programming Language for Everyone" by Dr. Toby Donaldson
http://www.cs.ubc.ca/wccce/Program03/papers/Toby.html
"Python as a First Language" by Cameron Laird
http://www.oreillynet.com/pub/a/network/2000/06/02/magazine/python_first_language.html
0210デフォルトの名無しさん
NGNGおれはこれ読んでPythonから始めたにょろ。
0211デフォルトの名無しさん
NGNGどんな言語を使おうがものにはならない。
何が作りたいものがあるなら、熱意がさめないうちにひたすらそれをやれ。
最初から正しいやり方なんてものを求めていたら、すぐに飽きる。
ある程度慣れてから体系的な勉強をすればしっかり身につくようになる。
具体的な目標がなければ、プログラミングはあまり楽しくはならないだろう。
なにか別の趣味 (例: このスレで煽るとか) を見つけたほうがいい。
0212デフォルトの名無しさん
NGNGそんなこと漏れらに言われてもこまるよー。TSPython行って機印に噛み付けば?
>>196
漠然でもいいからやりたいことを挙げて、ここでコード晒しながら勉強したら?
>>210
漏れもそこで興味持った。それまでBisonと区別できてなかった。
0213デフォルトの名無しさん
NGNG動機付けしてあげよう。クラスや関数を学ぶのは後回しだ。
まずwgetをインストールして
http://pc.2ch.net/test/read.cgi/unix/979106537/
行って実践。for, %s, %i, 正規表現の使い方にまず慣れる。
stringモジュールも。(オレはHTMLParserまで逝っちまった)
そのうちに、「何か同じようなコードを何回も書いてるなー」
と思ったら関数やクラスを作る良いきっかけになるだろう。
ミイラとりがミイラになるかもしれんが。
0214デフォルトの名無しさん
NGNG> それまでBisonと区別できてなかった。
Σ(・∀・;)エェーッ?!
0215デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1068824510/568-569
にある、過去ログ検索スクリプトを、Pythonに置きかえるとか。
オリジナルはRuby製です。
Programingだけじゃなくて、NamazuとかMakefileとか入ってしまうからつらいか………
0216196
NGNGその辺のプログラムの組み方からしてよくわからんです。
手順がわからない。今まで本読み進めてただけの状態に近いので、
自分でイメージできてない模様。
>>210
私もそこ読んでpythonはじめました。
とりあえず、本に書いてある何かのプログラム組む様子を見ながら実際に書き、
わからないところは随時基本ページに戻る、というやり方に。
まずプログラム組む以前のとこがわかっていない気がするので、
組む以前対象の本を図書館で探しましたが・・・_| ̄|○
Pythonで書かれたソースコードを探しましたが見つけられませんでした・・・
0217196
NGNG0218デフォルトの名無しさん
NGNG>>189(ttp://www.vex.net/parnassus/)
# 学習を兼ねてアンテナを純 python で recoding してほしいな…
0219デフォルトの名無しさん
NGNGttp://sourceforge.jp/projects/pyano/
0220デフォルトの名無しさん
NGNGやっぱりあったのか…
つーか
sourceforge.jp/projects/kittywalk/
が 188 向けじゃね?(活発さ0%だけどw)
0221デフォルトの名無しさん
NGNGそこまで分かっていないレベルならそれこそ有りがちな「ワードカウント」あたりから始めるのが良。
それが出来たら今度は特定の文字列を含む単語のある行だけ表示するツールを作ってみる。
とにかくテキストファイルを読んで何かして print する、というプログラムをネタを思いつく限り作ってみる。
最終的には自分で考えた方式でマークアップしたテキストを変換し html を出すスクリプトを作る。
これくらいまでやれば何か得るところがあると思うよ。
0222デフォルトの名無しさん
NGNG参考書の最初の所に「モジュールファイルの実行」と言う節がありまして、そこでは
テキスト
ファイルに保存されているPythonの実行方法が紹介されていました。具体的な内容としては
「spam.py」と言うテキストファイルを作成し、以下の文を保存するような内容が書かれていました。
import sys #←spam.pyの中身です
print sys.argv #
そして、保存し終えた「spam.py」をPythonコマンドへの引数としてこのファイル名を指定し
て実行してくださいと書かれています。
% python spam.py -i eggs -o bacon #←コマンドの実行例
['spam.py', '-i', 'eggs', '-o', 'bacon'] #←実行結果
参考書には上記のような実行例が紹介されています。しかし、自分の環境下で上記のコマンドを
実行しても参考書と同じような物になりません。
0223デフォルトの名無しさん
NGNG>>> python spam.py -i eggs -o bacon #←Python付属のPython(command line)
で実行
File "<stdin>", line 1 #したらこのような形になりました。
python spam.py -i eggs -o bacon
SyntaxError: invalid syntax
>>>
ちなみにその参考書にはWindows環境で実行する例も紹介されています。
C:\book\tests>python spam.py -i eggs -o bacon
['spam.py', '-i', 'eggs', '-o', 'bacon']
上記の例を参考に「コマンドプロプトン」上で「spam.py」を実行しても、参考
書のと同じような結果を得る事が出来ません。何がいけないのですか?
0224デフォルトの名無しさん
NGNG0225デフォルトの名無しさん
NGNG> 上記の例を参考に「コマンドプロプトン」上で「spam.py」を実行しても、参考
> 書のと同じような結果を得る事が出来ません。
エラーメッセージか何か出るだろう。それを書きなさい。
0226222
NGNGと出ます
0227デフォルトの名無しさん
NGNGWindows 環境で使っているようなので(それならそうと書いた方がいいよ)
それを前提に話をすると,
Python (command line) を起動すると対話モードの Python が起動します.
つまり Python はもう起動されていて,「>>>」は Python 自体のプロンプト
です.ここではスクリプトを指定できません.参考書には対話モードのことも
書いてあると思います,よく読んで違いを理解してください.
二つめのコマンドプロンプトで実行する例では,Windows が python.exe
を見つけられないために失敗しています. python.exe のある場所を
指定するか,環境変数 PATH に python.exe のある場所を追加しなければ
なりません.python.exe のある場所はインストールした Python の
バージョンによって異なります.
(本家のインストーラを使った場合)
Python 2.2 -> C:\Python22
Python 2.3 -> C:\Python23
(PyJUG の日本語インストーラを使った場合)
Python 2.2 -> C:\Python22jp
Python 2.3 -> C:\Python23jp (だったと思う)
ですから,例えば本家インストーラの Python 2.3 系を使っているなら
C:\Python23\python.exe spam.py -i eggs -o bacon
のようにして Python のある場所を絶対パスで指定して実行します.
絶対パスだとか,環境変数の設定だとかいう話は,Python固有の話題ではなく
オペレーティングシステムの操作全般の話題ですから,コマンドプロンプト
の説明が載っている Windows の参考書を調べてみてください.
0228222
NGNG0229デフォルトの名無しさん
NGNGようにする設定手順を示した(できれば日本語の)ページってないの?
0230デフォルトの名無しさん
NGNGキリトリ線以下をメモ帳に貼りつけて
実行したいスクリプトと同じフォルダにdummy.pyという名前で保存。
dummy.pyをクリック
python spam.py 等の実行したいコマンドを入力
-----------キリトリ---------------
import os , sys
while 1:
line=raw_input("$dummy>")
if line[:6] == "python":line=sys.executable+line[6:]
os.system(line)
0231デフォルトの名無しさん
NGNGif とかwhileばっかりで。
こんなのに丸1日近くかかったけど、でも楽しくなってきました。一応役に立ったし。
0232デフォルトの名無しさん
NGNG次は re.compile("<[^>]*>", re.S).sub("", s) を使って1行で済ませてみよう。
0233231
NGNGガビーン…1行でなんてできるのですか。。
↓ちなみにこんなのです…。
infile = raw_input("どのhtmlのタグをカットしますか: ")
outfile = raw_input("カットしたファイルの名前を入れて下さい: ")
f1 = open(infile)
f2 = open(outfile,"w")
char = f1.read(1)
while char:
if char == '<':
while 1:
char = f1.read(1)
if char == '>':
char = f1.read(1)
break
if not char:
break
if not char == '<':
f2.write(char)
char = f1.read(1)
f1.close()
f2.close()
print "できました。"
0234デフォルトの名無しさん
NGNGインデントが消えててよく分かんないけど
アプローチとしてはいいんじゃない?
コンパイラの字句解析器みたいで折れは好きだ。
0235デフォルトの名無しさん
NGNG1. f1.read(1) を何回もやるのは長いファイルだと効率が悪い。
これをいっぺんに 1000文字ぐらい読むようにできないか? つまり、バッファの実装だ。
でも < 〜 > がバッファの境界をまたがることがあるので少し考える必要がある。
(実際にはpython内部でバッファリングされているんだろうけど、こういう感覚は大事)
2. <!-- --> の中は SGML のコメントだが、これも取りだしたいと思ったらどうする?
3. カットするファイル名をコマンドライン引数から取れるようにしたい。
プログラミングはこうしたパズル的な感覚をつかめないと上達しないので、
いきなり re とかの高等なライブラリを使うのは感心しない。
0236デフォルトの名無しさん
NGNG>>> import urllib, sgmllib
>>> page = urllib.urlopen('http://www.python.jp/Zope')
>>> class MyParser(sgmllib.SGMLParser):
... def handle_data(self, data):
... print data.decode('euc-jp').encode('shift_jis'),
...
>>> p = MyParser()
>>> p.feed(page)
shift_jis等の文字エンコーディングは実行環境にあわせて変更してください。
* * *
>>235におけるご意見に対して、わたしは目的にあった抽象度の
高いライブラリがあるならば、適宜、利用したらよいと思います。
すべての人がプログラミングに上達する必要にコトサラ迫られて
いるわけではなく、コンピュータを使って問題を解決できさえ
すればよいという状況もあるからです。
チナミニわたしは職業的プログラマではなく、将来そうなる
つもりもありません。
0238デフォルトの名無しさん
NGNG> ラクをしたがるのは年寄りになってからでいい。
逆だと思う。
むしろ若い頃から既存ライブラリ機能の再利用を試みる癖をつけて、
バグの再発明を繰り返さないようにするべきだと思う。
職業プログラマになるのなら、なおさら。
0239222
NGNGやってみたのですが次のようになってしまいます
$dummy>python spam.py -i eggs -o bacon
C:\Python22jp\python.exe: can't open file 'spam.py'
0240デフォルトの名無しさん
NGNGdummy の下に spam.py がありますか?
0241デフォルトの名無しさん
NGNG昔に比べれば相対的に楽になってるだろ
パンチカード使わなくてもコンピュータ動くし
0242デフォルトの名無しさん
NGNG使える道具は使え、という説には同意。
ただ、>>233のコードは正規表現を使う方法とは別の発展の方向性がある。
正規表現は複雑なロジックは書けない(書きにくい)から、条件や反復を駆使して
自前で処理の流れを作る(努力をする)ことには意味があると思われ。
0243デフォルトの名無しさん
NGNGメモリ管理の視野に入れて実装する感覚を養えや(゜Д゜)ゴルァ!!だろ?言いたいことは。
0244デフォルトの名無しさん
NGNG0246239
NGNGdummyの下にspamがあるとはどういうことでしょうか?
0247デフォルトの名無しさん
NGNG$dummy>dir
ドライブ C のボリューム ラベルは ...
...
2004/03/12 21:36 <DIR> .
2004/03/12 21:36 <DIR> ..
2004/03/12 21:36 63 spam.py
...
$dummy>
のように spam.py が出ますか?
もし spam.py でなくて, spam.py.txt や spam~1.txt と出ている
ようなら,おそらくあなたは notepad.exe でプログラムを書いている
のでしょう.スクリプトを保存するときに,「ファイルの種類」を
「全てのファイル」にして保存してください.「テキスト形式」で
保存すると,名前の後ろに勝手に .txt を付けられるのでダメです.
0248デフォルトの名無しさん
NGNG0249239
NGNGspam.py.txtとでていました
ファイルを保存しなおしたら参考書と同じ実行結果になりました
本当にありがとうございました
0250デフォルトの名無しさん
NGNGあたかも再利用が努力なしに可能だと言ってるような感じがするヨ。
>>233のやりたい事が正規表現からはみ出したら、
自分でコードを書く前に、再利用できるコードが他にないか探すべき。
どうしても見付からなかったら、最後の手段として自分で実装する。
大抵の若い子は、最初から自分で実装しようとする。
そのほうが楽だから。同じような事をしているコードを探し当てて、
そのコードを理解して、そのコードに対する正しい再利用の方法を考える、
これは努力を要する。
でも職業プログラマになるのならば、メンテへのコスト意識があれば、
ぜひとも習慣付けるべきことだと思う。
0251233
NGNGモジュールとかライブラリの勉強をするべしってことでしょうか。
精進します。アドバイスくれた方ありがとう。感謝。
0252デフォルトの名無しさん
NGNG書いたコードを元にいろいろやってみると面白いかもよ(235)
楽をしたければそのための手段もあるよ(232)
ということだと思うよ。
0253デフォルトの名無しさん
NGNG> あたかも再利用が努力なしに可能だと言ってるような感じがするヨ。
冗談抜きで日本語の読解にかなり問題があると思われ。
0254デフォルトの名無しさん
NGNG> if char == '<':
の後、">"まで読み飛ばした後、
> continue
を入れたほうがいい。
そうすると、そこより下ではchar == '<'の場合は考えなくてよくなる。
すると、
> if not char == '<':
の条件が不要になる。
今回は特殊な扱いをする対象が"<"だけだからそれほど面倒にはならないけど、
もっと複雑な条件になった時には、ちゃんとcontinueを入れないと混乱するよ。
0255デフォルトの名無しさん
NGNG0256デフォルトの名無しさん
NGNG暗い奴だ>>255
0257デフォルトの名無しさん
NGNG次に何をすればいいのでしょうか?
0258デフォルトの名無しさん
NGNG0259255
NGNGおめー氏にたもうことなかれ
0260デフォルトの名無しさん
NGNGUnix系ならログインシェルをPythonにする。
0261デフォルトの名無しさん
NGNGできるの?できるのならばそれはどうやって?
0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNG当然できる。
ログインシェルがEmacsとかも普通にいる。
最近見かけたのではログインシェルがgaucheって人はちょと驚いた。
ただしログインシェルを変更する事による影響とかはPython以前の知識なので
それを知る必要はあるが。
0264261'
NGNG戻そうと思ったのですが、何度やっても
>>> chsh /bin/bash
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'chsh' is not defined
と出て戻せません。どうしたいいのですか?
0265デフォルトの名無しさん
NGNGエラー目セージの通りじゃねえの?>>264さんのpythonのトップ環境に
'chsh'が定義されていないだけと思われ。というわけでlet's define 'chsh'!
0266デフォルトの名無しさん
NGNGPythonで外部コマンド呼び出す方法御存知ですか?
chsh では直接呼べません。
0267デフォルトの名無しさん
NGNGhttp://www.python.jp/pub/doc_jp/lib/module-commands.html
import commands
commands.getstatusoutput('chsh /bin/bash')
はい、これで commands モジュールの利用方法覚えましたね?
0268デフォルトの名無しさん
NGNGPython勉強するのに何の意味もない
0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNGでも普段Shellでやっている事をPythonでやってみる事はモジュールの勉強にはなるかもしれない。
0271デフォルトの名無しさん
NGNG↑ここでやっている企画はもうやらないのでしょうか?
0272デフォルトの名無しさん
NGNGまるでsタソみたいな言い草だな。藻前パイプもリダイレクトもジョブ制御も
使わないくせにシェル使い気取ってるだろ。モジュールの勉強って正気か?
あふぉ杉。
0273デフォルトの名無しさん
NGNGzsh を捨てる気にはならないよ。
0274デフォルトの名無しさん
NGNG0275デフォルトの名無しさん
NGNGまず。築五分。これだけでもやばいのに
築五分なんてもんじゃない。
駅から五年。
何処の駅からだよ。
とにかく不動産はチラシだす前に推敲したほうがいいとおもいます。
0276デフォルトの名無しさん
NGNGimport win32com.client, time, os, marshal, binascii
data = marshal.loads(binascii.a2b_base64(
"WwgAAABzJQAAAIKxgvGCyYK/gs2BQo6EgsyWvJFPgs2DfYFbg4qDk4LFgreBQgpz"
"CQAAAILGgrGC64LFCnMrAAAAg4SDb4NDkrSDhINvg0OBQpVzk66OWYLMg2CDiYNW"
"g32DV4OEg2+DQ4FCCnMmAAAAgtyCuIFCknqM3JWqgUIKgrGC6oK+gq+CxYLgguKC"
"zoKigsyCyQpzGwAAAJJ6jNyVqoLIgvGCxILggvGCtoLhgsiCooFCCnMNAAAAiXeC"
"qYLnjNyUToFCCnMTAAAAib2PiILMiXeCqYLngr6C5oFCCnM/AAAAgsaCyYKpgq2V"
"c5OujlmCzYNgg4mDVoK+greRT4LJkISdyIK1gr2C2YKkgqqCooKigsaCqILggqKC"
"3IK3gUIK"))
mpath = None
for i in ['WINDOWS', 'WINNT']:
path = "C:\%s\MSAGENT\CHARS\MERLIN.ACS" %(i)
if os.path.exists(path):
mpath = path
if mpath == None:
print "No merlin. Had you asked him about a martin?"
raise SystemError
Agent = win32com.client.Dispatch("Agent.Control.2")
Agent.Connected = 1
Agent.Characters.Load("Merlin", mpath)
Merlin = Agent.Characters("Merlin")
Merlin.Show()
for i in data:
Merlin.Speak(i)
time.sleep(len(i)/5.5)
Merlin.Hide()
0277デフォルトの名無しさん
NGNGfor i in ['WINDOWS', 'WINNT']:
mpath = r"C:\%s\MSAGENT\CHARS\MERLIN.ACS" % i
if os.path.exists(mpath):
break
else:
print "No merlin. Had you asked him about a martin?"
raise SystemError
0278デフォルトの名無しさん
NGNGif os.path.exists(path):
...
else:
print "No Merlin. ...
0279デフォルトの名無しさん
NGNGおしえてえろい人
0280デフォルトの名無しさん
NGNGttp://www.python.jp/pub/doc_jp/lib/node103.html#l2h-826
input.replace("fromstr", "tostr")
ttp://www.python.jp/pub/doc_jp/lib/module-string.html#l2h-811
0281デフォルトの名無しさん
NGNG0282279
NGNG280のを参考に↑をPythonで書こうとしたけど俺の頭じゃ無理でした。
$salt =〜 tr/\x80-\xFF/\x00-\x7F/;
これをPythonではどのように書けばいいかご存知の方いませんか?
0283デフォルトの名無しさん
NGNGtable = chars[0x47:0x5B] # 0x00-0x13 の置き換え
+chars[0x61:0x7B] # 0x14-0x2D の置き換え
+chars[0x2E:0x7B] # 0x2E-0x7A は置き換えない
+chars[0x2E:0x33] # 0x7B-0x7F の置き換え
+chars[0x00:0x80] # 0x80-0xFF の置き換え
としておいて
trip = crypt.crypt(string.translate(salt, table))
0284デフォルトの名無しさん
NGNG02851 ◆x0qRLOoQFY
NGNG>>> import string
>>> table = string._idmap[:128] * 2
>>> s = '\x7f\x80\xff'
>>> s.translate(table)
'\x7f\x00\x7f'
>>>
0286デフォルトの名無しさん
NGNGこのコードは public domain に置くものとする。
import re
re_range = re.compile("(.)-(.)")
def expand_range(match):
i = ord(match.group(1))
j = ord(match.group(2))
return "".join(map(chr, range(i, j + 1)))
def expand(e):
return re_range.sub(expand_range, e)
def tr(s, f, t):
def replace(match, f=expand(f), t=expand(t)):
return t[f.index(match.group())]
r = re.compile("[" + f.replace("[", r"\\[").replace("]", r"\\]") + "]")
return r.sub(replace, s)
if __name__ == "__main__":
assert tr("ABRA-CADABRA", "ABCDR", "abcdr") == "abra-cadabra"
assert tr("ABRA-CADABRA", "A-DR", "a-dr") == "abra-cadabra"
assert tr("ABRA-CADABRA", "-A-DR", " a-dr") == "abra cadabra"
assert tr("ABRA-CADABRA", "A-DR-", "a-dr ") == "abra cadabra"
0287279
NGNG>>286
これ相当に便利ですね。
本体に取り込んでもらえると幸せになれる人が結構いそう。。。
#!/usr/bin/env python
# -*- coding: japanese.shift_jis -*-
import japanese, string, crypt
from tr import * # from http://pc5.2ch.net/test/read.cgi/tech/1061640768/286
tripkey = unicode('kami', 'sjis')
salt = tripkey.encode('sjis') + 'HG'
salt = tr(salt, ':;<=>?@[\]^_`', 'ABCDEFGabcdef')
salt = tr(salt, '\x80-\xFF', '\x00-\x7F')
salt = tr(salt, '\x7B-\x7F', '\x2e-\x32')
salt = tr(salt, '\x14-\x2D', '\x61-\x7A')
salt = tr(salt, '\x00-\x13', '\x47-\x5A')
trip = crypt.crypt(tripkey.encode('sjis'), salt[1:3])
print trip[-10:]
chars = ''.join([chr(x) for x in range(256)])
table = (chars[0x47:0x5B] + chars[0x61:0x7B]+ chars[0x2E:0x7B] + chars[0x2E:0x33]) * 2
table = string.translate(table, string.maketrans(':;<=>?@[\]^_`', 'ABCDEFGabcdef'))
tripkey = unicode('kami', 'sjis')
salt = tripkey.encode('sjis') + 'HG'
salt = string.translate(salt, table)
trip = crypt.crypt(tripkey.encode('sjis'), salt[1:3])
print trip[-10:]
0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNG0290デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNGあるarrayに対して、その値が条件を満たしているインデックスを
取り出す方法はありますでしょうか。
たとえば[1,2,3,4,5,]というarrayに対して
3以上という条件を与えたときに[2,3,4,]を返すといったような
感じです。
ご存知の方がいらっしゃいましたらご教授御願します。
0293デフォルトの名無しさん
NGNGこゆこと?
>>> [index for index, item in enumerate([1, 2, 3, 4, 5]) if item >= 3]
[2, 3, 4]
>>>
0294デフォルトの名無しさん
NGNGa = array([1,2,3,4,5])
Numeric.compress(greater_equal(a, 3), a)
( x>3 なら greater(a, 3), x>=3 なら greater_equal(a, 3) )
を使ってはどうですか.
ttp://www.pfdubois.com/numpy/html2/numpy-7.html
ttp://www.pfdubois.com/numpy/html2/numpy-9.html#pgfId-36520
0295デフォルトの名無しさん
NGNGnonzero(greater(a, 3))
です.
ttp://www.pfdubois.com/numpy/html2/numpy-9.html#pgfId-58067
0297デフォルトの名無しさん
NGNG直接(printf関数を使って)作ることの違いを教えてください。
0298デフォルトの名無しさん
NGNG逆に一緒だと思う理由が知りたい
0299デフォルトの名無しさん
NGNG基本が分かっていない印象
Pythonで簡単なCGIでも作ってみれば?
たとえば掲示板とかさ
で、Zopeでおなじ機能のものを作ってみれば
2つの差が身に沁みてわかるだろう
考えるより手を動かしてみれ
0300デフォルトの名無しさん
NGNG# -*- encoding: japanese.euc_jp -*-
print u"Content-type: text/html; charset=EUC-JP\n"
print u"<html><body>\u306c\u308b\u307d</body></html>"
0301デフォルトの名無しさん
NGNG#!/chroot/bin/cgipython ←これどこかの商用サービス?
0302デフォルトの名無しさん
NGNGcharset=EUC-JP???
0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNG0305<ヽ`∀´>
NGNG0306デフォルトの名無しさん
NGNG>>> thread = lib2ch.open("tech", "1061640768")
>>> thread.age()
>>>
0307デフォルトの名無しさん
NGNGif spam = get_spam():
spam.sell()
elif eggs = get_eggs():
eggs.eat()
やっぱりこのように書かなければいけないのでしょうか:
spam = get_spam()
if spam:
spam.sell()
else:
eggs = get_eggs()
if eggs:
eggs.eat()
0308デフォルトの名無しさん
NGNG0309デフォルトの名無しさん
NGNGどうもです。タブインデントを失敗してすみませんでした。
0310デフォルトの名無しさん
NGNGnavi2ch だとちゃんと見えてるからいいよ。
0311デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
NGNG0313R
NGNG感銘を受けました。
Tkinterを私は使った事がなかったので、これを機会に勉強してみようと思いました。
0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNG0316デフォルトの名無しさん
NGNGjar 化して配れる。
Java で作ったクラスを Jython から呼べるし、 Jython で書いたクラスも
Java から使える。
0317デフォルトの名無しさん
NGNGこれはすごい便利。
Javaって,書きにくいし
0318デフォルトの名無しさん
NGNGBeanShellでよくネ?
Python文法好きだけど.
0319デフォルトの名無しさん
NGNGつまり他人はPythonで書いてくれ、漏れはJavaで書く、ってのが
理想。
0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNG自分の書いたPerlよりましでしょ
0322デフォルトの名無しさん
NGNG他人の書いた下手な字は読めないしな。
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNGfrom Tkinter import Tk, Canvas
W, H, N = 400, 20, 8
root = Tk()
can = Canvas(root, width=W, height=H, highlightthickness=0)
scanner = []
for i in range(N):
scanner.append(can.create_rectangle((W/N)*i, 0, (W/N)*(i+1), H, fill='#000000'))
def decrhex(val):
return '%02x' % (int(val, 16) / 2)
def move(item, direction):
for i in scanner:
color = can.itemcget(i, 'fill')
newcolor = '#%s%s%s' % (decrhex(color[1:3]), decrhex(color[3:5]), decrhex(color[5:7]))
can.itemconfig(i, fill=newcolor)
item += direction
can.itemconfig(item, fill='#ff0000')
root.after(150, lambda: move(item, direction))
if item <= 1 or item >= N:
direction = -direction
can.pack()
move(1, +1)
root.bind_all('<Escape>', lambda ev: root.destroy())
root.title(__doc__)
root.mainloop()
0325デフォルトの名無しさん
NGNGfrom wxPython.wx import *
W, H, N = 400, 20, 10
class KarrApp(wxApp):
def OnInit(self, *args, **kw):
self.frame = wxFrame(None, -1, __doc__)
self.panel = wxPanel(self.frame, -1, size=(W, H))
self.frame.SetSizer(wxBoxSizer(wxVERTICAL));
self.frame.GetSizer().Add(self.panel);
self.mdc = wxMemoryDC();
self.mdc.SelectObject(wxEmptyBitmap(W, H))
self.brushes = [wxBrush(wxColour(0xff>>i, 0, 0)) for i in range(N, 0, -1)+range(N)]
self.colour_stat = [N/2-1, 1]
self.frame.Fit()
self.frame.Show(True)
self.timer = wxTimer(self, -1);
EVT_TIMER(self, self.timer.GetId(), self.OnTimer)
self.timer.Start(100)
self.SetTopWindow(self.frame)
return True
def OnTimer(self, evt):
for i in range(N):
self.mdc.SetBrush(self.brushes[i+self.colour_stat[0]])
self.mdc.DrawRectangle((W/N)*i, 0, (W/N)*(i+1), H)
if self.colour_stat[0]%N == 0: self.colour_stat[1]*=-1
self.colour_stat[0] += self.colour_stat[1]
wxClientDC(self.panel).Blit(0, 0, W, H, self.mdc, 0, 0)
app = KarrApp(0)
app.MainLoop()
0326デフォルトの名無しさん
NGNG>>325 動かない…なぜだろう
0327デフォルトの名無しさん
NGNG0328デフォルトの名無しさん
NGNGwxTimerにGetIdがないと言われる…… -1で置き換えたら動いた
0329デフォルトの名無しさん
NGNG∧_∧
(○) (∀・ )
ヽ|〃 (∩∩ )
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0330デフォルトの名無しさん
NGNG0331デフォルトの名無しさん
NGNGtupleタソ参上ッ(*´ω`*)
0332デフォルトの名無しさん
NGNGif (hoge < 2):
pass
0333325
NGNGfrom java import lang, awt, util
W, H, N = 400, 20, 8
s_colors = [awt.Color(255>>i, 0, 0) for i in range(N, 0, -1)+range(N)]
class JITT(util.TimerTask):
def __init__(self):
self.frame = awt.Frame(__doc__, windowClosing=self.exit)
self.canvas = JITTCanvas()
self.canvas.setSize(W, H)
self.frame.add(self.canvas)
self.frame.pack()
self.color_stat = [N/2-1, 1]
util.Timer().schedule(self, 0, 100)
def run(self):
if self.color_stat[0]%N == 0: self.color_stat[1]*=-1
self.color_stat[0] += self.color_stat[1]
self.canvas.marker = self.color_stat[0]
self.canvas.repaint()
def exit(self, evt): lang.System.exit(0)
class JITTCanvas(awt.Canvas):
def __init__(self, config=None):
awt.Canvas.__init__(self, config)
self.marker = 0
def setmarker(self, i): self.marker = i
def paint(self, g):
for i in range(N):
g.setColor(s_colors[self.marker+i])
g.fillRect(i*W/N, 0, W/N, H)
JITT().frame.setVisible(1)
0334デフォルトの名無しさん
NGNGfrom Tkinter import *
def exchange():
if canvas["bg"] == "blue":
canvas.config(bg="red")
else:
canvas.config(bg="blue")
root.after(30, exchange)
root = Tk()
canvas = Canvas(root, bg="blue")
canvas.pack(fill=BOTH, expand=True)
root.after(30, exchange)
root.mainloop()
0335デフォルトの名無しさん
NGNG0336デフォルトの名無しさん
NGNGm9っ・∀・) ドーン!!!
0337デフォルトの名無しさん
NGNG0338デフォルトの名無しさん
NGNG0339デフォルトの名無しさん
NGNGどこのページを見ればそのひとについてわかりますか?
0340デフォルトの名無しさん
NGNG>>339 釣りがどうか知らんが、
http://pc5.2ch.net/test/read.cgi/php/1079778836/
0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNG次数を指定して順列をリストにして返す関数を作りたいです。
順列って、次数3の時は、これの結果ですけど、
[(x,y,z) for x in range(3) for y in range(3) for z in range(3) if x != y and y != z and z != x]
これの次数を引数にして、順列を返してくれる関数ってのが、うまく作れません。
うまい方法があれば教えてくだたい。>>1
0343デフォルトの名無しさん
NGNG初歩から学ぶのかあるいは1が神なのかが
0344デフォルトの名無しさん
NGNGイイヨイイヨー
実にxxxxxxをやってそうな奴の書き込みだ。
「初歩から学ぶ」 なら「1からPythonを学ぶスレ」
「1が神」なら「>>1からPythonを学ぶスレ」
と自明だろうに。
0345名無しさん@そうだ選挙に行こう
NGNGttp://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/126037
0346名無しさん@そうだ選挙に行こう
NGNGそれは自明でない。
そうではなくて>>1の内容から前者であることが自明である。
0347名無しさん@そうだ選挙に行こう
NGNG0348名無しさん@そうだ選挙に行こう
NGNG順列生成は古典的な例題だからアルゴリズムの本を見ればソースが載ってるよ。
それを Python で書き直せばよいと思われ。
0349デフォルトの名無しさん
NGNG実行すると、クリップボードのテキストデータを書き換えます。
(その1)
"""htmlify clipboard data (for Windows)"""
#2004-07-11, placed into the public domain.
#c.f. http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/150115
import re
from cStringIO import StringIO
import win32clipboard as cb
from win32con import CF_TEXT
def htmlify(src, dst):
for line in src:
line = line.expandtabs(8)
line = line.replace('&', '&')
line = line.replace('<', '<')
line = line.replace('>', '>')
line = re.sub(r'\s{2,}', (lambda m: m.group().replace(' ', ' ')), line)
dst.write(line+'\r\n')
0350デフォルトの名無しさん
NGNGdef getText():
cb.OpenClipboard()
s = cb.GetClipboardData(CF_TEXT)
cb.CloseClipboard()
return s
def setText(s):
cb.OpenClipboard()
cb.EmptyClipboard()
cb.SetClipboardData(CF_TEXT, s)
cb.CloseClipboard()
def main():
buf = StringIO()
htmlify(getText().splitlines(), buf)
setText(buf.getvalue())
if __name__ == '__main__':
main()
03511 ◆x0qRLOoQFY
NGNG>>343-344,346 1は紙だ!
def removed(elem, seq):
newseq = list(seq[:])
newseq.remove(elem)
return newseq
def permute(seq):
if len(seq) < 2:
return list(seq)
elif len(seq) == 2:
return [[seq[0], seq[1]], [seq[1], seq[0]]]
else:
out = []
for head in seq:
for tail in permute(removed(head, seq)):
out.append([head] + tail)
return out
if __name__ == '__main__':
from pprint import pprint
pprint(permute(range(4)))
0352342
NGNG再帰関数って私は学校の時に、なんか演習でフラクタル図形を描いた以外にはやった事がなくて、参っていました。今後、>>351を参考に作りたいと思いますね。
>>348
実は、私はこれについて、なにも調べたりせずに独自で作ってました。で、こんなのが出来てきました。凶悪です。
作成中で、まだ関数にしてないですし、変数の名前もヒドイですが、結果は結構出ています。インデントはここに貼るために全角スペースにしました。便利なので、Kaaeditで作っています。おまけに、コメントも
from operator import mul
from random import randint
deg = randint(2,5)
print '= '*20,deg
degKai = [reduce(mul, range(1,i+1)) for i in range(deg,0,-1)]+[1]
lsRet = []
for i in range(0,degKai[0],1):
tmp =[]
lsDeg = range(deg)
for j in range(1,deg+1):
tmp.append(lsDeg.pop((i/degKai[j])%(deg-j+1)))
lsRet.append(tmp)
for l in lsRet: print l
0353342
NGNGアイデアとしては、順列の作るときに pop を使おうと思ったのと、
順列に 0 から番号を振り、その番号から順列を作れないかな?と考えた点です。
自分で作って「これは激しいな」と思いました。
例えばこれが4次の時の pop のインデックスになるリストのリストです。↓
[(x,y,z,v) for x in range(4) for y in range(3) for z in range(2) for v in range(0)]
あまりうまい説明が見付かりませんけど。
0354342
NGNG[(x,y,z,v) for x in range(4) for y in range(3) for z in range(2) for v in range(1)]
です。最後が for の range がの引数が違ってました。
>>352も改めて見ると、キタナ過ぎですね。w
手元で上手く直せたらまた、貼りますね。
0355デフォルトの名無しさん
NGNGdeg = 4
kai = reduce(lambda a,b:a*b, range(1,deg+1))
lsIdx = []
for i in xrange(kai):
lsTmp = []
for j in range(1,deg+1):
lsTmp.insert(0,i%j)
i = i/j
lsIdx.append(lsTmp)
lsPer = []
for i in xrange(kai):
lsTmp = []
lsPop = range(deg)
for j in lsIdx[i]:
lsTmp.append(lsPop.pop(j))
lsPer.append(lsTmp)
for i in xrange(kai):
print i,lsIdx[i],lsPer[i]
0356デフォルトの名無しさん
NGNGimport copy, operator
def permute(n):
if n == 0:
return [[0]]
return reduce(operator.concat, [[p[:i]+[n]+p[i:] for i in range(n+1)] for p in permute(n-1)])
for i in xrange(4):
plist = permute(i)
plist.sort()
print len(plist), plist
0357デフォルトの名無しさん
NGNG0358342
NGNGコード量としては、最小ですね。
It's a sony!(スラング「こいつぁすげぇぜ」の意)
って感じですね。
最近になってやっとそのURLが私へのレスと分かり、その辺見入りました。>>345
下のURLにある、commentのアルゴリズムが全く完全に最強っぽかったです。
大変参考になりました。ありがとうございました。
0359デフォルトの名無しさん
NGNG勃起した。
0360デフォルトの名無しさん
NGNGdef permute(n):
if n == 0:
return [[0]]
return [p[:i]+[n]+p[i:] for i in range(n+1) for p in permute(n-1)]
にしたら大分高速になりました.
2.4 の generator expression を使って,generator を返させるとこうなります.
def permutec(n):
if n == 0:
return [[0]]
return (p[:i]+[n]+p[i:] for i in range(n+1) for p in permutec(n-1))
g = permutec(6)
while True:
try:
print g.next()
except:
break
これだと generator を返すので,permute(10000000) とかやっても一瞬.
あと,>>351 のコードを2.4a1 で実行したら
TypeError: list objects are unhashable
になった.なぜだろう.
0361デフォルトの名無しさん
NGNG正常です
0362デフォルトの名無しさん
NGNGgeneratorとは、私はまだ触れたことがないのですけど、xrangeみたいなものですね?
ものすごく適切な実装に思えます。
ただ、結果の順序がlexicographic orderでないのですけど、sortって出来るのでしょうか?
0363342
NGNGln = len(ls)
if ln == 1: return [ls]
ls = [ls[i:i+1]+p for i in range(ln) for p in permutec(ls[:i]+ls[i+1:])]
return ls
from random import randint
from time import time
n = randint(2,8)
cst = -time()
g = permutec(range(n))
cst += time()
#for i in g: print i
print n,'次順列',cst,'sec'
私も>>360さんに習って作ってみました。
そして、これはちゃんと辞書式順序で結果が返されます。
個人的には「出し切った」なと、思ってます。(w
あとgeneratorが気になるのですけど。
0364342
NGNGdef permutec_m(ls,m):
if m == 1: return [[j] for j in ls]
return [ls[i:i+1]+p for i in range(len(ls)) for p in permutec_m(ls[:i]+ls[i+1:],m-1)]
# # # test
from random import randint
from time import time
n = randint(2,6)
m = randint(1,n-1)
cst = -time()
g = permutec_m(list('ABCDEFGHIJK'[:n]),m)
cst += time()
for i in g: print i
print (n,m),'順列',len(g),cst,'sec'
0365342
NGNG0366デフォルトの名無しさん
NGNG0367デフォルトの名無しさん
NGNG# A conjoin-based N-Queens solver.
...
0368342
NGNG待っている人がいたとは、すいません。
斜めのロジックは後から付け足すとして、縦横の(nナイト問題?)にしてやってみます。
0369342
NGNGdef nknight(deg,lst=None):
if lst == None: lst =[[ '' for x in range(deg)] for y in range(deg)]
return line(lst)
def line(ls):
if len(ls) == 1:
tmp = ls[0][:]
tmp[ls[0].index('')] = '○'
return [tmp]
lsRet=[]
for i in range(len(ls[0])):
tmp=[]
tmp.append(['●']*len(ls[0]))
for l in ls[1:]:
tmp.append(l[:])
if ls[0][i]=='':
tmp[0][i] = '○'
for l in tmp[1:]:
l[i] = '●'
for s in line(tmp[1:]):
lsRet.append(tmp[0]+s)
return lsRet
# # # # # # # # # # # # # # # # # # # #
print '# '*20
rec = nknight(4)
for i in rec: print i
0370デフォルトの名無しさん
NGNG0371デフォルトの名無しさん
NGNGq は [3, 0, 1, 2] のようなリストで,
この例だと,コマが (0, 3), (1, 0), (2, 1), (3, 2) に
置かれているという意味.
hit の条件式を変えれば,queens にも knight にもなる.
def hit(x1, y1, x2, y2):
return x1 == x2 or y1 == y2 or abs(x1-x2) == abs(y1-y2)
def safe(q, ny):
nx = len(q)
for x, y in enumerate(q):
if hit(x, y, nx, ny):
return False
return True
def queens(q, n):
if len(q) == n:
return [q]
else:
Q = []
for y in range(n):
if safe(q, y):
for i in queens(q + [y], n):
Q.append(i)
return Q
def nqueens(n):
return queens([], n)
print nqueens(4)
0372デフォルトの名無しさん
NGNGdef queens(q, n):
if len(q) == n:
yield q
else:
for y in range(n):
if safe(q, y):
for i in queens(q + [y], n):
yield i
0373デフォルトの名無しさん
NGNG持つようにすると,毎回 enumerate しなくて済む.
あと,毎回 len で q のリストの長さを求めるかわりに
queens の引数に渡してしまうようにした.
def safe(q, nx, ny):
for x, y in q:
if hit(x, y, nx, ny):
return False
return True
def queens(q, L, n):
if L == n:
yield q
else:
for y in range(n):
if safe(q, L, y):
for i in queens(q + [(L, y)], L+1, n):
yield i
0374342
NGNG私のは全パタン網羅するように作ってます。
def nknight(deg,lst=None):
if lst == None: lst =[[ '' for x in range(deg)] for y in range(deg)]
return line(lst)
def line(ls):
if len(ls) == 1:
tmp = ls[0][:]
tmp[ls[0].index('')] = '○'
return [[tmp]]
lsRet=[]
for i in range(len(ls[0])):
tmp=[]
tmp.append(['●']*len(ls[0]))
for l in ls[1:]:
tmp.append(l[:])
if ls[0][i]=='':
tmp[0][i] = '○'
for l in tmp[1:]:
l[i] = '●'
for s in line(tmp[1:]):
lsRet.append([tmp[0]]+s)
return lsRet
# # # # # # # # # # # # # # # # # # # #
print '# '*20
rec = nknight(4)
print rec
print len(rec)
0375342
NGNGdef nknight(deg,lst=None):
if lst == None: lst =[[ '' for x in range(deg)] for y in range(deg)]
return line(lst)
def line(ls):
if len(ls) == 1:
tmp = ls[0][:]
try: tmp[ls[0].index('')] = '○'
except: return []
return [[tmp]]
lsRet=[]
for i in range(len(ls[0])):
tmp=[]
tmp.append(['●']*len(ls[0]))
for l in ls[1:]:
tmp.append(l[:])
if ls[0][i]=='':
tmp[0][i] = '○'
for l in tmp[1:]:
l[i] = '●'
j=1
for l in tmp[1:]:
try: l[i+j] = '●'
except: pass
try:
if i>=j: l[i-j] = '●'
except: pass
j += 1
for s in line(tmp[1:]):
lsRet.append([tmp[0]]+s)
return lsRet
0376342
NGNG実際はルークR(ook)がそうでした。
うう、n-hisyaにすれば良かった。。。knightは4方向移動可能な桂馬でした。
ttp://www.jca-chess.com/chess-2.htm
>>367
見てみました。こんなところでも扱われているなんて、とてもメジャーな課題なんですね。
>>371
ありがとうです。
> q は [3, 0, 1, 2] のようなリストで,
ってのも、最初はエッと思いましたけど、慣れるともっともに思えました。
次は私もこの形で値を返すロジックにしてみたいと思います。
次のアイデア:
1.n次の盤面をあらわす、n個のrange(n)を含むリストを用意する。
→
2.そのリストを受け取って、その0行目のリストのindexにQを配置すると考える。(配置不可能なら空リストを返す。)
リスト長が1なら、Q配置可能なindex値全部をリストのリストで返す。
そのQにより、配置不可能になるindexをリスト[1:0]より、removeする。
そうして更新されたリスト[1:]を再帰的に処理する。
Qの配置を全部尽くした結果のリストのリストを返す。
これで、出来るかな?この次はユニーク解とかを考えるかな?
実は私は先週はLL土曜だと思っていて出来なくてグッタリしてたので、今週だと分かってからはガゼンやる気が出ています。
LL土曜では、分散処理とかをやるのかな?現在n=23だったか24までの解が出るんでしたっけ?それを超えるアイデアが発表されるのかなぁ?
generatorはこうだよって話になるのかなぁ?
0377342
NGNG実際はルークR(ook)がそうでした。
うう、n-hisyaにすれば良かった。。。knightは4方向移動可能な桂馬でした。ううぅ
ttp://www.jca-chess.com/chess-2.htm
>>367
見てみました。こんなところでも扱われているなんて、とてもメジャーな課題なんですね。
>>371
ありがとうです。
> q は [3, 0, 1, 2] のようなリストで,
ってのも、最初はエッと思いましたけど、慣れるともっともに思えました。
次は私もこの形で値を返すロジックにしてみたいと思います。
0378342
NGNG0379デフォルトの名無しさん
NGNG0381342
NGNG■□□■ 先手必勝とかになりそうだなぁ。(予想)
■□□■ ちなみに、4×4のボードだと、
□■■□ 先手が□(左図)に打てば、必勝だと思う。
0382342
NGNG■□■■□■ 先手が最初にド真ん中に打って、
■■□□■■ 後は後手の打った場所の中心対象に打てば、必勝。
■■□□■■ (これは数学者秋山仁がよく書く話)
■□■■□■ 6×6の場合は今のところ私には、
□■■■■□ Queenを4つ置いて5つ目が置けないパターンが見付からないので、
多分、先手がこの図の□に置けば必勝になると思う。
で、やっと通常の8×8のチェッカボードに行き着くのだけど、
これもやっぱりQueenを6つ置いて7つ目が置けないパターンがあれば別だけど、
先手がQueenを8つ置ける配置を崩すだけで、先手必勝になると考えられそう。
6*6でQueenを4つ置いて5つ目が置けないパターンを探すプログラム、
8*8でQueenを6つ置いて7つ目が置けないパターンを探すプログラムはすぐに作れるかなぁ、、。
0383デフォルトの名無しさん
NGNG□○●□□□□○
□□○●□□○●
□□□○●○●□
□□□□○●□□
□□□○●○●□
□□○●□□○●
□○●□□□□○
○●□□□□□□
このゲーム破綻してない?
0384342
NGNG●●●●●○ え、Queenは縦横斜めにキクから、
●○●●●● そうはならないと思うのだけど?
●●●●●● でも、パターン数は少ないみたいなんで、
●●●●●● 総当りでいけるッポイですね。
●●○●●● ←382で言った直後に、
6*6で4つ以上置けないパターンを発見しました。(すごい汚いプログラムで)他にもあるかも、、。
そしたら、先手はこうならないように持ち込むアルゴリズムが必要ですね。
8*8も6個以上置けない配置が見付かるかなぁ?
私はこのゲームは'先手必勝'になると思う!
0385342
NGNG●●○●●●●● ユニーク解として、あの形1個でした。
●●●●○●●● と、言うわけで、先手は、6個置けるパターンと、
●○●●●●●● 4個置けるパターンさえ崩せば、必勝。
●●●○●●●●
●●●●●●●● 8*8の場合は、驚いた事に、
●●●●●●●● 5個しか置けないパターンを見つけてしまった。
●●●●●●●● きっと、8,7,6,5個を置き次が置けないパターンがあり、
先手は8個と6個のパターンを避けると言う戦法で、必勝になる!たぶん!
私は、Pythonを応援しています。(sage
>>370
私はリスプって知らないですけど、
ttp://cruel.org/freeware/hacker.html
ここでPythonは良いように書かれているので、この文章が書かれた当時でもハッカーからの注目されてたんでないか?と思ってます。
0386342
NGNGこの対戦N-Queenのルールは「他のクィーンの効き筋に置いたらそのプレイヤーの負け」という事は、
手駒のキキ筋は考えなくても良いのね。
と、なるとこれまでの考察はいきなり無に帰してしまうなぁ。
明日は飲み会なので、あさってまた考えよう。。。
0387342
NGNGこんなふうにして調べようと思った。
0: 駒もなく、キキ筋でも無いマス
1: 先手の人のキキ筋のマス
2: 後手の人のキキ筋マス
3: 駒が置かれた または 先手と後手のキキ筋のマス
1311 例えば、4*4の盤で、
1110 先手(1,0)
0101
0100
1331 次に後手(2,3)とすると、こんな風になる。
3130 これで、上手く表されているんでないかなと。
0323
2332
0388342
NGNGdef nqueen(deg,lst=None):
if lst == None: lst =[[ '' for x in range(deg)] for y in range(deg)]
return line(lst)
def line(ls):
for l in ls:
if not('' in l): return []
if len(ls) == 1:
n = len(ls[0])
return [[['●']*(i)+['○']+['●']*(n-i-1)] for i in range(n) if ls[0][i] == '']
lsRet=[]
for i in range(len(ls[0])):
tmp=[]
tmp.append(['●']*len(ls[0]))
for l in ls[1:]:
tmp.append(l[:])
if ls[0][i]=='':
tmp[0][i] = '○'
j=1
for l in tmp[1:]:
l[i] = '●'
try: l[i+j] = '●'
except: pass
try:
if i>=j: l[i-j] = '●'
except: pass
j += 1
for s in line(tmp[1:]):
lsRet.append([tmp[0]]+s)
return lsRet
0389342
NGNGどっかで見た事のある値が返ってくるなぁ。
hit()の条件を変えて、nクイーンにする予定。
def nqueen(deg,lst = None):
if lst == None: lst = [range(deg) for i in range(deg)]
elif deg == 0: lst = [x for x in lst]
else: lst = [x[:deg] for x in lst[:deg]]
return line(lst)
def line(ls):
if [] in ls: return []
if len(ls) == 1: return [[x] for x in ls[0]]
lsRet=[]
for idx in ls[0]:
lsTmp = hit(idx,ls[1:])
for p in line(lsTmp):
lsRet.append([idx]+p )
return lsRet
def hit(i,l):
return [[y for y in x if y != i] for x in l]
n=4
rec = nqueen(n)
print rec,len(rec)
0390342
NGNG>>389のものと実行速度を比べて、それほど早くなってないので、ガックリ。
def nqueen(deg,lst = None):
if lst == None: lst = [range(deg) for i in range(deg)]
elif deg == 0: lst = [x for x in lst]
else: lst = [x[:deg] for x in lst[:deg]]
return line(lst)
def line(ls):
if [] in ls: return []
if len(ls) == 1: return [[x] for x in ls[0]]
return [[idx]+l for idx in ls[0] for l in line(hit(idx,ls[1:]))]
def hit(i,l):
return [[y for y in l[j] if y != i-j-1 and y != i+j+1 and y != i ] for j in range(len(l))]
0391デフォルトの名無しさん
NGNG0392デフォルトの名無しさん
NGNG0393デフォルトの名無しさん
NGNG私は、どうしてPythonと大学を結ぶといつも高知大学がコメントされるのかから、
よくわからないけど、どーしてだろう?
(伯爵の人が高知大学の関係の人だったっけ??
0394デフォルトの名無しさん
NGNGPythonは学ぶというより使いこなすもの,って感じなんだが...
部外者からは敷居が高く見えるんかなあ?
0395デフォルトの名無しさん
NGNG恐らくコーチだから....?
失礼!
0396デフォルトの名無しさん
NGNG> 私は、どうしてPythonと大学を結ぶといつも高知大学がコメントされるのかから、
> よくわからないけど、どーしてだろう?
過去レス参照しれ
本スレでPythonの宿題を丸投げした奴がいるがそいつがコーチ大らしいので
そういう流れになったということ
0397デフォルトの名無しさん
NGNGあれは出題者本人の書き込みらしいよ。
0398デフォルトの名無しさん
NGNG珍しいとは思うけど、それを求めて高知大学を選ぶってのは、受験生と言う段階では見切り過ぎなんでないかと私は思う。
「オタク学の講義を受けたいから、〜(忘れた)大学行く」と言うのと変わらないとは言わないが、
例えば「俺も高知大学を卒業する頃にはきっとPythonバリバリになってるぜ」と言うと、
なんだか「技能取得」とは「時間が解決してくれる問題」みたいに聞こえないだろうか。
大学卒業のために大学に行こうと考え、その付加価値として高知大学に行ってPythonの講義が受けたいと言う、そんな人も大学は受け入れていると思うが、
大学は本来、研究者を受け入れるための地盤なので、
「うぉお、学内の全学食の全メニュー制覇してやる。ジュルジュル」じゃなかった、
「うぉお、新しいプログラミング言語を作ってやるぜ。ぐへへ、ジュルジュル」みたいな熱い情熱を燃やす人には、とても良く機能してくれると思う。多分、そのハズ。
そんな時にPythonなんて数ある言語のひとつでしかないし、なにも今からPython一本に絞って考える事はないと思う。
それに高知大学のあの先生だって、Pythonが専門の先生ではないだろうよ。つーか、そんな大学教授いたら怖い。いない。
0399デフォルトの名無しさん
NGNG0400デフォルトの名無しさん
NGNG0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNG日本国外ではさ
0403デフォルトの名無しさん
NGNG> Pythonはコード量を最も少なくできる
そうなのか?
0404デフォルトの名無しさん
NGNGこれ、世界の常識アルヨ
0405デフォルトの名無しさん
NGNG+1
0406デフォルトの名無しさん
NGNG-1
0407デフォルトの名無しさん
NGNGいや、確かにCだのJavaだのよりは少なくなるけれど「最も」という形容は不適当だと思うぞ。
スクリプト言語の中でだと冗長な部類だろうし。
0408342
NGNG置ける場所にランダムに駒を置くロジックだったので、少々がっくり、、、。
0409デフォルトの名無しさん
NGNG他の言語もだいたいそんなだったらしいね。
もっと準備期間があれば変わったのかも。
でも、LLでゲーム解探索プログラムってのはいいかも、と思った。
もう少し規模と準備期間を大きくして、ロボコンみたいなイベントに
できないかな(LL人口がもっと大きくならないとダメだけど)。
0410342
NGNGコード量が少ないって話題も出てるので、遅いけどコード量が少ないパターンをここ貼る。
行列式とは → http://ysserve.cs.shinshu-u.ac.jp/Lecture/linear/node20.html
def det(mtrx):
deg = len(mtrx)
if deg == 1: return mtrx[0][0]
return reduce(lambda a,b:a+b ,[0]+[cmp(0.5,(j)%2)*mtrx[j][0]*det([l[1:] for l in mtrx[:j]+mtrx[j+1:]]) for j in range(deg) if mtrx[j] not in mtrx[:j]+mtrx[j+1:]])
# # # test
from random import randint
from time import time
n = randint(2,8)
matrix = [[randint(0,1) for x in range(n)] for y in range(n)]
for i in matrix: print i
t = -time()
ret = det(matrix)
t += time()
print n,'次',t,'sec det(M) =',ret
0411342
NGNGなんと早いレスにビックリ。
次からは実装の方法での対決と合わせて、
ゲームのロジックでの対決がメインになるといいですね。
2*2行列の行列式:
[[1,2],[3,4]] → 1*4-2*3 = -2
さっきの参照のページには一般の次数の定義が書いてあります。
0412デフォルトの名無しさん
NGNGしょうもないことだけど、教えてください。
リストの各要素ごとを足すのってどうすればいいの?
a=[[1.2],[3,4]] と b=[[5,6],[7,8]] から [[1,2,5,6],[3,4,7,8]] を作りたいんです。
どうしてもできなくて、今は
def add(x,y):
return x+y
c=map(add,a,b)
とかしています。あまりの不恰好さに死にそうです。誰か私を助けて!
0413342
NGNG>>412の方が直感的で良いように思いました。
a=[[1, 2], [3, 4]]
b=[[5, 6], [7, 8]]
print [[z for y in x for z in y] for x in zip(a,b)]
0414デフォルトの名無しさん
NGNGそれでいいと思う。
一行に収めるなら、lambda を使って、
c = map(lambda x, y: x+y, a, b)
0415デフォルトの名無しさん
NGNG[[1, 2, 5, 6], [3, 4, 7, 8]]
0416デフォルトの名無しさん
NGNG[a[i]+b[i] for i in range(len(a))]
>>412が不恰好とは思わないけど。
0417412
NGNGzip は有用そうですね。覚えておきます。リストの中での for の使い方
も特徴的ですごく面白い!
[x+y for x in a for y in b]
でどうよ?って思ったら直積になっちゃうのね。私バカすぎ。
>>414
なるほど! たかが足すだけのために add を定義しているところが
耐えられなかったんだけど、lambda って方法があるんですね。
調べてみると Lisp からきたキーワードとか。(でも Lisp 知らない)
Java の匿名クラスの関数版みたいなもの??
>>415
あ〜それ!!それを知りたかったの!始めは
map(+,a,b)
とか書いて怒られたり… __add__ って list の static method なのかな??
>>416
あ、それもシンプルでいいかも。っていうかそれくらい気付けよ>自分
上でも書いたけど、ちょっと使うだけのために def で関数定義がなんか
格好悪いかなぁ〜と。
やっぱりPython デスクトップリファレンスだけじゃだめだな、こりゃ…
ちゃんと本買ってこよ。
413さん、414さん、 415 さん、416さんありがとうございました。
0418デフォルトの名無しさん
NGNG書籍形態にこだわるならともかく、そうでないなら
http://www.python.jp/pub/doc_jp/
で充分だったり。
lambdaは匿名クラスというより匿名関数/匿名メソッド
list.__add__は別にスタティックメソッドというわけじゃないんだけど、
a = [0]かつb = [1]だとして、a.__add__(b)はlist.__add__(a, b)
という意味であるっていうPythonの特徴を利用してる(これがメソッド定義で
必ず第一引数(self)がなければならない理由)。
0419342
NGNGリストの内包表記の応用って事で。おねがいします
0420デフォルトの名無しさん
NGNG「辞書登録出来ない」なんてIMEにあり得ない。
しかも、ほいほい落ちるし。バグだらけ。
とても、商品とは思えないね。
BeOSはユーザーが少ないからどうでもいいやと思うなよ。 >PC-CRAFT
0421デフォルトの名無しさん
NGNG0422デフォルトの名無しさん
NGNGUTF-8の"−"をShift_JISの"−"に変換したいのですが、
JapaneseCodecsをインストールして.codec("sjis")で変換しようとしたら
UnicodeError: Shift_JIS encoding error: invalid character \uff0d
とエラーになってしまいました。
回避策をご存知の方はいらっしゃいますでしょうか?
0423デフォルトの名無しさん
NGNGマイナスならsjisやめてcp932にする
ダッシュなら−やめて―にする
でどうだろう。試してないが(ぉぃ
0424デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNG互換文字の「全角マイナス」を使っている事そのものが問題なので、
shift-JIS に encode する前に本当に使いたい文字に置換する必要が
あるかと。(あるいは 423 の言うように cp932 を使うか)
あらかじめ u"\u2212" (数学でのマイナス) に置換するのが正しい
処置でしょうね。
0426422
NGNGありがとうございます。
今XMLを利用したAA保管庫を作ろうかと思っていて、
−とか〜とかも扱う必要があったのです。
.codec("cp932")
.codec("ms932")
どちらでもいけました。
この2つはshift_jisを完全に包含してるものなんでしょうか?
0427デフォルトの名無しさん
NGNGMS932 == CP932 は、文字セットはShift_JISの全文字+αなんだけど、
UnicodeとのマッピングルールがShift_JISと違う文字があるので注意。
0428422
NGNGぱっと見はCP932オンリーでも問題なさそうなんですけどね。
とりあえず様子を見たいと思います。ありがとうございました。
0429デフォルトの名無しさん
NGNG0430デフォルトの名無しさん
NGNGつーか「混ぜるな危険」ってことだよ(w
0431422
NGNG0432862
NGNG0433デフォルトの名無しさん
NGNG意味不明ー
0434デフォルトの名無しさん
NGNG0435デフォルトの名無しさん
NGNG[WebProg]【半角】メールで2chAAを使うには【Pゴシック】
http://pc5.2ch.net/test/read.cgi/php/1060009605/
0436デフォルトの名無しさん
NGNGただそのままPythonでXMLに突っ込むとEncodeErrorになるからBase64化したら?
っていう話。
0437デフォルトの名無しさん
NGNG0438デフォルトの名無しさん
NGNGやっぱりよく分からん。
base64 でエンコードされた XMLファイルなんて見たことないぞ。
0439デフォルトの名無しさん
NGNGCDATA
0440デフォルトの名無しさん
NGNG意味ねぇ。w
素直に文字参照使えよ。
0441デフォルトの名無しさん
NGNG0442デフォルトの名無しさん
NGNGスレタイが「1から〜」と0 originでないのが気になるが
0443デフォルトの名無しさん
NGNG厨の立てた駄スレだけれど、Python入門スレという扱いでいいんじゃないかな。
0444デフォルトの名無しさん
NGNG0445デフォルトの名無しさん
NGNG> こっちがPython本スレ?
厨の立てた重複スレだよ。
0446デフォルトの名無しさん
NGNGだったら削除依頼しなよ。
するつもりがないんだったら、何らかの形で利用する道を模索しないと。
入門スレというのはひとつの手だと思う。
0447デフォルトの名無しさん
NGNGメタ議論はどうでもいい。
0448デフォルトの名無しさん
NGNG~~~ ~~~
0449デフォルトの名無しさん
NGNGpython2.3.4です
0450デフォルトの名無しさん
NGNG0451デフォルトの名無しさん
NGNGZopeでpython使ってて問題起きたってならともかく、
インストールの方法すら知らないんでしょ?
Zopeはwebprob板にスレがあったと思うのでそちらでどーぞ。
0452デフォルトの名無しさん
NGNGZope BitTorrent
PyQt PyGTK
よく使うの(予定)
0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNGhttp://www.jython.jp/
0455デフォルトの名無しさん
NGNG遅い分だけ機能面で得をしている部分はどこですか?
普通に使っている分には困らないけど教えてください。
0456デフォルトの名無しさん
NGNG宇宙の法則
0457デフォルトの名無しさん
NGNG0458デフォルトの名無しさん
NGNGPython/ceval.c でも読んでみれば?
0459デフォルトの名無しさん
NGNGあがとうです。真っ先に
/* XXX TO DO:
XXX speed up searching for keywords by using a dictionary
XXX document it!
*/
と書いてあるのが目に入りました。
有益な仕事をしている対価として遅いんじゃなくて
今までそれほど速くしようとは思ってこなかったということかな。と。
0460デフォルトの名無しさん
NGNG> 有益な仕事をしている対価として遅いんじゃなくて
こんな大胆な結論を出すとはかなりの電波ですね。
0461デフォルトの名無しさん
NGNGべつにこれでいいと思ってるんだったら「速くしたい」ってコメント残しとく?
0462デフォルトの名無しさん
NGNG他の言語でやってないこんなことやあんなことが実行速度を落としてる
みたいなことを聞いてみたいだけのアホですので。
0463デフォルトの名無しさん
NGNG君がどの程度コンピュータの事を知っているか分からないので
答えようが無い、というのが正直な所。
Perl や Ruby も含めた中間言語インタープリタがコンパイラ系の
言語よりも遅い理由は理解している?
ここらへんからして分かっていないのならばまず「コンパイラと
インタープリタ」あたりの言葉でググって入門ページを探す事。
(コンピュータの入門書を読むのもいいね)
0464デフォルトの名無しさん
NGNG0465デフォルトの名無しさん
NGNGごもっとも。CPUネイティブなコードにコンパイルするものとは比べてません。
ttp://www-6.ibm.com/jp/developerworks/linux/021220/j_l-psyco.html
とか読んで思ったのはPsycoでできるんだったらなんでPythonでさいしょから
組み込まないの、とか、そういう。
もしかして今や遅いという話そのものがプラズマ?
0466デフォルトの名無しさん
NGNGあ、そうですね。Javaとは並べること自体おかしい。
PythonはPerlより便利でLispより読みやすいのはわかるので
> 有益な仕事をしている対価として遅いんじゃなくて
は撤回します。すみません。
でもRuby速いよという人にPythonもPsyco使えばとかいうと
Rubyはそんなもの使わなくてもいいと返されそう。
> 今までそれほど速くしようとは思ってこなかったということかな。と。
というのは合ってるのかな。
0467デフォルトの名無しさん
NGNGだから今のパフォーマンスなのね。
0468デフォルトの名無しさん
NGNG単に Perl や Ruby との比較だったら「思想の違い」くらいの理由しか考えられないですね。
例えば Unicode 対応に対して、Python だと unicode 文字列型に変換して扱うのが
本道だけれども、Ruby だと素の多バイト文字テキストのまま扱おうとする、とか。
Ruby は sed&awk → Perl と来たUnix流テキスト処理言語の末裔だけれども、
Python は BASIC → ABC という流れを汲む教育用言語の末裔。
なのでコスト意識も違ってくる。
まあ、
>> 今までそれほど速くしようとは思ってこなかったということかな。と。
>というのは合ってるのかな。
というので正解だと思います。
そもそも Python の場合、本領は「実行可能な擬似コード」であって、本番の懸案は
(Python で十分に検討した後) C で作る、という発想が強いから、(所詮モックアップ
である)Python のコードでの速度は気にしない、というか下手な最適化によって本質
と関係ないバグが入り込むのを嫌う、というのもあるかも。
0469デフォルトの名無しさん
NGNG>Python はあくまで教育用言語です。これが大前提。
えっ実用で使われてるじゃん。Redhatとかで。
そんなこと言わないほうがいいのでは?
0470デフォルトの名無しさん
NGNG以下、FAQ 等であれば失礼します。検索してもそれらしき情報がなかったので。
http://www.python.jp/Zope/download/JapaneseCodecs
の日本語 codec を使うと、codecs.open() の errors 引数が無視され、何を指定しても
"strict" 扱いになるように思えます。
例えば codecs.open("filename", "r", "ms932", "replace") しても、sjis 範囲外の文字で例外が出ます。
調べた所、 Python/Lib/site-packages/japanese/c/ms932.py 等の StreamReader._read() の最後の return が、
return self.decode(data)[0]
ではなくて
return self.decode(data, self.errors)[0]
なのではないかと思いましたが、どうなんでしょうか?
何か使い方が間違ってたりしますか?
0471デフォルトの名無しさん
NGNG別に問題ないです。
Python は Perl のような壊滅的な書式を許さないにもかかわらず「ラフに」
書くことができるという意味においての「教育的」配慮が汎用性を生み出して
いるのですから。
0472デフォルトの名無しさん
NGNG昔 Basic が教育用とされたのと同程度に教育的なだけじゃないかな・・・
Ruby は興味あるんだけど、Perl のダメな所を引き継ぎすぎって感じがするんだよなあ。
0473デフォルトの名無しさん
NGNGそんなの各言語のUTF8化でお役目御免じゃんw
過去の汚物だな >Ruby
0474デフォルトの名無しさん
NGNG使い方は間違っています。
対象のファイルは sjis (というか cp932)である事が大前提であって、
対象のファイルが sjis であるかどうか調べる関数ではないですし。
(sjis に無い Unicode 文字を書き込んだ時に replace するだけ)
でもそれはそれとしてバグっぽいですね。
codecs.open("filename", "r", "ascii", "replace")
だとちゃんと replace されますし。
でも仕様の範囲では正常動作している感じ。
import codecs
f = codecs.open("test.txt", "r", "cp932", "replace")
a = f.read()
f.close()
f = codecs.open("testascii.txt", "w", "ascii", "replace")
f.write(a)
f.close()
f = codecs.open("testsjis.txt", "w", "sjis", "replace")
f.write(a)
f.close()
===== test.txt の内容 ======
abcde.
ほげほげ
�W
===== ここまで =====
0475デフォルトの名無しさん
NGNG同じ言葉をSJIS版Pythonのインストーラーを作っている人にも言ってみよう。
0476デフォルトの名無しさん
NGNG0477デフォルトの名無しさん
NGNG大嫌いという訳でもないが(Javaの方が嫌いだ)。
Tkを入れるついでに入れてやってる付属品。
一度も使う機会はないけどな(これからもないだろう)。
0478デフォルトの名無しさん
NGNGcodecs.open() の引数に errors がある以上、未定義バイトの処理を選択できる所までが 「仕様」 だと思うんですけど・・・
ソースみる限り、codec 単体としては replace 等は実装もしてるし、テストにも入ってるんですよね。
ただ codecs.open() の引数が codec に伝わってないだけっぽくて。
0479デフォルトの名無しさん
NGNG古いPascalがお手本兼実用だった時代みたいにPythonがお手本兼実用なのですね。
くだらない話にお付き合いいただき感謝します。納得しました。
0480デフォルトの名無しさん
NGNG>codecs.open() の引数に errors がある以上、未定義バイトの処理を選択できる所までが 「仕様」 だと思うんですけど・・・
unicode よりも大きなセットの文字集合(例えばTRONのTAD)から "r" する時には意味が生じるので、
"r" でも errors を指定出来るのは当然の仕様ですから、それをもって『未定義バイトの処理を選択
できる所までが 「仕様」』とは言い切れない気がする。
まあ例え仕様外であったとしても、この場合 "ascii" での挙動に合わせるのが常識だから、単なる
ミスでしょうね。
作者にメールすれば直すのじゃないかな。
0481デフォルトの名無しさん
NGNG作者様にメールしてみる事にします。
0482デフォルトの名無しさん
NGNG0483デフォルトの名無しさん
NGNG入門者がみんな思う事です。
代わりにディクショナリかリストを使います。
foo = 'stop'
print {'go': 'green', 'slow':'yellow', 'stop':'red'}[foo]
->'red'
複雑にしたいならディクショナリに関数を仕込む
0484デフォルトの名無しさん
NGNGPythonってCoolだね。
0485デフォルトの名無しさん
NGNG関数を仕込むというのは、caseに書く処理を全部関数にすんのか。
なんか納得できないな。わざわざ関数ポインタで呼び出してるイメージだ。
めんどくさい気がする。。。
あと、ディクショナリだとswitchのdefaultはどうやって実装すんのよ。
0486デフォルトの名無しさん
NGNGa.get(k[, x]) a[k] if k in a, else x
0487デフォルトの名無しさん
NGNG数個の場合は if 〜 elif 〜 else で済ませる。
数が多くてかつ速度が重要な場合、ディクショナリ。
ただ「値によって処理を変えるような場合」は class 定義して
多態を使うべき状況である事も多いから、shitc 文相当の
文法が無いから困る、という事は少ない。
0488デフォルトの名無しさん
NGNGわざと?
0489デフォルトの名無しさん
NGNGCで if ... else if ... ではなく, switch - case を使う理由は
ジャンプテーブルで最適化されることを望んでいるからだよね?
Pythonはもともと遅いので,そんなことはあまり気にしないw.
まぁ条件の数が100とかになるなら,ディクショナリを使うのもあり.
0490デフォルトの名無しさん
NGNG速度を稼ぐために ON x GOSUB とか多用していたっけ。
0491デフォルトの名無しさん
NGNGそもそもの設計が間違っている。
0492デフォルトの名無しさん
NGNGCPUのエミュレータとかでは結構あるんでは?
まぁ,Pythonでエミュレータなんか書かない…というか
書きたくても書けないけど.
0493デフォルトの名無しさん
NGNGエミュレータなら命令ごとに関数化して、関数ポインタで呼び出したほうがスマートじゃないかな。
0494デフォルトの名無しさん
NGNG0495デフォルトの名無しさん
NGNG非常に不思議です。
0496デフォルトの名無しさん
NGNG0497デフォルトの名無しさん
NGNGshitch どころか goto も無いよ。
ブロックを表す { 〜 } や begin 〜 end も無いし。
無い無い尽くしだね。
0498デフォルトの名無しさん
NGNGPythonの痛い欠点を突かれたから黙殺っていうか。
0499デフォルトの名無しさん
NGNG- switch
- do while
- 後置系の条件文
くらいか?
増やそうと思えば簡単に増やせると思うんだが、
いままでそういう動きは今まで起こらなかったのかな?
開発陣の意向?
0500デフォルトの名無しさん
NGNG0501デフォルトの名無しさん
NGNGあとよく言われるのは三項演算子。
0502デフォルトの名無しさん
NGNG0503デフォルトの名無しさん
NGNG排他的な態度はRuby厨と変らねえなプゲラ
0504デフォルトの名無しさん
NGNG0505デフォルトの名無しさん
NGNGおまいは論理回路がNANDだけで構成できることを知らないのか?
0506デフォルトの名無しさん
NGNGなにが言いたいのかよくわからない。
0507デフォルトの名無しさん
NGNG後置系の条件文は、見た目以外の機能的なメリットは何も無い完全なシンタックス・シュガーだから、
Pythonに取り入れられることはないと思う。
0508デフォルトの名無しさん
NGNG0509デフォルトの名無しさん
NGNGCと違ってcaseの終わりで暗黙的にbreakされるならだけど。
0510デフォルトの名無しさん
NGNG言語によって変えるの面倒じゃん。
0511デフォルトの名無しさん
NGNG実装できないことをごまかすための詭弁にしか聞こえない。
0512デフォルトの名無しさん
NGNG最近のPerlにはswitchあるよ。
0513デフォルトの名無しさん
NGNGPythonを外せば主要言語間で変える必要ないな。
0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNG0516デフォルトの名無しさん
NGNGまだ無いよ。
6のは switch どころの騒ぎじゃない。
0517デフォルトの名無しさん
NGNG釣りにしてもアホすぎ
C 相当の switch を、単に条件文が == な if ... else if ... の並びに置き換えるなんて実装できない訳がない。
単に作者の趣味で取り入れないだけだろ。
そもそも C 的な switch は条件が == に限られるのがスクリプト系言語から見ると嫌われる要因じゃないの。
実際 Perl6 の switch 案は大変な事になってるし。
C の switch は処理系次第ではテーブルに置き換わるから速いなんていうけど、
実際適当に作ったプログラムがテーブルで実装される事なんて滅多に無いだろ。
本当にそこまでのチューニングが必要なら必要なら自分でテーブル書くだろ普通。
switch が無いのを不満に思って他の言語に乗り換えるのも自由だし、それを埋めるメリットを見出して
使い続けるのも自由。
俺はあったほうが楽と思うこともあるけど、かと言って他に良いスクリプト言語が無いから使ってる。
0518デフォルトの名無しさん
NGNG0519デフォルトの名無しさん
NGNGもっと勉強してから出直してきてくれ。
0520デフォルトの名無しさん
NGNGもっと勉強してこいや
0521デフォルトの名無しさん
NGNG0522デフォルトの名無しさん
NGNGmatch(xs):
(car, *cdr):
...
():
...
あーPythonのリストは本当はリストじゃないから,ダメか.
0523デフォルトの名無しさん
NGNGいくら苦し紛れの反論するとしても、もう少し勉強してからしたら?
無知のくせにしったかぶりしてるのがみっともない。
0524デフォルトの名無しさん
NGNGばか?
0525デフォルトの名無しさん
NGNGPerl6のswitch見てきた.
…変態言語の名に相応しいと思った.
0526デフォルトの名無しさん
NGNGPythonごときが、そんな偉そうなことをいえるのか?
0527デフォルトの名無しさん
NGNGどんなんなん?
0528デフォルトの名無しさん
NGNGキモイ作者にキモイ言語仕様で救いようがない。
Ruby >>>>>>>>>>>>>>>>>>>>>>Python糞>>>>Perl超糞
よかったな。まだ下がいて(大爆笑)
Ruby>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
0529デフォルトの名無しさん
NGNG0530デフォルトの名無しさん
NGNGlambda嫌いとか三項演算子がないのとか、Pythonというのは
思考のスピード > 書くスピード
のときにも、後者に合わせて面倒でもちゃんと書きましょう、という
考えがあるように思う。
LispとかRubyとかは逆に思考のスピードがブレーキを踏まなくて
済むような方向でデザインされてる。
俺はどちらかというとRubyの方が好き。でも使うときはライブラリを調べて
簡単にできそうな方でやってる。Rubyな人はどうも適当なところだけかじって後
はほったらかしというのが多くて、それがヤなところ。
0531デフォルトの名無しさん
NGNG0532デフォルトの名無しさん
NGNG0533デフォルトの名無しさん
NGNG0534デフォルトの名無しさん
NGNG作者はしがないダッチ野郎
欧州の韓国人とい言われる事でも分かるとおり全てRubyのパクリ
インデント?ぷぷっなにそれまともな言語なの?たのしい?糞虫ども
0535デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNGRuby ば「馬鹿が作る言語」だな。
……Perl は「馬鹿な言語」だけど。
0537デフォルトの名無しさん
NGNG0538デフォルトの名無しさん
NGNG基地外荒しが住みついてしまったぞ。
責任とれ。
0539デフォルトの名無しさん
NGNGPerlスレは全部WebProgに追い出せ
0540デフォルトの名無しさん
NGNG思ってたのにRubyキチガイに議論を乗っ取られた。
0541デフォルトの名無しさん
NGNG0542デフォルトの名無しさん
NGNGRubyスレを見てみろ。淡々と話してるから。
0544デフォルトの名無しさん
NGNGPython は「ちゃんと書きましょう」となっているには禿同。
Java, Python, Perl と使っているが、Python って意外ときっちりと書かない
といけないけど、Java みたいにキャストとかしなくてもいいから、その辺のバ
ランスがよいと思うんだけど。
# 虎は知らない
0545デフォルトの名無しさん
NGNGどうせ、プログラムを作ったことがないような香具師が荒らしてんだろ。
0546デフォルトの名無しさん
NGNG安置Rubyだろ。
Pythonスレが荒らされるのは自業自得。
0547デフォルトの名無しさん
NGNG0548デフォルトの名無しさん
NGNGPerl.....解決に至る方法は幾通りも存在する
Ruby.....Perlのパクリでもいいじゃん
0549デフォルトの名無しさん
NGNG0550デフォルトの名無しさん
NGNG> 済むような方向でデザインされてる。
こういうこと言う人間に限って、大したもん作ってないんだよな。
反例求む。
0551デフォルトの名無しさん
NGNGと変換してくれるurlのdecode関数ってあるのでしょうか。
foo("%E3%82%AF%E3%83%A2%E3%81%AE%E5%B7%A3")って感じ
です。
urllib.urlencodeってのは見つけたのですが、上のように
decodeが見つかりません。
http://www.google.co.jp/search?q=%E3%82%AF%E3%83%A2%E3%81%AE%E5%B7%A3
0552デフォルトの名無しさん
NGNG# encoding: euc-jp
import urllib, cgi
s = 'http://www.google.co.jp/search?'
v = { 'q': 'クモの巣' }
print s
ss = urllib.urlencode(v, True)
print s + ss
r = cgi.parse_qs(ss)
print r['q'][0]
0553デフォルトの名無しさん
NGNGfoo(urlencoded_text)って感じのはなさそうですね。
アドバイスしていただいた方法を使います。
ありがとうございました。_O_
0555デフォルトの名無しさん
NGNG本当にありがとう。>>552 でやっても、urldecodeデータからは
できなかったです。
>>> a = urllib.quote("くもの巣")
>>> print a
%A4%AF%A4%E2%A4%CE%C1%E3
>>> print urllib.unquote(a)
くもの巣
0556デフォルトの名無しさん
NGNGだけでしょう。
俺は、Python使ってるけど、Rubyの動向なんて気にならないしな。
その証拠にRubyスレって荒れてないんでしょ。
Rubyスレが荒れてなくて、Python,Perlスレが荒れてんのは、
まつもと以下Ruby野郎が一生懸命荒らしてんでしょ。乙。
0557デフォルトの名無しさん
NGNG俺は Perl から Python に乗り換えようと思ってる最中なんだけど、
はっきり言って Python のメリットは唯一つ、Windows との親和性が良い。今の所これだけ。
とゆーか少なくともファイル名に Unicode 使える。
prel5 は未だにシステムコール引数は非 unicode だし、ruby はソース見た感じ全く対応してないっぽかったんで。
自分で使うだけのスクリプトならそんなのどうでも良いんだけど、人に使わせるものになると
Win で動かないと意味ないし、とんでもないファイル名付けてる奴多いしね。
あと、標準ライブラリのエラーがちゃんと全部例外になってる (んだよね?) のも Perl5 と比べると良いなあ。
俺は、スクリプトはたまに使いたくなった時に使うだけだから、いちいち個々の挙動まで覚えてられない。
Perl のアドホックな挙動に時々泣かされた者としては、this.py は結構同感だなあ。
0558デフォルトの名無しさん
NGNGものすごく説得力あるけど、
でもそんな事言うと、さらに荒れそうだよ。
只今、Python勉強中..
0559デフォルトの名無しさん
NGNGPythonスレが荒れているのは身から出た錆というか、自業自得だよね。
Pythonスレが荒れているのを根拠も無くRubyのせいにしていることこそ、
Rubyが気になって仕方がないように思える。
0560556
NGNG>Pythonスレが荒れているのは身から出た錆というか、自業自得だよね。
この意味不明な中傷はどうにかならないのか。
もっと具体的に言ってよ。
>Pythonスレが荒れているのを根拠も無くRubyのせいにしていることこそ、
>Rubyが気になって仕方がないように思える。
ここ最近のレス見て、Ruby野郎がうっとうしいなと思って煽ってみただけだよ。
ただのオウム返しみたいな煽りばっかしてないで、もっと具体的なの頼むよ。
ちゃんと実装の事いってる奴もいるけど、おまえみたいなオウム野郎は糞だ。
0561デフォルトの名無しさん
NGNG0562デフォルトの名無しさん
NGNGきみきみ、マジレスしちゃいかんよ。
それと Ruby のせいにするな。煽ってるのはどっちも知らないアホだ。
ESR もいっているように、相手を叩くのではなく、自分を高めることこそが
もっとも相手にダメージを与える。精進せいよ。
0563デフォルトの名無しさん
NGNG辞書に関数マッピングするか,
getattrとかでon_hogehogeみたいな関数を
動的に取得して呼ぶんじゃないの?
doがつかないのはバックワードコンパチのため。
doを予約語にすると困る人がいるから。
0564デフォルトの名無しさん
NGNG562がいうとおり、rubyの名を騙って荒らしているのは、rubyもpythonもしらない
ただのアホだろう。それにのればのるほど、荒しの思う壺だってわからんのか?
0565デフォルトの名無しさん
NGNGGoogleではutf-8、yahooではeuc_jpを使っているそうで、
「くもの巣」という文字のurlエンコードが違います。
(Googleでは、%E3%81%8F%E3%82%82%E3%81%AE%E5%B7%A3)
(Yahooでは、%a4%af%a4%e2%a4%ce%c1%e3)
教えてもらった方法では、yahooタイプしかデコード
できません。Googleタイプのデコードってどうするので
しょうか?
[少し板違いになってきてます。すいません。]
yahoo= "%A4%AF%A4%E2%A4%CE%C1%E3"
print cgi.urllib.unquote(yahoo)
#=>くもの巣
google ="%E3%81%8F%E3%82%82%E3%81%AE%E5%B7%A3"
print cgi.urllib.unquote(google)
#=>沓
0566デフォルトの名無しさん
NGNGunko = urllib.unquote(google)
print unicode(unko, "utf-8").encode("shift_jis")
print unicode(unko, "utf-8").encode("euc_jp") # どっちかでちゃんと表示できるはず
0567デフォルトの名無しさん
NGNG嘘つくな。お前試してないだろ。
>>> google ="%E3%81%8F%E3%82%82%E3%81%AE%E5%B7%A3"
>>> print unicode(urllib.unquote(google), 'utf-8')
くもの巣
0568567
NGNGおまけに上げてしまったので死ぬ。
0569デフォルトの名無しさん
NGNG環境は Windows 2000, CJK Python 2.3.4 (CJK/SJIS)
0570デフォルトの名無しさん
NGNGttp://takahr.dhis.portside.net/cgi-bin/rwiki.cgi?cmd=view;name=Python%A4%CF%A4%B3%A4%F3%A4%CA%A4%CB%A4%B9%A4%B4%A4%A4%A4%F3%A4%C0%A4%BE
ttp://c2.com/cgi/wiki?PythonVsRuby
0572デフォルトの名無しさん
NGNG以下のスレへ移動しやがれ。
http://pc5.2ch.net/test/read.cgi/tech/1081264387/
http://pc5.2ch.net/test/read.cgi/tech/1095684242/
0573デフォルトの名無しさん
NGNGここは Python VS. Ruby 専用
0574デフォルトの名無しさん
NGNG0575デフォルトの名無しさん
NGNG0576デフォルトの名無しさん
NGNGないよ。ここだけ。
0577デフォルトの名無しさん
NGNGあるけど、このスレ以外は重複スレだから気にしなくて良い。
0579デフォルトの名無しさん
NGNG> >Pythonスレが荒れているのは身から出た錆というか、自業自得だよね。
> この意味不明な中傷はどうにかならないのか。
> もっと具体的に言ってよ。
これマジで言ってるの?理解力の無い相当な低脳だね。
重複スレで揉めだして、おまえのような馬鹿がスルーできずに相手になって
拍車がかかってるのに。
0580デフォルトの名無しさん
NGNG次は「仲間のフリ」できたか!
0581デフォルトの名無しさん
NGNG0582デフォルトの名無しさん
NGNG0583デフォルトの名無しさん
NGNG0584デフォルトの名無しさん
NGNG0585デフォルトの名無しさん
NGNG0586ぬるぽ
NGNG0587デフォルトの名無しさん
NGNGガッ
0588デフォルトの名無しさん
NGNG0589デフォルトの名無しさん
NGNGいいじゃないの、別に。
Pythonユーザって心が狭い奴ばかりなのね。
0590デフォルトの名無しさん
NGNG0591588
NGNG0592デフォルトの名無しさん
NGNG0593デフォルトの名無しさん
NGNG期待してたんだけど。
0594デフォルトの名無しさん
NGNG失敗する傾向にあるんだよなぁ.
Tkの見た目がもう少し良くなってくれれば,俺は十分なんだけど.
0595デフォルトの名無しさん
NGNG0596デフォルトの名無しさん
NGNG0597デフォルトの名無しさん
NGNG0598デフォルトの名無しさん
NGNG時期Tk9ではスタイルが使えて、Gtkっぽい見た目も
使えるようになるよ。今でも実験的にtileという拡張で
スタイルを変えられるウィジェットが使えるよ。
PythonでTkの拡張が使えるのかどうかは知らんけど。
0599デフォルトの名無しさん
NGNGおぉ.素晴らしい.
tk.eval()があるので,頑張れば拡張は使える…かな.
0600デフォルトの名無しさん
NGNGfrom xml.sax import handler
from xml import sax
output_gen = XMLGenerator()
parser = sax.make_parser()
parser.setFeature(handler.feature_namespaces, True)
parser.setContentHandler(output_gen)
parser.setErrorHandler(handler.ErrorHandler())
f = file(u'test.xml', 'r')
parser.parse(f)
f.close()
なんでこのコードがこけるん……?
File "C:\Python23\lib\xml\sax\saxutils.py", line 131, in startElementNS
name = self._current_context[name[0]] + ":" + name[1]
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
0601デフォルトの名無しさん
NGNGtest.xml の中身は?
namespace 未使用の XML で、
parser.setFeature(handler.feature_namespaces, True)
だから? (未確認)
0602デフォルトの名無しさん
NGNG2つの名前空間が混在<test.xml
当然validなXML。バリデータはXMLSPY 2004。
名前空間接頭辞の扱いにバグがあるくさい。
0603デフォルトの名無しさん
NGNG0604デフォルトの名無しさん
NGNGこれを改良して、クリックされた部分のテキストの位置を座標ではなく、
行と列で求めたいのですが、どうしたらよいでしょうか?
0605デフォルトの名無しさん
NGNGPositionToXY() を使って x, y (列,行)に変換したらいいんじゃないでしょうか.
0606R
NGNG以前、個人的に試した時は、コンソールにEUCの日本語が出なくて参ったのだけど。
0607デフォルトの名無しさん
NGNG0608デフォルトの名無しさん
NGNGfilter((lambda s:s.find('key' != -1)), dir(target))
をいつもやっているのですが、毎回めんどうです。
apropos(target, 'key')みたいな感じの標準の関数ってないでしょうか?
0609デフォルトの名無しさん
NGNG関係ないけど、[name for name in dir(target) if 'key' in name] のほうが好き。
0610デフォルトの名無しさん
NGNGってのに違和感がある.
0611デフォルトの名無しさん
NGNGEclipseの出力コンソールにencodingを指定できないのが
原因。
Winなら、site.pyにShift_JISを指定すれば、Unicode文字列を
printするとコンソールで日本語が吐ける。
0612デフォルトの名無しさん
NGNGこちらに移動させて頂きます。
ttp://www.python.org/doc/faq/library.html#threads
ttp://www.idg.co.jp/sw/back/200103/20010316_01_report.html
殆どの場合 Python のスレッドは同時に一つしか動かないと書いてありますが、
実際マルチプロセッサマシンでスケールしないのでしょうか?
Perl や Tcl, Gauche(Scheme) はスレッド毎に VM を持つ仕様のようです。
ttp://perldoc.jp/docs/perl/5.8.0/perlthrtut.pod
ttp://www.tcl.tk/doc/howto/thread_model.html
ttp://www.shiro.dreamhost.com/scheme/wiliki/wiliki.cgi?Gauche%3aMT%a4%c8%a5%b7%a5%b0%a5%ca%a5%eb
他の処理系も色々調べたのですが、Java 並みにスレッドを使える言語は
少ない感じです。Python に期待していたのですが、どんな感じでしょうか?
0613デフォルトの名無しさん
NGNGシングルプロセッサでさくさく動く方を優先したらしい.
マルチプロセッサの恩恵を受けたいなら, C でも他の言語でもいいから
恩恵を受けられるソフトウェアに仕事をさせて,そのインタフェースだけ
Python で書けば?ということなんじゃないかな.
分散コンピューティングインタフェースなら,pyMPI(.sf.net) というのが
あるらしいけど,詳しくは知らない.
0614デフォルトの名無しさん
NGNGやはりそうですか。細粒ロックを作っても処理速度が半分になってしまっては意味が薄い
ですよね。
0615デフォルトの名無しさん
NGNGJava使えよ。
0616デフォルトの名無しさん
NGNG0617デフォルトの名無しさん
NGNG速度もCPythonより速いらしいね.
Jythonに負け,IronPythonに負けるCPython….
0618デフォルトの名無しさん
NGNG>速度もCPythonより速いらしいね.
そうなの?
0619デフォルトの名無しさん
NGNGらしい.自分で試したことはないし,そもそもJython自体よく知らないんだけども.
JythonってJavaVMのバイトコードへコンパイルするんだよね?
速いのも納得できる気がする.
ところで,Pythonにファーストクラス継続が導入されないのは,
Jythonで実装できないからだ,とどこかで読んだ気がするんだけど本当なのかな?
0620デフォルトの名無しさん
NGNG要はメインのソースツリーに統合されるだけの需要があるかどうかなんじゃないかな。
0621デフォルトの名無しさん
NGNGソースどこ?
ぐぐってみたけどみあたらないんだが。
0622デフォルトの名無しさん
NGNG0623デフォルトの名無しさん
NGNGそういえばRhinoWithContinuationsなんてのがあったな.
でもRhinoは単なるJava上のインタプリタなのに対して,
JythonはJavaVMのバイトコードに落してるからきついんじゃないかな.
スタック触れないし.
0624デフォルトの名無しさん
NGNGkawa はバイトコードを吐くけど、continuation を作れるらしい。
JScheme や Bigloo も確かそう。詳しい事は知らないけど。
0625デフォルトの名無しさん
NGNGだからちょっと躊躇しちゃうなあ。
0626デフォルトの名無しさん
NGNG継続ってどうも一般受けしない技術みたいだから、それだけでも採用されてない
理由にはなりそうだけど。
0627デフォルトの名無しさん
NGNGhttp://www.gnu.org/software/kawa/Restrictions.html#Restrictions
continuationに制限あるっぽい.
0628デフォルトの名無しさん
NGNG0629デフォルトの名無しさん
NGNG……実装してるって言っていいのかなあ。
0630デフォルトの名無しさん
NGNG努力賞.
Schemeなら限定的なcall/ccでもあった方が嬉しいけど,
Pythonはループ脱出や例外処理が一通り揃ってるから,
その程度のcall/ccじゃ実装したって意味ないよなぁ.
ちょっとStackless Pythonで遊んでみるか.
0631デフォルトの名無しさん
NGNGは や く 教 え ろ
0632デフォルトの名無しさん
NGNG0633デフォルトの名無しさん
NGNG実際はどうなのかな。性能比較した人いませんか?
0634デフォルトの名無しさん
NGNGたぶん同じくらい.
ってか,さらに荒れそうな話題をageで書かないでくれ.
0635デフォルトの名無しさん
NGNG0636デフォルトの名無しさん
NGNG>>1
は や く 教 え ろ
0637デフォルトの名無しさん
NGNG妹の質による。
そこらのアイドルを軽く凌駕する可憐さと、家族の前でも汚い部分は見せない
気遣かいを兼ね備えた妹を持つ漏れの友人は、激しく実妹萌えしてた。
0638デフォルトの名無しさん
NGNG何の誤爆???
0639デフォルトの名無しさん
NGNG0640デフォルトの名無しさん
NGNGJython
0641デフォルトの名無しさん
NGNGそれも……とびっきり大きくて
とびっきり暴風で
とびっきり大雨連れて
とびっきりの土石流発生。
しかも、そのうえ……
台風達はみんなみんな、とびっきり!
日本のコトが大好きなんです……
0642デフォルトの名無しさん
NGNG0643デフォルトの名無しさん
NGNG「Python はプロトタイプベースのオブジェクト指向言語である。」
0644デフォルトの名無しさん
NGNG「プロトタイプベース」
0645デフォルトの名無しさん
NGNGインスタンスベースのことです。
0646デフォルトの名無しさん
NGNG0647デフォルトの名無しさん
NGNG(Smalltalkの#become:みたいなズルをせずに)インスタンスの属するクラスを変えられれば
プロトタイプベースだよ。
>>> class A:
... def test(self):
... print "A"
...
>>> class B:
... def test(self):
... print "B"
...
>>> obj=A()
>>> obj.__class__=B
>>> obj.test()
B
0648デフォルトの名無しさん
NGNGありがとう。
やっぱり Python はプロトタイプベースと呼べる下地があるのですね。
0649デフォルトの名無しさん
NGNG>>645のいうインスタンスベースとか、(オブジェクト指向と混同しない程度の文化度が
期待できるところでは)オブジェクトベースとか言い添えた方がいいよ。 老婆より。
0650デフォルトの名無しさん
NGNG0651デフォルトの名無しさん
NGNG普通にやろうとすると,
class object: pass
obj = object()
obj.method = lambda self: ...
obj.method(obj) # ←ここの引数が嫌.
なんか周りくどい方法で解決できた気はするけど.
0652デフォルトの名無しさん
NGNG0653デフォルトの名無しさん
NGNGnewモジュールを使うナリよ。
あと、 インスタンスメソッド→インスタンス特異的メソッド ね。
はいそこ、特異メソッド…とかつぶやかないように!w
その呼び名はあの界隈ローカルですから。
ちなみにあれは、ばりばりのクラスベースですから,斬り!
0654デフォルトの名無しさん
NGNG0655デフォルトの名無しさん
NGNG0656デフォルトの名無しさん
NGNGapache よりもおもろいよ、Zope
0657デフォルトの名無しさん
NGNGZope ってドキュメントが少ないし、
まともなアプリ作れるようになるまでに相当勉強しないといけない。
PHP 使うほうがずっとまし。
[一年前に触った君 より]
0658デフォルトの名無しさん
NGNGわけでもなく、Javaのように最適化されまくって
速いわけでもない。おもちゃだな。
0659デフォルトの名無しさん
NGNGpythonIDEが見当たりません。
c言語を少しだけやった時には、コンパイラがあったのですが・・・。
python.exeを実行するとdos窓が開くのですが、皆さんはこれでpythonのプログラムを
作っているのでしょうか?
私の環境は
os;xp sp2
memory;512mb
cpu;pen4 2.4c Ghz
です。わかるかたいましたら、レスお願いします。
0660デフォルトの名無しさん
NGNGPython IDE 使ったことない。
python.exe実行してDOS窓開くんじゃなくてDOS窓でpython.exe実行する。
0661デフォルトの名無しさん
NGNG> python.exeを実行するとdos窓が開くのですが、皆さんはこれでpythonのプログラムを
> 作っているのでしょうか?
そういう人も多いと思われ。別の選択肢は IDLE という統合環境を使うこと。
スタートメニューの中に「IDLE (Python GUI)」というのがあると思う。
プログラムファイルには foo.py のように .py で終わるファイル名を付ける。
そうするとファイルのアイコンが蛇マークになる(もしならないなら関連付けが
無効になっているか、ちゃんと .py になっていない)。この状態でアイコンを
右クリックすると「Edit with IDLE」という項目が表示されると思う。これを選べば
IDLE で既存のプログラムファイルを編集したりプログラムを実行したりできる。
IDLE は一風変わった統合環境なので慣れが必要かも。よく分からなければ
メモ帳でプログラムファイルを作って、アイコンをダブルクリックして実行、
という方法でもいい。俺的にはこの方法が楽チン。
0662デフォルトの名無しさん
NGNGclass object:
def method(self): pass
instancemethod = type(object().method)
と等価っぽいんだが,なんじゃこれは?
def instancemethod(self, f):
return lambda *args, **kws: return f(self, *args, **kws)
ではダメなのかな?
0663662
NGNG0664659
NGNG>>661
レスありがとうございます。
pythonGUIありました。スタートアップにあったとは・・・orz
まだ、それほどわかっていないのですが、C言語よりはなじみやすく感じ、
この言語だったら長く続けられそうな気がします。ありがとうございました
0665デフォルトの名無しさん
NGNG0666デフォルトの名無しさん
NGNG>>> s = '0a'
>>> eval( '0x' + s )
10
>>>
0667デフォルトの名無しさん
NGNG255
>>> int("FF", 16)
255
0668デフォルトの名無しさん
NGNGthx!
0669デフォルトの名無しさん
NGNG0670デフォルトの名無しさん
NGNG> new-style class - Any class that inherits from object. This includes
> all built-in types like list and dict. Only new style classes can
> use Python's newer, versatile features like slots, descriptors,
> properties, getattribute, class methods, and static methods.
object クラスから派生したクラスのこと。list や dict などの組み込み型もこれに含まれる。
新型クラスだけが Python の比較的新しい多才な機能(スロット、デスクリプタ、プロパティ、
getattribute、クラスメソッド、スタティックメソッドなど)を活用できる。
0671デフォルトの名無しさん
NGNG0672デフォルトの名無しさん
NGNG理由も
0673デフォルトの名無しさん
NGNGPythonを使いこなすのは難しい。
0674デフォルトの名無しさん
NGNG0675デフォルトの名無しさん
NGNG0676デフォルトの名無しさん
NGNG結局理由はいえないのかよ
0677デフォルトの名無しさん
NGNG0678デフォルトの名無しさん
NGNG可能でしょうか。
OSはLinux、ブラウザはなんでもOKです。
getScreen(URL,outfile,jpg)みたいな感じにしたいんですが。
0679デフォルトの名無しさん
NGNGはい
0680デフォルトの名無しさん
NGNG便利なやつ使ってんだろ?
俺はcygwinでIPython使おうと思ったけど、あれhelp()ですぐ落ちて不安定。
0681デフォルトの名無しさん
NGNGライブラリとかですか?情報をお願いします。
0682デフォルトの名無しさん
NGNGLinuxの場合:
Red Hat Linux 7.3 標準の Python 2.2。エディタは Emacs (python-mode 使用)。
Windowsの場合:
Python.org 謹製 Python 2.3.4。エディタは本体に付属の IDLE。
何の変哲もないが特に不満はない。
0683デフォルトの名無しさん
NGNGExuberant Ctags はPythonも対応しているな。
0684デフォルトの名無しさん
NGNGimport os, commands
def getScreen(URL, filename, format):
os.system("netscape -remote 'openURL(%s)'" % URL)
os.system("sleep 10") # wait the rendering to finish...
data = commands.getoutput("xwd -root | convert xwd:- %s:-" % format)
open(filename, "w").write(data)
if __name__ == "__main__":
getScreen("http://www.python.org/", "python.jpg", "jpeg")
レンダリングの終了を待つ確実な方法が思いつかなかった。
netscape -remote 'PageUp()' などの無害なコマンドを送ればいいのでは
とオモタけど、レンダリング終了前に PageUp してしまう。
-remote に関しては下記参照。Netscape.ad のコメントも参考になる。
http://wp.netscape.com/newsref/std/x-remote.html
0685デフォルトの名無しさん
NGNGおまいが「ぱいきち」とか名乗ってPythonShell作れ。
0686デフォルトの名無しさん
NGNGどうすればよいかまったくわからなかったのですが、684の
コードで理解できました。
ありがとうございました。
http://home.catv.ne.jp/pp/ginoue/memo/screenshot.html
0687デフォルトの名無しさん
NGNGすんません、例えば
> os.system("netscape -remote 'openURL(%s)'" % URL)
~
↑
これ何ですか?
0688デフォルトの名無しさん
NGNG聞きたいのは %s のことか? それともその後の % のことか?
0689デフォルトの名無しさん
NGNG> それともその後の % のことか?
のことです
0690デフォルトの名無しさん
NGNGpython起動して、
>>> "hoge%s" % "fuga"
とかやってみろ。
0691デフォルトの名無しさん
NGNGttp://www.python.jp/pub/doc_jp/lib/typesseq-strings.html
0692デフォルトの名無しさん
NGNG7.1 ファンシーな出力の書式化
http://www.python.jp/pub/doc_jp/tut_2.3.3/node9.html
0693デフォルトの名無しさん
NGNG0694デフォルトの名無しさん
NGNG'hogefuga' と帰ってきました。
なるほど。C だと , のやつですね>>%
0695デフォルトの名無しさん
NGNGC だと、何だって?
0696デフォルトの名無しさん
NGNG0697デフォルトの名無しさん
NGNG0698デフォルトの名無しさん
NGNG0699デフォルトの名無しさん
NGNG0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNGの代案だと思われ。
0702デフォルトの名無しさん
NGNG0703デフォルトの名無しさん
NGNG0704デフォルトの名無しさん
NGNGいまは Jython ですので
0705デフォルトの名無しさん
NGNGメソッド名は動詞、XXにはプリフィクスをつける、とか、変数名に迷ったらspamとか。
0706デフォルトの名無しさん
NGNGttp://oldriver.org/python/pep-0008j.html
0708デフォルトの名無しさん
NGNGJavaとの連携はGroovyのほうが美しかったので。
0709デフォルトの名無しさん
NGNGJava だけラップした Groovy(使ったことないからよくわかりませんが) は汎用性を犠牲にした分だけ
Java との親和性が Jython と比較して良いということなんじゃないのかな。
Java で生きる人には良い選択なのだろうけど、こっちとしては眼中にない。
0710デフォルトの名無しさん
NGNG使ったこともないのに他の言語を批判して貶めるのがPython厨の
いつものやり方だよね。
0711デフォルトの名無しさん
NGNG0712デフォルトの名無しさん
NGNG正解でしょう。
たぶんGroovyのほうがずっと将来性あるし。
0713デフォルトの名無しさん
NGNGGroovyの特徴は,良くも悪くもJavaにべったりなところ.
0714デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNGじゃま
うざい
こっちいけ
http://pc5.2ch.net/test/read.cgi/tech/1080052050/
0716デフォルトの名無しさん
NGNG<function test at 0x006B1A70>
って出てくるんですけど、どうしたらいいんでしょう。
testは関数の名前のところにいれました。
0717あぼーん
NGNG0718デフォルトの名無しさん
NGNGまずPythonをアンインストールしろ.次に
0719デフォルトの名無しさん
NGNGそれは test の名前空間のアドレス
0720デフォルトの名無しさん
NGNGスレ汚しごめんよ。(´・ω・`)
0721デフォルトの名無しさん
NGNGまじで?折れ、蛇使いを自負してるけど>>719の意味が分からん。
def test: ... ってやっただけで print test したのと同じになる理由も思いつかない。
readlineモジュールでなんかやってる?
0722デフォルトの名無しさん
NGNG... pass
...
>>> hoge
<function hoge at 0x00A639F0>
こんな感じのことやったんでしょう
0723デフォルトの名無しさん
NGNG読んだけど、実用書そのもの。ホントにPerlはこうでPythonはこう、ってい羅列しかなくて
面白みはなかった。薄めでオライリーより安いし、テーマはいいとこ付いてて実用むけなんだけど
もう一つなんか欲しかった。
オレとしてはclassの定義で
class Foo
def bar(self,boo)
な形の第一引数selfにたいして何のコメントもないのがすげぇひっかかった。
同じ構成のperlコードと比較しているのでわかれよ、ってことなんだろうけど
そこは普通解説するだろ。
0724デフォルトの名無しさん
NGNG11月中に初めてのPython第2版がリリースされるよ
0725デフォルトの名無しさん
NGNG0726デフォルトの名無しさん
NGNG手頃なサイズのやつ。
0727デフォルトの名無しさん
NGNGhttp://www.unixuser.org/%7Eeuske/doc/pygame/ChimpLineByLine-j.html
猿でも読める。
0728デフォルトの名無しさん
NGNGJythonでションボリなjava開発を楽しくする話はここでしてもいいでしょうか?
ドキドキ
0729708
NGNGPythonは使いつづけてますんで。
念のため。
0730デフォルトの名無しさん
NGNG0731デフォルトの名無しさん
NGNG生きてる価値がなぃょ
0732デフォルトの名無しさん
NGNGttp://www.python.jp/Zope/PyLog/1095147501/
ここ読んで駄目なら才能ない。
0733デフォルトの名無しさん
NGNGこの動作を抑制する方法ってありますか?
あとperlのmy, perl -w のようなことはできない?
0734デフォルトの名無しさん
NGNGSee 'python -h' output.
0735デフォルトの名無しさん
NGNGScheme でも警告でないことが多い。
最も最近で定義された関数が有効になるというのは
それはそれできれいだと思う。
0736↑
NGNG0737デフォルトの名無しさん
NGNG「ホットゾヌ2」のバグかな。。。
0738デフォルトの名無しさん
NGNG0739デフォルトの名無しさん
NGNG0740デフォルトの名無しさん
NGNGこれ見るとHTTPのミラーは日本にはないんだね。
日本からだとどこが速いんだろう。
0741デフォルトの名無しさん
NGNGPython.jp でなんでやらないんだろう?
見るものがあんまし多くないから水増しに良かろうに。
0742デフォルトの名無しさん
NGNG0743デフォルトの名無しさん
NGNGそういったライブラリはありませんか?
0744デフォルトの名無しさん
NGNGここで答えを待ってるより早い。
0745デフォルトの名無しさん
NGNG,,-´´, ‐´7 ~ `ヽ ̄ ヽ \
/ / | ll \ ヽ.
〃 / ./ ,| i l || ヽヽ ヽ `、
/ / ./ /{l |、 l. ||ヽ. } l. ヽ l
! ./l 〃 fT lヽ. ヽ ''フT'ト | | |. !
|!| l| |. レ=、\ .y',=:、 | |、 ! |
. !'ヽl !. {.l“{::f| |i:::f}”| | } / ! .|i おねえちゃん
`| ゞ !. -‐ 、 ‐'-' | |´/ | |.! ぱんちっっっっっっっっ
. r.、 l. i 、 ー ./| |´| |. | | i
/l. l |. l. i _ 、 .. '|ッ、| | | ! | | l
/ .| ,レヘ.∩/(. / .l| | | | | l. l.
// 〈 'ニユ.| >< /l |`ヽ、.! | l. ll
〃/, ‐ヽ ヤ_〉=夫=.、/.| | /`、! |. ||
〃/./ | `、 `i 〃 ヽ、_》 ! | | | ヽ.l ||
0746743
NGNGないと先へ進まないので書いてはあるんですが、
ちゃんとしたのがないのかなとおもった次第です。
tmp = ""
for ch in unicode:
esc = ch.encode("unicode_escape")
if ch != esc:
ch = "%d;" % int(esc.replace("\\u", ""), 16)
tmp += ch
return tmp.encode("ascii")
>>745
姉ゲー?
0747743
NGNG0748デフォルトの名無しさん
NGNGs = u"""\
__--、、-へニ二、‐、
,,-´´, ‐´7 ~ `ヽ ̄ ヽ \
/ / | ll \ ヽ.
〃 / ./ ,| i l || ヽヽ ヽ `、
/ / ./ /{l |、 l. ||ヽ. } l. ヽ l
! ./l 〃 fT lヽ. ヽ ''フT'ト | | |. !
|!| l| |. レ=、\ .y',=:、 | |、 ! |
. !'ヽl !. {.l“{::f| |i:::f}”| | } / ! .|i おねえちゃん
`| ゞ !. -‐ 、 ‐'-' | |´/ | |.! ぱんちっっっっっっっっ
. r.、 l. i 、 ー ./| |´| |. | | i
/l. l |. l. i _ 、 .. '|ッ、| | | ! | | l
/ .| ,レヘ.∩/(. / .l| | | | | l. l.
// 〈 'ニユ.| >< /l |`ヽ、.! | l. ll
〃/, ‐ヽ ヤ_〉=夫=.、/.| | /`、! |. ||
〃/./ | `、 `i 〃 ヽ、_》 ! | | | ヽ.l ||
"""
def encode(c):
if c < u"\x80":
return c
else:
return u"&#%d;" % ord(c)
print u"".join([encode(c) for c in s])
0749デフォルトの名無しさん
NGNG"ほげ".encode("ascii","xmlcharrefreplace")
0751デフォルトの名無しさん
NGNGなんじゃこれ
ひどいげんごだね
0752デフォルトの名無しさん
NGNG画像処理ライブラリがすごいことになってたりすんのかな。
0753デフォルトの名無しさん
NGNGあるよ。とりあえず PIL かなぁ・・・
0754デフォルトの名無しさん
NGNGこの、
class Basket:
# Always remember the *self* argument
def __init__(self,contents=None):
self.contents = contents or []
def add(self,element):
self.contents.append(element)
def print_me(self):
result = ""
for element in self.contents:
result = result + " " + `element`
print "Contains:"+result
のself.contentsというのがどういうことなのかいまいちよくわかりません。
誰か教えてください…お願いします。
0755デフォルトの名無しさん
NGNGC++で言うメンバー変数、Smalltalkで言うインスタンス変数。
0756デフォルトの名無しさん
NGNGselfはC++、javaとかのthisと一緒。
クラスでのメソッド定義の第一引数(self)は自インスタンスが生成されたときの
自インスタンスへの参照になる。
この場合self.contents は Basketクラスのインスタンスのcontents変数。
b=Basket()
b.contents
へのアクセスと同義。
でいいのかな。俺も最近始めたばかりだからスコープ定義とか
まだはっきり把握していない。
Pythonマスターからツッコミ希望。
で、俺も質問なんですが
・メンバ変数も宣言なしで使えるのはいいんですがtypoしたとき困らない?
・クラス変数ってどー定義するの?
0757m9っ・∀・)
NGNGself はオブジェクト自身を保持する変数だよ。
self.contents = ... という代入文は、self が指すオブジェクトの中に
"contents" という変数を作って、次の値を設定しなさい、という意味。
>>> class Basket:
... def __init__(self, contents=None):
... print self # 試しにオブジェクト自身を表示してみる
... self.contents = contents or []
...
>>> foo = Basket() # Basket クラスのインスタンスを作る
<__main__.Basket instance at 0x816975c> # 作ったオブジェクト自身が表示された
>>> foo # 変数に代入されたオブジェクトを表示してみる
<__main__.Basket instance at 0x816975c> # 同じものが表示された
>>> bar = Basket([1, 2, 3]) # 別の Basket インスタンスを作る
<__main__.Basket instance at 0x816bf24> # 新たに作られたオブジェクト自身が表示された
>>> bar # 変数に代入されたオブジェクトを表示してみる
<__main__.Basket instance at 0x816bf24> # やはり同じものが表示された
foo1 と foo2 は別のオブジェクトであることが表示される数値(=オブジェクトID)の
違いから分かる。したがって foo1.contents と foo2.contents も別の変数ということになる。
これも表示してみると分かる。
>>> foo.contents
[]
>>> bar.contents
[1, 2, 3]
0758m9っ・∀・)
NGNG> メンバ変数も宣言なしで使えるのはいいんですがtypoしたとき困らない?
Pythonマスターは typo などしない!!
> クラス変数ってどー定義するの?
>>> class Basket:
... contents = []
...
>>> foo = Basket()
>>> bar = Basket()
>>> foo.contents
[]
>>> bar.contents
[]
>>> foo.contents.append(1)
>>> foo.contents
[1]
>>> bar.contents
[1]
>>>
0759デフォルトの名無しさん
NGNGドがないわけではないはず...
まぁ、UT ちゃんとやりましょう... ということかな...
0760デフォルトの名無しさん
NGNGprint re.search('(h.{1}ge)','hoge hage hige').groups()
とすると、
('hoge',)
こうなってしまうのですが、これを、
('hoge', 'hage', 'hige')
とするにはどうしたらよいでしょうか?
0761m9っ・∀・)
NGNG['hoge', 'hage', 'hige']
タプルでないとだめ?w
0762デフォルトの名無しさん
NGNG本当はマッチオブジェクトが欲しいのですが、(マッチオブジェクトを使って
文字列の位置を知りたい)findallだとそれができないので、
どうしてもmatch/searchが使いたいのですがどうにかなりませんか?
0763デフォルトの名無しさん
NGNG0764デフォルトの名無しさん
NGNG>>> print [x.span() for x in re.finditer('(h.{1}ge)','hoge hage hige')]
[(0, 4), (5, 9), (10, 14)]
0765760
NGNG>>764
finditerを使ったらできました。ありがとうございました。
イテレーターが出たときは「難しそうだし、複雑なことは自分ではやらないので
覚えなくてもよかろう」と思って無視していたのですが、
こんなところで使うとは思ってませんでした。
0766デフォルトの名無しさん
NGNG・PythonではすべてのクラスのRootクラスは存在しますか?する場合、マニュアルのどのセクションに記述されていますか?
・__add__のようなオーバーロード可能な演算子の一覧はマニュアルのどのセクションに記述されているのでしょうか?
・ブロックごとに変数スコープは作成されますか?
0767デフォルトの名無しさん
NGNGとりあえず全部嫁
0768デフォルトの名無しさん
NGNG”input”で文字列を格納するにはどうすればよいのでしょうか??
例えば
hello = input()
print hello
数字は可能ですが、文字列を入れるとエラーが出ます。
なぜでしょうか?
0769デフォルトの名無しさん
NGNGhello = raw_input()
input だと入力を式だとみなして評価してしまう.
たとえば input() で 1+2 と入力すると 3 が返る.
0770デフォルトの名無しさん
NGNG新形式クラスの場合には object 型が基底クラス.
簡単な説明はチュートリアルの用語集に書いてあります.
詳しい説明はリファレンスマニュアルの 3 章と 7 章に少し書いてあるけど
多分難解で参考にならないでしょう.オライリーの「Pythonデスクトップリファレンス」
に簡単でわかりやすい説明があったと思います.
- オーバロード可能な演算子は,リファレンスマニュアルの 3.3 節「特殊メソッド」
に詳しく書かれています.ライブラリリファレンスの 3.10.1 節には,よく使われる
一部の特殊メソッドについてまとめた対応表がありますよ.
- ブロック文ごとに変数スコープを張るわけではありません.
変数スコープについては,チュートリアルの 9.2 節,
リファレンスマニュアルの 4.1 節などに書かれています.
0773766
NGNG目次から当たりをつけてざっと目を通したつもりだったんですが、
「全部嫁」はおっしゃるとおりで。申し訳ないです。
>>770
ありがとうございます。大変助かります!
ドキュメント見て思うのは
「グローバルモジュールインデクス 」はあるけど
他のOOP言語でよくあるクラス階層図がないなぁと。
「Python ライブラリリファレンス」がそれに近い?
ドキュメントに {}はmapping型のdictonary型、
それにdict型が存在するとあったので
試しに
d=mapping()
d=dictory()
と書いてみたらエラー。
d=dict()
は正解。うぬぅ。わからんぜよ・・・。
0774デフォルトの名無しさん
NGNG素直にまずチュートリアルから始めたら?
0775デフォルトの名無しさん
NGNG0776デフォルトの名無しさん
NGNG推測するのが好きなら既存のコードを読んでみたら。
ライブラリなりアプリケーションなり好きなものを。
でもって、読んでて分からない部分をマニュアルで調べる、と。
0777デフォルトの名無しさん
NGNG合わせて書かれていますよ.それぞれの型の素のインスタンスを作成する関数
は,(読みにくいけど) 2.1 節の組み込み関数の中で列挙されています.
0779デフォルトの名無しさん
NGNG> ドキュメントに {}はmapping型のdictonary型、
> それにdict型が存在するとあったので
どこに書いてある?
そんなこと今まで知らなかったorz
0780773
NGNG・Python リファレンスマニュアル 3.2 標準型の階層
マップ型 (mapping)
辞書型 (dictionary)
とありますが、単なる概念の説明なわけですね。きっと。
しかしマニュアルでは論理上の型名と物理型名の
表記上の違いがないような気がする。
dict()は
・Python チュートリアル 5.4 辞書
にdict()コンストラクタ という表現がありましたが・今見たら
・Python ライブラリリファレンス 2.1 組み込み関数
に説明がありました。
0781m9っ・∀・)
NGNG{} や [] や () がすべてで list() や tuple() は型変換のための関数に過ぎなかった。
dict() に至っては相互変換できる組み込み型が無いので存在すらしなかった。
だから例えばマニュアルに「辞書型(dictionary type)」などと書いてあっても
dict() と混同する気遣いはなかったよーに思う。
しかるに list, tuple, dict は今や型そのものなので、
型の名前=プログラム中で使える識別子かと想像するのも無理はないかも。
ある意味では、マップ型(mapping type)やシーケンス型(sequence type)は
説明のための型の分類(カテゴリ)だといえる。
しかし純粋に説明のための分類かといえばそうでもないところがややこしくて、
「Python/C API」の6章(特に6.3節や6.4節)を見ると同じカテゴリに属する型の
オブジェクトは同じAPIで共通して扱えるようになっていることが分かると思う。
これは、例えば sequence type に属するリストやタプルには等しく len() や
スライスが適用できることに相当する。
0782デフォルトの名無しさん
NGNGPython で「型」と出ていたら JAVA で言うクラスではなく
インターフェイスだと思った方が分かりやすいと思う。
0783m9っ・∀・)
NGNG0784デフォルトの名無しさん
NGNG0785m9っ・∀・)
NGNGurllib.urlopen("http://www.python.org/pics/pythonHi.gif")
0786デフォルトの名無しさん
NGNGwebでの話ってあんまナイネ。
糊付け言語として使うならビューに使うのが正解かと
思ったがJSPコンパイラに相当するものなさげだし、
あってもインデントと相性悪いし。
ロジック・モデルをフルjythonで書くのが正解?
あとテストコード。
0787デフォルトの名無しさん
NGNGなるほど.インターフェイスと実装の違いね.
で,今のところマップ型の実装は辞書型しかないと.
最初にmapとdictがあると聞いたときは
ハッシュと二分木とか,複数の実装があるのかと思った.
ちなみに,Pythonのクラスはオブジェクト生成関数みたいなモノなので,
dictはクラス名であると同時に,辞書オブジェクト生成関数であるとも言える.
0788デフォルトの名無しさん
NGNGpythonてどういう時に使うのでしょうか?
0789デフォルトの名無しさん
NGNGおまいがいつもググっているときにPythonの恩恵を間接的に受けている
0790デフォルトの名無しさん
NGNG0791デフォルトの名無しさん
NGNG君がgoogleに文字列をPOSTしてからPageRankに従ってサイトのリストを
君のブラウザ上に返すまでがほどんどPython若しくはPython謹製でやっているという事実。
0792デフォルトの名無しさん
NGNG0793デフォルトの名無しさん
NGNG0794デフォルトの名無しさん
NGNGえらく時間かかった。たぶん Perl だと一瞬なんだろうけど。。
Python もう少し速くならないかな。
0795デフォルトの名無しさん
NGNG0796デフォルトの名無しさん
NGNGあのさ、時間計測してくれないかな?
0797デフォルトの名無しさん
NGNG単純なファイル読み込みなら,対C比でもそんなに悲惨な結果にはならないような.
Pythonが遅いという点には同意しなくもないが.
0798デフォルトの名無しさん
NGNGcsvモジュールを使ったのか、それともCSVパーザを自作したのか知りたいな。
0799デフォルトの名無しさん
NGNGgoogleAPIでお話するとき?
0800デフォルトの名無しさん
NGNG0801デフォルトの名無しさん
NGNGファイル操作、外部ブロセス起動などの一般的なシェルタスクは
みなPythonでいちいち記述するんですか???
ネタじゃないなら詳しく。
0802デフォルトの名無しさん
NGNGいや、今は ipython 使ってるだけだけど・・
0803デフォルトの名無しさん
NGNG0804デフォルトの名無しさん
NGNGへー
ソースは?
0805デフォルトの名無しさん
NGNGNekoHTML http://www.apache.org/~andyc/neko/doc/html/
みたいにタグの記述ミスにもまけず適当にパースしてくれる
HTMLパーサってない?
0807794
NGNG1行に 30 個ぐらいの浮動小数データで、
単に "," で split() して float に変換しているだけなんだけど。。。
だいたい2万行で5秒ぐらいかかる。
0808m9っ・∀・)
NGNGimport time
f = open("float_test.csv", "w")
for i in range(20000):
f.write(",".join(["%d.%d" % (randrange(-99999, 10000), randrange(0, 1000)) for j in range(30)]))
f.write("\n")
f.close()
t = time.time()
buffer = []
for line in open("float_test.csv"):
buffer.append([float(s) for s in line.split(",")])
print time.time() - t
WinXP SP2 (Pen4 3.4GHz), Python 2.3.4 で 1.8 秒前後ですた。
キャッシュがかなり効いてそうだけど。
折れの感覚だと2万行で5秒は許容範囲だなぁ。
0809デフォルトの名無しさん
NGNGプラットフォームはFreeBSD 4.8-RELEASE。実行時間をtimeコマンドで計測。
()内はそのうちの読み出しのみにかかった時間。
Perl 5.8.2: 7.5sec(2.4sec)
Python 2.3.4: 9.9sec(2.8sec)
Ruby 1.8.1: 14.5sec(4.3sec)
perlに書換えれば、1〜3割程度は速くなるかもしれん。OO税のようなものか。
0810809
NGNGimport time, string, sys
start = time.time()
buffer = []
for line in open("float_test.csv"):
buffer.append([float(s) for s in line.split(",")])
sys.stderr.write("%f\n" % (time.time() - start))
for s in buffer:
for t in s:
print("%f" % t)
0811809
NGNGuse Time::HiRes qw ( time );
$start = time;
open(IN, "float_test.csv");
while (<IN>) {
chop;
my (@s);
foreach $s (split(",")) {
push (@s, $s + 0.0);
}
push(@buffer, \@s);
}
print(STDERR time - $start, "\n");
foreach $s (@buffer) {
foreach $t (@{$s}) {
printf("%f\n", $t);
}
}
0812809
NGNGstart = Time.now;
buffer = []
IO.foreach("float_test.csv") { |l|
s = []
l.chop!
l.split(",").each { |t|
s.push(t.to_f)
}
buffer.push(s)
}
$stderr.print((Time.now - start), "\n")
buffer.each { |s|
s.each { |t|
printf("%f\n", t)
}
}
0813デフォルトの名無しさん
NGNGログインシェルにするのは厳しいような….
0814デフォルトの名無しさん
NGNG0815デフォルトの名無しさん
NGNG0816デフォルトの名無しさん
NGNG最速スクリプト言語決定戦!
http://pc5.2ch.net/test/read.cgi/tech/1074996153/l50
Pythonで書いたコードのボトルネックはCで拡張モジュールとして書き直すのが吉、
と言ってみるテスト。
0817デフォルトの名無しさん
NGNG0818デフォルトの名無しさん
NGNGPentium4M 1.6GHz WindowsXP SP2。
cygwin bash shell で interpreter script > /dev/null して計った。
左が読み込むまで、右が出力も込み。
Ruby-1.8.1 (ruby-lang.org MSC) 2.764 9.374
Ruby-1.8.1-1 (cygwin gcc) 2.331 31.4
Python-2.3.4 (python.org MCS) 2.183000 6.940000
Python-2.3.4 (cygwin gcc) 1.399000 28.820000
Perl-5.8.5 (PXPerl ?) 1.17113494873047 5.11680889129639
Perl-5.8.5 (cygwin gcc) 2.41000008583069 31.1360001564026
cygwin死ぬほどI/O遅ぇ orz
ちなみにcsvモジュール使って
import csv, time, sys
start = time.time()
buffer = [map(float, row) for row in csv.reader(file("float_test.csv"))]
sys.stderr.write("%f\n" % (time.time() - start))
みたいにしたら、python(MSC) 1.962s python(cygwin) 1.009s だった。
Rubyにもcsvがあるみたいだけど、漏れ程度のRuby初心者が書いても全然速くならんかった。
Perlには標準のcsvモジュールみたいなのがなかった。どのみちなくても十分高速だね。いいなぁ。
0819デフォルトの名無しさん
NGNGRuby使えねぇええええええええええええええええええええええええええ
0820デフォルトの名無しさん
NGNG0821デフォルトの名無しさん
NGNGループにすると遅い (最速スレの結果より)。
ruby 分からないので、コード書けません
0822デフォルトの名無しさん
NGNGそういう餌を蒔いておいてまた後になってしたり顔で
710 :デフォルトの名無しさん :04/11/02 10:00:10
>>709
使ったこともないのに他の言語を批判して貶めるのがPython厨の
いつものやり方だよね。
みたいな事言いにわざわざ来るわけ?
はっきりいってpython使ってるほとんどの奴にとって
rubyが速かろうが遅かろうがどうだって良いし、
自分で思ってる程相手にされてない事にいい加減気付けよ。
0823デフォルトの名無しさん
NGNGcomplete(self, text, state):メソッドの
46 __all__ = ["Completer"]
47
48 class Completer:
49
って記述の意味がわかりません。
__all__ に自分の名前を入れて、んでこの__all__を参照している
ところが見当たりません。名前空間の予約語みたいなもん?
0824デフォルトの名無しさん
NGNG0825デフォルトの名無しさん
NGNG0826デフォルトの名無しさん
NGNGurllib.urlopen("http://images.google.co.jp/images?q=" + q).read()
googleでの検索結果を表示したいんですが上手くいきません。
"http://images.google.〜?q=python"のようなURLが実在しない為、
403 Forbiddenとなってしまいます。
このようなCGI等で一時的に作成されるページを取得するには
どうすればよいでしょうか?
0827デフォルトの名無しさん
NGNG受け入れられないんじゃないかな.
0828デフォルトの名無しさん
NGNGを参考にして,User-Agentを設定するといいよ.
class myopener(urllib.FancyURLopener):
def __init__(self, *args):
self.version="Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/2004"
urllib.FancyURLopener.__init__(self, *args)
urllib._urlopener = myopener()
q = "python"
print urllib.urlopen("http://images.google.co.jp/images?q="+q).read()
0829デフォルトの名無しさん
NGNGあなた、嫌な感じですね。穿ち過ぎでしょ。
みんなもうちょっと余裕を持とうよ。
0830デフォルトの名無しさん
NGNGむしろCygwinとネイティブとの違いが面白いな.
概ね読み込みでCygwinが勝っているのは,gccの最適化能力が高いってことなんだろうか.
0831デフォルトの名無しさん
NGNG0832デフォルトの名無しさん
NGNG0833m9っ・∀・)
NGNGぶっちゃけどっちでもイイけど、htmllib.HTMLParserの方が多機能。
特に、よく使われるタグに対して既定のハンドラが用意されているのが大きい。
よって、
(a)既定のハンドラをオーバーライドすれば足りる場合 → htmllib.HTMLParser
(b)save_bgn/save_end メソッド萌え → htmllib.HTMLParser
(c)<A>タグのhrefの値だけホスィ → htmllib.HTMLParser(.anchorlist)
(d)formatter モジュール萌え → htmllib.HTMLParser
(e)既定のハンドラは不要(デフォルトの動作が邪魔)な場合 → HTMLParser.HTMLParser
(f)handle_starttag() や handle_endtag() だけあればいい場合 → どっちでも桶
(e)の場合にsgmllib.SGMLParserを使っていたのも今は昔・・・。
0834デフォルトの名無しさん
NGNG0835デフォルトの名無しさん
NGNGめちゃ親切なレスthx!
今回はHTMLParser.HTMLParserでゴリゴリ書くことに決めた.
htmllib.HTMLParserの萌え要素も捨てがたいけどw
0837デフォルトの名無しさん
NGNGそんなことも理解してないのか糞どもが。
0838826
NGNGgoogleのイメージ検索結果を全て取得して、
URLをhtmlファイルに書き込みます。
そしてそのhtmlファイルを開くと全ての画像が表示されます。
実用性には欠けますが、
暇があったら試して見てください。
そしてできればアドバイス等頂けるとありがたいです。
ttp://eunjoo.jp/google.txt
0840デフォルトの名無しさん
NGNGhttp://eunjoo.jp/seitan/
これ用のスクリプトでつか?
http://www.eunjoo.jp/blog/
0841デフォルトの名無しさん
NGNG0842デフォルトの名無しさん
NGNGよく考えると,リダイレクトとか結構面倒なんだよなぁ.
0843デフォルトの名無しさん
NGNG0844デフォルトの名無しさん
NGNG0845デフォルトの名無しさん
NGNGurllib2で実現できないことなのかな?
0846デフォルトの名無しさん
NGNGいや結構どころかすごいパワフル。
しかし周りの人間がPythonわかんねーから
検証コードぐらいでしか仕事では使えなそうだ。
なんかもったいない。
0847デフォルトの名無しさん
NGNGいや、Python を普及させるチャンスでしょう。
0848デフォルトの名無しさん
NGNGみな工作員としてRubyスレに潜入してて忙しいのかな。
0849デフォルトの名無しさん
NGNG正直,リファレンスを読んでもurllib2の拡張の仕方がよく分からないので,
urllib2で可能かどうか分からない.
まあ,GETリクエストでヘッダだけ読んで,すぐclose()するのも一つの選択肢では
あるんだけど,どうせデータ本体は必要ないしなぁ.
0850デフォルトの名無しさん
NGNGpythonスレの活気なんてこのくらいがデフォだと思うけど。
彼らは自分のとこで話題がないからって
わざわざ暴れに来てたのかな。迷惑だよね。
0851デフォルトの名無しさん
NGNG0852デフォルトの名無しさん
NGNG0853デフォルトの名無しさん
NGNG翻訳する人、第1版とちがうのねん
ttp://www.bitpranks.com/garage/natsume/yakusyo.htm
なんでイチローリポート?
0854デフォルトの名無しさん
NGNGまあ超マイナー言語ですからね。
0855デフォルトの名無しさん
NGNG0856デフォルトの名無しさん
NGNGまあ英語じゃなければろくなドキュメントがないですからね。
0857デフォルトの名無しさん
NGNG0858デフォルトの名無しさん
NGNGPyJugに置いてあるありがたいマニュアル以上のこと
書いてありますか?なんか一冊読んでおいたほうがええかな。
0860デフォルトの名無しさん
NGNGpython.vim はなんで無視なんでしょうか?そもそも同じ整形ではない?
0861デフォルトの名無しさん
NGNGところでcygwinのpythonでhelp()コマンド使おうとしたら$PYTHONDOCS
設定すれ、言われたんで
$export PYTHONDOCS=$(cygpath -u 'd:\python\Python-Docs-2.3.4-jp-html')
を設定しますた。結果、盛大に文字化け。
export PAGER='w3m'
ってやったら成功。ヤター!
でもscreenの中でやったらw3mがちゃんと動かなくてダメでした。鬱。
0862デフォルトの名無しさん
NGNGなるな。日本で使っている人、いるのか?
0863デフォルトの名無しさん
NGNG0864デフォルトの名無しさん
NGNG<select multiple="multiple" name="test">
<option>hoge</option>
<option>huga</option>
</select>
というリストからhoge,hugaの片方あるいは
両方の値を取得するにはどうすればいいのでしょうか?
value_get=form['test'].valueとした場合、
hoge,huga両方選択すると以下のエラーが出ます。
AttributeError: 'list' object has no attribute 'value'
args = ("'list' object has no attribute 'value'",)
以下を用いると、片方ひとつのみ選択した場合にエラーになります。
value_get=''
tmp = form['test']
for S in tmp:
value_get = value_get + S.value
TypeError: iteration over non-sequence
args = ('iteration over non-sequence',)
0865デフォルトの名無しさん
NGNGPythonのlambdaはstatementを理解しないみたいなんだけど,
実行時に動的に関数を作りたい場合はどうすればいいの?
eval()つかってがんばってインデントした文字列を評価するしかない?
0866デフォルトの名無しさん
NGNG俺も最初は戸惑ったほうだけどね。
慣れたら逆にendとか使っているほうが助長に見えるくらい中毒に・・・。
一年位前、仕事でPL/Iを使っていたけど、アレにはもう戻れないだろうなあ(苦笑
0867865
NGNGプログラムを書く際のインデントは慣れの問題だと思うんだけど,
実行時にプログラムを動的に生成したいときにもインデント付の
文字列を生成してeval()する必要があるのはどうかと思う.
一時的にもはずせんもんかのぉ.
>>859
金曜にまったく同じことを同僚に話したんだけど,もしかしたら同じ会社か?
まぁ食わず嫌いもなんなので,今日からちょっとまじめにPythonを勉強しよう
と思ってるよ.
漏れ的にはPerlのObject指向でそこそこ満足してるので、perlにあと
Try/Catch/finallyだけが付けばいいのにと思う.
0868デフォルトの名無しさん
NGNG複数選択可能なフォームコントロールから値を読む場合は,
http://www.python.jp/pub/doc_jp/lib/node404.html
にあるように,getlist() で値を取ってくるといいよ.
0869865
NGNG(Exception.pmとかError.pm)がありますた.すれ汚しスマソ.
でもせっかくなのでPython勉強するデス(`・ω・´)
0870デフォルトの名無しさん
NGNGhttp://www.nims.go.jp/cmsc/staff/arai/python/python-vim.html
0871デフォルトの名無しさん
NGNG一応 lambda で関数作れることになってるけど,
式が1個書けるだけというきつい制限があったりで
あんまり大々的に使わんとです.
代わりにやるとしたらこうか?
def makeAdd(n):
def add(x):
return x+n
return add
>>> f = makeAdd(365)
>>> print f(1)
366
0872デフォルトの名無しさん
NGNG0873デフォルトの名無しさん
NGNGttp://www.python.jp/pub/doc_jp/lib/node63.html
新しいバージョンの pickle で古いバージョンの pickle ストリームを
書き出すときには, dump()/dumps() でプロトコルを指定する.
ttp://www.python.jp/pub/doc_jp/lib/node64.html
読み出した pickle ストリームのプロトコルバージョンを判別する方法は
ちょっと判らなかった.
0874デフォルトの名無しさん
NGNGインデントは、いくら慣れだといわれても参入障壁が高すぎる。
慣れればよいといわれても信用できないし、慣れるとしてもそれまで
苦痛なのも嫌。。世の中に同じ意見の人はとてつもなく多いよ。
>>868
Perlで良いと思うよ。
0875デフォルトの名無しさん
NGNG0876デフォルトの名無しさん
NGNG0877デフォルトの名無しさん
NGNGCやSGML等の他の言語の慣習と異なるので、意外にやりにくい。
コードを他所からカット&ペーストしたときに、一時的にせよ構文的に間違った状態に
なってしまう、というのは、他の言語では味わえない不安感だ。
まあ人間は慣れるけどね。
0879デフォルトの名無しさん
NGNGタブとスペースが混じったのが原因だった.
インデント否定派ではないけど,こういうことがあるとチョット怖い.
{ ... }をインデントに変換するトランスレータ書いたら需要あるのかな.
lambdaの制限を取り除けるのは結構いいかも.
0880デフォルトの名無しさん
NGNGjavaへのトランスレータ
jythonc -a test.py
を実行するとPy.assertが予約語とかぶってるからコンパイルできない言われる。
手パッチ当てないとダメみたい。
http://sourceforge.net/mailarchive/forum.php?forum_id=5587&max_rows=25&style=nested&viewmonth=200405
>>---------------
if you really have to compile with JDK 1.4, the following changes are
necessary:
Py.java
-------
change the name of the two static assert() methods to assert_()
CodeCompiler.java
-----------------
change the two following lines in method assert_stmt() from
"org/python/core/Py", "assert",
to
"org/python/core/Py", "assert_",
Then make sure that you delete all your $py.class files.
I"m sorry to have no diff available, but the changes should be pretty
straightforward.
Please also note that this is solved in cvs HEAD.
>---------------
HEADじゃなくてリリース版で直して欲しい。
ついでにjythoncが内部で起動しているjavacからのメッセージが文字化けすると思われ。
UNIXならLANC=Cで解決したんだが、cygiwn上だと効かない…。
windowsではどう設定すればいいのでしょうカ。
0881デフォルトの名無しさん
NGNGPythonは読みやすくていいんだけど,自分が書くとなるとそれが恐
くてPythonに手が出せません.読んで天国書いて地獄
0882デフォルトの名無しさん
NGNGfrom sys import *
nest_lv = 0
for line in stdin:
sline = line.strip()
if sline == "{":
nest_lv += 1
elif sline == "}":
nest_lv -= 1
else:
print "\t" * nest_lv + sline
0883デフォルトの名無しさん
NGNGfrom sys import *
nest_lv = 0
for line in stdin:
sline = line.strip()
if sline == "{":
nest_lv += 1
elif sline == "}":
nest_lv -= 1
else:
print "\t" * nest_lv + sline
0884m9っ・∀・)
NGNG個人的にはコピペが必要なことってほとんどない・・・。
Emacs だとインデントの削除は kill-rectangle (C-x r k)、
インデントの追加は indent-rigidly (C-x TAB) で楽勝、
というファクタも大きいかも知れず。
0885デフォルトの名無しさん
NGNGインデントがずれてると違う動作になるの?
0886デフォルトの名無しさん
NGNGsum=0
for i in range(3):
print "%d を足しています" %(i)
sum += i
print "合計は %d です" %(sum)
出力
0 を足しています
1 を足しています
2 を足しています
合計は 3 です
* sum += i のインデントを間違えた場合 *
for i in range(3):
print "%d を足しています" %(i)
sum += i # <- ここが間違っている
print "合計は %d です" %(sum)
出力
0 を足しています
1 を足しています
2 を足しています
合計は 2 です # <- ループから抜けた後の i (=2) しか足してない
Cで単独の文をループさせるときに波括弧で囲わない癖のある人が時々ハマるミスに似てる.
0887デフォルトの名無しさん
NGNG単独文でも{}が省略されていることが明らかだから復元可能だよね。
pythonはインデント無くなると元のソースがどっちだったのか分からなくなるよね。
0888デフォルトの名無しさん
NGNGあたりまえだろボケ
だから使い物にならないって言ってるんだよ。
0889デフォルトの名無しさん
NGNGperlの$みたいなもの。
慣れると、endがないことが(よくある小さなブロックで)可読性を上げる。
0890m9っ・∀・)
NGNG0891デフォルトの名無しさん
NGNGperl の $ とは全然違うよ。
何にしろ、pythonのインデントは使いたいと思う気持ちを萎えさせるのが最悪。
0892デフォルトの名無しさん
NGNG0893デフォルトの名無しさん
NGNGpython使ってればそういうインデントに
気を遣ってないコード読まないで済むだけで俺は満足。
0894デフォルトの名無しさん
NGNGrubyのendも妙に浮いている。
個人的にはC風に{}が良いと思うが、
それも括弧の開きと閉じを関連づけるeditorの支援が得られるという前提だ。
0895デフォルトの名無しさん
NGNG極めて少数ということから考えても、その方式がわかりにくい・よみにくい
ということは明らか。慣れれば良いと言うのは、言うだけはいくらでも言える
が、まったく実際的ではない。
0896デフォルトの名無しさん
NGNG> Cで単独の文をループさせるときに波括弧で囲わない癖のある人が時々ハマるミスに似てる.
このようなミスを防ぐためにインデントによるブロック構造を導入したわけだが.
0897デフォルトの名無しさん
NGNGエディタの問題でしょ? 粘着ネチズンだなあ
0898デフォルトの名無しさん
NGNGPerlのように波括弧必須にすればよいだけの話なのでその理由は却下
0899m9っ・∀・)
NGNG極めて少数ということから考えても、その方式がわかりにくい・よみにくい
ということは明らか。慣れれば良いと言うのは、言うだけはいくらでも言える
が、まったく実際的ではない。
0900デフォルトの名無しさん
NGNG0901m9っ・∀・)
NGNG俺的には↓これで。
◆PYTHONって死滅しちゃうの?◆
0902デフォルトの名無しさん
NGNGとりあえず他のPythonスレを使い切る方向で.
0903デフォルトの名無しさん
NGNG次スレは立てたくないんだがどうか
【たぷるタソ】Pythonのお勉強 5【ハァハァ】
http://pc5.2ch.net/test/read.cgi/tech/1081264387/
【self】ぱいそんぱいそん!4【pass】
http://pc5.2ch.net/test/read.cgi/tech/1098108764/
【たぷるタソ】Pythonのお勉強 5【ハァハァ】
http://pc5.2ch.net/test/read.cgi/tech/1081264387/
Pythonのお勉強 Part6
http://pc5.2ch.net/test/read.cgi/tech/1095684242/
0904デフォルトの名無しさん
NGNG移動ということでどう?
0905デフォルトの名無しさん
NGNGJython、Groovy、JRuby - どれが一番効率的?
http://pc5.2ch.net/test/read.cgi/tech/1100563765/
0906デフォルトの名無しさん
NGNG0907デフォルトの名無しさん
NGNG事実、小学校で膨大な時間を漢字の書き取りに費やし、
PC使うにもIMEという面倒な機構が必要になっているわけで、
避けて通れるものなら避けたい言語だろう。
0908デフォルトの名無しさん
NGNG立てといたよ
次スレ
http://pc5.2ch.net/test/read.cgi/tech/1100604113/
0909デフォルトの名無しさん
NGNGってかスレ名からすると妨害か。
0910デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1098108764/
http://pc5.2ch.net/test/read.cgi/tech/1100604113/
を削除依頼したいと思うんだが,初めてなので助言よろ.
・そもそも削除依頼は簡単に通るものなのか
・削除理由は「荒らしによるスレ乱立」でいいのか.
0911デフォルトの名無しさん
NGNGそうじゃないなら使い分けの基準を明確化してね。
0912デフォルトの名無しさん
NGNG>>901
0913デフォルトの名無しさん
NGNGこのスレとタプルスレは既に900overなので,>>910の2つのスレを削除すれば
事実上「Pythonのお勉強 Part6」に一本化される.
0914デフォルトの名無しさん
NGNGは、まともなやりとりもされているので、削除はまずいと思う。
0915デフォルトの名無しさん
NGNG0916デフォルトの名無しさん
NGNG確か,そのスレも今回のような流れで立てられたんだよな….
まともなやりとりも多少あるのは知ってるけど,ここは思い切って削除した方が
いいような気がする.
とはいえ,スレ削除の基準をよく知らないので,あまり強いことは言えないが.
0917デフォルトの名無しさん
NGNGそもそもどういう理由で削除依頼するんだ?
0918デフォルトの名無しさん
NGNG昔そのスレに誘導されたんだけど、今にして思えば騙された気がする(w
初心者からするとただでさえ情報すくないのに
スレ開いたらネタスレで
ぱいそんぱいそん〜〜 AA略
以外書き込みなかったりしたらショック。せっかくPythonに興味持った人が
どっかいっちゃうかも知れぬ。
0919デフォルトの名無しさん
NGNG暗号化・復号化しようと思ったら追加パッケージ入れるしかないすかね?
rotorは撤廃って書いてあるし…
0920デフォルトの名無しさん
NGNG会社の仕事はPythonでやってるんですか?
0921デフォルトの名無しさん
NGNG関西支部を作りなさい。これは命令です。
0922m9っ・∀・)
NGNG何をどう暗号化したいかによるんじゃないの?
排他的論理和とかビットシフトによる単純な暗号化でも足りるとか、
別のアプリによって暗号化の方法が決まってるとかいろいろあるっしょ。
>>920
規模の大きな開発には使ってないなあ。電卓+α的な使い方が多い。
出力の検算とか、アルゴリズムのプロトタイプに使ったりもする。
日曜プログラミングはほとんど Python のみです。
0923デフォルトの名無しさん
NGNGデバッグ用のlibファイルが必要とかコンパイルエラーが出てきた。
リンカ曰く、「Python23_d.libがネーヨ。」
リリースコンパイルなら通るんだけど・・・。
もしかして、Pythonを自前でコンパイルする必要あり?
0924923
NGNG#ifdef _DEBUG
#undef _DEBUG
#include <python.h>
#define _DEBUG
#else
#include <python.h>
#endif
で対処しています・・・。
0926デフォルトの名無しさん
NGNGttp://marc.free.net.ph/message/20040802.103348.973939b8.html
を読むと,自分でやれと書いてありますね...
python23.lib を python23_d.lib にコピーしたら一応動くそうです.
0927デフォルトの名無しさん
NGNGBlowfishぐらい同梱されてても、、、とは思うよね。
0928デフォルトの名無しさん
NGNGhttp://www.itmedia.co.jp/enterprise/articles/0411/17/news095.html
単にスタイルシートいじってただけでした。
つぅか年会費って何だ?オプソ精神に従ってドネーション整備しろよ。彼らは馬鹿ですか?
0930デフォルトの名無しさん
NGNG初めて知りますた。ぜひ取り込んで欲しいけどもう2.4には入んないかな
0931デフォルトの名無しさん
NGNG「標準で入ってた方が俺が楽だから」は、標準に含める理由にならないんじゃないかなあ。
あと、暗号関係のコードは多倍長演算ライブラリ(libgmp)にも依存して、Pythonの世界だけじゃ
済まないかもしれない。
0932デフォルトの名無しさん
NGNGデスクトップサーチがリリースされるときにpythonを知っておくと良いことが
起きるでしょう。
0933デフォルトの名無しさん
NGNGまたそうやって誇大広告を・・・
0934デフォルトの名無しさん
NGNGぷっ
0935デフォルトの名無しさん
NGNG0936デフォルトの名無しさん
NGNG0937デフォルトの名無しさん
NGNG0938デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNG0940デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1081264387/882
pyblogger
blogninja
...
0941デフォルトの名無しさん
NGNGf.write("test")
ここで任意の漢字コードをいくつか適用したいのです。
文字そのものはpykf等で変わりますが、ファイルはShift_JISで保存されて化けてしまうです。
FAQっぽいので、どこか良さげな資料などないでしょうか。
PyJUGのPython 2.3.4(Win32)です。
0942デフォルトの名無しさん
NGNGf.write("test") だと ascii でも Shift_JIS でも euc_jp でも utf-8 でも同じだね。w
ソース自体のエンコードは何になっているの?
# -*- coding: utf-8 -*-
# -*- coding: euc_jp -*-
# -*- coding: cp932 -*-
f=file("test.txt",'w')
f.write("日本語文字列を書き込んでみる test.")
f.close()
IDLE を使って、最初のエンコーディング指定を入れ替えて save して試してみれば
ちゃんとソースが書かれたエンコードに合わせて書き出されるのが分かると思う。
0943デフォルトの名無しさん
NGNGimport codecs
f = codecs.open("test.txt", "wb", "EUC-JP")
f.write(u"Unicodeの日本語文字列")
0944941
NGNGコード省略しすぎました。本来は変数で行間で変換してるということで。
ソースはSjisです。一行目にその特殊なコメント入れてIDLEで走らせましたが、
結果変わらずでした。
>>943
これだ、と思ったのですが
codecs.pyがなにか文句言って処理してくれません。
UnicodeError: EUC-JP encoding error: invalid character \x83
求めるところはここなので、少し粘ってみます。
0945m9っ・∀・)
NGNGなどのファイルエンコーディングを指定せずに
u"Unicodeの日本語文字列" のような文字列リテラルを書いている
と見た。
0946デフォルトの名無しさん
NGNG始めて3日目でして。みなさまのおかげで坊主にならなくて済みそうです
0947デフォルトの名無しさん
NGNGhttp://www.python.jp/Zope/articles/japanese/Python4Japanese-2
ここを一通り読んでおくと良いよ。
翻訳物の本やテキストだと日本語がらみの問題は出てこないのでちょっと気付かないよね。
(付属のチュートリアルにも一通りは書かれているのだけれども)
0948デフォルトの名無しさん
NGNG0949デフォルトの名無しさん
NGNG0950デフォルトの名無しさん
NGNG/ ̄\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
─( ゚ ∀ ゚ )< Boooooooooo!!
\_/ \_________
/ │ \
∩ ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< BooBooBoo!!!
Boo〜〜〜〜! >( ゚∀゚ )/ | / \__________
________/ | 〈 | |
/ /\_」 / /\」  ̄ / /
0951デフォルトの名無しさん
NGNG0952デフォルトの名無しさん
NGNGMost of Google is implemented in C or C++ for efficiency and can run in either Solaris or Linux.
Both the URLserver and the crawlers are implemented in Python.
0953デフォルトの名無しさん
NGNG〜が得意っていうのがなくて何でもソツなくこなす感じ。
逆に言えばつまんない言語なのかも。
日本じゃ知名度もまーだまだな感じだし。
0954デフォルトの名無しさん
NGNGURLserver ってwebサーバとは違うんかな。
0955デフォルトの名無しさん
NGNG0956デフォルトの名無しさん
NGNGttp://www.honors.montana.edu/~jjc/easytut/easytut/node5.html#SECTION00530000000000000000
のExercisesで全てくっつけて表示しろというのができません。
とりあえず書いてみたのですが、
# Input Strings
str1 = raw_input("Please Input String 1:")
str2 = raw_input("Please Input String 2:")
# Input Integers
int1 = input("Please Input Integer 1:")
int2 = input("Please Input Integer 2:")
#Print Results
print "Result is ",str1 + str2,int1,int2 ←この行をどうすればよいかがわかりません
print "Multiplies the two numbers is",int1 * int2
どうすればよいのでしょうか。
0957デフォルトの名無しさん
NGNG0958デフォルトの名無しさん
NGNGstr型に変換すればいいということですね。ありがとうございました。
0959デフォルトの名無しさん
NGNG0960デフォルトの名無しさん
NGNGどのようなサイトから見たらよいですか?
.pyというファイルを作ってテキストでプログラムを打つことはだいたいわかるのですが、
ひらきかたがわかりません
ばかですごめんなさいでもおねがいします
0961デフォルトの名無しさん
NGNGとりあえずIdleでいいんじゃない。
0962デフォルトの名無しさん
NGNGhttp://ar.aichi-u.ac.jp/python/gui/
http://www.python.jp/pipermail/python-ml-jp/2004-April/002879.html
http://www.python.jp/pub/doc_jp/tut_2.3/
0963960
NGNGぼく、がんばります。
0964デフォルトの名無しさん
NGNG> http://ar.aichi-u.ac.jp/python/
これは参考にしないほうが良いような。
c:\にソースを置けとか言っちゃってるし。
0965デフォルトの名無しさん
NGNGhttp://www.freeml.com/info/[email protected]
http://homepage1.nifty.com/kazuf/python_kikai.html
質問はここでするのがおすすめ。
わからないことがあったらまずはGoogleで検索しよう!
0966デフォルトの名無しさん
NGNGいいトシこいたオトナのくせに自分を機械伯爵なんて呼ぶなよ。
警察に通報されるぜ。
0967デフォルトの名無しさん
NGNG0968デフォルトの名無しさん
NGNGありますか?
0969デフォルトの名無しさん
NGNGdef outer():
c = 0
d = []
def inner():
c = 100
d.append(100)
inner()
print c
print d
outer()
0970デフォルトの名無しさん
NGNGpythonの代入はbindだから。
内側で c=100 すると、cという同じ名前の新しい箱を別途用意して、100をそこに放りこむ。
0が入った外側のcの箱は、0が入ったままでかわらない。
d.append(100)は、dの箱に入った配列を操作するので、外側のdにも伝わる。
0971デフォルトの名無しさん
NGNG「これぐらいなら考えればできるだろ」みたいなお題をもらえないでしょうか。
0972デフォルトの名無しさん
NGNG簡単すぎるか・・
0973デフォルトの名無しさん
NGNG0974デフォルトの名無しさん
NGNG0975デフォルトの名無しさん
NGNG0976デフォルトの名無しさん
NGNG0977デフォルトの名無しさん
NGNG御回答ありがとうございました。
今、『はじめてのPython 第二版』を読んでいるのですが、
同書P243「13.3.1 変数の扱い」「変数に値を代入する」の記述は、誤りのようですね。
0978971
NGNG0979デフォルトの名無しさん
NGNG> 同書P243「13.3.1 変数の扱い」「変数に値を代入する」の記述は、誤りのようですね。
間違ってないよ。「最も内側の関数で〜」と書いてあるでしょ。
0980デフォルトの名無しさん
NGNG>>977と別人です。
まとめてみると
>最も内側の関数でネストスコープの変数Xに値を代入する(あるいは変更する)には
>最も内側の関数の中でのglobal宣言が必要です。
def outer():
c = 0
d = []
def inner():
global c
c = 100
d.append(100)
inner()
print c
print d
outer()
------------------
$ python scope.py
0
[100]
$
------------------
やっぱり間違ってるような。
0981デフォルトの名無しさん
NGNG機械仮性に質問するとどうでもいい事とか役に立たない方法ばっかり答えてくるのがうざい。
お前は質問に答えたいのかと。しょぼい雑学を自慢したいだけちゃうんかと。
他の人が答えた後にいちいちしゃしゃり出てくるのもキモイ。
C57テクノロジー?馬鹿ですか?テストの点数合計ごときExcelでやれよ。オナニくさ杉。
と、まだ地球にいる漏れは思うのだが?
0982979
NGNG>>977
「変数に値を代入する」の話なので、変数の値を“変更”といっているのは、
代入演算子を使ってのことと解するべきでしょう。
あとは 970氏のいうとおり。
>>980
こういうこと。
c = 50 ;グローバル変数
def outer():
c = 0 ;ローカル変数
d = []
def inner():
global c
c = 100 ;グローバル変数
d.append(100)
inner()
print c ;ローカル変数
print d
outer()
print c ;グローバル変数
0983979
NGNGやっぱり、『初めてのPython』の記述が変なのか。
ちょっと頭冷やしてから出直してきます。
0984デフォルトの名無しさん
NGNGコメントは # で書くべきではないかと。
0985デフォルトの名無しさん
NGNG0986デフォルトの名無しさん
NGNGhttp://mail.python.org/pipermail/python-list/2003-December/198875.html
0987デフォルトの名無しさん
NGNG原書の正誤表にはそんなことは書かれていないし、訳がおかしいのかな。
http://www.oreilly.com/catalog/lpython2/errata/
0988デフォルトの名無しさん
NGNG0989デフォルトの名無しさん
NGNG0990デフォルトの名無しさん
NGNGそれ1st ediition
0991デフォルトの名無しさん
NGNGURL: http://pc5.2ch.net/test/read.cgi/tech/1104156256/
0992デフォルトの名無しさん
NGNG梅!梅!
0993デフォルトの名無しさん
NGNG0994デフォルトの名無しさん
NGNG0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNG0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG次スレはこちらです
http://pc5.2ch.net/test/read.cgi/tech/1104156256/
〜 終了 〜
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。