1read 100read
2011年12月2期プログラム46: くだすれPython(超初心者用) その12 (212)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
・ 次のスレ
47: クラス名・変数名に迷ったら書き込むスレ。Part20 (629)
48: awkについて語るスレ $2 (669)
49: 文字コード総合スレ part7 (440)
51: 雑談スレ 4 (185)
くだすれPython(超初心者用) その12
1 :11/11/24 〜 最終レス :11/12/24 このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは >>985 辺りで 前スレ くだすれPython(超初心者用) その11 http://hibari.2ch.net/test/read.cgi/tech/1301383226/ 関連スレ Pythonのお勉強 Part45 http://hibari.2ch.net/test/read.cgi/tech/1321189773/ ◆関連リンク Python の Home Page ttp://www.python.org/ ┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ !! └─┘
2 : 最新版直リン - 2.Xが推奨。3.Xはライブラリやドキュメントが使えないことも ttp://www.python.org/download/ Python のコーディングガイド PEP8 ttp://www.python.org/dev/peps/pep-0008/ Python のコーディングガイド PEP8 - 日本語訳 ttp://www.oldriver.org/python/pep-0008j.html 日本語文字列コード問題まとめ ttp://python.matrix.jp/tips/string/encoding.html インタラクティブモードのエンコード ttp://python.matrix.jp/tips/compatibility/interact_encoding.html SJISから卒業出来ないひとのための禁じ手 reload(sys); sys.setdefaultencoding('cp932') Pythonの文字化け対策:sys.setdefaultencodingの謎 ttp://hain.jp/index.php/tech-j/2008/01/07/Python%E3%81%AE%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91 実行時にdefaultencodingを変更する ttp://d.hatena.ne.jp/perezvon/20070715/1184469534 PEP-8とか ttp://www.python.org/dev/peps/pep-0008/ ttp://oldriver.org/python/pep-0008j.html Google Python Style Guideとか ttp://google-styleguide.googlecode.com/svn/trunk/pyguide.html ttp://works.surgo.jp/translation/pyguide.html
3 : >1 乙
4 : 辞書型で、値の最大値のキー値を求めたいのですが、スマートなやり方ないですか? d = {0:1,1:2,2:3,4:5,6:7} list(d.keys())[ list(d.values()).index(max(d.values())) ] 6 もっとスマートな方法ないですか? Python3.1です
5 : >>> from operator import itemgetter >>> max(d.items(), key=itemgetter(1)) (6, 7) >>> max(d.items(), key=itemgetter(1))[0] 6
6 : 超初心者的には遅そうで心配
7 : max(d.items(),key=lambda x:x[1])[0] ってのでも出来るんですね 出来れば処理速度が早いのがいいです Cythonでコンパイルして利用します
8 : type()で返ってくる<type 'type'>の解釈を教えてください。
9 : >>2 勝手に2.X推奨すんなボケ。 男なら迷わず3.Xだろ。 女子供はひっこんでろ。
10 : さくらのサーバが2、6じゃん
11 : 2.Xマンセー
12 : 漢なら仮想鯖借りて、自分でOSからいれろ。 3.3のα以前版でも入れ放題だぞ!
13 : 超初心者用が復活した途端に質問者のレベルが跳ねあがったのは気のせいか
14 : そしてお勉強スレのレベルがますます下がるのはいつものこと
15 : いちょつ
16 : 超低レベルってsocket.*とかの話?
17 : こんなに需要があるとは思わなかった() もっと早くたてとけばよかった()
18 : >>16 質問者のPythonレベルが低いってことだろjk
19 : Pythonで書く利点を最大限に活かすために まず最初に覚えるべきことって何ですか?
20 : import this
21 : もっと役に立つモジュールおしえてよ
22 : import __hello__
23 : insert 006P
24 : >>21 http://livedoor.blogimg.jp/kinisoku/imgs/0/b/0b4cfd5d.jpg
25 : _winreg
26 : 風のうさぎちゃん
27 : class Foo(object): のobjectって何者ですか 一体何を継承しているんですか
28 : 継承ツリーの頂点に位置するのがobjectクラス __str__みたいにオブジェクトなら誰でも持ってるメソッドが定義してある dir(object())して出てくるのがたぶんそれ
29 : クラスってインスタンスを継承することも出来るんですか class Foo(): foo = Foo class Fooo(foo)みたいな 何の意味があるんですか
30 : 結局同じオブジェクトを参照してるだけじゃないの?
31 : stringモジュールにascii_lowercaseなんてものがあるとは知らなかった 今までaからzを手打ちしてて文字が抜けたことが何度も・・・
32 : ascii_lowercase知らなかったことは、別に問題ないけど、 >今までaからzを手打ちしてて そこで車輪を発明しようと考えるのは、ちょっと反省したほうがいいぞ・・・
33 : この世にはコピペという便利なものがあってだな
34 : >>29 節子それインスタンスちゃう
35 : >>32 string.base64 はさすがにないな
36 : こっちのスレのほうが建設的になるのはいつものこと。
37 : デストラクタをわざわざ呼び出すことが少ないからね
38 : CUDAスレPython(超初心者用) かと思った。
39 : >>34 え、じゃあ何ですか?
40 : Pythonのソースコードを見ていると class Foo1(): ...def __init__(self) class Foo2(Foo): ...def __init__(self) ......Foo1.__init__(self) こんな感じで、派生先のクラス内の初期メソッドで 継承元のクラスの初期メソッドを実行してるのをよく見かけるんですが これってどういうことなんでしょうか。 そもそも初期化ってどんな場合に必要あるんでしょうか。 あと、pythonのソースで、classのの名前の例がFooになってることが多いと思うんですが このFooってのは何かの略なんでしょうか?
41 : class Foo1(): ...def __init__(self) class Foo2(Foo1): ...def __init__(self) ......Foo1.__init__(self) まちがえた、こうです
42 : pass
43 : >>40-41 その書き方は古いんじゃなかったっけ? class Foo1(): def __init__(self, hoge): return hoge class Foo2(Foo1): def __init__(self, fuga): return super(Foo2, self).__init__(fuga) ttp://d.hatena.ne.jp/migimigi/20081122/1227346471
44 : class Foo1(object): def __init__(self, hoge): return hoge class Foo2(Foo1): def __init__(self, fuga): return super(Foo2, self).__init__(fuga) まちがえた、こうです
45 : >>43 super使ってもどうせ自クラスの名前は入力しないといけないようだけど、それ使う利点ってあるの?
46 : >>44 TypeError: __init__() should return None, not 'int'
47 : >>45 super(self.__class__, self).__init__(*args, **kw) じゃだめか……な。 Python 3.x では super の引数が省略できる。 http://docs.python.org/py3k/whatsnew/3.0.html#builtins
48 : >>47 super(self.__class__, self).__init__(*args, **kw) いけるみたいです
49 : >>> class Foo1(object): ... def __init__(self): ... pass ... def whoami(self): ... print self.__class__ ... >>> class Foo2(Foo1): ... def __init__(self): ... super(self.__class__, self).__init__() ... >>> f1 = Foo1() >>> f2 = Foo2() >>> f1.whoami() <class '__main__.Foo1'> >>> f2.whoami() <class '__main__.Foo2'>
50 : >>> class Foo1(object): ... def __init__(self): ... pass ... def whoami(self): ... print self.__class__ ... def whoismyparent(self): ... super(self.__class__, self).whoami() ... >>> class Foo2(Foo1): ... def __init__(self): ... super(self.__class__, self).__init__() ... >>> f1 = Foo1() >>> f2 = Foo2() >>> f1.whoami() <class '__main__.Foo1'> >>> f2.whoami() <class '__main__.Foo2'> >>> f1.whoismyparent() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 7, in whoismyparent AttributeError: 'super' object has no attribute 'whoami' >>> f2.whoismyparent() <class '__main__.Foo2'>
51 : >>> class Foo1(object): ... def __init__(self): ... pass ... def whoami(self): ... print self.__class__ ... def whoismyparent(self): ... print super(self.__class__, self).__class__ ... >>> class Foo2(Foo1): ... def __init__(self): ... super(self.__class__, self).__init__() ... >>> f1 = Foo1() >>> f2 = Foo2() >>> f1.whoami() <class '__main__.Foo1'> >>> f2.whoami() <class '__main__.Foo2'> >>> f1.whoismyparent() <type 'super'> >>> f2.whoismyparent() <type 'super'>
52 : >>39 >>29 はクラスの実体ではなくクラスを直接fooと結びつけてるね だからfooはFooのインスタンスでなくFooそのものじゃね
53 : >>48 よく考えたら、 super(self.__class__, self).__init__(*args, **kw) とやってるクラスを継承したら無限ループに陥るので駄目だわ。 ごめん。
54 : super使ってもどうせ自クラスの名前は入力しないといけないようだけど、それ使う利点ってあるの?
55 : python で suコマンドを実行して、パスワードを入力したいのですが、 どこかに見本は無いでしょうか。
56 : シェルスクリプトスレに居た人だ
57 : subprocess.call('su hoge')
58 : ◇ ミ ◇ ◇◇ / ̄| ◇◇ ◇◇ \ |__| ◇◇ 彡 O(,,゚Д゚) / ( P `O /彡#_|ミ\ </」_|凵_ゝ 【ラッキーAA】 このAAを見た人はコピペでもいいので 10分以内に3つのスレへ貼り付けてください そうすれば14日後好きな人から告白されるわ宝くじは当たるわ 出世しまくるわ体の悪い所全部治るわでえらい事です
59 : どういう原理で?
60 : Windows7でpython 2.5使ってます ドキュメントに書かれてるのと結果が違います import os print os.name -> nt import platform print platform.system() -> Microsoft どうしたら Windows って出てくるの?
61 : >>54 多重継承を使わない場合は 従来の方法でおk
62 : $ python Python 2.7.2 (default, Oct 25 2011, 04:17:25) [GCC 4.5.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import os >>> print os.name posix >>> import platform >>> print platform.system() Linux >>>
63 : $ python Python 2.6.6 (r266:84292, Sep 2 2010, 19:26:16) [GCC 3.3.6] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import os >>> print os.name posix >>> import platform >>> print platform.system() Linux >>>
64 : $ python Python 2.6.5 (r265:79063, Jun 12 2010, 17:07:01) [GCC 4.3.4 20090804 (release) 1] on cygwin Type "help", "copyright", "credits" or "license" for more information. >>> import os >>> os.name 'posix' >>> import platform >>> platform.system() 'CYGWIN_NT-6.1-WOW64' >>>
65 : Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. >>> import os >>> print os.name nt >>> import platform >>> platform.system() 'Windows' >>>
66 : IronPython 2.7.1 (2.7.0.40) on .NET 4.0.30319.239 Type "help", "copyright", "credits" or "license" for more information. >>> import os >>> print os.name nt >>> import platform >>> platform.system() 'cli' >>>
67 : 質問です。 以下のスクリプトを実行してリストから拡張子がmp3のファイルのみ削除したいのですが、実行結果に'test1.mp3'が残ってしまいます。分かる方がいたら教えてください。 環境はWindows xp sp3, python ver 2.7.1 です。 l = ['test0.mp3', 'test1.mp3', 'test2.mp3', 'test3.wma'] for i in l: if i.endswith(".mp3"): l.remove(i) print l >>>['test1.mp3', 'test3.wma']
68 : >>67 http://www.python.jp/doc/2.3.5/ref/for.html の警告以降を熟読のこと。
69 : 2.6の翻訳もあります http://www.python.jp/doc/release/reference/compound_stmts.html#for
70 : l = [i for i in l if not i.endswith('mp3')]
71 : >>68 、>>69 、>>70 さん有難うございます。 期待どおりの結果が得られるようになりました。 一応、上手くいった方のスクリプトも書いておきます。 l = ['test0.mp3', 'test1.mp3', 'test2.mp3', 'test3.wma'] for i in l[:]: if i.endswith(".mp3"): l.remove(i) print l >>>['test3.wma']
72 : >>> a = (1,2,3) >>> b = a >>> a += (4,5,6) >>> a (1, 2, 3, 4, 5, 6) >>> b (1, 2, 3) >>> a = [1,2,3] >>> b = a >>> a += [4,5,6] >>> a [1, 2, 3, 4, 5, 6] >>> b [1, 2, 3, 4, 5, 6] そんなもんなのね・・・
73 : >>> a += (4,5,6) これって禁止されてないのか
74 : 内部的には、まず元オブジェクトを書き換える __iadd__() の実行を試してみて、 それができなければ __add__() 呼んでオブジェクト差し替えしてるみたいです。 list には__iadd__() もあるが、tupleには __add__() しかない。 まぁ、自分でクラス作るときは、__ixxx__() シリーズを作るべきか否か 気をつけましょう、ってことで。
75 : モジュールをimportをするっていうのは いわゆるPythonが提供しているクラスを読み込んでくるってことですよね? import random random.uniform(2,10) みたいにクラス.メソッド(引数)って感じで呼び出すのが普通なのかと思っていたら Pythonって class test(): ...def testMethod(self): ......print "test" っていうクラスとメソッドがあった場合 この状態で直接クラス.関数名(引数)[test.testMethod'()]って呼び出すとエラーが出るじゃないですか まずt=test()って言う風にインスタンスを作って その後t,testMethod()って形で呼び出す形式なのが普通なんですかね? モジュールとかを読み込んだ後に、クラス.関数名(引数)で呼び出せているのは モジュールの内部で class test(): ...@classmethod ...def testMethod(self): ......print "test" っていう風に、内部でクラスメソッドとして定義されているからってことですか? 何でこんな風に内部メソッドの呼び出し方が分かれているんでしょうか インスタンスを作ると必ず初期メソッドが実行されてしまうから それを避けるために@classmethodがあるということでしょうか? インスタンスを作るっていうのは、初期メソッドと一緒に、クラスの内部を使いたいという 両方の条件が揃ってる時だけって解釈でいいんでしょうか?
76 : >>75 誤字が多くて何言ってるのかわからん。 JavaScript風のオブジェクト指向しかやったことがないなら 一回Javaの薄い本でも読んでみたら?
77 : importで読み込むのはモジュールであってクラスじゃない
78 : Javaの薄い本…ゴクリ >>75 んーと、色んなことを混同し過ぎだよ モジュール名の後の . クラス名の後の . インスタンス(つまりクラスから生成されたオブジェクト)の後の . それぞれを一度、分けて考えてみて
79 : >>75 __call__()
80 : >>40 おまいは基礎からやり直し
81 : 馬鹿には無理
82 : 空中に基礎は打てない
83 : >>> class Test(object): ... def __call__(self): ... print 'hoge' ... >>> Test()() hoge なんだこりゃ
84 : >>83 ん? 至極真っ当な動作だと思うけど…
85 : 基礎ってどうやってみにつければいいの C++とか覚えればいいの
86 : 公式チュートリアルを読む
87 : >>85 あえて言えば Smalltalk かな
88 : 馬鹿には無理
89 : pythonで基礎は学べるはずだけど
90 : おすすめの入門本はありますか?
91 : >>85 , >>90 まずはこれを読む。 ttp://www.python.jp/doc/release/tutorial/ 分からないことはググる。それでも分からなかったらここで聞く。
92 : 2chのスレから画像だけをダウンロードさせるスクリプトを書きたいんですが、 以下でできません。どうすればいいんでしょうか import urllib urllib.urlretrieve( 'http://hibari.2ch.net/', '保存先ディレクトリ')
93 : >>92 なんでそれでダウンロードできると思ったか知りたい。 reを使ってjpgとかを抜き出したら 短縮URLは知らん。
94 : 馬鹿には無理
95 : 普通はdatからだな
96 : ttp://codepad.org/867hG83d
97 : >>93 ここに書いてあったんだ。 http://www.gesource.jp/programming/python/code/0006.html >>96 試したら --OKしか出てこなかった(´・ω・)
98 : >>97 hoge.py という名前で保存したら コマンドラインから ./hoge.py http://hibari.2ch.net/test/read.cgi/tech/1322115727/ とか打てばいい っていうかこれくらいソース見て判断汁
99 : |....,,__ |_::;; ~"'ヽ | //^''ヽ,,) | i⌒" | ∀`) < 誰もいない きのこるならいまのうち |⊂ | ノ _,,,......,,__ /_~ ,,...:::_::;; ~"'ヽ (,, '"ヾヽ i|i //^''ヽ,,) ^ :'⌒i i⌒" |( ´∀`) < きのこ のこーのこ げんきのこ ♪ |(ノ |つ | | ⊂ _ ノ ""U _,,,......,,__ /_~ ,,...:::_::;; ~"'ヽ (,, '"ヾヽ i|i //^''ヽ,,) ^ :'⌒i i⌒" (´∀` )| < エリンギ まいたけ ブナシメジ ♪ ⊂| (ノ | | | ヽ _ ⊃ .U"" | | ミ | ミ サッ! | ミ |
100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
・ 次のスレ
47: クラス名・変数名に迷ったら書き込むスレ。Part20 (629)
48: awkについて語るスレ $2 (669)
49: 文字コード総合スレ part7 (440)
51: 雑談スレ 4 (185)