Pythonのお勉強 Part10
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/06/29(木) 00:33:29日本Pythonユーザ会
http://www.python.jp/Zope/
Python オフィシャルサイト
http://www.python.org/
まとめwiki
http://www7a.biglobe.ne.jp/~yasozumi/python/wiki/
問題集
http://www.pythonchallenge.com/
前スレ
http://pc8.2ch.net/test/read.cgi/tech/1141964987/
0002デフォルトの名無しさん
2006/06/29(木) 00:34:260003デフォルトの名無しさん
2006/06/29(木) 12:06:40スレを立てる前にスレ立て宣言しろ
スレ立てたら現行スレに報告入れろ
0004デフォルトの名無しさん
2006/06/29(木) 16:44:21誰かがスレを立てる前にお前がスレ立て宣言しろ
誰かがスレ立てたらお前が現行スレに報告入れろ
0005デフォルトの名無しさん
2006/06/29(木) 16:57:06>>4
0006デフォルトの名無しさん
2006/06/29(木) 19:00:06>>3
なんで俺に断り無く勝手にスレ立ててんだよ
って言いたいのかと esp
0007デフォルトの名無しさん
2006/06/29(木) 19:33:37毎日2chをチェックするプログラムを作ってみれ。
0008デフォルトの名無しさん
2006/06/29(木) 19:45:52とりあえずここだけ見ればいいですか?
http://pc8.2ch.net/tech/subback.html
0009デフォルトの名無しさん
2006/06/29(木) 19:49:29公開するつもりなら、転送量考えてこっちにするべき
0010デフォルトの名無しさん
2006/06/29(木) 19:50:210011デフォルトの名無しさん
2006/06/29(木) 20:10:22竹石圭佑って他人に色々迷惑かけてんだな。確かコイツの親は中国人だったろ。中学校ん時に噂あった。
やっぱ在日って最低だ。近いうちテレビ報道されるような犯罪起こすんじゃないか?性犯罪とか
0012デフォルトの名無しさん
2006/06/29(木) 20:20:270013デフォルトの名無しさん
2006/06/29(木) 20:58:19import re
import urllib
print re.findall('(.*)ython(.*)', urllib.urlopen('http://pc8.2ch.net/tech/subject.txt').read())
0014デフォルトの名無しさん
2006/06/29(木) 21:16:260015デフォルトの名無しさん
2006/06/29(木) 22:02:140016デフォルトの名無しさん
2006/06/29(木) 22:29:230017デフォルトの名無しさん
2006/06/30(金) 18:34:56これでは動作確認ができません。
0018デフォルトの名無しさん
2006/06/30(金) 19:07:09短気だな。このスレが埋まるまで待て。次のFIFAワールドカップまでにはたぶん・・・
0019デフォルトの名無しさん
2006/06/30(金) 19:52:022chの subject.txtをコピー&改造してローカルサーバーを立ち上げてテストするんだ
・・って、マジレスすればいいの?
0020デフォルトの名無しさん
2006/07/02(日) 01:12:280021デフォルトの名無しさん
2006/07/02(日) 01:31:45解凍すればサブディレクトリ"PC"の中に入ってるよ
0022デフォルトの名無しさん
2006/07/02(日) 02:59:520023デフォルトの名無しさん
2006/07/02(日) 10:52:53ワンポイントの刺繍でもいいです。
0024デフォルトの名無しさん
2006/07/02(日) 14:06:50こんな感じ?
ttp://cocoa.gazo-ch.net/bbs/50/img/200607/848841.jpg
ttp://cocoa.gazo-ch.net/bbs/50/img/200607/848843.jpg
0025デフォルトの名無しさん
2006/07/02(日) 17:27:190026デフォルトの名無しさん
2006/07/02(日) 21:41:510027デフォルトの名無しさん
2006/07/02(日) 22:22:190028デフォルトの名無しさん
2006/07/02(日) 22:36:490029デフォルトの名無しさん
2006/07/03(月) 00:13:03あとこういう画像を張る24も別の意味で可哀想。
0030デフォルトの名無しさん
2006/07/03(月) 00:22:320031デフォルトの名無しさん
2006/07/03(月) 01:08:46(フツーのモデルさんでしょ?)
0032デフォルトの名無しさん
2006/07/03(月) 01:24:22可読性の高さは群を抜いてるからそれが強みだと思うんだけども
可読性が高いっつーことは、保守性が高いっつーことで
後から手入れるにしても他の言語より楽だし
0033デフォルトの名無しさん
2006/07/03(月) 01:28:56マイクロソフトに期待してる。。ほのかに
0034デフォルトの名無しさん
2006/07/03(月) 01:43:350035デフォルトの名無しさん
2006/07/03(月) 01:58:49俺の感覚ではかなーり流行っている希ガス。
爆発的じゃなくゆっくりと、しかし確実に普及してきているように感じる。
主観だけじゃ何なのでググって見つけた数字でも。
TIOBE Programming Community Index for June 2006
http://www.tiobe.com/tpci.htm
Programming Language Popularity (updated 2005-10-20)
http://www.dedasys.com/articles/language_popularity.html
0036デフォルトの名無しさん
2006/07/03(月) 03:58:48まあ明らかにプログラマ向きでない人がプログラマを職業としているわけだが。
0037デフォルトの名無しさん
2006/07/03(月) 09:22:43Windowsバイナリを追加モジュールがないと作れないのも原因かと。
py2exe使ったときは配布サイズがHelloWorldでも4Mとか行くし。
0038デフォルトの名無しさん
2006/07/03(月) 10:19:45んだね。LinuxではPython流行りまくり。
0039デフォルトの名無しさん
2006/07/03(月) 13:10:18もうちょっと早くはやり始めたのではないかと思う。
0040デフォルトの名無しさん
2006/07/03(月) 13:37:04>多言語
あんたはMatzか。
0041デフォルトの名無しさん
2006/07/03(月) 13:46:37それはぜんぜんかんけいないよ
0042デフォルトの名無しさん
2006/07/03(月) 14:31:20そうだったの?
0043デフォルトの名無しさん
2006/07/03(月) 15:21:320044デフォルトの名無しさん
2006/07/03(月) 15:54:58仲間内で使ってて流行ってるというのはどうかと思うが
それだと Ruby 厨と変わらん
0045デフォルトの名無しさん
2006/07/03(月) 16:21:18そういう対立を煽るような馬鹿発言が一番うざいんですけど
0046デフォルトの名無しさん
2006/07/03(月) 16:52:060047デフォルトの名無しさん
2006/07/03(月) 17:25:210048デフォルトの名無しさん
2006/07/03(月) 17:27:220049デフォルトの名無しさん
2006/07/03(月) 18:28:07俺はPythonがメジャになればそれはそれで嬉しいけど、別にマイナでも構わん気がする。
0050デフォルトの名無しさん
2006/07/03(月) 18:47:240051デフォルトの名無しさん
2006/07/03(月) 18:56:27perlの強みはどこでも実行できることだし
0052デフォルトの名無しさん
2006/07/03(月) 19:23:07えーー
0053デフォルトの名無しさん
2006/07/03(月) 19:26:000054デフォルトの名無しさん
2006/07/03(月) 19:54:38スレッドの実装がタコなRuby
国内でマイナーなPython
0055デフォルトの名無しさん
2006/07/03(月) 20:01:050056デフォルトの名無しさん
2006/07/03(月) 20:59:50l = [1,3,5,6,3,3,4,6,9]
があったときに、重複した値を取り除く(uniq)エレガントな方法を教えてください。
2.4ならset(l)でokなんだが‥‥‥。
dictに突っ込むしかないかなぁ
0057デフォルトの名無しさん
2006/07/03(月) 21:28:51Pythonが無いとすげー困る。つーか、インストールに必須。
0058デフォルトの名無しさん
2006/07/03(月) 22:22:21dictにつっこむと順番が狂う鴨
0059デフォルトの名無しさん
2006/07/03(月) 22:44:33for i in l:
i in m or m.append(i)
これじゃダメ・・・?
0060デフォルトの名無しさん
2006/07/03(月) 23:13:52いいかも。ありがと。実験してみたら in って計算量O(1)に近いみたいね‥‥‥
>58
順番は気にしなかった、今は反省している。
0061デフォルトの名無しさん
2006/07/03(月) 23:36:38> 実験してみたら in って計算量O(1)に近いみたいね‥‥‥
ソース見る限りはO(N)だがなぁ。リストやタプルのinはただの線形探索だから。
まぁ100や200の要素くらいではほとんど一瞬なので、あまり気にしなくていいと思う。
0062デフォルトの名無しさん
2006/07/04(火) 08:25:07あるものを確認するときはリストサイズに影響を受けてたけど、
無いものを確認するときはO(1)っぽかったね。
0063デフォルトの名無しさん
2006/07/04(火) 08:55:40a.sort()
[item for item, iter in itertools.groupby(a)]
0064デフォルトの名無しさん
2006/07/04(火) 09:34:04a = [1,3,5,6,3,3,4,6,9]
a = dict.fromkeys(l).keys()
0065デフォルトの名無しさん
2006/07/04(火) 12:21:01b = a[:]
print [x for x in a if x not in b.remove(x)]
寝てるときに考えたらできそうだったけど、ダメだった。removeだし。
0066デフォルトの名無しさん
2006/07/04(火) 13:15:160067デフォルトの名無しさん
2006/07/04(火) 14:55:3165> 寝てるときに考えたら
器用だねー。うやらまし。
ありがとん。
0068デフォルトの名無しさん
2006/07/04(火) 17:49:12日本語の「寝る」という単語には「眠る」という意味と「横になる」という意味があるんですよ。
難しいですね。
0069デフォルトの名無しさん
2006/07/04(火) 20:50:09と書くだろうけどな
0070デフォルトの名無しさん
2006/07/04(火) 20:53:20プログラミング能力無しどころか社会生活不適合だろ。
0071デフォルトの名無しさん
2006/07/04(火) 21:48:57ヒラメキが発生しやすいんだぞ
0072デフォルトの名無しさん
2006/07/04(火) 21:51:070073デフォルトの名無しさん
2006/07/04(火) 22:16:150074デフォルトの名無しさん
2006/07/04(火) 22:16:28便利だからよく見ていたんだけど、復活してくれないものかのう。
0075デフォルトの名無しさん
2006/07/04(火) 22:29:070076デフォルトの名無しさん
2006/07/04(火) 23:51:23007761
2006/07/05(水) 00:05:45Objects/listobject.c: list_contains
Objects/tupleobject.c: tuplecontains
Objects/stringlib/fastsearch.h: fastsearch
辺りを見たらO(N)ぽかった。
0078デフォルトの名無しさん
2006/07/05(水) 00:18:100079デフォルトの名無しさん
2006/07/05(水) 22:01:12お、ありがとう。今度時間取ってみてみんべぇかな。
>67
日本語難しいね。でも僕も学生時代は寝ながら考えてたよ。
夢の中でコード検証してて、バグに気づいて飛び起きて
あわてて大学に回線繋いでデバッグしたこともあった。
ジジィになったらできなくなったよ(・ω・)
0080デフォルトの名無しさん
2006/07/06(木) 17:58:48こんにちは
0081デフォルトの名無しさん
2006/07/06(木) 18:23:50さようなら
0082デフォルトの名無しさん
2006/07/06(木) 20:23:320083デフォルトの名無しさん
2006/07/06(木) 21:04:05i=10
print "i=", i
とすると「i= 10」となるから、これを「i=10」としたいだけ。
超初心者質問ですまそ。
ttp://www.python.jp/doc/release/ref/print.html
あたりを読んだのだが、それらしいことは書いてなかった。
0084デフォルトの名無しさん
2006/07/06(木) 21:14:10ttp://www.python.jp/doc/release/lib/typesseq-strings.html
008583
2006/07/06(木) 21:20:54さんくす。書式文字列使うのね。
コンマが最後にくるときはどうしたらいい?
if x:
print "<x=%d>" % x,
if y:
print "<y=%d>" % y,
とすると、「<x=10> <y=20> 」とかになって、余分な空白が出力されてしまう。
0086デフォルトの名無しさん
2006/07/06(木) 21:38:040087デフォルトの名無しさん
2006/07/06(木) 21:42:39result ="<x=%d>" % x
if y:
result +="<y=%d>" % y
print result
0089デフォルトの名無しさん
2006/07/07(金) 00:07:37そりゃ、くっついたら読みにくいからだろww
そもそもデバッグ用みたいなもんなんだから、ちゃんとしたフォーマットに使うのがおかしい
0090デフォルトの名無しさん
2006/07/07(金) 00:22:50printをこまめに次々に使うのって、やっぱ開発時のちょっとテストやデバッグの時が多いんじゃないかな。
本格的に出力したいときは、
OutText= []
if x:
OutText.append("<x=%d>" % x)
if y:
OutText.append("<y=%d>" % y)
print '\n'.join(OutText)
みたいに配列に追加して、最後にまとめて出力してる。
0091デフォルトの名無しさん
2006/07/07(金) 00:23:31自分好みに出力したいなら、他のヤツを使った方がいいお( ^ω^)
0092デフォルトの名無しさん
2006/07/07(金) 01:32:55ネットで個人サイト巡ってちまちま勉強するより
数千倍効率いいね
ネットだろうと本だろうと同じような気がするんだけど
こうも変わるのはなんでだろう
0093デフォルトの名無しさん
2006/07/07(金) 02:19:46「もっと分かりやすいサイトがあるんじゃないか」って思ったりして、どこか信頼できないとか。
自分で買った本ならまじめに勉強する気になるんじゃないかな。
でも、ある程度慣れて、ちょっと専門的なモジュールの勉強しようとすると
ネットでちまちま調べるしかないけどね。
0094デフォルトの名無しさん
2006/07/07(金) 02:42:19print "i="+str(i),
ですが何か?
0095デフォルトの名無しさん
2006/07/07(金) 02:48:270097デフォルトの名無しさん
2006/07/07(金) 08:52:060098デフォルトの名無しさん
2006/07/07(金) 11:54:19宣伝乙
0099デフォルトの名無しさん
2006/07/07(金) 12:13:34matlab使ってる。
0100デフォルトの名無しさん
2006/07/07(金) 12:58:23日本語苦手な人ですか?
「みたいなもん」
0101デフォルトの名無しさん
2006/07/07(金) 13:21:16そんなソース出せっていうほどの事じゃないだろ
0102デフォルトの名無しさん
2006/07/07(金) 14:26:43はやく3.0でねーかな
0103デフォルトの名無しさん
2006/07/07(金) 14:52:560104デフォルトの名無しさん
2006/07/07(金) 15:17:35手軽でいいやん
0105デフォルトの名無しさん
2006/07/07(金) 15:57:35DEBUG=sys.stderr.write
しちゃって DEBUG() とか書くだろ普通
0106デフォルトの名無しさん
2006/07/07(金) 17:09:16この制限はどのような理由によるものでしょうか。
思想上の理由ならどのような理由なのか、また実装上の制約ならどのような制約か教えてくれませんか。
あと、except:とfinally:の両方を使う場合の書き方としては
try:
try:
...
except:
....
finally:
...
でいいんでしょうか。
0107デフォルトの名無しさん
2006/07/07(金) 19:34:34前半: Python 2.5 からできるようになります
後半: おっけー
0108デフォルトの名無しさん
2006/07/07(金) 19:38:17http://www.python.jp/doc/release/tut/node10.html#SECTION0010600000000000000000
0109デフォルトの名無しさん
2006/07/07(金) 19:42:09try - finally が、内側
外側のtryで、例外をひらうべきじゃないかな。。
0110デフォルトの名無しさん
2006/07/07(金) 19:48:24except:へ来る前にfinally:が走って欲しいか後で走ってほしいかによるな
どちらでもよければどちらでもいいだろう
0111106
2006/07/07(金) 19:51:04ありがとうございます。同時に指定できない理由はご存じないですか?
2.5はβ1がリリースされているようですが、広く使われるようになるのはまだ先のようですね。
>>108
ちょうどそれを読んで勉強しているところです。そこを読んでもわからなかったので質問してみました。
というか、このページはわかりにくい。特にgeneratorのとことか。
あと間違いっぽいのがあるですけど、「8.3 例外を処理する」で
> この値は例外の例外の引数 (argument) としても知られています。
「例外の例外の引数」は「例外の引数」でしょうか。
0112106
2006/07/07(金) 19:57:55Javaだと、catch節(except節)が実行された後にfinally節が実行されるようです。
なので、これが普通かなと思ってました。
どうなんでしょう。
>>110
except:より先にfinally:がやりたい場合というのは、今まで考えたこともありませんでした。
そんな場合もあるかもしれませんね。なるほど。
0113デフォルトの名無しさん
2006/07/07(金) 20:16:15Guidoがそう実装したから。という理由らしいです。
http://mail.python.org/pipermail/python-list/2004-June/225797.html
0114デフォルトの名無しさん
2006/07/07(金) 20:26:130115デフォルトの名無しさん
2006/07/07(金) 20:59:39Pascal にそんな機能はない
0116106
2006/07/07(金) 22:05:38どうもありがとうございます。なんと、思想的な理由でしたか!これは驚き。
> it is completely ambiguous what the programmer meant if both are
> specified together, Guido deliberately kept them separate so that
> one had to be very explicit about whether the finally was inside
> or outside the except.
ほんどうだ。except:とfinally:のどちらを先にやるのかを明確に示すために、
わざわざ同時に指定できないようにしたのですか。>>110の指摘どおりですね。
2.5では指定できるようになるとのことですが、例えば
try:
except:
finally:
ならexcept:が先でfinally:が後、
try:
finally:
except:
ならfinally:が先でexcept:が後、
という仕様にでもなるんでしょうか。もしそうならかなりユニークですね。
0117デフォルトの名無しさん
2006/07/07(金) 22:34:04> という仕様にでもなるんでしょうか。
文法見る限りならないみたい。
ところで、
try:
return 1
finally:
return 2
って書いたら2が帰ってくるのね。
return 1をキャンセルしてるよ……。
0118デフォルトの名無しさん
2006/07/07(金) 22:38:04Pythonがインデントによるブロック範囲指定だから、ePython→Pythonへの変換がちょっと面倒な気はするけど、もしあれば教えてください。
ぐぐったところでは、なんか関係なさそうのばかり引っかかった。
0119デフォルトの名無しさん
2006/07/07(金) 23:34:02http://noga.muti.co.za/template_engines
0120デフォルトの名無しさん
2006/07/07(金) 23:42:14finallyはエラーあるなしに関わらず実行されるわけだから、そのとおりじゃね?
0121デフォルトの名無しさん
2006/07/08(土) 03:19:39いやreturn握りつぶしといてエラーにしないのがすごいなと思って。
finallyブロックが実行されることに不満があるわけじゃないのよ。
0122デフォルトの名無しさん
2006/07/08(土) 03:35:07妥当な挙動だと思うけど。当然finally句の中でのreturnも「正しく」実行されるという
だけでしょ。それが結果的にペンディング中のreturnを握りつぶしたとしても。
0123デフォルトの名無しさん
2006/07/08(土) 04:13:18ほほう。このページはありがたいな。
このうち、Pythonをそのまま埋め込めるのってどれ?
0124デフォルトの名無しさん
2006/07/08(土) 08:39:14主にC側の話なんだけど・・・。
Cアプリ起動後にPythonを呼ぶとき、BOOST_PYTHON_MODUL(モジュール名)でPythonに名前を公開しています。
(initモジュール名を呼Py_Initialize呼んだ後に呼ぶ)
この時、C側の外部変数などをPythonで直接操作させる方法はありますでしょうか。
以下の問題があります。
・関数を仲介させるのは手間がかかる。boost::python::defでの更新はしたくない。
・boost::python::scopeでは属性は定義できても、C側外部変数へ引き渡す処理が書けない。
・Python関数起動時の引数に渡す方式だと、マッピング関数が必要になるためやりたくない。
理想はboost::python::defみたく
boost::python::value_<int>("g_foo", &g_foo);
って書ける事なんですけど。
0125デフォルトの名無しさん
2006/07/08(土) 08:49:11使用できるんですか?
0126デフォルトの名無しさん
2006/07/08(土) 10:53:09Pythonって、クロージャをサポートしてますか?
チュートリアルを読んだところ、それらしいのは見つかりませんでした。
質問2
lambdaは本体に式しか書けなくて文は書けないようなんですけど、なぜなんでしょうか。
また文をかけるlambdaのような機能はありますか。
0127デフォルトの名無しさん
2006/07/08(土) 11:49:592 => def
0128126
2006/07/08(土) 12:30:16lambdaのように使うということでしょうか。
あと、lambdaで文がサポートされていない理由についてもご存知でしたらお願いします。
0129デフォルトの名無しさん
2006/07/08(土) 12:36:29ttp://www.artima.com/weblogs/viewpost.jsp?thread=147358
0130デフォルトの名無しさん
2006/07/08(土) 12:41:09lambda式みたいなところに複雑なロジックを埋め込むと
可読性の悪いコードができあがりがち
def文を使った関数定義は
名前考えたり改行したり面倒だけど
可読性が高いし明瞭でよいとおもう
これがPythonic(Python的)ということなんじゃないかなあ
実際,リスト内包表記とかジェネレータ式
組み込み関数や標準モジュールを組み合わせるだけで
かなりのことができるので
翻訳ドキュメントにさらっと目を通してみることをお勧めする
0131デフォルトの名無しさん
2006/07/08(土) 12:53:53Python初心者:
簡単で明瞭な文法を使って
よちよち歩きながらコードを書く
条件分岐,ループ,(複雑な)関数定義が必要な部分は
パッと見で分かるようにブロックとして分離されるので
自分の書いたコードを反芻しながら学習を続けて行ける
Python中級者:
徐々に組み込み型,組み込み関数の素晴らしさに気づく
標準モジュールを使ったより高度なプログラミングができるようになってくる
Python上級者:
一見複雑な処理も,標準モジュールなどを駆使して簡潔に記述できるようになる
しかも,5秒くらいでどうかけば簡潔になるか思いつくようになる
既存のクラスやフレームワークを拡張して
生産性の高いプログラミングができるようになる
Pythonウイザード:
自分でPython使ったフレームワークやオープンソースプロジェクトを立ち上げる
Googleに雇われる(ww
0132デフォルトの名無しさん
2006/07/08(土) 13:05:550133デフォルトの名無しさん
2006/07/08(土) 13:20:030134126
2006/07/08(土) 14:00:58どうもありがとうございます。
単に、JavaScriptや関数型言語のように無名関数を生成するためにlambdaがあるのだと思ったのですが、
Pythonのそれは式しか指定できないから、あれっ?と思ったわけです。
def の場合は関数名をつけなければならないし、必ず文にしなければならなくて式として記述できないので、
関数型言語のlambdaやRubyのブロックと比べるとどうしても使い勝手が劣ります。
これがとても残念なので、Pythonのlambdaがわざわざ単一式だけに制限している理由が知りたいなと思ったしだいです。
またリスト内容表記やジェネレータ式が便利なのはわかるのですが、これらで無名関数の機能や用途を
すべてカバーできるわけではないし、そもそも用途が違うので、無名関数の代用にはなりません。
0135デフォルトの名無しさん
2006/07/08(土) 14:32:47みんなそういうことはわかっててその上でpython使ってるんだよね
lambdaの仕様が致命的だと考えるならlispなりrubyなりjavascriptなり使えばいいよ
0136135
2006/07/08(土) 14:35:22>def の場合は関数名をつけなければならないし、必ず文にしなければならなくて式として記述できないので、
>関数型言語のlambdaやRubyのブロックと比べるとどうしても使い勝手が劣ります。
0137デフォルトの名無しさん
2006/07/08(土) 14:47:06その事実がそうなっている理由を知りたいだけ。
別に致命的とはだれも書いてない。
0138デフォルトの名無しさん
2006/07/08(土) 14:51:400139デフォルトの名無しさん
2006/07/08(土) 14:56:13実用上はなくてもほとんど困らない
0140135
2006/07/08(土) 15:03:50あ、そう
なんかこの手の「この言語にはあれがない、これがない」っつーのって
4〜5年前から飽きるほどみてるからさ
今更頼んでもないのにご説明頂いちゃってむかっときたもんで
0141デフォルトの名無しさん
2006/07/08(土) 15:04:080142デフォルトの名無しさん
2006/07/08(土) 15:05:150143126
2006/07/08(土) 15:44:45lambdaが式しかとらないという仕様にはなにか理由があるはずだと思ったので、
それを聞いただけです。
べつにPythonのlambdaを非難することを狙っているわけじゃないです。
#あの文章を、Pythonへの非難と受け止められるとは思いませんでした。
#仕様がそうなっている理由を質問することがそんなに悪いことでしょうか。
>>138
なるほど。たしかに、インデントでブロックを表すPythonでは、式の中に文をいれるような
ことはしにくいですね。
JavaScriptだと、関数の引数に無名関数を指定できたりするんですが、
こんな感じ → funct(arg1, arg2, function(x, y) { if (x > y) return x; else return y; })
これはJavaScriptがインデントによらずコードを記述できるからできることであって、
同じようなことをPythonでするとして、lambda に文を埋め込むためのきれいな文法はちょっと思いつかないです。
それならdefでいったん関数を作成し、その関数オブジェクトを使う方がわかりやすいです。
個人的にはPythonのインデント方式は好きなんですが、それがこのような制限になるとは。むむむ。
>>141
できる・できないでいうと、どちらもできることに大差はないです。たんに、使い勝手の問題です。
Pythonの関数って、実際にはJavaScriptや関数型言語と同じように関数オブジェクトを変数に
代入してるだけだと思うので、ならJavaScriptや関数型言語のように無名関数を定義できる方法があるだろうと思って。
0144デフォルトの名無しさん
2006/07/08(土) 15:52:340145デフォルトの名無しさん
2006/07/08(土) 16:01:03exec compile(prog, "lambda", "exec")
return _
Lambda("""
def _(msg):
print msg
""")("hello lambda (^^;")
0147126
2006/07/08(土) 16:45:59情報ありがとうございます。>>129 を読んでみましたが、英語なのでよくわかりませんでした。
> But I'm rejecting that too, because in the end (and this is where I
> admit to unintentionally misleading the submitter) I find any solution
> unacceptable that embeds an indentation-based block in the middle of
> an expression. Since I find alternative syntax for statement grouping
> (e.g. braces or begin/end keywords) equally unacceptable, this pretty
> much makes a multi-line lambda an unsolvable puzzle.
「I find any solution unacceptable that embeds an indentation-based block
in the middle of an expression」とあるので、やっぱりインデントされた文を
式の中に埋め込むのは難しい、というふうに読めたのですけど、どうでしょうか。
作者が文章全体でいいたいことは、言語仕様設計はパズルを解くのとは違い、
ユーザインターフェースを設計するのと同じなんだ、ということみたいですが。
>>146
あの文章がオナニーと受け止められるとは思いませんでした。
どこらへんがそう思ったのでしょうか。
0148デフォルトの名無しさん
2006/07/08(土) 18:31:58def Function(args, body):
code = "def _tmp_func_(" + args + "):\n"
code += "\t" + body.lstrip("\n").rstrip().replace("\n", "\n\t")
exec compile(code, "lambda", "exec")
return _tmp_func_
map(Function("n", """
if n % 2 == 0:
return n * n
else:
return n
"""), range(10))
→ [0, 1, 4, 3, 16, 5, 36, 7, 64, 9]
読みづらすぎる・・・
0149デフォルトの名無しさん
2006/07/08(土) 19:04:12> 作者が文章全体でいいたいことは、言語仕様設計はパズルを解くのとは違い、
> ユーザインターフェースを設計するのと同じなんだ、ということみたいですが。
つまりどういうこと?
0150デフォルトの名無しさん
2006/07/08(土) 19:57:09A: scheme 由来だから。
# ruby厨は巣に帰れ
0151デフォルトの名無しさん
2006/07/08(土) 20:01:06inspectとか使って名前空間も引っ張ってくればウマーだな
まずつかわないけどw
0152126
2006/07/08(土) 20:22:34これってほんとですか?どっかにそう書かれているなら、それを教えていただけないでしょうか。
それから、Schemeのlambdaは本体に複数の式や文を指定できますよ。
Schemeの場合、文も式だから「式や文」という表現はおかしいかもしれませんが。
>>149
英語なんであまりよくわからないんですが、ある機能が実現できるからといって、複雑さも増えてしまっては、使いづらいものになる、ということみたいです。
パズルなら、その解法でパズルが解けるかどうかが重要であって、その解法が
複雑かどうかはあまり問題ではない(複雑でも問題ない)が、
言語仕様は開発者に対するユーザインターフェースなのだから、ある機能を
追加したために仕様が複雑になってしまってはユーザインターフェースとして
失敗だという主張のようです。
lambdaに文を指定できるような文法を持ち込むと複雑になってしまうし、
今でも def でできるわけだから、わざわざ複雑さを増やしてまで導入する必要は
ないという判断なのでしょう。
(間違ってたらごめんなさい)
0153デフォルトの名無しさん
2006/07/08(土) 20:28:190154デフォルトの名無しさん
2006/07/08(土) 21:43:28>こんな感じ → funct(arg1, arg2, function(x, y) { if (x > y) return x; else return y; })
こんなことできる仕様だから、セキュリティ上の問題が発生するんだろ
0155デフォルトの名無しさん
2006/07/08(土) 22:15:140156デフォルトの名無しさん
2006/07/08(土) 22:16:51lambda自体無くしたい、という4月ネタもあったことだし。
0157デフォルトの名無しさん
2006/07/09(日) 00:10:500158デフォルトの名無しさん
2006/07/09(日) 01:23:130159デフォルトの名無しさん
2006/07/09(日) 01:47:53時代に左右されず、長いこと萌えられるよな
というのがPythonなのに
なぜミニスカートじゃないんだ?
ミニスカートのほうが萌えるに決まってる!
スカートが長いのはGuidoがヘンタイなんじゃないのか?
とか言われてもな。
0160デフォルトの名無しさん
2006/07/09(日) 03:03:02>135とか意味不明すぎてアホっぽくみえる。
0161デフォルトの名無しさん
2006/07/09(日) 06:46:450162デフォルトの名無しさん
2006/07/09(日) 10:13:480163デフォルトの名無しさん
2006/07/09(日) 11:28:52オタウゼエ
0164デフォルトの名無しさん
2006/07/09(日) 11:43:54は?どんなセキュリティ上の問題が出るっての?
言ってみろよ。
0165デフォルトの名無しさん
2006/07/09(日) 12:06:00オタ臭がぷんぷんする例えだな。
それはそうと、だったらスカートが膝丈である理由を説明してあげればいいだけのこと。
lambdaが文をとらない理由を聞かれてるんだから、それを説明すればいいのに、
「それはそういうもん」とか「lispなりrubyなりjavascriptなり使えば?」とか、
ぜんぜん役にたたないカキコしてもなんにもならん。
>>140
4〜5年も同じことを繰り返して成長がない>>140乙。
>>150
おいおい、PythonのlambdaはSchemeとは関係ないだろ。名前以外。
Schemeのlambdaはif文埋め込めるし。
0166デフォルトの名無しさん
2006/07/09(日) 12:07:340168デフォルトの名無しさん
2006/07/09(日) 12:17:120169デフォルトの名無しさん
2006/07/09(日) 12:21:120170デフォルトの名無しさん
2006/07/09(日) 13:08:42ただの手癖?
0171デフォルトの名無しさん
2006/07/09(日) 13:21:11直交性という意味では理解できるけど、そもそも文=インデントされた行というPythonには
スタイル的に似合わないと思う。仮に実装したとしてもスコープが2階層しか存在しない
(クロージャが無い)からLispにおけるlambdaほどの実用性はないのではないか。
単純な式程度のものを渡したいという用途を考えればPythonのlambdaのような割り切りは
それなりに納得できる。
0172デフォルトの名無しさん
2006/07/09(日) 13:22:48「lambdaに文を入れるのは手癖がわるい」ということになるのかな。
0173デフォルトの名無しさん
2006/07/09(日) 13:40:400174デフォルトの名無しさん
2006/07/09(日) 14:33:280175デフォルトの名無しさん
2006/07/09(日) 14:52:55その手癖じゃないだろ
0176デフォルトの名無しさん
2006/07/09(日) 15:36:18はげしく同意
0177デフォルトの名無しさん
2006/07/09(日) 17:04:050178デフォルトの名無しさん
2006/07/09(日) 17:10:390179前スレ797
2006/07/09(日) 17:17:43れる方は透明あぼーん推奨だ。
まず第一に、Python界で、関数型言語的な機能は、鬼っ子扱いされているという
ことだ。Guido van Rossum自身、「lambdaもmapもreduceも分かりづらくて嫌い
だ」と明言している。こういう分かりづらい機能はなるべく制限したい、という
声がPythonユーザの大勢を占めている。
第二に、関数型的なユーザの中でも、機能を制限したい、という声があることだ。
近代的な関数型言語では、関数に何でも許可してしまうLISPのような言語は原始
的だ、と考えるんである。
http://www.sampou.org/haskell/article/whyfp.html
詳しくはHaskellなどを学べばいいと思う。
この二つの意見が一致したため、Pythonのlambdaには、ステートメントを実行で
きないという制約がついているのだろう。
しかし、こういう質問が出るのも当然ではある。Pythonは一見するとすごく関数
型的に見えるから、LISP経由でPythonに来た人間は、どうしてもその流儀で書き
たくなる。しかし、PythonはCユーザに一番書きやすいように出来ているのだ。
関数がファーストクラス・オブジェクトなのは、単に関数ポインタを自然に実現
するためだったんだと思う。
PythonにはPythonの流儀がある。実行の単位が関数ではなくステートメントなの
も、時代と逆行するかのようだが、Python的なこだわりのひとつなのだろう。
そのこだわりには、わずかにHaskellに通じるものがあって、私はその辺が気に
入っている。LISPの流儀で書きたい人は、Rubyのほうが幸せになれると思う。
あと、念のために書いておくが、Pythonにクロージャは存在する。
0180デフォルトの名無しさん
2006/07/09(日) 17:25:01if式ってa = b ? c: d;のことか?
それなら2.5で導入されるぞ。
Noneであれば別のもの、なら今でもできるけど。
0181デフォルトの名無しさん
2006/07/09(日) 17:31:25>
>第二に、関数型的なユーザの中でも、機能を制限したい、という声があることだ。
>近代的な関数型言語では、関数に何でも許可してしまうLISPのような言語は原始
>的だ、と考えるんである。
>http://www.sampou.org/haskell/article/whyfp.html
>詳しくはHaskellなどを学べばいいと思う。
上のページは読んだことあるけど、「機能を制限したい」とはどこに書かれてる?見つけられなかった。
Haskell学ぶほどの余裕はないので、教えてほしい。
0182前スレ797
2006/07/09(日) 17:45:16「参照透明」性がその答えだ。すなわち、関数に副作用がないこと。具体的には、
変数への再代入がないこと、制御フローがないことなどを指す。
これは手続き型に慣れたユーザには、理不尽な制約としか見えないだろう。しか
し、この参照透明性のおかげで、近代的な関数型言語では、自由な関数合成(高
階関数)と遅延評価が実現できるのだ。いずれも計算量とプログラマの負荷を激
減させる可能性のある、きわめて重要な機能だ。
遅延評価は、Pythonではジェネレータという形で実現されている。
0183前スレ797
2006/07/09(日) 17:55:21×ジェネレータ → ○イテレータ
ジェネレータしか使っとらんのでつい間違えた。
参照透明性の説明もずいぶんアレだが、まあリンク先を見れば分かるから
良かろう。
0184デフォルトの名無しさん
2006/07/09(日) 21:00:180185デフォルトの名無しさん
2006/07/09(日) 21:23:510186デフォルトの名無しさん
2006/07/09(日) 21:35:13OOP的には(笑)
0187デフォルトの名無しさん
2006/07/09(日) 21:38:41>言語厨ばかり寄ってくるからlambdaいらない。
ワンライナー書く時に便利だから残しといて
0188デフォルトの名無しさん
2006/07/09(日) 21:44:56普通にローカルでdefって渡すほうがPythonっぽいと思う
0189デフォルトの名無しさん
2006/07/09(日) 21:53:44159みたいなののほうが3000倍マシ
0190デフォルトの名無しさん
2006/07/09(日) 22:32:07ローカルでdefれるから、lambdaを使うのはすごく簡単な内容だけ。
0191デフォルトの名無しさん
2006/07/09(日) 22:57:27参照透明性(副作用がないこと)と、>>179の「機能を制限したい」との関係がよくわからん。
>近代的な関数型言語では、関数に何でも許可してしまうLISPのような言語は原始
>的だ、と考えるんである。
参照透過性を実現するには代入のような副作用を禁止することであって、
関数に何でもかけてしまうこととは直接の関係はないんじゃね?
Haskellの関数には何でもかけるけど、参照透過性は確保されている。
(そもそも、関数型言語では関数に何でも書けるようになってないと困るだろ。)
またPythonのlambdaは式しか書けないから参照透過性が実現されているかというとそうではない。
なぜなら式は関数呼び出しを含めることができ、かつPythonの関数は副作用を含めることができるから。
それから、Pythonのlambdaでは式しか書けないのは参照透過性を実現するためだというのは、
意見としてはおもしろいけど、>>129みるかぎりはそこまで深いことは考えてなさそう。
0192デフォルトの名無しさん
2006/07/09(日) 22:59:41179みたいなののほうが3000倍マシ
0193デフォルトの名無しさん
2006/07/09(日) 23:21:01何も表示されない(または空文字列が出力される)ようにするよさげな方法ある?
今は
def to_string(val):
if val == None:
return ''
else:
str(val)
としてるんだけど、自分で関数を定義しなくても、このくらいなら標準でなんかライブラリがありそう。
0194前スレ797
2006/07/09(日) 23:22:25やっと意図したようなレスが返ってきた。あなたの意見にはほぼ全面的に賛成だ。
>>179をもう少し正確に言い直すなら、Pythonのlambdaの制約をなくしたいとい
う主張に対して、関数型言語的ユーザの足並みが揃わないことの理由であって、
これだけで参照透過性が保証されるわけでは全然ない。また、van Rossumがそれを
却下した理由が、参照透過性でないことは、おっしゃるとおりだ。
ただ、こういう話には、このスレでは非常に風当たりが強いから、思い切り
端折るしかなかった。
>>180によると、2.5で三項演算子が導入されるようだ。これでPythonでも
Y Combinatorが書けるようになるということか。
0195デフォルトの名無しさん
2006/07/09(日) 23:28:33参考演算子っていっちゃいけないんだよ
0196デフォルトの名無しさん
2006/07/09(日) 23:46:020197デフォルトの名無しさん
2006/07/10(月) 01:53:450198デフォルトの名無しさん
2006/07/10(月) 02:07:400199デフォルトの名無しさん
2006/07/10(月) 02:13:180200デフォルトの名無しさん
2006/07/10(月) 02:27:060201デフォルトの名無しさん
2006/07/10(月) 02:28:06pythonは良くも悪くもgoogleと一蓮托生なので少なくともgoogleの寿命分は生き残る保証がある。
0202デフォルトの名無しさん
2006/07/10(月) 03:08:120203デフォルトの名無しさん
2006/07/10(月) 03:16:15>pythonは良くも悪くもgoogleと一蓮托生なので
良くも悪くもFUDですよ。
0204デフォルトの名無しさん
2006/07/10(月) 03:34:16Rubyのスッドレは2.0ではマシになるのかな?
新しいスレッド実装が安定するまで
どのくらいの時間がかかるのかは分からないけどね
いずれにしろ
matzが自ら言語コアの実装するのを諦めて
開発体制を一新しないと先は短いだろうね
Guidoが何年も前になしえたことを
Rubyは何年かけてやるんだろうね
0205デフォルトの名無しさん
2006/07/10(月) 06:03:110206デフォルトの名無しさん
2006/07/10(月) 10:06:130207デフォルトの名無しさん
2006/07/10(月) 11:54:30rpmとかyumみたいに進行具合をプリントするのってどうやるのですか?
0208デフォルトの名無しさん
2006/07/10(月) 12:03:200209デフォルトの名無しさん
2006/07/10(月) 18:04:35http://pyfaq.infogami.com/is-there-a-curses-termcap-package-for-python
0210デフォルトの名無しさん
2006/07/10(月) 19:55:36↑ ↑
| なんかクルクルまわるやつ
こーゆーやつじゃね?
0211デフォルトの名無しさん
2006/07/10(月) 20:02:55俺もそっちじゃないかと思う。
スクリプトの途中にpirnt文を書いたときに、
その時点で次々printされるときと、スクリプトの最後にまとめてprintされる時がある。
詳しく調べてないんでどういう時に違いがおこるのかは分からん。
0212デフォルトの名無しさん
2006/07/10(月) 20:54:560213デフォルトの名無しさん
2006/07/10(月) 22:10:16はいはい、あんたが物知りなのはわかったから、わかりやすく教えてやれ
0214デフォルトの名無しさん
2006/07/10(月) 22:21:120215デフォルトの名無しさん
2006/07/10(月) 22:21:210216デフォルトの名無しさん
2006/07/10(月) 22:22:520217デフォルトの名無しさん
2006/07/10(月) 22:23:34つまり
obj.name = val
を
attr = 'name'
obj.set_property(name, val)
みたいなかんじでできないでしょうか。
0218デフォルトの名無しさん
2006/07/10(月) 22:24:35答える側の負荷が高すぎて著しく不公平だと思う
答えるのは超能力者ではない
0219デフォルトの名無しさん
2006/07/10(月) 22:25:15ある
0220デフォルトの名無しさん
2006/07/10(月) 22:27:06どうすればいいんでしょうか
0221デフォルトの名無しさん
2006/07/10(月) 22:29:15こうやる。
import sys, time
for i in range(11):
sys.stdout.write("%10s %d%%\r" % (("#" * i) + ("." * (10-i)), i * 10))
sys.stdout.flush()
time.sleep(1)
sys.stdout.write("\n")
ポイント:
1. \n(行送り)の代わりに \r(行頭に復帰)を使う。
2. 行送りをしないと画面に表示されないシステムがあるので .flush() を呼ぶ。
kterm とDOS窓では動いた。IDLE ではダメぽ。
0222デフォルトの名無しさん
2006/07/10(月) 22:29:40obj.__dict__[name] = val
0223デフォルトの名無しさん
2006/07/10(月) 22:31:05>>> setattr(a, "foo", 1)
>>> a.foo
1
>>>
0224デフォルトの名無しさん
2006/07/10(月) 22:39:29__dict__という属性がないようですが。
obj = object()
obj.__dict__['foo'] = 123
を実行すると
AttributeError: 'object' object has no attribute '__dict__'
というエラーがでます。
0225デフォルトの名無しさん
2006/07/10(月) 22:45:14自分でクラスを定義して、そのインスタンスオブジェクトならできました。
class Foo:
pass
obj = Foo()
obj.__dict__ #=> {}
setattr(obj, 'foo', 123)
obj.foo #=> 123
>>222,223 どうもありがとうございました。おかげさまで解決しました。
しかし、Pythonのマニュアルは充実してるのはいいんですが、どこに何が書かれてあるのかを
見極めるのが難しいですね。
今回も、リファレンスマニュアルで探そうとしたんですが、さっぱり見つかりませんでした。
難しい。
0226デフォルトの名無しさん
2006/07/10(月) 22:45:33>>>class klass: pass;
...
>>> k = klass()
>>> k.__dict__["foo"] = 1
>>> k.foo
1
Old Style Classだとできる。
0227デフォルトの名無しさん
2006/07/10(月) 22:46:49...
>>> nk = new_klass()
>>> nk.__dict__["foo"] = 1
>>> nk.foo
1
あ,New Style Classでもできた(www
0228デフォルトの名無しさん
2006/07/11(火) 00:24:040229デフォルトの名無しさん
2006/07/11(火) 00:29:140230デフォルトの名無しさん
2006/07/11(火) 00:52:32210みたいなのがやりたいんですが、
プリントされたのを一回一回消して上書きしてるんですか?
キーワードを教えてください。あとは検索しますので。
答えてくださったかたありがとうございます。
0231デフォルトの名無しさん
2006/07/11(火) 00:58:16>>221
0232124
2006/07/11(火) 01:42:440233126
2006/07/11(火) 01:45:53pythonのdefやimportって、宣言文じゃなくて実行文なんですね。知りませんでした。
def f1(arg):
print arg
というのは、JavaScriptチックに書くと
f1 = function(arg) {
print(arg);
}
ということなんですね。実行時に関数オブジェクトを作成し、変数に代入してるだけ。
たしかに、これなら関数を「文がかけるlambda」として使うことに納得がいきました。
defは宣言文だと思ってたので、lambdaのかわりにdefを使うというのはすごく違和感があったんです。
ようやくわかったよー。確かにこれならlambdaを無理に拡張する必要ないですね。
>>170
>ていうかそもそも「lambdaに文を入れたい」っていう気持ちがあんまりわからないなあ。
ぜひとも文を入れたい、というわけじゃなくて、単になんで文が指定できないのかなと思ったのがそもそもの発端です。
でもPython2.4では3項演算子がないので、lambdaにif文を指定したいときはあります。
「cond and val1 or val2」でもいいんですけど、これは偽となる値をval1に入れられないので。
(入れるとcondに関わらずいつもval2が返されてしまう。)
0234デフォルトの名無しさん
2006/07/11(火) 03:02:37よく見ると理にかなった理由がある
それがPythonという言語であり
仕様が導き出されるに至理由を知ることこそが
Pythonという言語を学ぶ楽しさであると思う
0235デフォルトの名無しさん
2006/07/11(火) 03:53:20====================終了======================
0236デフォルトの名無しさん
2006/07/11(火) 07:09:14>>> from test import test_support
はうまくいくのに、スクリプトに
from test import test_support
と書いて実行すると
ImportError: cannot import name test_support
というエラーがでて困ってます。
test/test_support.py は sys.path に含まれるディレクトリのひとつにちゃんとあるので、
パッケージがないというわけではないと思います。
どなたか、考えられる原因をあげていただけますか。
環境:python2.4.3 on MacOS X
0237デフォルトの名無しさん
2006/07/11(火) 08:01:07import os
result = os.system("date")
だとコマンドの終了ステータスが返るだけで、実行結果が文字列で返されるわけではないようです。
0238デフォルトの名無しさん
2006/07/11(火) 08:12:490239デフォルトの名無しさん
2006/07/11(火) 09:36:26import os
f = os.popen("date", 'r')
result = f.read()
f.close()
でできました。どうもありがとう。
でももうちょっと簡単にできてほしいな。
0240デフォルトの名無しさん
2006/07/11(火) 10:20:580241デフォルトの名無しさん
2006/07/11(火) 10:33:01逝っておいで
0242デフォルトの名無しさん
2006/07/11(火) 10:38:05複数バージョンのpythonが入ってるとか?
sys.versionみてみるとか。
0243デフォルトの名無しさん
2006/07/11(火) 10:45:04行数けちりたいだけなら
result = os.popen('command').readlines()
とかでいいんじゃね?
0244デフォルトの名無しさん
2006/07/11(火) 11:42:532.4.3なら、OSXに最初から入ってるのと別だから、>>242さんの原因だと思う。
スクリプトを実行するのはどうやってるの?
「pythonを起動して」と同じように「python スクリプトファイル名」にしてる?
スクリプトの方に
print sys.path
って書いて実行しても、そのパッケージのディレクトリは表示されてる?
0245デフォルトの名無しさん
2006/07/11(火) 13:41:41最近 SciPy の CG 法で連立一次方程式を解いて PyOpenGL で
シミュレーション結果を描画するコードを書いた俺がきましたよ.
自然科学のバックグラウンドがあれば数値シミュレーションが
必要になることもあるんだろうけど,俺にはそーゆーのが全然ない.
でも仕事で数値計算そのものを扱っていて,例題がたくさん必要.
つーわけで数値解析とか MATLAB とかその手の教科書を眺めて
例題を探してる.>>240さんの要求に合うか分からんけど参考までに.
0247デフォルトの名無しさん
2006/07/11(火) 14:14:19naistの人乙
0248デフォルトの名無しさん
2006/07/11(火) 14:37:01os.popen()が返すファイルオブジェクトをクローズしてないけど、それはいいんでしょうか。
0249デフォルトの名無しさん
2006/07/11(火) 14:43:10>一見ちぐはぐに見える仕様も
>よく見ると理にかなった理由がある
>それがPythonという言語であり
>仕様が導き出されるに至理由を知ることこそが
>Pythonという言語を学ぶ楽しさであると思う
その「理にかなった理由」とやらを聞いもだれも答えられないどころか
逆切れするやつがいることについて
0250デフォルトの名無しさん
2006/07/11(火) 14:47:55このスレを見てると、たいていはちゃんと答えてるよ
英文のURL貼り付けるだけ、というようなことも多いけど
>逆切れするやつがいることについて
逆切れしてるのは誰だろな(wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0251デフォルトの名無しさん
2006/07/11(火) 16:06:26いねーよw
0252デフォルトの名無しさん
2006/07/11(火) 16:30:53「敗北者」をはずしてから
ギャグの質が落ちてる。
0253デフォルトの名無しさん
2006/07/11(火) 16:34:53それいいはじめたら、あらゆるオブジェクトに対して
デストラクタ呼んでないんですけどいいんですか?って話になるような
0254デフォルトの名無しさん
2006/07/11(火) 16:39:38.readlines() を実行し終わった時点でファイルオブジェクトを参照している
オブジェクトが無くなり、オブジェクトが破棄される。そのときに自動的に
ファイルが閉じられる。よって明示的に閉じなくても無問題。
0255デフォルトの名無しさん
2006/07/11(火) 16:40:54Rubyでは組み込みクラスだろうがなんだろうが、既存のクラスにメソッドを追加したり上書きしたりができて、
Ruby on Railsはそれを思いっきり使って、Webプログラミング関連の便利なメソッドを追加しまくってるんですけど、
もしPythonでもメソッドの追加ができるならその方法を教えてください。
なおこれはPythonとRubyとを比較したり優劣をつけるのが目的じゃなくて、
純粋にそういうことができるかどうかを聞いてるだけなんで、切れないでください。
0256デフォルトの名無しさん
2006/07/11(火) 16:49:49デストラクタとclose()とは違うんじゃない?close()したからってオブジェクトがなくなるわけじゃないよね。
import os
f = os.popen("date")
s = f.read()
f.close()
print f # オブジェクトが表示される
ファイルを閉じることと、オブジェクトが破棄されることとは別だよ。
>>254
>.readlines() を実行し終わった時点でファイルオブジェクトを参照している
>オブジェクトが無くなり、
これほんと?ファイルオブジェクトを参照している変数がないだけで、
オブジェクト自体はGC走るまで存在しつづけてるんじゃないの?
0257デフォルトの名無しさん
2006/07/11(火) 17:00:55class A:
def foo(self, x):
self.bar(x, x+1)
def bar(self, x, y):
print x, "+", y, "=", x+y
a = A()
a.__class__.bar = bar
a.foo(1)
>>256
254だけど、「これほんと?」はどこにかかっているの?
0258デフォルトの名無しさん
2006/07/11(火) 17:25:05リファレンスカウンタだから、参照する変数がなくなった時点でGCされるんじゃないの?
0259256
2006/07/11(火) 18:07:07「これほんと?」は>>256で引用した箇所全体にかかる。
>>258
そうなんだ。
Javaだとどこからも参照されないオブジェクトはGCされないと破棄されないけど、
Pythonだとどこからも参照されなくなった時点で必ず破棄されるのね。
これは仕様なんだよね?
じゃあファイルを読み出すのは
content = open('file.txt').read()
ファイルに書き出すのは
open('file.txt', 'w').write(content)
というふうに簡潔に書けるね。
0260デフォルトの名無しさん
2006/07/11(火) 18:18:26>>> for i in range(10): print open("file.txt")
<open file 'file.txt', mode 'r' at 0x00A9A338>
<open file 'file.txt', mode 'r' at 0x00A9A338>
<open file 'file.txt', mode 'r' at 0x00A9A338>
<open file 'file.txt', mode 'r' at 0x00A9A338>
<open file 'file.txt', mode 'r' at 0x00A9A338>
<open file 'file.txt', mode 'r' at 0x00A9A338>
<open file 'file.txt', mode 'r' at 0x00A9A338>
<open file 'file.txt', mode 'r' at 0x00A9A338>
<open file 'file.txt', mode 'r' at 0x00A9A338>
<open file 'file.txt', mode 'r' at 0x00A9A338>
仕様のどこ見ればいい?
0261デフォルトの名無しさん
2006/07/11(火) 18:23:22まあ使いたいなら事例がなくても使えばいいじゃん
ってことで >245 的なことでいいんじゃね?
書籍だとこの辺かな:
Python Scripting for Computational Science,
by H. P. Langtangen.
http://www.springer.com/sgw/cda/frontpage/0,11855,1-40109-22-83511316-0,00.html
ちょっと高いけどね
書籍に限らず良い資料があれば興味あるんでよろしく > エロい人
0262デフォルトの名無しさん
2006/07/11(火) 18:24:34大規模なアクセス受けるサーバとかならべつだけど。
0263デフォルトの名無しさん
2006/07/11(火) 18:36:54> 「これほんと?」は>>256で引用した箇所全体にかかる。
もちろん本当。>>243の
result = os.popen('command').readlines()
という文の実行が終わった時点でファイルオブジェクトを参照している
オブジェクトは存在しない。よってファイルオブジェクトは破棄される。
class A:
def foo(self):
return "foo"
def __del__(self):
print "deleted"
bar = A().foo()
print bar
このコードを実行するとまず "deleted" と表示され、次に "foo" と表示される。
つまり bar = A().foo() の実行が終わった時点で A のインスタンスが破棄されている。
0264256
2006/07/11(火) 18:45:03いや、気にするべきだろ。
ちゃんとわかってて、あえて気にしないなら別にいいけど、
わかってないから気にしないというのは技術者としてクソ。
>>263
さんくす。あとは、この動作が仕様として決まっているかどうかを知りたいんだけど、識者の人おねがい。
しかしリファレンスカウントGCにプログラムを簡潔にする利点があるとは知らなかった。
すごいぞPython。
0265デフォルトの名無しさん
2006/07/11(火) 18:51:32ファイルオブジェクトがGCの対象になるとcloseは自動的に行われるが、
自動でcloseするという機能は仕様で定められているわけではないので
将来なくなる可能性もゼロではない。よってclose()は書いておいたほうがいいと
「初めてのPython 第2版」p135-136に書いてあります。
0266デフォルトの名無しさん
2006/07/11(火) 18:52:53http://www.python.jp/doc/release/ext/refcounts.html
0267256
2006/07/11(火) 18:55:07Python(hoge.py):
-----
import time
open('foo.txt', 'w').write('hoge')
time.sleep(15)
-----
これを実行すると、プログラムが終了するまえにファイルに書き出されている。
つまり参照がきれるときにファイルオブジェクトが破棄され、そのときにファイルに書き出されていると思われる。
Ruby (hoge.rb):
-----
File.open('foo.txt', 'w').write('hoge')
sleep(15)
-----
これを実行すると、プログラムが終了するまでファイルに書き出されない。
つまり参照がきれてもファイルオブジェクトは生き続けており、
プログラムが終了するときにオブジェクトが破棄され、そのときに書き出されていると思われる。
改めて>>254と>>263に多謝。
0268デフォルトの名無しさん
2006/07/11(火) 19:03:49何を知りたいのかわからないがリファレンスの2.1節と2.3.9節辺りを
読めば(・∀・)イイ!!んじゃないかと思う
0269デフォルトの名無しさん
2006/07/11(火) 19:10:56ありがとうございました。やりたいことができました。
class Foo:
def f1(self): print "foo"
def f2(self): print "bar"
Foo.f2 = f2
obj = Foo()
obj.f1() #=> "foo" 既存のメソッド
obj.f2() #=> "bar" 追加したメソッド
これをみると、JavaScriptのようなプロトタイプベースに見えて仕方ないんですけど、
「Pythonはプロトタイプベースである」と言い切って問題ないでしょうか。
0270デフォルトの名無しさん
2006/07/11(火) 19:25:38「プロトタイプベース」という単語の定義次第だろう
0271デフォルトの名無しさん
2006/07/11(火) 19:29:53一見高尚そうな言葉を振り回したがるんだよな。
Python的には単にオブジェクトへの属性追加だ。
0272デフォルトの名無しさん
2006/07/11(火) 19:34:290273デフォルトの名無しさん
2006/07/11(火) 19:58:54「無意味な知識を集めるマニア」と決め付けたがるのだろう。
自分が物を知らないという可能性を検討しないのだろうか。
0274デフォルトの名無しさん
2006/07/11(火) 20:07:11「Pythonはプロトタイプベースである、で問題ない?」とか言われても
だから何?好きにすれば?としか言いようがないだろ。
0275デフォルトの名無しさん
2006/07/11(火) 20:20:55言われれば「じゃああのテクニックもこのテクニックも使える」と考えるんだ
よ。君には利益はないかもしれないが、質問者には利益があるのだ。
また一見してすぐに役立つものだけが、価値があるとは限らない。オブジェク
ト指向だって「なんの役に立つのか」と言う人が、まだいなくなったわけでは
ないよ。
0276デフォルトの名無しさん
2006/07/11(火) 20:23:170277269
2006/07/11(火) 20:30:15べつに高尚な言葉とは思いませんが、気に障ったのならすみません。スルーしてください。
>Python的には単にオブジェクトへの属性追加だ。
このへんがJavaScriptとそっくりなんで、これならPythonはプロトタイプベースなんだろうかと
いう疑問がでるのは自然なことでは?
Pythonにはclassというキーワードがありますが、もしかしたら中の仕組みはプロトタイプベースで、
classというキーワードはそれをクラスベースっぽくみせるためのものなのかなと思いました。
JavaScript2.0でもclassが導入されるそうなんですが、これもプロトタイプベースをクラスベースに
みせけかるためのシンタックスシュガーらしいので、Pythonも同じようなのかなと思って聞いてみました。
>>274
たかが2chなんで、興味ない人はスルーしてください。お願いします。
0278デフォルトの名無しさん
2006/07/11(火) 20:43:320279デフォルトの名無しさん
2006/07/11(火) 20:52:12答えたくない奴の方こそ答えたい奴にまかせてだまっとけばいいんジャマイカ?
0280デフォルトの名無しさん
2006/07/11(火) 20:56:340281デフォルトの名無しさん
2006/07/11(火) 21:04:39Python はクラスベースに見える?
プロトタイプベースに見える?
どっち?
0282デフォルトの名無しさん
2006/07/11(火) 21:09:410283デフォルトの名無しさん
2006/07/11(火) 21:13:24ら。
まあ>>270のとおり、「プロトタイプベース」の定義次第だろう。実際のとこ
ろ、プロトタイプベースとクラスベースの間に、はっきりした境界線はないと
思う。
私見で言うなら、Pythonはプロトタイプベースではない。プロトタイプベース
の私の定義は、「クラスオブジェクトとインスタンスオブジェクトの区別がな
いこと」だ。私の知る限り、Pythonはそうではない。
具体的な話をすると、JavaScriptは、new Object() で作ったインスタンスに
適当にプロパティをセットして、それを別のコンストラクタのプロトタイプと
することができる。だけどPythonのクラスオブジェクトは、他のクラスの継承
はできても、インスタンスから継承はできない。
0284269
2006/07/11(火) 21:17:38最初はクラスベースかと思ってましたが、勉強していくうちに
プロトタイプベースに見えて仕方ありません。
>>257なんかJavaScriptとほんと同じようにみえます。
0285デフォルトの名無しさん
2006/07/11(火) 21:19:410286269
2006/07/11(火) 21:24:27なるほど!すごくわかりやすい説明です。
たしかに、この説明ならPythonはプロトタイプベースではないですね。
たいへんよくわかりました。聞いてみてよかったです。ありがとうございました。
話はかわりますが、リファレンスマニュアルの索引
http://www.python.jp/doc/release/ref/genindex.html
をSafariで読むと、文字化けします。
このページの86行目と2029行目に化けた文字が入っているようで、
これを削除したら正常に表示されるようになりました。
(たぶん日本語の最初の1バイトが入っているんだと思います。)
同様に、ライブラリリファレンスの索引
http://www.python.jp/doc/release/lib/genindex.html
も86行目と6395行目にある化けた文字のせいで文字化けします。
チュートリアルの索引も同様でした。
ここでお願いすることじゃないとは思いますが、もしwww.python.jpの
中の人がいましたら、修正していただくようお願いします。
なおFirefoxだと化けた文字を勝手に「?」に変換してるみたいで、
文字化けはしませんでした。えらいぞFirefox。
0287デフォルトの名無しさん
2006/07/11(火) 22:02:140288デフォルトの名無しさん
2006/07/11(火) 22:58:28JavaScriptと一緒でプロトタイプベースだなって思う。
Python自体にあまりなれているワケじゃないけど、あちこちにあるサンプルコードの
書き方を見る限り、そんな感じがする。
JavaScriptとかは好きじゃなかったんだけど、Pythonでプロトタイプベースな
OOのいいところ学べればなって思ってる。
0289デフォルトの名無しさん
2006/07/11(火) 23:07:35木馬?
0290デフォルトの名無しさん
2006/07/11(火) 23:14:340291デフォルトの名無しさん
2006/07/11(火) 23:30:51クラスを定義するのが普通だし
0292デフォルトの名無しさん
2006/07/11(火) 23:38:570293デフォルトの名無しさん
2006/07/12(水) 00:12:250294デフォルトの名無しさん
2006/07/12(水) 00:29:51プロトタイプ「風」にも使える
オブジェクト指向機能実装ということじゃね?
0295デフォルトの名無しさん
2006/07/12(水) 00:42:460296283
2006/07/12(水) 01:48:47ソッドをくっつけられたって、それだけじゃプロトタイプベースじゃないんだよ。
もう一度>>283を読んでくれよ。Pythonとは根本的には関係ないんだよ。
まあ読んでもこの文じゃ分からんか。プロトタイプベースは結構理解しづらい。
分かってしまえば、あっけに取られるほどシンプルなのだが。
JavaScriptを使う機会があったら、Pythonとどこが同じでどこが違うか、きっち
り学んでみても損はないと思う。
あと、お題目は大事だ。例えばPythonが「オブジェクト指向言語」だと意識して
こそ、その機能を生かした良いコードが書ける。デザインパターンなぞ、お題目
以外の何物でもないが、その重要性を否定するのは今やDQNしかいない。
0297デフォルトの名無しさん
2006/07/12(水) 01:52:580298デフォルトの名無しさん
2006/07/12(水) 01:55:270299デフォルトの名無しさん
2006/07/12(水) 02:00:59さあ、どうだ?
0300デフォルトの名無しさん
2006/07/12(水) 02:02:010301283
2006/07/12(水) 02:15:55あとな、日本で今Pythonに興味を持っているのは、はっきり言って言語オタばか
りだと思うぞ。
((Java or C# or PHP) and SQL) → ((Perl or VB) and JavaScript) →
(C++ or Ruby) → (LISP or Scheme or Python) → (ML or Haskell)
職業プログラマが学ぶ優先順位として、正味 Pythonの位置はこの辺なんだから。
Haskellはちょっとブームだから、今はもうひとつ上ぐらいか。
だからな、今後も君らからすると言語オタばかりが来ることになるわけで、煽っ
て追い返してもきりがないぞ。つうかこんな狭い世界で煽り合いをしても、
Pythonの先細りが進むだけだぞ。
Python自体はいい言語なんだから、もったいない話だと思うが。
0302デフォルトの名無しさん
2006/07/12(水) 02:28:250303デフォルトの名無しさん
2006/07/12(水) 02:47:28普通の職業プログラマは指示された言語しか学ばねーよ(w
だから糞コードを大量生産して、趣味でプログラムをやってた新人に笑われるんだよ。
0304デフォルトの名無しさん
2006/07/12(水) 02:51:42なぜなら空気が読めないから
0305デフォルトの名無しさん
2006/07/12(水) 02:53:21ttp://www.python.jp/doc/release/lib/about.html
0306デフォルトの名無しさん
2006/07/12(水) 03:07:22'Python'を'Ruby'で置換するなら同意。
0307269
2006/07/12(水) 04:21:42>prothon
http://www.prothon.org/
死んでるみたい
0308デフォルトの名無しさん
2006/07/12(水) 05:21:19逆にdictをローカル変数の名前と値として設定してくれる関数はある?
0309デフォルトの名無しさん
2006/07/12(水) 06:02:47この二つの言語だけで必要十分だと思うよ。
0310デフォルトの名無しさん
2006/07/12(水) 09:14:130311デフォルトの名無しさん
2006/07/12(水) 09:40:11ほかの言語だとブロックの終わりが連なって美しくない。
class Foo {
def f() {
for item in items {
if item {
print item
}
}
}
}
Pythonだとカッコの対応を取らなくていいし、行数も短くなる。
class Foo:
def f():
for item in items:
if item:
print item
美しいなあ。
でもIDEの自動整形とは相性が悪そう。
0313デフォルトの名無しさん
2006/07/12(水) 09:52:300314デフォルトの名無しさん
2006/07/12(水) 10:11:17例えば「exec "1+'a'"」を実行すると、ファイル名として「<string>」が
表示されますが、かわりに例えば「example.py」と出したいのです。
>>> exec "1+'a'"
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "<string>", line 1, in ?
TypeError: unsupported operand type(s) for +: 'int' and 'str'
またファイル名だけでなく行番号も指定できる方法があれば教えてください。
よろしくお願いします。
0315デフォルトの名無しさん
2006/07/12(水) 11:31:560316デフォルトの名無しさん
2006/07/12(水) 12:17:51codeobj = compile(source, filename, kind)
exec codeobj
でできました。
>>> code = compile("1+'a'", 'example.py', 'exec')
>>> exec code
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "example.py", line 1, in ?
TypeError: unsupported operand type(s) for +: 'int' and 'str'
どうもありがとうございました。
あと、行番号の指定もできないでしょうか。
0317デフォルトの名無しさん
2006/07/12(水) 12:56:010318デフォルトの名無しさん
2006/07/12(水) 13:28:04そんな方法があったか。どうもありがとうございます。
0319デフォルトの名無しさん
2006/07/12(水) 15:11:530320デフォルトの名無しさん
2006/07/12(水) 15:31:38> Pythonのクールなところをおしえてください(><)
pythonは、僕が知ってる○○○タイプの言語だなって気がつきだすと、その通りに見えてくるんだ。
そうして、pythonを使ってる他の人たちも僕と同じように○○○タイプ言語と思ってるし
○○○タイプに合ったプログラミングをしてると信じられるようになるんだ。
中には○○○タイプと思ってない人もいるけど、そういう人たちはちゃんと教えてあげる必要があるね。
教えてもわかんない人もいるけど、それは最初から僕らの仲間じゃないから無視しようよ。
0321デフォルトの名無しさん
2006/07/12(水) 15:57:31全員Guido様の手のひらで踊らされていると
そういうことですね
0322デフォルトの名無しさん
2006/07/12(水) 16:24:58いちいちthis書かないと気が済まなくなってしまいました。
まわりの顰蹙かってますが、負けないつもりです。
0323デフォルトの名無しさん
2006/07/12(水) 16:27:38わかるわかる〜
0324デフォルトの名無しさん
2006/07/12(水) 21:38:44郷にいれば郷に従えという言葉もあるぞw
selfと書かないだけマシかww
0325デフォルトの名無しさん
2006/07/12(水) 23:27:460326デフォルトの名無しさん
2006/07/12(水) 23:51:19がんがれ
0327デフォルトの名無しさん
2006/07/13(木) 00:24:18タイプ数が半分だぞw
0328デフォルトの名無しさん
2006/07/13(木) 01:32:20my.position = (10, 20)
my.color = 'red'
v = my.value()
0329デフォルトの名無しさん
2006/07/13(木) 01:36:570330デフォルトの名無しさん
2006/07/13(木) 02:04:110331デフォルトの名無しさん
2006/07/13(木) 02:07:370332デフォルトの名無しさん
2006/07/13(木) 03:54:320333デフォルトの名無しさん
2006/07/13(木) 04:36:33男ならな
0334デフォルトの名無しさん
2006/07/13(木) 07:24:150335デフォルトの名無しさん
2006/07/13(木) 07:29:070336デフォルトの名無しさん
2006/07/13(木) 09:35:030337デフォルトの名無しさん
2006/07/13(木) 09:47:14おまいら、俺の中で久々にヒットしたぜ。愛してる。
0338デフォルトの名無しさん
2006/07/13(木) 17:53:340339デフォルトの名無しさん
2006/07/13(木) 18:06:120340デフォルトの名無しさん
2006/07/13(木) 18:36:37どうやったらお勉強できますか?
0341デフォルトの名無しさん
2006/07/13(木) 19:05:37http://www.youtube.com/watch?v=ODshB09FQ8w
0342デフォルトの名無しさん
2006/07/13(木) 19:32:500343デフォルトの名無しさん
2006/07/13(木) 19:48:090344デフォルトの名無しさん
2006/07/13(木) 21:48:47自分でパッケージを作ってみたら、すごく簡単にできた。
PHPのパッケージは作るの大変なんだ。XMLファイルをちまちま書かなきゃいけない。
それに比べると、Pythonはsetup.pyが簡単にかけて、しかもパッケージングもインストールも
同じスクリプトでできる。すごいぞ。
あと、アンインストールの方法がわからないんだけど、一度インストールしたパッケージを
削除する方法ってある?
0345デフォルトの名無しさん
2006/07/13(木) 23:02:050346デフォルトの名無しさん
2006/07/13(木) 23:35:110347デフォルトの名無しさん
2006/07/13(木) 23:36:39import os
w = 125 ; h = 100
for y in range(0, 1024, h):
for x in range(0, 1280, w):
os.system('xeyes -geometry %sx%s+%s+%s &' % (w, h, x, y))
0348デフォルトの名無しさん
2006/07/13(木) 23:38:04uninstallなんかなくても、問題ないから良くねえ??だって。
0349デフォルトの名無しさん
2006/07/14(金) 01:53:230350デフォルトの名無しさん
2006/07/14(金) 02:06:200351デフォルトの名無しさん
2006/07/14(金) 22:46:35ガーン
古いパッケージと新しいパッケージとでファイル構成が違う場合、
新しいパッケージをインストールしても古いパッケージのファイルが一部残ることになります。
またuninstallができないと、お試しinstallができなくなります。
これはいくないと思うんですけど。残念です。
0352デフォルトの名無しさん
2006/07/14(金) 23:21:53ロードされないから、動作に影響ないでしょう。という感じかね…。
ごみファイルが気になるんだったら
自分でパッケージにすれば>debとかrpmとか。。
0353デフォルトの名無しさん
2006/07/15(土) 00:17:41ゴリバー万歳!
てゆーか、
>>351
他の人も言ってるけど、setup.py で Windows 用のインストーラとか
Linux 用の deb とか rpm とか作れるのは知ってる?
パッケージ単位のインストール・アンインストールが必要なら、
パッケージ管理機能のある OS を使うのが筋だよね。
例えば Windows とか Debian 系 Linux とか赤帽系 Linux を使う。
少なくともこれらの OS では setup.py があれば
パッケージ管理機構で入出力可能なパッケージが自動生成できる。
ソースと一緒にバイナリが配布されていなくても
コンパイラを持っていれば自分でバイナリパッケージを作れるんだよ。
0354デフォルトの名無しさん
2006/07/15(土) 11:07:170355デフォルトの名無しさん
2006/07/15(土) 12:02:45あそこでウォッチしてたrssのリストを控えてないので、自力で巡回すらできん。
0356デフォルトの名無しさん
2006/07/15(土) 12:20:34もともと見てなかったらよく知らんけど、これ?
http://www.google.com/search?q=cache:tokuhirom.dnsalias.org/~tokuhirom/planetpythonjapan/
便利だったなら代用サイト作ってよ
0357デフォルトの名無しさん
2006/07/15(土) 20:39:500358デフォルトの名無しさん
2006/07/16(日) 07:00:280359デフォルトの名無しさん
2006/07/16(日) 10:26:180360デフォルトの名無しさん
2006/07/16(日) 12:47:240361デフォルトの名無しさん
2006/07/16(日) 12:48:230362デフォルトの名無しさん
2006/07/16(日) 13:29:580363デフォルトの名無しさん
2006/07/17(月) 10:14:060364デフォルトの名無しさん
2006/07/17(月) 16:39:320365デフォルトの名無しさん
2006/07/18(火) 03:11:49version0.95のマニュアルに、0.91をインストールさせる方法載せたままにしてたり、
auto admin立ち上げたはいいけど、usernameとパスワードは何を入れればいいのか
どこにも書かないまま、話が進んじゃったり…
0366デフォルトの名無しさん
2006/07/18(火) 03:14:030367デフォルトの名無しさん
2006/07/18(火) 03:47:00eclipseのコンソール上で実行するとスルーされちゃうから気づきませんでした。
でも、インストールのマニュアルはおかしすぎですよ。
0.95と0.91分けてる意味が無いです。
なんで、>>366みたいなこと言われる筋合いは全く無いです。
0368デフォルトの名無しさん
2006/07/18(火) 05:52:530369デフォルトの名無しさん
2006/07/18(火) 06:28:33Djangoの公式リリースは0.91で,0.95は出ていません(現在Subversionのtrunkにあるコードが0.95
相当と考えられているだけです)従って,「公式リリースのインストール」は0.91のインストールになります.
一方,現状で0.95相当のDjangoをインストールするには,Subversionから取り出すのが普通です.
翻訳はできるだけ本家の内容に合わせてあります.本家の内容も翻訳も,0.91と0.95をごっちゃ
にしているわけではありません.0.91が古いリリースで,新たに使ってみたい人はSubversionから取り出す
べき,というのはnoteにも書いてあるので,よく読んでね.
とはいえ,いささかミスリーディングな部分もあるんで,訳者注をつけておきました.
0370デフォルトの名無しさん
2006/07/18(火) 07:17:11そもそも0.91と0.95で、ドキュメント分けてるのに、
0.91のインストールが一番上に出てる時点でおかしいよね?
本家も翻訳も、0.91のインストール法が先頭に出てる。
ノートなんて書かなくても、0.91のインストールを消せばいいだけのはず。
>最近, Django には後方互換性のない変更が加えられました.
ともあるけど、それがpart1のsyncdbでいきなり出てくるくらいなんだから、
冒頭の0.91のインストール残しておく意味なんて全く無いじゃん。
実際エラーメッセージで検索すると、同じように0.91インストールしちゃって
syncdbでコケて、無駄なトラブルくらってるひとが世界各国で見受けられるし。
よく読んでねなんていう前に、まともに読めるマニュアル書いてほしいよ。
>>366みたいな態度を貫くのなら、普及なんて考えてないだろうから
かまわないんだろうけど。
0371デフォルトの名無しさん
2006/07/18(火) 08:02:27たしかにな。
それを本家に提案してみたらどうだろう?
翻訳している人は、注釈はつけられるけど基本的に本家のドキュメントを翻訳するだけなので、
本家の方をまず直してもらうべき。
こんなとき、どんな英文を書けばいいのかな。
0372デフォルトの名無しさん
2006/07/18(火) 08:05:51ただ,*あなた*には悪いけど,私自身は公式リリースの入れ方の次に開発版の入れ方を説明する,
という順番に納得しているので,私の手元の翻訳については,本家のレイアウトが変わらない限り
変更するつもりはありません.お怒りはごもっともですが.0.95か1.0の公式リリースが出るまで我慢してね.
あと, >>366 への怒りをこっちにぶつけるのは勘弁.
0373デフォルトの名無しさん
2006/07/18(火) 08:29:270374デフォルトの名無しさん
2006/07/18(火) 08:35:040375デフォルトの名無しさん
2006/07/18(火) 08:38:520376デフォルトの名無しさん
2006/07/18(火) 10:15:070377デフォルトの名無しさん
2006/07/18(火) 10:28:240378デフォルトの名無しさん
2006/07/18(火) 10:34:36そもそもそんな奴に発言権なんてありませんからねぇ。
いったい何様のつもりなんだ?
0379デフォルトの名無しさん
2006/07/18(火) 10:44:140380デフォルトの名無しさん
2006/07/18(火) 10:59:120381デフォルトの名無しさん
2006/07/18(火) 11:17:25厨の相手乙。めげずに翻訳がんがってくれ。
0382デフォルトの名無しさん
2006/07/18(火) 14:37:07吐く人は相手にしないほうがいいよ。はっきり言ってキチガイだと思う。
0383デフォルトの名無しさん
2006/07/18(火) 16:17:580384デフォルトの名無しさん
2006/07/18(火) 16:32:49(´・ω・`)
0385デフォルトの名無しさん
2006/07/18(火) 17:34:58買ってしまった。一応、IDEとして機能する。
・カラーリング、補完、リファクタリング、クラスブラウザー等OK
・そのためには C# & C++ をインストールする必要がある。2G 程占有。
・コンパイルできる。(.NET 中間コード)
巨大なゴミと言えなくもない。
このうえでSQLObjectやTurboGearsはインストールできるのだろうか?
できたとしたらどういう動作をするのだろうか?
0386デフォルトの名無しさん
2006/07/18(火) 17:41:00Express版にすりゃよかったのに。タダだし。
0387デフォルトの名無しさん
2006/07/18(火) 17:47:40express版は extensibility (addins & packages) をサポートしてないので
pythonintegration を使えないんですよ。
0388デフォルトの名無しさん
2006/07/18(火) 21:00:59Python3.0が出るまでここままなのかな?
0389デフォルトの名無しさん
2006/07/19(水) 04:04:010390デフォルトの名無しさん
2006/07/19(水) 06:09:060391デフォルトの名無しさん
2006/07/19(水) 06:37:210392デフォルトの名無しさん
2006/07/19(水) 06:46:55Djangoはcgiで動かすことは可能とか書いてあったけど…
可能なだけで手段は提供してないのね。残念
0393デフォルトの名無しさん
2006/07/19(水) 13:04:35CherryPyは何度かやってみたがだめたった。
Djangoはドキュメントを読んでやめてしまった。
どこに書いてあったか教えてほしい。
0394デフォルトの名無しさん
2006/07/19(水) 14:51:37Running Django as a traditional CGI is possible and would work the same as running any other sort of Python CGI script,
but is generally not recommended.
http://code.djangoproject.com/wiki/ServerArrangements
他にも、チャットログで
09:08 Maniac stupid question: can you run django as a plain old cgi ?
09:08 Crast Maniac: yep, using flup. flup will fallback to traditional CGI
09:09 Maniac ok cool
http://simon.bofh.ms/logger/django/2006/05/03/08/45/
これみて、flupとfastcgiのソースおっかけて、cgiで動かないかいろいろ試行錯誤してたんだけど、
python素人なんできつくて無理でした。
だれかいないかなぁ
0395デフォルトの名無しさん
2006/07/19(水) 14:58:220396デフォルトの名無しさん
2006/07/19(水) 21:57:29thanx
確かにDjangoはcgiで動かすことはできるようだ。
最初にDjangoで試せばよかったな。
>>395
SFとかだとcgiしか許可されていないので。
0397デフォルトの名無しさん
2006/07/19(水) 23:21:42shananananananananananananana
0398デフォルトの名無しさん
2006/07/20(木) 01:28:36このなかPython vs Ruby vs PHP vs Perl
ではPythonが一番いいの? by女子高生
0399デフォルトの名無しさん
2006/07/20(木) 01:34:05>ではPythonが一番いいの? by女子高生
っぽい無職の17才と、SEXして捕まった山本さんですか?
0400デフォルトの名無しさん
2006/07/20(木) 01:51:47悪いことは言わないからWhitespaceにしときなさい。
と言われたら素直にWhitespace使うのかねチミは。
0401デフォルトの名無しさん
2006/07/20(木) 02:04:110402デフォルトの名無しさん
2006/07/20(木) 02:06:220403デフォルトの名無しさん
2006/07/20(木) 11:02:380404デフォルトの名無しさん
2006/07/20(木) 13:52:59今度批評したるかな
0405デフォルトの名無しさん
2006/07/20(木) 14:23:070406デフォルトの名無しさん
2006/07/20(木) 21:00:140407デフォルトの名無しさん
2006/07/21(金) 00:05:250408デフォルトの名無しさん
2006/07/21(金) 00:39:09そういう古典的燃料、どこ行けば見られるかね。このスレは理知的過ぎてダメだ。
0409デフォルトの名無しさん
2006/07/21(金) 00:52:140410デフォルトの名無しさん
2006/07/21(金) 01:06:35Pythonの狂信者って思いつかないのだが、過去に誰がいた?
0411デフォルトの名無しさん
2006/07/21(金) 01:41:130412デフォルトの名無しさん
2006/07/21(金) 01:49:100413デフォルトの名無しさん
2006/07/21(金) 06:39:250414デフォルトの名無しさん
2006/07/21(金) 07:36:480415デフォルトの名無しさん
2006/07/21(金) 08:53:120416デフォルトの名無しさん
2006/07/22(土) 01:42:518章からなる同じような目次、リファレンスマニュアルが控えてる。
このスレでレス付けてる奴らは、こんな内容を当然の如くこなせるんだよな。
化け物どもめ。みんな頭いいんだな。
0417デフォルトの名無しさん
2006/07/22(土) 02:02:56当たりをつけてから読むのが正しい読み方なんじゃない?
チュートリアルの難しさの起源は、もともと日本語じゃないものを
日本語に訳したせいでニュアンスが分からなくなってる点に
あると思うんだけど。
0418デフォルトの名無しさん
2006/07/22(土) 08:16:25リファレンスマニュアルなんて読んだことないぜ
0419デフォルトの名無しさん
2006/07/22(土) 08:48:32バカだな。必要な機能しか読まないにきまってんじゃん。
0420デフォルトの名無しさん
2006/07/22(土) 09:19:13コードはペンよりも強し。
0421デフォルトの名無しさん
2006/07/22(土) 10:57:53チュートリアルは斜め読みで、ライブラリリファレンスのほうが読みやすい。
0422デフォルトの名無しさん
2006/07/22(土) 12:27:210423デフォルトの名無しさん
2006/07/22(土) 12:31:18の違いをはっきりと書いていて分かりやすい。
1時間で覚える?Python
http://kanaya.naist.jp/Zope/member/nishio/japanese/memo/LearnPythonInAnHour/
あと、この本はpython.jpのチュートリアルより分かりやすいと思う。決して
読みやすい本ではないが。
初めてのPython 第2版
http://www.amazon.co.jp/exec/obidos/ASIN/4873112109
高価なので、学生さんは大学か公共図書館に買わせるのが吉。
あと、けっこう間違いがあると思う。先に進むほどほど多い。大学の教科書だっ
てそんなもんだから、そこはあきらめるのが吉。
あと、Pythonって実は、誰もがとっつきやすい言語ではないと思う。何も見ず
にすぐ使い始められる人も多いが、なんか良く分からんと感じる人も。私は後
者の一人で、「はじPy」を通読するまでモヤモヤが続いた。英語が得意で海外
のコミュニティにいつも触れていたら、だいぶ違うんだろうなと思う。
0424デフォルトの名無しさん
2006/07/22(土) 14:32:40下手なサイトで勉強すすめるよりよっぽどいい気がする。
0425デフォルトの名無しさん
2006/07/22(土) 14:49:49インスタントハッキングとインスタントパイソン読んだほうがマシ。
その後で、改めてチュートリアルに目を通すと良し。
0426デフォルトの名無しさん
2006/07/22(土) 15:34:42今は試験期間中なんで。
0427デフォルトの名無しさん
2006/07/22(土) 15:58:280428デフォルトの名無しさん
2006/07/22(土) 17:28:06全力で他のことに逃避するに決まってんじゃん。掃除とか2chとか。
でもほんとうに労力のかかることはしないんだよ。これ大学生の常識。
0429デフォルトの名無しさん
2006/07/22(土) 17:45:030430デフォルトの名無しさん
2006/07/22(土) 18:02:09あんなの翻訳が酷いから理解できる方がおかしい
0431デフォルトの名無しさん
2006/07/22(土) 18:03:370432デフォルトの名無しさん
2006/07/22(土) 18:04:42「初めてのPerl + 続・初めてのPerl」よりは安い。
ページ単価も。
0433デフォルトの名無しさん
2006/07/22(土) 18:17:03糞言語と比べられても・・・
0434デフォルトの名無しさん
2006/07/22(土) 18:51:03でもわけたほうよくないか
0435初心者
2006/07/22(土) 19:24:28環境:Windows + Python 2.4.3 + IDLE 1.1.3 + Python shell
print "abcdefg"[0]
print "abcdefg"[3:4]
print "abcdefg"[-3]
を実行すると
a
d
e
こうなったんだけどなんで?
a
de
efg
が返ってくると思ったのに・・・
0436デフォルトの名無しさん
2006/07/22(土) 19:26:430437デフォルトの名無しさん
2006/07/22(土) 19:30:39そういう時は「なんで?」じゃなくて「またひとつpythonのことが分かったぞ」と思いなさい。
0438初心者
2006/07/22(土) 19:32:37いや >>423の1時間で覚えるPython に書いてあったのよw
で、1番目と3番目は良いとして、2番目はdeが返ってきて欲しくない?
なんとなく。
0439デフォルトの名無しさん
2006/07/22(土) 19:34:45print "abcdefg"[-1] # => g
print "abcdefg"[-2] # => f
print "abcdefg"[-3] # => e
0440デフォルトの名無しさん
2006/07/22(土) 19:37:01長さが b-a になるようになってるんよ
0441デフォルトの名無しさん
2006/07/22(土) 19:38:11(つまりほとんどの言語)と相性が良いのだよ
長さnの列全体(つまり0からn-1まで)は[0:n]と表記できることから想像できんかね?
0442デフォルトの名無しさん
2006/07/22(土) 19:42:000443初心者
2006/07/22(土) 19:51:04なるほど。
print "abcdefg"[0:7]
print "abcdefg"[3:5]
print "abcdefg"[-3:-1]
とかやってみて納得しました。
それ以前に>>423氏紹介の文章を読み違えてました。
print "abcdefg"[-3:]
で、最後のコロンが見えていなかった・・・。
これですっきりしました。
失礼しました。
0444デフォルトの名無しさん
2006/07/22(土) 20:28:00moji[a:b]のとき、インデックスaとインデックスbの間に挟まれた文字が得られる、と考えるとわかりやすいと思う。
0445デフォルトの名無しさん
2006/07/22(土) 20:30:27あ い う え お
0446デフォルトの名無しさん
2006/07/22(土) 20:33:44はいはい、請け売り乙
見聞きしたことを、さも自分が考えたように言ってるとそのうち恥書くよ。
0447デフォルトの名無しさん
2006/07/22(土) 20:47:000448デフォルトの名無しさん
2006/07/22(土) 20:55:550449デフォルトの名無しさん
2006/07/22(土) 21:03:410450デフォルトの名無しさん
2006/07/22(土) 21:11:110451デフォルトの名無しさん
2006/07/22(土) 21:36:51他言語の経験があれば標準 tutorial はとてもよいと思う。
(他言語の経験なしの立場で読んだことないからそっちの評価は分からない)
初めての python 第1版はむしろ分かりにくかったけど。
本当の初心者なら 「python で学ぶプログラミング作法」の方が良いのではないかと。
>442
普通 matlab の仕様に驚くもんだろ... とはかぎらんか...
0452デフォルトの名無しさん
2006/07/22(土) 22:17:150453デフォルトの名無しさん
2006/07/22(土) 22:28:41matlabしか知らなかったので…
ごめんなさい、一応だいがくせいです
0454デフォルトの名無しさん
2006/07/22(土) 22:29:16引用元を示さないのはバカ。
0455デフォルトの名無しさん
2006/07/22(土) 22:35:43世の中には、
「機械翻訳の(またはそれを下訳にした)日本語が、どうしても頭に
入らない」という病を抱えた人がいるのだ。まあ俺だが。
「はじPy・2版」はこなれた日本語だから、それだけでもありがたいよ。
MATLABの記法はPythonに慣れているとは本当に混乱するけど、概して
プログラミング以外の専門家には、MATLABの記法のほうが評判がいいようだ。
>>452
ない。丸投げはあきらめて、ちゃんとした質問にまで練り上げるのが吉。
0456デフォルトの名無しさん
2006/07/22(土) 22:43:090457デフォルトの名無しさん
2006/07/22(土) 23:04:320458デフォルトの名無しさん
2006/07/22(土) 23:17:130459デフォルトの名無しさん
2006/07/23(日) 00:32:05そういやこないだ面白いもの見つけた。
(新しいものじゃないので皆しってるのかもしれないけど)
特にデータ処理的用途でプログラム書く人向けの
python/matlab/R の違いの比較表
http://www.37mm.no/matlab-python-xref.html
http://www.37mm.no/mpy/matlab-python-xref.pdf
0460デフォルトの名無しさん
2006/07/23(日) 00:35:080461デフォルトの名無しさん
2006/07/23(日) 01:07:570462デフォルトの名無しさん
2006/07/23(日) 02:02:01ド田舎だろどうせ
0463デフォルトの名無しさん
2006/07/23(日) 07:14:33[[1,2,3],[4,5,6],[7,8,9]]みたいに一発で出来る便利関数みたいなものはないですか?
自分でやっているのは、
count=0
k=[][]
for item in seq:
x=count%div
y=count/div
k[x][y]=item
count+=1
みたいに、countをインクリメントしつつ、商と余りを使って、x,yの位置を決めてます。
seq.split(3)みたいに入れたら、[1,2,3,4,5,6,7,8,9]を
[[1,2,3],[4,5,6],[7,8,9]]みたいにしてくれたら楽なんですが。
0464デフォルトの名無しさん
2006/07/23(日) 07:20:250465デフォルトの名無しさん
2006/07/23(日) 07:28:43>>> seq = [1,2,3,4,5,6,7,8,9]
>>> k = [seq[0:3],seq[3:6],seq[6:9]]
>>> print k
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> def split_array(unit_size, src):
dest = []
for i in range(len(src)/unit_size):
dest.append( src[i*unit_size : (i+1)*unit_size] )
return dest
>>> split_array( 3, seq )
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
0466デフォルトの名無しさん
2006/07/23(日) 07:36:39>>> import Numeric
>>> a = Numeric.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> a
array([1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> b = Numeric.reshape(a, (3, 3))
>>> b
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
>>>
0467デフォルトの名無しさん
2006/07/23(日) 07:42:18>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
>>> [a[i:i+4] for i in a[::4]]
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]
>>>
0468デフォルトの名無しさん
2006/07/23(日) 07:42:26>>> a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> b = [a[i:i+3] for i in range(0, len(a), 3)]
>>> b
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>>
0469463
2006/07/23(日) 08:11:320470デフォルトの名無しさん
2006/07/23(日) 10:12:13>463 はむしろ numeric を使うべき作業をしているっぽいね
0471デフォルトの名無しさん
2006/07/23(日) 11:45:370472デフォルトの名無しさん
2006/07/23(日) 11:47:260473デフォルトの名無しさん
2006/07/23(日) 11:57:390474473
2006/07/23(日) 12:30:510475デフォルトの名無しさん
2006/07/23(日) 16:13:540476デフォルトの名無しさん
2006/07/23(日) 17:40:38追加の仕方がわからんのでいろいろぐぐったらこんなページを発見
ttp://code.enthought.com/enthon/
2D plotting libraryとかData Visualization Toolとか
Fortran to Python interface generatorとかScientific Libraryとか
数値計算→プロットてな使い方をする人向けのパッケージかな?
(自分は元Fortranプログラマ)
SQLiteとかテスト用フレームワークなんかも入っているので
ありがたく使わせていただくことにしました。(−人−)
0477デフォルトの名無しさん
2006/07/23(日) 18:00:20import urllib2
url = 'http://...'
for line in urllib2.urlopen( url ):
print line
と入力したらうまくいくのですが
a = [ 'http://...', 'http://...', 'http://...' ]
for line in urllib2.urlopen( a[0] ):
print line
と入力したらエラーが返ってきます。
原因は何でしょうか?
0478477
2006/07/23(日) 18:04:08Traceback (most recent call last):
File "<stdin>", line 1, in ?
Flie "C:\Python24\lib\urllib2.py", line 130, in urlopen
return _opener.open(url, data)
File "C:\Python24\lib\urllib2.py", line 350, in open
protocol = req.get_type()
File "C:\Python24\lib\urllib2.py", line 233, in get_type
raise ValueError, "unknown url type: %s % self.__original
ValueError: unknown url type: http://...
0479デフォルトの名無しさん
2006/07/23(日) 18:10:36やってみて
0480デフォルトの名無しさん
2006/07/23(日) 18:25:02再現できないなぁ。うちではうごくし。
---そーす
import urllib2
a = ['http://google.co.jp','http://yahoo.co.jp','http://infoseek.co.jp']
for line in urllib2.urlopen( a[0] ):
print unicode(line,'sjis')
--結果--
<html><head><meta http-equiv="content-type" content="text/html; charset=Shift_JIS"><title>Google</title><style><!--
body,td,a,p,.h{font-family:;}
省略
---
0481デフォルトの名無しさん
2006/07/23(日) 18:27:32part 9 からコピペ:
Numeric...老舗.開発資金が切れて解散を宣言.ボランティア開発に移行して
まだ積極的に使われている.NumPyといったら普通これのことで,numpyと
は別物.
numarray...Numericの開発停止後主役になると思われたが,乗り換えが進ま
ず分裂.開発資金は近々切れる,ボランティア開発に移行する.まだ積極的に
使われている.画像処理とかオブジェクトアレイが売り.
SciPy...コア部分でNumericとnumarrayを使っている.コアの一本化のために
独自にscipy_coreを開発していた(numpyに名前を変えた).最終的には
numpyを使う予定.多分Enthoughtの寄付とかnumpyの有償マニュアルを資金
源にしてる.それなりに使われている.
numpy...Numeric/numarrayの置き換えを狙ったscipy_coreが名前を変えた
もの.ライブラリをまとめたい向きには好評だが,numpyのマニュアルが有
償なことにユーザが反発.資金あつまってんの?苦しみながらも開発進行中.
Numericの7-8割くらいの機能サポート.numarray独自のライブラリはあまり
取り入れられてない.
ScientificPython...このプロジェクト生きてんの?中ではNumericを使ってるはず.
0482デフォルトの名無しさん
2006/07/23(日) 18:29:59numarray だけはでかい日本語マニュアルが増田さんところで
提供されているけど。
ってか翻訳だけとってもスゴいですよね、アレ...
0483476
2006/07/23(日) 18:56:50なるほど。
情報感謝です。
まだPython自体を勉強中なので、これらの機能に手をつけるのは
まだ先になりそうですが保存させていただきました。
0484デフォルトの名無しさん
2006/07/23(日) 19:11:19アドバイスをいただけないでしょうか?
http://www.scipy.org/Installing_SciPy/Linux
#yum install numpy
#yum install lapack-devel blas-devel
の後 scipy-0.4.9.tar.gz を /usr/local/src/ に置いて展開し、
#cd /usr/local/src/scipy-0.4.9
#python setup.py install >& install.log
とやったのですが、Pythonの対話画面で、以下のようになってしまいます。
>>> from scipy import *
Traceback (most recent call last):
File "<stdin>", line 1, in ?
ImportError: No module named scipy
なお、install.logの内容は以下のとおりです。
# cat /usr/local/src/scipy-0.4.9/install.log
/usr/lib/python2.4/distutils/dist.py:236: UserWarning: Unknown distribution option: 'configuration'
warnings.warn(msg)
running install
running build
running config_fc
0485484
2006/07/23(日) 20:36:02SciPyのバージョンを0.4.9→0.4.8にすることで、インストールができました。
http://www.scipy.org/Installing_SciPy/Linux
↑には、確かに0.4.8と書いてあるのですが、最新版でも動くだろうと
たかをくくっていました。気をつけなければいけませんね。
0486477
2006/07/23(日) 22:42:21すいません、上記で示したソースは簡略のため a に入れる値をはしょって書きました。
正確にaの初期化を書くと
import from string import Template
s = Teamplate( 'http;//www.google.co.jp/$d/index.htm' )
a = []
for i in range(10): // ここで連続した URL を代入する
a.append( s.substitute( d=i ) )
これで a の値を初期化後
for line in urllib2.urlopen( a[0] ):
print line
を行うとエラーが発生します。
>>477 で示した方法で a の値を初期化するとエラーは発生しませんでした。
0487デフォルトの名無しさん
2006/07/23(日) 22:58:210488477
2006/07/23(日) 23:30:59Template クラスを使ってできた オブジェクトは
引数に使えないのでしょうか?
しかしながら
>>>isinstance( a[0], StringType )
True
とでるので文字列の型のリストであると認識しているのです
普通に
url = 'http://...'
>>>isinstance( url, StringType )
Ture
とでるから 型が違うからエラーがでているとは思えないのです
0489デフォルトの名無しさん
2006/07/23(日) 23:43:16>>479
0490デフォルトの名無しさん
2006/07/23(日) 23:43:460491デフォルトの名無しさん
2006/07/23(日) 23:50:23import from string import Template
↓
from string import Template
s = Teamplate( 'http;//www.google.co.jp/$d/index.htm' )
↓
s = Template( 'http;//www.google.co.jp/$d/index.htm' )
for i in range(10): // ここで連続した URL を代入する
↓
for i in range(10): # ここで連続した URL を代入する
先頭にimport urllib2
を追加。
for line in urllib2.urlopen( a[0] ):
print line
↓
try:
for line in urllib2.urlopen( a[0] ): print line
except urllib2.HTTPError:
print 'そんなurlはない'
0492デフォルトの名無しさん
2006/07/24(月) 00:02:29ちゃんと正直に使ってるソース張ってますか?
エラーは再現しませんよ。
実在しないURLだと問題の切り分けの邪魔になるので、実在するURLにしました。
--ソース--
from string import Template
import urllib2
s = Template( 'http://www.tenki.jp/area/a3$d.html' )
a = []
for i in range(10):
a.append( s.substitute( d=i+1 ) )
print a
print type(a[0])
for line in urllib2.urlopen( a[0] ):
print line
0493デフォルトの名無しさん
2006/07/24(月) 00:03:22['http://www.tenki.jp/area/a31.html', 'http://www.tenki.jp/area/a32.html', 'http://www.tenki.jp/area/a33.ht
ml', 'http://www.tenki.jp/area/a34.html', 'http://www.tenki.jp/area/a35.html', 'http://www.tenki.jp/area/a3
6.html', 'http://www.tenki.jp/area/a37.html', 'http://www.tenki.jp/area/a38.html', 'http://www.tenki.jp/are
a/a39.html', 'http://www.tenki.jp/area/a310.html']
<type 'str'>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
0494デフォルトの名無しさん
2006/07/24(月) 00:07:38糞スレの再利用方法を思いついたぞ!!
|
\ __ /
_ (m) _ピコーン
|ミ|
/ `´ \
('A`)
ノヽノヽ
くく
こういう質問こそ↓でするべきだ!!
Python の宿題ここで答えます Part 1
http://pc8.2ch.net/test/read.cgi/tech/1153585095/
0495477
2006/07/24(月) 00:09:45細かいタイプミスなど修正し、>>477 では unknow type とでてたのですが、
今度のエラーは HTTPError 404 だったので、
タイプミスしていたようです
しかし、>>477とではエラーの内容が違うので なんともえないし、再現も
できないのでタイプミスだったようです
どうもありがとうございました
print a[0] は
'http://...' と期待どおりに入ってました。
※404 でも読み込んで欲しいんだけど エラーで止まるのね
0496デフォルトの名無しさん
2006/07/24(月) 00:13:33ライブラリを疑う前に、自分を疑おうね。
0498477
2006/07/24(月) 00:24:13相手のレベルの推測もできないんだろうね
どこらへんで悩んでいるかをな
0499デフォルトの名無しさん
2006/07/24(月) 00:28:170500デフォルトの名無しさん
2006/07/24(月) 00:34:010501デフォルトの名無しさん
2006/07/24(月) 00:34:270502477
2006/07/24(月) 00:37:220503デフォルトの名無しさん
2006/07/24(月) 00:37:340504デフォルトの名無しさん
2006/07/24(月) 00:39:520505477
2006/07/24(月) 00:41:05暇なのね
0506477
2006/07/24(月) 00:41:230507デフォルトの名無しさん
2006/07/24(月) 00:45:250508デフォルトの名無しさん
2006/07/24(月) 00:46:28人がちょっと黙っとったら調子のりくさりやがって!
0509477
2006/07/24(月) 00:47:240510突然失礼いたします。
2006/07/24(月) 00:48:05イベント関係と中国貿易を行っています。
イベント関係では、音響、照明、会場設営、人材派遣を
行っています。
リーズナブルな金額で行っておりますので商店街さまのイベントに、ぜひご利用ください。
中国貿易では、チラシ、パンフレット、名刺等の印刷
イベント景品、アロマテラピーのお香、石鹸、ハンドクリーム等、工場直接オーダーで格安にて提供可能です。
ぜひ、各商店様へご紹介ください。
会社のプロフィールを添付いたしますので、どうぞよろしくお願いいたします。
エスケイコンサルタント(有)
シニアマネージャー 泉 誠一
TEL/FAX 044−722−6809
0511秋の宴会旅行・忘年会のご案内
2006/07/24(月) 00:48:45突然のメールで申し訳ありません。
秋の宴会・忘年会はいかがですか?
いつもの飲み会でなく、スーパーコンパニオンパックなどで
楽しむなんてどうですか?
たまには、心の洗濯を・・・
料金・詳細はこちらのHPをご覧下さい。
�潟Gーワイトラベル
Tel:03−5952−1540
http://www.aytravel.co.jp/syukuhakuyuutaiken%20konpa.
http://www.aytravel.co.jp/syukuhakuyuutaiken%20konpa.htm
0512教えてください!
2006/07/24(月) 00:49:25是非教えてくださいませm(__)m
0513デフォルトの名無しさん
2006/07/24(月) 00:50:490514デフォルトの名無しさん
2006/07/24(月) 00:52:000515デフォルトの名無しさん
2006/07/24(月) 00:52:390516デフォルトの名無しさん
2006/07/24(月) 00:53:080517477
2006/07/24(月) 00:58:230518477
2006/07/24(月) 01:00:07つっくりましょ〜♪
さてさてなにが
でっきるかな?
0519477
2006/07/24(月) 01:00:400520477
2006/07/24(月) 01:00:550521477
2006/07/24(月) 01:02:050522デフォルトの名無しさん
2006/07/24(月) 01:02:490523デフォルトの名無しさん
2006/07/24(月) 01:09:17人がらも悪い
能力に問題がある上努力もしないため
プロジェクトから外して窓際に追いやったら翌日に来なくなりました
連絡もなく数日経つので、内規により退職扱いになっています
皆様におかれましてはご迷惑をおかけして申し訳ありません
477が犯罪に走りこれ以上他人に迷惑をかけることがないよう
温かい目で見守ってやってください
0524477
2006/07/24(月) 01:25:47だれも
隙をつ
くらな
くなる
当たり前ですけどね
0525デフォルトの名無しさん
2006/07/24(月) 05:59:140526デフォルトの名無しさん
2006/07/24(月) 06:09:590527デフォルトの名無しさん
2006/07/24(月) 06:58:570528デフォルトの名無しさん
2006/07/24(月) 13:02:23幼稚な荒らしばかりが目立ち、Python自体の話題が少ないのもあるけどね。
0529デフォルトの名無しさん
2006/07/24(月) 14:00:16以前は確かに荒らしが目立ったけど
最近はそんなことないでしょう
ここ数ヶ月のPythonスレの流れは好きだな
528見たいな幼稚な書き込みは嫌いだけど(www
0530デフォルトの名無しさん
2006/07/24(月) 14:06:040531デフォルトの名無しさん
2006/07/24(月) 18:18:54MeCabをPythonから使いたいんだけどコンパイル通らなくて。
Pythonの前にCの勉強からやらないとダメなのね。愚痴ですた。
0532デフォルトの名無しさん
2006/07/24(月) 18:28:060533デフォルトの名無しさん
2006/07/24(月) 18:30:040534デフォルトの名無しさん
2006/07/24(月) 20:04:190535デフォルトの名無しさん
2006/07/24(月) 20:14:540536デフォルトの名無しさん
2006/07/24(月) 20:15:470537デフォルトの名無しさん
2006/07/24(月) 20:21:520538デフォルトの名無しさん
2006/07/24(月) 21:29:290539デフォルトの名無しさん
2006/07/24(月) 21:47:290540デフォルトの名無しさん
2006/07/24(月) 22:01:15煽りにものらないしさ。
0541デフォルトの名無しさん
2006/07/24(月) 22:14:580542デフォルトの名無しさん
2006/07/24(月) 22:28:560543デフォルトの名無しさん
2006/07/24(月) 22:39:47キー入力をまったく受け付けなくなる事があるんですけど。
他のアプリはちゃんと触れて、Idleを再起動すると問題なし。
こんなもんなんですか、こいつは?
0544デフォルトの名無しさん
2006/07/24(月) 22:57:280545デフォルトの名無しさん
2006/07/25(火) 00:03:380546デフォルトの名無しさん
2006/07/25(火) 00:23:27ver. 年月日 状態
alpha 1 2006年4月5日 済
alpha 2 2006年4月27日 済
beta 1 2006年6月20日 済
beta 2 2006年7月11日 ←今ここ
rc 1 2006年8月1日 予定
final 2006年8月8日 予定
release 2006年8月19日 予定
0547デフォルトの名無しさん
2006/07/25(火) 00:27:02Title: Conditional Expressions
On 9/29/2005, Guido decided to add conditional expressions in the
form of "X if C else Y". [1]
こんなの入れんの?
0548デフォルトの名無しさん
2006/07/25(火) 01:41:320549デフォルトの名無しさん
2006/07/25(火) 08:25:07なんかよりは覚えやすそうだけど、結局使わなそう
0550デフォルトの名無しさん
2006/07/25(火) 08:42:060551デフォルトの名無しさん
2006/07/25(火) 08:42:200552デフォルトの名無しさん
2006/07/25(火) 08:43:05バグじゃないか?
0553552
2006/07/25(火) 08:43:43ごめんバグじゃないや。
0554デフォルトの名無しさん
2006/07/25(火) 11:09:240555デフォルトの名無しさん
2006/07/25(火) 11:48:30ttp://www.amazon.co.jp/gp/product/0596009259/
0556デフォルトの名無しさん
2006/07/25(火) 20:08:21こういう書き方ができるようになるって事は
A = B if cond
とか
sum += i for i in range(10)
とか書けるようになるって事?
じゃなかったら、ちょっと気持ち悪いかな・・・
0557デフォルトの名無しさん
2006/07/25(火) 20:40:36下は
sum += [i for i in range(10)]
こうくくりたいのか
(sum += i) for i in range(10)
こうくくりたいのか明確じゃねー
はっきりしたコードを書け
0558デフォルトの名無しさん
2006/07/25(火) 21:28:19上は if cond: A = B と同じ意味のつもり。cond が False なら A は変更しない。None を代入しない。
下はもちろん後者の合計(sum)を意図してる。てか前者の意味なら sum += range(10) で済むよね。
角カッコつけてないから、包括的表現との曖昧さはないと思うんだけど…。
てかごめん。これはあくまで文修飾があったらの仮定だから、マジレスされても……。
つまり、2.5でも文修飾はできないって事でFAだよね? 別にアンチとかではなく、興味。Python は面白い。
0559デフォルトの名無しさん
2006/07/25(火) 21:32:24None を代入しない。
明示されなかったら、飛ばされるで良かったっけ?None代入は怖いなぁ。
0560デフォルトの名無しさん
2006/07/25(火) 21:32:53今まで使えているんだったら、今までと同じように使えば良い。
新しい文法でかいたからといって、分かり易くなるとも一概に言えない。
0561デフォルトの名無しさん
2006/07/25(火) 21:33:31同じ流儀でしかプログラムが書けないというのは人の書いたプログラムを読むときは
大きな利点になる。
0562デフォルトの名無しさん
2006/07/25(火) 21:40:43何種類もの言語をやってきましたが
トリッキーで短い行数より
すこし冗長でも集中力がとぎれれ眠いときにでも
頭には言って気やすい視覚的なソースの景色のほうがやりやすいと
私は思います。
0563デフォルトの名無しさん
2006/07/25(火) 21:41:34一杯のんでて、誤字だらけですみません。(;;
0564デフォルトの名無しさん
2006/07/25(火) 21:43:18おれも
0565デフォルトの名無しさん
2006/07/25(火) 21:51:10Python の思想とは、毛並みが違っている気がする
0566デフォルトの名無しさん
2006/07/25(火) 21:52:140567デフォルトの名無しさん
2006/07/25(火) 22:16:52も十分キモいコードだと思うんだけど
0568デフォルトの名無しさん
2006/07/25(火) 22:17:32げっそりだ。
0569デフォルトの名無しさん
2006/07/25(火) 22:25:34for i in range(10): sum += i
にすりゃいいのにね。タイプ量ほとんど変わらん。
二項演算子は便利っぽい気もするけど、読みにくいからなぁ。
A = B or C はよく使うけど。
0570デフォルトの名無しさん
2006/07/25(火) 23:37:580571デフォルトの名無しさん
2006/07/25(火) 23:38:080572デフォルトの名無しさん
2006/07/25(火) 23:55:390573デフォルトの名無しさん
2006/07/26(水) 00:16:09俺もここ最近、苦い思いで見てる。
ライブラリは大きくなってほしいけど仕様は大きくなってほしくない。
0574デフォルトの名無しさん
2006/07/26(水) 00:20:09オタが「俺様のメインの言語みたい書き方は出来ねーのかよ!」
なんて言い出して、しかも偉いオタだったりすると採用せざるを得なくなる、みたいな。。
あんまりきもくなると早急に1抜けちゃうぞヽ(`Д´)ノ
0575デフォルトの名無しさん
2006/07/26(水) 00:22:04Python 3.0はもっとキモいから楽しみにしてて!
0576デフォルトの名無しさん
2006/07/26(水) 00:22:430577デフォルトの名無しさん
2006/07/26(水) 00:23:54Guidoイラネ
0578デフォルトの名無しさん
2006/07/26(水) 00:25:38乗り換え初期は、前の言語の癖が抜けないし。
しばらくPythonやって他のソースみてれば
なれてくるよ。
0579デフォルトの名無しさん
2006/07/26(水) 00:31:45キモ複雑にしてどーする
充実したモジュールと整備されたドキュメントこそ大事
0580デフォルトの名無しさん
2006/07/26(水) 00:33:380581デフォルトの名無しさん
2006/07/26(水) 00:37:57ああすごい同意。
なんで三項演算子入れないで、あんなきもい
構文入れるんだよ。
0582デフォルトの名無しさん
2006/07/26(水) 00:41:15Many C-derived languages use this syntax:
<condition> ? <expression1> : <expression2>
Eric Raymond even implemented this. The BDFL rejected this for
several reasons: the colon already has many uses in Python (even
though it would actually not be ambiguous, because the question
mark requires a matching colon); for people not used to C-derived
language, it is hard to understand.
0583デフォルトの名無しさん
2006/07/26(水) 00:44:31[x for y in z] とかとも類似する構文だし、俺はあれでいいと思うけどなぁ。。。
0584デフォルトの名無しさん
2006/07/26(水) 00:45:26入れたくないものを仕方なしに入れるから
とか? (本音を言うと誰にも使って欲しくない)
0585デフォルトの名無しさん
2006/07/26(水) 00:46:03C then X else Y
みたいにできなかったのか疑問
条件が真ん中に来るとか見づらいよ……
0586デフォルトの名無しさん
2006/07/26(水) 00:46:09半端に似せて「Cと同じだ」とか誤解を招くのはよろしくないと思う。
0587デフォルトの名無しさん
2006/07/26(水) 00:48:42← ←
データの流れが見える
"X if C else Y"
↑ ↑
分かれていて嫌
0588デフォルトの名無しさん
2006/07/26(水) 00:57:28気持ちはわかる。対称性が悪い感じだね。
でももう決まったことだし、個人的にはあまり気にしないで使うことになるだろうな。
意見を述べるならもっと前に言うべきだったってことでしょう。
0589デフォルトの名無しさん
2006/07/26(水) 01:00:070590デフォルトの名無しさん
2006/07/26(水) 01:04:52向こうの連中だと自然で見やすいとか?
0591デフォルトの名無しさん
2006/07/26(水) 01:07:32もう慣れてしまった。今ではリスト内包は直観的で分かりやすいと感じる。
ずっと Guido のセンスで取捨選択してきたわけだし、ぶっちゃけ今のところこれといって
ダメ杉な仕様とゆーのは思い付かない。
今度の新しい三項演算子も慣れたら普通だと感じるようになるんジャマイカ。
0592デフォルトの名無しさん
2006/07/26(水) 01:13:04「Xなんだよ! まあCだったらの話だけどな そうじゃなければYでよろしく」
0593デフォルトの名無しさん
2006/07/26(水) 01:15:110594デフォルトの名無しさん
2006/07/26(水) 01:16:06[x for y in z]
↑
ここにたどり着く前に脳内スタックが忘却を始めるw
[x for x in original_list if x>2 and x<5]
こっちは自分で書いてもコメントが必要だww
0595591
2006/07/26(水) 01:37:07X if C else Y を使うのはきっと式の中がメインになるんだろうな。
lambda の中とかリスト内包の中とか。
functor = lambda x: x+1 if y > 0 else lambda x: x-1 if y < 0 else lambda x: x
とか、
delta = Numeric.array([[1 if i == j else 0 for i in range(M)] for j in range(N)], Numeric.Float32)
みたいな。>>593の言う通り、用例を考えていたらもう慣れてきた希ガスw
0596591
2006/07/26(水) 01:54:02print "%d%s" % (n, "th" if q == 1 else "st" if r == 1 else "nd" if r == 2 else "rd" if r == 3 else "th")
たくさん if ... else が続く場合はなかなか読みやすい希ガス。
0597デフォルトの名無しさん
2006/07/26(水) 02:06:15Python 3.0のライセンスはオレオレGPLにするから。
0598デフォルトの名無しさん
2006/07/26(水) 02:09:040599デフォルトの名無しさん
2006/07/26(水) 02:27:030600デフォルトの名無しさん
2006/07/26(水) 02:30:300601デフォルトの名無しさん
2006/07/26(水) 11:08:59その書き方が許されるとすると、かなり応用力がありそうですね。
実質任意個バージョンでOKてことだから・・・
でも、あんまりやるとさすがに見づらい気もする・・・
596がすでにぱっと見ではよく分からない
0602デフォルトの名無しさん
2006/07/26(水) 13:39:10A = if C then B else D
みたいな形の方が文章として読みやすいと思うんだが。
0603デフォルトの名無しさん
2006/07/26(水) 14:03:57三項演算子いれて、
print "%d%s" % (i, r == 1 ? "st" : r == 2 ? "nd" : r == 3 ? "rd" : "th")
にしたほうが見やすくない?
0604デフォルトの名無しさん
2006/07/26(水) 14:11:250605デフォルトの名無しさん
2006/07/26(水) 14:52:200606デフォルトの名無しさん
2006/07/26(水) 14:53:430607デフォルトの名無しさん
2006/07/26(水) 15:15:14A = B if C else D だと
CならばDと目が流れちゃうかもかも。
まあ、慣れれってことか。
0608デフォルトの名無しさん
2006/07/26(水) 15:28:49A = B or D で済むんだけどねぇ。
BがNoneならDって使い方。これは結構便利でよく使ってるんだけども。
いまだに
A = B and D は使ったことがないけども。
0609デフォルトの名無しさん
2006/07/26(水) 15:49:33> たくさん if ... else が続く場合はなかなか読みやすい希ガス。
おお!まさにそう思うよ!急にこの演算子が大好きになった。
0610591
2006/07/26(水) 16:56:18慣れているから見やすいと感じるんだと思われ。
ぶっちゃけどっちでもよくなってきた。
余談だけど>>603-604のコードは 11st, 12nd, 13rd という
おかしな出力が得られるのでNG。
0611デフォルトの名無しさん
2006/07/26(水) 18:59:11Python 3000 ではxrange()は廃止になるみたいだけど、
http://ymasuda.jp/python/news_2004_10.html
現在のバージョンで、range()ではメモリを食いすぎる場合、代わりにどう書
けば良いの?
あと、Python 3000では、range()はxrange()を兼ねるみたいだけれど、どうい
う仕組を想定しているの?
・__iter__経由でアクセスした場合はxrange()と同様
・__getitem__経由でアクセスした場合には現行のrange()と同様
ということなのかなとも思ったが、どうなんでしょう?
0612デフォルトの名無しさん
2006/07/26(水) 20:01:430613デフォルトの名無しさん
2006/07/26(水) 20:15:26- dict.keys()/range()/zip() はイテレータを返す
(略)
- dict.has_key(), file.xreadlines(), xrange(), itertools.izip(), apply(),
input(), buffer(), coerce() 除去
おお、range()はイテレータになるのか!
じゃあrange(10)[0]とか、スライスの取得とかもできなくなるの?
0614デフォルトの名無しさん
2006/07/26(水) 20:19:56http://journal.mycom.co.jp/news/2006/07/26/340.html
0615デフォルトの名無しさん
2006/07/26(水) 23:20:09(いやそりゃinstallの仕方次第ってのはわかってるけどね)
こうあれこれ廃止されると (has_keyとかも)
#!/usr/bin/env python
って書いてあるコードが軒並動かんからなぁ。
標準で python3 とか py3hon とかにしてほしい。
0616デフォルトの名無しさん
2006/07/26(水) 23:26:04python -> python2
python2 -> python2.6
python2.3
python2.4
python2.5
python2.6
python3 -> python3.0
python3.0
0617デフォルトの名無しさん
2006/07/26(水) 23:46:070618デフォルトの名無しさん
2006/07/27(木) 00:14:360619デフォルトの名無しさん
2006/07/27(木) 00:20:08>functor = lambda x: x+1 if y > 0 else lambda x: x-1 if y < 0 else lambda x: x
functor = lambda x: (x+1 if y > 0 else lambda x: (x-1 if y < 0 else lambda x: x))
こう解釈して、わけわかんなくなりました。
0620デフォルトの名無しさん
2006/07/27(木) 04:34:44このオフ会逝く?
0621デフォルトの名無しさん
2006/07/27(木) 04:38:240622デフォルトの名無しさん
2006/07/27(木) 09:40:030623デフォルトの名無しさん
2006/07/27(木) 09:44:530624デフォルトの名無しさん
2006/07/27(木) 10:27:13マジわかってないんだけど正解はどうするの?
そもそも1行にうじゃうじゃ並べるのって
読みにくくなって python的じゃなくね?
0625デフォルトの名無しさん
2006/07/27(木) 13:43:50functor = (lambda x: x+1) if (y > 0) else (lambda x: x-1) if (y < 0) else (lambda x: x)
こういうことでしょ?(pythonコンパイルできないけど・・・
まあ、一生つかわなそうだけど、・・・
0626デフォルトの名無しさん
2006/07/27(木) 15:54:27list(range(5)) みたいに、明示的にリストに変換するようになるみたい。
0627デフォルトの名無しさん
2006/07/27(木) 17:51:27自分で編集するんだ!
0628デフォルトの名無しさん
2006/07/27(木) 19:25:55ありがとう。けっきょく、Python3000への準備としては、
今のうちにこう書くようにすれば良いのかな。
・xrange()はあきらめてrange()を使う。100万回のループでも高々4MB。
・range()をリストとして使う場合、list()で囲っておく。
・xreadlines()は使わず、ファイルオブジェクトをイテレータとして使う。
なんにせよ、データ構造のデフォルトがlazyになるのは嬉しい。Python3000が
楽しみだ。
print -> write()はどうしようか。
自分でwrite()を用意するのは、ちょっと難しそうだ。
0630デフォルトの名無しさん
2006/07/27(木) 22:43:18$a = ($b > $c) ? $b : $c; // ←php
的な構文ってなんかある?
0631デフォルトの名無しさん
2006/07/27(木) 22:49:020632デフォルトの名無しさん
2006/07/27(木) 23:22:49でも、その解釈だと、
>文が書ける文脈では普通の if 文を使えばいいわけで、
>X if C else Y を使うのはきっと式の中がメインになるんだろうな。
に合わないよね。
if y>0:
functor = lambda x: x+1
else if y<0:
functor = lambda x: x-1
else:
functor = lambda x: x
文で書ける文脈だし。
0633デフォルトの名無しさん
2006/07/27(木) 23:40:32内包式の中とかで自由にレイアウトできるとして、
# 1. 値を行頭にそろえる
[1 if cond else
2 if cond else
3 for i in xxx]
# 2. 値を行頭にそろえるが、最後だけは行末
[1 if cond else
2 if cond else 3
for i in xxx]
# 3. 最初だけ行頭で、残りは行末にそろえる
[1 if cond else 2
if cond else 3
for i in xxx]
# 4. どんなに長くても改行しない
[1 if cond else 2 if cond else 3
for i in xxx]
# 5. 値を中程でそろえる
[ 1 if cond
else 2 if cond
else 3 for i in xxx]
# 6. その他
俺は今のところ3がいいかと思ってる。
0634デフォルトの名無しさん
2006/07/27(木) 23:53:280635デフォルトの名無しさん
2006/07/28(金) 00:10:110636デフォルトの名無しさん
2006/07/28(金) 02:02:070637デフォルトの名無しさん
2006/07/28(金) 02:22:16そんな長いのは複数の文にする
0638デフォルトの名無しさん
2006/07/28(金) 04:30:530639デフォルトの名無しさん
2006/07/28(金) 12:32:35今は無い。and を使った苦しい記法が一部で用いられている。
http://www.shido.info/py/python2.html#operator
X if C else Y という構文が将来入る予定。
http://www.python.org/dev/peps/pep-0308/
あとは>>547-610 あたりを読んどけ。
つうか、直前のレスぐらい読んでから質問したほうがいい。
0640デフォルトの名無しさん
2006/07/28(金) 20:20:26http://www.disinterest.org/NDS/Python24.html
Python-PSP
http://python-psp.net/trac/
0641デフォルトの名無しさん
2006/07/28(金) 20:53:550642デフォルトの名無しさん
2006/07/28(金) 22:06:33そういうのって何で違法じゃないの?
0643デフォルトの名無しさん
2006/07/28(金) 22:11:30そりゃ何の法律にも触れないからでしょ
0644デフォルトの名無しさん
2006/07/28(金) 22:42:57具体的に何の法律違反なんだ?
0645デフォルトの名無しさん
2006/07/28(金) 23:28:220646デフォルトの名無しさん
2006/07/28(金) 23:31:130647デフォルトの名無しさん
2006/07/29(土) 01:19:360648デフォルトの名無しさん
2006/07/29(土) 01:59:480649デフォルトの名無しさん
2006/07/29(土) 02:01:50別ファイルに作った関数を呼び出したりするときと同じ
0650デフォルトの名無しさん
2006/07/29(土) 02:13:41こう読んでいた俺がいる
0651デフォルトの名無しさん
2006/07/29(土) 02:28:23夜分遅くに即レスありがとう。
0652デフォルトの名無しさん
2006/07/29(土) 03:08:290653デフォルトの名無しさん
2006/07/29(土) 03:40:32これなんのポエム?
0654デフォルトの名無しさん
2006/07/29(土) 03:53:22「Program全般の話題」だけでお腹一杯です。勘弁してください。
0655デフォルトの名無しさん
2006/07/29(土) 04:13:140656デフォルトの名無しさん
2006/07/29(土) 04:55:290657デフォルトの名無しさん
2006/07/29(土) 08:54:48ちょっと面白かった
0658デフォルトの名無しさん
2006/07/29(土) 10:57:300659デフォルトの名無しさん
2006/07/29(土) 11:16:500660デフォルトの名無しさん
2006/07/29(土) 11:17:180661デフォルトの名無しさん
2006/07/29(土) 11:31:540662デフォルトの名無しさん
2006/07/29(土) 11:47:220663662
2006/07/29(土) 11:50:08ttp://www.python.net/crew/mike/src/Spectix/Spectix.html
0664デフォルトの名無しさん
2006/07/29(土) 21:07:150665デフォルトの名無しさん
2006/07/29(土) 21:10:01っきんてぁる
0666デフォルトの名無しさん
2006/07/29(土) 22:03:020667デフォルトの名無しさん
2006/07/29(土) 22:36:300668デフォルトの名無しさん
2006/07/29(土) 22:37:300669デフォルトの名無しさん
2006/07/29(土) 22:37:55ディーケーインターって読んでたけど、>>665も良いなw
0670デフォルトの名無しさん
2006/07/29(土) 22:48:260671デフォルトの名無しさん
2006/07/30(日) 00:18:09更新されていたらその中身をカキコするっていうのを
作ってみたけど、短時間で組めて使いやすいね、python。
0672デフォルトの名無しさん
2006/07/30(日) 00:33:00なんかwxPythonの方が見栄えが良いなぁと思って。
0673デフォルトの名無しさん
2006/07/30(日) 00:50:48よかったらソースを見せてください
0674デフォルトの名無しさん
2006/07/30(日) 00:53:070675673
2006/07/30(日) 02:33:01from stat import *
from time import*
from mechanize import Browser
# http://wwwsearch.sourceforge.net/mechanize/
fileName = '/path/to/your/files/postmessage.txt'
def postIt():
f = open(filename,'r')
dest = 'http://hogehoge.com/hoge/hoge.cgi'
br = Browser()
contents=br.open(dest)
br.select_form(nr=0)
br["name"]="nanashisan"
br["MESSAGE"]=f.read()
contents2 =br.submit()
f.close
def main():
lastUp = os.stat(fileName)[ST_MTIME]
while 1:
sleep(5)
if lastUp <> os.stat(fileName)[ST_MTIME] :
postIt()
lastUp = os.stat(fileName)[ST_MTIME]
if __name__ == '__main__':
main()
0676デフォルトの名無しさん
2006/07/30(日) 04:18:34使ってるよ。よく使う Tkinter アプリは IDLE と自作の簡易 MUA。
見栄えはあんまり気にしたことないなあ。
そういう性格なのかもね、俺の場合。
スキンが変えられるソフトでもデフォルトのままで使うことが多いし。
一時停止ボタンどこぉ?みたいなスキンもあったりして面倒というのもある。
0677デフォルトの名無しさん
2006/07/30(日) 09:29:450678デフォルトの名無しさん
2006/07/30(日) 09:45:070679デフォルトの名無しさん
2006/07/30(日) 12:32:29いろいろ遊べそうだ。
0680デフォルトの名無しさん
2006/07/30(日) 12:59:54なんか肩透かしだった。
Djangoは紹介だけ。あまり内容が無い。
連載のほうは、rssfeedの紹介がしたいのかPythonの入門をさせたいのかどっちつかずで
ものたりなかった。2ページで2つ盛り込むのは大変だったのかな。
rssfeedをとりあげたら、次はPythonでplaggerする newspipe でなんかやってほしいっす。
とか日経ソフトウェアの感想ハガキに書いて送ればいいんでしょうか。
0681デフォルトの名無しさん
2006/07/30(日) 13:00:300682デフォルトの名無しさん
2006/07/30(日) 15:57:52しかし2ページしかないのか。記事書くのも結構難しいな。
0683デフォルトの名無しさん
2006/07/31(月) 09:24:540684デフォルトの名無しさん
2006/07/31(月) 11:52:03Pythonを選んだからだろうと思われる。
0685デフォルトの名無しさん
2006/07/31(月) 11:57:510686デフォルトの名無しさん
2006/07/31(月) 11:59:33>ほとんどの人が何かしら他の言語の悪い所(言語そのものでもコミュニティでも)を経験して
プロ市民のごとくマイナスイメージを作ることでしか自己主張できない敗北者には用はありません。
0687デフォルトの名無しさん
2006/07/31(月) 12:02:530688デフォルトの名無しさん
2006/07/31(月) 12:15:13http://video.google.com/videoplay?docid=-6459339159268485356
0689デフォルトの名無しさん
2006/07/31(月) 12:20:082chではマニュアル嫁とかボロクソいうレベルの質問でも
ユーモアを交えつつ答えてるし。。(スルーされてるのもあるが)
質問した方も、多少恥をかいても礼儀正しいし。
そっち読んでたら、2chですこし丸くなったよ。
0690デフォルトの名無しさん
2006/07/31(月) 12:33:47少なくともpython-ml-jpよりもRTFMレベルの質問に対しても優しいと感じる。
0691デフォルトの名無しさん
2006/07/31(月) 12:35:06(まあこれはこじれにこじれた時の話ですがね)
0692デフォルトの名無しさん
2006/07/31(月) 13:02:080693デフォルトの名無しさん
2006/07/31(月) 13:42:31インサイダー取引のためのハッキング口座
です
0694デフォルトの名無しさん
2006/07/31(月) 15:06:14あまり優しいのは考えものだ。
と、暴言を吐いてみるテスト。w
0695デフォルトの名無しさん
2006/07/31(月) 15:07:330696デフォルトの名無しさん
2006/07/31(月) 15:14:55言語制作者自らがRTFMレベルの質問に答える例w
本当はやさしいのかもしれないね。
http://pc8.2ch.net/test/read.cgi/tech/1147770788/954
0697デフォルトの名無しさん
2006/07/31(月) 16:49:59> ttp://www.rubyist.net/~matz/20060726.html
最近、また電波障害がひどくね?
0698デフォルトの名無しさん
2006/07/31(月) 17:07:55カルトですからしょうがないですよ
0699デフォルトの名無しさん
2006/07/31(月) 17:14:58どっちかと言えば、その上段の方が...。
http://itpro.nikkeibp.co.jp/article/NEWS/20060726/244303/
0700デフォルトの名無しさん
2006/07/31(月) 18:26:50ええじゃないか。ええじゃないか。
0701デフォルトの名無しさん
2006/07/31(月) 19:11:38教祖様の思いつきレベルで仕様が変わる言語は使えねえな。
0702guidoのスライド@Python3000
2006/07/31(月) 21:15:42dict.keys(),range(),zip() won't return lists
-killing dict.iterkeys() ,xrange(), itertools.izip()
All strings Unicode ; mutable 'bytes' data type
Binary file I/O redesign
Drop <> as alias for !=
But not (for example):
- dict.keys instead of dict.keys()
- change meaning of else-clause on for/while
- change operator priorities
0703guidoのスライド@Python3000
2006/07/31(月) 21:22:13-Many proposed chan ges are semantic ,not syntactic
- For example ,in "f(x.keys())"
--is x a dict?
--does f() expect its argument to be a list ?
-Answers may be guesssed by e.g. pychecker
--but can't always be diceded with certainity
Most likely approach:
-use pychecker-like tool to do an 80+% job
-create an instrumented version of Python 2.x that
warns about doomed code (e.g. d.keys().sort())
0704guidoのスライド@Python3000
2006/07/31(月) 21:36:18From PEP 3099 (and from The Holy Grail :-)
Python 3000 will not:
-have programmable syntax / macros /etc.
-add syntax for parallel iteration (use zip())
-change hash, keys etc. to attributes
-change iterating over a dict to yield key-vaule pairs
In general we shouldn't
-change the look and feel of the language too much
-make gratuitous or confusing changes
-add radical new features(can always do that later)
0705guidoのスライド@Python3000
2006/07/31(月) 21:56:47Kill classic classes
Exceptions must redive from BaseException
int/int will return a float
Remove last differences between int and long
Absolute import by default
Kill sys.exc_type and friends (exc_info() stays)
Kill dict.has_key(), file xreadlines()
Kill apply(),input(),buffer(),coerce(),...
Kill ancient library modules
0706guidoのスライド@Python3000
2006/07/31(月) 21:57:23exec becomes a function again
kill 'x' in favor of repr(x)
change except clause syntax to 'except E1,E2,E3 as err:'
-this avoids the bug in 'except E1,E2:# meant except (E1,E2)
[f(x) for c in S] becomes syntactic sugar for list(f(x) for x in S) # a generator expression
-subtle changes in need for parentheses
-x no longer leaks into surrounding scope
kill raise E ,arg in favorof raise E(arg)
0707デフォルトの名無しさん
2006/07/31(月) 22:28:46その「オレが使ってる言語最高!オレが使わない言語は悪だ!」という
非論理的思考はなんとかならないのか?
0708デフォルトの名無しさん
2006/07/31(月) 22:41:05>なんでRubyを敵視してるヤツがいるんだ?
そんな人いるの?
0709デフォルトの名無しさん
2006/07/31(月) 22:42:58そうじゃなくて「オレさまが作った言語最高!」ってのに辟易してるんじゃないのか
0710デフォルトの名無しさん
2006/07/31(月) 22:44:04敵視するかどうかは各個人の自由であろう
0711デフォルトの名無しさん
2006/07/31(月) 22:55:52可能であればPythonに取り入れようとしてきた
そして
ttp://www.rubyist.net/~matz/20060726.html
0712デフォルトの名無しさん
2006/07/31(月) 23:16:37>711, 709
Rubyに近づいているといってるだけで、Rubyが一番スゲー、とか言ってないのに何その過剰反応は。
>Pythonの偉い人は,Rubyに限らず色んな言語のよいところを知っていて
>可能であればPythonに取り入れようとしてきた
これはPythonだけに限らなくて、ほぼあらゆる言語がそう。Rubyもね。
0713デフォルトの名無しさん
2006/07/31(月) 23:23:17あるらしいんで、そこである程度決着つくんじゃね?
0714デフォルトの名無しさん
2006/07/31(月) 23:23:32新手の荒らしか(wwwww
さて
Pythonの話題をどうぞ
0715デフォルトの名無しさん
2006/07/31(月) 23:26:43じゃんけんプロトコルに乗っ取って各言語で書かれたクライアント同士が
数万回のじゃんけんを繰り返して決める、ってあれかい?
0716デフォルトの名無しさん
2006/07/31(月) 23:27:21そりゃ2chなんだからいろんな人がいるよ。そゆのをスルーできない君のほうがうざいよ。
0717デフォルトの名無しさん
2006/07/31(月) 23:37:270718デフォルトの名無しさん
2006/07/31(月) 23:48:55慣れ合いー>夢・独り言
でどうぞ。
0719デフォルトの名無しさん
2006/07/31(月) 23:50:590720デフォルトの名無しさん
2006/07/31(月) 23:54:24その場でどう書く,かなり楽しみ
0721デフォルトの名無しさん
2006/08/01(火) 00:03:070722デフォルトの名無しさん
2006/08/01(火) 00:46:46やはり同じように感じている人がいたのね。言っていることにはつくづく同意。
このスレの雰囲気については、正直何とかしてほしいと思っている。些細な質問を
するにも、いちいち「荒らすつもりじゃなくて」とか弁解しなきゃいけない。
>>255とか見てると、胸が痛む。
自分たちがどれだけ入門希望者を萎縮させているか、少しは考えてほしいもんだ。
こう書いても、また荒らし扱いして叩くだけなんだろうけど。
0723デフォルトの名無しさん
2006/08/01(火) 00:49:57些細な質問で荒らし扱いされたことってあったのか?
0724デフォルトの名無しさん
2006/08/01(火) 01:03:32rubyでは...lispでは...とか付け足すと効果的。
0725デフォルトの名無しさん
2006/08/01(火) 01:07:15被害妄想も甚だしいな。
0726デフォルトの名無しさん
2006/08/01(火) 01:35:02やっぱり書き方だよ。>>255はムカつかれる書き方をしてるってこと。
それは感覚の問題だからかわいそうと言えばかわいそうだけど。
0727デフォルトの名無しさん
2006/08/01(火) 01:38:39で、255の何にムカついてるの?何故ムカつかないといけないの?
0728デフォルトの名無しさん
2006/08/01(火) 01:40:29そうかな
別に>>255もムカつかれる書き方とは思わないし、>>255 >>257 >>269 とか結構
有意義な話に流れている。(その後のプロトタイプベース云々はともかくw)
0730デフォルトの名無しさん
2006/08/01(火) 02:15:34何処とは言わないが。
0731デフォルトの名無しさん
2006/08/01(火) 02:30:19あまり真面目に生きないほうがいい
0732デフォルトの名無しさん
2006/08/01(火) 03:12:340733デフォルトの名無しさん
2006/08/01(火) 05:23:540734デフォルトの名無しさん
2006/08/01(火) 06:42:44なにげにPloneなのね、そのサイト。
0735デフォルトの名無しさん
2006/08/01(火) 08:02:300736デフォルトの名無しさん
2006/08/01(火) 11:47:36どのスレにも書き込みできない。。
0737デフォルトの名無しさん
2006/08/01(火) 12:03:320738デフォルトの名無しさん
2006/08/01(火) 12:18:25unicode("ほげほげ")のほうがいい。
0739デフォルトの名無しさん
2006/08/01(火) 12:21:310740デフォルトの名無しさん
2006/08/01(火) 13:11:460741デフォルトの名無しさん
2006/08/01(火) 14:16:33u"ほげほげ"に何を期待しているの?
0742デフォルトの名無しさん
2006/08/01(火) 14:19:040743デフォルトの名無しさん
2006/08/01(火) 14:35:24>>> print u("ほげほげ")
ほげほげ
これでちょっとは短くなるべ
0744デフォルトの名無しさん
2006/08/01(火) 14:47:36u("ほげほげ")のときにスライスがバイト単位で切れちゃったんで
シェルのときは、環境で動作ちがうからめんどっちいなーと
思っただけです。
プログラムの時は、>739サンのようにしておりますので
意識してなかったんで、何でシェルのときスライスでunicharでてこないんだ
とおもって、しまっただけでした。
環境変数のLANGの値で、codingをいい感じにしてくれんのかなー
とおもってたら、ただの8ビット文字列にされてたようでした。
0745デフォルトの名無しさん
2006/08/01(火) 14:49:14ありがとう。
0746デフォルトの名無しさん
2006/08/01(火) 16:21:55>>> s = u'んなばかな'
>>> s[:2]
u'\u3093\u306a'
>>> print s[:2]
んな
>>> print s[2:]
ばかな
0747デフォルトの名無しさん
2006/08/01(火) 17:19:24site.pyは触っていません。
そうすれば、固定できるとは知っているのですが
システム全体に影響してしまうんで。。
PYTHONSTARTUPでなんとかできればいいんですけどね。
0748デフォルトの名無しさん
2006/08/01(火) 17:22:43ttp://python.matrix.jp/tips/compatibility/interact_encoding.html
0749デフォルトの名無しさん
2006/08/01(火) 18:11:04バージョンによる違いだったみたいです。
== python2.5 ==
>>> s=u"ほげほげ"
>>> s[0]
u'\u307b'
== python2.4 ==
>>> s=u"ほげほげ"
>>> s[0]
u'\u307b'
== python2.3 ==
>>> s="ほげほげ"
>>> s[0]
'\xa4'
0750デフォルトの名無しさん
2006/08/01(火) 18:15:12== python2.3 ==
>>> s=u"ほげほげ"
>>> s[0]
u'\xa4'
0751デフォルトの名無しさん
2006/08/01(火) 19:58:322.4からじゃなかったか?
site.pyは直接書き換えないでsitecustmize.pyを使うのがお作法。
0752デフォルトの名無しさん
2006/08/01(火) 21:10:39こういうのをやりたいんだけど
どうやって書けばいいのだろ?
0753デフォルトの名無しさん
2006/08/01(火) 22:15:08export PYTHONPATH=$HOME/.python/
$HOME/.python/sitecustomize.py
import sys
sys.setdefaultencoding('ENCODING')
0754デフォルトの名無しさん
2006/08/01(火) 22:43:53s=u"いろはにほへとちりぬるを"
table={ ord(u'い'):u'衣' , ord(u'ろ'):u'呂' ,ord(u'は'):u'波' }
print s.translate(table)
0755デフォルトの名無しさん
2006/08/01(火) 23:04:00thx
translateの使い方がようやく理解できたよ
0756デフォルトの名無しさん
2006/08/02(水) 00:25:47スマートな方法は思い付くかな。
0757デフォルトの名無しさん
2006/08/02(水) 01:33:090758デフォルトの名無しさん
2006/08/02(水) 01:57:490759デフォルトの名無しさん
2006/08/02(水) 03:07:120760デフォルトの名無しさん
2006/08/02(水) 04:47:140761デフォルトの名無しさん
2006/08/02(水) 06:16:42余は初参加であるので裏事情は知らぬが表向きは単なる飲み会であるものと存じておるぞよ。
0762デフォルトの名無しさん
2006/08/02(水) 07:55:05木曜の夕刻なんぞに開かれたら絶対行けない……
0763デフォルトの名無しさん
2006/08/02(水) 08:55:320764デフォルトの名無しさん
2006/08/02(水) 09:36:220765デフォルトの名無しさん
2006/08/02(水) 09:41:37突然>>764は僕の見ている目の前で
ツナギのホックを
はずしはじめたのだ・・・!
0766デフォルトの名無しさん
2006/08/02(水) 09:53:47リリースのスケジュールが早まったはずだから,本日RCリリース予定日?
wktk(・∀・)
0767デフォルトの名無しさん
2006/08/02(水) 11:13:33ウホッ
↓
0768デフォルトの名無しさん
2006/08/02(水) 12:54:330769デフォルトの名無しさん
2006/08/02(水) 13:44:500770デフォルトの名無しさん
2006/08/02(水) 17:56:54Pythonのはなしを。。。。。。。
0771デフォルトの名無しさん
2006/08/02(水) 19:22:33↓
0772デフォルトの名無しさん
2006/08/02(水) 19:45:46tp://ftp.yum_python.org/pub/Phorth/
0773デフォルトの名無しさん
2006/08/02(水) 19:48:240774デフォルトの名無しさん
2006/08/02(水) 20:01:34Python
0775デフォルトの名無しさん
2006/08/02(水) 21:22:15開けないです
サーバーが無いそうです
0776デフォルトの名無しさん
2006/08/02(水) 22:49:17decode
0777デフォルトの名無しさん
2006/08/03(木) 01:21:58以下のようなコードを書いてみました。
import re
r = re.compile(".*/(index)|(default)\.[^/]+$")
if r.search("http://hoge/index.html").group() != None:
しかし、これではgroups()で取得できるものが、部分一致したindexか、defaultになってしまって全体が一致しているかどうかがわかりません。
具体的には、
"indexahtm"
こういうものはヒットしてほしくありません。
全体が一致しているかどうかを判断するには、どうしたら良いでしょうか。
よろしくお願いします。
0778デフォルトの名無しさん
2006/08/03(木) 02:13:06filepath = urlparse.urlparse("http://hoge/index.html")[2]
filename = os.path.split(filepath)[1]
print os.path.splitext(filename)[0]
0779デフォルトの名無しさん
2006/08/03(木) 13:27:16なんだか動きが変だと思って、どうやらスレッドがいいらしいと思いついたときに見れば、その辺がよくわかるURLを下さい。
0780デフォルトの名無しさん
2006/08/03(木) 13:39:09http://www.python.jp/doc/release/lib/module-threading.html
0781デフォルトの名無しさん
2006/08/03(木) 13:40:070782デフォルトの名無しさん
2006/08/03(木) 18:32:30条件1の場合:
c = Class1()
条件2の場合:
c = Class2()
:
条件Nの場合:
c = ClassN()
分岐が多く汎用的でない。
0783デフォルトの名無しさん
2006/08/03(木) 18:36:56クラスもオブジェクトだから変数に突っ込める
あらかじめ判断したときに
C = Class1
とかやっておいて、インスタンスを作るときに
c = C()
とやればよろし
0784デフォルトの名無しさん
2006/08/03(木) 18:41:52うちはポリモーフィズムもどきでやってるよ。
0785デフォルトの名無しさん
2006/08/03(木) 18:43:19条件に規則性があるなら、条件からクラスを返す関数を作ってみるとか。
それか、条件のパラメータの一部をクラスの初期値に入れて分岐とクラスの種類を減らしてみるとか。
0786デフォルトの名無しさん
2006/08/03(木) 18:47:220787デフォルトの名無しさん
2006/08/03(木) 18:53:29あ、どうもです。
イメージしていた方法はモジュールの動的な読み込みのような感じです。
対象がモジュールならば
m = imp.load_module(...)
の後、
m.hoge()
のように使えますが、クラスの場合は当然 AttributeError: なります。
インスタンス生成しなければならないと思うのですが、
ググってもそれらしいサンプルに出会えませんでした(。´Д⊂) ウワァァァン!!
0788デフォルトの名無しさん
2006/08/03(木) 19:43:48実装方法はほとんど同じで、DRYにしたい場合はメタクラス。
0789デフォルトの名無しさん
2006/08/03(木) 20:17:53サンプルに頼っていては,枝葉の部分で躓きまくる。
基本を勉強しれ。
0790デフォルトの名無しさん
2006/08/03(木) 23:40:21みんなどこまで行ったの?
0791デフォルトの名無しさん
2006/08/03(木) 23:54:010792デフォルトの名無しさん
2006/08/04(金) 01:02:21http://www.amazon.co.jp/gp/product/479733665X
http://www.cbook24.com/bm_detail.asp?sku=479733665X
「はじパイより安くて入門用につかえる本」というニーズをこれが埋めてくれるのかも。
0793デフォルトの名無しさん
2006/08/04(金) 02:26:27出版社違いでPythonでもあって驚いた。需要にこたえるところ、あったのね。
0794デフォルトの名無しさん
2006/08/04(金) 02:49:00値段の割りに結構分量がありますね。
「はじパイ」は値段も高いけど、冗長なのが...。
0795デフォルトの名無しさん
2006/08/04(金) 06:43:15Googleで名前をぐぐって一番上に出てくるサイトの人だと妄想しつつ期待。
0796デフォルトの名無しさん
2006/08/04(金) 09:21:01デザパタで言うところの Factory パタンを使うのがいいんジャマイカ?
0797デフォルトの名無しさん
2006/08/04(金) 09:55:34それを思考停止と呼ぶんだよ。
0798デフォルトの名無しさん
2006/08/04(金) 10:28:35それでいいじゃないか。
0799デフォルトの名無しさん
2006/08/04(金) 10:35:34現場を知らない上流は使えねえ。
0800デフォルトの名無しさん
2006/08/04(金) 10:36:540801デフォルトの名無しさん
2006/08/04(金) 10:40:06デザパタでいうところの Proxy パタンですね。
0802デフォルトの名無しさん
2006/08/04(金) 11:52:24みたいなのはないっすか?
0803デフォルトの名無しさん
2006/08/04(金) 12:11:30・Factory
・State/Strategy
・TemplateMethod
・Composite
とりあえずこの4つだけ押さえればいい。残りは全部その応用だから。
0804デフォルトの名無しさん
2006/08/04(金) 12:14:520805デフォルトの名無しさん
2006/08/04(金) 12:28:52応用は、極めて簡潔に書けるか、またはまったく不要になる。
(例えば単純なSingletonなんか要らない)
デザパタを知ると、そのあたりでPythonのありがたみを再認識するのではない
かと。
0806デフォルトの名無しさん
2006/08/04(金) 13:28:04それからパターンの解説書読めば充分。
「なんだ、いつも使ってるこれのことか」ってわかる。
0807デフォルトの名無しさん
2006/08/04(金) 15:36:47そうなんだけど。
ちゃんと書いたほうがわかりやすいので今のところそうやっている。
0808デフォルトの名無しさん
2006/08/04(金) 16:46:220809デフォルトの名無しさん
2006/08/04(金) 16:48:28前者はpythonを/usr/binを置かなきゃいけない
後者は/usr/binにenvが無きゃいけない
0810デフォルトの名無しさん
2006/08/04(金) 17:27:30何がどう思考停止なのか分からんのだが。マジレスきぼんぬ。
0811デフォルトの名無しさん
2006/08/04(金) 17:57:110812デフォルトの名無しさん
2006/08/04(金) 18:13:120813デフォルトの名無しさん
2006/08/04(金) 20:34:290814デフォルトの名無しさん
2006/08/04(金) 21:10:32インデント?
0815デフォルトの名無しさん
2006/08/04(金) 21:29:180816デフォルトの名無しさん
2006/08/04(金) 21:48:560817デフォルトの名無しさん
2006/08/04(金) 21:55:39IBMのdevelopperworksにいろいろ出てる。
古い記事も多いので、それだけ注意。
0818デフォルトの名無しさん
2006/08/04(金) 22:12:470819デフォルトの名無しさん
2006/08/04(金) 23:13:43プログラムを考えれ。
0820デフォルトの名無しさん
2006/08/04(金) 23:29:51ttp://www.amk.ca/talks/2006-02-07/
2.5から標準ライブラリに入るElementTreeのHowTo。
英語だけど図入りで分かりやすいので呼んで見れ。
0821デフォルトの名無しさん
2006/08/04(金) 23:30:520822デフォルトの名無しさん
2006/08/04(金) 23:37:09帰れといわれても、、
そっち方面から来てないからなぁ…
0823デフォルトの名無しさん
2006/08/04(金) 23:37:44"yes"
else:
"no"
'no'
インタプリタでこうなるんだが、これifが値を返してることになるの?
どういう仕組み?
0824デフォルトの名無しさん
2006/08/04(金) 23:38:03ニヤニヤ(・∀・)
0825デフォルトの名無しさん
2006/08/05(土) 00:27:220826デフォルトの名無しさん
2006/08/05(土) 00:35:11if は値を返さない。また、ifは文であって、式じゃない。
ところで単独の式は、それだけで文になれる。値も返す。
この場合"no" という式が、文として実行されて、その値を返している。
念のためだけど、このコードで'no'が画面表示されるのは対話画面だけ。
副作用のない式だから、普通のモジュールの中では何も起こらない。
更に念のためだけど、このif以下のコードを、print や return の引数に
することはできない。これらは式しか引数に取れないから。
0827デフォルトの名無しさん
2006/08/05(土) 00:50:302.4のリリーススケジュールを見ると,そんなかんじかもね。
ttp://www.python.org/dev/peps/pep-0320/
2.5はBetaが3まで出たので,もっと早くRC - Finalと進む
と期待したい
0828デフォルトの名無しさん
2006/08/05(土) 00:52:33ひょっとして、投稿が掲載されるにはサイト管理者の承認手続きとかが必要なの?
0829デフォルトの名無しさん
2006/08/05(土) 01:05:320830デフォルトの名無しさん
2006/08/05(土) 01:07:07alpha 2 2006年4月27日 済
beta 1 2006年6月20日 済
beta 2 2006年7月11日 済
beta 3 2006年8月3日 ←今ここ
rc 1 2006年8月18日 予定
final 2006年9月12日 予定
release 2006年?月??日 (゚Д゚≡゚Д゚)?
0831デフォルトの名無しさん
2006/08/05(土) 07:00:42まともなニュースサイトなら、外部からのタレコミも、裏をとったり、
記事を編集したりするもんじゃない?まったり待ちなされ。
ところで、何を投稿したの?
0832デフォルトの名無しさん
2006/08/05(土) 10:54:41かなり特殊な現象なんだな
節々がlispっぽいからifが値を返したら面白いなと思ったんだけど
print if xxx:みたいな変態的なことさせる訳無いか
ありがとう
0833デフォルトの名無しさん
2006/08/05(土) 12:20:52>>> s = "spam"
>>> s
'spam'
>>> repr(s)
"'spam'"
>>> class Foo:pass
>>> foo = Foo()
>>> repr(foo)
'<__main__.Foo instance at 0x00C15DE0>'
>>> foo
<__main__.Foo instance at 0x00C15DE0>
>>> if True: foo
<__main__.Foo instance at 0x00C15DE0>
http://www.python.jp/doc/release/ref/customization.html
0834デフォルトの名無しさん
2006/08/05(土) 15:55:04そう悲観したものでもない。
Conditional Expression (条件式?)が導入される予定だから。
詳しくは >>639を参照。
0835デフォルトの名無しさん
2006/08/05(土) 16:15:36__getattr__などを使えば、State/Strategyもすごく簡単になる。
Compositeも、変数に型がないから、共通のインターフェースを実装する
必要はなくなる。
同じデザパタでも、Javaとかとは何味も違う。
まあTemplateMethod は、Javaと変わらないけど。
0836デフォルトの名無しさん
2006/08/06(日) 00:21:210837デフォルトの名無しさん
2006/08/06(日) 01:00:230838デフォルトの名無しさん
2006/08/06(日) 02:24:12''.join(map(chr,[0x30,0x31,0x32,0x33]))
こんな風にするしかない?
0839デフォルトの名無しさん
2006/08/06(日) 02:38:250840デフォルトの名無しさん
2006/08/06(日) 02:43:150841デフォルトの名無しさん
2006/08/06(日) 02:54:460842デフォルトの名無しさん
2006/08/06(日) 03:00:100843デフォルトの名無しさん
2006/08/06(日) 03:00:37否定されるということがヒントになる場合もあるし、答えを教えないで質問者に考えさせる
という態度は極めて教育的だと言える
0844デフォルトの名無しさん
2006/08/06(日) 03:01:420845デフォルトの名無しさん
2006/08/06(日) 03:09:47実社会では孤立するだろうね。
そういう人には、能力があっても安くて厳しい仕事ばかり回ってくる。
ワーキングプアまっしぐらかな。
0846デフォルトの名無しさん
2006/08/06(日) 03:12:12それでいいよ
0847デフォルトの名無しさん
2006/08/06(日) 03:19:29劣等感丸出しだなw
0848デフォルトの名無しさん
2006/08/06(日) 03:32:47すごい
漏れにはそんな単純な方法思いつけんわ
0849デフォルトの名無しさん
2006/08/06(日) 03:44:050850デフォルトの名無しさん
2006/08/06(日) 04:37:240851デフォルトの名無しさん
2006/08/06(日) 09:50:33時間単位だということが発狂しているとおもふ
0852デフォルトの名無しさん
2006/08/06(日) 10:11:16抗うつ剤とか,眠薬飲んでる奴はヤバいよな。
0853デフォルトの名無しさん
2006/08/06(日) 10:17:35『Python Webフレームワーク、第1回: DjangoとPythonを使ってWeb開発を行う』
http://www-06.ibm.com/jp/developerworks/linux/060802/j_l-django.shtml
0854デフォルトの名無しさん
2006/08/06(日) 13:19:13''.join()の引数にイテレータを渡せるとは知らなかった。
0855デフォルトの名無しさん
2006/08/06(日) 17:52:23ちょっといじってみた
0856デフォルトの名無しさん
2006/08/06(日) 19:00:20イテレータなのか? 内包式が展開されたtupleじゃね?
0857デフォルトの名無しさん
2006/08/06(日) 19:17:45>>> type((0))
<type 'int'>
>>> type((0,))
<type 'tuple'>
ついでに
>>> (chr(x) for x in range(0x30, 0x34))
<generator object at 0x00C9A698>
>>> type(chr(x) for x in range(0x30, 0x34))
<type 'generator'>
0858デフォルトの名無しさん
2006/08/06(日) 19:43:42かっこいい(;´Д`)ハァハァ
0859デフォルトの名無しさん
2006/08/06(日) 23:36:15>>> " ".join(iter(["1","2","3"]))
'1 2 3'
イテレータもオッケーみたいだ
0860838
2006/08/07(月) 00:17:46俺もそう思うんだけど、代案が思いつかないんだよね。
やりたいのはmd5に渡すために文字列化したいだけなんだけど、
なんかすっきりしない。
0861デフォルトの名無しさん
2006/08/07(月) 00:28:470862838
2006/08/07(月) 01:15:56a=range(0x30,0x34)
struct.pack("%db"%len(a),*a)
までは書けたけど、あまり見やすくなった気はしないな。
やっぱり1文字ずつ生成して繋げるのが自然なのかな?
0863デフォルトの名無しさん
2006/08/07(月) 02:41:320864デフォルトの名無しさん
2006/08/07(月) 02:43:54>>> import md5
>>> import array
>>> md5.new(array.array("B", range(10))).hexdigest()
'c56bd5480f6e5413cb62a0ad9666613a'
>>> md5.new("".join(chr(i) for i in range(10))).hexdigest()
'c56bd5480f6e5413cb62a0ad9666613a'
0866838
2006/08/07(月) 03:06:02必要性って言うか、動的に生成するすっきりしたやり方が無いかと探していただけだし。
ちなみに文字列テーブルで好きな範囲で切り出すって具体的にはどうするの?
0867デフォルトの名無しさん
2006/08/07(月) 04:18:23やはり動的に生成する必要はないんか・・・
0868デフォルトの名無しさん
2006/08/07(月) 05:36:090870デフォルトの名無しさん
2006/08/07(月) 18:04:48'0123'
>>> array.array("B", [0x30,0x31,0x32,0x33]).tostring()
'0123'
今まで上のやつしか知らなかったけど
下の書き方のほうが有利そう
今度機会があるとき使わせていただきます
0871デフォルトの名無しさん
2006/08/07(月) 20:58:32arrayっていまさら何って感じ・・・
統一感がない・・・
0872デフォルトの名無しさん
2006/08/07(月) 22:06:370873デフォルトの名無しさん
2006/08/07(月) 22:17:57>>871
__str__()で勘弁してよ。
0874デフォルトの名無しさん
2006/08/07(月) 22:39:220875デフォルトの名無しさん
2006/08/07(月) 22:45:520876デフォルトの名無しさん
2006/08/07(月) 22:47:10ああ、物足りなかったんで付け足しといた
0877デフォルトの名無しさん
2006/08/07(月) 22:47:38乙です
0878デフォルトの名無しさん
2006/08/07(月) 22:55:44まるで意味が違うし
0879デフォルトの名無しさん
2006/08/07(月) 23:12:40>>878
ゴメン,OSConが終わったばかりで,疲れてるんだよ。
でも,リストをどのように文字列に変換するかは実装依存だと思うよ。
それくらい各自で実装してよ。
0880デフォルトの名無しさん
2006/08/08(火) 10:05:29名前くらい覚えてください
0881デフォルトの名無しさん
2006/08/08(火) 10:30:37「日本Pythonユーザ会」のほうで配っているPythonでも同様にできますか?
0882デフォルトの名無しさん
2006/08/08(火) 12:18:210883デフォルトの名無しさん
2006/08/08(火) 13:03:30「日本Pythonユーザ会」の配布のは使ってないんで、ENTHOUGHT EDITHIONので
試してみた。
http://code.enthought.com/enthon/
.pys は関連付けされていない。ActiveScriptとしては機能しない。
だけどwin32comというモジュールがあって、COMコンポーネントを扱うことが
できるから、ActiveScriptでやっているたいていの作業は標準のPythonでもで
きると思う。
IEやASPの中でPythonを動かすのは無理だけど。
0884デフォルトの名無しさん
2006/08/08(火) 13:16:57新たに Python for Windows extensions インストールすれば使える
http://sourceforge.net/projects/pywin32/
0885881
2006/08/08(火) 13:49:26>>884
どうもありがとう。
公式のインストーラでインストール後、>>884のエクステンションいれて、日本語コーデックいれてみました。
そのままでは、「.pys」が関連付けられてなかったので、以下のサイトを参考にして関連付け。
http://sh1.2-d.jp/b/python/2005-08-06-16-16.html
ばっちり動いてます。
どうもありがとうでした。
0886デフォルトの名無しさん
2006/08/08(火) 15:41:41もらしてよかですか?
0887デフォルトの名無しさん
2006/08/08(火) 15:42:450888デフォルトの名無しさん
2006/08/08(火) 18:06:05我慢するとからだに悪いよ。
0889デフォルトの名無しさん
2006/08/08(火) 19:22:09どこへの誤爆かきになるな。。
拡張系ですか
0890デフォルトの名無しさん
2006/08/08(火) 19:46:180891デフォルトの名無しさん
2006/08/08(火) 20:55:13エッチな事だと勘違いしていました。
0892デフォルトの名無しさん
2006/08/09(水) 05:45:530893え、そういう話じゃない?
2006/08/09(水) 10:27:550894デフォルトの名無しさん
2006/08/09(水) 10:35:240895デフォルトの名無しさん
2006/08/09(水) 13:33:320896デフォルトの名無しさん
2006/08/09(水) 14:43:140897デフォルトの名無しさん
2006/08/09(水) 14:46:00Pythonはインタープリタ言語なのでこれ以上はスレ違いです。
0898デフォルトの名無しさん
2006/08/09(水) 15:12:05本番はバーチャルマシンを使います
いきなりは嫌われますよ
0899デフォルトの名無しさん
2006/08/09(水) 16:15:31なんか悲しい
0900デフォルトの名無しさん
2006/08/09(水) 16:34:47| |
│ _ ∩ |
│ ( ゚∀゚)彡 おっPy! |
│ ( ⊂彡 おっPy! .|
│ | | |
│ し ⌒J |
│ |
│ Now Oppaing. .... .|
│ |
│ そのままぱいthonでお待ちください。 |
| |
└──────────────────┘
0901デフォルトの名無しさん
2006/08/09(水) 20:32:57http://tokuhirom.dnsalias.org/~tokuhirom/planetpythonjapan/
0902デフォルトの名無しさん
2006/08/09(水) 21:05:38ActivePython + MySQL でスタンドアロンDB操作したいのですが、
ActivePythonではモジュール(MySQLdb)追加インストールはどうやって行うんですか?
ActivePerlならばppmをつかって行えるのですが・・・
0903デフォルトの名無しさん
2006/08/09(水) 21:13:21http://sourceforge.net/project/showfiles.php?group_id=22307
ここの
MySQL-python.exe-1.2.1_p2.win32-py2.4.exe
はダメ?
0904デフォルトの名無しさん
2006/08/09(水) 21:18:29ありがとうございます。インストールできました。
対話モードでimportできたので、これでいけそうです。
0905デフォルトの名無しさん
2006/08/09(水) 22:12:41PythonMatrixのひとがPlanet〜のかわりになるようなのを用意してくれてたけど、
GoogleReaderはいまいちだなぁ。
PlanetPythonJapanみたいにずらっと並べて見れるRSS閲覧サービスってないすか。
0906デフォルトの名無しさん
2006/08/09(水) 23:38:180907デフォルトの名無しさん
2006/08/09(水) 23:48:32MySQLdbは違うのかな。
http://nagosui.org/Nagosui/Misc/Turbogears/turbogears-install-on-windows
http://peak.telecommunity.com/DevCenter/EasyInstall
0908デフォルトの名無しさん
2006/08/10(木) 00:05:350909デフォルトの名無しさん
2006/08/10(木) 00:28:260910デフォルトの名無しさん
2006/08/10(木) 01:00:53はじPyのP105
>>> 'SPAM'.join(['eggs', 'sausage', 'ham', 'toast'])
'eggsSPAMsausageSPAMhamSPAMtoast'
となるんだけど,なんでなのかわかりません.
「joinはドット. の前に指定された文字列と連結する機能がある.」
と書かれているのですが,なんで最後のtoastの後にはSPAMが連結されてないの?
0911デフォルトの名無しさん
2006/08/10(木) 01:06:12そういう仕様だから
0912デフォルトの名無しさん
2006/08/10(木) 01:08:03説明文がよくないかも。
正しくは「joinはドット. の前に指定された文字列*で各要素を*連結する機能がある.」
つまりシーケンスの各要素をつなげるんだけど、そのときに間に文字列を挟むことができますよ、
そしてその文字列はドットの前に指定された文字列ですよ、ということ。
0913デフォルトの名無しさん
2006/08/10(木) 01:08:18文章による説明が自然言語の限界で不完全なだけだから気にするな
0914デフォルトの名無しさん
2006/08/10(木) 01:11:21Cを学んだ人なら、配列の要素を表示する処理を作ったら、
1, 2, 3, 4, 5, 6,
と最後にいらない 「,」 が入って萎えるけど、これに対処するためだけに
処理をいじるのめんどくせー。 と思ったことが一度はあるはずだ。
0915デフォルトの名無しさん
2006/08/10(木) 01:14:420916デフォルトの名無しさん
2006/08/10(木) 01:17:17リストの機能ではなく文字列の機能だから
0917デフォルトの名無しさん
2006/08/10(木) 08:03:50むしろ、他の言語では、どれもリスト側のメソッドとして実装されてるよね。
0918デフォルトの名無しさん
2006/08/10(木) 08:47:05PythonとPerlのsplit、joinその他を比較してるページを見つけたんで貼っとく。
ttp://www.harukaze.net/~haruka/map.html
0919デフォルトの名無しさん
2006/08/10(木) 08:59:57自分もそれ思った。str と list に両方実装しといてもらうのが一番便利な気がする。
あ、でも、pythonだから2通りできちゃまずいのかなぁ・・・
0920デフォルトの名無しさん
2006/08/10(木) 10:47:00愚かな一貫性は小人物に憑いたゴブリンである。
0921デフォルトの名無しさん
2006/08/10(木) 11:27:29明らかに「文字列専用」の機能がリストの中に存在するのは気持ち悪いよ
0922デフォルトの名無しさん
2006/08/10(木) 11:43:40joinが文字列専用だってこと?
どう考えてもjoinはリストやシーケンス専用の機能としか思えないのだが。
0923デフォルトの名無しさん
2006/08/10(木) 11:45:22明らかに文字列操作のカテゴリに属する機能だと思うけど
聞く耳持たないなら議論しないけどさw
0924デフォルトの名無しさん
2006/08/10(木) 11:54:23・joinはリストを連結するんだからリストの機能だろ!
・他の言語と違くて気持ちわりー!
・あの子とjoinしたいです><
joinは文字列の機能だよ派の意見:
・joinは文字列で連結して文字列を作るんだから、どうみても文字列の機能です。
・他の言語との一貫性を求めるなら他の言語使えやヴォケ!
・あいつとjoinしたい アッー!!
0925デフォルトの名無しさん
2006/08/10(木) 12:34:320926デフォルトの名無しさん
2006/08/10(木) 12:37:42(´∀`)
0927デフォルトの名無しさん
2006/08/10(木) 13:14:03','.split('a,b,c')
にするべきじゃないのか?
0928デフォルトの名無しさん
2006/08/10(木) 13:23:07joinが受け取れるのは、リストだけではない。文字列だけを要素とするものだっ
たら、タプル、リスト、イテレータ、ジェネレータ、なんでもOKだ。
>>> def get_hoge():
... for i in range(10):
... yield "hoge" + str(i)
...
>>> "-".join(get_hoge())
'hoge0-hoge1-hoge2-hoge3-hoge4-hoge5-hoge6-hoge7-hoge8-hoge9'
そういうものすべてにjoinを実装するのではなく、何でも受け取れる
万能のjoinを文字列のメソッドとして用意するのは、一つの見識だと思う。
まあこういう万能関数が必要になるのは、Pythonのコレクション型が混乱して
いるせいだとも思うが。
0929デフォルトの名無しさん
2006/08/10(木) 13:24:37どっちにしても文字列のメソッドだから、そちらは正直どっちでも構わん
リストのメソッドに文字列結合機能があるのは気持ち悪いという話だから
0930デフォルトの名無しさん
2006/08/10(木) 13:28:01string.join(['a', 'b', 'c']) → 'abc'
string.join(['a', 'b', 'c'], '+') → 'a+b+c'
みたいな
まぁ単に「決め」の話だから、「これがPythonだ、おまえら慣れろ」で別に構わんけどw
0931デフォルトの名無しさん
2006/08/10(木) 13:30:53>>> '-'.join([1, "2", "3"])
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: sequence item 0: expected string, int found
>>> '-'.join([x.__str__() for x in [1, "2", "3"]])
'1-2-3'
>>> '-'.join(map(str, [1, "2", "3"]))
'1-2-3'
デフォルトで__str__を呼ぶぐらいしてくれてもいいと思うが、そうなってい
ないのは、やっぱり重くなるからか?
0932デフォルトの名無しさん
2006/08/10(木) 13:33:10> デフォルトで__str__を呼ぶぐらいしてくれてもいいと思うが、そ
個人的にはエラーになってくれるほうが気持ちいいな
数字から文字列のような型変換は原則として明示するべきだと思う
0933デフォルトの名無しさん
2006/08/10(木) 13:53:47「明らかに」を使うあたり、思考停止しているとしか考えられない。
0934デフォルトの名無しさん
2006/08/10(木) 13:55:420935デフォルトの名無しさん
2006/08/10(木) 14:11:06明らかに煽りたいだけに違いない。
0936デフォルトの名無しさん
2006/08/10(木) 14:31:04その書き方で、動くんだけど。
知らなかったの?
0937デフォルトの名無しさん
2006/08/10(木) 15:12:580938デフォルトの名無しさん
2006/08/10(木) 15:24:45疑問はもっと良く分かる
0939デフォルトの名無しさん
2006/08/10(木) 15:28:55stringモジュールのjoin関数のこと?
import string
string.join(["1","2","3"])
'1 2 3'
1.6でunicode文字列が導入される前に使われていた関数だね。
unicode文字列を導入するにあたり
stringモジュールにufind()とかujoin()とか作るのもちょっとね
ということで文字列メソッドが導入されたわけだが
0940デフォルトの名無しさん
2006/08/10(木) 15:30:540941デフォルトの名無しさん
2006/08/10(木) 16:29:09PHPではjoin()は配列関数に区分されている。
RubyではArrayクラスのメソッド。
JavaScriptでもArrayのメソッドだな。
join()が文字列の関数という意見は初めて見た。
本気で言ってるのか、ただのPython厨か。
つうか、シーケンスにまとめてメソッドを定義できないの?
0942デフォルトの名無しさん
2006/08/10(木) 16:32:140943デフォルトの名無しさん
2006/08/10(木) 16:57:090944デフォルトの名無しさん
2006/08/10(木) 17:10:38PHP、Ruby、JavaScript厨乙ww
普通に考れば文字列操作というカテゴリの操作だろ
シーケンス一般に文字列という特殊なシーケンスに特化した操作を含めるのは美しくない
もちろん文字列のメソッドとして(名前も含めて)相応しいかどうかはまた別の話だが
個人的にはstringモジュールの関数を呼ぶほうを選ぶかな
0945デフォルトの名無しさん
2006/08/10(木) 17:46:46Rubyに詳しいみたいだから聞くけれど、
>>928みたいに、イテレータの戻り値をJOINするのは、Rubyではどうやるの?
0946デフォルトの名無しさん
2006/08/10(木) 18:04:54Pythonにも詳しくないみたいだから聞くけれど、
"イテレータの戻り値"ってナニ?
callableなイテレータってどんなイテレータだ?
0947デフォルトの名無しさん
2006/08/10(木) 18:08:52next()の戻り値のことだよ。
どうも通じているのにわざと聞いているような気がするけど。
0948デフォルトの名無しさん
2006/08/10(木) 18:14:110949デフォルトの名無しさん
2006/08/10(木) 18:20:340950デフォルトの名無しさん
2006/08/10(木) 18:33:470951デフォルトの名無しさん
2006/08/10(木) 19:05:520952デフォルトの名無しさん
2006/08/10(木) 19:20:54>>941ではないけど、普通にget_hoge().join('-')
0953デフォルトの名無しさん
2006/08/10(木) 20:02:46Pythonのは外部イテレータでRubyのは内部イテレータ。だからそもそも
joinにイテレータを渡すことはRubyではできない。
http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%86%E3%83%AC%E3%83%BC%E3%82%BF
0954デフォルトの名無しさん
2006/08/10(木) 20:09:080955953
2006/08/10(木) 20:14:10joinメソッドは持ってないみたい。
0956945
2006/08/10(木) 20:44:49おお、ありがとう!おかげですっきりしたよ。
>>952を見て、Rubyが外部イテレータをjoinする機能を持っているのかと思っ
て、調べまくっちゃったよ。これはArrayの間違いだよなあ。
Rubyだったら、イテレータを諦めて、Arrayを使うしかないよな。
irb(main):081:0> def get_hoge
irb(main):082:1> a = []
irb(main):083:1> 10.times {|i| a.push("hoge" + i.to_s)}
irb(main):084:1> a
irb(main):085:1> end
=> nil
irb(main):087:0> get_hoge.join("-")
=> "hoge0-hoge1-hoge2-hoge3-hoge4-hoge5-hoge6-hoge7-hoge8-hoge9"
0957デフォルトの名無しさん
2006/08/10(木) 20:51:30.join('-') <-- かわいい
0958デフォルトの名無しさん
2006/08/10(木) 20:53:36.join("-") <-- キモい
0959デフォルトの名無しさん
2006/08/10(木) 21:29:310960デフォルトの名無しさん
2006/08/10(木) 21:36:320961デフォルトの名無しさん
2006/08/10(木) 21:41:470962デフォルトの名無しさん
2006/08/10(木) 22:10:240963デフォルトの名無しさん
2006/08/10(木) 22:17:300964デフォルトの名無しさん
2006/08/10(木) 22:21:57>普通に考れば文字列操作というカテゴリの操作だろ
だからその根拠はなによ?おまえのいう普通とやらが何の根拠もないんだけど。
なんの説明もなしに「普通に考えれば文字列操作」ってばか?
ここで話題にしているjoin()は、「リストの要素を連結する」という動作だぞ。
そのオプションとして、間に挟む文字列があってもいいというだけ。
list.join()でもlist.join("str")でもlist.join(123)でもいいはず。
それをなぜ"str".join(list)のように文字列だけに限定するのかわからん。
0965デフォルトの名無しさん
2006/08/10(木) 22:22:350966デフォルトの名無しさん
2006/08/10(木) 22:32:08俺もw
Ruby勉強すると何かいいことある?(と煽ってみるw)
0967デフォルトの名無しさん
2006/08/10(木) 22:35:52便利 > 合理的
0968デフォルトの名無しさん
2006/08/10(木) 22:37:39普通に考えればそう、という奴相手に、何を言っても無駄だって。
0969デフォルトの名無しさん
2006/08/10(木) 22:41:06個人的にはどちらの意見もそれなりに納得できる
正直なぜと聞かれても困るが
0970デフォルトの名無しさん
2006/08/10(木) 22:45:22python
'SPAM'.join(['eggs', 'sausage', 'ham', 'toast'])
ruby
['eggs', 'sausage', 'ham', 'toast'].join('SPAM')
と、思いっきり反対を行ってるわけで・・・
そう簡単に、「明らかにどっちがどう」とかいえない気が、・・・
0971デフォルトの名無しさん
2006/08/10(木) 22:47:52他でやれ他で
0972デフォルトの名無しさん
2006/08/10(木) 22:48:040973デフォルトの名無しさん
2006/08/10(木) 22:50:440974デフォルトの名無しさん
2006/08/10(木) 22:52:15obj = "str".join(List)
とやったばあい、直感的にみて obj は strクラスだろうとおもうわな。
たとえば、Pythonで、Listにjoinがあるとしたら、こんなかんじか?
obj = List.join("str")
とやったばあい、リストのメソッドなのにobjにstrクラスがはいってたら嫌だ。
せめて、入るのは要素にしてほしい。
0975デフォルトの名無しさん
2006/08/10(木) 22:53:07もういいじゃん。
0976デフォルトの名無しさん
2006/08/10(木) 22:54:000977デフォルトの名無しさん
2006/08/10(木) 22:54:290978デフォルトの名無しさん
2006/08/10(木) 22:58:30なるほど、A objのメソッドはA objを返してほしいって感覚があるんですかね。pyhonは
その点rubyはカオスですね。"abcdef"[2] == 99にはチョット引いたw
0979デフォルトの名無しさん
2006/08/10(木) 23:02:32いや、それ普通でしょ
0980デフォルトの名無しさん
2006/08/10(木) 23:05:56こんなんで納得されても
本当にそうなっているメソッドは
全体の何割あるんだろうね
まあ数えたことは無いが
0981デフォルトの名無しさん
2006/08/10(木) 23:08:17python
"abcdef"[2] == "c"
ruby
"abcdef"[2] == 99
高級言語なのにASCIIを知ってることを強要されるの何か違和感を感じる
まあ、?cっていう技があるみたいだけど?って何って感じであまり気持ちよくない気が・・・
0982デフォルトの名無しさん
2006/08/10(木) 23:08:190983デフォルトの名無しさん
2006/08/10(木) 23:10:54join(...)
S.join(sequence) -> string
Return a string which is the concatenation of the strings in the
sequence. The separator between elements is S.
0984デフォルトの名無しさん
2006/08/10(木) 23:12:36何言ってるのかわからん
0985デフォルトの名無しさん
2006/08/10(木) 23:17:480986デフォルトの名無しさん
2006/08/10(木) 23:19:030987デフォルトの名無しさん
2006/08/10(木) 23:20:18ruby叩きたいのなら、rubyスレでどうぞ。
0988デフォルトの名無しさん
2006/08/10(木) 23:20:33http://pc8.2ch.net/test/read.cgi/tech/1155219600/
0989デフォルトの名無しさん
2006/08/10(木) 23:25:23乙
0990デフォルトの名無しさん
2006/08/10(木) 23:28:460991デフォルトの名無しさん
2006/08/10(木) 23:32:490992デフォルトの名無しさん
2006/08/10(木) 23:33:370993デフォルトの名無しさん
2006/08/10(木) 23:43:30デフォッてほどでもないけど、
たとえば、len(s)や、min(s)、max(s)が、メソッドではなく関数で
実装されてるあたりに多少そういう配慮があるような気が・・・
rubyなら普通にs.length、s.size....
でも、いまstrのメソッド細かく見てきたけど、countとかindex系とか
必ずしもすべてというわけではない・・。
python zenみたいなdocumentになんか書いてなかったかなぁ・・・
0994デフォルトの名無しさん
2006/08/10(木) 23:51:18Pythonを最初からやり直そうと,
みんなのPython買おうと思います.
買った人いますか?
0995デフォルトの名無しさん
2006/08/10(木) 23:54:430996デフォルトの名無しさん
2006/08/11(金) 00:02:450997デフォルトの名無しさん
2006/08/11(金) 00:04:53よそはよそ うちはうち!
わがまま言うんじゃありません! by かーちゃん J(`o´)し
0998デフォルトの名無しさん
2006/08/11(金) 00:14:43まとめ乙
0999デフォルトの名無しさん
2006/08/11(金) 00:21:12↓を再利用するのか、もしくは敗北者スレを新しく立てるのか否か。
Python の宿題ここで答えます Part 1
http://pc8.2ch.net/test/read.cgi/tech/1153585095/
1000デフォルトの名無しさん
2006/08/11(金) 00:25:1010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。