Pythonのお勉強 Part15
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/11/12(日) 22:51:44http://www.python.jp/Zope/
Python オフィシャルサイト
http://www.python.org/
Python 2.5
http://www.python.org/download/releases/2.5/
IronPython
http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython
まとめ wiki
http://www7a.biglobe.ne.jp/~yasozumi/python/wiki/
Pythonの入門書「みんなの Python」
http://www.amazon.co.jp/gp/product/479733665X/
Pythonのお勉強 Part14
http://pc8.2ch.net/test/read.cgi/tech/1161272096/
0263デフォルトの名無しさん
2006/11/22(水) 00:22:46物知りだねえ。エライねえ。
0264デフォルトの名無しさん
2006/11/22(水) 01:07:05何これ、メソッドじゃないじゃん、
しかもリスト返してないし、
まあ、使うけど
0265デフォルトの名無しさん
2006/11/22(水) 02:28:59webとかあんまり興味ない.
0266デフォルトの名無しさん
2006/11/22(水) 02:53:56初心者向きの本はこれ以上不要。
0267デフォルトの名無しさん
2006/11/22(水) 03:28:04抄訳でいいからおながいw
0268デフォルトの名無しさん
2006/11/22(水) 03:28:100269デフォルトの名無しさん
2006/11/22(水) 04:06:07科学技術計算やってる人って低級言語しか興味ないような気が・・・
>>266
みんPyだって後ろのほうは十分上級者向きだと思う、
0270デフォルトの名無しさん
2006/11/22(水) 06:02:07> 科学技術計算に低級言語
FORTRAN とか使う椰子も居るんでない?
0271デフォルトの名無しさん
2006/11/22(水) 07:24:13http://www.amazon.co.jp/gp/product/3540294155/
0272デフォルトの名無しさん
2006/11/22(水) 07:44:24そこから移りつつあるみたいだよ
0273デフォルトの名無しさん
2006/11/22(水) 09:12:190274デフォルトの名無しさん
2006/11/22(水) 09:20:45この本の著者の Langtangen サメは科学技術計算のプロなので内容は信頼できる。
何度か講演を聞いた限りではとっても頭の良さそうなナイスガイだった。
この人、相当な Python スキーで同じ出版社の Diffpack の本でもバリバリ Python を使ってる。
こちらはヒジョーに高度な本。俺は科学技術計算の例題目当てで買った。
0275デフォルトの名無しさん
2006/11/22(水) 10:05:22ノルウェー在住の方ですか?
http://www.cirs-tm.org/researchers/researchers.php?id=299
0276デフォルトの名無しさん
2006/11/22(水) 10:53:14そです。英語はとても達者。
0277デフォルトの名無しさん
2006/11/22(水) 11:09:480278デフォルトの名無しさん
2006/11/22(水) 11:11:10人による。
時間管理がへたくそな現役ドカタに暇がないのは100%同意。
0279デフォルトの名無しさん
2006/11/22(水) 11:17:53PG/SE/PMの話ではない。科学研究者の話だ。
0280デフォルトの名無しさん
2006/11/22(水) 11:18:11Mark Lutzの尻の穴をおなめ
0281デフォルトの名無しさん
2006/11/22(水) 11:32:40研究職にもドカタが居るんですね.
0282デフォルトの名無しさん
2006/11/22(水) 11:41:54オレオレ
0283デフォルトの名無しさん
2006/11/22(水) 11:47:37いいなあ。うらやましい。
0284デフォルトの名無しさん
2006/11/22(水) 11:50:23トップクラスの学歴、瞠目すべき業績、底辺PG以下の年収。(傍からみると)土方。
アカポス(界隈)の半分近くそんな感じだと思う。
好きじゃないとやってられん。
0286デフォルトの名無しさん
2006/11/22(水) 11:52:220287デフォルトの名無しさん
2006/11/22(水) 11:54:590288デフォルトの名無しさん
2006/11/22(水) 12:00:37「常識にとらわれるな。上を向いて掘ってみるんだ。」
こんなこと言われないだけ、土方は幸せだよね。
0289デフォルトの名無しさん
2006/11/22(水) 12:01:280290デフォルトの名無しさん
2006/11/22(水) 12:24:200291Python初心者(復活)
2006/11/22(水) 12:32:10(レベルが低いのも…)
教えて頂けないでしょうか?
下記の通りinput.txtを作り、
Name: Tarou Bob Cheng
Age: 28 34 46
City: Tokyo New_York Beijing
それを読み込み縦横を変換するプログラムを作成
するプログラムでこのスレの先生の模範解答です。
for x in zip(*eval('[line.split()
for line in file("input.txt")]')):
print x
O/Pは下記の通りでOKです。
('Name:', 'Age:', 'City:')
('Tarou', '28', 'Tokyo')
('Bob', '34', 'New_York')
('Cheng', '46', 'Beijing')
ところがevalの前の*を消してみたら?
for x in zip(eval('[line.split()
for line in file("input.txt")]')):
print x
O/Pは、
(['Name:', 'Tarou', 'Bob', 'Cheng'],)
(['Age:', '28', '34', '46'],)
(['City:', 'Tokyo', 'New_York', 'Beijing'],)
と元通りになってしまう。引数の関数の前に
*をつける意味とその仕組みを教えて下さい。
0292デフォルトの名無しさん
2006/11/22(水) 12:57:12あと、evalとか意味わかんないで使ってるんだろうけど、そのevalは
全然意味無い
0293デフォルトの名無しさん
2006/11/22(水) 12:59:51自分で考えないけど教えてよ
自分で調べないけど教えてよ
めんどくさいから教えてよ
0294デフォルトの名無しさん
2006/11/22(水) 13:00:410295デフォルトの名無しさん
2006/11/22(水) 13:14:200296デフォルトの名無しさん
2006/11/22(水) 13:22:02残りの半分はどんなかんじなの?
好きなことやって標準並みの収入得られるならうらやましいな。
0297デフォルトの名無しさん
2006/11/22(水) 16:25:08import StringIO
file = StringIO.StringIO("""\
Name: Tarou Bob Cheng
Age: 28 34 46
City: Tokyo New_York Beijing
""")
data = [line.split() for line in file]
print "Without asterisk"
for x in zip(data[0], data[1], data[2]):
print x
print "With asterisk"
for x in zip(*data):
print x
つまり data の要素数が3のとき、
zip(data[0], data[1], data[2]) と zip(*data) は等しい。
別の例:
>>> args = (1, 2)
>>> (lambda x, y: x+y)(args[0], args[1])
3
>>> (lambda x, y: x+y)(*args)
3
0298デフォルトの名無しさん
2006/11/22(水) 18:08:560299デフォルトの名無しさん
2006/11/22(水) 18:12:220300チュートリアルも読まずに質問とな
2006/11/22(水) 18:20:29|;:;:_:;:_:;:_:;:_;:;_:;:l:;_;:_:;:_:;:_:;:_;:_;|
|______|_____|
| 三| _ _ |三 !
| 三| 三シ ヾ三 |三 |
| 三′ .._ _,,.. i三 |
ト、ニ| <でiンヽ ;'i"ィでiン |三.|
', iヽ! 、 ‐' / !、 ーシ |シ,イ
i,ヽリ ,' : !. |f ノ
ヾ! i ,、 ,..、ヽ lノ
| _ _ イ l
l ,ィチ‐-‐ヽ i /、
゙i、 ゝ、二フ′ ノ/'"\
| \ ー一 / / _,ン'゙\
,ィ|、 \ /_,、-'" _,.-''´ `丶、__
_, イ | ヽ_ 二=''" _,. -''´ """""´´ ``ー
http://www.python.jp/doc/release/tut/node6.html#SECTION006740000000000000000
0301デフォルトの名無しさん
2006/11/22(水) 19:00:50初心者某と同程度にキモいわ
0302デフォルトの名無しさん
2006/11/22(水) 19:06:43つ●
0303デフォルトの名無しさん
2006/11/22(水) 19:30:08ないか。
しかしこの * の扱いは、「初めてのPython」にも載ってたけどなあ。
個人的には、** と辞書を使った引数アンパックがすごく好き。
引数一覧を、分かりやすい形で保存できるから。
def func(a, b, c):
return a + b + c
params0 = {'a':1, 'b':2, 'c':3}
params0 = {'a':4, 'b':5, 'c':6}
print func(**params0)
print func(**params1)
0304デフォルトの名無しさん
2006/11/22(水) 19:30:53なぜメソッド内でimportするかというと、モジュール名が実行時に決まるからです。
global foo; import foo ではだめでした。
* listに複数の要素を一度に加えるには(または同じlistに連続して追加するには)どうしたらいいですか。
list.append_all(10,20,30)またはlst.append(10).append(20).append(30) みたいにできるとうれしいんですが。
新規にメソッドを用意するしかないんでしょうか。
* pythonで、スクリプトを実行することなく構文チェックだけを行うにはどうしたらいいですか。
perlやrubyの -wc オプションに相当するものです。
今は
#!/usr/bin/python
import sys
for arg in sys.argv: compile(open(arg).read(), arg, 'exec')
というスクリプトを作っているんですけど、もっとかっこいい方法あれば教えてください。
よろしくお願いします。
0305デフォルトの名無しさん
2006/11/22(水) 19:35:03global使えば?
0306デフォルトの名無しさん
2006/11/22(水) 19:46:19最初のヤツ,global使って試してみたけどこういうのじゃないの?
>>> def foo():
... global sys
... import sys
...
>>> sys
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'sys' is not defined
>>> foo()
>>> sys
<module 'sys' (built-in)>
リストに複数の要素を追加するには
>>> l.extend([1,2,3])
とか
>>> l += [1,2,3]
すればいいんじゃね?
0307デフォルトの名無しさん
2006/11/22(水) 20:13:51http://www.python.jp/doc/release/tut/node7.html
extend(L)
指定したリスト中のすべての要素を対象のリストに追加し、リストを拡張します。 a[len(a):] = L と等価です。
0308304
2006/11/22(水) 22:59:17どうもありがとうございます。
globalは、関数の中からならOKだったんですが、メソッドの中からだとだめでした。
extend()どうもありがとうございました。dir([])でそれらしいメソッドがないかさがしたのですが、
extend()という名前じゃちょっとわかりづらいですね。マニュアル読み直します。
あと3番目の質問(syntax errorがないか調べる)もよろしくお願いします。
0309デフォルトの名無しさん
2006/11/22(水) 23:03:10メソッドでimportしたモジュールをreturnで返せばいいんじゃねえの?
0310デフォルトの名無しさん
2006/11/22(水) 23:52:050311デフォルトの名無しさん
2006/11/23(木) 10:05:22現状の方法で目的が達成できてるならそれでいいじゃん。
0312304
2006/11/23(木) 12:03:19file1.py で exec("global %s; import %s" % (module_name, module_name)) を実行すれば
別の file2.py でもモジュールが利用できるのだろうと勘違いしてました。
あるファイルでimportしたモジュールは別ファイルからは見えないというだけで、globalうんぬんは関係なかったですね。
おさわがせしました。
0313デフォルトの名無しさん
2006/11/23(木) 12:59:22起動後に取得するにはどうしたらよいのでしょうか?
ソース内で絶対パスを指定することは避けたいです。
0314デフォルトの名無しさん
2006/11/23(木) 13:04:29自分もだいぶ悩んだことあるけど結局できずに環境変数に絶対パス入れたよ。
0315デフォルトの名無しさん
2006/11/23(木) 13:10:17os.path.abspath(os.path.dirname(sys.argv[0]))
0316デフォルトの名無しさん
2006/11/23(木) 13:11:47os.path.dirname(sys.argv[0])
0317デフォルトの名無しさん
2006/11/23(木) 13:14:19あと、sys.argv[0]でなくて、__file__ だけで実行中のスクリプトファイルのパスが得られる。
0318デフォルトの名無しさん
2006/11/23(木) 13:15:250319デフォルトの名無しさん
2006/11/23(木) 13:16:21冗長。タコ。厨房。Rubyでも書いてろ。
>>317
Pythonic!!!
0320デフォルトの名無しさん
2006/11/23(木) 13:16:57知ってる。感謝祭だ。
0321デフォルトの名無しさん
2006/11/23(木) 13:17:52休日もパイソンパイソン
0322デフォルトの名無しさん
2006/11/23(木) 13:19:390323デフォルトの名無しさん
2006/11/23(木) 13:23:510324デフォルトの名無しさん
2006/11/23(木) 13:24:220325デフォルトの名無しさん
2006/11/23(木) 13:42:270326デフォルトの名無しさん
2006/11/23(木) 13:49:130327デフォルトの名無しさん
2006/11/23(木) 13:51:070328デフォルトの名無しさん
2006/11/23(木) 14:07:32えええええええええ
0329デフォルトの名無しさん
2006/11/23(木) 14:18:26Zopeの次はDjango?仲間割れの演出必死だな(www
0330デフォルトの名無しさん
2006/11/23(木) 14:20:190331デフォルトの名無しさん
2006/11/23(木) 14:28:49Django普通に盛り上がってるじゃん。いいことだよ。
過剰反応すると、キチガイのZOPE関係者(実績露出皆無)であることがばれてしまうから
気をつけた方がいいですよ。○○○さん。
0332Python初心者(復活)
2006/11/23(木) 14:42:55Many Tks.
*が可変個の引数をとることは知っていましたが
関数の前に付ける意味が良く分からなかったのです。
>>292
>あと、evalとか意味わかんないで使ってるんだろうけど、そのevalは
>全然意味無い
for x in zip(*[line.split() for line in file('input.txt')]):
print x
Oh No!これで全然問題無く動くじゃないですかぁ。
おぅい!前スレの
>>715,717
restrip()もeval()も必要ないってさぁ。
まさか?
>evalとか意味わかんないで使ってるんだろうけど
なんてことはないよねぇ?(w
ーーーーーーーーーーーーー
715 :デフォルトの名無しさん :2006/11/03(金) 13:55:57
>>712
[line.rstrip().split() for line in file('input.txt')]
717 :デフォルトの名無しさん :2006/11/03(金) 15:10:30
>>712
別にprintを使うなとは誰も言ってない
for x in zip(*eval(>>715)):
print x
==============
0333デフォルトの名無しさん
2006/11/23(木) 14:47:150334デフォルトの名無しさん
2006/11/23(木) 14:49:190335デフォルトの名無しさん
2006/11/23(木) 14:51:400336デフォルトの名無しさん
2006/11/23(木) 14:52:080337デフォルトの名無しさん
2006/11/23(木) 15:03:30>Zope関係者はDjangoコミュニティの仲間割れを画策しているの?
サークルクラッシャーかよ(WWWW
0338デフォルトの名無しさん
2006/11/23(木) 15:49:00Zopeのユーザー会と同じ日にDjangoが勉強会ぶつけてきたから
恨みに思っているのかな?
Zope関係者って怖いな!!!
0339デフォルトの名無しさん
2006/11/23(木) 16:15:000340デフォルトの名無しさん
2006/11/23(木) 16:22:18PHPにでも任せておけば?と思う今日このごろ
0341デフォルトの名無しさん
2006/11/23(木) 16:25:000342デフォルトの名無しさん
2006/11/23(木) 16:27:13なんだこの対立構図は(WWW
ZOPEは死に体なのでDjangoの対抗になんてなり得ないだろ(WWWWWWWWW
>>340
まあ過剰反応している人は基地外なので放っておきましょう
0343前スレ717
2006/11/23(木) 17:27:13>Oh No!これで全然問題無く動くじゃないですかぁ。
>おぅい!前スレの
>>>715,717
>restrip()もeval()も必要ないってさぁ。
それはね、他人のレス内のコードを自分のコード内に取り込むには
イキナリ>>715で参照するのはなんとなくperlっぽい無秩序な感じがする。
ここはpythonぽく他人のレス=文字列と捉えてevalをしよう
っていう冗談だったんだよ。
ちなみに関数の前の*は、単に関数の返り値に対して*を付けるのと
一緒。だからこの場合は*[line.split() for line in file('input.txt')]
という付け方に等しくなる
0344デフォルトの名無しさん
2006/11/23(木) 18:05:09下のプログラムでhogehogeと表示されるにはどうすればいいのでしょうか?
class Test :
def printHoge(self) :
print "hogehoge"
def __init__(self) :
print "hoge1"
self.printHoge
hoge = Test()
0345344
2006/11/23(木) 18:09:050346デフォルトの名無しさん
2006/11/23(木) 20:34:22まず、インデントを付ければいいんじゃないかな。
0347デフォルトの名無しさん
2006/11/23(木) 20:38:410348デフォルトの名無しさん
2006/11/23(木) 20:54:12初心者乙
0349デフォルトの名無しさん
2006/11/23(木) 21:09:280350デフォルトの名無しさん
2006/11/23(木) 21:10:45の
>>の後には何を持ってくればOKなんですか?
0351デフォルトの名無しさん
2006/11/23(木) 21:14:52愛。
うふふ。
0352デフォルトの名無しさん
2006/11/23(木) 21:16:52愛の入力方法がわかりません。
とりあえず漢字・英語・平仮名・片仮名は試したんですが・・・
どうすればいいでしょうか?
0353デフォルトの名無しさん
2006/11/23(木) 21:19:10勉強して出直してらっしゃい。
0354デフォルトの名無しさん
2006/11/23(木) 21:29:13そういうときはコピペが基本だと思う
0355デフォルトの名無しさん
2006/11/23(木) 21:39:090356デフォルトの名無しさん
2006/11/24(金) 07:47:27どれをどう使えばいいんですか?
0357デフォルトの名無しさん
2006/11/24(金) 07:52:34チンコを使え
0358デフォルトの名無しさん
2006/11/24(金) 08:11:130359デフォルトの名無しさん
2006/11/24(金) 12:37:14ファイルオブジェクトと同様の write() メソッドがあるオブジェクトなら何でも可だと思われ。
0360Python初心者(復活)
2006/11/24(金) 12:41:25>冗談だったんだよ。
遅まきながら…wwwwwwwww
0361デフォルトの名無しさん
2006/11/24(金) 13:00:230362デフォルトの名無しさん
2006/11/24(金) 13:03:01・人に情けをかけておくと,巡り巡って結局は自分のためになる
・人に情けをかけて助けてやることは,結局はその人のためにならない
選ぶのは君だw
■ このスレッドは過去ログ倉庫に格納されています