1 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 19:25:51 ] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、 お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは >>950 辺りで 前スレ くだすれPython(超初心者用) その3 pc12.2ch.net/test/read.cgi/tech/1232055225/ 関連スレ Pythonのお勉強 Part33 pc12.2ch.net/test/read.cgi/tech/1240678081/
252 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 02:10:36 ] >>251 3.0からはbuiltin関数ではなくなって、モジュールへと追いやられた。 Guido は、他のmapやfilterもbuiltinからは外すべしと主張してたが、これらは3.0ではなんとか残った。 4.0になったときには、builtinから外れてもなんら不思議ではない。
253 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 02:27:00 ] あと、上の方にあるベンチマークだが、 あれはかなり古いPythonのベンチ。 リスト内包表記はバージョンがあがるたびにスピードアップしてて、 現在では、lambdaなしのmapに準ずるほどのベンチスピード。 一方、mapでlambdaを使ったら、リスト内包表記どころか、 通常のforループと同じかそれより遅いぐらいになる。
254 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 03:58:35 ] ということは3.0以上ではreduceは 全部リスト内包に置き換えた方がよい ということですね
255 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 05:55:35 ] >>253 それって、リスト内包では評価対象がイテレータになるんで速い、ってことなの?
256 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 06:36:32 ] >リスト内包表記はバージョンがあがるたびにスピードアップしてて、 >現在では、lambdaなしのmapに準ずるほどのベンチスピード。 現在とは3.0ですか2.6ですか
257 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 07:09:21 ] >>254 reduceをいったいどういう内包表現に置き換える積もりなんだ?
258 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 12:42:01 ] >>4-8 おかげさまでうまくいきました 無料の50MBだとコンパイルに失敗(というかソースの展開ですでに失敗)するので quota3GBのお試し期間を申し込んだら2.5.4をまるごとコンパイルできました setuptool/mysqldb等も放り込んでMySQLにもアクセスできました お試し期間が終わるとquotaが50Mに戻るので放っとくとファイルが壊れるそうで それまでに必要最小限サイズになるように標準ライブラリを削る必要がありました 結局バイナリCGIのケースとやってることはあまり変わらないかもしれません
259 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 13:47:20 ] >>253 mapで使う関数は、defしたほうがいいってことですか? defしたリスト内包表記>defしたmap≒lambdaで書いたリスト内包表記>lambdaで書いたmap≒普通のfor てことなんすかね。リスト内包表記はCで実装した部分を実行するのが多いってことなんだろか
260 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 09:21:38 ] >>259 普通に自分で def した関数ならば変わらない。 でも、自分で定義しなくても使える関数はC言語で実装されている 事が多いので、同じ事をする lambda よりも高速な事が多い。 速い順に並べると、 1. C関数の内包表記/map map(str, l) [str(x) for x in l] 2. Python式による内包表記 [x*2+3 for x in l] 3. Python関数による内包表記/map def func(x): return x * 2 + 3 map(func, l) [func(x) for x in l] map(lambda x: x*2+3, l) なので、mapを使っても悪くは無い場合は、1か、3で既存のPython関数を 使う(map用に用意しなくてもいい)場面のみ。
261 名前:デフォルトの名無しさん [2009/06/18(木) 23:38:12 ] ユニコード文字列に関して質問させて下さい。 python2.6を使用しておりますが、このVerはユニコード文字列は気にしなくてもいいんですか? 例) #coding: utf-8 a={"abc":"123","bcd":"456"} b="コード:%(abc)s 局:%(bcd)s" print b%a #コード:123 局:456 ユニコードのu""は必要ないのでしょうか? むしろu""を使用するとエラーとなります。
262 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 00:23:39 ] >>261 >>1
263 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 01:00:51 ] >>261 ファイルはちゃんとutf-8で保存してる? どこに u を付けたの? なんてエラーがでたの? それはインタラクティブシェル上?それともファイルに保存したコードを実行したの? 環境はWindows?Linux?Mac?
264 名前:デフォルトの名無しさん [2009/06/19(金) 21:45:53 ] 261です。 utf-8の設定ミスでした。お騒がせ致しました。 違うPCでやったのが原因でした。
265 名前:デフォルトの名無しさん [2009/06/20(土) 21:17:00 ] くだらない質問で悪い 文字列フォーマットで >>>print "%+010.2f" % 100.123 +000100.12 となりますが、この10桁ってのは、符号と小数点(.)も含まれるってことでいいんだよね?
266 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 23:58:48 ] >>265 桁というか、文字数、と思ってたわ。 "前に符号付き0埋め10文字、小数点以下2桁の小数点表示" とおれは理解してた。
267 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 01:25:44 ] C とはちがうんだっけ?
268 名前:デフォルトの名無しさん [2009/06/21(日) 01:51:43 ] みんなのPython改訂版って誤字脱字多くね?
269 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 02:56:07 ] >>268 多い。かなりイラッときた。
270 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 03:05:18 ] みんパイ(笑)
271 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 03:27:22 ] はじめてのPython3も誤字脱字が多いですね 正誤表もいまだ出ていません
272 名前:デフォルトの名無しさん [2009/06/21(日) 16:53:32 ] やっぱりみんなも気づいてた? 電話してやろうかと思ってたw 日本語どころかコードも怪しい 変な太字のところとかあるしw
273 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 01:14:16 ] 定期的にウジ虫が沸くな。
274 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 01:24:03 ] よう、ウジ虫!
275 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:41:02 ] 馬鹿にすんな、今成長してハエになったところだぜ?
276 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 12:23:54 ] 迷惑度急上昇だな。
277 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 13:21:08 ] >>274 ウジ虫に失礼だ。ゴキブリと呼べ。
278 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 14:27:22 ] >>277 呼んだ? 、 /⌒ヽ, ,/⌒丶、 , `,ヾ / ,;;iiiiiiiiiii;、 \ _ノソ´ iカ / ,;;´ ;lllllllllllllii、 \ iカ iサ' ,;´ ,;;llllllllllllllllllllii、 fサ !カ、._ ,=ゞiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii!! __fカヘ. / `ヾサ;三ミミミミミミ彡彡彡ミヾサ`´ 'i、 i' ,._Ξミミミミミミミ彡/////ii_ | | ;カ≡|ヾヾヾミミミミミミ、//巛iリ≡カi | | iサ |l lヾヾシヾミミミミミ|ii//三iリ `サi | | ,カ ,カll|l l lヾリリリリリ川川|爪ミミiリllカ、カi | | ;iサ,サ |l l l リリ川川川川|爪ミミiiリ サi サi | | iカ ;カ, |l l リリリリ川川川川l爪ミミilリ ,カi カi | | iサ ;サ, |リ リリ川川川川川l爪ミミiリ ,サi サi | | iサ ;iカ, | リ彡彡川川川川|爪ミミiリ ,カi :サ、 | ,i厂 iサ, |彡彡彡彡ノ|川川|爪ミミリ ,サi `ヘ、 ,√ ,:カ, |彡彡彡彡ノ川川|ゞミミミリ ,カi `ヾ ´ ;サ, |彡彡彡彡川川リゞミミリ ,サi ;カ, |彡彡彡彡リリリミミミシ ,カi ,;サ, |彡彡ノリリリリミミミシ ,サi ;メ'´ i彡ノリリリリリゞミミシ `ヘ、 ;メ ヾリリリリノ巛ゞシ `ヘ、 ;メ ``十≡=十´ `ヘ、 ノ ゞ
279 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 23:15:49 ] IDLEをコンソールから呼び出すにはどうすりゃいいの。 vimと連携させようと思っているんだけど、IDLEショートカットのプロパティを みても普通のショートカットと違うみたいで呼び出し方がわからないんだわ。 ちなみに、普通のpythonプロンプトなら nmap <silent>;py :!"C:\python30\python.exe"<CR> と_gvimrcに書いておけば;pyと書くだけで呼び出せて便利。
280 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 23:17:05 ] 『書く』じゃなかった、『コマンド』したら。
281 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 12:34:36 ] うじ虫のAA ↓
282 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 12:36:48 ] 0
283 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 18:36:18 ] ∞
284 名前:デフォルトの名無しさん [2009/06/24(水) 23:03:37 ] ファイル名の変換で困ってます。アドバイスをお願いします。 # -*- coding: utf-8 -*- import os TargetPath = r"C:\test" FileList = os.listdir(TargetPath) for i in FileList: print i for cnt in FileList: c=1 os.rename("%03d.mp3"%c,cnt) c+=1 ※インデントは消えてると思います。。。 WindowsError: [Error 2] 指定されたファイルが見つかりません。 というエラーが出てしまいます。どういうことでしょうか
285 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:10:41 ] よくわからんが、cをforの前に持ってこないとずっと1のままじゃね?
286 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:28:52 ] 俺だったらenumerate使うけど まぁいいか
287 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 00:28:37 ] >>284 なんかいろいろまちがっててよくわからんけど こうしたかったんじゃないか? # -*- coding: utf-8 -*- import os targetpath = r"C:\test" filelist = os.listdir(targetpath) for filename in filelist: print filename c = 1 for filename in filelist: oldpath = os.path.join(targetpath, filename) newpath = os.path.join(targetpath, '%03d.mp3' % c) os.rename(oldpath, newpath) c += 1
288 名前:デフォルトの名無しさん [2009/06/25(木) 18:43:09 ] >>287 スマートな正解をありがとうございます。 とても参考になりました。 renameへの引数はこのようにするんですね!
289 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 23:07:30 ] このプログラム添削してください。 animal = [dog,cat,pig,lion,deer] num = [1,2,3,4,5,6] print animal[0] "は"num[0]"番可愛いです。 print animal[2]"は"num[5]"番可愛いです。 あってますか? ちなみに dogは1番可愛いです pigは6番可愛いです と表示させたいです
290 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 23:32:36 ] >>289 1から勉強しなおせ animal = ["dog", "cat", "pig", "lion", "deer"] num = [1, 2, 3, 4, 5, 6] print "%sは%d番可愛いです。" % (animal[0], num[0]) print "%sは%d番可愛いです。" % (animal[2], num[5])
291 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 23:58:38 ] >>289 おまえセンス無いわ
292 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 02:27:36 ] センスとか関係ないし 釣りの可能性はあるが
293 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 02:36:29 ] でも具体的なコード貼って添削してくれってのはアリだね 初心者に説明してもらってもイミフなケース多いし
294 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 06:18:15 ] スレと関係ないんだけどさ、俺「釣り」とか「釣り師」っていうのは、 釣り師 ↓ . /| ←竿 ○ / | . (Vヽ/ | <> | ゙'゙":"''"''':'';;':,':;.:.,.,__|_________ | 餌(疑似餌)→.§ >゚++< 〜 の組み合わせだと思ってたんだけど、 最近自称釣り師がダイレクトで自分の本音を攻撃されて「釣れた!」とか 言ってるの多いよね。 これは、どっちかというと、 ,〜〜〜〜〜〜 、 |\ ( 釣れたよ〜・・・) | \ `〜〜〜v〜〜〜´ し \ ゙'゙":"''"''':'';;':,':;.:.,., ヽ○ノ ~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ト>゚++< ノ) かと思うんだけど、どうよ?
295 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 23:25:30 ] >>294 そんなコピペで
296 名前:デフォルトの名無しさん [2009/06/27(土) 00:15:10 ] 他にも添削希望いないのかな
297 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 14:04:04 ] Pythonは、あることを書くときに「なるべく誰でも書き方が同じになるようにしよう」 というのはいいです。 でもあることをしたい時に「ライブラリがすごいたくさんあっちゃって混乱してるけど すきなの選んで」って勘弁してほしいんですが
298 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 16:49:36 ] 勘弁します
299 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 22:27:43 ] >>297 それはPerlのCPANじゃね? Pythonは標準ライブラリが充実している分、たくさんのサードパーティー ライブラリの中からマトモなのを探す手間が省けることが多いよ。
300 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 02:25:50 ] つきなみだけど 同意
301 名前:デフォルトの名無しさん [2009/06/28(日) 09:18:41 ] FTPで対象のファイルがディレクトリかどうかはどう判断すればいいでしょうか? マニュアルを見ましたが、該当のコマンドが見つかりませんでした. www.python.jp/doc/2.4/lib/ftp-objects.html nlst() で片っ端から試して例外処理で取得する方法を思いつきましたが もっとスマートな方法はありませんか?
302 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 11:42:42 ] ls -lR
303 名前:デフォルトの名無しさん [2009/06/30(火) 22:07:59 ] すいません添削ってわけではないですが、質問させて下さい。 1から100までの数字で不定期に続くリストがあります。 cnt=[2,3,5,9,12,23,56,62,68,75,85,95] でどの数値が抜けているのかを調べる。 #coding:utf-8 cnt=[2,3,5,9,12,23,56,62,68,75,85,95] num=range(1,101) for i in cnt: #numから繰り返し変数iを引きたいんだけど、何が一番スマートだろ… print num
304 名前:デフォルトの名無しさん [2009/06/30(火) 22:13:41 ] 書き忘れました。 #coding:utf-8 cnt=[2,3,5,9,12,23,56,62,68,75,85,95] num=range(1,101) for i in cnt: num.remove(i) print cnt がベストかと思うんですが…間違ってますか?
305 名前:デフォルトの名無しさん [2009/06/30(火) 22:15:36 ] 最後はprint num でした。度々すいません
306 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 22:16:13 ] setでも使え
307 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 22:19:36 ] [ x for x in range(1,101) if x not in [2,3,5,9,12,23,56,62,68,75,85,95]]
308 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 22:22:16 ] set(num) - set(cnt)
309 名前:デフォルトの名無しさん [2009/06/30(火) 22:28:35 ] そういうのも可能なんですね ありがとうございます。 どーしょーもない質問ですいませんでした
310 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 18:25:23 ] ちんこ生えてきた
311 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 02:41:46 ] >>310 今度は大事にしろよ。
312 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 05:25:27 ] ┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ おっぱい!おっぱい! └─┘ おっぱい!おっぱい!
313 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 11:39:22 ] if文で一度に複数の変数、たとえば if a>0 and b>0 and c>0: みたいなのは無理ですか?
314 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 11:48:17 ] >>313 そんなの聞くよりやった方が早いだろ。 普通に対話型でもできるし。
315 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 11:48:33 ] 可能です
316 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:00:10 ] if 0 < a < 5: と書いてもエラーにならない処理系はありますか
317 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:02:38 ] ある
318 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:07:23 ] Pythonにはない。 あと、エラーにはならなくとも、おもいがけない意味になることもある (C言語とか)。
319 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:12:13 ] >>318 >>318 >>318
320 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:22:05 ] (回答者が)超初心者用
321 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:27:42 ] Rubyなら全部できるよ^^
322 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:32:12 ] >>318
323 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 14:47:17 ] >>318 0 < (a < 5) または (0 < a) < 5 ということですか?
324 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 14:53:34 ] #include <stdio.h> int main(int ac, char *av[]){ int a; for(a = 0; a <= 5; a++) if(0 < a < 5) printf("%d: true\n"); else printf("%d: false\n"); return 0; } # if(0 < a < 5) 0: true 1: true 2: true 3: true 4: true 5: true # if(0 < (a < 5)) 0: true 1: true 2: true 3: true 4: true 5: false
325 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 15:05:43 ] >>318
326 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:24:50 ] じゃあ、俺も一応 >>318
327 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:11:57 ] 0: false 1: true 2: true 3: true 4: true 5: false になるようにするにはどうすればいいですか
328 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:18:01 ] >>324 C/C++スレに帰れ 0 < a && a < 5
329 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:21:22 ] Cはa < b < cはどうやってもダメだけどPythonは意図通りに動くだろ、確か >>324 はきちんと動いてないし
330 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:24:13 ] きっちり正しく動いていて、書いたほうがアホと言う方が正しい
331 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:28:31 ] >>318
332 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:43:56 ] >>330
333 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:44:45 ] まいんまいん
334 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:47:34 ] >>318
335 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 22:17:47 ] lispで (< 0 a 5) 当然Rubyなんかには出来ません
336 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:07:38 ] (setq a 3) 3 (< 0 a 5) t >>> a = 3 >>> 0 < a < 5 True
337 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:22:22 ] a > b > c > dは t = b u = c a > t and t > u and u > d ってことか。これはきもいなー。 Python3でも変わってないのね。 まあ、気にしないことにしよう。
338 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:27:34 ] Cをはじめた初心者がうっかりやりがちなぐらい自然な記法なのに!
339 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:31:57 ] Pythonの三大ステキ機能のひとつにケチをつけるとはいい度胸だ
340 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:45:06 ] bが最大であることをテストするのに a < b > c #これはいただけないよね?だからと言って b == sorted((a, b, c))[2] #これは頭がおかしい
341 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:50:58 ] Python > Ruby > C
342 名前:デフォルトの名無しさん [2009/07/04(土) 00:05:09 ] (a and c) < b
343 名前:デフォルトの名無しさん [2009/07/04(土) 00:09:40 ] a, b, c, d のなかで bが最大であることをテストするのに a < b > c に d を加えられない sorted の方が正解
344 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:11:34 ] >>342 は何がしたいんだ
345 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:12:11 ] max(a, b, c, d) == b
346 名前:デフォルトの名無しさん [2009/07/04(土) 00:15:07 ] reduce(lambda x, y: y if x < y else x, [5, 2, 7, 3])
347 名前:デフォルトの名無しさん [2009/07/04(土) 00:16:53 ] reduce は 2.6 以上では使えないんだっけ
348 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:19:19 ] functools.reduce に移動しただけだから問題ないよ
349 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:20:23 ] any(x < b for x in (a, b, c))だろ、常識的に考えて……
350 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:24:28 ] つーか、もう比較アルゴリズムの話だろ。
351 名前:デフォルトの名無しさん [2009/07/04(土) 00:50:00 ] web から取ってきた HTML を食わせて、XPath でデータを取り出したい。 正書式でなくても適当によしなに計らってくれるとなお嬉しい。 Ruby だったら Nokogiri みたいだけど、Python では何?
352 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:55:37 ] >>351 - BeautifulSoup - lxml