- 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/
- 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') のようにエンコーディングを指定してファイルを開くのが正しい方法だぞ。
- 386 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 11:45:18 ]
- リスト型で日本語を扱う場合一個ずつ取り出さないと文字が化けちゃうんですが
スライスで一度に複数の要素を扱えるようになる方法はないんでしょうか
- 387 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 11:54:03 ]
- >>386
実際に化ける場合のコードと、「一個ずつ取り出す」のコードを見せてみりゃれ
- 388 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 12:11:28 ]
- 辞書を
hoge = {'fuga': 1} print hoge.fuga とJSの連想配列のようにキーをプロパティみたいにして アクセスしたいんですがどうにか実現できないですか?
- 389 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 12:38:09 ]
- >>385
フッ…txtをUTF-8で保存することを覚えただけさ ついでにだけどunicode_literalsって何? 2.5だとimportできなくていいのか?
- 390 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 12:48:52 ]
- >>389
うん、2.6からしか使えない。 たとえば、 #coding: utf-8 open("あいうえお") ってやると、"あいうえお"はutf-8のバイト列だから、Windowsとかでは "あいうえお" という名前のファイルを開けない。 open(u"あいうえお") と書くと普通にファイルが開ける。 で、 Python 3.0 以降では普通に "あいうえお" と書くと Python 2系の u"あいうえお" 相当になるんだけど、Python2系でもu無しにUnicode文字列を書けるようにするのが unicode_literals
- 391 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 12:51:59 ]
- >>388
例えば、 >>> class JSObject(dict): ... def __init__(self, o): ... self.__dict__ = o ... >>> o = JSObject({'foo': 1}) >>> o.foo 1 他にも __getattr__, __setattr__ を使った方法とかもある。
- 392 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 13:10:28 ]
- >>387
こんな感じです #ファイルの2行目からの文字列を3行ずつリストの1要素にまとめて扱いたい fhnd = open('spam.txt','r') lines = [] add_up = [] line_start = 2 line_end = 5 for temp in fhnd: lines.append(temp) for temp in lines: if (line_start > line_max) or (line_end > line_max): break add_up.append(lines[line_start] + lines[line_start+1] + lines[line_end-1]) #←化けない # add_up.append(lines[line_start:line_end]) #←上の代わりに実行すると化ける print str(add_up[0]) + str(add_up[1]) + str(add_up[2])#←上のfor文内のうち上の行を実行なら化けない print str(add_up[0:3])#←上のfor文内のいずれでも化ける
- 393 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 13:12:35 ]
- 抜けてたけど
line_max = len(lines) です
- 394 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 13:13:17 ]
- >>391
おお!ありがとうございます! 勉強になりました!
- 395 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 13:58:36 ]
- >>392
> add_up.append(lines[line_start] + lines[line_start+1] + lines[line_end-1]) #←化けない > # add_up.append(lines[line_start:line_end]) #←上の代わりに実行すると化ける 上の場合、appendの引数は文字列だけど、下の場合はリスト なので下を上と同じくするならadd_up.append( ''.join( lines[line_start:line_end]))じゃまいか > print str(add_up[0:3])#←上のfor文内のいずれでも化ける リストをstrしたときに得られるのはprintできる文字列 >>> L = [1, 2, 3] >>> str(L) '[1, 2, 3]'
- 396 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 15:24:04 ]
- >>392
まずはstr()とrepr()の違いが判らないとな。 >>> astr = 'あいう' >>> alist = [astr] >>> print astr あいう >>> print alist ['\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86'] リストを文字列にしようとしたら、リストの要素にはstr()ではなくてrepr()が適用される。 repr()されると、文字列のうちASCII文字以外は\xでエスケープして表示される。 三行分の文字列を配列にして add_up を2重配列にしたい? それとも三行分の文字列を一つの文字列に連結したい? lines = open('spam.txt').readlines() add_up = [] for i in range(1, len(lines), 3): add_up.append(lines[i:i+3]) # 2重配列にしたい場合 add_up.append(''.join(lines[i:i+3])) # 連結したい場合
- 397 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 16:36:49 ]
- エンコーディング方面の問題かと思って
見当違いな方向に進むところでした ありがとうございました
- 398 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 05:48:35 ]
- >>390
ありがとう
- 399 名前:デフォルトの名無しさん [2009/07/13(月) 22:41:07 ]
- [1,2,3,1,4,5]のようなリストの重複した要素を削除して[1,2,3,4,5]のようなシーケンスを作る。
※並び順は問わない。 set型を使わず、for文とif文を組み合わせるなどして作成する。 模範解答をお願い致します。
- 400 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 22:50:35 ]
- とりあえず、初歩的にはこんな感じだろう。
ListA = [1,2,3,1,4,5] ListB = [] for x in ListA: if not x in ListB: ListB.append(x) print ListB
- 401 名前:デフォルトの名無しさん [2009/07/13(月) 22:53:49 ]
- >>400
レスありがとうございます。 削除する方法ばかり考えてましたが、追加するって考え方もあるんですね すごく参考になりました。スマートな回答どうもです!
- 402 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 22:56:05 ]
- a = [1,2,3,1,4,5]
print list(set(a))
- 403 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 22:56:27 ]
- 最初に空リスト作るってのはよくある
- 404 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 00:44:04 ]
- >>399
set型を使わない理由は?
- 405 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 00:52:50 ]
- 宿題だからでは・・・
あれ、だとすると宿題スレだなw
- 406 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:09:18 ]
- 2ちゃんに書き込みたいけどcookieがよく分からん
どうやってResponseから取り出してrequestに追加するの?
- 407 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:42:01 ]
- firefox使えばok
- 408 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:45:22 ]
- というかwgetだけでできるじゃん
- 409 名前:デフォルトの名無しさん [2009/07/15(水) 06:59:12 ]
- インスタンスに勝手に属性をつけられないようにはできませんか?
クラスの定義に書いてある属性だけで打ち止めにしたい・・・
- 410 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 08:56:43 ]
- def __setattr__(self, name, value):
if hasattr(self, name): object.__setattr__(self, name, value) else: raise AttributeError(name)
- 411 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 09:10:10 ]
- そうか!
__setattr__ をオーバーロードすればよかったんですね.
- 412 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 09:23:09 ]
- __slots__ とどこが違うの?
- 413 名前:410 mailto:sage [2009/07/15(水) 09:58:48 ]
- >>409的なことはやらないから忘れてた
|

|