Pythonのお勉強 Part16
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/12/14(木) 07:57:54http://www.python.jp/Zope/
http://www.python.jp/doc/release/
http://diveintopython.org/toc/
http://www.python.org/dev/peps/
http://wiki.python.org/moin/
http://python.rdy.jp/
http://www.amazon.co.jp/s/&url=search-alias%3Dstripbooks&field-keywords=Python
http://www.amazon.co.jp/s/&url=search-alias%3Denglish-books&field-keywords=Python
Pythonのお勉強 Part15
http://pc8.2ch.net/test/read.cgi/tech/1163339504/
0002デフォルトの名無しさん
2006/12/14(木) 09:04:010003デフォルトの名無しさん
2006/12/14(木) 11:26:260004デフォルトの名無しさん
2006/12/14(木) 16:48:290005デフォルトの名無しさん
2006/12/14(木) 23:54:01前スレの巫女Pyナースについて一言
0006デフォルトの名無しさん
2006/12/14(木) 23:54:26パイ乙
0007デフォルトの名無しさん
2006/12/15(金) 00:13:44巫女みこナース! 巫女みこナース!
リスト内包 巫女みこナース!!
巫女みこナース! 巫女みこナース!
lambda 一行 巫女みこナース!!
巫女みこナース! 巫女みこナース!
Py本粘着 巫女みこナース!!
巫女みこナース! 巫女みこナース!
初心者(復活) 巫女みこナース!!
巫女みこナース! 巫女みこナース!
print u"文字化け"巫女みこナース!!
巫女みこナース! 巫女みこナース!
メタクラ おっぱい 巫女みこナース!!
巫女みこナース! 巫女みこナース!
巫女みこナース! 巫女みこナース!
巫女みこナース! 巫女みこナース!
巫女みこナース! 巫女みこナース!
最後にもいっちょー、ハイ!
巫女みこナース!
0008デフォルトの名無しさん
2006/12/15(金) 00:14:270009デフォルトの名無しさん
2006/12/15(金) 00:32:59> mod_pythonが使えるレン鯖なら、DjangoのBlogとかがつかえるんじゃね?
実際にmod_pythonなレン鯖ってある?
0010デフォルトの名無しさん
2006/12/15(金) 00:41:31ttp://www.wappy.ne.jp/service/function.html
Googleで検索したらいろいろ出てきたよ。
0011デフォルトの名無しさん
2006/12/15(金) 00:46:56http://moover.jp/archives/7/
http://www.wappy.ne.jp/service/index.html
http://www.venturenow.jp/news/2006/02/10/2120_011042.html
http://internet.impress.co.jp/rs/detail.php?id=208885430002&server_type=share
いくらでも見つかるだろ
0012デフォルトの名無しさん
2006/12/15(金) 00:54:040013デフォルトの名無しさん
2006/12/15(金) 00:56:14自鯖立てたほうがあらゆる意味で良いのは当然。
0014デフォルトの名無しさん
2006/12/15(金) 08:22:14>> 999さん
pyblosxomとdjangoを調べてみます
自鯖も考えてみます
ありがとうございました
0015デフォルトの名無しさん
2006/12/15(金) 09:49:17... class moge:
... class hage:
... class fuge:
... class fuga:
... spam = 42
...
>>> hoge.moge.hage.fuge.fuga.spam
42
>>> s = 'moge.hage.fuge.fuga.spam'
>>> reduce(getattr, s.split('.'), hoge)
42
0016デフォルトの名無しさん
2006/12/15(金) 10:20:410017デフォルトの名無しさん
2006/12/15(金) 10:23:270018デフォルトの名無しさん
2006/12/15(金) 12:39:120019デフォルトの名無しさん
2006/12/15(金) 12:40:38なにこのラインナップ(w
作者と同じで読者もアニオタか(w
0020デフォルトの名無しさん
2006/12/15(金) 14:03:540021デフォルトの名無しさん
2006/12/15(金) 15:15:19>>>class oOo:
... def __init__(self,n):
... self.oOo = 42 if not n else oOo(n-1)
...
>>>s = oOo(8)
>>>reduce(getattr,['oOo']*9,s)
42
0022デフォルトの名無しさん
2006/12/15(金) 16:50:12ttp://www.flatz.jp/articles/2006/12/14/python-%E7%A7%81%E3%81%AEpython%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AEq-a
0023デフォルトの名無しさん
2006/12/15(金) 16:54:39どう見てもセックル(左下
0024デフォルトの名無しさん
2006/12/15(金) 17:01:12CGIなどの知識を必要とする最後の章は読み飛ばしてしまったのですが、
Dive Into Pythonも読むのに英語の問題以外で前提とする知識はありますか?
0025デフォルトの名無しさん
2006/12/15(金) 17:19:570026デフォルトの名無しさん
2006/12/15(金) 17:44:020027デフォルトの名無しさん
2006/12/15(金) 17:52:18ttp://oshiete1.goo.ne.jp/kotaeru.php3?qid=1884125
0028デフォルトの名無しさん
2006/12/15(金) 17:58:25正規表現、HTML、XML、HTTP、SOAPの章があるけど、同様に読み飛ばせば
よいと思う。
あと、読み始めてたら判ると思うが、機能を説明するためにC、Java、Perl、
VBScriptと比較してたりするので、いずれかの言語を知っていると読みやすいと
思うが、初めてのPythonの前半を読んでる人なら問題なく読めると思うよ。
Dive Into Pythonをざっと読んで、Programming Python 3rd Editionか
Python Referenceの必要な個所をじっくり読むのがよいと思う。
002928
2006/12/15(金) 18:00:01自分もいまDive Into PythonとProgramming Python 3rd Editionを
読んでるところなんで…。
0030デフォルトの名無しさん
2006/12/15(金) 18:21:250031デフォルトの名無しさん
2006/12/15(金) 20:21:340032デフォルトの名無しさん
2006/12/15(金) 21:40:14003316
2006/12/15(金) 21:45:14>>17
まじかよw
既に3から5の頭まで読んだんだが。
英語は苦にならないけど、ちょっと内容検索するのに単語出てこなくて手間取った程度の問題なんだよ。
0034デフォルトの名無しさん
2006/12/15(金) 21:52:27ただし read.cgi は利用しないこと。(ヒント:/tech/1166050674.dat)
> tateyomi.py http://pc8.2ch.net/test/read.cgi/tech/1166050674/28
正
よ
あ
V
思
D
P
0035デフォルトの名無しさん
2006/12/15(金) 21:54:16誤:/tech/1166050674.dat
正:/tech/dat/1166050674.dat
0036デフォルトの名無しさん
2006/12/15(金) 22:17:24>オブジェクト指向プログラムである為、コードの再利用がしやすい
Pythonの前に日本語の勉強からした方がいいかと。
がんばってくだちい。
0037デフォルトの名無しさん
2006/12/16(土) 00:02:53先生! いまさらながらつくってみますた
# tateyomi.py
import re
import sys
import urllib
url_parts = sys.argv[1].split('/')
host, test, cgi, category, dat_no, res_no = url_parts[2:8]
dat_url = 'http://%s/%s/dat/%s.dat' ;% (host, category, dat_no)
lines = urllib.urlopen(dat_url).readlines()
body = lines[int(res_no) - 1].split(' <> ')[1].decode('sjis')
body = re.sub(r'<.*?>.*?</.*?>', '', body)
for line in body.split('<br> '):
print line[0]
Python使い出してから日が浅いので、誰か添削してくれるとウレシス
0038デフォルトの名無しさん
2006/12/16(土) 02:42:10(ここにはテストを書いたけど省略)
import re, sys, urllib
url_pattern = re.compile('http://(?P<host>[^/]*)/test/read.cgi/(?P<category>[^/]*)/(?P<dat_no>[^/]*)/(?P<res_no>.*)')
dat_url_pattern = 'http://%(host)s/%(category)s/dat/%(dat_no)s.dat'
def do_tateyomi(url, index=0):
captured = url_pattern.match(url).groupdict()
dat_url = dat_url_pattern %(captured)
line = urllib.urlopen(dat_url).readlines()[int(captured['res_no'])-1]
body = re.sub(r'<.*?>.*?</.*?>', '', line.split(' <> ')[1].decode('shift_jis'))
return '¥n'.join([line[index] for line in body.split('<br> ')])
def _test():
import doctest, tateyomi
doctest.testmod()
if __name__=="__main__":
if len(sys.argv)<2:
_test()
sys.exit()
print do_tateyomi(sys.argv[1])
0039デフォルトの名無しさん
2006/12/16(土) 02:43:50# coding: euc-jp
"""
>>> print do_tateyomi('http://pc8.2ch.net/test/read.cgi/tech/1166050674/28').encode('euc-jp')
<BLANKLINE>
正
よ
あ
V
思
<BLANKLINE>
D
P
>>> test_url = 'http://pc8.2ch.net/test/read.cgi/tech/1166050674/28'
>>> expected = {'category': 'tech', 'host': 'pc8.2ch.net', 'dat_no': '1166050674', 'res_no': '28'}
>>> captured = url_pattern.match(test_url).groupdict()
>>> captured == expected
True
>>> dat_url_pattern %(captured)
'http://pc8.2ch.net/tech/dat/1166050674.dat'
"""
0040デフォルトの名無しさん
2006/12/16(土) 04:19:070041デフォルトの名無しさん
2006/12/16(土) 04:26:360042デフォルトの名無しさん
2006/12/16(土) 08:37:49ご丁寧にありがとう
004337
2006/12/16(土) 08:42:42thx! 勝手に参考にさせてもらいます
モジュールとして使えるようにしてあるとことか、doctestしてるのもためになったけど、
特に(?P<name>...)に'%(name)s' % {'name': 'key' }、groupdictみたいな機能が
あるって知らなかったので、これから勉強してみます
0044デフォルトの名無しさん
2006/12/17(日) 01:23:46len( "hogehoge" )って関数を呼びたい場合、どうすればいいですか?
0045デフォルトの名無しさん
2006/12/17(日) 01:37:19こういう使い方をしないように気をつけるのがPythonic。
0046デフォルトの名無しさん
2006/12/17(日) 02:25:440047デフォルトの名無しさん
2006/12/17(日) 02:35:13Python 3000ではそうなるのかな。
0048デフォルトの名無しさん
2006/12/17(日) 02:36:44>>> len("hogehoge")
8
>>> len = 88
>>> len("hogehoge")
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: 'int' object is not callable
>>> length = __builtins__.len
>>> length("hogehoge")
8
できた。
004944
2006/12/17(日) 04:03:29参考にします
0050デフォルトの名無しさん
2006/12/17(日) 09:46:50当たり前のことを当たり前に気をつけることを開発者に求める
これがPythonic
0051デフォルトの名無しさん
2006/12/17(日) 11:26:29len という変数を使うことに拘る意図がわからん
0052デフォルトの名無しさん
2006/12/17(日) 12:42:20使命感にでも駆られているかのように。あるいは催眠術のたぐいか。
0053デフォルトの名無しさん
2006/12/17(日) 12:47:55File "<stdin>", line 1
SyntaxError: not a chance
ワロス(www
0054デフォルトの名無しさん
2006/12/17(日) 13:04:30YouTubeとかGoogleとかMicrosoftとか,無理してPython使いすぎだよね
Googleなんて作者タソ雇うなんて無理しすぎ
0055デフォルトの名無しさん
2006/12/17(日) 13:51:50してるのは藻前だろ(wwww
0056デフォルトの名無しさん
2006/12/17(日) 14:00:51そこで「俺はこう使ってる。この用途においてPythonはこう便利」っていう体験を語れず、
状況に応じて何だって使いこなす最先端の人間達の例を曖昧に掬い取るしかできない言語が
Pythonなんだねえ。
誰々も使ってる、何処何処も使ってる、なんてレベルで擁護が終わるのって泣けるよね。
PやRとそこが段違いだよね。
0057デフォルトの名無しさん
2006/12/17(日) 14:02:170058デフォルトの名無しさん
2006/12/17(日) 14:03:51>PやRとそこが段違いだよね。
Python使いは成熟しているんだと思う。
PやRを使っている厨房とは違って、人間的に大人なんだよ。
0059デフォルトの名無しさん
2006/12/17(日) 14:04:55http://pc8.2ch.net/test/read.cgi/tech/1099804004/
0060デフォルトの名無しさん
2006/12/17(日) 14:10:01でもすぐ人格批判に移行するよね
0061デフォルトの名無しさん
2006/12/17(日) 14:12:10>誰々も使ってる、何処何処も使ってる、なんてレベルで擁護が終わるのって泣けるよね。
プログラミング言語に「養護」という言葉が出てくる理由がわからないなぁ.
俺は便利に使っている.
世界的に実績がある.
そして,オマエには便利さが分からない.
これがすべてだろ.
0062デフォルトの名無しさん
2006/12/17(日) 14:13:40あ、ごめん。
君自身が「PやRを使っている厨房」だったんだね(www
名指しで君の人格をおとしめてしまってごめんなさい(wwwwwwwwwwwwwwwwwwww
0063デフォルトの名無しさん
2006/12/17(日) 14:14:31とりあえずメタクラスが便利だから使ってみるといいと思うよ
0064デフォルトの名無しさん
2006/12/17(日) 14:18:15だから、自分がいいと思ってるから使ってるって言ってるだろ(wwww
何がいいのか語るものは持っているが、どうせ何言っても捻じ曲げられるから
しない。
0065デフォルトの名無しさん
2006/12/17(日) 14:24:02返ってくる反応がことごとくその裏付けになるのが面白い。
言語の便利さを疑えば「どう便利なのかが返ってこない」ことで疑惑はより強まり、
人格を疑えば「草がいっぱい生えた」レスが返ってきて疑惑が確定する。
速攻で自分の首を絞めるのがPython流?
0066デフォルトの名無しさん
2006/12/17(日) 14:26:48spam!spam!spam!spam!spam!spam!spam!spam!
0067デフォルトの名無しさん
2006/12/17(日) 14:43:25新たな発見があって安らぎを感じることができるかも知れない
まあ95%無理だろうけど。センスなさそうだし。
0068デフォルトの名無しさん
2006/12/17(日) 14:53:33Rubyは知らんけど、自分が使っててPerlよりPythonが勝ってると思うひとつは配列構造の柔軟さだ。
UserData = {('User1','Pass1'): 'User 1', ('User2','Pass2'): 'User 2'}
print UserData[('User1','Pass1')]
これと同様のスクリプトをPerlで書くとどうなる?
0069デフォルトの名無しさん
2006/12/17(日) 15:13:04自分もPython を使い始めてけっこう経ったので、Perl のことは
かなり忘れてしまったけれど、
そういう部分でPerl へ勝負を挑んでも、リファレンス使えば
Perl でもあっさりおなじように出来たんじゃない?
(たぶん、Python が常にリファレンスを使用してるというだけでしょ)
自分としては、それよりも、Perl がOOP への対応に関して作戦ミスを
したなぁと思う。
OOP を導入する際、既存の文法へ最小限の命令しか加えないと
いう方針を採っため、めちゃくちゃOOP が難しいものになってしまった。
あのとき、大胆に新たな命令セットを導入すれば、
シンプルで明快な形でOOP できるようにすることも可能だったろうに。
そうすれば、僕がPython を使おうと思うこともなかったかもなぁ。
0070デフォルトの名無しさん
2006/12/17(日) 15:23:24好き嫌いというか道具なんだからいくつ使えたって困らないし
0071デフォルトの名無しさん
2006/12/17(日) 15:26:42> そういう部分でPerl へ勝負を挑んでも、リファレンス使えば
> Perl でもあっさりおなじように出来たんじゃない?
>
> (たぶん、Python が常にリファレンスを使用してるというだけでしょ)
そこが微妙に違うところで、
確かに>>68の辞書UserDataを作るだけなら、Perlのリファレンスを知ってれば簡単に出来る。
しかし、その辞書(Perlで言うと連想配列)のキーを使う場合には
Perlだと連想配列を作った時と同じリファレンスでないとキーとして使えないんですよ。
だから、Perlで単純に
$UserData[['User1','Pass1']]
としてもPythonみたいに値が得られないんです。
0072デフォルトの名無しさん
2006/12/17(日) 15:37:26『続・初めてのPerl』読んでリファレンス周りで挫折した。あれは悲しかった・・・
Pythonだと1 < a < 100みたいに書けたりするところも好き
0073デフォルトの名無しさん
2006/12/17(日) 15:48:27スクリプトは書き捨てだから自分だけわかればいいけど
0074デフォルトの名無しさん
2006/12/17(日) 15:54:49Perl で本当に同じことをしようと思ったら
$UserData{ 'User1' . "\0" . 'Pass1' }
みたいに、各キーの「値」を合成するようなことをしなくちゃいけないってことだよね。これは、アッサリとは言いにくい。(連結文字は、各キーに含まれていないことを確認するとか、機械的にやできん)
リファレンスだと、アドレスを区別するだけだから、同じキー内容だけど、別物の場合、違うモノ扱いになっちゃう。
007569
2006/12/17(日) 15:58:24うーん、
ハッシュ(連想配列)のリファレンスの話?
配列のリファレンスではダメなの?
リファレンスっていっても、
ハッシュ(連想配列)でなくてもリファレンスできるわけだから。
配列のリファレンスの場合のデリファレンスは、
なんたらかんたら [x][y][z]
の形式(x, y, z はそれぞれ添え字)で、3次配列でも100次配列でも
望みの場所のものをどんぴしゃで引き出せたはずだけど。
すでにPerl をインストールすらしてない身で、
あれこれいうのも辛いところながらw
0076デフォルトの名無しさん
2006/12/17(日) 16:20:13あえて不便の道を歩んでいるように見える。
Ruby は Perl の機能を全て「分解」して、
オブジェクト指向の思想の元に「再構築」してる
(構築前後で 1:1 に対応してる)。
だから、Perl で出来たことは Ruby で出来る。
これは正しいやり方の一つだ。
ただ、Perl のゴチャゴチャさを継承してしまっているのも
否めないところだ。
Python は、Perl のあり方をそもそも一旦「忘れた」上で、
1から考え直して「あらたに構築」しているっていう印象がある。
だから、Perl ・Ruby で出来ることが、Python ではなかったり
することも多々あるかもしれない。そのかわり、Perl , Ruby では
考えられなかったような点が見直されていて、新鮮だ。
0077デフォルトの名無しさん
2006/12/17(日) 16:20:54書く時便利だけど、読むとなった時、実は見辛かったりする。
それを廃したのは、なかなかの判断だと思う。
そのかわり、既存の代入式が必要とされたシーンでは、
それらを使わなくてもよいように、ライブラリとかの方で工夫して、
見やすくなるように配慮する。これは正解のような気がする。
だから、Python のどこが便利だと言われて、答えられないのは、
当然のような気がする。だって、書く時の便利さを捨ててるんだから。
かわりに書き終わった後のソースのスッキリ感や、
書いた本人でなくとも読み易いという長所はデメリットを
補って余りあると思うよ。多分。
(トリッキーなコードを書かれると、引き継ぐ人がたいへんだからね)
# これ、あくまで個人的な見解なんで、そんなことないぞ、
# 便利だという反論も他の Python 好きに言ってもらいたいなぁ。
0078デフォルトの名無しさん
2006/12/17(日) 16:24:07>Pythonだと1 < a < 100みたいに書けたりするところも好き
をを、知らなかった。サンクス。
0079デフォルトの名無しさん
2006/12/17(日) 16:28:02ああ、そういや当たり前すぎて忘れてたが、
if X=1:
・・・
がエラーになることがうれしいな。
008074
2006/12/17(日) 16:30:26>>74 だけど、誤読していていた。キーにリファレンスを入れるというのと勘違いした
(>>71 もそうじゃないかな)。
言いたいのは、よくある二次元配列のリファレンスによるエミュレーションの、
n 次元ハッシュ版ね。理解した。
# わしの回避策は、awk の二次元配列エミュレーションの真似
ただ、そうすると、一次元部分のハッシュの初期化を最初にしなくちゃいけないというのはあるよね。
その部分の手間が Python では省けるという認識でオケー? >> 各位
0081デフォルトの名無しさん
2006/12/17(日) 16:38:27008269
2006/12/17(日) 16:42:47要するに、Perl においてはPython と違って、
ハッシュ(連想配列)のキーとして、リファレンスは使えない(使いにくい)だろ、
という話ね。
それに対して、Perlでは
配列でもハッシュ(連想配列)でも、リファレンス作れるし、それの組み合わせも
できる。
3次でも100次でも、n次配列の、どの階層のどの要素でも、
狙い通り取ってこれるよと返事したのだが、
少し話がずれていたね。
自分はもうPerler ではないけれど、たぶんPerler なら、
最初の要素をそういう風にしないで、うまくやると思う。
言語の特性はそれぞれ違うし、それにPerl のリファレンスの仕組みは
Python とは特性が違うけど、十分に柔軟なものと思うよ。
自分としては、Perl の問題点は OOP と思うなぁ。
あれさえ解決していてくれたら、Python は使ってなかった…
0083デフォルトの名無しさん
2006/12/17(日) 17:08:26>Python のどこが便利だと言われて、答えられないのは、
>当然のような気がする。だって、書く時の便利さを捨ててるんだから。
Pythonは十分書く時も便利。ジェネレータのおかげで内部イテレータとしても
外部イテレータとしても扱える柔軟さが手に入る。(forループに任せず、next()
で手動でデータを取ってきたいことがある)itertoolsとの組み合わせも便利。
翻ってRubyは内部イテレータしかない。Generatorというライブラリはあるが、
スレッドのトランポリンを使っていて、めちゃくちゃ重い。実用にならない。
Rubyの書きやすさとしてよくメソッドチェーンがあげられるが、Pythonにも
内包表記がありデメリットにはならない。Rubyのブロックは複数行かけるが、
そういうメソッドチェーンはあまり見ないし、そういう場合Pythonだと高階関数
をそばに書いて内包表記に組み込むなどすれば、不便を感じない。
Pythonのスライスはa[1:3]のような表記だが、Rubyにはa[1..3]とa[1...3]が
あり、最後の要素を含む・含まないの違いがある。いつも混乱するので、Python
の方がその点で書きやすい。
0084デフォルトの名無しさん
2006/12/17(日) 17:10:24そんなことないぞ。便利だ。w
つか、おまえ糞なエディタ使ってるとかじゃね?
008571
2006/12/17(日) 17:11:04>>80
私の言いたかった問題点は、>>74でどんぴしゃですよ。
話は変わるけど、
>>82
> 3次でも100次でも、n次配列の、どの階層のどの要素でも、
> 狙い通り取ってこれるよと返事したのだが、
ただし、もとの配列が全てn次でないと困りますね。
極端な例かもしれないけど、
Python
HASH = {('X','Y','Z'):'xyz', ('X','Y'):'xy'}
print HASH[('X','Y','Z')] #xyz
Perl
$HASH['X']['Y']['Z'] ='xyz';
$HASH['X']['Y'] = 'xy';
print $HASH['X']['Y']['Z']; #データ無し
008677
2006/12/17(日) 17:22:15あー、いやいや書く手間自体はいいんだw。
俺個人としては、別にそれ嫌がってるわけじゃないから。
(だから、最近、Python 好きになったわけだし)
短く書けるか、長く書く必要があるかというのを
「不便」とか「書く時不便」とかいう表現をしちゃったのが
まずかったな。
漏れはとしては >>83 のような建設的なアピールが
出た時点で、もう思い残すことはない。
0087デフォルトの名無しさん
2006/12/17(日) 17:23:11Pythonはネイティブスレッドに対応してるからIOみたく重い処理があっても
リスポンス良く組むことが可能だし。
0088デフォルトの名無しさん
2006/12/17(日) 17:27:59バグで落ちたりのろのろ動くと悲しい。
0089デフォルトの名無しさん
2006/12/17(日) 17:32:58教えてくれたひとありがとーぉ
0090デフォルトの名無しさん
2006/12/17(日) 18:16:01あと文字コード関係で悩まなくて済む
0091デフォルトの名無しさん
2006/12/17(日) 18:23:12それは言えるな。
俺は言語的にはLisp系が好き、Pythonは許容範囲、Perlは論外って感じなんだけど、
ライブラリはPythonが充実してるから、実際の仕事ではPythonが一番活躍してる。
0092デフォルトの名無しさん
2006/12/17(日) 19:43:21使う場合はどうしたらよいのか教えて頂けないでしょうか。
例えばperlで置換する場合ですと
s/(\d)\s(\d)/ $1$2/
といったように $数字 でよいと思うのですが、
pythonではgroupというのを使えばよいらしいことは
分かったのですがどうしたらよいのか分からずにいます。
re.sub((\d)\s(\d), ??????, )
誠に恐縮ですがよろしくお願い致します。
0093デフォルトの名無しさん
2006/12/17(日) 19:54:17>>> m=re.search("(\\d)\\s(\\d)"," 2 3 ")
>>> print m.group(0)
2 3
>>> print m.group(1)
2
>>> print m.group(2)
3
置換(sub) では、どうするんかは、知らん
(もしかしたら、できぬ?)
0094デフォルトの名無しさん
2006/12/17(日) 19:59:30>>> re.sub(r"(\d)\s(\d)", r"\1\2", "5 6")
56
とすればいいんだけど、こんなとこで聞くよりマニュアル読んだほうが分かり易いと思う。
009592
2006/12/17(日) 20:09:29本当にどうもありがとうございました。
どうやら自分のにはr"\1\2"の
rがなかったようでそれを入れたところうまくいきました。
ちなみにこの r は何を意味するものなのでしょうか?
私の探し方が悪いのだと思いますがマニュアルでは
みたことがなかったものでして
009692
2006/12/17(日) 20:15:47http://iblinux.rios.co.jp/PyJdoc/lib-j/module-re.html
つまり、"r"を前につけた文字列リテラルにおいてはバックスラッシュは特別な扱いを受けることはありません。従って、r"\n"は"\"と"n"を含む2文字の文字列ですが、"\n"はニューラインを含む1文字の文字列です。
0097デフォルトの名無しさん
2006/12/17(日) 20:18:080098デフォルトの名無しさん
2006/12/17(日) 20:20:390099デフォルトの名無しさん
2006/12/17(日) 22:29:59postscriptで十分だから
0100デフォルトの名無しさん
2006/12/18(月) 00:05:210101デフォルトの名無しさん
2006/12/18(月) 03:07:490102デフォルトの名無しさん
2006/12/18(月) 10:11:040103デフォルトの名無しさん
2006/12/18(月) 10:37:13「エスケープシーケンス」次第。
0104デフォルトの名無しさん
2006/12/18(月) 15:42:510105デフォルトの名無しさん
2006/12/18(月) 16:15:540106デフォルトの名無しさん
2006/12/18(月) 16:20:060107デフォルトの名無しさん
2006/12/18(月) 16:22:070108デフォルトの名無しさん
2006/12/18(月) 16:35:14オライリー本(初めてのPython)からオンライン公式ドキュメントへっていうのが、
王道なんじゃないの?自分もいま必死に勉強中。
あと、こういうのが訳されてれば、もっと嬉しいけど。
An Introduction to Tkinter
http://www.pythonware.com/library/tkinter/introduction/index.htm
Tkinter reference: a GUI for Python
http://infohost.nmt.edu/tcc/help/pubs/tkinter/
(まあ、エキサイト君の出番だなぁ。エキサイトのハナモゲラ語が
自然な日本語に思えてくる今日この頃w)
0109デフォルトの名無しさん
2006/12/18(月) 16:44:41・Pythonのソース読む
・俺言語を実装
だよ。
0110デフォルトの名無しさん
2006/12/18(月) 16:46:54Tkinterにいまさら感を抱くおいらはwxPythonを研究中
0111デフォルトの名無しさん
2006/12/18(月) 16:58:33(゚∀゚)人(゚∀゚)ナカーマ
Tkinterはまともに扱ったことないけど、いろいろGUIツールの評判とか見て
PythonならwxPythonが良さそうだと判断した。
0112デフォルトの名無しさん
2006/12/18(月) 18:54:40漏れ的には
http://www.effbot.org/tkinterbook/
がおすすめ。
0113デフォルトの名無しさん
2006/12/18(月) 19:50:49シェルスクリプトの
trap signal_handler_cmd SIGINT
と同様のことをpythonでやるには、どうすればよいですか?
signal.signal(signal.SIGINT, signal_handler_func)
はダメでした。
0114デフォルトの名無しさん
2006/12/18(月) 19:56:44俺も若かったからさ、昔は後先も考えねえであれこれの(A)に手を
出したもんだ。幼なじみの(B)とも深い仲になっちまってたけど、
俺調子こいててずいぶんひどい仕打ちを繰り返してた。(B)に手前
勝手に使い走りをやらせてる暇で別の(A)をブイブイ言わせたりな。
(B)のやつ、ちょっと不器用なところがあるし、ぶっちゃけ面も古風で
華ってもんがなかった。けどアイツ、うらむってことを知らねえし、
俺が呼び出すといつでも飛んできて甲斐甲斐し世話を焼いてくれた。
なんつーか家庭的ってのかな。ひどいこといっぱい言っちまった気が
するけど、(B)はじっと耐えてた。俺が安っぽい(A)ばっか引っ掛けて
それなりに痛い目にあってヘコんで帰ってきても、アイツはいつも
そっと寄り添ってくれた。俺もなんだかんだ言って結局(B)のところに
戻って来ちまうんだよなあ。俺、アイツの気持ちにとっくに気付いて
たのにいいように利用してた。最低だよなあ。まじ最低。逝ってよし
つーか。やっぱあれだ、俺、(B)のこと好きだわ。うん。今すぐ会って
言ってこよ。オマエとやり直したいって。
上記の空欄(A)、(B)に適切な語句を入れなさい。(各3点)
A: GUIツールキット B: Tkinter
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0115デフォルトの名無しさん
2006/12/18(月) 20:09:34環境、Pythonのバージョンは?
0116デフォルトの名無しさん
2006/12/18(月) 20:13:52$python -V
python 2.3.4
$uname -a
Linux my-pc 2.6.9-42.0.3.EL #1 Fri Oct 6 05:59:54 CDT 2006 i686 i686 i386 GNU/Linux
です。
0117デフォルトの名無しさん
2006/12/18(月) 20:14:040118デフォルトの名無しさん
2006/12/18(月) 20:21:57def signal_handler_func(*args):
print args; sys.exit(1)
signal.signal(signal.SIGINT, signal_handler_func)
raw_input()
手元のLinux環境では
2.3.3 だと raw_input() が KeyboardInterrupt エラーを raise、
2.4.2 だと signal_handler_func でトラップ可、
という結果になるなあ。
バージョン依存ってことでFA?
0119デフォルトの名無しさん
2006/12/18(月) 20:33:56白飯をいくら喰ってもおかずにたどり着かずにいらいらする
せっかくPythonの言語仕様がシンプルなんだから、一通りの概観を得たら
さっさとおいしいライブラリの勉強に移行するほうが望ましいと思う
そういう観点からすれば、『みんなのPython』→『Dive into Python』お勧め
後者は無料で読めるし、前半総論後半各論(ライブラリ)って構成も実践的でいいよ
0120デフォルトの名無しさん
2006/12/18(月) 21:19:29『公式チュートリアル』→ライブラリリファレンスとソース適宜参照しながらとにかく書く
だろ
0121デフォルトの名無しさん
2006/12/18(月) 21:44:400122デフォルトの名無しさん
2006/12/18(月) 21:49:34そんな話はどうでもよかったり
0123デフォルトの名無しさん
2006/12/18(月) 22:47:430124デフォルトの名無しさん
2006/12/18(月) 23:10:32紙ってデバイスに価値を感じるか否かだけを、引っ張りつづけて幾星霜。
0125デフォルトの名無しさん
2006/12/18(月) 23:25:300126デフォルトの名無しさん
2006/12/18(月) 23:28:45基本が抜けていたりする
そういう奴の何割が、Pythonのモジュールの仕組みや
オブジェクト思考機能
スコープについて完全に理解しているというのか
チュートリアルでも書籍でもいいから、いっぺん通して読んでみろ
コードのクオリティが高くなるぞ
0127デフォルトの名無しさん
2006/12/18(月) 23:37:08今読むと少々古く感じる部分もあるな。
0128デフォルトの名無しさん
2006/12/19(火) 01:00:08Pythonのモジュールの仕組みや
オブジェクト思考機能
スコープについて完全に理解しているというのか
0129デフォルトの名無しさん
2006/12/19(火) 01:07:000130デフォルトの名無しさん
2006/12/19(火) 04:33:030131デフォルトの名無しさん
2006/12/19(火) 06:41:090132デフォルトの名無しさん
2006/12/19(火) 08:20:23俺の脳内にあるんだぜ?
0133デフォルトの名無しさん
2006/12/19(火) 08:24:58http://www.google.com/codesearch
0134デフォルトの名無しさん
2006/12/19(火) 08:26:130135デフォルトの名無しさん
2006/12/19(火) 08:28:100136デフォルトの名無しさん
2006/12/19(火) 08:31:170137デフォルトの名無しさん
2006/12/19(火) 08:47:240138デフォルトの名無しさん
2006/12/19(火) 09:35:14オブジェクト思考(指向だろw)機能 というのは、
Python についてのドキュメントだけ読んでても、なかなか分らないよね。
web で参考になりそうなところを挙げてみると、下のようなところかな。
ただ、もっと初歩的な導入部分の解説のところがほしいし、
事例がPython だったら、もっといいと思うんだが。
Python のドキュメントみても、いきなり解説なしにオブジェクトやら
インスタンスやらの言葉が飛び出してくるものが多く、どれだけの人が
分っているのやら。
Java 知ってる奴しか分からんのじゃないか???
オブジェクト指向入門
http://itpro.nikkeibp.co.jp/members/NSW/ITBASIC/20050617/162922/
オブジェクト指向分析/設計
http://itpro.nikkeibp.co.jp/article/COLUMN/20061122/254695/
UML入門
http://itpro.nikkeibp.co.jp/article/COLUMN/20060213/229061/
ソフトウエア・パターン
http://itpro.nikkeibp.co.jp/article/COLUMN/20061106/252691/?ST=develop&P=1
デザインパターン
http://www.techscore.com/tech/DesignPattern/
早わかりGoFデザインパターン
http://itpro.nikkeibp.co.jp/article/COLUMN/20051201/225570/
0139デフォルトの名無しさん
2006/12/19(火) 10:10:160140デフォルトの名無しさん
2006/12/19(火) 10:22:220141デフォルトの名無しさん
2006/12/19(火) 10:45:46分かった気になってる奴の典型だな。
初心者はスキルこそ低いかも知れないが,学習意欲があるだけ可能性がある。
エセ中級者はスキルが低いくせに,分かった気になって学習意欲がない場合が多いので困る。
0142デフォルトの名無しさん
2006/12/19(火) 10:57:18データの流れる枠組みだけを必死に作ってればそれでよいのです。
0143デフォルトの名無しさん
2006/12/19(火) 11:34:26難しいのはオブジェクト指向「設計」な。こればっかりはデザパタ学んでも本を読んでもなんともならない。
設計手法を身につけたいなら,師匠につくなどして実務で経験を積むか,既存のソースを少しでも多く読むしかない。
0144デフォルトの名無しさん
2006/12/19(火) 11:36:180145デフォルトの名無しさん
2006/12/19(火) 11:38:46いや、ネタで書いてるだけなんだろうけど、
マジレスぎみに書いておけば、
ruby はそっち方面へPython より意欲的に取り組んでいるようにも
見えるんだよ。たとえば、
Rubyプログラミング+モデリング
http://www.rubyist.net/~keiju/doc/ruby-with-modeling-for-pdf.pdf
とかね。
自分の場合は、弟が会計士を取りそうなんで、会計関係のシステムでも
作りたいなと思ってあれこれ考えていたんだが、
Java でやろうかとも思ったんだけど(Java は多少とも経験がある)、
一人しか組む人間がいないのに、Java は苦しすぎると思い、
Python にたどり着いたとこ。
やっぱり大規模なシステム組むときに、オブジェクト指向は欠かせない
からね。
Java は煩瑣な言語だが、そっち方面のドキュメントはたくさん手に入る。
Python はシンプルで明快な文法だが、いかんせんそっち方面のドキュメントが乏しい。
いっそ関数だけで書いてくことにしてしまえば、悩まずに済むんだが、
(その方が早く組める可能性もないとはいえない)
悩ましいところだ…。と、グチを少々書いてみた。
みんなも頑張ってくれ。じゃ。
0146デフォルトの名無しさん
2006/12/19(火) 11:39:582冊以上持ってる奴は出入り禁止ということでどう?
0147デフォルトの名無しさん
2006/12/19(火) 11:45:420148デフォルトの名無しさん
2006/12/19(火) 11:46:46数値演算も腐ってますが何か?
0149デフォルトの名無しさん
2006/12/19(火) 11:49:57あなた何歳?
0150デフォルトの名無しさん
2006/12/19(火) 11:51:36そこでdRubyというバッドノウハウ投入
0151デフォルトの名無しさん
2006/12/19(火) 11:51:480152デフォルトの名無しさん
2006/12/19(火) 12:11:56Cやアセンブラの開発経験が豊富な俺にしてみれば、だ。
クラスとかインスタンスとかリファレンスとかは、
全部構造体とかポインタのメタファとして理解できるわけ。
だからオブジェクト指向なんて簡単。
設計手法も根底はCとかと同じだしね。
0153デフォルトの名無しさん
2006/12/19(火) 12:47:480154デフォルトの名無しさん
2006/12/19(火) 13:17:29とした場合に、モジュールXXXに固有の例外をキャッチするにはどうしたらいいんでしょうか。
具体的には、importだけを使った場合に、
import xml.dom.minidom
try:
DOM = xml.dom.minidom.parseString('python')
except xml.parsers.expat.ExpatError:
print "XML ExpatError."
と処理することを、
from xml.dom.minidom import parseString
try:
DOM = parseString('python')
except ???:
print "XML ExpatError."
ここで、???に上手く書いて処理する方法はありますか?
0155デフォルトの名無しさん
2006/12/19(火) 13:34:10ExpatError を import したくない理由が何かあるの?
0156デフォルトの名無しさん
2006/12/19(火) 13:53:13いえ、ExpatErrorをimportすれば(上の例では結局xmlからimportする必要がありますけど)出来ます。
Python一般のテクニックとして、上手く処理する方法があるのか知りたかっただけです。
0157デフォルトの名無しさん
2006/12/19(火) 13:57:130158デフォルトの名無しさん
2006/12/19(火) 13:57:230159デフォルトの名無しさん
2006/12/19(火) 14:03:01File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.5/lib-tk/Tkinter.py", line 38, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named _tkinter
sys.pathは
['', '/usr/local/lib/python25.zip', '/usr/local/lib/python2.5',
'/usr/local/lib/python2.5/plat-linux2',
'/usr/local/lib/python2.5/lib-tk',
'/usr/local/lib/python2.5/lib-dynload',
'/usr/local/lib/python2.5/site-packages']
/usr/sahre/tk8.4とか、/usr/share/tcl8.4とか見てもconfigureファイルないし、
そもそもyumでインストールしてるからconfigureの必要はないと思うし・・・。
あと、yum install tkinterもしてみたけど、結果は同じでした。
ちょっとスレ違いの質問かもしれないけど、どなたか解決法教えてください。
0160デフォルトの名無しさん
2006/12/19(火) 14:03:50入門書嫁。
0161デフォルトの名無しさん
2006/12/19(火) 14:05:30ないと思われ。
0162デフォルトの名無しさん
2006/12/19(火) 14:09:35_tkinterモジュールがそもそもビルドされていないか
_tkinterモジュールのビルドに失敗しているか
_tkinterモジュールが必要としている何かがインスコされていないか
のどれかだと思われ。
どこのパケジ?
0163デフォルトの名無しさん
2006/12/19(火) 14:44:12http://www.python.jp/Zope/download/pythoncore
ここですね。
>_tkinterモジュールがそもそもビルドされていないか
これってPython-2.5内のconfigure->make->make installではビルドされないんですか?
0164デフォルトの名無しさん
2006/12/19(火) 15:11:16あれ、yum といいつつ実は Python を野良ビルドしている?
だったら
> _tkinterモジュールのビルドに失敗しているか
こっちの可能性大。
> これってPython-2.5内のconfigure->make->make installではビルドされないんですか?
状況による。
0165デフォルトの名無しさん
2006/12/19(火) 15:14:25yum install pythonするとpython-2.4がインストールされませんか?
2.5が使いたかったんでPyJUGからDLしてビルドしたんですけど・・・・。
他に方法があったんでしょうか。
0166デフォルトの名無しさん
2006/12/19(火) 15:15:55yum したのは
yum install tk
yum install tcl
yum install tkinter
の3つです。
Pythonそのものは上記の通りです。
0167デフォルトの名無しさん
2006/12/19(火) 15:23:30Pythonicさを求めるなら,例外も明示的にimportしておく.
from zipfile import ZipFile, BadZipfile
try:
ZipFile(open('hoge.tgz', 'rb'))
except BadZipfile:
print 'bad zip file.'
どのモジュールから例外が出るか分からなくても,「ある種の例外」の親クラスは共通.
try:
ZipFile(open('hoge.tgz', 'rb'))
except Exception, e:
print "exception raised from module %s" %(e.__module__)
これはちょっとハックだし,例外が同じモジュールで定義されていなければうまく動かない.
from zipfile import ZipFile
try:
ZipFile(open('hoge.tgz', 'rb'))
except Exception, e:
if e.__module__ == ZipFile.__module__:
print 'same'
else:
print 'different'
0168デフォルトの名無しさん
2006/12/19(火) 15:39:28何でそんなところでハマるのかな(;´Д`)
0169デフォルトの名無しさん
2006/12/19(火) 20:16:44ぼくちゃんはPython2.5のtkinterと2.4のtkinter、どちらが使いたいのかな?
yumでインストールしたtkinterは2.4と2.5のどちら用かな?
0170166
2006/12/19(火) 20:28:27てめーには聞いてねーよばーか^^
0171デフォルトの名無しさん
2006/12/19(火) 20:45:540172デフォルトの名無しさん
2006/12/19(火) 21:40:550173デフォルトの名無しさん
2006/12/19(火) 21:50:03まともでないことをまず疑うべきなんですね。
0174デフォルトの名無しさん
2006/12/19(火) 23:13:570175デフォルトの名無しさん
2006/12/20(水) 00:07:020176デフォルトの名無しさん
2006/12/20(水) 00:50:48もう一度ビルドしなおしてみようと思います。
0177デフォルトの名無しさん
2006/12/21(木) 15:12:46「Exceptionがobjectのサブクラスになった」という意味を理解してないのかね?
0178デフォルトの名無しさん
2006/12/21(木) 15:23:02http://rgruet.free.fr/PQR25/PQR2.5.html
0179デフォルトの名無しさん
2006/12/21(木) 15:44:04ゆっくり日本語訳されるのを待つとするか。
0180デフォルトの名無しさん
2006/12/21(木) 16:12:040181デフォルトの名無しさん
2006/12/21(木) 17:47:560182デフォルトの名無しさん
2006/12/21(木) 21:03:41radius = input("What is the radius?")
print radius*radius*3.14
のコード実行すると
SyntaxError: unexpected EOF while parsing
というエラーになるんだけどなぜでしょうか?
0183デフォルトの名無しさん
2006/12/21(木) 21:07:08最初にサブエレメントが出てくるところまでしかとれないよね。
"激ウマ<BR/>ラーメンです。"ってあっても
激ウマの部分しかとれないみたいな。
サブエレメントの後ろのtextも取り出したいんだけど
なんかいい方法ない?
以前、DOMでやってたときもおんなじよーな問題がでてた記憶が....
0184デフォルトの名無しさん
2006/12/21(木) 21:09:090185デフォルトの名無しさん
2006/12/21(木) 21:19:29PyDev上のコンソールから入力するとエラーでるけど、DOSプロンプトでpythonコマンドやcommand line使うとエラーにならない・・・
PyDevの問題?
0186デフォルトの名無しさん
2006/12/21(木) 21:23:150187sage
2006/12/21(木) 21:54:30なるほど・・・
0188デフォルトの名無しさん
2006/12/21(木) 21:57:18「ラーメンです」を br 要素の後ろに続くテキストって考えれば
element.tail で取れます。
>>>import xml.etree.cElementTree as ET
>>> elem = ET.fromstring(u'<p>激ウマ<br/>ラーメンです</p>')
>>> print elem[0].tail
ラーメンです
0189デフォルトの名無しさん
2006/12/21(木) 21:58:38中の人のサイトに書いてあるやん。
0190183
2006/12/21(木) 22:21:17無事解決したよ。アリガトー!!
マジ感謝
0191デフォルトの名無しさん
2006/12/22(金) 09:19:400192デフォルトの名無しさん
2006/12/22(金) 15:49:12import sys
unicode(sys.argv[1])
↑こんな風にしたら、
UnicodeDecodeError: 'ascii' codec can't decode byte 0x83 in position 0: ordinal not in range(128)
こういわれてしまいました。
unicodeというかUTF-8にしたいのですが、どうすればいいでしょうか。
よろしくお願いします。
0193192
2006/12/22(金) 15:50:48第一引数には、「エンコード」という文字を渡してます。
> python.exe hoge.py エンコード
↑こんな感じ
0194デフォルトの名無しさん
2006/12/22(金) 16:09:29入門書嫁。
0195デフォルトの名無しさん
2006/12/22(金) 17:03:57WSHがPythonから使えるらしいのだけど
HPのようにしてもうまくいかない
なんで
0196デフォルトの名無しさん
2006/12/22(金) 17:10:52何かエラーが出るの?
エラーは無いけど思ったのと違う結果になるの?
そもそも何も起きないの?
もっと具体的に書いてくれ
0197195
2006/12/22(金) 18:06:51エラー 実行に失敗しました(例外)が発生しました
0198デフォルトの名無しさん
2006/12/23(土) 00:39:18sys.argv[1](この場合 Shift_JIS 文字列)の
エンコーディングを明示的に指定してやる
sjis_str = sys.argv[1]
unicode_str = unicode(sjis_str, 'sjis')
unicode_str = sjis_str.decode('sjis') # 上と等価
デコードする際のエンコーディングを明示的に指定したくないなら、
Python2.5/site-packages/sitecustomize.py に以下を記述
import sys
sys.setdefaultencoding('sjis')
unicode() の第二引数や、encode()、decode() の第一引数を省略した場合に
defaultencoding が使われことを知っておくと混乱しないよ。
0199デフォルトの名無しさん
2006/12/23(土) 11:40:41http://www.perl.com/pub/a/2006/12/21/using-java-classes.html
こんなのがあったのですが、こんな感じで簡単にJavaのクラスを
Pythonで使う方法ってありますか?
0200デフォルトの名無しさん
2006/12/23(土) 11:47:160201デフォルトの名無しさん
2006/12/23(土) 12:26:12灯台下暗しでした。すみません。ありがとうございます。
0202デフォルトの名無しさん
2006/12/23(土) 14:38:260203デフォルトの名無しさん
2006/12/23(土) 17:57:500204デフォルトの名無しさん
2006/12/23(土) 23:40:49状態監視(vmstat -w 1 とか netstat -w 1) をしたいのですが,
親プロセスが終了するときに子プロセスを
どうやって終了させればいいのか良く分かりません.
popen2 が返してきた child の child.pid を os.kill すると
sh -c netstat -w 1 の方は殺せるのですが,
popen が /bin/sh 経由で呼び出した実際のプロセスの方は
生き残って親プロセス丸ごと終了できなくなってしまいます.
コマンドラインでやるみたいに os.system で
ps aux | grep netstat | awk '{print $2}' なんていう
python っぽくないダサい手段で探して殺すというバッチイ方法じゃない
良い子の方法はどうすればいいのでしょうか?
0205204
2006/12/23(土) 23:45:10子プロセスはこの方法をまねて呼んでます(まね,というかほとんどそのまま).
while 1 のループの中でデータ処理をしてます
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52296/index_txt
0206デフォルトの名無しさん
2006/12/23(土) 23:46:01めんどいのでこれを使ってる
ttp://www.python.jp/doc/nightly/lib/module-commands.html
0207デフォルトの名無しさん
2006/12/23(土) 23:52:02すまん
0208デフォルトの名無しさん
2006/12/24(日) 06:00:07どうした、調子悪いぞ!
0209デフォルトの名無しさん
2006/12/24(日) 06:03:110210204
2006/12/24(日) 09:44:44それとも他の使い方があるのかな?
0211デフォルトの名無しさん
2006/12/24(日) 10:33:56ttp://www.python.jp/doc/2.4/lib/module-popen2.html
> Unixではcmdはシーケンスでもよく、その場合には (os.spawnv()のように)
> 引数はプログラムシェルを経由せず直接渡されます。
> cmdが文字列の場合、(os.system()のように)シェルに渡されます。
ちゅーことなのでコマンドをリストか何かで渡してみたらどーでしょ。
(つまりコマンドラインの字句解析をシェルに任せずに自分でやる)
0212デフォルトの名無しさん
2006/12/24(日) 13:31:04ある条件を満たせば、自分で終了するとしとけば、
wait() しとけばいいだけと思うし。
0213204
2006/12/24(日) 14:11:09child = popen2()
=> 終了
child.fromchild.close()
child.childerr.close()
でいいみたいです.
これをやっているつもりだったのですが,
終了条件投入関数が実行されていませんでした.
やり方はこんななんですが:
sw = status_watch('netstat -w 1')
sw.run()
## time.sleep(10)
sw.finish() ### いつまでも実行されない???
(続く)
0214204
2006/12/24(日) 14:13:58class status_watch(threading.Thread):
def __init__(self, command ):
threading.Thread.__init__(self)
self.command = command
self.quit = False
def run(self):
self.child = popen2.Popen3(self.command, 1)
self.child.tochild.close() # don't need to talk to child
outfd = self.child.fromchild.fileno()
errfd = self.child.childerr.fileno()
makeNonBlocking(outfd) # don't deadlock!
makeNonBlocking(errfd)
while 1:
ready = select.select([outfd,errfd],[],[]) # wait for input
### do something
if self.quit:
return
select.select([],[],[],.1) # give a little time for buffers to fill
def finish(self):
self.quit = True
self.child.fromchild.close()
self.child.childerr.close()
0215デフォルトの名無しさん
2006/12/24(日) 14:14:05http://www.adl.nii.ac.jp/~moro/unix-programmer/faq-j_2.html#SEC26
に、
1.16 どうすればプロセスの子孫を全て殺すことができますか?
というのがあるけど、その中に、
このための完全に一般的な手法はありません。
(略)
解決法としてそのサブプロセスを新しいプロセスグループに入れ、killするとき はそのプロセスグループをkillすることができます。
(略)
プロセスグループを作るのに望ましい関数はsetpgid()です
とある。
で、Python ライブラリ・リファレンスのp274に
setpgid(pid, pgrp)
システムコールsetpgid() を呼び出して、pid のid をもつプロセスのプロセスグループid をpgrp
に設定します。利用できる環境: UNIX
というのがあるが、これ使えないかな?
0216204
2006/12/24(日) 14:18:35いや netstat, vmstat とか 「signal 食らわない限り無限ループ」
を読みたいんで...
python 側は >214 に書いたように "終了()" を呼んで
後始末をさせようとしているんですが,
自分が思っているように動かないんですよね...
>214 に書いているうちの,self.quit 変数が
True に変わってくれないんです...
(while loop で print してみてても変わってない...ナゼ???)
0217204
2006/12/24(日) 14:42:16本件とは別のところで エラーを吐いて終了処理(finish())が
きちんと実行できていなかっただけみたいです...
curses と組み合わせて書いていたんですが,
curses の "裏画面" のエラーメッセージとかを
見逃してました...
0218デフォルトの名無しさん
2006/12/24(日) 22:04:420219デフォルトの名無しさん
2006/12/24(日) 22:14:190220デフォルトの名無しさん
2006/12/24(日) 23:17:300221デフォルトの名無しさん
2006/12/24(日) 23:21:55kwsk!!!!
0222デフォルトの名無しさん
2006/12/25(月) 01:13:11GR.dll, KEY.dll, ksound.dll
python23.dll, run.dll, SND.dll, WIN.dll
nanami.pyc, run_base.pyc
nanami.exe
DLLs/
_sre.pyd, bz2.pyd, datetime.pyd
mmap.pyd, parser.pyd, pyexpat.pyd
select.pyd, unicodedata.pyd
winsound.pyd, zlib.pyd
itp/
*.pyc
Lib/
site-packages/
JapaneseCodecsだけ
nanami/
*.pyc
data/
spp/
*.pyc
stdADV/
*.pyc
こんな構成。
他にはプロテクト関係のソフトが入ってる。
エロゲーでライセンスキーの入力を求められたのは初めてだw
これ以上は分からんがな(´・ω・`)
0223デフォルトの名無しさん
2006/12/25(月) 02:21:080224デフォルトの名無しさん
2006/12/25(月) 02:21:59それって ef?
シリアル入力があるって聞いてるけど.
0225デフォルトの名無しさん
2006/12/25(月) 14:15:11googleの検索で上位にでるのはこれですが
http://claymore.engineer.gvsu.edu/~steriana/Python/pymat.html
0226デフォルトの名無しさん
2006/12/25(月) 14:56:400227デフォルトの名無しさん
2006/12/25(月) 23:00:41こんな派手なやつでも使うのか?
http://www.emptypage.jp/gadgets/icon-py.html
0228デフォルトの名無しさん
2006/12/26(火) 00:01:320229デフォルトの名無しさん
2006/12/26(火) 00:23:250230デフォルトの名無しさん
2006/12/26(火) 03:53:070231デフォルトの名無しさん
2006/12/26(火) 15:50:060232デフォルトの名無しさん
2006/12/26(火) 16:18:28win32com.client.Dispatch(.."..")
は同じなの?
0233デフォルトの名無しさん
2006/12/26(火) 19:10:46>>218-224 を見て、「ef」というエロゲの体験版を探してきてダウンロードして
みたのだが、Pythonとは何の関係もなかった。GUIの作り方の参考になるかと
思ったのに。腹が立ったので即削除。
0234デフォルトの名無しさん
2006/12/26(火) 20:35:22ぐぐったらパティスリーの待宵草ってのはPythonらしい。
メーカーサイトにはその辺何もなかったから実際どうかはしらんが。
0235デフォルトの名無しさん
2006/12/26(火) 23:20:35ありがとう。その「待宵草」にも体験版はあるみたいだ。
しかし、よく考えたらエロゲに限定する必要はなかった。
つうかむしろ、エロゲでないほうが良かった。自分にはちょとつらいわ。
0236デフォルトの名無しさん
2006/12/26(火) 23:36:22サイト行ったら変な声流れてビビった
0237デフォルトの名無しさん
2006/12/26(火) 23:51:49ありがとうございました。
0238デフォルトの名無しさん
2006/12/27(水) 01:14:58str = u"日本語"
みたいにしないといけないの?
めんどくさくない?
0239デフォルトの名無しさん
2006/12/27(水) 01:17:360240デフォルトの名無しさん
2006/12/27(水) 01:32:01たとえばマルチバイト文字がシフトJISならファイルの先頭行に
# coding: shift_jis
を入れれば u を入れる必要はなくなるよ。
0241デフォルトの名無しさん
2006/12/27(水) 01:35:09そりゃ別の問題だべさ
0242デフォルトの名無しさん
2006/12/27(水) 01:41:01入門書嫁
0243デフォルトの名無しさん
2006/12/27(水) 02:24:59for char in u'やらないか':
print char, #=> や ら な い か
for char in 'やらないか':
print char, #=> 文字化け
0244デフォルトの名無しさん
2006/12/27(水) 06:37:08240の言っていることは正しいんでは。
str = u"日本語".encode("sjis")
と書くのと
# coding: sjis
str = "日本語"
と書くのは等しいわけだから。
バイト列(文字列ではなく)を得る方法としてはまったく正しい。
0245デフォルトの名無しさん
2006/12/27(水) 08:40:060246デフォルトの名無しさん
2006/12/27(水) 09:07:230247デフォルトの名無しさん
2006/12/27(水) 10:19:38# -*- encoding: mbcs -*-
じゃなかったっけ?
入門書、読み直した方がいいかな?
対話モードでも使えりゃいいんだが。ていうか、
うちは対話モードも特段設定しなくても、化けはしないけど。
ただ、あの兇悪なIDLEだけは許せんなぁ。
あれは、utfからデフォルトのエンコーディングに
戻してないんだろ。
いいかげん、向うの連中もそれくらいの初歩的バグに
気づいてほしいもんだが、無理だろなー。
0248デフォルトの名無しさん
2006/12/27(水) 10:26:13何もしようとしないのはみんなヒキコモリ。
0249デフォルトの名無しさん
2006/12/27(水) 12:12:00encodingを記述したほうが良い。(mbcsは正確なencodingではない)
また文字列についていろんな処理をするなら、できるだけUnicode文字列を使うべき。
つまり '文字列' よりも u'文字列' を使うべき。
この2つは基本的には別の問題。(後者には例外も存在する)
Python 3000ではUnicode文字列だけになるらしいので、もうちょっとすっきりするかも。
0250デフォルトの名無しさん
2006/12/27(水) 12:35:390251デフォルトの名無しさん
2006/12/27(水) 12:47:35>Unicode文字列だけ
byte型を使えば他エンコードの文字列を扱えるんだぜ?
0252デフォルトの名無しさん
2006/12/27(水) 14:56:51実質的にはJava くらいなんじゃないの?
Perl なんかでは(もう2、3年前のことしか知らないが。 5.8かな)
明示的な方法でなく自動というか勝手に utf へ変換が
行われるんだが、それがために問題が生じていて、
どうするか大問題になっていたと思う。
つまり、標準で日本語をutf へ変換するモジュールが
入ってるんだが、それとは別にPerl 本体が勝手にutf に変換してる。
ところが、Perl 本体の方は無自覚に(日本語のsjisかeuc かとか気にせず)
やってるから、それは内部的には的外れなutf に変換されており、
変換モジュールの方は、sjis ならsjis があればutf へ変換する
というものだが、その時点では内部的に的外れutf しかないから
全然変換できてないというものだった。
あれからその問題がどうなったか知らないが(たぶん、そのままかも)、
Java 以外の言語で、非明示的な方法を使うものは、
みんな苦しんでるんじゃないかと思う。
むしろPython は、明示的変換を採用したおかげで
うまく問題を回避してると思う。
sjis のままだと、正規表現とか誤動作するが、おおかたの人は
そんな問題に遭遇することもないかもしれない。
0253デフォルトの名無しさん
2006/12/27(水) 16:43:47入門書を読み返すよりこっちお勧め。
ttp://ns.jk.to/zwiki/Nikki/PEP0263
ttp://www.geocities.jp/tan9ent/unicode.html
難しいけど雰囲気だけでも。
>>252
Perl 5.6 以降は、ソースに ASCII じゃない文字が含まれてると、
それを UTF-8 で書かれているとみなして処理するから、
use encoding 'shiftjis';
などとして、Perl に処理させる前にソースを UTF-8 に
変換しておく必要がある・・・とかいう理屈だったと思う。
なので、ちゃんと use encoding してあれば
的外れなことをする心配はなかったような。
まあどの言語でも文字コード周りは鬼門だと思う orz
Unicode 文字列に一本化されたら幸せになれるのかな・・・
0254デフォルトの名無しさん
2006/12/27(水) 17:02:31> use encoding 'shiftjis'
> などとして、Perl に処理させる前にソースを UTF-8 に
違う。そうじゃなくて、
その動作それ自体が、そのようになってなくて、
モジュールが働く前に、Perl本体の方の勝手変換が
効いてしまっている という話で、
当時は大変な問題になっていた。
ただ、その後の話は自分は知らない。
だから、Python が明示的変換を採用しているのは
賢明だとその頃は(今もだが)感じた。
0255デフォルトの名無しさん
2006/12/27(水) 18:37:49年に一度の大掃除くらいちゃんとやれよ。
0256デフォルトの名無しさん
2006/12/27(水) 18:44:04おまえがな(WWWWWWWWWWWWW
0257デフォルトの名無しさん
2006/12/27(水) 19:45:21年末年始くらいマッタリ過ごせないのはITドカタくらいだろ
今日も元気に掘った穴埋めてるのか????
0258デフォルトの名無しさん
2006/12/27(水) 20:07:220259デフォルトの名無しさん
2006/12/27(水) 20:45:43書かないとlen("あ")が2とか返すだけで一応動くみたいだけど
0260デフォルトの名無しさん
2006/12/27(水) 20:56:51一見動いてしまうことも多いので却ってたちが悪い。
0261デフォルトの名無しさん
2006/12/27(水) 21:08:09なにも問題ないわけで、
どうせ誤動作したって、人が死ぬわけでもないしと思えるなら、
それもありかもしれない。
ただ、Perlとかでsjisで平気でやってる人たちは
誤動作問題知らないんじゃないかなぁ。
その仲間に入るか入らないか、という事でしょ。
だいたいこの問題、Java以外ではスマートに解決はできないと
思われ。
0262デフォルトの名無しさん
2006/12/27(水) 21:17:17癖にするのが無難だと思う。もちろん「ニセUnicode」にならんように最低限encodingくらい
はちゃんと指定しておくのが前提。
0263デフォルトの名無しさん
2006/12/27(水) 21:43:06俺は結構好きだ。2.0 未満の頃はバイト列しかなかったしね。
ついこないだまで n = len(s) の代わりに
n = 0
for c in s:
if c < "0x80":
n = n + 1
else:
n = n + 2
みたいなことを当たり前のようにやってたわけだ。
(補助漢字? 半角カナ? (∩゜д゜)あーあー聞こえなーい)
正直UnicodeマンセーだけどUnicodeは万能じゃない。要は適材適所。
0264デフォルトの名無しさん
2006/12/27(水) 21:43:521.6のことを忘れていたw
0265デフォルトの名無しさん
2006/12/27(水) 21:46:330266デフォルトの名無しさん
2006/12/27(水) 21:50:13俺もやってたけど、嫌な思い出なので早く忘れたいのよ。w
万能じゃないけどUnicodeのほうがマシなのは確かなので、ちゃんと使おうよ派だな。
0267デフォルトの名無しさん
2006/12/27(水) 22:36:56# -*- encoding: hoge -*- って丁寧に書かないで
# coding: hoge でも同じだったっけ。
0268デフォルトの名無しさん
2006/12/27(水) 22:38:110269デフォルトの名無しさん
2006/12/27(水) 22:50:580270デフォルトの名無しさん
2006/12/27(水) 23:03:47大掃除なんてクリスマス前に終わらせた
今度は君の番だ
がんばれよ、社内ヒキコモリのITドカタ君(w
0271デフォルトの名無しさん
2006/12/27(水) 23:23:361行目か2行目が、正規表現 "coding[:=]\s*([-\w.]+)"にマッチすればOK
http://ns.jk.to/zwiki/Nikki/PEP0263
0272デフォルトの名無しさん
2006/12/28(木) 08:43:180273デフォルトの名無しさん
2006/12/28(木) 09:37:04色々とからかわれちゃうのでは。
0274デフォルトの名無しさん
2006/12/28(木) 10:40:21正体を現わしたな、真正ヒキコモリ!
まともな社会生活を送っている者には
クリスマス前に大掃除を終わらせるヒマなどない!
悪霊退散!!
0275デフォルトの名無しさん
2006/12/28(木) 11:45:37自分にヒマが無くても、世の中にはお金で解決できることもあるんだよ
頑張れ、低賃金のITドカタ君(w
0276デフォルトの名無しさん
2006/12/28(木) 11:56:55>クリスマス前に大掃除を終わらせるヒマなどない!
いかにも短絡的で,コミュニケーション能力低い感がにじみ出てるな.
これは本物の社内引き籠もりかもしれん.
0277デフォルトの名無しさん
2006/12/28(木) 12:49:00なごやかな2006年だったな。
0278デフォルトの名無しさん
2006/12/28(木) 16:17:550279デフォルトの名無しさん
2006/12/28(木) 16:36:18> これは本物の社内引き籠もりかもしれん.
就職してると思うなんて、随分過大評価するんだなw
0280デフォルトの名無しさん
2006/12/28(木) 17:29:260281デフォルトの名無しさん
2006/12/28(木) 19:47:51「しっぱい」が売れなくて、のたれ死んだか(WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
0282デフォルトの名無しさん
2006/12/28(木) 21:22:43linuxやsunではaudioopモジュール等が用意されているみたいなんだけど、
win用が見当たらない。。
ちなみになるべくマルチプラットフォーム向けにと考えています。
0283デフォルトの名無しさん
2006/12/28(木) 21:26:19贅沢な時代になったものだな。
ついこの間まで日本中が「欲しがりません。勝つまでは。」と言っていたのに。
0284デフォルトの名無しさん
2006/12/28(木) 21:30:56オブジェクト渡してやればいいかなーって思ってるんだけど。
0285デフォルトの名無しさん
2006/12/28(木) 21:33:060286デフォルトの名無しさん
2006/12/28(木) 21:33:30教えてエロいひと
0287デフォルトの名無しさん
2006/12/28(木) 21:38:50俺はそっち方面はあんまり詳しくないけど、
そういうのは、Pygame を通して sdl を使うんじゃないの?
そんなことを聞いた覚えが。
Pygame とか python sdl とかでぐぐってみたら、
情報ひっかからないかな。
0288デフォルトの名無しさん
2006/12/28(木) 22:16:36SDLdoc 日本語翻訳プロジェクト
http://www.tacoworks.jp/software/SDLdoc-jp/
この10 にオーディオがあるね。
あと、
pygame入門
http://www.halb-katze.jp/pygt/index.html
初心者のための pygame ガイド
http://www.unixuser.org/~euske/doc/pygame/newbieguide-j.html
こんなとこかな。
0289デフォルトの名無しさん
2006/12/28(木) 22:23:53>「しっぱい」が売れなくて、のたれ死んだか(WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
クラス定義にdefを使うと書いてあるクソ本が売れるわけがない(wwwwwwwwwwwww
0290デフォルトの名無しさん
2006/12/28(木) 22:35:17try:
raise DerivedException( "Exp" )
except Exception, E:
print E.message:
で、結果が
>Exp
という風にしたいのですが、
DerivedExceptionのコンストラクタを呼ぶのを
Exception.__init__( "msg" )
とすると
TypeError: descriptor '__init__' requires a 'exceptions.Exception' object but received a 'str'
となります。
どうすればいいですか?
0291デフォルトの名無しさん
2006/12/28(木) 22:41:12try:
raise DerivedException "Exp"
except Exception, E:
print E
ってな感じじゃなかったっけ?
>>285-288
試してみます。ありがとう
0292デフォルトの名無しさん
2006/12/28(木) 22:43:42o raise DerivedException, "Exp"
0293デフォルトの名無しさん
2006/12/28(木) 23:35:22って一般的じゃない?
0294デフォルトの名無しさん
2006/12/28(木) 23:51:19>クラス定義にdefを使うと書いてあるクソ本
ttp://foma-zakki.cocolog-nifty.com/zakki/2006/12/python_books_py_1f47.html
ここに書いてあるな.
ttp://www.trirhino.com/books/ppyerrata
正誤表に載ってないと言うことは、
著者はガチでdefでクラスを定義しようと思ってるということか.
これはとんだクソ本だ(WWWWWW
0295デフォルトの名無しさん
2006/12/28(木) 23:52:18>>293の方法では、たぶんこれじゃない?
class DerivedException (Exception):
def __init__ (self, msg):
Exception.__init__ (self, msg)
0296デフォルトの名無しさん
2006/12/29(金) 00:05:10自分はWin用にctypes使って、実処理はDLL作っている。
C/C++なら大量な情報がネットに転がっているんで作りやすい。
クロス環境は適当なconstant変数つくって分岐させるのが一番楽かと。
0297デフォルトの名無しさん
2006/12/29(金) 00:12:44http://audiere.sourceforge.net/
0298デフォルトの名無しさん
2006/12/29(金) 03:04:34出来ました。ありがとうございます。
selfを第一引数に持ってくるんですね・・・
0299デフォルトの名無しさん
2006/12/29(金) 11:44:030300デフォルトの名無しさん
2006/12/29(金) 12:07:240301デフォルトの名無しさん
2006/12/29(金) 14:37:23#./configure
#python setup.py install
でいいよな?
0302デフォルトの名無しさん
2006/12/29(金) 14:41:300303デフォルトの名無しさん
2006/12/29(金) 14:43:030304デフォルトの名無しさん
2006/12/29(金) 15:25:400305デフォルトの名無しさん
2006/12/29(金) 16:06:040306デフォルトの名無しさん
2006/12/29(金) 16:06:24thx.
_tkinter moduleの有効化ってどうすんだ?
Modules/Setupの_tkinter moduleあたりをUncommentするんじゃないの?
これした後に make するとものすごいエラーが出るんだけど。
./Modules/_tkinter.c:2974: 警告: スカラー初期化子内の要素が多すぎます
./Modules/_tkinter.c:2974: 警告: (near initialization for ‘moduleMethods’)
./Modules/_tkinter.c:2995: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
./Modules/_tkinter.c:2990: error: declaration for parameter ‘event_tstate’ but no such parameter
こういうのがいっぱい。
最後一行に
./Modules/_tkinter.c:3165: error: expected ‘{’ at end of input
0307デフォルトの名無しさん
2006/12/29(金) 18:17:09だろ多分
0308デフォルトの名無しさん
2006/12/29(金) 18:49:00ちゃんと大掃除しろよ!!
0309デフォルトの名無しさん
2006/12/29(金) 19:38:250310デフォルトの名無しさん
2006/12/29(金) 21:22:45listb = ('1','2','3')
listc = ('A','B','C')
def go(amax):
for i in lista:
for j in listb:
rid = str(amax) + str(i) + str(j)
print "%s" % rid
def ge(amax):
for i in listc:
print "%s start" % (str(amax) + i)
go(str(amax)+i)
print "end"
↑をa.pyで保存して、a.ge(0)で実行で、
0Aa1
0Aa2
.
.
.
0Cc3までいく途中、例えば0Bb1でエラーで止ってしまった場合、次の0Bb2から
始めるにはどうしたら良いでしょうか?lista[開始位置]、listb[開始位置]と
するしかないのでしょうか。ご教示お願いします。
0311デフォルトの名無しさん
2006/12/29(金) 21:34:15途中から再スタートできるようなプログラムにすればいいんじゃね?
0312デフォルトの名無しさん
2006/12/30(土) 02:31:400313310
2006/12/30(土) 06:22:400314デフォルトの名無しさん
2006/12/30(土) 09:38:57ループの中に置く continue と、
例外処理( try, except, raise )あたりを調べてみるといいよ。
continue ならこんな感じ
list_a = [1, 2, 3, 4, 5]
for elem in list_a:
if elem == 3:
continue
print elem,
1 2 4 5
0315デフォルトの名無しさん
2006/12/30(土) 10:48:14http://pyny.sourceforge.net/
GUIが実装されて無いんですな。
wxButtonボタンで検索、wxListCtrlで結果表示するだけの簡単なものって作れるかしら?
0316デフォルトの名無しさん
2006/12/30(土) 13:17:31def foo():
s = """
Hello
World
"""
こんな感じでインデックスが崩れるのはどうにかならないんですか?
0317デフォルトの名無しさん
2006/12/30(土) 17:24:05何のインデクス?
てかそのコード片にインデクスは使われていない
ように見えるのだが。
0318316
2006/12/30(土) 17:26:26見間違えた。
勘違いスマソ。
0319316
2006/12/30(土) 18:07:17要はトリプルクォートでくくった文字列で改行したときに、
行の先頭に文字が来るのが不細工で嫌なのです。
文字列もインデントで整形したいなと。
0320デフォルトの名無しさん
2006/12/30(土) 18:21:25俺はこっちのほうが不細工で嫌だけど
0321デフォルトの名無しさん
2006/12/30(土) 18:48:04確かhelp()とかもdocstring出力するときに
そんな感じでやってるよね。
というわけでトリプルクウオート内では
インデント入れて書いて、出力時に整形に一票。
0322デフォルトの名無しさん
2006/12/30(土) 20:19:33結構面倒くさくないか
トリプルクォート使うときは毎回一行目は改行することにして、
一行目をとっぱらうとか?
0323316
2006/12/30(土) 20:39:01取り合えず現状のままで我慢しときます。
皆さんどうもありがとうございます。
0324デフォルトの名無しさん
2006/12/30(土) 21:50:40foo
bar
"""
0325310
2006/12/30(土) 22:22:16ありがとうございます。実はlista,b,cと0を組み合わせてリストの一つ一つを
パースしてるのですが、ADSLの回線切れで以下のエラーが起こります。
urllib2.HTTPError:HTTPerror 502: Cannot Connect
回線が繋がるまで待機するか、処理を繰り返すか、何か方法がないでしょうか。
0326デフォルトの名無しさん
2006/12/30(土) 23:03:110328デフォルトの名無しさん
2006/12/30(土) 23:51:30class Slime:
def split( self, *args, **keys ):
return self.__class__(*args, **keys)
class Xxxx(Slime):
blah...
x = Xxxx(*args,**keys)
...
...
...
y = x.split(*args,**keys)
0329デフォルトの名無しさん
2006/12/31(日) 00:24:34マニュアルとにらめっこしつつ
def triplequotes(cut
txt):
ls = []
for s in txt.splitlines():
ls.append( s[cut:] )
return "\n".join( ls[1:] )
…というコードを書いてみた。
あんまり自信ないけど、コレで良いのかな?
他言語は触ったりするけど
Python の作法に中々慣れないよ〜
0330329
2006/12/31(日) 00:25:51iMonaの半角カンマ→改行の仕様忘れてました…
0331デフォルトの名無しさん
2006/12/31(日) 12:26:21XRCedでwxTextCtrlを置いて、そのfont指定を有効にしてプレビューすると
12:16:47: PyAssertionError: C++ assertion "wxAssertFailure" failed in ../src/common/string.cpp(1070): Error converting multi-byte string to a wide-character string
12:16:47: Error loading resource
と表示され中止されてしまいます。
またfont指定しないでプレビューすると、実際に日本語を入力しても文字が豆腐になってしまいます。
日本語が一切表示できなくて非常に困っています。どなたかお助けください!
こちらの環境
Mac OS X 10.4.8
Python 2.3.5(プリインストール)
wxPython 2.5.3.1(プリインストール)
0332デフォルトの名無しさん
2006/12/31(日) 13:01:43エラーメッセージがでてくるのですがwinXP用のresourceはどこかに落ちてないで
しょうか?
0333デフォルトの名無しさん
2006/12/31(日) 13:03:11あたらしいバージョンのPythonに付属してくるのではないでしょうか?
0334デフォルトの名無しさん
2006/12/31(日) 15:14:060335デフォルトの名無しさん
2006/12/31(日) 22:05:090336デフォルトの名無しさん
2006/12/31(日) 22:07:240337デフォルトの名無しさん
2007/01/01(月) 00:16:10あの、掘り炬燵の方がいいよ。
経験上。
0338デフォルトの名無しさん
2007/01/01(月) 00:31:3819ぐらいでしょ。そういう楽しいノリのまま大人になってほしい。
0339デフォルトの名無しさん
2007/01/01(月) 00:59:43ま、どうでもいいけど。
0340デフォルトの名無しさん
2007/01/01(月) 05:00:250341デフォルトの名無しさん
2007/01/01(月) 05:01:100342デフォルトの名無しさん
2007/01/01(月) 05:55:27私はPerlやめてPythonに移ろうか考え中
長いコード書こうとして挫折したよ
0343デフォルトの名無しさん
2007/01/01(月) 07:39:43他人との競争に負けたとか、経済的に続かないとかいう理由の挫折は人生に多々あるが、
やりたくて始めて、今でも好きなだけやってりゃいいものを勝手にやめて挫折って、
なによそれ、みたいな。
「やれる自分を夢想する」のが好きなだけであって、本当はやりたくないんじゃないかな。
プログラミングを。
プログラミングが好きなら、オナニーをやめるのと同じくらい学習やめるのも困難だと思うが。
0344デフォルトの名無しさん
2007/01/01(月) 07:46:44全部をサブルーチンで組み立てたらいいよ。
(要するに、C言語のつもりになって、メイン部のサブルーチンを設け、
そこから呼び出すサブルーチンだけでプログラム全体を組む。
そのとき、変数はグローバル変数は一切使わず、ローカル変数 my のみを使う
というやり方。いわゆる構造化プログラミングだけど)
Pythonへ移行するなら、その前にJavaをちょっとだけかじった方がいいよ。
というのも、現状ではPythonの書籍だけではオブジェクト指向の概念を
理解するのは難しいから。(Python自体はオブジェクト指向でなくても組めるけど)
Javaをちょっとだけやって、そのとき、インプリメントだとエクステンド
だのえらい面倒だなと思ったら、Pythonを使い始めたらいいと思う。
オブジェクト指向してても、オブジェクトを直にコードに埋め込んだりするなら、
構造化とさして変わるとも思えないし、
そこまでやらないなら、Python使う意味も薄いと思うから。
0345デフォルトの名無しさん
2007/01/01(月) 08:44:57どうでもいいが>>336は12くらいだろ…
0346デフォルトの名無しさん
2007/01/01(月) 09:50:16よく読んでみると、プログラムが目的なのではなくて、
エロサイトについての情報収集をしたい、
それには plagger というツールが便利のようだ。
それはperl で書かれている。
だからperl をやってみた、という流れみたいだよ。
その調子だと、
Python やってみた。さっぱりエロサイトの情報が
集められない。つかえない、という結論になるような。
すべての価値基準が、エロサイトの情報収集にどれだけ
役立つかに基づいているらしい。
いちおう >>336 になり代わって僕が聞いておこう。
数日前からPythonを使い始めました。
どうやったら、Pythonでエロサイトの情報が集められるか分りません。
誰か教えてください。よろ。
0347デフォルトの名無しさん
2007/01/01(月) 09:54:40掘り炬燵とは?何かの例えですか?
0348デフォルトの名無しさん
2007/01/01(月) 10:43:56pythonでえろサイト用スパイダーのフレームワークでも書くのか?
urllib/2はバグだらけでまともに使えるのはhttplibかsocketだけだぞ。
0349デフォルトの名無しさん
2007/01/01(月) 11:31:19バグだらけなの?
0350デフォルトの名無しさん
2007/01/01(月) 11:31:23perl だと謎の偽装ツール系も対処するライブラリとかがあるのかな?
だいぶスレ違いになってきたか…
0351デフォルトの名無しさん
2007/01/01(月) 12:44:36クローズドソースでしか書かない著作権馬鹿より数倍まし
0352デフォルトの名無しさん
2007/01/01(月) 13:24:04っBeautifulSoup
0353デフォルトの名無しさん
2007/01/01(月) 13:25:44いや、perlの連中の間では、Plaggerとかいうのを使って、
こんなことをするのが流行っているらしいんだ。
(スレ違いではあるかもしれんが)
Googleで「はらへった」と検索するとピザが届くようにするまで
http://e8y.net/blog/2006/07/25/p126.html
0354デフォルトの名無しさん
2007/01/01(月) 13:54:47curlで片付くぜ
0355デフォルトの名無しさん
2007/01/01(月) 16:04:15それ読んでも、Plaggerに一向に魅かれないのは
俺の感覚が鈍っているのか、そこの例がイマイチなのか、
どっちなのだろうか。
0356デフォルトの名無しさん
2007/01/01(月) 17:22:300357デフォルトの名無しさん
2007/01/01(月) 17:24:59curl ってなんか単純に url な jpg を持ってくる
っていうのがよくわからんかった記憶が。
一々 -o 指定か stdout に吐くしかなくて...
wget に対するアドバンテージって何なの?
0358デフォルトの名無しさん
2007/01/01(月) 17:32:54エロい例
ttp://yusukebe.com/archives/06/08/24/194057.html
ttp://yusukebe.com/archives/06/10/21/201644.html
エロくないけどなんとなく面白い
ttp://yusukebe.com/archives/06/12/03/230402.html
しかし、情報収集ぐらい手動でやりたい気もする・・・
0359デフォルトの名無しさん
2007/01/01(月) 19:08:46zshとか使わなくても連番を展開できる、などなど
curl http://www.hoge.com/hoge[012-125].jpg -O
0360デフォルトの名無しさん
2007/01/01(月) 19:58:22いま勉強中なんだけど、もしかして無駄?
0361デフォルトの名無しさん
2007/01/01(月) 20:24:350362デフォルトの名無しさん
2007/01/01(月) 21:45:590363デフォルトの名無しさん
2007/01/01(月) 21:47:41今ならPerlやるよりPython覚えたほうがいいよ
Pythonのほうが圧倒的にプログラム書きやすい
0364デフォルトの名無しさん
2007/01/01(月) 23:27:47> Pythonのほうが圧倒的にプログラム書きやすい
そうなんだ!
書きやすいって、たとえばどんなかんじで書きやすいの?
0365デフォルトの名無しさん
2007/01/01(月) 23:46:32書いてて楽しいよ。
0366デフォルトの名無しさん
2007/01/02(火) 00:02:230367デフォルトの名無しさん
2007/01/02(火) 00:09:580368デフォルトの名無しさん
2007/01/02(火) 04:27:140369デフォルトの名無しさん
2007/01/02(火) 08:54:08構造化プログラミングまででいいんなら、
Perl に不足するところはないと思うけどねぇ。
だいたい、総じてPython の方が書きやすいといっても、
正規表現とかPerl の方がやりやすいでしょ?
出来合いのモジュールも多いし、とっつきやすいし。
ただ、構造化プログラミングでは役不足で、
オブジェクト指向の助けが必要だと感じるなら、
やっぱりPython の採用を考えるべきだと思う。
ていうか、Perl のオブジェクト指向がも少し使える
ものだったらなぁ。
Java よりややこしいのでは、スクリプトでやる意味がないもん。
0370デフォルトの名無しさん
2007/01/02(火) 09:29:12perlのオブジェクト指向も大して出来ることは変わらないと思う。
組み込みメソッドとかの関係で気分的な差はそこそこあるかもしれないけど
本質的な表現力の差は無いと思う。
0371デフォルトの名無しさん
2007/01/02(火) 10:14:08使ったりして、もうそれだけで疲れ果てちゃうんだよね。
以下は、Python でのクラス作成の雛形めいたものだけど、
シンプルなキーワードと普通の関数だけで作れるのが分ると思う。
class my_class(object):
def __init__(self, v):
self.__value = v
# 加算
def add(self, v):
self.__value += v
# 減算
def sub(self, v):
self.__value -= v
def set_value(self, v):
self.__value = v
def get_value(self):
return self.__value
obj1 = my_class(1000)
obj2 = my_class(1000)
obj1.add(10)
obj2.sub(30)
print obj1.get_value(), obj2.get_value()
(実行結果)
1010 970
0372371
2007/01/02(火) 10:26:54class my_class(object):
def __init__(self, v):
self.__value = v
# 加算
def add(self, v):
self.__value += v
# 減算
def sub(self, v):
self.__value -= v
def set_value(self, v):
self.__value = v
def get_value(self):
return self.__value
0373デフォルトの名無しさん
2007/01/02(火) 11:33:450374デフォルトの名無しさん
2007/01/02(火) 11:34:050375373
2007/01/02(火) 11:34:18めちゃくちゃ恥ずかしいorz
0376デフォルトの名無しさん
2007/01/02(火) 11:37:250377デフォルトの名無しさん
2007/01/02(火) 11:39:13誤爆に見えなかった
0378デフォルトの名無しさん
2007/01/02(火) 11:57:42>別に自分(達)内ルールをしっかり決めてやれば
やっぱりそういう前提条件が付くということこそが
致命的な弱点だと思う > perl
0379デフォルトの名無しさん
2007/01/02(火) 13:15:42Perl の場合、クラスの作成方法それ自体が複数あって、
自分が知らんやり方されたら、それが正しいのやら間違っているのやら
さえ、よく分からなくなってしまう。
それに、ハッシュのリファレンスとか駆使しなきゃいけないから、
単なる特殊記号(バックスラッシュとか)がすごい大きな意味を
持っていて、バグッたときとか、なにが起きているのか判断するのが
容易じゃない。
そもそも、クラスがなんで、コンストラクタがなんで、
オブジェクトやインスタンス、
フィールドやメソッドがなにを意味していて、
オブジェクト指向がどういうことなのか、ということを
理解している人がほとんどいないように見える。
というのも無理がなくて、
Perl でオブジェクト指向するのは、難しすぎるんだって。
(まー、Python でもオブジェクト指向分かってない人はいそうだけど。
結局、Java やって覚えるのが一番簡単だよな)
自分もPerl6 は待っていたんだよ。でも、もう待ちきれないじゃん。
>>374
いいんだよ。サンプルなんだから。
0380デフォルトの名無しさん
2007/01/02(火) 13:19:46長いコード書くとぐちゃぐちゃになり易い。
ちょっとしたツールなら慣れりゃ高速で書けるし。
Rubyは俺使ってたし今も使うんだが
あれはモジュールとクラスを大量に作るには
悪くない言語だけど行く末がすっげぇ不安って感じ。
matzが痛いし暴走癖あるし儲も痛いし。
んで今はPythonに挑戦中。
まだあんまり解らんが案外細かいところに手が届くと思った。
(Rubyは結構細かいところが抜けてるから)
0381デフォルトの名無しさん
2007/01/02(火) 13:56:48簡単なことは器用にこなせるけど、
それで家を建てるとなるとややこしい
0382デフォルトの名無しさん
2007/01/02(火) 14:47:31デバッグが怖いのは同意。
でかいperlコードのデバッグとか、もう2度とやりたくない。
けど、だからといって「perlには○○が出来ない」というのは違うと思う。
perl6はちゃんと今週も進化してる模様・・・
http://pugs.blogs.com/
なんとなく、出てすぐはpythonよりちょっと上をいってそうな気がする
けど、pythonチーム頭よすぎなのでw、すぐいいとこ取りすると思うけど・・・w
0383デフォルトの名無しさん
2007/01/02(火) 15:43:310384デフォルトの名無しさん
2007/01/02(火) 15:57:32コード書いてて気分がいいね。
0385デフォルトの名無しさん
2007/01/02(火) 16:03:56Perl6 vs Python ていう話は、Perl6 が出ないと、
なんともいえないでしょ。
ただ、はたから見ていて、Perl6 は迷宮に迷い込んでいるように
見えるよ。そもそも、仕様は確定してから作業しないと、
時間ばかりかかるように思う。
それに、いまどうするかというのが目の前の問題だからさ。
出ていないPerl6 をいつまで待てるのか。
一方で、一貫した作法でオブジェクト指向を扱える
Python がすでにあってだよ。
待てる人はPerl6 を待てばいいけど、ならPython を
選ぼうという人も多いと思う。
0386Perl6知らないけど
2007/01/02(火) 17:16:50「Perl6」って既に 「perl」 じゃねーよな
0387デフォルトの名無しさん
2007/01/02(火) 17:36:44テンプレートエンジンのKidとか使って何か勉強してみたいな
と思ってるんだけど石橋を叩いてここは2.5ではなくて
2.4をインストールしとくべきかな…2.5はstableって書いて
あるから2.5でも大丈夫な気もするんだけど…IronPythonの
チュートリアルとかみると2.4とか入れてるだよね…
IronpythonとかKidとか使って初心者がpythonを一から勉強
するなら2.4のほうがいいかな?
0388デフォルトの名無しさん
2007/01/02(火) 19:13:11http://docs.python.org/whatsnew/porting.html
0389331
2007/01/02(火) 20:06:50お返事ありがとうございます。
Unicode版のPythonをインストールするだけで本当に解決するのですか?
というのもMac OS X 10.4にはインストールできるPython 2.3 Unicode版バイナリが無いためです。
0390デフォルトの名無しさん
2007/01/02(火) 21:02:52Unicode版のwxPython
~~
0391デフォルトの名無しさん
2007/01/02(火) 22:46:280392331
2007/01/02(火) 22:58:39ありがとうございます。つまりMac OS X 10.4.8に標準装備されているwxPythonとPythonは
なんと!「Unicode対応ビルドではない」ということでしょうか?
それはOSXが積極的にUnicodeに対応してきた歴史からみると変ですね。
現在インストールされている
Python 2.3.5(プリインストール)
wxPython 2.5.3.1(プリインストール)
がUnicode対応版かそうでないか、確認する方法は無いものでしょうか?
度々スレを汚してしまいすみませんが、よろしくお願いいたします。
0393デフォルトの名無しさん
2007/01/02(火) 23:47:170394デフォルトの名無しさん
2007/01/03(水) 00:46:16>>> import wx
>>> print wx.PlatformInfo
('__WXMSW__', 'wxMSW', 'unicode', 'wx-assertions-on', 'SWIG-1.3.27')
'unicode' が含まれていれば Unicode 対応ビルドです。
あと、文字がお豆腐になるならなるで最小限の再現コードを書いてくれると
答えやすいです( GUI なので厳しいかもですが)。
0395331
2007/01/03(水) 01:06:04>>> import wx
>>> print wx.PlatformInfo
('__WXMAC__', 'wxMac', 'unicode', 'wx-assertions-on')
でした!標準でUnicode対応していたんですね。wxPython側は。
最小限のコードですが、表示されたtextctrlに日本語を入力するとまんまと豆腐です。
import wx
app=wx.App()
frame=wx.Frame(None, -1)
text=wx.TextCtrl(frame)
frame.Show(True)
app.SetTopWindow(frame)
app.MainLoop()
0396394
2007/01/03(水) 01:07:06XRCed がどういうものか知らずに適当レスしました。すいません。
XML tree の encoding を utf-8 にしたらどうでしょうか。
0397デフォルトの名無しさん
2007/01/03(水) 01:09:32独りでやる時だけにしてくれよw
0398デフォルトの名無しさん
2007/01/03(水) 04:44:59って3年前から言ってるじゃんw
0399デフォルトの名無しさん
2007/01/03(水) 09:03:52それはラリーがむごもご
0400デフォルトの名無しさん
2007/01/03(水) 10:03:46僕はmacもwxもよく分からないけど、以下のページの情報は参考にならないかな。
http://ymasuda.jp/python/wxpython/index.html
0401331
2007/01/03(水) 11:39:45ありがとうございます。確認したところ既にUTF-8にしてありました。
XRCedは無視してかまわないので、XRCedを使わない先ほどのサンプルコードを起動して、
空白の入力欄に日本語を入力すると豆腐と化します。
>>400
ありがとうございます。そのページは確認しております。
0402デフォルトの名無しさん
2007/01/03(水) 12:59:34問題なく日本語の表示を行っているねぇ。
http://www.harukaze.net/~haruka/wxpython/index.html
0403331
2007/01/03(水) 13:20:45ありがとうございました。リンク先の環境を再現することで無事解決しました。
プリインストールのPythonとwxPythonは一応Unicode対応してはいるものの
実際の表示は化けるビルドなんですね。
0404デフォルトの名無しさん
2007/01/03(水) 13:34:29a += b
↓↓↓
a += b = x
0405デフォルトの名無しさん
2007/01/03(水) 15:01:380406デフォルトの名無しさん
2007/01/04(木) 10:59:01いちいちself付けるのめんどくさい・・・
0407デフォルトの名無しさん
2007/01/04(木) 11:04:02print u'あいう'
とすると、コンソールにちゃんと表示されるのに、
sys.stderr.write(u'あいう')
とすると、文字化けして表示されるのは何で?
どうしたら文字化けせずに表示できる?
0408デフォルトの名無しさん
2007/01/04(木) 11:20:57これ面白いね。
C:\Program Files\Apache Group\Apache2\htdocs>ruby delichio.rb
delichio.rb:8: uninitialized constant JsonParser (NameError)
ってなって漏れはっヘタレだから実行できなかったけど…orz
0409デフォルトの名無しさん
2007/01/04(木) 11:26:56めんどくさいって、もしかして入力補完とか使ってないのか?
(エディタはなに?)
そもそも、クラス作成とかの定型作業なら、わざわざ打つ部分より
コピペしてる部分の方が多いと思うんだが。
0410デフォルトの名無しさん
2007/01/04(木) 11:47:46コンソールウィンドウの環境設定の表示用エンコーディングと
Pythonの入出力のデフォルトエンコーディングを一致させる
0411デフォルトの名無しさん
2007/01/04(木) 11:50:20ソースコードのテキストのエンコーディングと
ソースコード行頭のエンコーディング宣言を一致させる
Pythonではその4つを正しく設定しておかないと文字化けしてしまいます。
0412デフォルトの名無しさん
2007/01/04(木) 11:51:24つけなくちゃだめです。以上。
0413デフォルトの名無しさん
2007/01/04(木) 11:52:40Pythonの入力補完のあるエディタってどんなのがあるの?
0414デフォルトの名無しさん
2007/01/04(木) 11:55:21上のコードを jsonparser.rb として保存
下のコードに
require 'jsonparser'
0415デフォルトの名無しさん
2007/01/04(木) 11:55:55僕の場合は、サクラエディタでキーワードが少ないから、
自分で勝手にキーワード登録増やして使ってるけど。
0416デフォルトの名無しさん
2007/01/04(木) 11:57:280417デフォルトの名無しさん
2007/01/04(木) 12:39:35プログラマが意識して決めることなんだから
サボりようがないよな?
0418デフォルトの名無しさん
2007/01/04(木) 12:49:18俺はSyntaxHighlighterのキーワードが充実してるみたいだから
それを参考にしてキーワード増やして使おうと思ってる
0419デフォルトの名無しさん
2007/01/04(木) 13:47:11自分もはじめそう思った。
0420デフォルトの名無しさん
2007/01/04(木) 13:51:590421デフォルトの名無しさん
2007/01/04(木) 15:25:350422デフォルトの名無しさん
2007/01/04(木) 15:28:37組み込み関数とかだけなら、これで得られるけどね。
import __builtin__
dir(__builtin__)
あと、必要なキーワード、一気に得られる方法があるといいのだけれど。
自分はちまちま、気のつくたびに登録してる。
0423デフォルトの名無しさん
2007/01/04(木) 16:45:10ん、\SyntaxHighlighter_1.4.1\Scripts\のshBrushPython.jsに
キーワードなら書いてあるからそれをコピペすればおkだよ
shBrushPython.js(登録キーワード一覧)->shCore.js(textaream->listタグ+hilight化エンジン)
->\Styles\SyntaxHighlighter.cssで下記のtagを色づけ
'keyword''builtins''magicmethods''exceptions''types''commonlibs'
0424デフォルトの名無しさん
2007/01/04(木) 16:58:19http://www.dreamprojections.com/syntaxhighlighter/
うーむ。よさげなんだが、英語がわけわか… orz
0425デフォルトの名無しさん
2007/01/04(木) 17:10:100426デフォルトの名無しさん
2007/01/04(木) 17:13:44ドットパイ
ドッパイ
オッパイ
0427デフォルトの名無しさん
2007/01/04(木) 17:48:52Exciteでも使って頑張るヨロシ
>425
日本語のチュートリアルある以上
多少の.py書く程度なら出来るだろw
0428デフォルトの名無しさん
2007/01/04(木) 18:59:16import re
import sys
import urllib
threadURL = "http://pc8.2ch.net/test/read.cgi/tech/1166050674/28"
url_parts = threadURL.split('/')
host, test, cgi, category, dat_no, res_no = url_parts[2:8]
dat_url = 'http://%s/%s/dat/%s.dat' % (host, category, dat_no)
lines = urllib.urlopen(dat_url).readlines()
# 本文の抽出 ' <> 本文 <> '
body = lines[int(res_no) - 1].split(' <> ')[1].decode('sjis')
# リンクタグのカット
body = re.sub(r'<.*?>.*?</.*?>', '', body)
# 行ごとに分割してその一文字目を出力
for line in body.split(' <br>'):
print line[1]
ちょっと質問してみる
0429デフォルトの名無しさん
2007/01/04(木) 19:06:52>>37のが面白そうだったのですこし変えて
実行してみたら
#IndexError: string index out of range
となり上手くいきませんでした…orz
2chのdatの構造は
<>_行_<br>_
_行_<br>_
_行_<br>_
_行_<>
のようなので'<br>_'ではなくて'_<br>'で分割しても
上手くゆくと思うのですけれども上手く分割できず
理由がわからない…orz
0430デフォルトの名無しさん
2007/01/04(木) 19:15:550431デフォルトの名無しさん
2007/01/04(木) 19:22:340432デフォルトの名無しさん
2007/01/04(木) 19:35:14すみません張り間違えましたline[0]です…orz
>>431
'<br>_'ではなくて'_<br>'でも
<>_行_<br>_
_行_<br>_
_行_<br>_
_<br>_
_行_<>
が['_行_', '_行_', '_行_', '', '_行_']と同じように
分割されるように思うのですけれども…よくわからない…orz
0433デフォルトの名無しさん
2007/01/04(木) 19:44:46<br>_の場合
['_行_', '_行_', '_行_', '_', '_行_']
_<br>の場合
['_行', '__行', '__行', '__行_', ''] <- 5つ目の要素が空となりline[0]で出力しようとするとerrorとなる
0434デフォルトの名無しさん
2007/01/04(木) 20:00:28> 2ch で聞こうと思ったのですが、アクセスできませんでした。人大杉と出て
> しまいます。
URL が変わったからかな。
古い URL にアクセスすると http://www2.2ch.net/live.html に飛ばされる。
ってここに書いても意味ない罠。
0435デフォルトの名無しさん
2007/01/04(木) 20:36:26トン
やっぱりそうですか・・・
0436デフォルトの名無しさん
2007/01/04(木) 20:45:16pydoc で変数の説明を表示したいんだけど
書き方が分からない
0437デフォルトの名無しさん
2007/01/04(木) 21:01:20行_<br>_
行_<br>_
行_<br>_
_<br>_
行
_<>
<br>_の場合
['行_', '行_', '行_', '_', '行_']
_<br>の場合
['行', '_行', '_行', '_', '_行']
<br>の場合
['行_', '_行_', '_行_', '__', '_行']
□□□_□ 出力できる // □は2バイト _ は1バイト
□____ #IndexError: string index out of range
□____ #IndexError: string index out of range
なんか間違えてたみたいなので訂正して置く
0438デフォルトの名無しさん
2007/01/04(木) 21:01:35モジュール、クラス定義、または関数(メソッド)定義の最初に文字列を置いてその中に書く。
例えば pydoc.py の先頭とか pydoc モジュール内の関数の定義とかを見てみりん。
0439デフォルトの名無しさん
2007/01/04(木) 21:12:56DATA セクションに表示される項目のところ
0440デフォルトの名無しさん
2007/01/04(木) 22:29:15pydoc 使うのは無理か。
doyxgen がいつの間にやら python に対応してたので
こっち使うことにするよ。
0441デフォルトの名無しさん
2007/01/04(木) 22:51:55インスタンスごとに、フィールド・メンバーの
解説をいろいろ書き分けて書くのん? いや、いいけど…
0442デフォルトの名無しさん
2007/01/04(木) 23:31:52def __init__(self, id):
self.id = id
l = [node(1), node(2), node(3)]
print node(1) in l
これ実行するとFalseになるんですがnodeクラスのidが含まれているときにTrueを返すよい方法はないでしょうか?
contain(id, list)
というlの各要素を順番に調べてidと等しいか調べる関数を自分で作ればよいと思うのですが効率的にinと比較してどうなんでしょうか?
ちなみにlistの要素数はものすごく大きいです。
0443デフォルトの名無しさん
2007/01/04(木) 23:41:38idが一意なら、ListやめてDictionaryにしたら?
0444デフォルトの名無しさん
2007/01/04(木) 23:59:12... def __init__(self, id):
... self.id = id
...
>>> n1 = node(1)
>>> n2 = node(2)
>>> n3 = node(3)
>>>
>>> l = [n1, n2, n3]
>>> print n1 in l
True
0445デフォルトの名無しさん
2007/01/05(金) 00:02:120446デフォルトの名無しさん
2007/01/05(金) 00:12:06アドバイスありがとうございます。
>>443
順番が重要なのでDictionaryはだめなんです・・・
>>444
keyで比較したかったので・・・
>>445
下のように__eq__を実装してできました。inも__eq__で実装されてるみたいですね。
class node:
def __init__(self, id):
self.id = id
def __eq__(self, other):
return self.id == other.id
l = [node(1), node(2), node(3)]
print node(1) in l
0447デフォルトの名無しさん
2007/01/05(金) 00:33:55順番にアクセスできればいいわけ?
0448デフォルトの名無しさん
2007/01/05(金) 00:41:20nodeのidが小さい順に並べておきたかったんです。
だから新しいノード追加するときはnodeのidが小さい順番に並ぶようにリストにinsert()してます。
辞書だと自分で追加した順番が保てないので・・・
はじめはSet使おうと思ったのですがnodeのような可変オブジェクトを入れられないみたいでだめでした。
0449デフォルトの名無しさん
2007/01/05(金) 00:42:22>>> node(1) == node(1)
True
>>> node(1) != node(1)
True
うほっ
0450デフォルトの名無しさん
2007/01/05(金) 00:43:230451デフォルトの名無しさん
2007/01/05(金) 00:56:11setに入れるなら__hash__を定義する必要がある。(これも順番は保てないが)
class Node:
def __init__(self, id):
self.id = id
def __hash__(self):
return hash(self.id)
def __cmp__(self, that):
return cmp(self.id, that.id)
s = set()
s.add(Node(1))
s.add(Node(2))
print Node(1) in s
print Node(3) in s
0452デフォルトの名無しさん
2007/01/05(金) 02:10:39お前どこの出身だッ、その方言は聞いたことがある
よもや愛知県三河地方ではあるまいな
0453デフォルトの名無しさん
2007/01/05(金) 02:47:370454デフォルトの名無しさん
2007/01/05(金) 05:22:46PHPのdecbin()に相当する関数を持つモジュールがあればいいのですが。
http://jp.php.net/manual/ja/function.decbin.php
0455デフォルトの名無しさん
2007/01/05(金) 09:48:38bisectモジュールが役立つ鴨。
import bisect
class Node:
def __init__(self, id):
self.id = id
def __cmp__(self, other):
return cmp(self.id, other.id)
def __repr__(self):
return "<Node#%d>" % self.id
def insert(a, x):
i = bisect.bisect_left(a, x)
if a[i] == x:
raise ValueError, "already there"
a.insert(i, x)
def contains(a, x):
i = bisect.bisect_left(a, x)
return i < len(a) and a[i] == x
nodes = [Node(1), Node(3), Node(5)]
print contains(nodes, Node(2))
insert(nodes, Node(2))
print contains(nodes, Node(2))
0456455
2007/01/05(金) 09:54:38if i < len(a) and a[i] == x:
raise ValueError, "already there"
0457デフォルトの名無しさん
2007/01/05(金) 12:22:04dictにしといて
使うときに、sorted(dict.values(), lambda x, y:x.id - y.id)で、番号順にすればいいと思う。
0458デフォルトの名無しさん
2007/01/05(金) 12:34:38自分の意見というか、matzがpythonのことおもちゃ言語っていう
根拠のひとつでもあるんじゃないの?たぶん、
cの構造体ポインタにあたるものが見えちゃってるみたいな
0459デフォルトの名無しさん
2007/01/05(金) 12:47:060460デフォルトの名無しさん
2007/01/05(金) 13:33:13でも実際はRubyの方がよほどオモチャな件
0461デフォルトの名無しさん
2007/01/05(金) 14:00:49Python厨とRuby厨が仲直りするスレッド
http://pc10.2ch.net/test/read.cgi/tech/1099804004/
0462デフォルトの名無しさん
2007/01/05(金) 14:04:240463デフォルトの名無しさん
2007/01/05(金) 14:26:080464デフォルトの名無しさん
2007/01/05(金) 14:27:48この機能煽るネタ提供するだけだな
0465デフォルトの名無しさん
2007/01/05(金) 14:50:21>>452-453
愛知の田舎に10年ほど住んでたもんでかんわ。たまに三河弁が口をついて出るw
0466デフォルトの名無しさん
2007/01/05(金) 15:06:050467デフォルトの名無しさん
2007/01/05(金) 15:59:570468デフォルトの名無しさん
2007/01/05(金) 16:01:32PC初心者は(・∀・)カエレ!!
0469デフォルトの名無しさん
2007/01/05(金) 16:09:35Python初心者の♀です。
0470デフォルトの名無しさん
2007/01/05(金) 16:17:370471デフォルトの名無しさん
2007/01/05(金) 16:21:372007年の話としてはおかしいよな...
( ゚д゚ )ハッ! 98才のときに始めてから5年のハカーばあさん!?
0472デフォルトの名無しさん
2007/01/05(金) 16:27:510473デフォルトの名無しさん
2007/01/05(金) 16:29:270474デフォルトの名無しさん
2007/01/05(金) 16:52:390475デフォルトの名無しさん
2007/01/05(金) 17:51:56「そこは『コンピューターおばあちゃん』だろうが!」
と咄嗟に思う世代。
0476デフォルトの名無しさん
2007/01/05(金) 18:28:51【AoE3】Age of Empires III 第76幕【TWC】 [PCゲーム]
アニメキャラ・バトルロワイアル感想雑談スレ8 [アニキャラ総合]
◆ ポルトガル語・総合スレッド 10 ◆ [外国語]
【MU】マヤ鯖攻城戦専用晒しスレpart10 [ネットwatch]
おい、魔王様階級ども!バンバンどうですか? [バイク]
(,,゚Д゚).o0(Pythonユーザって・・・・・・・・)
0477デフォルトの名無しさん
2007/01/05(金) 18:34:07そんなの問題にならないくらいキモいスレに行きまくってるから
心配すんな。
0478デフォルトの名無しさん
2007/01/05(金) 19:03:27で、質問はなに? 待ちくたびれてきた。
0479デフォルトの名無しさん
2007/01/05(金) 19:22:08サイトマップを生成し、サイト内にyahoo,google,msnで採用された
登録用のサイトマップファイルを作ると言うものです。
1. python 用の実行プラグラムファイル、と
データ用のファイルを作り
自分のレンタルサーバの中のCGIフォルダの中にアップロードしました。
2. この後なのですが、サーバー内の python2.2 に実行コマンドを出し
python2.2を実行させると書いてあるのですが、
どうやって、実行コマンドをサーバー内の python2.2 に出すのか分かりません。
説明には ssh 等を使ってと書いてあるのですが。
使用しているサーバーのOSは unix です。
よろしくお願いします。
0480デフォルトの名無しさん
2007/01/05(金) 19:38:14要するに、このへんの話なのかな?
俺はやろうと思ったことがないので知らないが。
http://www.google.co.jp/support/webmasters/bin/answer.py?answer=34636&topic=8517
0481デフォルトの名無しさん
2007/01/05(金) 19:42:40sshでログインしてプロンプトから
%cd 目的のフォルダ
%python 目的のスクリプト
0482デフォルトの名無しさん
2007/01/05(金) 19:56:53http://safe-linux.homeip.net/seo/Google_sitemap_gen-03.html
で触れられている sitemap_gen.py ていうもののこと?
0483482
2007/01/05(金) 20:04:32しょうがないので、sitemap_gen.py でぐぐってみたら、
なにか情報得られるかもと、お茶を濁して去っていく。
http://www.google.com/search?client=opera&rls=ja&q=sitemap_gen.py&sourceid=opera&ie=utf-8&oe=utf-8
0484デフォルトの名無しさん
2007/01/05(金) 21:01:49(-_-;)ウー
0485デフォルトの名無しさん
2007/01/05(金) 21:05:400486デフォルトの名無しさん
2007/01/05(金) 21:48:150487デフォルトの名無しさん
2007/01/05(金) 21:51:18ってのがどこなのか(サイトなのか本なのか)書いた方がいいね。
他の人が貼ってるリンク先そのものだったら、貼ってもらった手間が無駄になる。
0488デフォルトの名無しさん
2007/01/05(金) 22:00:58https://www.google.com/webmasters/tools/docs/ja/sitemap-generator.html
>サイトマップ生成ツールを実行するには、ウェブ サーバーに接続する必要があります。
>接続環境により、サーバーへの接続方法は異なります。 たとえば、Unix ベースのサーバーの場合は、通常 SSH を使用して接続します。
0489デフォルトの名無しさん
2007/01/05(金) 22:17:10このサイトの情報が参考にならない?
http://www.vinapark.com/society/modules/news/article.php?storyid=113
ただね、はっきりいうとPythonももちろん関係はあるものの、
xmlとかそっち方面の知識の方が必要なんじゃない?
中途半端な知識じゃ、無理だと思う。
xmlなんて、僕も知らないしorz
しかもPythonの文法もなにも分からないということとなると、
絶望的に難しいと思うなー。
0490デフォルトの名無しさん
2007/01/05(金) 22:20:500491デフォルトの名無しさん
2007/01/05(金) 22:25:260492デフォルトの名無しさん
2007/01/05(金) 22:37:20リモートログインしてスクリプト走らせるだけの話じゃないのか・・・?
自動更新にしたいなら、cronしこむなりすればいいんじゃ
0493デフォルトの名無しさん
2007/01/05(金) 22:52:250494デフォルトの名無しさん
2007/01/05(金) 22:54:100495デフォルトの名無しさん
2007/01/05(金) 22:59:30@@@@@ ∩
6 -ω-ノ 彡
(⊇ ⊂彡☆))д´)>>494
0496デフォルトの名無しさん
2007/01/05(金) 23:02:25リモートログイン ssh
http://www.google.com/search?client=opera&rls=ja&q=%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3+ssh&sourceid=opera&ie=utf-8&oe=utf-8
そもそもPython をどうこういう前に、もうちょっと基本の知識が必要だと思うよ。
Python 動かせても、自分のサイトに合わせた xmlを用意しないといけないはず。
xml分る?
どっかそういう基本的知識を得られるまとめサイトはないのかね?
だれか知らない? ここはPython のスレだし。
プラットフォームはunix というけど、それはサーバの話で、
あなたのマシンはwindows?
その状況で、日常unixを使っているとは思えない…。
あー、mac osx ならありえるか…。
0497デフォルトの名無しさん
2007/01/05(金) 23:09:06もうググリ真下。
すみません。
xmlはあっぷしました。
0498デフォルトの名無しさん
2007/01/05(金) 23:11:300499デフォルトの名無しさん
2007/01/05(金) 23:18:220500デフォルトの名無しさん
2007/01/05(金) 23:33:58俺はHomePageBuider を使うようになってから、
リモートログインなんて、忘れちまったよw
昔は、telnetで入ってviでmlのログの管理とか
してたんだけどな。
最初はftpを知らなくてさw ずっとtelnetでviしてた。
viのクソぶりには泣けたなぁ。
誰か、unixに秀○を移植してくれ、と思ったよ。
って、ここなんのスレよ!
0501デフォルトの名無しさん
2007/01/05(金) 23:46:100502デフォルトの名無しさん
2007/01/06(土) 02:52:340503デフォルトの名無しさん
2007/01/06(土) 10:10:41ガッ
0504デフォルトの名無しさん
2007/01/06(土) 12:53:47ぬ、ぬるぽどこッ?!
0505デフォルトの名無しさん
2007/01/06(土) 12:54:30def decbin(b):
s = ""
if b > 1 : s = decbin(b>>1)
return s + "01"[b&1]
0506デフォルトの名無しさん
2007/01/06(土) 13:26:47Pythonの話じゃないな
>474 の法則は正しいかもしれない。
0507デフォルトの名無しさん
2007/01/06(土) 15:54:04ガッ
0508デフォルトの名無しさん
2007/01/06(土) 16:24:37> アニメキャラ・バトルロワイアル感想雑談スレ8 [アニキャラ総合]
> ◆ ポルトガル語・総合スレッド 10 ◆ [外国語]
> 【MU】マヤ鯖攻城戦専用晒しスレpart10 [ネットwatch]
> 【転職】−転職板@何でも質問所− その65 [転職]
今日は転職らしい
0509デフォルトの名無しさん
2007/01/07(日) 03:07:14htmlに含まれる表を配列に起こすプログラムを教えてください。
0510デフォルトの名無しさん
2007/01/07(日) 04:26:03import HTMLParser, urllib
class Parser(HTMLParser.HTMLParser):
def __init__(self):
HTMLParser.HTMLParser.__init__(self)
self.tables = []
self.data = None
def handle_starttag(self, tag, attrs):
if tag == "table":
self.tables.append([])
elif tag == "tr":
self.tables[-1].append([])
elif tag in ["th", "td"]:
self.data = ""
def handle_endtag(self, tag):
if tag in ["th", "td"]:
self.tables[-1][-1].append(self.data)
self.data = None
def handle_data(self, data):
if self.data is not None:
self.data += data
file = urllib.urlopen("http://www.python.org/doc/lib/typesseq.html")
parser = Parser()
parser.feed(file.read())
parser.close()
for n, table in enumerate(parser.tables):
for i, row in enumerate(table):
for j, data in enumerate(row):
print 'table #%d (%d, %d) => "%s"' % (n, i, j, data)
0511デフォルトの名無しさん
2007/01/07(日) 04:33:55>>510のプログラムはもっとも単純な表を想定している。
複数行(複数列)にわたるセルがあっても何もしないし、
表の中に表が現れると破綻する。実体参照も無視してる。
文字コードも関知しない。あくまで参考程度に。
0512509
2007/01/07(日) 04:47:340513デフォルトの名無しさん
2007/01/07(日) 08:28:400514デフォルトの名無しさん
2007/01/07(日) 14:23:140515デフォルトの名無しさん
2007/01/07(日) 15:28:05kwsk
0516デフォルトの名無しさん
2007/01/07(日) 16:04:05ゆえに日本語データが処理できない
0517デフォルトの名無しさん
2007/01/07(日) 16:23:41日本語データでも処理できてるし
0518デフォルトの名無しさん
2007/01/07(日) 16:52:40みたいなのもイケるの?
ドキュメント見たけど、自分で実装するのと比べて
大したことはやってくれないよね、これ…
0519デフォルトの名無しさん
2007/01/07(日) 17:20:310520デフォルトの名無しさん
2007/01/07(日) 18:43:22↓
('A`)ヴァー という顔をしつつ、
内心 python+csvモジュールで楽勝(゚∀゚)
すでに定時帰宅ムード
↓
使い方忘れてるので
読んで吐き出すだけのコードを書いてみる
日本語もOKなご様子
↓
問題ないので本格的に書く
↓
動かしてみたら期待通りに行かない
なんでunicodeでないのでありますか。こやつ。
↓
モジュールを直そうと思うがC実装
↓
やっぱ自分のソースを直す
↓
あ、あれ?残業?!
0521デフォルトの名無しさん
2007/01/07(日) 19:17:21ちゃんと整備されていないとはどういうこっちゃ。
0522デフォルトの名無しさん
2007/01/07(日) 19:22:49多分、csv の方言が多すぎるからだろ。
csv の標準が規定されているのかどうか知らんが、
例え規定されていたとしてもそれに従っていないモノが多すぎるんだろ。
0523デフォルトの名無しさん
2007/01/07(日) 21:15:20> >>521
> 多分、csv の方言が多すぎるからだろ。
> csv の標準が規定されているのかどうか知らんが、
> 例え規定されていたとしてもそれに従っていないモノが多すぎるんだろ。
んだんだ。CSVは「Excelが読み書きできる」のが事実上の標準になっている状況だし。
RFC4180が2005年10月に公開されてるけど、まだ一般的ではないよね。
http://www.rfc-editor.org/rfc/rfc4180.txt
http://www.kasai.fm/wiki/rfc4180jp
0524デフォルトの名無しさん
2007/01/07(日) 21:25:45十年前でも遅いと思うが、2005年10月かよ。
0525デフォルトの名無しさん
2007/01/07(日) 21:32:31( ゚д゚)ハッ! XML-CSVブリッジ!?
0526デフォルトの名無しさん
2007/01/07(日) 21:35:01XMLがブレイクしだした時にその手のコンバータって山ほど作られていると思うけど。
0527デフォルトの名無しさん
2007/01/07(日) 21:38:50話を聞かないってことは流行んなかったんだよなきっと
0528デフォルトの名無しさん
2007/01/07(日) 21:42:29そりゃ csv 側に方言があり過ぎるから、みんな自分の用が足せる
コンバータをちょろちょろって書いておしまいだからだろ。
0529デフォルトの名無しさん
2007/01/07(日) 21:50:322.4のときは無かったような〜。。。
csv モジュール、前は Python で書いてあったが
高速化のためにC実装になったと記憶している。
方言うんぬんより、このC実装の書き換えが大変なのだと思う。
文字列処理周りはバグとセキュリティホールの宝庫だし。
Pythonコード で書いてあれば codecs を通すだけで済むはず。
ElementTree も一癖あるので注意が必要(((´・ω・`)カックン…
0530デフォルトの名無しさん
2007/01/07(日) 22:16:27誰も守りません(w
0531デフォルトの名無しさん
2007/01/07(日) 23:13:380532デフォルトの名無しさん
2007/01/08(月) 00:03:01エクセルにコピーして csv で書き出せば、html中の表を
配列に入れられるだろ といったことからだから、
むしろエクセル準拠のcsvでなければダメなんじゃない?
0533デフォルトの名無しさん
2007/01/08(月) 00:25:14セパレート文字列,改行コード,クォートの設定など.
で,デフォルトで使われるdialectはExcel準拠になってる.
Windows使いの人から渡されるExcelのCSVファイルを処理するプログラムを
最近作った.別に問題なく読めた.ちなみにPython2.4
0534デフォルトの名無しさん
2007/01/08(月) 01:52:08「"」文字中の「"」文字はカンマと隣合っていないと文字列終端としない、
等等の訳ワカメ仕様を実装することになる。
そういう所は、CSV出力を考慮してちゃんとエスケープして欲しいんだよねぇ…。
そんな事を考えつつ詳細設計にEBNFを載せつつ実装をしてたら、レビュー時に
「えっ、そんな難しく考えちゃってるの?」、という突込みが。
一応弁解はしたが、分かってくれたか疑問。こんなことで仕事できない奴と思われたくない罠w
0535デフォルトの名無しさん
2007/01/08(月) 01:58:34>◆ ポルトガル語・総合スレッド 10 ◆ [外国語]
>【PodCast】アキバ系!電脳空間カウボーイズ [プログラマー]
>【転職】−転職板@何でも質問所− その65 [転職]
おまえら器がでかいな。
0536デフォルトの名無しさん
2007/01/08(月) 01:59:200537デフォルトの名無しさん
2007/01/08(月) 02:15:54プログラム経験浅いんで、CSV=ダメ形式っていう認識しかないんだけど・・・
0538デフォルトの名無しさん
2007/01/08(月) 02:17:09それ以外の一般にはCSVは普通に使われるよ
0539デフォルトの名無しさん
2007/01/08(月) 02:25:010540デフォルトの名無しさん
2007/01/08(月) 02:37:07専ブラ使ってる連中は集計されない。
Webブラウザ利用者と専ブラ利用者の間では
性格・行動に違いがあるから何とも云えん。
0541デフォルトの名無しさん
2007/01/08(月) 03:00:25これからはdat落ちしたら●を買わないとログは見れないと。
あまり期待しないでこれ張って寝る
http://tmp6.2ch.net/test/read.cgi/download/1167375249/
0542デフォルトの名無しさん
2007/01/08(月) 03:29:10かといって総合的にそのcsvの代わりとなるうるものが存在しないのもまた事実。
0543デフォルトの名無しさん
2007/01/08(月) 05:49:390544デフォルトの名無しさん
2007/01/08(月) 05:51:520545デフォルトの名無しさん
2007/01/08(月) 06:02:39TSVとも呼ぶね
0546デフォルトの名無しさん
2007/01/08(月) 06:40:09少しも難しくないのになぁ…。
要素の検証が面倒臭いという意見も良く聞くが、CSVの時は検証しなかったんかい!、と突っ込みたい。
ただXMLは、WindowsだとIEが絡んでよく強制終了に陥るのはどうにかして欲しい。
0547デフォルトの名無しさん
2007/01/08(月) 06:47:57XMLはどうしてもCSVよりパーザが重くなる。とくにDOMなんかはサーバアプリケーションで使うにゃ論外だし。
後、データがCSVに比べて膨れ上がり過ぎ。XMLってなにげにXSLTでもかますんじゃなきゃCSVより格下のデータ形式だと思う。
0548546
2007/01/08(月) 07:02:49半分同意。格下とまでは思わないけど…。
DOMの構築時間はDOM実装によるけど、MSXML4あたりが良い実測値弾いてた。
PythonでもXPathをほぼ完全に使いたい時はMSXML4を使っている。
並列読み込みに対応したライブラリならDOM構築の処理時間は苦にならない。
データ量は拡張可能な環境だったら問題ないよ。
問題はCSVと対比させた処理時間だけど、かなり最適化しても1.6倍ぐらいなる。
夜間バッチ処理なんかだと致命的かも。
DOM以外でXSLTかけた事はないけど、昔はXML>CSV変換をXSLT使ってやっていた。
恐らくXMLtoCSV変換で最速だと思う。
0549デフォルトの名無しさん
2007/01/08(月) 10:01:07気を使って設計・実装してあれば全然問題ないさ。
ほとんどが空白の数百columnを毎秒吐き出すヴァカとか
文字列処理がややこしくなるのに quote 仕様その他を
考えずに , だの " が入ったレコードを作る DQN がいなければ…
0550デフォルトの名無しさん
2007/01/08(月) 10:20:46XMLだと逆に複雑なデータ構造であろうともそのまんま記述できちゃうからって
ろくにデータ構造の正規化を行わずにデータ形式を決定し、
そのデータ形式の複雑さに比例した複雑さを持つデータ処理プログラムを書かなきゃならなくなる。
って、罠に一度嵌りましたよ、ええ。orz
0551デフォルトの名無しさん
2007/01/08(月) 11:46:02無駄大杉
そこで YAML ですよ
0552デフォルトの名無しさん
2007/01/08(月) 11:46:18あるあるwwww
XPathで取得⇒コレクションでループ、の流れをXML設計時に考えておかないと駄目なんだよな。
ref属性で他の要素を参照とか、あまり私を怒らせない方がいい…。
ElementTreeとかもまだまだなんだよなぁ。
今後に期待。特にXPath系。
0553デフォルトの名無しさん
2007/01/08(月) 12:41:09過去ログ見るにはにくちゃんねる以外の方法はないの?
他のサイトでサービスしてたりしない?
0554デフォルトの名無しさん
2007/01/08(月) 13:08:00Matz?
0555デフォルトの名無しさん
2007/01/08(月) 19:24:09どうしようもなく冗長なXMLを使ってる馬鹿は考えを改めた方がいい。
0556デフォルトの名無しさん
2007/01/08(月) 19:50:15ビットじゃなくて、文字コードorテキストレベルで誤り訂正ができる
方法なんてあるの?
>>555
くまーに釣られてやる。
ttp://okmij.org/ftp/Scheme/SXML.html
0558デフォルトの名無しさん
2007/01/08(月) 21:34:500559デフォルトの名無しさん
2007/01/08(月) 22:42:44自分で固定長フィールドの形式を決めてやれば
出来ることはできるだろうけど…
聞かないね.
0560デフォルトの名無しさん
2007/01/08(月) 23:48:010561デフォルトの名無しさん
2007/01/09(火) 00:18:56野菜ジュースで盛り上がってるどっかのスレに比べればまだまし。
0562デフォルトの名無しさん
2007/01/09(火) 00:32:460563デフォルトの名無しさん
2007/01/09(火) 00:38:060564デフォルトの名無しさん
2007/01/09(火) 00:52:040565デフォルトの名無しさん
2007/01/09(火) 01:10:53XMLもYAMLもS式も、Pythonで扱う観点で話題があれば有用だと思う。
XMLは先行技術なんで、色々なAPIと「繋がる」利点がある。今のところ
この利点以上の利点を他のフォーマットに見出せないのが現状。
単なるデータ形式と捉えれば、使いどころがあるからCSVの代用としての
フォーマットとしてはXMLよりアドバンテージがあるだろうよ。
ところでsqllite3て使ってる?こいつが面白くて、ポストAccessだと睨んでいるんだが。
今のところフロントアプリ組んで、理解を深めているところ。
0566デフォルトの名無しさん
2007/01/09(火) 01:46:33他のDBは何かと縛りが出来るがsqliteだと気楽に使えるね。
ちょっと違うかも知れんが
C++を(バリバリに組むのでなく)便利なC言語として使うような感じで
データファイルをsqliteに組み換えちゃおうかと思ってる。
0567デフォルトの名無しさん
2007/01/09(火) 01:54:53でもAccessとかFileMakerとか、GUIフロントエンド込でナンボのDBは
比較対象としては相応しくないような。
かといってDBM系ともサーバクライアント方式のRDBとも比較し難く、
良い意味で微妙なポジションだね。
直接SQLを書かず、O/Rマッパを使うことを前提とした場合の対抗馬はMetaKitかな。
Pythonバインディングもあるし。
0568デフォルトの名無しさん
2007/01/09(火) 07:14:560569デフォルトの名無しさん
2007/01/09(火) 12:34:560570デフォルトの名無しさん
2007/01/09(火) 13:35:44>ちょっと違うかも知れんが
>C++を(バリバリに組むのでなく)便利なC言語として使うような感じで
>データファイルをsqliteに組み換えちゃおうかと思ってる。
っshove
っdbm
っConfigParser
0571デフォルトの名無しさん
2007/01/09(火) 21:42:32txt_2ch_logとか2ch_logとか2chlogとか名前が不適切なpathを
引数に渡すと上手く動かないのかな?log2chにしたら動いたんだけど…
unixとかのフォルダの命名規則はよく分からないけど、C言語の
変数の宣言の時みたいに名前の最初を数字で始めてはいけない、
とかそういうルールがあったりするような気がするのでつが…
0572デフォルトの名無しさん
2007/01/09(火) 21:50:23python2.4(c:\Python24\python.exe)です。書き忘れてました…orz
0573デフォルトの名無しさん
2007/01/09(火) 22:49:28デフォルトでエラーは、無視される。
引数のonerrorにos.errorを受け取る関数を指定すれば、
エラー発生時に呼ばれる。
def func(e):
print e
for x in os.walk("log2ch",onerror=func):
print x
0574デフォルトの名無しさん
2007/01/09(火) 23:05:40グラフがオブジェクトとして存在するシートが複数あるとき、(例えばsheet1,sheet2,sheet3)
pyExcelerator付属のxls2txt.pyで読み込むと、読まれないシートが出てくる(sheet1,3,5,7だけとか)
各シートのグラフを消去すると全シートを読み込むのですが。。。
グラフが載ったシートでもそのまま読ませたいです。
解決方法知っている方教えてください。お願いします。
環境は
OS winXP
(cygwinで走らせてます。)
python:ver2.4.3
pyExcelerator:ver0.6.3a
です。
0575デフォルトの名無しさん
2007/01/09(火) 23:49:160576デフォルトの名無しさん
2007/01/10(水) 00:21:590577デフォルトの名無しさん
2007/01/10(水) 02:49:50ConfigParserを頂きます
0578デフォルトの名無しさん
2007/01/10(水) 06:57:49その環境だけど普通に動くぞ
0579デフォルトの名無しさん
2007/01/10(水) 09:33:540580デフォルトの名無しさん
2007/01/10(水) 10:53:06そうなの!?
代わりに何を使うのが推奨?
0581デフォルトの名無しさん
2007/01/10(水) 12:23:23ん、そっかじゃあ起こるのはうちの環境だけなのかもしれないやね
Python 2.4.4 (#71, Oct 18 2006, 08:34:43) [MSC v.1310 32 bit (Intel)] on win32
>>573
ありが�d
0582デフォルトの名無しさん
2007/01/10(水) 14:46:580583デフォルトの名無しさん
2007/01/10(水) 15:06:530584デフォルトの名無しさん
2007/01/10(水) 16:32:48GUIとかがPythonで自由に作れれば面白そう
0585デフォルトの名無しさん
2007/01/10(水) 18:30:270586デフォルトの名無しさん
2007/01/10(水) 19:14:54ttp://itpro.nikkeibp.co.jp/article/USNEWS/20070110/258323/
0587デフォルトの名無しさん
2007/01/10(水) 22:10:260588デフォルトの名無しさん
2007/01/11(木) 01:14:19ConfigParserは名前が変わるだけ?
0589デフォルトの名無しさん
2007/01/11(木) 01:33:000590デフォルトの名無しさん
2007/01/11(木) 11:21:250591デフォルトの名無しさん
2007/01/11(木) 11:31:41こんな timelabel.py をつくりました
## timelabe.py
import sys
for line in sys.stdin:
sys.stdout.write("%13.2f \t%s" % (time.time(), line) )
% logger | timelabel.py
とやっても,うまく出力されません(バッファリングのせい?).
logger は ^C を打つまで止まらないやつです.
% ls | timelabel.py
みたいな"stdin が eof までいくコマンド" なら動作するのですが,
このバッファリングをやめさせるにはどうすれば良いのでしょうか?
0592デフォルトの名無しさん
2007/01/11(木) 11:46:130593デフォルトの名無しさん
2007/01/11(木) 12:13:15loggerの使い方間違ってない?
0594デフォルトの名無しさん
2007/01/11(木) 12:44:49同じ名前のコマンドがあったんですね。
実際には vmstat とかの出力を捕まえるイメージです...
結局こうすれば一応動いているみたいです。
while True:
line = sys.stdin.readline()
if line == '': break
sys.stdout.write("%13.2f \t%s" % (time.time(), line) )
0595デフォルトの名無しさん
2007/01/12(金) 22:58:22われわれはインペリアルクロスという陣形で戦う
お前は私の後ろに立て
お前のポジションが一番安全だ
0596デフォルトの名無しさん
2007/01/12(金) 23:56:54\ __ /
_ (m) _ピコー
|ミ|
/ `´ \
('A`)
ノヽノヽ
くく
0597デフォルトの名無しさん
2007/01/13(土) 01:14:080598デフォルトの名無しさん
2007/01/13(土) 01:41:05BitTorrentです。
0599デフォルトの名無しさん
2007/01/13(土) 09:13:36あと sketch とか
0600デフォルトの名無しさん
2007/01/13(土) 11:06:350601デフォルトの名無しさん
2007/01/14(日) 22:39:11705NK には Python for S60 はインストール不可能?
ttp://discussion.forum.nokia.com/forum/showthread.php?t=84373&page=3
ここでの fumihikoshibata 氏の804NKに関するやり取りを見る限り無理みたいだけど。
705NKでも同様に無理ってことかね。
すれ違いならごめんなさい。
0602デフォルトの名無しさん
2007/01/14(日) 22:53:10インストールできるよ
705NKIIでも
Nokiaの型番で調べるといいかも(6630?6680?)
電車の時刻表のPythonアプリをかいたひとがいて
それ動かしてる
まとめサイトが今でもあるなら、そこに情報あるんでない
0603デフォルトの名無しさん
2007/01/14(日) 23:22:22あるクラスのインスタンスを
MyClass('文字列')
MyClass(arg1, arg2)
MyClass(arg1, arg2, 真偽値)
# arg1, arg2 は別の独自クラスのインスタンス
の3つの形式で作成したいのですが
__init__ はどう定義すべきでしょうか?
後2者はデフォルト値で出来そうですが
最初の形式も受け入れたいのです。
0604デフォルトの名無しさん
2007/01/14(日) 23:24:07702NK(6630) S60 2nd Editon にはインストールできてるんですけど、
705NK(N73) S60 3rd Edition では Symbian Signed 版がまだリリースされてないのです。
3rd Edition は Self Signed 版しかなくて日本版の端末には単純にはインストール不可っぽい。
それで、誰か知ってる人居ないかなと思いまして。
もう少し調べてみます。
0605デフォルトの名無しさん
2007/01/15(月) 00:33:53class MyClass:
def __init__(self, *args):
argc = len(args)
if argc == 1:
print '形式1'
elif argc == 2:
print '形式2'
elif argc == 3:
print '形式3'
else:
raise TypeError('引数の数があってねーよ')
引数の型をチェックしたければisinstance関数で適当に。
0606デフォルトの名無しさん
2007/01/15(月) 18:10:27ありがとうございます。
そんな感じで書けば良いんですね。
0607デフォルトの名無しさん
2007/01/15(月) 21:44:11今日は疲れたのでもう寝る。
0608デフォルトの名無しさん
2007/01/15(月) 21:46:540609デフォルトの名無しさん
2007/01/15(月) 22:43:30勘違いはなはだもうしわけない
705なんてあるのね
0610デフォルトの名無しさん
2007/01/15(月) 22:55:32いいことを教えてやろう。
googleはブラウザや公式APIを使わないリクエストを弾くのだ。
だからUserAgentをIEやFirefoxに変えてやればいいのでは。
0611デフォルトの名無しさん
2007/01/15(月) 23:52:17>>607じゃないけど早速試してきた。
from urllib2 import *
opener = build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
f = opener.open('http://www.google.co.jp/search?q=yard+to+feet')
print f.read()
開けたけど、こりゃきついわwww
0612デフォルトの名無しさん
2007/01/15(月) 23:52:470613デフォルトの名無しさん
2007/01/16(火) 20:29:21ぐちゃぐちゃだな。いやがらせかこれは。
0614デフォルトの名無しさん
2007/01/16(火) 20:35:360615デフォルトの名無しさん
2007/01/16(火) 23:49:46import re
import urllib
import urllib2
re_calc = re.compile("calc_img\.gif.+<font size=\+1><b>(.+)</b></td>")
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
base_url = "http://www.google.co.jp/search?q="
def urlencode(_s, _encoding="utf8"):
return urllib.quote_plus(_s.encode(_encoding))
def main():
query = raw_input(">>> ")
if not query:main()
elif query.strip().lower() == "exit":return
rf = opener.open(base_url + urlencode(query))
html = rf.readlines()
for line in html:
result = re_calc.search(line)
if result:
print result.group(1).replace("<font size=-2> </font>", "")
break
rf.close()
main()
main()
0616デフォルトの名無しさん
2007/01/16(火) 23:57:310617デフォルトの名無しさん
2007/01/17(水) 00:02:080618デフォルトの名無しさん
2007/01/17(水) 01:45:32つpygoogle
0619デフォルトの名無しさん
2007/01/17(水) 03:24:13ファイルがあるのを知っているのは漏れだけで
いいと思うんだ…
0620デフォルトの名無しさん
2007/01/17(水) 03:33:32このページのサンプルをpythonを使って書くとしたら
どんな風に書いたらいいかな
ttp://www2u.biglobe.ne.jp/~MAS/perl/waza/const2.html
ttp://www2u.biglobe.ne.jp/~MAS/perl/waza/strcat.html
use Smart::Comments;と#use Readonly;を利用するのに必要なpmが
インストールされてないことに気が付かなくて少しはまりますた
0621デフォルトの名無しさん
2007/01/17(水) 20:42:47Youはこれ見なよ
http://japan.cnet.com/news/media/story/0,2000056023,20339947,00.htm
googlekey配布してないYO
0622デフォルトの名無しさん
2007/01/17(水) 21:05:440623デフォルトの名無しさん
2007/01/17(水) 22:23:41もう配布してないのかよorz
やろうと思ってたのに
0624デフォルトの名無しさん
2007/01/18(木) 05:16:56Ω ΩΩ
0625デフォルトの名無しさん
2007/01/18(木) 05:41:36Ω ΩΩ
0626デフォルトの名無しさん
2007/01/18(木) 14:16:070627デフォルトの名無しさん
2007/01/18(木) 18:25:340628デフォルトの名無しさん
2007/01/18(木) 18:26:01これどうやってインストールするの?
> 3. curl http://d.hatena.ne.jp/faerie/20051108/1131380541 | uudecode すると tropy.tar.gz ができる
ここで躓いてる…orz (windows python2.4.4使用中)
0629デフォルトの名無しさん
2007/01/18(木) 18:36:02'uudecode' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
http://www.kaoriya.net/から cURL.exe for Windows を落としてきて
上のコマンド打ってみたけどうまくいかねー
0630デフォルトの名無しさん
2007/01/18(木) 19:05:29書いてあったからコピペしてきてテキストファイルに貼り付けて拡張子を
tar.gzに変えて無理やり解凍してみようとしたけどうまく行くわけもなく…orz
http://www.jp.freebsd.org/QandA/HTML/736.html
戻し方 :
% uudecode hogehoge.uue
uuencode されたファイルの前や後ろにいかなる情報があっても, それらを無視しますので,
ヘッダの除去などといった余計な操作はしなくても結構です.
cURL(htmlクライアントみたいなもの)でhtmlデータを落としてきてパイプで繋いで
uudecodeに喰わせればあとは勝手に解凍してくれるってわけね…windowsには
uudecodeなんてないよ…orz
0631デフォルトの名無しさん
2007/01/18(木) 19:29:55マックだと大丈夫なのね…orz
0632デフォルトの名無しさん
2007/01/18(木) 19:30:46>書いてあったからコピペしてきてテキストファイルに貼り付けて拡張子を
>tar.gzに変えて無理やり解凍してみようとしたけどうまく行くわけもなく…orz
そこまでやってなんで最後ではまる?
拡張子を.uueにしてみれ
0633デフォルトの名無しさん
2007/01/18(木) 19:41:130634デフォルトの名無しさん
2007/01/18(木) 20:43:47Lhaplusを入れ直して、拡張子を.uueに変えたら解凍できますた。
�dくすです
0635デフォルトの名無しさん
2007/01/18(木) 21:42:05import uu
fs = file('aaa.uue', 'rb')
uu.decode(fs)
三行で解凍できそうでした
(error吐いてたけどtropy.tar.gzが空のファイルで出来てた)
File "C:\Python24\lib\uu.py", line 99, in decode
raise Error, 'No valid begin line found in input file'
uu.Error: No valid begin line found in input file
http://www.koders.com/python/fid7721A5C1D8AB627BBC9E66717A1434C1BFFEEC1B.aspx#L99
uu.pyの99行目をbeginからbegin-base64に書き換えてみた
File "C:\Python24\lib\uu.py", line 137, in decode
data = binascii.a2b_uu(s[:nbytes])
binascii.Error: Illegal char
「binascii」をJGrepでGrepしてみた
C:\Python24\Lib\test\test_binascii.py
"""Test the binascii C module."""
Cなのかというか何だそれどこからインポートしてるだよ…orz
0636デフォルトの名無しさん
2007/01/18(木) 22:50:47beginではなくてbegin-base64だから、こっちのbase64を使うのね
import base64
fs = file('aaa.uue', 'rb')
fd = file('tropy.tar.gz', 'wb')
base64.decode(fs, fd)
4行で解凍できそうだった
(error吐かないで5KBのaaa.uueから4KBのtropy.tar.gzが出来てた)
ファイル"tropy.tar.gz"はアーカイブファイルではありません。
以降のファイルを圧縮しますか?(Lhaplus)
これはどういうことなんだかもう全然さっぱりだよ…orz
0637633
2007/01/19(金) 01:12:39結局のところbase64なわけだから、元ネタの
>begin-base64 644 tropy.tar.gz
の**次**の行から、最後の
>====
の**前**の行までをbase64.decodeすれば良いだけの話。
(手元の環境で確認済み)
0638デフォルトの名無しさん
2007/01/19(金) 03:22:49解凍デキタ━━━(゚∀゚)━━━!!
base64圧縮ってなんか面白いですね。thxです!!
0639デフォルトの名無しさん
2007/01/19(金) 14:13:27日本語入力できない。
0640デフォルトの名無しさん
2007/01/19(金) 16:41:32なんでこれ定価より高い値段がついてんの?
0641デフォルトの名無しさん
2007/01/19(金) 17:00:300642デフォルトの名無しさん
2007/01/19(金) 22:58:06http://www.amazon.co.jp/exec/obidos/ASIN/0596009402/
0643デフォルトの名無しさん
2007/01/20(土) 15:13:07s.connect((HOST, PORT))
data = s.recv(1024)
としたら
data = '\xe5Jk*\x91\x98\xfa\xdf\x88m\n'
となりました。
実際受け取ったのは
E5 4A 6B 2A 91 98 FA DF 88 6D 0A
のようなバイナリデータですが
binascii.b2a_hex(data)とすれば一致するようです。
pythonでのバイナリデータの表現、扱いがわからないのですが
良い方法ありませんか?
0644デフォルトの名無しさん
2007/01/20(土) 15:59:57エスパーレスすると、
data = [ord(c) for c in data]
とかすれば望むものが得られるのではないか?
0645デフォルトの名無しさん
2007/01/20(土) 15:59:58そのコードの最後でtype(data)をやれば分かる
>良い方法ありませんか?
何をする方法?
0646デフォルトの名無しさん
2007/01/20(土) 22:15:00日本語もろくに理解できないひとは黙っててください
0647デフォルトの名無しさん
2007/01/20(土) 23:12:270648デフォルトの名無しさん
2007/01/21(日) 00:36:27参考にさせてください。
自分はJavaから流れてきたからeclipseでやってたけど、
お手軽にやりたいのにあんな巨大なIDE使うのもバカらしいなと思って、
最近xyzzyにしてみました。
でも、eclipseだと他のプラットフォームでも使い勝手が同じだからなー。
0649デフォルトの名無しさん
2007/01/21(日) 00:37:400650デフォルトの名無しさん
2007/01/21(日) 00:40:130651デフォルトの名無しさん
2007/01/21(日) 00:57:440652デフォルトの名無しさん
2007/01/21(日) 03:51:24WideStudioってどう?
0653648
2007/01/21(日) 09:14:23iPythonとWideStudioってちょっと面白そう。
0654デフォルトの名無しさん
2007/01/21(日) 12:06:280655デフォルトの名無しさん
2007/01/21(日) 16:54:16最近うんこAA見ないね。
なんか手を変え品を変えって感じだな。
0656デフォルトの名無しさん
2007/01/21(日) 19:21:59| 丶 _ .,! ヽ
> ``‐.`ヽ、 .|、 |
゙'. ,ト `i、 `i、 .、″
| .,.:/"" ゙‐,. ` /
` .,-''ヽ"` ヽ,,,、 !
、,、‐'゙l‐、 .丿 : ':、 <おまたせー
、/ヽヽ‐ヽ、;,,,,,,,,,-.ッ:''` .,"-、
,r"ツぃ丶 `````` ../ `i、
,.イ:、ヽ/ー`-、-ヽヽヽ、−´ .l゙`-、
_,,l゙-:ヽ,;、、 、、丶 ゙i、,,、
,<_ l_ヽ冫`'`-、;,,,、、、、.............,,,,、.-`": │ `i、
、、::|、、、ヽ,、、. ```: : : ``` 、.、'` .|丶、
.l","ヽ、,"、,"'、ぃ、、,、、、、.、、、.、、、_、.,,.ヽ´ l゙ ゙).._
,、':゙l:、、`:ヽ、`:、 : `"```¬――'''"`゙^` : ..、丶 .l゙ `ヽ
,i´.、ヽ".、".、"'ヽヽ;,:、........、 、、...,,,、−‘` 、‐ |゙゙:‐,
,.-l,i´.、".`ヽ,,,.".` `゙゙'"`'-ー"``"``r-ー`'": _.‐′ 丿 ,!
j".、'ヽ,".、".、"`''`ー、._、、、 、._,、..-‐:'''′ .、,:" 丿
゙l,"`"`''ヽヽ"`"` ```゙'''"ヽ∠、、、、ぃ-`''''": ` 、._./` ._/`
`'i`ヽヽヽ`''ーi、、、: : 、.,-‐'` 、/`
``ヽン'`"` : `~``―ヽ::,,,,,,,,,,.....................,,,,.ー'``^ ,、‐'"`
`"'゙―-、,,,,..、、 : ..,、ー'"'`
: `‘"`―---------‐ヽ``"''''''""
0657デフォルトの名無しさん
2007/01/21(日) 19:31:00目も当てられない状況になったのだが今はどうなっているのやら。
0658デフォルトの名無しさん
2007/01/21(日) 19:54:29手元の環境で試してみた。
$ ipy
Python 2.4.1 (#65, Mar 30 2005, 09:13:57) [MSC v.1310 32 bit (Intel)]
Type "copyright", "credits" or "license" for more information.
IPython 0.7.2 -- An enhanced Interactive Python.
? -> Introduction to IPython's features.
%magic -> Information about IPython's 'magic' % functions.
help -> Python's own help system.
object? -> Details about 'object'. ?object also works, ?? prints more.
In [1]: print "日本語"
日本語
In [2]:
OKみたい。
0659デフォルトの名無しさん
2007/01/21(日) 19:56:150660デフォルトの名無しさん
2007/01/22(月) 07:46:40スクリプトを保存しないで実行できるし、plinkと組み合わせて
リモートのUNIXマシンのpythonだって実行できるし、
数行から数十行のスクリプトを試す場合、非常に便利。
0661デフォルトの名無しさん
2007/01/23(火) 12:28:54perlでのsystem('ls')見たいな感じです。
0662デフォルトの名無しさん
2007/01/23(火) 12:30:54宮崎マンセー
0663デフォルトの名無しさん
2007/01/23(火) 16:53:20いつの間に…
おおよそきれいにできました。とんくす
import urllib2
from BeautifulSoup import BeautifulSoup
query_url = 'http://www.google.co.jp/search?num=0&q=yard+to+feet')
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
soup = BeautifulSoup(''.join(opener.open(query_url)))
try:
print soup.find('img', {"src":"/images/calc_img.gif"}).findNext('b').string
except:
print "N/A"
0664デフォルトの名無しさん
2007/01/23(火) 18:25:14apacheと一緒に使うとくだらない仕様(あるいはバグ)があるのでよぷ注意
0665デフォルトの名無しさん
2007/01/24(水) 03:10:49array.array('B',data)
0666デフォルトの名無しさん
2007/01/24(水) 07:06:390667デフォルトの名無しさん
2007/01/24(水) 07:09:30日本語の文字列を文字列を文字参照(&#xnnnn;みたいな形式)に
エンコードするにはどうしたらいいですか?
0668デフォルトの名無しさん
2007/01/24(水) 07:39:030669デフォルトの名無しさん
2007/01/24(水) 07:55:35s = u'あいうえお'
s.encode('ascii', 'xmlcharrefreplace')
0670デフォルトの名無しさん
2007/01/24(水) 10:44:49定義っていうかユニコードの文字参照だお。
0671デフォルトの名無しさん
2007/01/24(水) 12:11:110672デフォルトの名無しさん
2007/01/24(水) 16:17:48別解:文字のコード値は ord() で得られる。
>>> text = unicode("あいうえお", "mbcs")
>>> for c in text: print "&#%d;" % ord(c) # まずは単純に for ループで
あ
い
う
え
お
>>> ["&#%d;" % ord(c) for c in text] # リスト内包でも OK
['あ', 'い', 'う', 'え', 'お']
>>> "".join(["&#%d;" % ord(c) for c in text]) # つなげて完成
'あいうえお'
>>> "".join("&#%d;" % ord(c) for c in text) # 2.5だと [] が省ける
'あいうえお'
>>>
0673デフォルトの名無しさん
2007/01/24(水) 17:08:43inspect モジュールの f_linenoというのがあったのですが、
#!/usr/local/bin/python
import inspect
ThisFrame = inspect.currentframe()
def LineNo():
print "(1) %d in function" % ThisFrame.f_lineno
print "(2) %d in function" % ThisFrame.f_lineno
print "%d in main script" % ThisFrame.f_lineno
LineNo()
これを実行すると
9 in main script
(1) 10 in function
(2) 10 in function
となり、これはこれで正しいですけど、関数定義の中の実際の行番号がわかりません。
もっと、スクリプトの中の絶対的な行番号を知る方法はないでしょうか。
0674デフォルトの名無しさん
2007/01/24(水) 17:32:43import sys
def lineno():
try:
raise ValueError
except:
return sys.exc_info()[2].tb_frame.f_back.f_lineno
0675デフォルトの名無しさん
2007/01/24(水) 17:43:16意味はまだわかりませんけど、その定義を書いて下のようにしたらできました。
ありがとうございます。
def LineNo():
print "(1) %d in function" % lineno()
print "(2) %d in function" % lineno()
frameの意味とか勉強してみます。
0676デフォルトの名無しさん
2007/01/24(水) 17:50:53関数定義の中にinspect.currentframe()を書けば良かったです。
def LineNo():
FuncFrame = inspect.currentframe()
・・・
もうちょっと実験すればよかった
0677デフォルトの名無しさん
2007/01/24(水) 17:56:18Python2.5 ドキュメントの 26.10.4 The interpreter stack 曰く、最後に
del frame しなきゃいけないらしい。下のようにするべき?
import inspect
def lineno():
frame = inspect.currentframe()
try:
return frame.f_back.f_lineno
finally:
del frame
def LineNo():
print "(1) %d in function" % lineno()
print "(2) %d in function" % lineno()
print "%d in main script" % lineno()
LineNo()
0678673
2007/01/24(水) 18:12:44もうちょっと勉強してみます
0679デフォルトの名無しさん
2007/01/24(水) 20:41:030680デフォルトの名無しさん
2007/01/24(水) 22:16:59科学計算ネタとか?
0681デフォルトの名無しさん
2007/01/24(水) 22:50:00計算対象(なんたら力学とか)のチョー専門的な話と
解法(離散化手法とか求解性能の分析とか)の割と専門的な話と
ハード(SMPクラスタとか)の話とソフト(SciPyとか)の話があって、
最初の2つは知らない人、使わない人にはワケワカメな可能性が高いし、
あとの2つはあんまり面白い話題がないんだよねえ。
フーンで終わってしまう。俺は好きだけどねえ、そういう話。
0682デフォルトの名無しさん
2007/01/24(水) 23:16:29している奴はいないのか?
drubyってのは話には聞くが、rubyがわからないので使った
ことない。
0683デフォルトの名無しさん
2007/01/24(水) 23:26:570684デフォルトの名無しさん
2007/01/24(水) 23:36:10おお、ほんとだ。どうもありがと。
ついでですいませんが、どれかお勧めのあったら教えてください。
0685デフォルトの名無しさん
2007/01/25(木) 13:39:02ttp://twistedmatrix.com/trac/wiki/FoolsCap
0686デフォルトの名無しさん
2007/01/25(木) 16:46:44ttp://www.zope.org/Products/ZODB3.6
0687デフォルトの名無しさん
2007/01/25(木) 18:02:50http://docs.python.org/lib/module-DocXMLRPCServer.html
http://docs.python.org/lib/module-xmlrpclib.html
0688デフォルトの名無しさん
2007/01/25(木) 18:06:38p2p型機構のもあるし
0689677
2007/01/26(金) 15:19:47ちょっと訂正。最近のPythonのGCは循環参照も検出できるからいつかは解放される。
ただ、循環参照してないオブジェクトが参照カウントが0になった途端に解放される
のに比べて、解放されるまでに時間がかかるのでメモリ的に嬉しくないのと(GCに負荷も
かかるはず)、循環参照検出機能がgc.disableなどでオフにされてると解放されないのとで、
「delしたほうがいい」ということみたい。(絶対じゃないみたい)
0690デフォルトの名無しさん
2007/01/26(金) 19:11:18http://headlines.yahoo.co.jp/hl?a=20070126-00000384-reu-ent
0691デフォルトの名無しさん
2007/01/26(金) 20:04:18以前の羊丸飲みネタは写真付きだったが、、、
0692デフォルトの名無しさん
2007/01/26(金) 20:25:00http://www.nst.com.my/
直リンク。
http://www.nst.com.my/pix/pix_top_01261
でも思ったほどインパクトないな。こっちのほうが強烈。
http://10e.org/mt/archives/200510/070306.php
0693デフォルトの名無しさん
2007/01/26(金) 20:57:190694デフォルトの名無しさん
2007/01/26(金) 22:53:21ワニますこっと な言語ってあったっけ?
0695デフォルトの名無しさん
2007/01/26(金) 23:06:45なに勝ち負けにこだわってんだよ。
0696デフォルトの名無しさん
2007/01/26(金) 23:55:11勝負事に興味の無いオレ、を表明するんだよね
0697デフォルトの名無しさん
2007/01/27(土) 00:02:240698デフォルトの名無しさん
2007/01/27(土) 00:06:070699デフォルトの名無しさん
2007/01/27(土) 00:58:12mingwでコンパイルしてる方いらしたらconfigureのオプションを
教えていただけないでしょうか。次のようにすると、
configure --without-threads --with-pth --pregix=/home/im/python25
configureは通るんですが、
./Modules/posixmodule.c: In function `posix_mkdir':
./Modules/posixmodule.c:2199: error: too many arguments to function `mkdir'
というエラーで引っ掛かってしまいます・・・。mingwの問題のような気がしないでも
無いですが、ひょっとしてposixmodule.cを手で直すしかないのでしょうか・・・。
0700デフォルトの名無しさん
2007/01/27(土) 01:08:42pyMinGWというパッチが存在することからして、
Python.org謹製のtarballではコンパイルは通らない希ガス。
てか、なにゆえ自炊しているの?
拡張モジュールをMinGWでコンパイルして使いたいだけなら
本体側はPython.org謹製のWin32版をインストローリングすればいいわけだが。
0701デフォルトの名無しさん
2007/01/27(土) 01:21:33えっと自分でビルドしてるのは、pythonを組み込み言語として
使おうと思ってるからでして、本家配布のものはVC7で
コンパイルされてるらしいので、できればmsvcrt.dllにCランタイムを
統一したいからです。あとインストーラが嫌いなんです・・・
あとユーザーの環境と組み込みの環境でバージョンが異なる場合を
考えると、ユーザーに本家からダウンロードさせるよりも、
python25.dllをアプリと一緒に配布した方がいいかなと・・・。
pyMinGWはちょっとググって見ます。ありがとうございます。
0702デフォルトの名無しさん
2007/01/27(土) 06:04:15python-modeとかにないですか?
時々、タブと空白を混ぜて書いてしまって、訳がわからなくなる。
0703デフォルトの名無しさん
2007/01/27(土) 07:16:390704デフォルトの名無しさん
2007/01/27(土) 10:58:24あやしいリージョンを M-x untabify または M-x tabify すればいいと思われ。
0705デフォルトの名無しさん
2007/01/27(土) 11:07:190706デフォルトの名無しさん
2007/01/27(土) 12:06:020707デフォルトの名無しさん
2007/01/27(土) 18:05:28たまーに確認程度に一時的onにする事はある
0708デフォルトの名無しさん
2007/01/27(土) 23:29:01できればTurboGearやDjangoのつかえるやつ。
0709デフォルトの名無しさん
2007/01/27(土) 23:43:070710デフォルトの名無しさん
2007/01/28(日) 01:11:100711デフォルトの名無しさん
2007/01/28(日) 02:11:08xreaはこれ見ると新旧入り混じってるように見えるんだが
新規アカウントは必ず新しいサーバーに割り当てられるの?
0712デフォルトの名無しさん
2007/01/28(日) 06:45:39xreaはサーバアカウント取得する時に
どのサーバか選択出来るから無問題
0713デフォルトの名無しさん
2007/01/28(日) 11:09:010714デフォルトの名無しさん
2007/01/28(日) 14:05:23一通りFAQ見てもみつからないんだけど
0715デフォルトの名無しさん
2007/01/28(日) 18:27:45全サーバで同じかどうかは分からんけど
$ /usr/local/bin/python
Python 2.4.3 (#2, Nov 7 2006, 17:01:53)
[GCC 2.95.4 20020320 [FreeBSD]] on freebsd4
でも、俺自分のホームディレクトリの下に 2.5 をビルドして使ってる.
何の問題もないよ.
0716デフォルトの名無しさん
2007/01/28(日) 23:15:30えっ!?
どうやって自分でビルドするの?
コンパイラ入ってるの?
0717デフォルトの名無しさん
2007/01/28(日) 23:41:370718デフォルトの名無しさん
2007/01/29(月) 00:25:180719デフォルトの名無しさん
2007/01/29(月) 11:09:48xreaってSSH使ってコンパイルできたっけ?
最近ためしたとき無理だったが。
0720デフォルトの名無しさん
2007/01/29(月) 11:12:38それなんだったけかなぁ
3.4.xはだめとか3.2.xはいけるとか
そんなんだったきがする
さくらでtrac動かすページに情報あったような...
0721デフォルトの名無しさん
2007/01/29(月) 11:13:210722デフォルトの名無しさん
2007/01/29(月) 23:14:16鯖の仲間よ、ちょっとだけ負荷かけるが許してくれ
0723デフォルトの名無しさん
2007/01/30(火) 01:50:43つ[nice]
0724デフォルトの名無しさん
2007/01/30(火) 02:12:41おいらブサイクなんで nice -20 で逝こうとした。
でも否定されました。
あ り が と う sakura たん
0725勉強がてら字幕inのスクリプト書いてみますた
2007/01/30(火) 12:15:57weblog = ET.parse(file('_OWv_Q_JNaU.xml')).getroot()
for e in weblog: # xml要素の列挙 これがないとe.findall()が使えない…
print e.text
# XPath
items = [] # ここで定義しないと駄目、嵌った…orz
for i in e.findall('time'):
secstr = i.find('sec').text
sec = float(secstr) # sec = int(secstr)
print sec # ここでは元のデータと同じ桁数なのに
#print "%.3f" % sec
items.append([sec, i.find('comment').text.encode('sjis')]) # listに入れたらfloat表記
print items; items.sort(); print items
for e in items: # [[],[],[]] の 形式のリストから中身を取り出す
print "%.3f\n%s" % (e[0],e[1])
0726勉強がてら字幕inのスクリプト書いてみますた
2007/01/30(火) 12:17:14<timeline></timeline>の部分をコピーしてきてxmlファイルに保存して
実行すると、secで昇順にsortされたセリフが出力されます
実数->文字列変換, リスト内でのデータの格納のされ方, 拡張された?print文
リストデータのsortの仕方, 色々勉強になりますた…orz
XPathの使い方は正直いまいち良く分かりませんでした><
0727デフォルトの名無しさん
2007/01/30(火) 14:56:44おまえらみんな合宿だ
http://www.python.jp/Zope/PyLog//1169034548/index_html
0728デフォルトの名無しさん
2007/01/30(火) 17:57:12> 1月末まで。
明日までか・・・・。
0729デフォルトの名無しさん
2007/01/30(火) 18:12:57http://news23.2ch.net/test/read.cgi/news/1170148161/l50
0730デフォルトの名無しさん
2007/01/30(火) 18:18:160731デフォルトの名無しさん
2007/01/30(火) 19:59:200732デフォルトの名無しさん
2007/01/30(火) 20:21:440733デフォルトの名無しさん
2007/01/30(火) 20:38:380734デフォルトの名無しさん
2007/01/30(火) 21:15:53ElementTree に XPath は実装されてないよ。
find() なんかの引数に渡せるのは、 'body/div/p' みたいに
要素名をスラッシュで区切った文字列だけだと思ってほぼ問題なし。
root = ET.fromstring(xml)
items = []
for time in root.findall('timeline/time'):
sec = time.find('sec')
comment = time.find('comment')
items.append([float(sec.text), comment.text])
ElementTree 公式のドキュメントと、urllib, urllib2 を調べると吉です。
0735デフォルトの名無しさん
2007/01/30(火) 21:37:01俺なんて2.1以前だぜ
0736デフォルトの名無しさん
2007/01/30(火) 21:40:50http://effbot.org/zone/element-xpath.htm
0738デフォルトの名無しさん
2007/01/31(水) 08:27:331.6で勉強したから、それ以降のことはよくわからない
Perlも4まで
0739デフォルトの名無しさん
2007/01/31(水) 10:45:46( ゚∀゚)人(゚∀゚ )ナカマー!
>1.6で勉強したから、それ以降のことはよくわからない
ヽ(´ー`)人(´ー`)ノナカーマ
0740デフォルトの名無しさん
2007/01/31(水) 13:02:410741デフォルトの名無しさん
2007/01/31(水) 13:15:470742デフォルトの名無しさん
2007/01/31(水) 15:39:060743デフォルトの名無しさん
2007/01/31(水) 17:37:52|
|
___ ,-────-、 | 最高ですか〜〜〜〜!?
/ ` \ |
/ヾ ヾ .,! !,,!_´,,//_// ヽ|
/=/`''~~ /彡- |\
|=.| 二 | 三- | \______
ヽ| ── \三- |
| ヽ ,, 、ー ̄ \ |
/ / \ |=/\- (
| / |/ / ,,|
| ( 。つ\ ノ ||
.| / 丶ー ヽ | |
| /____」 | ! ! .|
| |/ / / ノノノノ
| |__/ // /\_
//⌒丶 -─ / /≒/
( ヘ )____/_ノ /≒ /≒
/ /-' /≒ / ≒
/ ̄ ̄\_____/ ≒, / ≒≒
/─ \ / ≒ / ≒≒
0744デフォルトの名無しさん
2007/01/31(水) 18:04:45/ ,-、ヽ /l
l !;;ノ |' 〈 < うるせえ
| |ヽ.|
/ ヽ
./ l
l l |
0745デフォルトの名無しさん
2007/01/31(水) 20:49:04で、IDLEを起動しようとしたんですが、
"tk84.dllが見つからなかったため、このアプリケーションを開始できませんでした。"
とエラーが出て起動できません。
import Tkinterすると159と同じエラーが出ます。
IDLE以外にもTkを使ってるパッケージは同様のエラーで使えない状態です。
何か解決策があれば教えていただけますか。
0746デフォルトの名無しさん
2007/01/31(水) 23:08:20activetclに入ってるらしいよ
ググる先生が教えてくれたから間違いないよ
0747デフォルトの名無しさん
2007/01/31(水) 23:30:46http://www.scipy.org/
から入れたらダメなの?
0748デフォルトの名無しさん
2007/02/01(木) 00:31:590749745
2007/02/01(木) 09:26:17ありがとうございます。
>746
とりあえず試してみます。
>747
仕事で個人的に使おうかと思っているのですが、
周りの人間が「オレもそれ使いたい」という状況になったときに、
導入障壁が低い環境にしたかったからです。
Scipy単体で入れるには、LAPACKなどのライブラリも含めて
ビルドする必要があるらしいので。
0750デフォルトの名無しさん
2007/02/01(木) 15:04:51scipy.org の scipy-0.5.2.win32-py2.5.exe と numpy-1.0.1.win32-py2.5.exe を
拾ってきてインスコすればいいんじゃないの?
0751745
2007/02/01(木) 17:11:34downloadにバイナリが置いてあったんですね。
installのページしか見てなかった。orz
0752デフォルトの名無しさん
2007/02/02(金) 01:33:12ところで SciPy 使ってどういう計算をする予定?
スクリプト言語で科学技術計算をやろうとするところに興味がある。
0753デフォルトの名無しさん
2007/02/02(金) 02:16:16いまや "フツー" じゃねーの?
0754デフォルトの名無しさん
2007/02/02(金) 03:42:330755745
2007/02/02(金) 21:18:47研究関連でちょくちょく出てくる非定型の計算や処理に使おうかと。
matlabは職場にあるんですがライセンスが限られているので、
フリーで使えるのはありがたいです。
計算時間が問題になるような用途には
専用のツールやらシミュレータやらで対応します。
0756デフォルトの名無しさん
2007/02/03(土) 00:46:14>どういう計算かと言われると今の時点では特に無いのですが、
>研究関連でちょくちょく出てくる非定型の計算や処理に使おうかと。
>matlabは職場にあるんですがライセンスが限られているので、
>フリーで使えるのはありがたいです。
>計算時間が問題になるような用途には
>専用のツールやらシミュレータやらで対応します。
matlabを買った方がいいよ.
0757デフォルトの名無しさん
2007/02/03(土) 04:11:26レスありがとう。なるほど、行列が扱える高機能電卓として使うってことね。
>>753
フツーなのかなあ。
pure Python スクリプトとして計算プログラムを書くの?
それとも C/Fortran コードを呼び出すためのグルー言語扱い?
並列化とかフツーはどーしてんだろう。。。
0758デフォルトの名無しさん
2007/02/03(土) 10:19:15高エネルギー系かなにかの学会(シンポジウム?)での
発表資料で大規模なデータ処理・分析に python を
大々的に使ってるよーというような資料を見たことはあるな.
それを探してっていうよりさりげなく引っ掛かってきた例だし
numeric のスライドとかにも使われている例とか
出てなかったっけ?
0759デフォルトの名無しさん
2007/02/03(土) 12:14:130760デフォルトの名無しさん
2007/02/03(土) 13:36:13計算ごりごりのとこはCか何かで書いて、それの貼り合わせ用にPythonでしょ。
特に分業化が進むと有り難みがわかるよ。
0761デフォルトの名無しさん
2007/02/03(土) 19:13:19レスどうも。
そーいや、シミュレータの制御全般に Python を使っている、という事例が以前 PyJUG のニュースに載ってたね。
その研究グループを率いている東大のD先生は大の Python 好きなのだそーな(直接うかがった)。
また先日、PyGTK でシミュレータのインタフェースを書いている別の研究グループのポスター発表を見かけた。
ところで、シミュレーション目的に使われる言語のデファクトスタンダードは MATLAB なんだよね。
インタラクティブな開発環境がシミュレーションの方法・アルゴリズムを考える研究者にとって便利なんだろう。
しかし、MATLAB は基本的に逐次の処理系なので、昨今安価に利用可能になってきている SMP マシンや
PC クラスタの並列計算性能が活かせない。じゃーどうするかというと、研究者が MATLAB で書いたアルゴリズムを
プログラマが時間をかけて C や Fortran に書き直して並列化していた。開発効率が恐ろしく悪いので何とかしたい、
ってんで Star-P なんて製品が出てきたけど、まだ発展途上っぽい。
個人的に Python が科学技術計算分野での役割は MATLAB とかなりかぶっていると思ってる。でもって
MATLAB と同じ問題を抱えている気がする。つまり、研究者がインタラクティブな開発環境としてプロトタイプに
使うにはうってつけだけど、いざ並列計算環境で実問題を解きましょうという段になると、結局 C や Fortran による
書き直しが必要になってくる。Star-P に Python/NumPy バージョンが存在するのもうなずける。
でね、「Python で科学技術計算」とゆーのをちょくちょく耳にするようになってきたので、
インタラクティブな pure Python の逐次環境と C/Fortran でゴリゴリ書かざるを得ない並列環境とのギャップを
みんなどーやって埋めてんのかなあ、と思うわけです。そのギャップに対して俺は何ができるのかなあ、と。
そもそも誰も Python でプロトタイピングなんかしてなくて、単なるグルー言語、貼り合わせ用なのかも知れない。
でもそれって「Python で科学技術計算」って言えるのかなあ、と。取り留めのはなしでスマソ。
0762デフォルトの名無しさん
2007/02/03(土) 19:20:48Python が科学技術計算分野での役割 → Python の科学技術計算分野での役割
0763デフォルトの名無しさん
2007/02/03(土) 20:37:59ものが前提になってると思うんだけど、そうなの?
0764デフォルトの名無しさん
2007/02/03(土) 21:09:23んー、俺の関心が主に並列計算にあって、逐次よりも並列の方が C/Fortran で書く必要性が顕著だから
761みたいな書き方になった(言い訳)。並列化のために云々というところを「高速(逐次)計算のために」と
読み替えても761の趣旨は変わらないです。
0765デフォルトの名無しさん
2007/02/03(土) 21:13:18実際には C で書いたライブラリに放り投げるから
そんなに遅くはないんですよね?
0766デフォルトの名無しさん
2007/02/03(土) 21:13:40>「Python で科学技術計算」って言えるのかなあ
言えるんじゃね?761の興味には適さないかもしれんが、一般的には言える。
0767デフォルトの名無しさん
2007/02/03(土) 21:14:50pure Python (pure MATLAB) で十分間に合う程度の計算は科学技術計算とは言えない、とか
そういう意図は全然ないので念のため。俺の関心が HPC 方面にあるというだけのことです。
0768デフォルトの名無しさん
2007/02/03(土) 21:17:46C などの言語で書くのは必然になる。「Python で科学技術計算」 なら
それほど真剣に高速化する必要はないけど、それなりの速度が出て、
しかもちゃらっと書ける、ってのが落としどころなんだと思う。
そう考えると、いわゆるスケルトン系のアプローチなんかは向いてる
ような気がする。言語の性質にも適合するところが多そうだし。
0769デフォルトの名無しさん
2007/02/03(土) 21:52:54そです。ただ、Numeric において「実際には C で書いたライブラリ」が呼ばれる、とゆーのは
Python をライブラリ貼り合わせ用のグルー言語として使うとゆーアプローチそのもので、
そんなのは「Python で科学技術計算」とは言わないのではないかなあ、というのが俺の疑問。
>>766
> 761の興味には適さないかもしれんが、一般的には言える。
そーなんだよね、やっぱ。これからは相手の趣旨を確かめるようにしないとなあ。
>>768
そこが落としどころだと俺も思う。
たぶん「本気の高速化」が必要な人には Python の「貼り合わせアプローチ」はアピールしないんだろうなあ。
0770デフォルトの名無しさん
2007/02/03(土) 22:12:15MPI でコリコリ並列プログラムを書くのはたいへんなんで、もっと抽象度を上げましょう、
とゆーことで、逐次の Ruby を並列プログラムが書けるように拡張してますよーという内容。
1.クラスタを構成する個々の計算ノードを place オブジェクトとして抽象化
2.for ループを並列化して、ループ内のコード(クロージャ)を place オブジェクトに割り当てて並列実行
てなことをやるという話だった。
Python もこういうアプローチを進めてみると「本気の高速化」が必要な人にもアピールするかもなあ。
インタラクティブな逐次環境と高性能計算(HPC)用途の並列環境のあいだのギャップを埋める可能性は
こっちの方向にある気がしてきた。
みんな、取り留めのないはなしに乗ってくれてありがとう。
0771デフォルトの名無しさん
2007/02/03(土) 22:26:590772デフォルトの名無しさん
2007/02/03(土) 22:31:26>Python をライブラリ貼り合わせ用のグルー言語として使うとゆーアプローチそのもので、
>そんなのは「Python で科学技術計算」とは言わないのではないかなあ、というのが俺の疑問。
「ボトルネックはCで書くからRubyの遅さは問題にならない」はむしろRubyの売り文句だった
希ガス。「逆に考えるんだ。RubyをGCのついたCライブラリと考えるんだ」というのもあったね。
0773デフォルトの名無しさん
2007/02/03(土) 22:35:530774デフォルトの名無しさん
2007/02/03(土) 22:40:080775デフォルトの名無しさん
2007/02/03(土) 22:46:53>>772
Ruby のことは知らないけど、
少なくとも Python では「遅さは問題にならない」というわけにはいかなくて、
Cで書かれたライブラリを呼んでいても数パーセントの呼び出しオーバヘッドが乗ってくる。
結局のところ、生産性を取るか高速性を取るかという話になってるんだよねえ。
ぶっちゃけ、グルー言語としての Python はほぼ完成の域にあって
技術的にはあまり面白みがないし、前述のギャップも埋められそうにない。
じゃあどういうアプローチなら可能で、俺にも貢献ができそうかなあと思ったわけです。
0776デフォルトの名無しさん
2007/02/03(土) 22:49:07確かに多いな(www
http://www.google.co.jp/search?as_q=%E3%81%AA%E3%81%82&hl=ja&as_sitesearch=www.rubyist.net
0777デフォルトの名無しさん
2007/02/04(日) 02:23:41そういう話であれば Fortress の今後に期待
0778デフォルトの名無しさん
2007/02/04(日) 02:58:11先日 Sun のインタプリタがフリーソフトになったし有望株だね。
昨年の春に Guy L. Steele Jr. の講演を聞いたよ。
開発目的は To Do for Fortran What Java Did for C なんだと言ってた。
数式っぽくコーディングできるあたりは MATLAB ユーザにも受けるかもね。
HPR の開発者の人も Fortress を含め DARPA HPCS 言語を引き合いに出して
並列プログラミングの生産性を上げることが HPR の目標だと言ってた。
この方面は今後面白くなりそうだね。
Python ベースの分散並列プログラミングのフレームワーク作りとかやったらチョー楽しそう。
0779デフォルトの名無しさん
2007/02/04(日) 05:05:180780デフォルトの名無しさん
2007/02/04(日) 11:21:553月2日発売だとさ.
0781デフォルトの名無しさん
2007/02/04(日) 11:30:300782デフォルトの名無しさん
2007/02/04(日) 12:38:180783デフォルトの名無しさん
2007/02/04(日) 14:15:14この表現に何か引っ掛かるものが・・・w
0784デフォルトの名無しさん
2007/02/04(日) 14:21:52パイソンはABCから派生したらしいね
パイソンはスクリプト言語で速度重視では
ないだろ
0785デフォルトの名無しさん
2007/02/04(日) 14:23:43あんまり粘着するとZOPE関係者だと疑われるよ
0786すげーしっくり来ないんだけど
2007/02/04(日) 14:26:36どこのコピペ?
0787デフォルトの名無しさん
2007/02/04(日) 14:37:40ルビーやパールはリナックスの人が使うから
パソコンユーザーのほとんどがウインドーズの人
だからパイソンを使うという話
0788デフォルトの名無しさん
2007/02/04(日) 14:46:360789デフォルトの名無しさん
2007/02/04(日) 15:10:45> Software Design、LLフレームワーク、.Net Expertの既存コンテンツからの再録を中心にすえることで、コストを抑えた製作を行う予定です。
激しく萎える説明文ですな.
0790デフォルトの名無しさん
2007/02/04(日) 15:14:03www
企画書かなんかをそのまま写しちゃったのかな
0791デフォルトの名無しさん
2007/02/04(日) 15:25:04Djangoって書いてあるけど,これまでSDの記事になったことってあったっけ?
どこからの再録なんだろう?
0792デフォルトの名無しさん
2007/02/04(日) 15:32:41書き下ろしの記事もあるみたいだね.
雑誌のMOOKなんだから、再録があるのは普通.
いずれにしろ、ここに巣くってる貧乏人のITドカタ共には関係のない話だけど.
0793デフォルトの名無しさん
2007/02/04(日) 17:35:180794デフォルトの名無しさん
2007/02/05(月) 03:09:19プログラミングなんか仕事にするかよ、失礼なw
0795デフォルトの名無しさん
2007/02/05(月) 03:35:030796デフォルトの名無しさん
2007/02/05(月) 04:50:12MacOS X (MacBook intel core duo) でPython2.5をコンパイルしたら、C-pもC-nも使えないから困ってます。
$ cd Python-2.5/
$ ./configure --prefix=/usr/local
$ grep readline config.log
...
ac_cv_lib_readline_readline=yes
ac_cv_lib_readline_rl_callback_handler_install=yes
ac_cv_lib_readline_rl_completion_matches=no
ac_cv_lib_readline_rl_pre_input_hook=yes
#define HAVE_LIBREADLINE 1
readlineはちゃんと検出されてるんだけどなあ。
なんかアドバイスちょーだい。
0797デフォルトの名無しさん
2007/02/05(月) 06:33:270798デフォルトの名無しさん
2007/02/05(月) 07:39:34早寝早起きからはじめような。
0799デフォルトの名無しさん
2007/02/05(月) 08:03:460800デフォルトの名無しさん
2007/02/05(月) 08:10:47OSX(10.3.9)ですが、普通に使えてますよ。
ターミナルの設定なんかを見直してみては?
0801デフォルトの名無しさん
2007/02/05(月) 14:32:57str = '\hoge\real\path' # window系の path 文字
idx = str.find('real')
ってことをやりたいんですが '\r' として
解釈されてしまうんでどうにもマッチできません。
re.escape() ってのがソレかと思ったんですが \r は
そのまま残ってしまいました... orz
どうやって加工すればいいのでしょうか?
0802デフォルトの名無しさん
2007/02/05(月) 14:41:36>>> '\n' == "\n"
True
だから
'\\hoge\\real\\path'
とするか
r'\hoge\real\path'
とするといい。
0803726
2007/02/05(月) 14:43:37エスケープシーケンス \r python で google!
http://systama.blog52.fc2.com/blog-entry-23.html(要点)
http://www.m-takagi.org/docs/python/tut/node5.html(詳細)
0804デフォルトの名無しさん
2007/02/05(月) 14:46:31というのが興味深い。
0805デフォルトの名無しさん
2007/02/05(月) 15:00:28>802,803 を読んでそっかーと思って調べなおいてみたら...
読み込んだ時点で '\\r' に変換されていたのに
自分のコード片のテストを '\r' な文字を突っ込んで
やろうとしていた自分の勘違いミスでした...
アドバイスありがとうございます
0806デフォルトの名無しさん
2007/02/05(月) 17:12:35なんか、話を蒸し返すようで悪いが、
言語がスレッドセーフであるのも大事なんだろうけど、
プログラムする側も、マルチスレッドのデザインパターンが
使えないとまずいんじゃないの?
結城氏の本にデザパタのマルチスレッド版があったが(java本だけど)。
もっとも、自分の場合は普通のデザパタを学ぶので、手一杯。
いつか余力があったら、マルチスレッドのデザパタもやりたい…。
0807デフォルトの名無しさん
2007/02/05(月) 17:39:10・ポインタ(リファレンス)
・構造体
・オブジェクト指向
・マルチスレッド
すべての鬼門を越えられないと,デザパタを学んでも"設計"ができるようにはならない.
できない人は手足君として一生こき使われる運命.
0808デフォルトの名無しさん
2007/02/05(月) 17:49:53どうしてみんな自分の手足を縛りたがるのかが不明
0809デフォルトの名無しさん
2007/02/05(月) 17:50:27そんな基本的なことを知らない馬鹿はまずいないw
0810デフォルトの名無しさん
2007/02/05(月) 17:51:440811デフォルトの名無しさん
2007/02/05(月) 17:52:16Pythonの場合は、
・ポインタ(リファレンス)
・構造体
はいらないよ。
Pythonは変数は基本的に参照渡しがデフォだし、
構造体は、メソッドのないクラスで代用だと思う。
オブジェクト指向とマルチスレッドは必須じゃないけど、
使えるようにはなりたいねー。
ただ、マルチスレッドの優先度は低いでしょ。
デザパタ本は、Pythonで書かれた本がほしいよね。
もっとも、慣れればjavaをPythonに直すのはたいした事も
ないけど。
みんなして、デザパタ本のJavaをPythonで組みなおしてるのは
無駄の極みだと思うので、誰か本ででもwebででも公開して
ほしい…。
0812デフォルトの名無しさん
2007/02/05(月) 17:58:10大丈夫かよ。
メソッドで直接インスタンスの生成とかしてないだろうね?
0813デフォルトの名無しさん
2007/02/05(月) 17:58:13それを本やwebで公開したら良いと思ってるんだよね。
だったら自分でするべきことは決まってるよね?
0814デフォルトの名無しさん
2007/02/05(月) 18:09:29./ ,' 3 / ヽ--、
l / ヽ、
/`'ー/_____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0815デフォルトの名無しさん
2007/02/05(月) 18:16:12http://www.amazon.com/dp/0130409561
表紙にワロタ
http://www.amazon.com/dp/1932394621
0816811
2007/02/05(月) 18:20:35>>> import sys
>>> import exceptions
>>>
>>> class _Template(object): # Abstract なつもり
... def write(self): # public なつもり
... self._writeHeader()
... self.__writeBody()
... self._writeFooter()
... def _writeHeader(self): # protected なつもり
... raise exceptions.NotImplementedError, '%s' %`self.__class__`
... def _writeFooter(self): # protected なつもり
... raise exceptions.NotImplementedError, '%s' %`self.__class__`
... def __writeBody(self): # private なつもり
... sys.stdout.write(self._message)
...
>>> class Implement1(_Template):
... def __init__(self, message):
... self._message = message
... def _writeHeader(self):
... sys.stdout.write('/ ')
... def _writeFooter(self):
... sys.stdout.write(' /\n')
0817デフォルトの名無しさん
2007/02/05(月) 18:20:540818811
2007/02/05(月) 18:21:31... def __init__(self, message):
... self._message = message
... def _writeHeader(self):
... sys.stdout.write('+-' + '-' * len(self._message) + '-+\n| ')
... def _writeFooter(self):
... sys.stdout.write(' |\n+-' + '-' * len(self._message) + '-+\n')
...
>>> x = Implement1('test1')
>>> x.write()
/ test1 /
>>> x = Implement2('test2')
>>> x.write()
+-------+
| test2 |
+-------+
ホントは、どっかで拾ってきたものだけどなw
0819デフォルトの名無しさん
2007/02/05(月) 18:26:24インデント崩さずに持ってくるのは、難しい…org
0820デフォルトの名無しさん
2007/02/05(月) 18:29:30Windows, MacOS, UNIXの各プラットフォーム間で可搬性を
なるべく失わずにファイルロックを行うにはどうしたら良いですか?
file.flock(FILE::LOCK_SH) のようなことがしたいのです。
os.open()でいけるかとも思ったのですが、ファイルオブジェクトを
返すのではなくディスクリプタを返すらしく、使うのに躊躇しています。
0821デフォルトの名無しさん
2007/02/05(月) 18:38:57マルチプラットフォームは諦めたほうがいい。
0822デフォルトの名無しさん
2007/02/05(月) 19:08:33そういうのって、先に、Implement1と2があって、共通部分を自然に抽出
したら、_Templateが出てきました。っていうのが本来の流れであって、
はじめから_Templateありきで書き始めるのは、むしろ生産性が落ちると思う。
そして、本当に、_writeFooter、_writeHeaderが必要なのかどうか(この場合必要ない。
を考えなくなるから、いつまでたってもコードがきれいにならない
0823デフォルトの名無しさん
2007/02/05(月) 19:45:51細部なんかどう書くのか分らないけど、
これこれこういう筋道で組み立ててよ、と指し示すためのものだ
ということでしょ。
テンプレートは作ったから、あとは君、頼むね、っていうか。
エラーが出るようになっているのは、そうなっているかを
チャックするためだし。
一般的にいって、オブジェクト指向ではクラスを作る人と
使う人が別にいて、クラスを作る人は苦労をしょいこみ、
クラスを作る人は楽をするようにする、というものでしょ。
気がついたら、ほとんどフレームワークのようになっていた
というのが理想なんじゃないかな。もちろん、そんなにうまく
いくもんじゃないけど。
クラスを作る人が苦労を背負い込めば、使う人は楽をできる。
それが基本の考えと思うよ。
あるいは、一度苦労してクラスを作っておけば、
あとで何度でも楽ができるというか。
クラスを作るのは一度だけ、でも、インスタンスは何でも
使うもんだし。
0824デフォルトの名無しさん
2007/02/05(月) 19:49:16ポインタが分からないヤツにどうやって参照渡しを説明しろと?
構造体が分からないヤツにどうやってオブジェクト指向のデータ構造を説明しろと?
0825デフォルトの名無しさん
2007/02/05(月) 19:58:04いや、だって、cならそうだろうけど、
Pythonでは基本的に参照渡ししかないし、
構造体はないから、メソッドを省いたクラスを使うしかないし。
もちろん c ならお説のとおりと思いますが。
0826デフォルトの名無しさん
2007/02/05(月) 19:58:52だからCをやったときすぐにポインタが理解できた
0827デフォルトの名無しさん
2007/02/05(月) 20:09:24お手軽な手段を求めてしまった自分が恥ずかしいです。
とりあえずこれを試してみることにします。ありがとうございました。
ttp://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65203
# os.open()はNTではO_EXLOCKが定義されていないのでそもそもアウト
>>824
参照っていう概念さえ説明してしまえば、ポインタ抜きでデータ構造について
説明できるのがPythonみたいな言語のメリットのような気がします。
ttp://www.ibiblio.org/obp/thinkCSpy/
構造体の知識はstructモジュールとか使うときに必須?
0828デフォルトの名無しさん
2007/02/05(月) 20:13:10>>806
えーと、あまり網羅的に見ているわけじゃないけど、
すくなくとも俺の知る限り、科学技術計算、特に高性能計算(HPC)の分野では
オブジェクト指向のオの字もないです。もちろんデザパタもね。
MPI とか OpenMP といった並列化技術が主流で、
みんな C/Fortran でゴリゴリと構造化プログラミング(笑)してます。
つまり、「デザパタ」と呼べるようなオブジェクト指向的共通認識が全然ない。
もちろん MPI や OpenMP には各々「定石」の書き方、たとえば all-to-all とか
reduction みたいな各種の常套手段があって、知らないと困るわけだけど、
そういうのはデザパタとは呼ばない気がする。
でもって、今ある道具や定石は抽象度が低くて生産性があまりよろしくない。
それで Fortress とか HPR とか>>778の「分散Python」みたいな話が出てくるわけです。
0829デフォルトの名無しさん
2007/02/05(月) 21:49:59参照渡しと値渡しの違いが判らないと、pythonでも困る場合が多いような。
値渡し相当にしたくて、リスト[:]でコピーして渡す場合も多いよね。
0830デフォルトの名無しさん
2007/02/05(月) 21:52:28それなりに使える駒の集団にするための道具であって、
一人で動くプログラマにはあまり関係ない。
「珠玉の〜」であろうとKnuth本であろうと先人の生きたコード
読んで学ぶのだろうと、好きなやりかたで学べばだいたい同じような
所に落着くしね。
0831デフォルトの名無しさん
2007/02/05(月) 22:37:09そうそう、デザパタなんて色んなスキルのヤツが沢山いる開発チームで使う
コミュニケーションの道具に過ぎない
プログラミングの神髄はもっと深いところにあるし
誰でも神髄に触れられるわけではない
0832デフォルトの名無しさん
2007/02/05(月) 22:40:30参照渡しにしろポインタにしろ同じものを別の単語で説明しているだけだし
「ポインタ抜き」に拘る理由も[ポインタを抜いてもいい」理由もないと思う
むしろ ぽいんた というのがハッキリ見えているのは
概念の説明には便利だと思う。
0833デフォルトの名無しさん
2007/02/06(火) 00:17:56オブジェクト指向の前に構造化設計/分析が先じゃないかな。
0834デフォルトの名無しさん
2007/02/06(火) 01:02:53んー、たぶん、C/Fortranでゴリゴリってのが現場の要求に一番見合ってる分野なんだと思う。
読みやすくーとか、保守性がーとか言ってたらコードがどんどん遅くなって、
大枚はたいて買った計算時間が無駄になる世界だからね。とても保守的で旧態依然としてる。
そういう世界だと Python みたいな「速度はそこそこだけど書きやすい」的な言語は
はっきり言って異端で、使っている人がいると目立つのです。
並列計算機が安くなって計算時間を金で買わなくてもよくなった人が増えた一方で、
解くべき問題が複雑になって生産性が速度に優先するようになってきたってことなんだろうなあ。
いい流れだ。
0835デフォルトの名無しさん
2007/02/06(火) 01:07:37UMLなどのオブジェクト指向・分析設計のこと?
それとも、構造化プログラミングの設計のこと?
僕としては、ぱっぱと関数にわけでくみ上げていける
構造化プログラミングの良さをもっと見直してもいいんじゃないかな、
という気もしてる。
UMLでいつまでも足踏みしてるのも馬鹿らしいし。
いったん構造化でコードを組んでから、必要な部分だけクラス化して
いくというような手法がいいんじゃないかと思うんだけど、
邪道かなぁ。
リファクタリングが手法として認められるなら、
これだって、よほどマトモな考えと思うんだが。
あー、もとの話はマルチスレッドによる高速化の話だったんだよね。
デザパタのマルチスレッド版の話を持ち出したのは、スレッドの同期を
いちいち手作業で考えていたのではやってられないと思ったので。
形式をあわせるだけで、スレッドの同期やロックが安心できるなら、
その方がいいかなと。
Javaではマルチスレッドのデザパタがあるようだし。(結城氏の本ね)
ところでその前に、Python自体がスレッドセーフなのかどうかが
分らないんだけどw
0836デフォルトの名無しさん
2007/02/06(火) 01:17:39加工したりといった用途ならPythonで十分な希ガス。漏れはC++で組んだけど、結構大変だった。
そういえば「電脳Ruby」とかいう数値計算にRubyを使う話があるけど、この分野なんかでもPythonで
十分といえるのではないだろうか。
0837デフォルトの名無しさん
2007/02/06(火) 01:20:14↓
手続きの抽象化
↓
[構造化プログラミング]
↓
データ構造の抽象化
↓
[オブジェクト指向プログラミング]
↓
データ構造の抽象化を前提とした手続きの抽象化
↓
[関数型プログラミング] ← 今このへん
↓
?????
0838デフォルトの名無しさん
2007/02/06(火) 01:29:04オブジェクト指向を含めず構造化のみで組むってこと?
俺は逆に構造化のみのプログラミングの方が
データと手続きを分離しなくちゃいけなくて面倒だと思うのだが…
0839デフォルトの名無しさん
2007/02/06(火) 01:33:430840デフォルトの名無しさん
2007/02/06(火) 01:35:18スキルも経験も作りたいものも様々だから一概には言えない。
明らかに不毛な議論。
0841デフォルトの名無しさん
2007/02/06(火) 02:34:51おれも調べたけど、Pythonではwindowsとunixとで共通に使えるfile lockは提供されてないみたい。
これぐらいあってもおかしくないのにね。Rubyにはあるからできないはずないんだけど。file descriptor関係なく。
おれは
fcntl = msvcrt = None
try:
import fcntl
except ImportError, ex:
try:
import msvcrt
except ImportError, ex:
pass
として、あとはfcntl is not Noneならfcntl.flock()を、msvcrt is not Noneならmsvcrt.locking()を呼び出す関数を定義している。
>>827の方法だとうまくいかないと思うけど、うまくいったら教えて。
0842デフォルトの名無しさん
2007/02/06(火) 05:57:08>オブジェクト指向を含めず構造化のみで組むってこと?
じゃなくて、Pythonではオブジェクト指向が強制されてないのを逆手にとって、
構造化プログラミングを基本としつつ、必要なところだけオブジェクト指向に
するという考えもあっていいんじゃないかなといってみただけだよ。
構造化は、とにかく簡単に手がつけられるからね。
オブジェクト指向だと最初の設計ですべて前倒しにくるから、
やんなるときもあるなあと。
0843デフォルトの名無しさん
2007/02/06(火) 14:35:17以下のようにしたのですがうまくいきません
>>> keys = ['a', 'b']
>>> vals = []
>>> index = {}
>>> for i in keys:
... index[i] = vals
...
>>> index
{'a': [], 'b': []}
>>> index['a'].append('hoge')
>>> index
{'a': ['hoge'], 'b': ['hoge']}
キー a の要素である空リストに hoge 文字列を追加したいのですが
b にも追加されてしまいます。
>>> index
{'a': ['hoge'], 'b': []}
こうなってほしいのですが、ご助言お願いします。
0844デフォルトの名無しさん
2007/02/06(火) 14:54:22index[i] = []
とか。
あと、keys とか index は辞書やリストのメソッド名になってるから
使わない方がいい。
0845デフォルトの名無しさん
2007/02/06(火) 15:07:08ありがとうございます。
index[i] = [] でできました。
自分でも調べてみまして、Python ライブラリリファレンス の
シーケンス型ってとこに「注意しなさい」とかいてありました。
index = range(0)
とやっても大丈夫でした。
なぜ駄目なのかはよくわかっていません。
ists = [[]] * 3 と lists = [[] for i in range(3)]の違いです。
同じ場所をみてしまう?
もう少し自分で調べてみます。
あと、keysとかindexとか普通につかってました。
どうもありがとうございました。
0846デフォルトの名無しさん
2007/02/06(火) 17:15:410847デフォルトの名無しさん
2007/02/06(火) 17:43:59だってハードウエアのアーキテクチャはもう何十年も変わってないんだから。
ポインタとかリファレンスの概念が分からない人は壁にぶち当たって挫折する。
0848デフォルトの名無しさん
2007/02/06(火) 17:48:56>同じ場所をみてしまう?
そういうことです。詳しくはほかの人がいっている
参照渡しとかポインタと化のキーワードについても調べると
ためになると思うよ
0849デフォルトの名無しさん
2007/02/06(火) 17:58:520850デフォルトの名無しさん
2007/02/06(火) 18:04:42index[i] = vals[:]
かね
0851デフォルトの名無しさん
2007/02/06(火) 19:27:20>>> vals = [[]]
>>> index["a"] = vals[:]
>>> index["b"] = vals[:]
>>> index
{'a': [[]], 'b': [[]]}
>>> index["a"][0].append(1)
>>> index
{'a': [[1]], 'b': [[1]]}
>>>
マジレス禁止だからねっ
0852827
2007/02/06(火) 19:32:33WinXP SP2 + Python2.5 + pywin32-210 で試してみました。結果は、
win32file.LockFileEx(hfile, flags, 0, 0xffff0000, __overlapped)
OverflowError: long int too large to convert to int
お察しのとおり、動きませんでした・・・。
msvcrt.locking()は排他ロックしかないのが気になります。
RubyだとWin95ならLockFile()、NTならLockFileEX()を呼んで
File::flock()しているようなので、ctypesをで同様のことができないか調べてみます。
いろいろと勉強になりました。ありがとうございました。 >>821 >>841
0853デフォルトの名無しさん
2007/02/06(火) 20:56:23>あと、keys とか index は辞書やリストのメソッド名になってるから
>使わない方がいい。
別にビルトイン関数じゃないし、問題ない希ガス。
>>> index
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'index' is not defined
それに、仮にindexがビルトインで自前で定義した変数・関数が
それを隠しても、モジュールなり関数なりの中だけ(スコープの中だけ)
だから気にする必要なさげ。(自分が使わなければ問題ない)
0854デフォルトの名無しさん
2007/02/06(火) 21:02:11keys = ['a', 'b']
index = dict([(k, []) for k in keys])
0855デフォルトの名無しさん
2007/02/06(火) 21:02:14... def list(*a): # ビルトイン関数を隠す
... print "list"
... list([1,2,3])
...
>>> foo()
list
>>> list([1,2,3]) # 関数の外は俺list()のスコープ外だから影響なし
[1, 2, 3]
Rubyとかだと、うっかりトップレベルでindex定義しちゃうと悲惨なことに
なるけどね。
0856デフォルトの名無しさん
2007/02/06(火) 21:05:230857デフォルトの名無しさん
2007/02/06(火) 21:15:09selfもまんざら捨てたものじゃない
0858デフォルトの名無しさん
2007/02/06(火) 21:58:07卒業おめでとう.成人おめでとう.
0859デフォルトの名無しさん
2007/02/06(火) 23:30:01皆さんありがとうございます
本当に参考になります
>>854さん
!これかっこいいですね
これ使います
ありがとうございました
0860デフォルトの名無しさん
2007/02/07(水) 01:01:480861デフォルトの名無しさん
2007/02/07(水) 01:17:36入門書くらい嫁。
0862860
2007/02/07(水) 02:46:45スマン。Tutorialに書いてあるの斜め読みで読み落してた。
0863デフォルトの名無しさん
2007/02/07(水) 04:46:37index = dict(((k, []) for k in keys))
0864デフォルトの名無しさん
2007/02/07(水) 05:00:56成功したら教えて。
0865デフォルトの名無しさん
2007/02/07(水) 11:57:37俺も知らんかった。今ちょうど下のようなのが欲しかったから、こりゃ便利。
Keys = ('K1','K2')
ValsA = ('V1A','V2A')
ValsB = ('V1B','V2B')
DictA = dict(zip(Keys,ValsA))
DictB = dict(zip(Keys,ValsB))
0866デフォルトの名無しさん
2007/02/07(水) 13:26:17おまえはついでにPEP8を嫁。
0867デフォルトの名無しさん
2007/02/07(水) 23:41:39とかするにはどうしたらいいですか。
0868デフォルトの名無しさん
2007/02/07(水) 23:56:330869デフォルトの名無しさん
2007/02/08(木) 00:04:03一番外側の括弧は要らないね。
0870デフォルトの名無しさん
2007/02/08(木) 13:38:01ipython 0.7.3 + python 2.5 ですが。
In [23]: s = '�@'.decode('cp932'); print s, type(s), hex(ord(s))
�@ <type 'unicode'> 0x2460
これあってますよね。でも
In [24]: s = u'�@'; print s
<type 'exceptions.UnicodeEncodeError'>: 'cp932' codec can't encode character u'\x87' in po
sition 0: illegal multibyte sequence
In [27]: print type(s), hex(ord(s[0])*0x100+ord(s[1]))
<type 'unicode'> 0x8740
タイプはunicodeなのにコードはsjis。どうして?
python 2.5だと
>>> s = '�@'.decode('cp932'); print s, type(s), hex(ord(s))
�@ <type 'unicode'> 0x2460
>>> s = u'�@'; print s, type(s), hex(ord(s))
�@ <type 'unicode'> 0x2460
で望んだ結果になるんですけど。
0871デフォルトの名無しさん
2007/02/08(木) 19:55:590872デフォルトの名無しさん
2007/02/08(木) 19:58:42一般に、対話環境において、s = u'�@' が s = u'\x87\x40' と等価になるか
s = u'\u2460' と等価になるかは個々の対話環境の実装・バージョン依存だと思われ。
だめなものはだめ。
(もちろんソースファイルに書く場合は # -*- coding: spamspam -*- の設定次第。
これはまた別問題。)
0873デフォルトの名無しさん
2007/02/08(木) 21:50:51http://python.matrix.jp/tips/compatibility/interact_encoding.html
対話モードのエンコードについてはこの辺がよくまとまめられてる と思われ。
0874デフォルトの名無しさん
2007/02/09(金) 11:00:40わかりました、とりあえず対話環境ではこういうものだということで理解しました。
どうもありがとうございます。
0875デフォルトの名無しさん
2007/02/09(金) 23:24:57s = Some()
に、メソッドを追加することはできますか?
s.Foo = メソッド
のようにしたいのですが。
0876デフォルトの名無しさん
2007/02/09(金) 23:36:530877デフォルトの名無しさん
2007/02/09(金) 23:40:420878デフォルトの名無しさん
2007/02/09(金) 23:48:24>>> S = type('S', (), {})
>>> s = S()
>>> s.amethod = new.instancemethod(lambda x, y: y, s, S)
>>> s.amethod(10)
10
>>>
0879デフォルトの名無しさん
2007/02/10(土) 04:53:180880デフォルトの名無しさん
2007/02/10(土) 05:10:21os.system('python -V')
0881デフォルトの名無しさん
2007/02/10(土) 05:23:59version = sys.version.split(' ')[0]
0882デフォルトの名無しさん
2007/02/10(土) 06:47:50print sys.version_info
0883デフォルトの名無しさん
2007/02/10(土) 08:31:55print commands.getoutput("python -V")
0884デフォルトの名無しさん
2007/02/10(土) 09:05:59/usr/local/bin/python2.3 とかを起動してたら?
0885デフォルトの名無しさん
2007/02/10(土) 10:30:410886デフォルトの名無しさん
2007/02/10(土) 11:36:340887デフォルトの名無しさん
2007/02/10(土) 12:55:11何か差別化をしたい人が使いたがるだけ。
0888デフォルトの名無しさん
2007/02/10(土) 13:22:290889デフォルトの名無しさん
2007/02/10(土) 13:57:13BGNとかVRSNとか。なんのことやら。
0890デフォルトの名無しさん
2007/02/10(土) 14:10:090891デフォルトの名無しさん
2007/02/10(土) 14:12:56読んで貰えなければそれはそれで構わないと思っているのだろう。
公共の場を使って非常に狭い範囲の読者だけに伝えるという非効率的な行為に
喜びを覚える種類の人間だと思われる。
0892デフォルトの名無しさん
2007/02/10(土) 14:28:180893デフォルトの名無しさん
2007/02/10(土) 16:29:320894デフォルトの名無しさん
2007/02/10(土) 16:49:450895デフォルトの名無しさん
2007/02/10(土) 19:14:50http://gotou-sci.blogspot.com/2007/02/blog-post.html
fileってopenの(openってfileの?) alias なのね…
0896デフォルトの名無しさん
2007/02/10(土) 19:28:100897デフォルトの名無しさん
2007/02/10(土) 19:55:170898デフォルトの名無しさん
2007/02/12(月) 22:33:4616進数や8進数に変換する事はできるのに・・・
うーん・・・
0899デフォルトの名無しさん
2007/02/13(火) 00:09:130900デフォルトの名無しさん
2007/02/13(火) 01:14:260901デフォルトの名無しさん
2007/02/13(火) 01:20:360902デフォルトの名無しさん
2007/02/13(火) 01:27:280903デフォルトの名無しさん
2007/02/13(火) 01:28:310904デフォルトの名無しさん
2007/02/13(火) 01:41:190905デフォルトの名無しさん
2007/02/13(火) 05:52:38読み込むにはどうすればいいのでしょうか?
0906デフォルトの名無しさん
2007/02/13(火) 07:40:32とくにif n == 0 and sのあたりがどうにも・・・
0907デフォルトの名無しさん
2007/02/13(火) 08:57:100908デフォルトの名無しさん
2007/02/13(火) 11:10:260909デフォルトの名無しさん
2007/02/13(火) 12:01:38see http://scipy.dip.jp/index.php?SciPy
0910デフォルトの名無しさん
2007/02/13(火) 12:21:590911デフォルトの名無しさん
2007/02/13(火) 12:37:42きちんと関数名を考えて docstring をつけておかないと
後で絶対分からない代物だな
0912デフォルトの名無しさん
2007/02/13(火) 14:27:180913デフォルトの名無しさん
2007/02/13(火) 14:39:42>>902-903 >>907-908 は
Pythonの可読性を敢えて無視した結果だろw
ワンライナーで書くなら、読みにくいと言われるPerlや
キモイと言われるRubyの方がマシに書けてしまうよ。
普通にPythonで書くなら >>904 かと。
0914デフォルトの名無しさん
2007/02/13(火) 14:46:11コメントに日本語を使うと落ちてしまうというのは、
昔からなの?
対話モードだと、ちゃんと動くんだけどな。
悲しい…。
なぜ落ちるのか分らなくて(対話モードでは問題ないだけに)、
デバッグ・モードにすら入れないし、分らなくて非常に悩んだ。
0915デフォルトの名無しさん
2007/02/13(火) 14:47:470916デフォルトの名無しさん
2007/02/13(火) 14:49:46昔も今もそんな現象はないと思う。
参考までにエンコーディングとコメントに書いた文字列は何?
0917914
2007/02/13(火) 15:28:49site-packages の中に置いた sitecustomize.py
中身
import sys
sys.setdefaultencoding("mbcs")
が、なにも効いていないようなのが理由だと思えます。
当方 winですが、実行したいプログラムの冒頭に
# -*- encoding:mbcs -*-
と置けば、問題ないのを確認しました。
初歩的躓きに、付き合ってくれてありがとう。
0918デフォルトの名無しさん
2007/02/13(火) 15:34:35いや、setdefaultencodingはソースファイルのエンコーディングとは無関係だから…orz
PEP-0263。
0919デフォルトの名無しさん
2007/02/13(火) 16:25:290920デフォルトの名無しさん
2007/02/13(火) 21:02:070921デフォルトの名無しさん
2007/02/14(水) 05:51:59変えるにはどうやればいいですか?
再定義みたいなことって出来ます?
0922デフォルトの名無しさん
2007/02/14(水) 09:13:500923デフォルトの名無しさん
2007/02/14(水) 09:14:13>>> import lovespam
Traceback (most recent call last):
File "<stdin>", line 1, in ?
ImportError: No module named lovespam
>>> import sys
>>> sys.path = sys.path + ['/tmp']
>>> import lovespam
I love spam!
>>>
0924デフォルトの名無しさん
2007/02/14(水) 11:35:08階層構造?なんでしょうか?
0925デフォルトの名無しさん
2007/02/14(水) 11:49:36君の質問がよくわからん。
日本語?なんでしょうか?
0926デフォルトの名無しさん
2007/02/14(水) 12:01:05単なる名前指定?なんでしょうか?
0927デフォルトの名無しさん
2007/02/14(水) 12:17:48ま、phpかrubyつかっとけ
0928デフォルトの名無しさん
2007/02/14(水) 12:23:180929デフォルトの名無しさん
2007/02/14(水) 12:42:43質問なんてどこかにあった?
0930デフォルトの名無しさん
2007/02/14(水) 12:51:030931デフォルトの名無しさん
2007/02/14(水) 12:56:15>>924
はい。階層構造なんです。
0932デフォルトの名無しさん
2007/02/14(水) 13:17:070933デフォルトの名無しさん
2007/02/14(水) 13:26:56>>> sys.ps1 = '+++'
+++ import os
+++ for d in ['foo', 'foo/bar', 'foo/bar/baz']:
... os.mkdir(d)
... open(os.path.join(d, '__init__.py'), 'w').write('')
...
+++ open('foo/bar/baz/qux.py', 'w').write('quux="5"')
+++ import foo.bar.baz.qux.quux
Traceback (most recent call last):
File "<stdin>", line 1, in ?
ImportError: No module named quux
+++ from foo.bar.baz.qux import quux
+++ quux
'5'
+++ foo.bar.baz.qux
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'foo' is not defined
+++ from foo.bar import baz
+++ baz.qux.quux
'5'
+++ foo.bar.baz.qux.quux
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'foo' is not defined
+++ import foo
+++ foo.bar.baz.qux.quux
'5'
0934デフォルトの名無しさん
2007/02/14(水) 15:04:190935デフォルトの名無しさん
2007/02/14(水) 15:21:000936デフォルトの名無しさん
2007/02/14(水) 15:35:16* RubyなりPerl
共通項:Ruby
わかりやすい自演だな(www
0937デフォルトの名無しさん
2007/02/14(水) 15:38:410938デフォルトの名無しさん
2007/02/14(水) 15:39:090939デフォルトの名無しさん
2007/02/14(水) 18:17:15まずはPython2.4JPドキュメントのチュートリアル6「モジュール」を読んでみるんだ。
読んだら>>933の書いてくれたサンプルコードを試してみる。
そのときはfoo/bar/bazがディレクトリ(パッケージ)、qux.pyがファイル(モジュール)、
quuxが変数(名前)であることを確認してからimportを試すこと。
誰でも多少はつまづくところだと思うからがんばって。
0940デフォルトの名無しさん
2007/02/14(水) 19:16:350941デフォルトの名無しさん
2007/02/14(水) 19:44:57つくれるよ。
Tkinter とか wxPython とかでググれ
0942デフォルトの名無しさん
2007/02/14(水) 19:50:490943デフォルトの名無しさん
2007/02/14(水) 23:08:49sttyって何? みたいな。
0944デフォルトの名無しさん
2007/02/14(水) 23:32:12http://www.shido.info/py/index.html
wxPython Index なら、とりあえずここと思う。
http://www.harukaze.net/~haruka/wxpython/index.html
私見ながら、wxPythonは悪くない選択ではあるだろうけど、
安定性とか日本語とか、まだまだ安心して使えない気がする。
一方、tk はmac でもネイティブ・アプリ風の外観を備えるなど、
言われているほど悪くない。
将来、どちらに本格的に進むにしても、
最初は Tkinter を選ぶ方が幸せになれそうな気がする。
0945デフォルトの名無しさん
2007/02/15(木) 00:15:07常識的なGUIライブラリに触れたことがある人はwxPythonのほうが絶対扱い易いでしょ。
0946デフォルトの名無しさん
2007/02/15(木) 00:26:14>他の言語の常識的なGUIライブラリ
MFCのことかーーーーーーっっ!!
# あれを常識的と言われてもその、なんだ。困る(異端とまでは言わんが……なぁ)
0947デフォルトの名無しさん
2007/02/15(木) 01:23:54> MFCのことかーーーーーーっっ!!
違うと思う
0948デフォルトの名無しさん
2007/02/15(木) 08:14:56Windows用GUIを作ったことがあるなら もしくは使い慣れているのが
Windowsならばなら wxの
0950デフォルトの名無しさん
2007/02/15(木) 08:55:44(私は Tkinter 好きです。)
0951デフォルトの名無しさん
2007/02/15(木) 10:21:380952デフォルトの名無しさん
2007/02/15(木) 10:47:56Hybridizing Java
http://www.artima.com/weblogs/viewpost.jsp?thread=193593
> Thus, you can create an application in any language you prefer,
> even a dynamic language like Python or Ruby, and use Flex to build
> a beautiful UI.
0953940
2007/02/15(木) 10:53:370954デフォルトの名無しさん
2007/02/15(木) 11:20:22・・・とりあえず、Pythonに最初からついてくるGUIライブラリはTkinterだけなので、
そこから始めてみるのがいいと思うよ。
他のGUIライブラリに手を出すのはTkinterで不満が出てきてからでも遅くないし。
ttp://www.pythonware.com/library/an-introduction-to-tkinter.htm
Tkinterのチュートリアル。英語読めるならお勧め。
0955デフォルトの名無しさん
2007/02/15(木) 11:31:09>Pythonに最初からついてくるGUIライブラリはTkinterだけ
そしてそれが何故かと言うと・・・
http://www.wxpython.org/quotes.php
> wxPython is the best and most mature cross-platform GUI toolkit,
> given a number of constraints. The only reason wxPython isn't the
> standard Python GUI toolkit is that Tkinter was there first.
> -- Guido van Rossum
Tkinterが始めにあったからという理由だけなんだね。
0956デフォルトの名無しさん
2007/02/15(木) 11:50:040957デフォルトの名無しさん
2007/02/15(木) 11:52:12IDEは何使われてますか?
0958デフォルトの名無しさん
2007/02/15(木) 11:54:470959デフォルトの名無しさん
2007/02/15(木) 11:58:50使ってない。エディタでソースごりごり。w
0960デフォルトの名無しさん
2007/02/15(木) 12:00:40VisualWxとかどうよ?
見つけただけで使った事無いんだけど。
0961デフォルトの名無しさん
2007/02/15(木) 12:04:37「高機能」って意味がわからんけど、Sizerとかの扱いに慣れれば却って楽だよ。
「見た目」で設計しちゃうと、クロスプラットフォームで破綻しやすいよ。
プログラムには論理情報を書いて、ツールキットにレイアウトさせたほうが良い。
0962デフォルトの名無しさん
2007/02/15(木) 12:21:19じゃあ、どういうアプリをどういう風に作るのかアーキテクチャーとか教えて下さい。
実行環境も教えて?
0963デフォルトの名無しさん
2007/02/15(木) 12:23:060964デフォルトの名無しさん
2007/02/15(木) 13:07:07>Google で使われている言語は、C++, Python, Java が主なもの。
ググルが提供しているアプリでPythonモノってありましたっけ?
0965デフォルトの名無しさん
2007/02/15(木) 13:50:01数値シミュレーションの部分は C で書いてある。
これを C で書いた拡張モジュール経由で Python 側から呼び出す。
Python 側では一定時間毎に C の数値計算コードを呼び出して
計算結果を Tkinter の Canvas で描画。
シミュレーションの制御は start, stop, ステップ実行の3つのボタンで。
これぐらいシンプルだとどのツールキットでも大差ない。
____
/⌒ ⌒\
/( ●) (●)\
/::::::⌒(__人__)⌒::::: \ だから標準添付の Tkinter でやるお!
| |r┬-| |
\ `ー'´ /
もちろん拡張モジュールは標準添付の distutils を使ってビルド。
Windows でも Linux でも素の Python だけでビルド&実行できるお。
0966デフォルトの名無しさん
2007/02/15(木) 13:53:10ブログでも良いお。
0967デフォルトの名無しさん
2007/02/15(木) 13:59:47Adsenseヘルプ関係はPythonですよ
0968デフォルトの名無しさん
2007/02/15(木) 14:06:540969デフォルトの名無しさん
2007/02/15(木) 14:07:380970デフォルトの名無しさん
2007/02/15(木) 14:08:410971デフォルトの名無しさん
2007/02/15(木) 14:14:07ならここで聞くなでFA
人に聞く態度じゃない。
0972デフォルトの名無しさん
2007/02/15(木) 15:40:21____
/ \
/ _ノ ヽ、_ \
/ o゚((●)) ((●))゚o \ ほんとはうpしたいんだお…
| (__人__) |
\ ` ⌒´ /
____
/ \
/ _ノ ヽ、_ \
/ o゚⌒ ⌒゚o \ でもまだバグってて流体粒子が爆発したり壁をすり抜けたりするんだお…
| (__人__) |
\ ` ⌒´ /
0973デフォルトの名無しさん
2007/02/15(木) 16:57:540974デフォルトの名無しさん
2007/02/15(木) 19:45:500975デフォルトの名無しさん
2007/02/15(木) 20:39:13他はIDE の支援がないと、辛いんじゃない?
0976デフォルトの名無しさん
2007/02/15(木) 21:23:53俺も勉強する。Tkinter
0977デフォルトの名無しさん
2007/02/15(木) 21:42:24あと、JAVAの貧相なGUIセット(Sun OSみたいな奴)の悪い印象も。
0978デフォルトの名無しさん
2007/02/15(木) 22:33:19wxでもへっちゃらだす。
0979デフォルトの名無しさん
2007/02/15(木) 23:36:29いや、wxはどーにもMFC臭がするもんで、つい。
0980デフォルトの名無しさん
2007/02/15(木) 23:39:44MFCに無かった重要な概念として、wxにはSizerってのがある。
要するにレイアウトマネージャだな。
0981デフォルトの名無しさん
2007/02/16(金) 00:04:20windows + py2exeでexeにしようとすると、pango関係のエラーで
日本語が豆腐になってしまうんですよ。
hoge.pyだと動作するんですが、、、なやましいです。
0982デフォルトの名無しさん
2007/02/16(金) 00:09:21WindowsもLinuxもMacもばっちこーい!!
0983デフォルトの名無しさん
2007/02/16(金) 01:24:32とある環境のモニタプログラム(グラフとかトラフィックとか出力する)を
書いたときに使ったなぁ。
0984デフォルトの名無しさん
2007/02/16(金) 01:48:31単純に線を引くとか面を貼るだけが目的なら、
地味に最強だもんなあpygame
0985デフォルトの名無しさん
2007/02/16(金) 05:18:12http://www.adobe.com/devnet/flex/articles/eckel_video.html
http://www.artima.com/weblogs/viewpost.jsp?thread=193593
によると、Flex使ったら綺麗なGUIがウェブアプリとデスクトップアプリ両方
でできるみたいだね。一つのツールを勉強すれば環境を無視してどこでも使える
のは魅力。
0986デフォルトの名無しさん
2007/02/16(金) 06:28:060987デフォルトの名無しさん
2007/02/16(金) 06:34:312 押した状態にしたいキーの上に消しゴムを置く。
3 その上に本を置く。
4 (゚Д゚)ウマー
それはそれとして、win32はここ。
https://sourceforge.net/project/showfiles.php?group_id=78018
0988986
2007/02/16(金) 07:17:220989デフォルトの名無しさん
2007/02/16(金) 08:52:46MFC(正確にはAppWizardか)には、resource.hがあって、
プロジェクト超えてダイアログ使いまわせないが、
VisualWxはそれが無い分”MFCらしさが無い”と言えたりしない?
0990デフォルトの名無しさん
2007/02/16(金) 16:40:13が
ValueError: image has wrong mode
になる
サイズは同じはずなのに。何がいけないのだろう
0991デフォルトの名無しさん
2007/02/16(金) 17:02:570992ミスターパイソン
2007/02/16(金) 17:05:56よろしくお願いします
Pythonのお勉強 Part17
http://pc10.2ch.net/test/read.cgi/tech/1171613101/
0993デフォルトの名無しさん
2007/02/16(金) 17:21:23乙乙
0994デフォルトの名無しさん
2007/02/17(土) 00:19:590995デフォルトの名無しさん
2007/02/17(土) 01:14:550996デフォルトの名無しさん
2007/02/17(土) 01:53:40なんかこう……
0997デフォルトの名無しさん
2007/02/17(土) 02:20:370998デフォルトの名無しさん
2007/02/17(土) 05:07:580999デフォルトの名無しさん
2007/02/17(土) 08:13:331000デフォルトの名無しさん
2007/02/17(土) 08:47:1110011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。