[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/09 18:56 / Filesize : 160 KB / Number-of Response : 749
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれPython(超初心者用) その4



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/

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

353 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 01:44:26 ]
>正書式でなくても適当によしなに計らってくれるとなお嬉しい。

lxml だと無理?



354 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 02:18:39 ]
lxmlもがんばってくれるよ

355 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 06:15:05 ]
any(x < b for x in (a, b, c))だろ、常識的に考えて……

356 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 10:06:22 ]
any(b<=x for x in (a, b, c))

357 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 11:50:56 ]
class Hogeがあったとして、
"Hoge"からはどうやってアクセスするんだっけ?

あと、こういうのを一般的に言って、どんな専門用語でしたっけ?

358 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 11:53:48 ]
>>357
globals()["Hoge"]

359 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 12:01:54 ]
>>358
ありがとうございます。

360 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 12:11:41 ]
イントロスペクションとかリフレクションとかそのへんの用語を求めてる?

361 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 12:43:47 ]
>>360
イントロスペクションってのは初めて聞いたので、調べてみます。

単に、eval("Hoge")みたいなのと勘違いしていた模様。

362 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 13:21:52 ]
Hoge.py 内に
class Fuga があったとして、
"Hoge", "Fuga" からはどうやってアクセスするんだっけ?


363 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 13:23:23 ]
Hoge.py 内に
class Fuga, method Hage があったとして、
"Hoge", "Fuga", "Hage" からはどうやってアクセスするんだっけ?



364 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 13:31:07 ]
 

365 名前:デフォルトの名無しさん [2009/07/07(火) 13:34:51 ]
 

366 名前:デフォルトの名無しさん [2009/07/10(金) 09:36:03 ]
age

367 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 09:49:45 ]
おはようございます。
わたし16歳の女子高生ですけど
Python始めるにあたって最初に読むべき本は
ありますか?

368 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 10:08:35 ]
ないよ

369 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 13:44:13 ]
こんにちは。
わたし15歳の巨乳グラビアアイドルなんだけど
みんなでPythonやろうよ。

370 名前:デフォルトの名無しさん [2009/07/10(金) 13:59:45 ]
みんなでPython www

371 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 05:24:24 ]
Good Morning, Everyone!!!!
I am a thirteen years old girl.
I will start learning Oppaithon Programming.
Please teach me chome-chome.

372 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 05:35:52 ]
chome-chomeとか団塊レベルじゃないと使わないだろう普通

373 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 06:18:10 ]
コメコメ?アスタリスクのこと?



374 名前:デフォルトの名無しさん [2009/07/11(土) 09:33:34 ]
いつもの英語下手なひとか

375 名前:デフォルトの名無しさん [2009/07/11(土) 12:39:50 ]
OptionParserについて質問です


#!/usr/bin/env python
# coding: utf-8

from optparse import OptionParser

parser = OptionParser()
parser.add_option('-f', '--fuga', action='append', type='string', dest='fugaList', help='fugafugafuga')
(options, args) = parser.parse_args()
print options.fugaList


※上記のスクリプト名を仮にfugaとする

実行例1:
$ ./fuga -f hoge piyo
['hoge']

実行例2:
$ ./fuga -f hoge -f piyo
['hoge', 'piyo']

複雑なオプション指定による処理分岐を行いたくてOptionParserを使い始めました
実行例1のように一つのオプションに多数の引数を渡して、
実行例2の結果['hoge', 'piyo']のように"options.fugaList"に
引数を代入したいのですが、可能でしょうか?
可能ならアドバイスをお願いします

376 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 12:55:13 ]
一つのオプションに対して複数のオプション引数を許したら
後に続くであろう固定引数が存在するかしないか確認する術がない気がする

なので素人考えだけど -f"hoge,piyo" でごまかすとか

377 名前:デフォルトの名無しさん [2009/07/11(土) 13:22:26 ]
>>376
レスありがとうございます

>>275にこのスクリプトの使用目的を書いていなかったので
後出しになってしまいますが

$ ./fuga hoge_*

のようにコマンドラインからワイルドカードを使用して、
複数のファイル名をオプション引数に渡して利用するのがメインなので
-f"hoge,piyo" ではちょっとごまかせないです。。。

378 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 17:38:38 ]
そういう場合-fオプションがあったらどういう動作をする、という風に作るものであって
-fオプションにパラメータをぞろぞろ渡すという風にはしないだろ、普通。

379 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 20:33:47 ]
A/B/__ini__.py で変数を定義
hoge = 'hogehoge'
A/B/module_x.py というモジュール内でhogeを使いたい場合、どうすればいいのかを教えてください。

import hoge
ではダメなんですか?

380 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 21:02:00 ]
>>379
コピーでよけりゃ
from . import hoge

381 名前:375 mailto:sage [2009/07/12(日) 02:57:27 ]
>>378
確かに普通はそうかもしれませんね。。。



という訳でOptionParserではワタシがしたいことが出来なさそうなので
自分でモジュールをつくることにしました
どうもありがとうございました


382 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 03:26:51 ]
どういたしまして

383 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 07:40:36 ]
>>377
OptionParserなりgetoptで "hoge_*" を文字列として受け取ってから
glob でワイルドカードを展開すればいいんじゃまいか。

ためしてないけど Linux/Unix 環境だとワイルドカードはシェルによって
展開されてからプログラムに渡されるので

./fuga -f "hoge_*"

のようにコマンド引数をクオートして書く必要がある。



384 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 09:37:55 ]
きたああああああああああああああ
UnicodeDecodeError出なくなった!

385 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 10:08:02 ]
>>384
どうやった?
まさか setdefaultencoding() じゃないよな?

from __future__ import unicode_literals
して、テキストファイルのファイル入出力は
import codecs
codecs.open('foo', encoding='cp932')
のようにエンコーディングを指定してファイルを開くのが正しい方法だぞ。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<160KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef