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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで

前スレ
くだすれPython(超初心者用) その16
http://toro.2ch.net/test/read.cgi/tech/1358753763/
関連スレ
Pythonのお勉強 Part48
http://toro.2ch.net/test/read.cgi/tech/1358750040/
【実験台】 Python 3.0 のお勉強 Part 1 【非互換】
http://toro.2ch.net/test/read.cgi/tech/1235050215/
◆関連リンク
Python の Home Page
ttp://www.python.org/
2デフォルトの名無しさん:2013/04/07(日) 17:25:59.36
|....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
|  i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
      |( ´∀`) < きのこ のこーのこ げんきのこ ♪
      |(ノ   |つ
      |     |
     ⊂ _ ノ
       ""U
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
     (´∀` )| < エリンギ まいたけ ブナシメジ ♪
    ⊂|  (ノ |
      |     |
      ヽ _ ⊃
      .U""
|
| ミ
| ミ  サッ!
| ミ
|
3デフォルトの名無しさん:2013/04/07(日) 17:27:55.82
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
4デフォルトの名無しさん:2013/04/08(月) 09:35:04.27
質問いいですか?
5デフォルトの名無しさん:2013/04/08(月) 09:47:39.85
いいっすよ?
6デフォルトの名無しさん:2013/04/08(月) 12:07:41.23
2.7.4、3.3.1リリース
例の日本語.pyが実行できない問題は修正されました
7デフォルトの名無しさん:2013/04/08(月) 12:23:35.08
なんだ、2.xも更新続けるのか
8デフォルトの名無しさん:2013/04/08(月) 12:26:14.76
RCを3週遅れでリリースした割に正式版はほぼ予定通りだな
・・・大丈夫なの?
9デフォルトの名無しさん:2013/04/08(月) 15:58:44.34
pythonでjqueryライクなcssセレクタを使ってDOM要素を操作できる
HTMLパースライブラリってありますか?
Javaのjsoupのようなものが理想です
ttp://jsoup.org/cookbook/extracting-data/selector-syntax
10デフォルトの名無しさん:2013/04/08(月) 16:00:41.60
http://code.google.com/p/soupselect/
これ以外でよろしくお願いします
11デフォルトの名無しさん:2013/04/08(月) 16:22:00.87
12デフォルトの名無しさん:2013/04/08(月) 17:28:50.71
>>11
ありがとう
じっくり検討してみます
13デフォルトの名無しさん:2013/04/08(月) 17:39:25.24
御健闘を祈ります
14デフォルトの名無しさん:2013/04/08(月) 20:51:44.92
pyquery
15デフォルトの名無しさん:2013/04/08(月) 22:17:40.10
>>14
これは!理想系ですね。
重ねて御礼申し上げます。
16デフォルトの名無しさん:2013/04/09(火) 13:40:25.00
俺デザイナーで使ってるソフトのPythonのコンパイラが変更になったから
Readme読みながら初めて自分でビルドしてみたんだ…

あれがないだの これが通ってないだの…警告が大量に出て
言われている意味が1/3も理解できねー
お前らこんなことを日常的にやってんだな マジ尊敬するわ
17デフォルトの名無しさん:2013/04/09(火) 13:43:23.09
(∀`*ゞ)エヘヘ
18デフォルトの名無しさん:2013/04/09(火) 21:13:05.08
>>16
皮肉でいってんの?
19デフォルトの名無しさん:2013/04/09(火) 21:30:08.24
フヒヒ
20デフォルトの名無しさん:2013/04/09(火) 22:06:37.65
デザイナーとか言っちゃっても、
最適化が甘いとか言って、自前でレンダリングエンジンを
作り直しちゃう人とかいたりするもんな。
21デフォルトの名無しさん:2013/04/09(火) 22:51:56.11
>>16
maya?
22デフォルトの名無しさん:2013/04/10(水) 06:49:48.18
>>18
皮肉言いに畑違いの板まで来るか あほー
正直2週間上手く行ってなくて質問しようと思って来たんだけど
前スレ読んだら俺は超初心者以前レベルっぽかったから
もっと自分でやらんといかんなと思い直して尊敬の意を表して帰った次第

>>21
YES

つか皮肉にとられるくらいお前らには簡単なことなんだなやっぱ… それができない俺って…
ネットで検索しても知ってて当たり前みたいに書かれているけど
やさしいC++やってみたけどmakefileのこととか一言もなかったし
ビルドに必要な知識って言語の知識とはまた別枠なのか?
ガチのアホ用に本があれば紹介してくれないか
せめて指示されている内容と自分が何が分からんかは分かるようになりたいわ
23デフォルトの名無しさん:2013/04/10(水) 07:04:40.98
簡単でもないしmakeの本だけ買っても多分解決しないよ
とりあえず環境と自分のやったこととエラーを晒してみたら?
24デフォルトの名無しさん:2013/04/10(水) 07:04:57.51
>>22
なるほど
っていうかmaya python使うのにビルドってなにやってんの?
ツールプログラマいないの?
25デフォルトの名無しさん:2013/04/10(水) 10:30:25.58
環境がわからないと応えようがない
OSとかバージョンとか、何をやったら、何が表示されたとか、どんな現象が出たとか
26デフォルトの名無しさん:2013/04/10(水) 18:38:43.04
27デフォルトの名無しさん:2013/04/10(水) 20:46:22.10
>>23 >>25
ご厚意ありがと
今の状態じゃ回答もらっても俺が理解も応用もできそうにないから もちっと自分でも頑張ってから聞くわ
makeの本なんてものがあるのか windowsだとMAKEの達人というのでいいんかな これだけじゃ解決しないとのことだがまずは読んでみる
後日お相手してくれー

>>24
色々… PILで画像いじったりNumPyでベクトルいじったりlxmlでXMLいじったり…
今いるところは映像メインでプログラマがいないんだわ

>>26
Mayaに組み込まれているPython2.6.4がVS2008+MSVCR90C製からVS2010+MSVCR10C製になったのよ
28デフォルトの名無しさん:2013/04/10(水) 20:55:08.54
windowsならnumpyなんてビルドせずにちょちょいと入れられるじゃん

numpyと言えばanaconda accelerateが気になるわ
pycudaより凄いかな
29デフォルトの名無しさん:2013/04/10(水) 21:15:13.36
WindowsのVCでビルドするならMakeは使わない
VCのプロジェクトでビルドするだけで黙っててもバイナリができる

というか、本当にビルドが必要なのか?
組み込まれてるものなのにPythonだけユーザーに更新させるって奇妙な話だろ
Mayaのドキュメント見ると一緒にインストールされるって書いてあるし
30デフォルトの名無しさん:2013/04/10(水) 21:18:20.21
あんま詳しくなさそうだから
変更になったのか
変更が必要になったのか
の区別も付いてないような気がする
変更しなければならなくなったと判断した根拠はなんだろう
31デフォルトの名無しさん:2013/04/10(水) 21:30:29.79
俺の勘だとMSVCRT100.DLLがありませんだと思う

Googleにmaya msvまで入れたらサジェストされたし
32デフォルトの名無しさん:2013/04/10(水) 21:50:30.08
>>27
Mayaに組みこまれているPythonがVS2008からVS2010でビルドされたものに替わったせいで
NumPyやPILといったVS2008でビルドされている拡張が動かなくなった
だからVS2010で拡張をビルドしたい、でもうまくいかない、ってこと?

とりあえずMakeの本はいらないよ
33デフォルトの名無しさん:2013/04/10(水) 21:51:20.24
Mayaにバンドルされてる奴は2010でビルドされた2.6なんだろうが
一般のPython2.6は2008でビルドされてるから、Mayaにバンドルされたバイナリパッケージが使えない

のかもしれない
34デフォルトの名無しさん:2013/04/10(水) 21:51:41.91
リロードしてなくてごめんねえええええええええええええ
35デフォルトの名無しさん:2013/04/10(水) 21:53:00.98
>>29 30
PythonをビルドしたいんじゃなくてMayaPythonで使うサードパーティ製のモジュールをビルドしたいんだ
すまんな分かりにくくて…
Maya内でサードのモジュールを使いたければ2010を使って自分でビルドしなさいというのはサポートからのお達し
日本だと話題になっていないっぽいんだが海外掲示板見るとモジュールが動かなくなったというのがちらほらある
で どれもビルドは簡単だから問題ない自分でやれと言われている で 俺がへこむ
とりあえずPILは内で動くようにはなった なんか怪しいからもうちょい調べる
あんま分かってないのは100%認める

>>31
msvcr100.dllは入ってるで
36デフォルトの名無しさん:2013/04/10(水) 21:56:14.79
MayaPythonのサードパーティーライブラリの構成がどうなってるか知らないけど
Python2.7にnumpyをeasy_installか何かで入れてMayaPythonにコピーしたら動かないだろうか
37デフォルトの名無しさん:2013/04/10(水) 21:57:27.87
う、駄目だ。
2.7も2008やん。
38デフォルトの名無しさん:2013/04/10(水) 22:00:33.29
俺もリロードしてなかった すまん

>>32 >>33
YESそれそれ 質問する方が知識ないとほんと駄目だな
makeの本は注文してしまった すまぬ…まあこれはこれで面白そうだから…
39デフォルトの名無しさん:2013/04/13(土) 19:52:39.50
Python3.3で質問す。
b"a"からb"\x00\x61"に変換しようと調べてるのですが、\x00\x61なんというタイプのデータ分からず調べられません。
これはなんていうのでしょうか?
40デフォルトの名無しさん:2013/04/13(土) 21:08:42.78
>>39
>>> a = b'a'
>>> a.decode('ascii').encode('utf-16be')
b'\x00a'
とか?
というか、なんで元がバイト列なの?
4139:2013/04/13(土) 22:57:17.09
39はやめます
42デフォルトの名無しさん:2013/04/13(土) 23:02:47.14
了解です
43デフォルトの名無しさん:2013/04/13(土) 23:34:30.24
a = b'a'
unichr(ord(a))
44デフォルトの名無しさん:2013/04/19(金) 09:47:06.64
MarkLutzの初めてのPython日本語訳(第4版)いつ頃でますか
原著の第5版が6月発売予約受付中とかですがこっちが先に出たりしますか
45デフォルトの名無しさん:2013/04/19(金) 12:43:39.96
出版社でもないのにんなこと知るか
46デフォルトの名無しさん:2013/04/19(金) 15:13:58.29
原著の4版(python3完全対応版)2009年に出てるのに
日本語版はまだ3版(py3暫定対応)なんだね。
python3出た時期で需要ありそうなのに。
原著5版が先に出ると周回遅れか。
47デフォルトの名無しさん:2013/04/19(金) 18:23:44.46
python自体需要ねーだろ
pythonの本出すくらいならPHPの本濫造するわ
48デフォルトの名無しさん:2013/04/20(土) 12:10:19.31
電子書籍オンリーでもいいから出して欲しい。
もちろん第5版を。
49デフォルトの名無しさん:2013/04/20(土) 12:24:09.97
むしろもう英語版で良くね?
50デフォルトの名無しさん:2013/04/20(土) 21:03:45.06
その英語版だが5版は1562ページになるようだ
ちなみに4版は1216ページ
51デフォルトの名無しさん:2013/04/20(土) 21:06:03.72
増えすぎ
52デフォルトの名無しさん:2013/04/20(土) 21:34:39.63
そんなのますます翻訳は出ないな
53デフォルトの名無しさん:2013/04/20(土) 22:39:47.66
オライリーは日本のPythonに貢献する気がさらさら無いわけですね。
54デフォルトの名無しさん:2013/04/20(土) 22:55:21.39
要らんだろ
55デフォルトの名無しさん:2013/04/20(土) 23:05:35.21
中身は薄いから多い日も安心
56デフォルトの名無しさん:2013/04/20(土) 23:13:50.90
逆に考えて完全翻訳してオライリーに売り込みをかけたらいいんだよ
57デフォルトの名無しさん:2013/04/20(土) 23:40:11.21
1500 ページもの電話帳を Learning シリーズで出す米オライリーがどうしようもない
どうしても出したければ Teach Yourself Python in 365 Days に改題すべき
58デフォルトの名無しさん:2013/04/20(土) 23:41:33.77
>>53
その前にジャップが全くPythonに貢献していない事実
59デフォルトの名無しさん:2013/04/20(土) 23:53:46.99
でもないよ
http://hg.python.org/committers.txt

armin.ronacher さんがちょっと変わった名前だけど日本人
60デフォルトの名無しさん:2013/04/21(日) 00:01:01.19
そりゃ日本人ってだけだろ
日本のコミュニティや市場ではなく
61デフォルトの名無しさん:2013/04/21(日) 00:09:09.71
質問です。
使っていないモジュールのimportを削除するとimportしているモジュールが見つかりませんというエラーがでます。
たとえば
import A from B
import C

def func():
C.cfunc()

というコードが問題なく動く状態で、import A from Bを削除すると
AttributeError: 'module' object has no attribute 'cfunc'
というエラーがでます。調査方法のヒントとかなんでもいいので何かあったら教えてください。
62デフォルトの名無しさん:2013/04/21(日) 00:13:44.27
    import A from B
                ^
SyntaxError: invalid syntax
63デフォルトの名無しさん:2013/04/21(日) 00:18:02.30
from A import B
でした。ごめんなさい。
64デフォルトの名無しさん:2013/04/21(日) 00:22:42.46
そういうときは、大抵ファイル名がおかしい
importしてるモジュールと被ってるとか
65デフォルトの名無しさん:2013/04/21(日) 01:03:27.63
def show(p):
for i in range(len(p)):
print p[i]


p = [[1.0]*5]*4

show(p)

for i in range(4):
for j in range(5):
p[i][j]=p[i][j]*2
show(p)

で結果が
[1.0, 1.0, 1.0, 1.0, 1.0]
[1.0, 1.0, 1.0, 1.0, 1.0]
[1.0, 1.0, 1.0, 1.0, 1.0]
[1.0, 1.0, 1.0, 1.0, 1.0]
[16.0, 16.0, 16.0, 16.0, 16.0]
[16.0, 16.0, 16.0, 16.0, 16.0]
[16.0, 16.0, 16.0, 16.0, 16.0]
[16.0, 16.0, 16.0, 16.0, 16.0]
[16.0, 16.0, 16.0, 16.0, 16.0]
となります。
2つ目の結果は、
[2.0, 2.0, 2.0, 2.0, 2.0]
[2.0, 2.0, 2.0, 2.0, 2.0]
[2.0, 2.0, 2.0, 2.0, 2.0]
[2.0, 2.0, 2.0, 2.0, 2.0]
っとなって欲しいのに思うようにいきません
どうしたらいいですか?
66デフォルトの名無しさん:2013/04/21(日) 01:10:54.71
p = [[1.0]*5 for _ in range(4)]
67デフォルトの名無しさん:2013/04/21(日) 01:19:54.14
ありがとうございます

ちなみにp = [[1.0]*5]*4でうまくいかないのはなんでですかね…
68デフォルトの名無しさん:2013/04/21(日) 01:26:15.15
p = [[1.0]*5]*4 でやってるのは下と同じ

x = [1.0]*5
p = [x,x,x,x]

つまりp[i]は同じオブジェクトを指していて、
p[i][j]=p[i][j]*2 は x[j]=x[j]*2 を何度も繰り返してることになる
69デフォルトの名無しさん:2013/04/21(日) 01:27:40.49
なーる

これはえげつないですね…
70デフォルトの名無しさん:2013/04/21(日) 07:22:43.47
馬鹿には無理
71デフォルトの名無しさん:2013/04/21(日) 07:30:36.08
>>69
こんなのでもえげつないと思うかもしれないな

>>> a = [1, 2, 3]
>>> b = a
>>> b[1] = 100
>>> a
[1, 100, 3]
72デフォルトの名無しさん:2013/04/21(日) 10:13:38.21
>>71
えげつなっ!
73デフォルトの名無しさん:2013/04/21(日) 11:09:28.15
無関係のオレもこれには、えげつなっ!
74デフォルトの名無しさん:2013/04/21(日) 11:42:44.28
ディープコピー!!
75デフォルトの名無しさん:2013/04/21(日) 11:49:39.55
ステキじゃないか
76デフォルトの名無しさん:2013/04/21(日) 11:59:57.05
みんなのパイチンくん
みんなのバクチンくん
77デフォルトの名無しさん:2013/04/21(日) 12:59:17.90
77
 〜
7861:2013/04/21(日) 14:39:55.47
>>64
ありがとうございます。
一通り使ってるモジュールみてみたんですが、よくわかりませんでした。すみません。。

やろうとしていること:
元々スクリプトを起動してwsgirefを使ってサーバにしていたのをmod_wsgiを使うようにしたので、不要となったwsgirefのimportを取り除く。

コード:
import urllib
import json
import ipaddress
from datetime import datetime
import sqlite3
import re
from my_module import my_class
from wsgiref.simple_server import make_server#これを消すと下のエラーがでる。

エラー:
q = urllib.parse.unquote(string)
AttributeError: 'module' object has no attribute 'parse'

試したことなど:
from datetime import datetimeをimport datetimeにしてみましたがだめでした。
importを消して、別のモジュールの関数が見えなくなるというのがよくわかりません。。
ほかに何かあれば教えてください。
79デフォルトの名無しさん:2013/04/21(日) 15:02:59.22
>>78
そもそもpython3でimport urllib.parseが要ると思うんだが?
80デフォルトの名無しさん:2013/04/21(日) 15:24:20.09
urllib.__file__ や sys.path を調べてみたら?
8161:2013/04/21(日) 15:36:31.25
>>79
ありがとうございます。それでした。
http://docs.python.org/3.3/tutorial/modules.html
parseはサブモジュールだから、import urllib.parseでやらないと駄目みたいですね。
urllibをトップレベルとしてimportしたら"."区切りで追えるもんだと勝手に思ってました。
あと、エラーでぐぐったら普通にでてきましたごめんなさい。
8261:2013/04/21(日) 15:40:28.62
でも、なんでfrom wsgiref.simple_server import make_serverいれたらエラーなく動くんでしょうね。
不思議ですね。
8361:2013/04/21(日) 16:07:27.96
rom wsgiref.simple_server import make_serverしても、testのサブモジュールであるsupportの関数は呼べないけど
urllibのサブモジュールであるparseの関数は呼べる。
http://www.python.org/dev/peps/pep-3333/
こういうのってIRCとかいって聞いたら怒られるかな
84デフォルトの名無しさん:2013/04/21(日) 16:30:31.90
>>83
ウソだろ?と思って試したら本当だったw
みんな知ってる事なのかな?

[~/tmp/pytest]% echo $PYTHONPATH
.
[~/tmp/pytest]% cat test_submodule_import.py
import remember.memoize
[~/tmp/pytest]% python
Python 2.7.3 (default, Sep 26 2012, 21:53:58)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import remember
>>> remember.memoize
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'memoize'
>>> import test_submodule_import
>>> remember.memoize
<module 'remember.memoize' from '/usr/local/lib/python2.7/dist-packages/remember/memoize.pyc'>
8561:2013/04/21(日) 16:42:02.22
wsgiref/simple_server.pyでurllib.parserをimportしてただけだった。
コード見れば分かるようなことだった。でもIRCのbobさん教えてくれた。やさしい。
8661:2013/04/21(日) 19:01:56.02
すいません。やっぱりわかりません。
cgiモジュールでもurllib.parseをimportしてたのでそっちを例に使います。
import cgiしただけではNameError: name 'urllib' is not definedとなるのはなぜでしょうか。
sys.modulesを確認すると
urllib<module 'urllib' from '/opt/python3/lib/python3.3/urllib/__init__.py'>
urllib.parse<module 'urllib.parse' from '/opt/python3/lib/python3.3/urllib/parse.py'>
が存在しています。cgiモジュールでimportされてると理由でurllib.parse.quote()が呼べるなら、import cgiした時点で呼べてもよさそうに思います。

それとimport cgiした時とimport cgi, import urllibした時のsys.modulesは一緒でした。
87デフォルトの名無しさん:2013/04/21(日) 19:38:02.15
importしたあと関数オブジェクトだけ得るなりして名前空間から消してんじゃねえの
88デフォルトの名無しさん:2013/04/21(日) 20:00:59.00
>>86
import cgiの段階でimportした側のモジュールに存在するのはcgiだけ。
cgiの中でimport urllib.parseしていると、cgiをimportした側からみると
cgi.urllib.parseが存在する。
この時点で、urllibモジュールの名前空間にはparseが存在する。
で、さらにimport urllibするとurllibという名前が、既にimport済みの
urllibにバインドされる、という事だと思う。

メインモジュールのurllib is cgi.urllib
が成立するのはちょっと意外だった。
89デフォルトの名無しさん:2013/04/21(日) 20:03:49.46
>>78
そのエラーが出る直前のurllibの型や属性の確認してみては?
90デフォルトの名無しさん:2013/04/22(月) 09:59:22.66
みんなのみんなのパイチンクンとデカチンクンですよ〜
91デフォルトの名無しさん:2013/04/23(火) 14:50:14.97
>>50
日本語に訳したらとんでもないページ数になりそうw
でも、もともと無駄な記述が多い本ではあるよね
講義をそのまま文字にしたから仕方ないのかもしれないけど

初めてのPerlくらいにコンパクトなら読みやすいんだが
92デフォルトの名無しさん:2013/04/23(火) 17:01:42.87
anacondaやnumbaProってどうなんだろう
使ってる人いる?
速くなるなら使ってみたい
93 忍法帖【Lv=13,xxxPT】(1+0:5) :2013/04/23(火) 22:56:13.07
windowsでvirtualenvって入らない?
94デフォルトの名無しさん:2013/04/23(火) 22:57:16.27
原価計算(岡本清)を読破した俺に1500ページくらい何でもないぜ
95デフォルトの名無しさん:2013/04/23(火) 23:01:42.91
>>93
入るよ
現に使ってる

なぜ入らないと思った
virtualenvwrapperが入らないって事か?
96デフォルトの名無しさん:2013/04/23(火) 23:21:09.62
windowsでもpip使えよ
97デフォルトの名無しさん:2013/04/24(水) 03:15:36.61
>>92
ライブラリの更新が早かったんでEnthought Python Distributionから
Anacondaに乗り換えた。似たような感じ。
データ処理や科学技術計算のPython環境セットアップに便利。

有料版(Anaconda Accelerate)だとIntel MKL使ってる分速くなる。
NumbaProは使ってないので知らない。
98 忍法帖【Lv=2,xxxP】(1+0:5) :2013/04/24(水) 22:24:19.19
>>95
手順おしえて
99デフォルトの名無しさん:2013/04/24(水) 23:09:26.86
>>97
なるほど
numbaProはAccelerateに入ってるCUDAアクセラレーターだったはず
試しに使ってみるよ、ありがとう
100デフォルトの名無しさん:2013/04/24(水) 23:32:14.59
win7 python2.6

flask利用してつくったプログラムが数日前まで
起動できたのにインポートエラーが起こるようになりました。
普通のpyファイルは実行できるのでflaskの問題だと思うのですが

Traceback (most recent call last):
File "test_hello.py", line 1, in <module>
from flask import Flask
ImportError: No module named flask

自分のコードが悪いのかと思い公式のhello worldで試しましたが
やはりエラーが起こりました。
なぜエラーが起こるのか教えてください。
101デフォルトの名無しさん:2013/04/25(木) 04:09:35.14
No module named flask
No module named flask
No module named flask
102デフォルトの名無しさん:2013/04/25(木) 06:35:40.96
フラスクが無い言うてはりますなぁ
103 忍法帖【Lv=2,xxxP】(1+0:5) :2013/04/25(木) 07:50:02.23
>>95
mkvirtualenv -p ほにゃらら〜ってやってたわ。
winだとコマンドが違うのね
python -m ほにゃらら〜なんやね
104デフォルトの名無しさん:2013/04/25(木) 09:15:41.27
>>100
>公式のhello worldで試しましたが
>やはりエラーが起こりました。

その helloworld.py ? のエラーも書かないとわかりません
105デフォルトの名無しさん:2013/04/25(木) 09:25:26.91
>>100
sys.path の中身と Flask のインストールパスは?
最後に正常に実行できていたときと実行できなくなった間になにかしたことは?
106デフォルトの名無しさん:2013/04/25(木) 17:55:56.30
初心者です。pyton3.3です。
このエラーってどういうことですか? 教えてください

"TypeError: TypeError(""'str' object is not callable"",)"
107デフォルトの名無しさん:2013/04/25(木) 17:57:55.70
型エラー:strオブジェクトは呼び出せません
108デフォルトの名無しさん:2013/04/25(木) 18:05:42.89
>>107
ありがとです。

while True:
str=input('> ')
print( str )
if str=='bye':
break

これで出たエラーなんですが・・どこが間違ってますか?
109デフォルトの名無しさん:2013/04/25(木) 18:15:27.28
strという関数があるからダメなのかな?
110デフォルトの名無しさん:2013/04/25(木) 19:02:01.28
>>108
起きない
エラー出たときは行番号が書いてあるだろ
行番号は本当にこのコードの中を指してるのか?
111デフォルトの名無しさん:2013/04/25(木) 20:17:31.96
>>104
>>100がhelloworldのエラーメッセージです
>>105
環境変数にもPythonの場所を指定したはずですが…
変わったことも特になにもしていないので勝手に消えるはずはないのですが…
112デフォルトの名無しさん:2013/04/25(木) 20:24:05.06
はずはずってうるせえよ
絶対か本当か100%かガキみたいな言い方だがとにかく確かめろ
たぶんおそらくはずって言うな
113デフォルトの名無しさん:2013/04/25(木) 20:26:20.78
面倒くさいからsys.pathとFlaskのインストールパス貼れよ
プライバシーが気なるところは伏字にして、とにかく全部貼れ
省略するな
114デフォルトの名無しさん:2013/04/25(木) 20:32:30.08
115デフォルトの名無しさん:2013/04/25(木) 22:39:02.70
すみません自己解決しました
実行する際にコマンドプロンプトでenvをアクティベートしてから実行したら
無事実行することができました。
Pythonでプログラムを組んだ経験がないため、ご迷惑をおかけいたしました。
116デフォルトの名無しさん:2013/04/25(木) 22:43:42.02
お前はレス番いくつだよw
誰がどう解決したのかわかんねえなw
117デフォルトの名無しさん:2013/04/25(木) 23:13:47.38
質問へたくそな奴は報告もへたくそだな
118デフォルトの名無しさん:2013/04/26(金) 18:14:58.70
キレてるんすか?
119デフォルトの名無しさん:2013/04/26(金) 18:25:42.36
あキレてますねえ
120デフォルトの名無しさん:2013/04/26(金) 18:32:20.17
上手いこと言ったつもりですか?
121デフォルトの名無しさん:2013/04/26(金) 18:35:04.03
>>119
座布団一枚
122デフォルトの名無しさん:2013/04/26(金) 19:48:04.52
>>119
くっそこんなのでw
123デフォルトの名無しさん:2013/04/26(金) 19:51:32.82
絶望的な自演臭
124デフォルトの名無しさん:2013/04/26(金) 21:35:49.82
>>123
絶望的なパラノイア臭
125 忍法帖【Lv=3,xxxP】(1+0:5) :2013/04/28(日) 22:48:13.77
gui作るならなにがいい?pyqtかな?
126デフォルトの名無しさん:2013/04/28(日) 23:19:52.87
wxPythonかpyQtが定番だけど違いがよくわからない
127デフォルトの名無しさん:2013/04/29(月) 00:44:18.68
PyQtはGPLだから使い物にならない
Qt使うならPySide
128デフォルトの名無しさん:2013/04/29(月) 01:01:00.86
LLじゃない言語だとGPLは非常に気になるんだが
そもそもソース配布がほとんどLLだとパッとしねえんだよな
py2exeとか使うなら、って感じ
あとGPL v3絡みで特許
129デフォルトの名無しさん:2013/04/29(月) 01:04:53.78
Qtなんて使うようなGUI作り込むアプリなら
GPL許容できない用途が多いと思う
130デフォルトの名無しさん:2013/04/29(月) 01:07:54.89
例えば何さ
バックエンド分離すれば済むようなものは範疇に含めないでくれよ
131デフォルトの名無しさん:2013/04/29(月) 01:16:35.19
逆に聞くがPySideがあるのにそこまでしてGPLにする理由は何さ
132デフォルトの名無しさん:2013/04/29(月) 01:19:14.88
質問に答えない奴の質問に答える筋合いはないな
133デフォルトの名無しさん:2013/04/29(月) 01:26:09.75
py2exeとか使うなら、って自分で言ってるじゃん
パッケージ化して配布するようなものはGUIの作り込みの比重が大きい、っていうのは
具体的な数字の根拠は知らんが相関としては十分ありそうに思えるけどな
134130:2013/04/29(月) 01:26:37.93
132は俺じゃないぞ

GPLと聞くだけで蕁麻疹が出そうな奴には無闇にツッコミを入れたくなる性分なんだ
特に低レベルな奴が多いしね
別にお勧めはしないよ
135デフォルトの名無しさん:2013/04/29(月) 01:39:03.65
GPLを/.erとかモヒカンがアホを罵倒するための道具として利用してることは否定できまい。
あれはあれで限度を越えた馬鹿だが、エレコムみたいな、ね。
136デフォルトの名無しさん:2013/04/29(月) 01:40:28.78
要するに、嫌われるのは手前らが撒いた種だろってこった。
見た目もちょうどいい教祖様と牛でも拝んでろ。
137デフォルトの名無しさん:2013/04/29(月) 02:16:33.05
作り込んだGUIのソース公開が許されないところもあるんです
138デフォルトの名無しさん:2013/04/29(月) 02:25:27.74
GPL版を撒き餌に使って商用ライセンスを売る商売が広く成り立ってる現実
139デフォルトの名無しさん:2013/04/29(月) 13:03:34.61
>>137
130でも言ってるけど具体的にどこよ?
数字も名前も出さずに一般論のように語るのは論法としてどうなの?
それともパイソニアはこういうのがお得意なの?
140デフォルトの名無しさん:2013/04/29(月) 13:09:27.29
逆に俺が
作り込んだGUIのソース公開が許されないところもあるが、取るに足らないほど少数だ
と根拠なく喋ってもこいつは受け入れるんだろうか?
根拠が知らんとか前置きするくらいなら調べてから書けよっていう
141デフォルトの名無しさん:2013/04/29(月) 13:28:02.87
さっさと最終手段「常識」に打って出るといいですよ
世間を知らねえなとか仕事しろよとか社会でろ働けとかね

上にも書いてあるモヒカンは、そういう安っぽい主張をされるのが楽しくて仕方ないんでね
142デフォルトの名無しさん:2013/04/29(月) 13:30:59.92
仕事とかする前に外の空気吸ったり遊びに行ったほうがいいと思う
143デフォルトの名無しさん:2013/04/29(月) 13:42:08.93
豆知識:
Pythonの作者Guidoは過去にGPLで揉めまくって(一方的にくだらん因縁つけられて)
GPLに本当にうんざりしている
144デフォルトの名無しさん:2013/04/29(月) 15:17:34.05
その豆知識で何かしゃべった気になってるんですかねえ
Pythonやってると伝聞、推測、妄想ばっかりで具体的な話ができない病気でも発症するんです?
145デフォルトの名無しさん:2013/04/29(月) 15:23:56.16
GPLなんてウンコだから使わないって人でも
Pythonを使っても大丈夫だよ!
気持ち悪い思想とは無縁だからね!
146デフォルトの名無しさん:2013/04/29(月) 15:27:31.03
>>144
お前はPython使ってないのに、こんな初心者スレにまで来てGPLの布教してんの?
キモすぎるww
147デフォルトの名無しさん:2013/04/29(月) 16:25:15.99
まとめ:GPL信奉者はやっぱりキモい
148デフォルトの名無しさん:2013/04/29(月) 20:48:39.74
>GPL版を撒き餌に使って商用ライセンスを売る商売が広く成り立ってる現実
これは紛れもない事実(PyQt含)なわけだが、GPL信奉者はこれをどう説明するんだろうか
149デフォルトの名無しさん:2013/05/01(水) 11:54:54.10
ipython notebookを入れたのですが外部のブラウザから使えるようにできますか?

ubuntu desktopではブラウザが立ち上がりますが
ubuntu serverに入れたいのですがブラウザがないのでできません。
150デフォルトの名無しさん:2013/05/01(水) 18:55:15.35
subprocess.call(['echo', 'aaa', foo], shell=False) のような書き方をした場合、
変数fooにrmコマンドなど実行させる文字列が入っていたとしても安全でしょうか?
シェルのメタ文字を解釈しないために、fooはコマンドとしてはなく、文字列として渡されると。

ttp://docs.python.jp/2/library/subprocess.html
を読んだのですが、あっているのか心配で質問しました。
151デフォルトの名無しさん:2013/05/01(水) 20:48:35.04
echoにバグがない限り安全です
152デフォルトの名無しさん:2013/05/01(水) 21:19:33.15
windows
python3.3
apache2.4
という環境用のmod_wsgiはないんでしょうか?
windowsとpython3.3でwebサイト作る場合は何を使って動かすものですか?
153デフォルトの名無しさん:2013/05/01(水) 21:33:10.60
>>151
ありがとうございます
154デフォルトの名無しさん:2013/05/02(木) 00:54:33.40
>>152
参考になるかわからないけど
LinuxだとPython3.3+httpd2.25+コンパイルしたmod_wsgi3.4で動いてる。
155デフォルトの名無しさん:2013/05/02(木) 00:56:10.46
>>154
httpdのバージョン
2.25じゃなくて2.2.15だった。
156デフォルトの名無しさん:2013/05/02(木) 03:39:50.45
http://code.google.com/p/modwsgi/wiki/InstallationOnWindows
Windows用のnmakeファイル付属してるから
ちょいちょいパス書き換えて自分でビルドしろよ

例えばこんな風に
http://pastebin.com/Yv6SeFkG
157デフォルトの名無しさん:2013/05/04(土) 13:02:36.48
tuple って imutable だけど
追加は出来るんですね

>>> a = (1, 2, 4)
>>> b = a + (5, 3)
>>> b
(1, 2, 4, 5, 3)
>>> a += (5, 3)
>>> a
(1, 2, 4, 5, 3)
158デフォルトの名無しさん:2013/05/04(土) 13:10:24.57
だってそれ追加じゃないもん
再作成が正しい
159デフォルトの名無しさん:2013/05/04(土) 18:04:39.83
つまり、こういうことだね

>>> a = (1,2,4)
>>> b = a
>>> a += (5,3)
>>> a, b
((1, 2, 4, 5, 3), (1, 2, 4))
160デフォルトの名無しさん:2013/05/04(土) 19:44:44.52
>>> a = [1, 2, 4]
>>> b = a
>>> a += [5, 3]
>>> a, b
([1, 2, 4, 5, 3], [1, 2, 4, 5, 3])

リストだとこうなるのね
161デフォルトの名無しさん:2013/05/05(日) 18:17:18.29
>>> a = [1,2,4]
>>> b = a
>>> a = [1,2,4] + [5,3]
>>> a,b
([1, 2, 4, 5, 3], [1, 2, 4])
>>>
>>>
>>> a = [1,2,4]
>>> b = a
>>> a = a + [5,3]
>>> a,b
([1, 2, 4, 5, 3], [1, 2, 4])
>>>
>>> a= [1,2,4]
>>> b = a
>>> a += [5,3]
>>> a,b
([1, 2, 4, 5, 3], [1, 2, 4, 5, 3])
162デフォルトの名無しさん:2013/05/06(月) 12:04:50.58
a = a + L

a += L
が等価じゃないのか
気を付けないとうっかりしてるとはまるところかも
163デフォルトの名無しさん:2013/05/06(月) 12:15:07.98
なるほどなあ
a += L だと a に in-place で L を追加してるということか
http://docs.python.org/3/reference/simple_stmts.html#augmented-assignment-statements
164デフォルトの名無しさん:2013/05/06(月) 12:16:35.88
ん?
a =+ L
にすれば?
165デフォルトの名無しさん:2013/05/06(月) 12:17:29.70
これは嫌な仕様だなあ
等価と思うよな普通
166デフォルトの名無しさん:2013/05/06(月) 12:25:37.08
list が a = a + L と a += L で同じ挙動になって欲しいのか、
それとも全てのケースで a = a + L と a += L が同じになって欲しいのか、
それとも単純に知らないとハマるって話なのか、どれなんだろう
167デフォルトの名無しさん:2013/05/06(月) 12:44:44.12
Tupleとの対比での話だから
無理やり言いがかり感もある
168デフォルトの名無しさん:2013/05/06(月) 13:05:35.83
そだそだ
169デフォルトの名無しさん:2013/05/06(月) 13:10:53.23
>>166
もちろん後者だよ
a += 1はa = a + 1のシノニムという認識は
この業界で一般的なものだからな
170デフォルトの名無しさん:2013/05/06(月) 13:15:26.12
この業界では
a = a + 1
は、++a a++だけどな
171デフォルトの名無しさん:2013/05/06(月) 13:37:45.24
三択の回答で「後者」とか言う奴は、プログラマーには向いてないだろうな…
172デフォルトの名無しさん:2013/05/06(月) 14:14:30.61
そうだね
それに「この業界では常識」なんて非パイソン世界からパイソン見てるし。
こういう人は向かない
173デフォルトの名無しさん:2013/05/06(月) 14:36:52.23
>>171
昨日の松井の人生劇場で
小学生時代に女子アナから
「後ろから何番目ですか?」
って聞かれて答えられず沈黙して
「一番後ろだよねっ!!」
ってフォローされて
やっと頷いていたのを思い出した
174デフォルトの名無しさん:2013/05/06(月) 14:38:59.78
Matsui も女子穴もプログラマーじゃないからどうでもいい。
175デフォルトの名無しさん:2013/05/06(月) 17:43:54.81
寄ってたかって揚げ足取り発言ばっかり
こんな性格腐ったやつらがプログラマー向きというなら
向かなくて結構だわ
176デフォルトの名無しさん:2013/05/06(月) 17:48:24.69
その点は大丈夫そうだよ
177デフォルトの名無しさん:2013/05/06(月) 17:57:21.19
>>176
追い打ちか
あんたもろくなもんじゃないな
178デフォルトの名無しさん:2013/05/06(月) 17:59:35.05
遠吠えが上手だね
179デフォルトの名無しさん:2013/05/06(月) 18:22:26.41
みんな沸点低すぎだよ
素数を延々返し続けるコードでも書いておちつけ
180デフォルトの名無しさん:2013/05/06(月) 20:12:28.46
精一杯のwit
181デフォルトの名無しさん:2013/05/06(月) 20:38:18.90
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import codecs

sys.stdout = codecs.getwriter('utf_8')(sys.stdout)
while 1:
print u'素数'
182デフォルトの名無しさん:2013/05/06(月) 21:34:01.73
今日GW最終日だからかどこもヒデェ
183デフォルトの名無しさん:2013/05/06(月) 21:39:22.42
ヒデよりロザンナ
184デフォルトの名無しさん:2013/05/07(火) 06:29:13.19
codingにutf-8を指定する例が多いように思うけど
OSシェアからすればcp932指定が圧倒して良さそうなものだが…(自分はそう)
もしかしてWindowsでPython使ってる人は少ない?
185デフォルトの名無しさん:2013/05/07(火) 06:45:12.37
cygwin版を使っているので当然utf-8だ
186デフォルトの名無しさん:2013/05/07(火) 08:46:47.75
どうせ全部u''にするから関係ない
187デフォルトの名無しさん:2013/05/07(火) 14:34:11.54
>>184
地球規模で言えばcp932なんてどマイナー。
188デフォルトの名無しさん:2013/05/07(火) 15:30:34.23
OSごとにコード変更するほうが面倒
全部utf-8でおk
189デフォルトの名無しさん:2013/05/07(火) 16:56:25.38
utf-8を指定する人が多い事よりも
emacsの為にわざわざ-*-とか書く人が多い事のほうが不思議
190デフォルトの名無しさん:2013/05/07(火) 18:10:12.48
入門用の本やサイトでそれ載せてるのが多いとかじゃない?
個人的には emacs 使ってるけど # coding: utf-8 が好き
191デフォルトの名無しさん:2013/05/07(火) 19:23:43.42
>>184
日本人でPythonがまず物好きですし
192デフォルトの名無しさん:2013/05/07(火) 19:39:06.98
そんなこといってはいけませんよ
193デフォルトの名無しさん:2013/05/07(火) 20:06:48.87
>>191
俺エンドユーザー部門にいて
運用効率化のためにPythonで小ツールを作っているんだけど
出入りのIT業者の人にこれ何と聞かれて
Pythonて言語だよと答えたら知らなかったんだよな…
194デフォルトの名無しさん:2013/05/07(火) 20:12:08.96
IT業者「ダイキンのマスコットかなにか?」
195デフォルトの名無しさん:2013/05/07(火) 20:28:56.52
パイソンを舐めんなよ

http://i.imgur.com/OWjtlcK.jpg
196デフォルトの名無しさん:2013/05/08(水) 08:10:11.27
>>193
>出入りのIT業者の人

詐欺まがいのドカタに何期待してんだ
197デフォルトの名無しさん:2013/05/09(木) 13:57:30.81
>>194

  (。・-・) タプルン
   ゚し-J゚

     (((。・-・))) プルルン♪
       ゚し-J゚

  (・-・。) ルン♪
   ゚し-J゚
198デフォルトの名無しさん:2013/05/09(木) 16:21:46.10
Pythonでコード書くバイトを探したけど、見つからなかったw
199デフォルトの名無しさん:2013/05/10(金) 21:31:22.31
リストから重複値を洗い出す方法を探しているんですが
見つけたサイトのコードの解釈でアドバイスください。

a = [1, 2, 3, 4, 5, 5, 1]
t = set()
[x for x in a if x in t or t.add(x)]
#=>[5, 1]

このif文の解釈は、
「もしxがtまたはt.add(x)の値に含まれるなら」
でいいんでしょうか。
t.add(x)の値は常にNoneなので、実質の比較は
x in tのみで行われており、t.add(x)は条件式の形を
取っているものの、実質は値の格納を行うためだけの
式というのなら、何とも唸ってしまう巧妙なコードですね。
200デフォルトの名無しさん:2013/05/10(金) 21:41:26.13
ブール演算子の優先順位は低いので (x in t) or t.add(x)と等価
201デフォルトの名無しさん:2013/05/10(金) 22:00:22.79
むむむ、このorはifの条件つなぎではなく
ブール演算なのですか。
True or NoneがTrueになることを利用している?
この辺、初心者にはなんとも難しい。
勉強になりました。
202デフォルトの名無しさん:2013/05/10(金) 23:24:21.55
200は(x in t)がfalseならt.add(x)すると言ってる
203デフォルトの名無しさん:2013/05/10(金) 23:25:31.32
条件つなぎではなくブール演算ってどういう意味ねん
204デフォルトの名無しさん:2013/05/10(金) 23:30:30.64
なるほど勉強になった。
205デフォルトの名無しさん:2013/05/11(土) 00:38:32.07
>>199
少し補足すると

a or b
はaが真ならbは全く評価されない。

この場合、aが偽のときだけt.add(x)が実行される。
206デフォルトの名無しさん:2013/05/11(土) 00:39:05.86
>>202
マジですか?
(x in t) がTrueでもFalseでもt.add(x)は実行されるんじゃ?

>>203
当初、
「if (x in t == True) or (x in t.add(x) == True)」という意味に
解釈していて、それを条件つなぎと呼びました。
しかし、if ((x in t) or t.add(x)) == Trueという意味らしいので
それをブール演算と呼びました。
207デフォルトの名無しさん:2013/05/11(土) 02:19:09.59
短絡評価っていう仕組みのためx in tがTrueならorの後ろは評価されない
208デフォルトの名無しさん:2013/05/11(土) 03:50:12.31
もっと突っ込んで言えば
None が False であることも利用している
209デフォルトの名無しさん:2013/05/11(土) 03:53:06.29
>しかし、if ((x in t) or t.add(x)) == Trueという意味らしいので

違う
if ((x in t) or t.add(x)) is True
という意味
210デフォルトの名無しさん:2013/05/11(土) 05:49:51.66
頭のxがわからないんだけど
for (x in a){
if (x in t){}else{t.add(x)

}
211デフォルトの名無しさん:2013/05/11(土) 05:53:12.94
ミスって途中で送信しちまった
頭のxがわからないんだけどわかりやすくすると
for (x in a){
if (x in t){
  #何もしない
 }else{
  t.add(x)
 }

}
212デフォルトの名無しさん:2013/05/11(土) 05:53:52.80
out = []
for (x in a){
  if (x in t){
    out.append(頭のx);
  }else{
    t.add(x);
  }
}
213デフォルトの名無しさん:2013/05/11(土) 05:55:32.82
バカみたい
214デフォルトの名無しさん:2013/05/11(土) 05:57:32.58
>>213
超初心者用スレだからな。
215デフォルトの名無しさん:2013/05/11(土) 05:59:29.24
最近荒らしまくってるjavascripter厨か
216デフォルトの名無しさん:2013/05/15(水) 07:45:34.64
今さっき3.3を始めたばかりなんですが
print ("python")とやってtest01.pyで保存し
python test01.pyと入力しても
エラーとなり、python test01.py
^
ここから何も進みません
どうすればいいでしょうか
217デフォルトの名無しさん:2013/05/15(水) 08:02:34.02
エラーメッセージを読む
218デフォルトの名無しさん:2013/05/15(水) 08:06:17.49
なんかcdでプログラムの保存先フォルダ入力したら出来ました・・・
でもいちいちこれ入力しなくてはいけないんでしょうか?
219デフォルトの名無しさん:2013/05/15(水) 08:16:51.15
知るかボケ死ねカス
220デフォルトの名無しさん:2013/05/15(水) 08:50:25.65 !
これはひどい。
さすがに超初心者以前だな。
221デフォルトの名無しさん:2013/05/15(水) 10:07:09.02
>>218
はい
でもそれはwindowsのPATHの問題なのでもうここには来ないでくださいね(o^−^o)
222デフォルトの名無しさん:2013/05/15(水) 12:59:17.19
問題の切り分けができたら初心者じゃないだろ
223デフォルトの名無しさん:2013/05/15(水) 13:44:05.35
python3で治ってるか知らんが
プログラムの保存先フォルダ名に
日本語が混ざってると起動後に
モジュールパスを拾えないバグがあったな
224デフォルトの名無しさん:2013/05/15(水) 18:19:19.38
>>218
次に質問するときはコマンドラインやエラーを略さず貼って
Windows ならコマンドプロンプトのショートカットのプロパティに
作業フォルダを指定できたはず
225デフォルトの名無しさん:2013/05/15(水) 19:04:41.65
>>223>>224
すみません次から気をつけます
ショートカットできました!ありがとうございます
226デフォルトの名無しさん:2013/05/16(木) 23:30:22.03
ファイルから読み込んだデータはすべてstr型になりますが、
これをstr型 int型 float型にそれぞれ自動的に変換してくれるモジュールがあれば教えて下さい。
227デフォルトの名無しさん:2013/05/16(木) 23:46:37.48
pickle
あるいは
yaml (型付きをサポートしているバージョンのもの)
あるいは
ORM
228デフォルトの名無しさん:2013/05/16(木) 23:53:35.39
>>226です。
ファイルはcsvやtsv等で、str型 int型 float型がごたまぜになっており、
こちらからファイルの仕様の指定はできません。
229デフォルトの名無しさん:2013/05/17(金) 00:05:22.56
馬鹿には無理
ですね
わかります
230デフォルトの名無しさん:2013/05/17(金) 00:08:56.46
条件後出し
はい終了
231デフォルトの名無しさん:2013/05/17(金) 00:10:41.93
>>229
こういう書き方よくみるけど、
余程頭がわるいんだね

よくわかります!

バカ丸出しの演繹頭
232デフォルトの名無しさん:2013/05/17(金) 00:19:48.78
>>226です。
自己解決致しました。
失礼しました。
233デフォルトの名無しさん:2013/05/17(金) 23:03:43.92
>>226です。
>>226 >>228
まだ未解決なのでよろしくお願いいたします。
234デフォルトの名無しさん:2013/05/17(金) 23:27:33.21
>>233
たぶんない。あきらめるか自分で書く
235デフォルトの名無しさん:2013/05/18(土) 00:32:09.63
きれいな処理はきれいなデータから
236デフォルトの名無しさん:2013/05/18(土) 00:39:35.52
単位までセルに入力されてるスプレッドシートとかデータベースとか冗談じゃないよ
237デフォルトの名無しさん:2013/05/18(土) 01:01:01.64
型を変換ってなんか意味あんの?
変数の型で分岐するコードでも書いてるとか?
238デフォルトの名無しさん:2013/05/18(土) 01:02:53.14
使うときにint()しないといけないのが手間だからです。
239デフォルトの名無しさん:2013/05/18(土) 01:07:40.93
一回書けば終わることを手間だって言ってんのか
240デフォルトの名無しさん:2013/05/18(土) 01:23:05.45
>>226
自分でモジュール作って、ファイルから読み込んだデータを全部int()処理する命令でも定義すれば?
241デフォルトの名無しさん:2013/05/18(土) 02:09:15.45
句読点とですますだけ合わせれば簡単に釣れそうだなここ
242デフォルトの名無しさん:2013/05/18(土) 02:12:16.55
よく釣れますよ
243デフォルトの名無しさん:2013/05/18(土) 02:58:52.36
python3の入門サイトでおすすめあれば教えてくだされ
244デフォルトの名無しさん:2013/05/18(土) 03:08:45.38
公式
245デフォルトの名無しさん:2013/05/18(土) 13:05:08.31
>>241
全部str型の読み込みデータをstr等に変換

…の部分には気付かないフリしながら釣られてやるのが高級魚ってもんです
246デフォルトの名無しさん:2013/05/18(土) 13:11:04.99
>>243
掌田津耶乃

でググってみ
247デフォルトの名無しさん:2013/05/19(日) 22:59:57.34
【質問】
複数PDFファイル(300個)をマージするスクリプトを実行すると、
ファイルを開きすぎ、という以下のエラーが発生して、止まってしまいます。
どう対処すれば良いでしょうか。アドバイスよろしくお願いします。
「IOError: [Errno 24] Too many open files: '149.pdf'」

【ソース】
import os
from PyPDF2 import PdfFileWriter, PdfFileReader

output_pdf = PdfFileWriter()

for f in os.listdir('.'):
 if f[-4:] != '.pdf':
  continue
 else:
  input_pdf = PdfFileReader( file( f, 'rb') )
  output_pdf.addPage(input_pdf.getPage(0))

output_pdf.write( file('merged.pdf', 'wb') )
outputStream.close()

【環境】
OS: Mac OS X 10.8.3
Python: 2.7.2
外部ライブラリ: PyPDF2
248デフォルトの名無しさん:2013/05/19(日) 23:04:33.30
for f in os.listdir('.'):
  if f[-4:] != '.pdf': continue
  r = file( f, 'rb')
  input_pdf = PdfFileReader(r)
  output_pdf.addPage(input_pdf.getPage(0))
  r.close()
249247:2013/05/19(日) 23:42:57.87
>>248
レスありがとうございます。

スクリプトをそのように書き換えたところ、別のエラーが発生しました。
「ValueError: I/O operation on closed file」

output_pdf.write( file('merged.pdf', 'wb') ) でmerged.pdfを書き出す前に、
file( f, 'rb' )のストリームを閉じてしまうとダメなようです。
250デフォルトの名無しさん:2013/05/20(月) 00:07:42.27
一旦中間ファイルこさえたらどーなのさ
251デフォルトの名無しさん:2013/05/20(月) 01:53:27.82
全部メモリに読み込めばいいじゃん
252デフォルトの名無しさん:2013/05/20(月) 02:14:45.38
>>247
ulimit -n してみて数が小さいようならこれとかは?
http://superuser.com/questions/261023/how-to-change-default-ulimit-values-in-mac-os-x-10-6

他のライブラリ試すのもいいかも。いいのあったら教えて
253デフォルトの名無しさん:2013/05/20(月) 03:04:40.18
アホな仕様だな
254247:2013/05/20(月) 13:04:24.86
>>252
まさにそれでした!
Mac OS Xでは、ulimit -nのデフォルトが256と非常に小さいようです。
ulimit -n 512 に設定して、問題のスクリプトを実行したら何のエラーもなく動きました。

手軽に使えるシンプルなPDFライブラリって、PyPDF2くらいしか見つからなかったんですよね。
他のライブラリは、いろんな機能があって複雑すぎる…。

みなさんありがとうございました。
255デフォルトの名無しさん:2013/05/20(月) 13:36:27.36
駄目なライブラリに時間とられるくらいなら
いろんな機能を理解するほうがマシ
256デフォルトの名無しさん:2013/05/22(水) 13:02:39.60
2.7.3の正規表現について
[^\s]とやると空白文字以外OKということになるようなのですが
[^\s\(]とすると空白文字と半角丸括弧始以外OKとなります。
これを空白文字+半角丸括弧始の組み合わせのみ除きたいのですがどうすれば良いのでしょうか?
257デフォルトの名無しさん:2013/05/22(水) 13:07:50.20
>>256
[]は文字クラス
258デフォルトの名無しさん:2013/05/22(水) 15:46:09.92
>>256
[^\s]?[^(]
これでどう?
259デフォルトの名無しさん:2013/05/22(水) 21:27:16.54
(?!\s\()
260デフォルトの名無しさん:2013/05/25(土) 05:07:15.91
>>> a
['0010006', '0030000', '0000013', '0030100']

この時、データの1〜3桁目の昇順かつ4〜7桁めの降順にソートしようとして
以下のようにしたら、結果が期待通りではありません。
どこが悪いんでしょうか

>>> sorted(sorted(a, key = lambda k: k[0:3]), key = lambda k2: k2[3:7], reverse = True)
['0030100', '0000013', '0010006', '0030000']
261デフォルトの名無しさん:2013/05/25(土) 06:24:09.62
sorted(sorted(a, key=lambda k: k[3:], reverse=True), key=lambda k: k[:3])
262デフォルトの名無しさん:2013/05/25(土) 06:35:38.25
>>261
サンクスです
優先順位が後の方のキーで先にソートするということ?
頭がおかしくなってきた…
263デフォルトの名無しさん:2013/05/25(土) 07:09:38.40
馬鹿には無理
264デフォルトの名無しさん:2013/05/25(土) 07:15:38.00
>優先順位が後の方のキーで先にソートするということ?
当たり前だろw
265デフォルトの名無しさん:2013/05/25(土) 07:34:31.93
当たり前だが自明ではない
266デフォルトの名無しさん:2013/05/25(土) 07:47:09.27
>>264
その当たり前の領域に登るまでが
初心者には茨の道なのですよ…
まあこれで一つ賢くなれました
事務でよく出てくる処理なので助かります
267デフォルトの名無しさん:2013/05/25(土) 07:49:57.53
事務方なら浮動小数点数の扱いに注意な
268デフォルトの名無しさん:2013/05/25(土) 08:42:19.93
sorted(a, cmp=lambda l, r: cmp(l[:3], r[:3]) or cmp(r[3:], l[3:]))
269デフォルトの名無しさん:2013/05/25(土) 15:23:45.04
何でお前ら2回もsort呼ぶの?無駄だろ

>>> data.sort(key=lambda x:(x[0:3], int(x[3:7])))

>>> data

['0000013', '0010006', '0030000', '0030100']

>>> data.sort(key=lambda x:(x[0:3], -int(x[3:7]))
)

>>> data

['0000013', '0010006', '0030100', '0030000']

あとcmpよりキー導出結果がキャッシュされるkey使え
270デフォルトの名無しさん:2013/05/25(土) 15:24:30.63
無駄な改行が入ってしまいましたごめんなさい謹んでお詫びしますごめんなさい
271デフォルトの名無しさん:2013/05/25(土) 15:30:59.33
βακα...〆(:D)rz
272260:2013/05/25(土) 15:44:53.10
>>269
どうみてもすぐそこサンクスです
ほんとうにありがとうございました
273デフォルトの名無しさん:2013/05/25(土) 15:52:27.12
サンクスねえ県disってんのかメーン
274デフォルトの名無しさん:2013/05/25(土) 19:29:47.20
>>269
すごいっす勉強になります
こちらの方が優先順にキーを書けるので
わかりやすいかも…

あと「キー導出結果がキャッシュされる」の意味を
よろしければ教えてもらえませんか
275デフォルトの名無しさん:2013/05/25(土) 19:49:18.89
キャッシュと言うより、シュワルツ変換だな。
276デフォルトの名無しさん:2013/05/26(日) 07:57:34.62
要素がintに変換可能って要件はどっから出てきたんだ
277デフォルトの名無しさん:2013/05/26(日) 11:47:34.32
そう言えば2〜3日前に、プログラマーは余計なことに気づいて自ら仕事を増やすって記事を読んだな
278デフォルトの名無しさん:2013/05/26(日) 12:09:30.35
そんな事、プログラマーに限らんだろ
279デフォルトの名無しさん:2013/05/26(日) 15:25:10.43
むしろそれで飯食ってんだから当然だろ
業務にイチャモン付けてバグだらけのシステム押し付けるのが仕事ですから
280デフォルトの名無しさん:2013/05/27(月) 11:09:44.97
さすがウジムシの集まりだ
281デフォルトの名無しさん:2013/05/28(火) 08:46:55.61
そんなに誉めるなよ。照れるじゃないか。
282デフォルトの名無しさん:2013/05/28(火) 19:06:04.47
a = [ {1,2,3}, {1,2} ]というセットデータを持つリストがあるとして、
他のメンバに完全に含まれてしまうメンバを除外するには
どうすればできますか
(この場合、{1,2}が除外されて{1,2,3}のみ残るようにしたい)
283デフォルトの名無しさん:2013/05/28(火) 19:29:03.07
>>282
a はリスト。他のメンバもリストなら、リストは順序が決まっている。
a[0] で良いのかな?
284デフォルトの名無しさん:2013/05/28(火) 19:42:20.96
集合論的な話じゃねえのかと思ったが違うんだろうか
285デフォルトの名無しさん:2013/05/28(火) 20:16:18.80
>>282
> a = [ {1,2,3}, {1,2} ]というセットデータを持つリストがあるとして、
リストを reduce するとして, 評価関数が, 各集合の長さ比べて,
長い方.difference(短い方)
じゃダメなん?
nonlocal 的なものは必要になるかもしれんが...
286デフォルトの名無しさん:2013/05/28(火) 21:51:42.74
説明がわかりにくかったようで…
aの中の各セット同士を比較して
他のセットの部分集合となるものを除外したい
({1,2,3}, {1}, {2}, {3}, {1,2}, {2,3}, {2,4} なら、{1,2,3}と{2,4}が残る)

四苦八苦して今コードができたんですが、あまりに力技すぎるorz

------------------------------------------------------------
# set_reduce.py
# セットをメンバに持つリストにおいて、各メンバ同士を比較して
# 部分集合となるものを除外する

a = [{1, 2, 3}, {1}, {2}, {3}, {1, 2}, {2, 3}, {2, 4}]
def set_reduce(data):
  b = data.copy()
  c = []
  for i in data:
    for j in b:
      if j < i:
        print('{}は{}の部分集合なので除外候補に追加する'.format(j, i))
        c.append(tuple(j))
        print(c)
      else:
        print('{}は{}の部分集合ではないので除外しない'.format(j, i))

  for v in set(c):
    b.remove(set(v))
  return b

print('除外結果:{}'.format(set_reduce(a)))
287デフォルトの名無しさん:2013/05/28(火) 22:35:18.92
適当
>>> a = [{1, 2, 3}, {1}, {2}, {3}, {1, 2}, {2, 3}, {2, 4}]
>>> b = [False] * len(a)
>>> b
[False, False, False, False, False, False, False]
>>> for i in range(len(a)):
...   if b[i]: continue
...   for j in range(len(a)):
...     if i == j or b[j]: continue
...     if a[i] > a[j]:
...       b[j] = True
...
>>> b
[False, True, True, True, True, True, False]
>>> [x for x, f in zip(a, b) if not f]
[set([1, 2, 3]), set([2, 4])]
288デフォルトの名無しさん:2013/05/28(火) 22:51:03.04 ID:SA0tJ529!
これはどう?

def f(xs, y):
if any(x.union(y) == x for x in xs):
return xs
else:
return [x for x in xs if not x.union(y) == y] + [y]

xs = [{1, 2, 3}, {1}, {2}, {3}, {1, 2}, {2, 3}, {2, 4}]
reduce(f, xs, [])
289デフォルトの名無しさん:2013/05/29(水) 02:54:14.19
>>286 勉強しました
>>> a = [{1, 2, 3}, {1}, {2}, {3}, {1, 2}, {2, 3}, {2, 4}]
>>> c = [a[0]]
>>> for i in a:
if not c[0].issuperset(i):
c.append(i)

>>> c
[set([1, 2, 3]), set([2, 4])]
290デフォルトの名無しさん:2013/05/29(水) 03:03:21.45
>>286 もう1回
>>> a = [{1, 2, 3}, {1}, {2}, {3}, {1, 2}, {2, 3}, {2, 4}]
>>> c = [a[0]]
>>> for i in a:
...   if not c[0].issuperset(i):
...     c.append(i)
...
>>> c
[set([1, 2, 3]), set([2, 4])]
291デフォルトの名無しさん:2013/05/29(水) 03:16:34.69
>>287-288
おお素晴らしい…
仕組みがまだわかりませんが
糧にさせて戴きます
292デフォルトの名無しさん:2013/05/29(水) 08:20:50.21
[x for n,x in enumerate(a) if not any(x.issubset(y) for y in a[:n] + a[n+1:])]
293デフォルトの名無しさん:2013/05/29(水) 17:05:37.46
ファイルの文字をひとつずつ読み込むメソッドはありますか?
294デフォルトの名無しさん:2013/05/29(水) 18:14:10.94
295デフォルトの名無しさん:2013/05/29(水) 18:49:58.54
>>293,294
たぶん日本語だとうまく行かないから
import codecs
with codecs.open(file_name, 'r', encoding='utf-8') as f:
  a = f.read()
print a[25]

python3 使えば import はいらない
296デフォルトの名無しさん:2013/05/29(水) 23:12:40.44
'honyaku' を u'ほんやく' に変換するモジュールは何ですか?
無ければ明朝までに作れ。6時までだぞ。
297デフォルトの名無しさん:2013/05/30(木) 05:19:46.75
メソッドはあるけどメリットはないな
298デフォルトの名無しさん:2013/05/30(木) 23:19:36.02
file = open("text.txt")
for char in file.read()
print char

close("text.txt")
299デフォルトの名無しさん:2013/05/31(金) 06:15:24.30
joinの使い方がよくわからんです…

'A' と 'B' をカンマで連結して'A.B'を得たい時
','.join('A','B')とやると
TypeError: join() takes exactly one argument (2 given)
となってしまいます
300デフォルトの名無しさん:2013/05/31(金) 06:23:49.54
301デフォルトの名無しさん:2013/05/31(金) 06:25:14.30
','.join(['A', 'B'])
302デフォルトの名無しさん:2013/05/31(金) 06:55:55.55
('A`)人('B`)
303デフォルトの名無しさん:2013/05/31(金) 07:01:19.80
','
304デフォルトの名無しさん:2013/05/31(金) 07:31:37.43
>>299
",".join(["A", "B"])
タプルの場合は
",".join(("A", "B"))
そのエラーは2つ値がある(2 given)と言っている
join( "A", "B" ) とカンマで2つ値が入っているから
305デフォルトの名無しさん:2013/06/01(土) 07:43:14.04
>>296
ローマ字 ひらがな Python でぐぐったらそれっぽいのがでてきた

>>299
",".join の引数は iterable (リストやタプルや文字列とか)をひとつ受けとる
",".join("A", "B") は引数ふたつ渡してるからエラーになる
",".join(["A", "B"]) や ",".join(("A", "B")) や ",".join("AB") だとうまくいく
306デフォルトの名無しさん:2013/06/01(土) 09:32:03.63
ありがトン
joinって、つなげたいデータが複数に分かれている時は
自分で連結してから与えないといけないのですか…
ちょいと面倒ですね
せっかくカッコの中に指定したのだから、いっしょに連結
してくれればいいのに
307デフォルトの名無しさん:2013/06/01(土) 10:15:01.19
必要なら自分で myjoin でも作れば?
308デフォルトの名無しさん:2013/06/01(土) 10:53:54.59
Twitterのbotを作ろうと思うのですが
309308:2013/06/01(土) 10:57:43.13
途中で書き込みしてしまいました。
Twitterのbotを作ろうと思うのですが
RSSから記事を作成し投稿するプログラムはできたのですが
前に投稿したとかのチェックってどうやればいいのでしょうか?
前に投稿した記事をTEXTに残して比較して投稿
他にいい方法があれば教えて下さい。
310デフォルトの名無しさん:2013/06/01(土) 11:08:33.41
自作C++アプリにPythonインタプリタを組み込もうと思ってるんですけど、
Pythonをインストールしていない環境で動作させるのに必要なファイルと
その配置のやりかたなどを説明しているドキュメントってどっかにないですか?
311デフォルトの名無しさん:2013/06/01(土) 14:36:57.98
>>309
前に投稿した記事をdb(のkey)に残してkeyが既存でなければ投稿
312デフォルトの名無しさん:2013/06/01(土) 14:38:16.97
>>309
全部の記事にタイムスタンプ付けて
違う記事と看做して投稿
313デフォルトの名無しさん:2013/06/01(土) 14:38:46.80
>>311
ありがとうございます。
データベース勉強してみます。
314デフォルトの名無しさん:2013/06/01(土) 14:40:39.39
>>309
hash 値で比較。
315309:2013/06/01(土) 14:45:39.44
>>312
それだと更新チェックするたびに投稿されてしまうのでは?

RSSリーダーみたいに未読かどうか
feedparserでチェックできればいいのですが
316309:2013/06/01(土) 14:47:17.24
>>314
hashですか勉強して試してみます。
317デフォルトの名無しさん:2013/06/01(土) 14:48:06.75
なんだ
同じ記事連投したらtwitterからペナルティあるから
それを回避したいのかと思った
318デフォルトの名無しさん:2013/06/01(土) 15:04:18.89
>>282
[s for s in lst if not any(s < x for x in lst)]
319309:2013/06/01(土) 15:10:29.07
>>317
ありがとうございます。
説明不足ですみません。
320デフォルトの名無しさん:2013/06/02(日) 01:55:46.40
比較をする時の == と is の使い分け基準が知りたいのですが
公式情報のどこかに書いてあったりしますか?
どちらでも通ることが多いので困惑します
321デフォルトの名無しさん:2013/06/02(日) 02:31:32.96
>>320
Pythonで変数へ値を代入するというのは、変数に値が入るのではなく
値がメモリの中のどこかにあって、その場所を変数が指すような状態。

isでの比較は、2つの変数が同じ場所を指しているかの比較。
==での比較は、指している先の値が同等かの比較。

a = [1]
b = [1]
この場合、aとbはたまたま同じ内容のリストを指しているけど、
それは値がたまたま同じなだけで、実態は別物のリスト。
この2つの比較では==ではTrueだが、isではFalseになる。
a.append(2) をすると、aは[1,2]になるが、bは別物なので[1]のまま。

a = [1]
b = a
この場合は、aとbが同じリストを指しているので、isも==もTrue
a.append(2) をすると、bも同じリストなので[1,2]になる。
322デフォルトの名無しさん:2013/06/02(日) 02:36:25.10
お前の意見なんか聞いてねーよ
公式情報のどこか言え
323デフォルトの名無しさん:2013/06/02(日) 02:39:58.18
>>322
ソースみて自分で確認しろクズが。
324デフォルトの名無しさん:2013/06/02(日) 03:56:53.80
325デフォルトの名無しさん:2013/06/02(日) 05:33:06.76
うーん、そうしますと
ifでNone や Trueとの比較をする時に is を使っているコードを見ることが
多いように思うのですが、これは値としてもオブジェクトとしても同じなので
== でも is でもどちらでもよく、好みで is を使っているだけということですかね。
326デフォルトの名無しさん:2013/06/02(日) 06:39:24.51
True とは比較するなって先輩が言ってた
327デフォルトの名無しさん:2013/06/02(日) 06:46:28.49
>>325
好みのようで好みと言えない…かな

== はオブジェクトごとにカスタマイズが可能な演算子
なのでもしかするとそのオブジェクトはNoneやTrueと==で比較した時の動作が
普通のオブジェクトと違うかも知れない

対して is はオブジェクトによって動作が変わらない

なので、オブジェクトごとに想定してる動作で比較させたいのか
どんなオブジェクトだろうと何指してるかで比較させたいのか
…ってところでも変わってくるんよ

特にNoneなんかは無いことのチェックだと思ったらチェックになってない可能性を
嫌ってisでやることも多いんじゃないかな
328デフォルトの名無しさん:2013/06/02(日) 06:47:33.15
329デフォルトの名無しさん:2013/06/02(日) 21:45:13.10
PEP8で発見シマスタ
グイドさんが定めたルールなら従うしかないですね

- None のようなシングルトンとの比較には、いつも「is」や「is not」を
使うべきである。

また「if x is not None」という条件を意図して「if x」と書くことは避
けること。たとえば、デフォルトで None が代入される変数や引数に、他
の値を持っていることをテストするときに使える。他の値には、False も
含まれることに注意。

- ブール値を、== を使って True や False と比較しない。

○ if greeting:
× if greeting == True:
? if greeting is True:

三例目の?は本文では骸骨マークだった。最悪ということか。
Trueもシングルトンだと思うので意外だった
330デフォルトの名無しさん:2013/06/03(月) 08:46:27.42
質問させてください!

http://mangaonweb.com/siteSearch.do?type=0&genre=0&sortType=0&searchType=1&recommendFlg=1&searchText=
こういう感じのサイトを構築出来るようになるにはPythonは適正でしょうか?

自分は将来ウェブで起業したいのですがプログラミング知識がありません
そこでとりあえず勉強しようと思いPythonを始めたのですが他にどのような知識が必要でしょうか?
331330:2013/06/03(月) 10:47:18.22
すいません追加で質問ですが
youtubeのような動画サイトやfacebookのようなSNSサイトを構築する場合、
>>330で必要とされる知識に加えて更に必要な知識はどんどん出てくるものなのでしょうか?
332デフォルトの名無しさん:2013/06/03(月) 10:57:51.45
http、html、css、javascript(ajax)、Webアプリケーションフレームワーク、Webサーバー、データベース

くらいか
適性によるけど2年くらいか
333デフォルトの名無しさん:2013/06/03(月) 21:01:23.04
あとUI、UXも
ただUIとUXは、アンチパターン潰すだけでもそこそこのクオリティになるので比重低い
334デフォルトの名無しさん:2013/06/04(火) 23:49:18.40
ありがとうございます!とりあえず一通りやってみます
335デフォルトの名無しさん:2013/06/06(木) 01:03:58.54
モジュールを使ってリストを操作するときに

import os
for i in range(10)
stats = os.stat("/home/directory/L[i]")

みたいにL[i]を使うことができますか?
336デフォルトの名無しさん:2013/06/06(木) 01:22:21.74
Lって何だよどっから出てきた
337デフォルトの名無しさん:2013/06/06(木) 01:23:17.58
これで駄目な理由を60字以内で述べよ
os.stat("/home/directory/" + L[i])
338デフォルトの名無しさん:2013/06/06(木) 01:29:13.24
要点はそっちじゃなくて、リストを文字列内で変数展開できるかどうかを聞きたいんじゃねえの?
339デフォルトの名無しさん:2013/06/06(木) 01:35:06.09
>>338
えー、それはないやろ。
340デフォルトの名無しさん:2013/06/06(木) 01:35:48.84
えー、それはないかな・・・
341デフォルトの名無しさん:2013/06/06(木) 01:47:25.99
暗黙に展開する機能はないので%かformatを使う
"/home/directory/%s" % L[i]
"/home/directory/{}".format(L[i])

現在のコンテキストの変数を展開するには以下のようにする
'{__name__:}'.format(**locals())
342デフォルトの名無しさん:2013/06/06(木) 02:10:56.05
>>337
L[i] が str じゃないと TypeError で落ちるかな。
343デフォルトの名無しさん:2013/06/06(木) 16:22:23.97
それ以前にこれやめろ

>for i in range(10)

もうプログラミング入門にCはやらせないでいいと思うわ
344デフォルトの名無しさん:2013/06/06(木) 16:41:15.43
>>343
なんで? イテレータはそのためにあるものじゃないの?
345デフォルトの名無しさん:2013/06/06(木) 17:45:41.89
インデクスを使わずに、forで直接リストを走査しろってことだろう
346344:2013/06/06(木) 19:09:00.08
>>345
ああ、そういうことかサンクス。
347デフォルトの名無しさん:2013/06/06(木) 20:03:31.93
enumerate最強説
348デフォルトの名無しさん:2013/06/06(木) 20:05:32.93
インデックスを使うなとか言ってるうちはニワカ
enumerateを諳んじてやっとPython初心者の一歩手前
349デフォルトの名無しさん:2013/06/06(木) 20:05:33.21
インデックス使うのって走査しながらリストを弄る時くらいだな
350デフォルトの名無しさん:2013/06/06(木) 20:09:47.14
enumerateはつづりが長いうえに
enumarateとか
enamurateとかタイプミスしまくるので苦手
351デフォルトの名無しさん:2013/06/07(金) 20:14:44.77
>>343
「初めてのpython」にはこの手の式が沢山出てくるけど、
使ってはいけないのかい?
352デフォルトの名無しさん:2013/06/07(金) 20:55:06.44
>>351
どうやって書いても良いと思うよ
Pythonicに書くならとかは超初心者スレじゃないとこの話だと思う
Pythonic的にレスするならコードでレスするわけだし
その人Pythonicじゃないから
353デフォルトの名無しさん:2013/06/07(金) 21:19:45.00
てゆーか>>343はいきなり何なんだ
言語のどんな機能を使おうが人の勝手じゃないか
>>335の例だって、適当に10個だけ表示してみたい
というだけのことだろ
354デフォルトの名無しさん:2013/06/08(土) 01:41:21.24
>>351
だから>>345ってことでしょ。

>>> import os
>>> for i in L:
... stats = os.stat('/home/directory/{}'.format(i))

range() 使うべき時と使う必要がない時とがあって、
必要ないときに使うと無駄だし頭悪そうだよねって話。
355デフォルトの名無しさん:2013/06/08(土) 01:49:55.32
for i in range(len(L)): hoge(L[i])
356デフォルトの名無しさん:2013/06/08(土) 02:45:28.03
>>354
> 必要ないときに使うと無駄だし頭悪そうだよねって話。

大きなお世話だ
ここはそんな評論を質問者にぶつけるスレなのか?
357デフォルトの名無しさん:2013/06/08(土) 02:54:24.33
>>356
お前仕事でコーディングしてるならかなり嫌われてるぞ。
気を付けた方がいい。
358デフォルトの名無しさん:2013/06/08(土) 05:51:22.58
>>357
そんな話じゃねえよ
たまたま10個ファイルを表示する例を示しただけなのに
rangeを使うなって批判をするのは的外れすぎるだろ
まして>>343なんて肝心の質問には答えもせずにこれなんだぜ
求められてもいないのに、人のコードを勝手に添削・批判するのはやめろ
359デフォルトの名無しさん:2013/06/08(土) 06:04:20.20
ここは初心者が超初心者を貶めるスレだから。
360デフォルトの名無しさん:2013/06/08(土) 06:22:04.70
>>354
10個取り出したいからrange(10)なんでしょうに
361デフォルトの名無しさん:2013/06/08(土) 06:22:40.26
>言語のどんな機能を使おうが人の勝手じゃないか
頭悪そう
362デフォルトの名無しさん:2013/06/08(土) 06:24:51.95
for e in L[:10]:
363デフォルトの名無しさん:2013/06/08(土) 06:27:34.98
頭いい人は質問に答えてあげればいいじゃん
364デフォルトの名無しさん:2013/06/08(土) 06:29:19.85
>>357
頭悪そうだよねってのいらなくね?
職場でもそんなこと言ってんの?
365デフォルトの名無しさん:2013/06/08(土) 06:33:44.91
超初心者のコードをネタにした雑談じゃないの
366デフォルトの名無しさん:2013/06/08(土) 06:34:34.60
頭悪そうな雑談だな
367デフォルトの名無しさん:2013/06/08(土) 06:46:49.76
>>365
だったら次から>>1にそう書いとけ
胸くそ悪いスレだ
もう見るのやめるわ
368デフォルトの名無しさん:2013/06/08(土) 07:44:45.70
プログラミングの質問スレってさ言葉は半分以下でやるもんだと思う
コード書いてコードで答えるみたいな
言葉だけの質問とか回答するからこうなる(๑•́ ₃ •̀๑)
369デフォルトの名無しさん:2013/06/08(土) 08:04:20.75
>>368
今回のはそもそも回答になってないからさ
回答したうえで、やんわりと「rangeはあまり乱用しない方が…」と
付け加える程度なら、スレも穏やかに流れるのに
rangeを見ただけで脊椎反射でダメ出しするコミュ障のコード馬鹿が
いるからこうなる
370デフォルトの名無しさん:2013/06/08(土) 08:09:42.29
print('いつまでいるんだこいつ')
371デフォルトの名無しさん:2013/06/08(土) 08:19:17.93
>>370
野次馬はすっこんでろ
ろくなスレ制御もできない日和見野郎が
372デフォルトの名無しさん:2013/06/08(土) 08:21:53.27
>>371
for i in range(10):
 print('Fuck you ass hole!!')
373デフォルトの名無しさん:2013/06/08(土) 08:27:16.99
>>372
print "Fuck you ass hole!!\n" *10
374デフォルトの名無しさん:2013/06/08(土) 08:32:14.47
>>372 今の流れではこうだった
for i in ["Fuck you ass hole!!"] *10:
  print i
375デフォルトの名無しさん:2013/06/08(土) 08:32:46.10
じゃあな
質問スレの主旨を逸脱した
コード添削・スタイル押しつけ厨がいたら
おまえらも無視しないでしっかり諫めろよ
ここは質問スレだからな
まずは聞かれたことに答えるのが先決だ
376デフォルトの名無しさん:2013/06/08(土) 08:57:07.78
>>374
www
377デフォルトの名無しさん:2013/06/08(土) 10:17:11.69
> range() 使うべき時と使う必要がない時とがあって、
馬が門前の念仏を唱えだした。
378デフォルトの名無しさん:2013/06/08(土) 11:19:11.92
while派のオレは高みの見物
379デフォルトの名無しさん:2013/06/08(土) 11:59:20.02
俺無宗教だから
380デフォルトの名無しさん:2013/06/08(土) 12:11:56.84
必要な数だけコピペする俺は過激派
381デフォルトの名無しさん:2013/06/08(土) 14:11:08.88
>>380
奇跡のO(1)アルゴリズム
382デフォルトの名無しさん:2013/06/08(土) 20:31:02.36
def a():
 #何か処理1
 th = Thread(target=b)
 th.start()
#何か処理2

def b():
 #何か処理3

関数a,bがあり、bを別スレッドとして呼び出しているとします。
#何か処理2 が終わったときに #何か処理3 が続いている場合、関数aは終了になりますか?
bの処理の完了を待って、終了とかに成るのでしょうか
383382:2013/06/08(土) 20:32:17.66
#何か処理2は、#何か処理1やthと同じインデントの間違いです
384デフォルトの名無しさん:2013/06/08(土) 20:54:43.07
>>383
自分の目で確かめろ
http://ideone.com/mVRGM8
385デフォルトの名無しさん:2013/06/08(土) 20:59:45.29
どうせ使うならスレッドよりマルチプロセッシングのほうが良くない?
386デフォルトの名無しさん:2013/06/08(土) 21:03:43.55
「aを抜けた後もbは動いてるのか」だから、厳密にはこの方が適切じゃないかな
ttp://ideone.com/LJAtAz
387デフォルトの名無しさん:2013/06/08(土) 21:05:06.74
処理の内容による
GIL開放する処理をするならthreadingでいいし、そうでないならmultiprocessingの方がいいね
388デフォルトの名無しさん:2013/06/08(土) 23:12:28.93
てゆーか>>385はいきなり何なんだ
言語のどんな機能を使おうが人の勝手じゃないか
>>382の例だって、適当に並列処理してみたい
というだけのことだろ
389デフォルトの名無しさん:2013/06/08(土) 23:57:22.57
>>382
関数を抜ける程度でスレッドの終了を待ったりはしない。
待ちたいときは、 th.join() を何か処理2の後に入れる。
390デフォルトの名無しさん:2013/06/09(日) 07:08:22.53
二つの数値をタプルで受け取り、比較して小さな方を返し、
同じならばNoneを返すという関数の定義は以下でよいでしょうか?
うまく動いているように見えるんですが、コマンドラインで適当に叩いていたら
できあがったものなので、正直自信がありません
ラムダ関数の中ってこんなにifを重ねられるんでしたっけ?

smalll_choice = lambda x: x[0] if x[0] < x[1] else x[1] if x[0] > x[1] else None
>>> small_choice((2,1))
1
391デフォルトの名無しさん:2013/06/09(日) 07:15:22.32
ラムダ関数って言い方は正しいの?
392デフォルトの名無しさん:2013/06/09(日) 07:24:04.45
>>391
lambdaはラムダと読むものだと思っていましたが違うんですか?
393デフォルトの名無しさん:2013/06/09(日) 07:27:46.93
ラムブダ
394デフォルトの名無しさん:2013/06/09(日) 07:30:24.23
ラムダじゃなくてラムダ関数のことを言ってるんだけれども
395デフォルトの名無しさん:2013/06/09(日) 07:32:56.85
396デフォルトの名無しさん:2013/06/09(日) 07:44:05.41
lambda を lambda と言った瞬間に lambda は lambda でなくなるのぢゃ。
397デフォルトの名無しさん:2013/06/09(日) 07:44:40.87
>>394
私はラムダ関数以外の呼称を知りませんね
よければ正しい呼称を教えてください
398390:2013/06/09(日) 08:08:37.11
質問に答えろクズども
399390:2013/06/09(日) 08:10:28.68
自決しました
400デフォルトの名無しさん:2013/06/09(日) 08:38:24.85
x[0] if x[0] < x[1] else (x[1] if x[0] > x[1] else None)
と解釈されていれば問題ない

(x[0] if x[0] < x[1] else x[1]) if x[0] > x[1] else None
だともちろん誤動作する
401デフォルトの名無しさん:2013/06/09(日) 08:44:31.05
>>390 の質問は、
「ラムダ関数の中ってこんなにifを重ねられるんでしたっけ?」
であるが、
この場合の論点はそこにあるのではなく、
「三項演算子のif-elseにおける優先順位はtrue項かfalse項か?」
と質問するべきなのであった。
402デフォルトの名無しさん:2013/06/09(日) 08:50:37.27
>>390
タプルの場合 x, y = (25, 50)
リストの場合 x = [25, 50] x[0] = 25 x[1] = 50

lambda(ラムダ式)の場合
small_choice = lambda x,y: x if x < y else y if x > y else None
403デフォルトの名無しさん:2013/06/09(日) 10:07:42.09
どうしてlambdaの中を複文に出来ないのはなぜ?
404デフォルトの名無しさん:2013/06/09(日) 10:17:41.07
ありがとうございます
自分は三項演算子というのを知らなかったのですが
今回のコードが偶然その構文?に合致する形になっていたようです
あとラムダは関数ではなく、無名関数オブジェクトを作る特殊な式なのですね
合わせて勉強になりました
405デフォルトの名無しさん:2013/06/09(日) 13:28:34.99
>>403
そういう仕様だから
そういう仕様にした理由は構文解析が面倒だから
406デフォルトの名無しさん:2013/06/09(日) 13:37:17.12
長大なラムダ式を引数とかに使わないためだろ
そういうのは名前を付けて定義すべきというのが哲学
407デフォルトの名無しさん:2013/06/09(日) 14:36:16.81
>>397
lambdaは無名関数であってラムダ関数とは言わない
408デフォルトの名無しさん:2013/06/09(日) 15:13:29.35
ラムダ〜と言いたかったらラムダ式と言うのが良い
409デフォルトの名無しさん:2013/06/09(日) 15:34:34.32
ラムダ文とかラムダ文字列があればもっとラムダって言えるのに
410デフォルトの名無しさん:2013/06/09(日) 15:38:40.78
やめなさい
411デフォルトの名無しさん:2013/06/09(日) 15:49:06.74
おまいら無駄話やめろ。
412デフォルトの名無しさん:2013/06/09(日) 16:18:54.96
sc = lambda x:list(set(x))[0] if len(list(set(x)))>1 else None
413デフォルトの名無しさん:2013/06/09(日) 16:29:34.23
sc = lambda x: (lambda y: y[0] if len(y) > 1 else None)(list(set(x)))
414デフォルトの名無しさん:2013/06/09(日) 16:46:18.06
lambda x, y: None if x == y else (lambda x, y: x if x < y else y)(x, y)
415デフォルトの名無しさん:2013/06/09(日) 16:47:59.45
>>> sc = lambda a: (lambda x, y: None if x == y else (lambda x, y: x if x < y else y)(x, y))(a[0], a[1])
>>> sc((2, 1))
1
416デフォルトの名無しさん:2013/06/09(日) 16:53:34.22
なるほど、すばらしくシンプルですね!ありがとうございます。
417デフォルトの名無しさん:2013/06/09(日) 16:55:52.86
そうそうこういう流れでいいんだよ
418デフォルトの名無しさん:2013/06/09(日) 17:11:40.35
from operator import eq

sc = lambda x: None if eq(*x) else min(x)
419デフォルトの名無しさん:2013/06/09(日) 17:29:04.52
sc = lambda x ,y: None if x == y else x if x < y else y
420デフォルトの名無しさん:2013/06/09(日) 17:33:03.28
>>418
がスマートだな
二行だけど
421デフォルトの名無しさん:2013/06/09(日) 17:34:40.29
そりゃeqをそこで定義するかライブラリから呼ぶかの差だろwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
422デフォルトの名無しさん:2013/06/09(日) 17:34:50.60
質問です。
関数はネストできますが、ネストする必要がある場合が想像出来ません。
ネストした方が良い例があれば教えてください。
423デフォルトの名無しさん:2013/06/09(日) 17:36:49.09
popen2.popen3 って obsoleted ですか?
代わりに subprocess.popen を使うべきですか?
それはどうしてですか?
424デフォルトの名無しさん:2013/06/09(日) 17:36:59.07
その関数内でしか使わない関数が外側のグローバルな名前空間で宙ぶらりんになるのが気持ち悪いから。
別に必然性はないけど
425デフォルトの名無しさん:2013/06/09(日) 17:41:09.51
426デフォルトの名無しさん:2013/06/09(日) 17:41:41.00
簡単な例としては、パラメータを持つ関数オブジェクトのファクトリーとかあるだろ

>>423
http://www.python.org/dev/peps/pep-0324/
427デフォルトの名無しさん:2013/06/09(日) 17:42:38.22
>>422
関数もオブジェクトだから
関数の中でラムダ式が使えないと不便だし
428デフォルトの名無しさん:2013/06/09(日) 18:32:28.69
lambdaの話題ついでに質問いいですか?
lambdaの中でprintが使えないんですがなんでですか?
hello = lambda: print "hello"
2.7を使ってます
429デフォルトの名無しさん:2013/06/09(日) 18:35:59.44
printは命令だからです
430デフォルトの名無しさん:2013/06/09(日) 18:38:48.08
lambdaは値を返さなければいけないので値が返せない命令を書くことはできない
Python3はprintが命令から関数になってNoneを返すようになったので書ける

Python2.7でもfuture_importを使えばprint関数にできるはず
431デフォルトの名無しさん:2013/06/09(日) 18:38:51.75
>>422
re.subに渡す関数を内部で定義したりすることはよくある。
読みやすさ的にlambda式は基本使わないな。
432デフォルトの名無しさん:2013/06/09(日) 18:39:11.99
>>> from __future__ import print_function
>>> hello = lambda: print("hello")
>>> hello()
hello
433428:2013/06/09(日) 19:09:32.41
なるほど
良くわかりました、ありがとう
434422:2013/06/09(日) 19:13:13.34
名前を見せたくないのは何となく理解出来ます
しかし、そのまま関数じゃなく実行文を書いても良いですよね?
関数としてどっかで呼びたいから関数にする
それがネスト元の関数内だけで呼び出したい?
でも関数にしないでそのまま書けば?
2回以上呼び出す必要がなければネストしてまで関数にするのはやっぱり名前?
435デフォルトの名無しさん:2013/06/09(日) 19:25:43.18
>>434
面倒くせえやつだなお前
http://ideone.com/ifXglR
436デフォルトの名無しさん:2013/06/09(日) 19:29:10.45
・2回以上同じものを書くのは邪悪だから
・処理をグループ分けして見通しを良くするため
・クロージャー的な使い方のため
437デフォルトの名無しさん:2013/06/09(日) 19:33:51.80
>>434
関数を作るのは関数が必要だから。
必要ないのに無理矢理関数にしたら逆に分かりにくくなるぞ。
438デフォルトの名無しさん:2013/06/09(日) 19:42:33.87
マジな話
そこまで考えるに至ってないよ
時間の無駄だから飛ばして次に進むといい
439422:2013/06/09(日) 19:52:17.43
すみません
>>435 さんの例がわかりやすいです
これが必要な時が知りたいのです
def x(a):
  def y():
    print(a)
  return y

x1 = x(1)
x2 = x(2)
x1()
x2()
--------------------
1
2

def y() は、このままの例のコードであれば必要がないですよね?
どうも見てるネストのコードがほぼ3行くらいであってもなくてもみたいな感じだったので
>>437 さんであれば >>435 をどう見るかが知りたいのです
440デフォルトの名無しさん:2013/06/09(日) 19:59:36.17
マジレスすると書きやすいからそうなってるってだけだよ
ラムダだっていちいち関数に名前付けるのめんどくせえ!ってためだけにあるし
441デフォルトの名無しさん:2013/06/09(日) 20:03:53.18
>>439
os.walkでカスタムエラー処理してみろ

条件
・エラーが発生しても無視すること
・ただしprintでログに記録すること
・2.7で行い、future_importを使用しないこと
442デフォルトの名無しさん:2013/06/09(日) 20:08:40.56
>>439
def y()が無いとx(1)した時点でprintされちゃうでしょ
必要なくないよ
443デフォルトの名無しさん:2013/06/09(日) 20:13:32.88
422のPC叩き壊して二度とプログラミングに関わることがないようにしたい
切にしたい
444デフォルトの名無しさん:2013/06/09(日) 20:22:46.04
>>439
この例だけ抜き出して、これが必要かと問われれば、こんな無意味なコードはない。
ただ、実際に何かを作ってる時に、具体的な目的や条件、制約があると
これと同じようなことがしたくなる事はきっとあると思う。
今それが思いあたらなければ無理してネストした関数にこだわる必要はないと思うよ。
445デフォルトの名無しさん:2013/06/09(日) 20:26:41.97
>>439
そんなに知りたいなら本当に実用的な例見せてやるよ
http://ideone.com/8yjZKZ

34行目な
実用的過ぎて理解できないだろ
446デフォルトの名無しさん:2013/06/09(日) 20:31:51.79
ワロタけどライセンス的に駄目じゃねえのw
447422:2013/06/09(日) 22:13:31.02
たくさんのレスありがとうです
必要が出てこない限り理解出来ないと理解しました><

>>445 のコードではネストの関数内でやっていることがあまり好きではないですけど
その後の関数での記述が簡潔に見えるのは理解出来ました
448デフォルトの名無しさん:2013/06/10(月) 08:50:07.13
プログラミング方法の好みなんてひとそれぞれで分かれるけど
ネストの深さが動的に変化するようなときに困るから好きじゃない
449デフォルトの名無しさん:2013/06/10(月) 11:02:54.13
ネストの深さが動的に変化???????????????????????????
450デフォルトの名無しさん:2013/06/10(月) 11:12:09.35
>>448
再帰とか憎んでそうだなw
451デフォルトの名無しさん:2013/06/10(月) 11:17:46.38
再帰は嫌いじゃないですよ
ソースでネスト固定しちゃうと
アルゴリズム上のネストが
実行時に変えられないから
問題だと言ってるんで
452デフォルトの名無しさん:2013/06/10(月) 11:19:35.31
何が問題なのかさっぱり分からんw
453デフォルトの名無しさん:2013/06/10(月) 11:31:48.19
確かに分からん
454デフォルトの名無しさん:2013/06/10(月) 12:19:12.34
よく分かんないけど*.pyを書き換えてevalでもしてんのか
455デフォルトの名無しさん:2013/06/10(月) 12:40:42.64
俺用語でスコープをネストと呼んでんじゃないかなーと思った
456デフォルトの名無しさん:2013/06/10(月) 15:20:24.43
それにしても分からん
457デフォルトの名無しさん:2013/06/10(月) 16:06:18.01
import xml.dom.minidom
doc = xml.dom.minidom.Document()
root = doc.createElement('root')
doc.appendChild(root)
str = doc.toxml()
print(str)

Python3.3.2です
このコードを実行すると<?xml version="1.0" ?><root/>のように勝手にdoctypeが付いてしまいます。
<root/>というふうに要素のみ出力したいので、doctypeをつけないようにする設定はな方法を教えてください
応急処置でxmlを文字列で変数に格納して置換でdoctypeを消してますが、この方法しかないでしょうか?
458デフォルトの名無しさん:2013/06/10(月) 16:09:28.64
不動点コンビネータ使えば再帰関数とかいらんしwww
459デフォルトの名無しさん:2013/06/10(月) 16:30:15.63
>>457
doc.documentElement.toxml() や root.toxml() かなあ
もし特別な理由がないのなら ElementTree や lxml 使ったほうがいいかも
460デフォルトの名無しさん:2013/06/11(火) 03:20:08.19
他の言語の解説だと
文字列を""←ダブルクォーテーションで囲ってるものが多いのに
Pythonは何故''シングルコーテーションが多いのですか?
シングルじゃなきゃ書けないわけでもないみたいなのに、不思議です
461デフォルトの名無しさん:2013/06/11(火) 03:27:31.08
ダブルを使う理由もない。ダブルを使いたければ使えばいい。何の不思議もない。
462デフォルトの名無しさん:2013/06/11(火) 03:30:37.76
>>460
キーボードの配列じゃないかな?
463デフォルトの名無しさん:2013/06/11(火) 03:46:31.86
>>462
どういうことでしょうか?
英字版キーボードだとシングルコーテーションの方が押しやすい位置にあったりするのでしょうか?
日本語のキーボードだと、Shiftと離れた位置にあるので、ダブルクォーテーションの方が押しやすい気がします
464デフォルトの名無しさん:2013/06/11(火) 03:48:51.07
はあ?お前には片手しかねーのか?
465デフォルトの名無しさん:2013/06/11(火) 03:49:03.29
>日本語のキーボードだと、Shiftと離れた位置にあるので、ダブルクォーテーションの方が押しやすい気がします
イミフ
466デフォルトの名無しさん:2013/06/11(火) 03:54:19.75
>>465
すみません
日本語のキーボードだと、(シングルコーテーションが)Shiftキーと離れた位置にあるので
(Shiftキーと近い位置にある)ダブルクォーテーションの方が押しやすい気がします

色々省きすぎました
シングルもダブルも、shift押しながらじゃないと打てないので
Shiftと近い位置にある記号の方が良いのではないかと。
もちろん両手使えばいい話ですが"クォーテーション使った後にすぐに次の動作に移る際
右手のポジションが数字キーの位置にあるのはあまり宜しくない気がするのです
467デフォルトの名無しさん:2013/06/11(火) 03:56:47.40
別にどっちでもいい
どっちでもいいから両方使えるんだよ
468デフォルトの名無しさん:2013/06/11(火) 03:59:12.29
何を言っても無駄。
469デフォルトの名無しさん:2013/06/11(火) 04:01:42.93
誰が書いても同じソースコードになるとかいうのがpyてょんさんの売りじゃなかったんですかねぇ
470デフォルトの名無しさん:2013/06/11(火) 04:04:11.10
それを指摘するのにダブル・シングルクォーテンションを引き合いに出す馬鹿は初めて見た
471デフォルトの名無しさん:2013/06/11(火) 04:06:43.08
だって1番多用するところだろ
472デフォルトの名無しさん:2013/06/11(火) 04:07:29.07
それで少しでも可読性を損なうとか思ってるならプログラミングやめたほうが良いよ
473デフォルトの名無しさん:2013/06/11(火) 04:08:42.24
他人からプログラム引き継いで書くときにさぁ
俺が更新したとこだけダブルクォーテーションだと気持ち悪いだろ!!
474デフォルトの名無しさん:2013/06/11(火) 04:09:45.79
コードの一貫性を破壊するお前が馬鹿すぎるだけ
475デフォルトの名無しさん:2013/06/11(火) 04:23:18.09
何故シングルコーテーションを使うのか
理由を聴いてるんだよ俺は
余計な回答してんじゃねーぞ
ココはヤフー知恵袋以下か!
476デフォルトの名無しさん:2013/06/11(火) 04:25:18.68
理由があってもお前にとっては意味ないよ
お前が気に食わない流儀があるという事実は変わらない
嫌ならPythonを使わなければいいだけ
477デフォルトの名無しさん:2013/06/11(火) 04:59:21.13
関数名や変数名を大文字で始めるのは?
478デフォルトの名無しさん:2013/06/11(火) 07:53:28.70
>>460
rubyかじっててpythonはまだハローワールドだけど、ダブルで囲った文字列内だと式、変数展開とか色々出来て、シングルだと単なる文字列しか出来ないのと関係あったりするのかな

それとも欧米主力言語の特徴なんだろか
479デフォルトの名無しさん:2013/06/11(火) 08:32:37.98
>>478
関係ない
480デフォルトの名無しさん:2013/06/11(火) 08:53:58.70
理由がないと御満足いただけない人って生きるのが辛そうだよね
481デフォルトの名無しさん:2013/06/11(火) 09:15:21.59
既存の言語齧ってて新たな言語覚えようとするひとに
1.新しいものは新しいものとして新たに覚える
2.知ってる言語と比較しながら覚える
タイプがあるみたいだけど
どっちが効率良いんかね
2.で知ってる言語にやたらこだわるひとは時間を無駄にしてると思わないのかな
482デフォルトの名無しさん:2013/06/11(火) 09:21:28.14
プログラミング言語を自然言語と単純に比較できるかどうか判らないが、
自然言語の場合、例えば日本語ネイティブのひとが英語とフランス語おぼえるとき、
先に英語を覚えてから英語との比較でフランス語を覚える手順をとると、
日本語<->フランス語のトランスレーションが直接できなくて、
毎回英語を経由する癖がついてしまうのが良くないって主張があるんだよね。
だから英語を知っててもフランス語を覚えなおすときは、英語のことは一旦忘れて
日本語から直接フランス語へのトランスレーションをできるようにした方が良い。
483デフォルトの名無しさん:2013/06/11(火) 09:43:18.39
>>460
理由はHTMLを囲うときに
↓のようにHTML内部のダブルコーテーションを保ったまま文字列を書けるからってのが一つある
'<div class="foo"></div>'

HTMLがダブルなのはW3Cがそう決めたから

ちなみにソースはGoogleさんのJavascriptコーディングガイド
Pythonのコーディングガイドもあるけど、ここには書いてなかったと思う
http://cou929.nu/data/google_javascript_style_guide/

自分で書くなら好きなもの使えばいいけど
プロジェクトに参加するなら、そのプロジェクトの流儀に従わないといかん
インデントの形式とかもね(スペースインデント(^p^)しーね!しーね!)
484デフォルトの名無しさん:2013/06/11(火) 10:25:43.96
いやPythonは4スペが流儀だから
485デフォルトの名無しさん:2013/06/11(火) 10:27:33.25
えー。俺は文字列リテラルは通常ダブルクオート。
ダブルクオートを含む文字列の場合はシングルクオート。
1文字だけの文字列をリテラルで書くときはシングルクオート。
複数行に渡る文字列の場合はダブルクオート3個連続。
と書き分けてるが、こういうのって少数派?
486デフォルトの名無しさん:2013/06/11(火) 10:51:11.43
読む側からしたらシングルだろうがダブルだろうがたいして気にしないし
特別の事情がない限り好きにしたらいいのでは
487デフォルトの名無しさん:2013/06/11(火) 11:40:12.58
>>485みたいな文字型と文字列型を必死に区別しようとするC言語脳は死ぬまでどうにもならない
488デフォルトの名無しさん:2013/06/11(火) 11:47:56.88
少数派で困ることがあったら言え
489デフォルトの名無しさん:2013/06/11(火) 12:20:30.99
>>488
困らないが、仕事として少しだけ参加とかになると
その時だけ少数派で仕事するか多数派で仕事するかになる
自分だけで完結する仕事ならどっちでも関係ないが正解

ま、仕事の最初に確認しとけば良いはず
自分は普段の書き方と違う書き方も両方出来るから確認すれば問題ない
こだわりを持つべき箇所とそうでない箇所を理解するまでに
>>460 のような質問をするのは良いと思う
>>460 のように考えることが1度でもある人は優秀
叩かれるのわかってても質問出来るひとは伸びるよ
それをつぶそうとする人はとても多いけど、その人達は間違いなく凡人だからね
490デフォルトの名無しさん:2013/06/11(火) 12:26:34.96
酷い自演を見た
491デフォルトの名無しさん:2013/06/11(火) 12:37:00.18
>>485
C経験してるとそうなるのは判るけど
あまりそれにこだわってると
c = 'c'
if c == 0x43:
みたいなミスをやらかす
492デフォルトの名無しさん:2013/06/11(火) 12:46:59.96
>>487
文字列型を区別するというか英語圏の人達はシングル ' を文字列で使うから
自然と文字列型にはダブル " を使うことが多くなる
これは区別というか習慣になっている
日本人は習慣になっていないから区別する必要も出てくる
ここを考える人とそうでない人との認識で話し合いしても噛み合わないだけ
493デフォルトの名無しさん:2013/06/11(火) 12:47:50.63
494デフォルトの名無しさん:2013/06/11(火) 12:51:40.46
>>492
いや、文字列型にシングルを使うって言ってんだろw
文字列型はダブル!という呪いに縛り付けられてるのはおまえだけ
お前だけが一人暴れてるんだから話が噛み合うわけねーわ。みんな普通に文字列型にシングルを使ってんだから

つーか、char型とstring型の話をしてるのに
なんでいきなり文字列と文字列型とか意味不明な話になってんだ?馬鹿すぎるだろ
495デフォルトの名無しさん:2013/06/11(火) 12:53:02.63
標準ライブラリ読んだこともないんだろ?
読んでみ。全然統一されてないから。
一部の神経症患者意外こんなこといちいち気にしてないってこと。
496デフォルトの名無しさん:2013/06/11(火) 12:56:37.40
え?
標準ライブラリはpydocがダブルで通常の文字列はシングルに統一されてるはずだけど
497デフォルトの名無しさん:2013/06/11(火) 12:56:47.37
Pythonに「文字型」ってあんの?
498デフォルトの名無しさん:2013/06/11(火) 12:58:31.21
一文字だけの文字列を区別するって思想が文字型を意識してるって言ってるんでしょう
どうでもいい話だと思いますが
499デフォルトの名無しさん:2013/06/11(火) 13:14:55.98
英語圏の人達はシングル ' を文字列で使うから〜とはいっても
一般的な文章とプログラムの文字列で同じお作法使うとは限らないよな
上に書いてあるとおり標準ライブラリの文字列はほぼシングルな訳でね
500デフォルトの名無しさん:2013/06/11(火) 13:24:16.82
>>495
気にしてると疑問に思うは違うことだよ
疑問に思ったことを気にしてると思い込みたい君の思考がアスペに近い
程度は人それぞれ違うことを理解しよう
英語圏の人はシングル ' は a と同じ感覚 だから配列でもShiftを押さずに打てる
aHello It's Pythona , "Hello It's Python", 'Hello It's Python'
たぶんどこの国でコードを書くかで感覚は違ってくると思われる
アスペ君はきっとどこに行っても変わらないでいるだろう
501デフォルトの名無しさん:2013/06/11(火) 13:27:36.43
469 名前:デフォルトの名無しさん[sage] 投稿日:2013/06/11(火) 04:01:42.93
誰が書いても同じソースコードになるとかいうのがpyてょんさんの売りじゃなかったんですかねぇ

まあそのアスペがPythonのウリですから
502デフォルトの名無しさん:2013/06/11(火) 13:27:42.46
シングルコートとエスケープは殺意が湧く程押しにくい。一票。
503デフォルトの名無しさん:2013/06/11(火) 13:45:27.36
>>493 commandとかどこの方言だよゴミがwwwwwwwwwwwwwwwwwww
504デフォルトの名無しさん:2013/06/11(火) 13:57:14.55
>Pythonは何故''シングルコーテーションが多いのですか?

あなたが見たソースコードにたまたまシングルの利用例が多かっただけじゃないでしょうか?
505デフォルトの名無しさん:2013/06/11(火) 14:47:46.36
When in Rome, do as the Romans do.
506デフォルトの名無しさん:2013/06/11(火) 15:01:45.45
But I refuse.
507デフォルトの名無しさん:2013/06/11(火) 15:08:41.52
そう言いながらも反応してるよ?
ホントは押したいんでしょ?
508デフォルトの名無しさん:2013/06/11(火) 18:32:33.24
通は
for i in xrange(10)
だよね
509デフォルトの名無しさん:2013/06/11(火) 20:28:34.62
虎穴に入らずんば虎子に従え
510デフォルトの名無しさん:2013/06/11(火) 21:09:55.96
穴があったら入れたい
511デフォルトの名無しさん:2013/06/12(水) 03:00:38.12
アッー!!!
512デフォルトの名無しさん:2013/06/12(水) 06:55:08.27
英語キーボードだとクオートはシングル/ダブルともリターンキーのすぐ隣の同じキーに配置
ダブルクオートはシフトキー押す必要がある
実際使ってると, シフト押すのめんどくさくなってシングルクオートを多用し始める
513デフォルトの名無しさん:2013/06/12(水) 07:46:41.71
JIS配置を考えた奴は死ねばいい
514デフォルトの名無しさん:2013/06/12(水) 08:12:20.93
死んでも配列は残るだろうが。意味ね〜
515デフォルトの名無しさん:2013/06/12(水) 15:09:40.47
JIS配列を作って売ってる奴・使ってる奴は死ねばいい
516デフォルトの名無しさん:2013/06/12(水) 16:34:40.01
意味の無さで言えばこの一連の流れが上回ってるわ
517デフォルトの名無しさん:2013/06/12(水) 16:56:04.51
518デフォルトの名無しさん:2013/06/12(水) 18:41:28.90
今日の python に感激したところ
def function1():
  処理
  time.sleep(60)
  処理
while True:
  function1()
  function2()
これでは function2 が即実行出来ない><
from threading import Timer
while True:
519デフォルトの名無しさん:2013/06/12(水) 18:44:51.87
>>518 うわーん途中送信><
from threading import Timer
while True:
  Timer(0, function1).start()
  Timer(0, function2).start()
  function3()
と1行追加と数行の変更でスレッディング出来ちゃった最高٩(๑❛ᴗ❛)۶
という話でした
520デフォルトの名無しさん:2013/06/12(水) 20:03:52.65
Django使ってる方いますか?
テンプレートに妙な癖があって凄くイライラする

d = {"apple" : 3}
例えばこういうdictを使ってテンプレートで表示しようとしたら、
{{ d["apple"] }} では駄目で、{{ d.apple }} としなくちゃいけない
あとリストも {{ list[3] }} では駄目

なぜわざわざ普通のpython的な書き方とは異なる仕様にしてるんだろ
言語自体はRubyよりpythonの方が好きだけど、
webフレームワークに関してはDjangoってなんかすっきりしない仕様が多い
Railsと比べると筋が悪いと言うか...
521デフォルトの名無しさん:2013/06/12(水) 20:07:35.77
つーか他の奴触りだしたらDjango嫌いになった
所詮先発なだっただけだと今は思う
522デフォルトの名無しさん:2013/06/12(水) 20:09:09.24
PythonはあんまWeb強くないね
523デフォルトの名無しさん:2013/06/13(木) 03:50:34.85
>>520
気に入らなければ書き直せばいいじゃん
rails準拠のDjango with Railsって名前つけてさ
524デフォルトの名無しさん:2013/06/13(木) 07:23:58.38
>>520
同意
Tempita オヌヌメ
525デフォルトの名無しさん:2013/06/13(木) 07:27:12.95
Dwango is piles
526デフォルトの名無しさん:2013/06/13(木) 13:06:30.85
標準出力で文字列のある部分にだけ色をつけて出力したいです。、

出力の例:<S>私は</S><A>車に</A><V>乗る。</V>

「<A>〜</A>」を赤色にしたいです。

範囲指定をしての色の変換出力の方法を教えてください。
527デフォルトの名無しさん:2013/06/13(木) 14:14:56.46
>>526
出力先の端末が ANSI エスケープを解釈してくれるなら
print "私は\x1B[31m車に\x1B[30m乗る"

うまくいかなければ環境を詳しく
528デフォルトの名無しさん:2013/06/13(木) 16:59:00.60
>>527
ありがとうございます。

説明が分かりづらくてすみません。
出力の文章には<S></S><A></A><V></V>というタグが付いていて、
その間にある文章は毎回変わってしまいます。
529デフォルトの名無しさん:2013/06/13(木) 17:13:15.52
>>528
# coding: utf8
import re
src = u"<S>私は</S><A>車に</A><V>乗る。</V>"
print re.sub(r'(<A>.*?</A>)', '\x1B[31m\\1\x1B[30m', src)
530デフォルトの名無しさん:2013/06/13(木) 17:54:25.53
>>528
ありがとうございます。

プログラムを実行すると、
<S>私は</S>[31m<A>車に</A>[30m<V>乗る。</V>
と表示されました。
何がいけないのでしょうか?
531デフォルトの名無しさん:2013/06/13(木) 20:20:07.71
>>530
> 何がいけないのでしょうか?

人の言うことを聞かない君の性格。

> うまくいかなければ環境を詳しく
532デフォルトの名無しさん:2013/06/13(木) 20:45:12.92
あるいは都合のいいものしか映らない目
533デフォルトの名無しさん:2013/06/13(木) 20:46:16.48
相変わらず質問者に辛辣な対応をする人がいるなあ…
これじゃ誰も来なくなってしまうぞ
534デフォルトの名無しさん:2013/06/13(木) 20:47:24.34
せめて言語仕様くらいは読んでこようよ
535デフォルトの名無しさん:2013/06/13(木) 22:07:34.38
>>533
そう思うなら、君が答えてやればいいんじゃね。
536デフォルトの名無しさん:2013/06/13(木) 22:14:54.93
>>535
そういう問題じゃないと思うなあ
罵倒や皮肉がぶつけられる中、
何事もなかったように二人で穏やかな
やりとりができると思う?
人間そんなに強くはできていないぜ
537デフォルトの名無しさん:2013/06/13(木) 22:47:26.54
ここは、にちゃんだよ...
538デフォルトの名無しさん:2013/06/13(木) 23:27:15.37
果たしてそうかな?
539デフォルトの名無しさん:2013/06/14(金) 00:02:10.67
辛辣な対応っていうか、実も蓋も無い事を言う人がいるよね
Djangoのテンプレートってどうよ?っていう話題に対して
>>523みたいに「じゃあ書き換えろ」とかくだらないことを言う人
540デフォルトの名無しさん:2013/06/14(金) 00:03:03.92
別のフレームワーク使うしか選択肢はないと思うのだが
541デフォルトの名無しさん:2013/06/14(金) 00:47:30.82
馬鹿には無理
542デフォルトの名無しさん:2013/06/14(金) 01:25:16.73
>>539
どうって言われても書き換える以外どうしようもないじゃん
それとも慣れろって言えばいいわけ?
他の方法があるなら教えてあげてくれよ
543デフォルトの名無しさん:2013/06/14(金) 01:29:35.33
d = {'apple': 3}

d.apple でアクセス出来たほうが楽なんだけどな d['apple'] よりも
打ち込んでるキー数考えてもそうでしょ?
544デフォルトの名無しさん:2013/06/14(金) 01:33:53.99
辞書と違うじゃんという話だろ
数字がインデックスの場合はどうすんの?
545デフォルトの名無しさん:2013/06/14(金) 01:34:10.34
なぜわざわざ普通のpython的な書き方とは異なる仕様にしてるんだろ
言語自体はRubyよりpythonの方が好きだけど、
webフレームワークに関してはDjangoってなんかすっきりしない仕様が多い
Railsと比べると筋が悪いと言うか...
546デフォルトの名無しさん:2013/06/14(金) 01:34:26.65
インデックスじゃなくてキーか
547デフォルトの名無しさん:2013/06/14(金) 01:36:00.50
初心者とかそういうのをぬきにして向いてないというほかない
548デフォルトの名無しさん:2013/06/14(金) 01:37:04.09
WEB系のAPIとか中身辞書と似てるんだけど
アクセスするのに d.apple みたいにするの多いと思うけど
549デフォルトの名無しさん:2013/06/14(金) 01:46:57.49
俺はDjangoの開発者じゃないし
作者の心情を代わりに答えるボランティアでもない
そんなに知りたければフォーラムに書いて来い
550デフォルトの名無しさん:2013/06/14(金) 01:56:07.55
別に実際にそこが知りたいわけではなくて、
単にイライラを共有して欲しいだけだよ。
女がよくそういう話し方するだろ。
551デフォルトの名無しさん:2013/06/14(金) 02:05:23.69
ttp://docs.djangoproject.com/en/1.5/misc/design-philosophies/
>The Django template system recognizes that templates are most often written by designers,
>not programmers, and therefore should not assume Python knowledge.
552デフォルトの名無しさん:2013/06/14(金) 02:23:58.56
python
553デフォルトの名無しさん:2013/06/14(金) 02:25:47.58
誤って書き込んじった。

>>551
designers って誰だよ。
個人がだれかじゃなくて、普段なんの生業に携わってる人なのよ。
554デフォルトの名無しさん:2013/06/14(金) 02:37:06.60
>>548
ORMは糞
555デフォルトの名無しさん:2013/06/14(金) 02:39:01.59
普段は女のケツ追いかけまわしてます。
556デフォルトの名無しさん:2013/06/14(金) 03:15:29.02
jinja2はできるからdjango-jinjaでも入れれば
jinja2はDjangoのテンプレートシステムから分岐したテンプレートエンジンだから使用感は変わらん
557デフォルトの名無しさん:2013/06/14(金) 07:43:33.99
使用感変わってくれなかったら意味ない
558デフォルトの名無しさん:2013/06/14(金) 09:50:42.23
>>531

すみません。
そのままコピーペーストして使ったのですが。
環境はWindowsでPythonのバージョンは2系の最新でコマンドプロンプトで実行しました。
559デフォルトの名無しさん:2013/06/14(金) 12:05:25.37
Windowsで指定したプログラムを管理者として実行したいのですが
shell=TrueにしてもUACが出ません
どのようにして管理者として実行できますか?
import subprocess
subprocess.check_call('C:/program/mytool.exe', shell=True)
560デフォルトの名無しさん:2013/06/14(金) 12:20:24.04
あらかじめ起動したいプログラムに管理者権限が必要ってマニフェストが埋めてあるか
起動したいプログラムの互換性の設定で「管理者として実行」を有効にしていなければ不可

上記のいずれを行なっていれば、shell=TrueでUACが出る
shell=Falseだと起動できない
561デフォルトの名無しさん:2013/06/14(金) 12:43:49.58
>>558
pyreadline入れて
>>> import readline, sys
>>> sys.stdout = readline.GetOutputFile()
>>> print "\x1b[31mtest"
562デフォルトの名無しさん:2013/06/14(金) 14:12:46.90
>>545
お前のスッキリのためにあるわけじゃねーからだよ
書きやすさ優先だ
563デフォルトの名無しさん:2013/06/14(金) 14:14:41.56
>>553
webデザイナーだろアホめ
Djangoで何つくってんだよおめーは
564デフォルトの名無しさん:2013/06/14(金) 14:35:38.86
ニートの多い2ちゃんでは
ぼっちでプログラミングしてて
デザイナーと組んだことがないのも不思議じゃない
そういうひとにはDjangoは不要というか向いてない
565デフォルトの名無しさん:2013/06/14(金) 15:27:38.74
>>561
import readline, sys
ImportError: No module named readline

というエラーが出てしまいました。
566デフォルトの名無しさん:2013/06/14(金) 15:48:21.89
python readlineで検索ぐらいしないのか?
567デフォルトの名無しさん:2013/06/14(金) 17:24:30.03
そんな糞めんどくせー事するわけねーだろっ!!!
568デフォルトの名無しさん:2013/06/14(金) 17:47:56.58
学校の課題を持ってくるのやめようよ
わからないところは先生に聞きなさい

もし趣味でpythonやってるなら段差に躓いて転んで帰ってくるな
569デフォルトの名無しさん:2013/06/14(金) 19:25:09.19
修行するぞ修行するぞ

PyPiからモジュールをインストールする方法を調べよう
そしてcoloramaを入れよう
570デフォルトの名無しさん:2013/06/14(金) 22:27:36.64
# Python3.3
s = '\x8ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83\x82\x83W\x83\x85\x81'
print(str(s))

sに格納されているUnicode?を変換すると「指定されたモジュールが見つかりません」って表示されるそうなんですが、
この変換方法がわかりません
Python3からは文字列型はUnicode文字列なのでstrで変換できると思ったのですができません
どなたかご教示お願いします
571デフォルトの名無しさん:2013/06/14(金) 22:42:04.85
>>> str(b'\x8ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83\x82\x83W\x83\x85', 'cp932')
'指定されたモジュ'
>>> b'\x8ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83\x82\x83W\x83\x85'.decode('cp932')
'指定されたモジュ'

>>> '\x8ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83\x82\x83W\x83\x85'.encode("raw_unicode_escape").decode("cp932")
'指定されたモジュ'
572デフォルトの名無しさん:2013/06/14(金) 23:05:15.27
これ教えて何がどう解決するのか知りたいわ
573デフォルトの名無しさん:2013/06/15(土) 10:09:57.79
1もしくは"1"を、b"\x01"にするはどうしたらいいですか?
struct.pack(">h", 1)だとb"\x00\x01"で2Byteになってしまいます。
574デフォルトの名無しさん:2013/06/15(土) 10:24:56.41
chr(1)
575デフォルトの名無しさん:2013/06/15(土) 10:25:37.82
struct.pack("c", 1)
576デフォルトの名無しさん:2013/06/15(土) 10:26:24.17
b'%c' % 1
577573:2013/06/15(土) 10:37:47.79
すいません。大事なこと忘れてました。python3.3です。ごめんなさい。
578573:2013/06/15(土) 11:06:17.62
>>574をbytes(chr(1), encoding="utf-8")したらいけそうなので、これでいこうと思います。
教えてくれた人ありがとうございました。
579デフォルトの名無しさん:2013/06/15(土) 12:29:48.71
Python使いに性格悪いやつが多いのは
やっぱ言語使用のせいなの?
580デフォルトの名無しさん:2013/06/15(土) 12:41:55.30
馴染めない奴を追い出すことで
凄まじく居心地のいい開発環境を実現している
581デフォルトの名無しさん:2013/06/15(土) 13:26:22.46
皮肉や嫌味たっぷりコメディから名前が取られてるくらいですから
582デフォルトの名無しさん:2013/06/15(土) 14:23:34.04
馬鹿除けの効き目は抜群
583デフォルトの名無しさん:2013/06/15(土) 15:27:50.37
黙ってても抜けていかないくらい簡単な言語でしょ
抜けていかないからハラスメントして追い出すわけでしょ
ブラック企業やイジメ横行の企業どこが違うのか
584デフォルトの名無しさん:2013/06/15(土) 15:29:38.71
労働と違って義務ではないので
585デフォルトの名無しさん:2013/06/15(土) 15:32:57.59
つまり日本人向きではないということ。
586デフォルトの名無しさん:2013/06/15(土) 15:34:56.30
仲良しサークル希望なら高校か大学にもういっぺん行ってろ
587デフォルトの名無しさん:2013/06/15(土) 15:38:01.40
現実が希望と違って癇癪起こすガキじゃあるまいし、
昨日の21時からよく18時間も怒り心頭を発してられるよ。
588デフォルトの名無しさん:2013/06/15(土) 15:42:16.99
MLが活発だったなら、ML内のトピックで癇癪を炸裂させるところだったな
未然に防がれてよかった
589デフォルトの名無しさん:2013/06/15(土) 15:57:54.20
誰が怒り心頭なの?
勝手に思い込みが激しいアスペチックな人が多すぎるよここw
そして一人じゃないみたいだし 集まってるねここw
はずかしい
590デフォルトの名無しさん:2013/06/15(土) 16:03:29.90
無理して使うことはないよ
591デフォルトの名無しさん:2013/06/15(土) 16:29:57.08
ところで、携帯小説書いてみたから読んでくれ

ハマのサテンでナオンと待ち合わせたオイラは、10分程遅れて到着した。
窓ガラスから店の中を覗くと、ナオンは既に椅子に坐って待っていた。
「ヒュー」
思わず口笛を吹いた。相変わらずマブイ。
カランコロンカラン、コロンカランコロン。
「レスカ、ガム抜きでな」
マスターにそう声を掛けて、オイラは席についた。
「オマエ、何頼んだの?」
「レイコー」
ぶっきらぼうに答える。
「アイスコーヒーとガムシロ抜きのレモンスカッシュです」
ウェイトレスが苦い空気に割って入った。
「ほら、生きてるぜ」
クシャクシャになったストローの袋に水を掛けながら言った。巷で流行ってる遊びだ。
「タカシが死んだよ」
ヨーコが言った。
「峠で事故ってさ、即死だって」
「・・・」
「アイツの走りって、まるで死に急ぐような
命を削ってる走りだった。だからアタシは
ずっと止めさせようと思ってたのに、
そうする前にいってしまった」
ヨーコがタバコに火をつけた。
ホープ。ナオンの癖にキツイタバコだ。
ホープ。希望。嫌な言葉だ。希望なんてのはどん底の奴が持つものだ。
希望の無い奴だけが希望を持てる。ヨーコの吐き出す紫煙を吸って、オイラも
タバコに火をつけた。
わかば。安くて旨いタバコだ。俺達はまだ若い。それは希望なのか?オイラにはわからない。
592デフォルトの名無しさん:2013/06/15(土) 18:25:29.18
>>583
簡単ならあなたがスパッと教えて差し上げればいいんじゃないですか?
593デフォルトの名無しさん:2013/06/15(土) 18:29:29.82
そんな話してないんだよ 日本語できないアスペには分からないだろうけど
594デフォルトの名無しさん:2013/06/15(土) 18:47:33.48
本スレでどうぞ
595デフォルトの名無しさん:2013/06/15(土) 18:47:53.92
>>593
1レスでスパッと回答して差し上げればあなたの憎むいじめ問題は起こらないのでは?
596593:2013/06/15(土) 18:51:09.75
似てたかな
ちょっと真似してみたんだけど
597デフォルトの名無しさん:2013/06/15(土) 19:03:39.36
あー似てた似てた。


死ね。
598デフォルトの名無しさん:2013/06/15(土) 19:05:13.24
>>596
そんな成り済ましを装っても無駄ですよ
599デフォルトの名無しさん:2013/06/15(土) 20:17:10.45
リストにデータが連なっていて、
[a,a,b,a,a]

bが出てくるまではAの処理、b以後はBの処理を行いたいんですけど、
一回で処理できるでしょうか?

forループでindex番号をとって処理する方法は思いついたのですが、
もっとスマートな方法があれば教えてください。
600デフォルトの名無しさん:2013/06/15(土) 20:20:43.87
処理を関数に入れる
A = func
B = func2
for n in [a,a,b,a,a]
 if n == b:
  A = B
 A(n)
601デフォルトの名無しさん:2013/06/15(土) 20:21:54.97
分かりやすくするために変数Bを書いたんであって、実際は要らない
602デフォルトの名無しさん:2013/06/15(土) 20:35:37.51
>>600,601

ありがとうございます、助かりました。
603デフォルトの名無しさん:2013/06/15(土) 21:24:06.41
pythonのバイトコードをpythonのコード以外から作ってpythonで実行したいのですが調べてもいい情報が出て来ません
例えるならclojureのpython版みたいな感じですがわかる人いますか
604デフォルトの名無しさん:2013/06/15(土) 22:22:51.85
CPythonでは直接バイトコードを実行させることは不可能だから、出てこなくても不思議ではない
やりたければモジュールを作ってimportする必要がある

Jythonなどはその限りではない
605デフォルトの名無しさん:2013/06/15(土) 22:25:42.37
つまりpycファイルをpythonから作ることは不可能ってことですか?
C/C++で作ったものをpythonから使うしかないんですね
ありがとうございました
606デフォルトの名無しさん:2013/06/15(土) 22:35:43.57
*.pyを*.pycにすることはできる
それ以外は不可
607デフォルトの名無しさん:2013/06/15(土) 22:44:25.98
docs.python.jp/2/library/language.html
このページを見つけたんですが
これのバイトコード命令を生成することも無理ですか
608デフォルトの名無しさん:2013/06/15(土) 22:53:37.86
CPythonが、pyから、pycを作るときは、その表にしたがって生成してるんだけど!
pyファイル以外から作る方法は持ってないの!

例えばあなたがx86の機械語を読んで、
CPythonのバイトコードに変換するようなプログラムを書くなら、
それは全然問題ない。

具体的に何を使って何をしたいのか言えよ。
609デフォルトの名無しさん:2013/06/15(土) 22:57:30.07
pythonで何かの言語のコード(例えばbasic)をpythonのバイトコードに変換してpythonのコードとして実行するようにしたいんです
610デフォルトの名無しさん:2013/06/15(土) 23:03:47.27
何度も言ってるように、CPythonはpyファイルのことしか理解しません。
したがって、そのような機構は存在しません。

あなたがそのようなプログラムを作成することは問題ありません。
ぜひそうしましょう。
611デフォルトの名無しさん:2013/06/16(日) 12:43:39.35
612デフォルトの名無しさん:2013/06/16(日) 12:48:00.88
こんなのもあった
https://github.com/halgari/clojure-py

探し方が悪いのでは?
613デフォルトの名無しさん:2013/06/16(日) 23:39:25.69
classのあたりから急に難しくなった
614デフォルトの名無しさん:2013/06/18(火) 11:07:43.47
pythonでJavaScriptのonclickを動かす方法ってありますか?
できれば外部モジュールは使わないほうがいいです
615デフォルトの名無しさん:2013/06/18(火) 12:12:05.86
ブラウザはどうすんの
javascriptってjavascriptだけで成り立ってるわけじゃないからね
その質問だとpure pythonのブラウザをくれって質問とほぼ等価で
そんなもんない
616デフォルトの名無しさん:2013/06/18(火) 12:33:00.53
既存のブラウザで開いたページを対象にするにしても
OSは何なのかとか、ブラウザは何なのかによって
外部モジュールが要るかどうか、そもそも可能かどうかも変わる

俺が同じ事をやれと言われたら
pythonでproxyを作ってサイトにjavascriptを注入する
617デフォルトの名無しさん:2013/06/18(火) 22:18:37.96
Pythonを勉強し始めて2日目なのですが、
さっそくつまずきそうなので教えてください

>>> i = 1
>>> i += 2
>>>i
3

これです。二行目がさっぱりです
どういう意味ですか?
618デフォルトの名無しさん:2013/06/18(火) 22:23:35.04
i に 2 を足して i に代入し直す操作を
i += 2
と書きます
これを
i =+ 2
と書かないのは
i = +2
と区別が付かないから?じゃないかと思います
あと
i = i + 2
と書くのはお勧めしません
619デフォルトの名無しさん:2013/06/18(火) 22:48:09.10
なんとなくわかった

i = i + 2 だったら理解出来るんだけどなぁ
頭が硬いんだろうか

ありがとう
620デフォルトの名無しさん:2013/06/18(火) 22:50:03.86
i = i + 2 は等号が成立しないから違和感ありまくり
621デフォルトの名無しさん:2013/06/18(火) 22:53:23.93
代入と等号の区別を脳内に導入すればいいですよ
622デフォルトの名無しさん:2013/06/18(火) 22:54:06.38
>>621
詳しく
623デフォルトの名無しさん:2013/06/18(火) 23:08:56.03
まー、徐々に言語仕様を理解していくしかないんじゃない?
624デフォルトの名無しさん:2013/06/19(水) 00:33:10.39
>>619

i = i+2
みたいな書き方よりも、
i += 2
みたいな書き方のほうが若干処理が早くなるらしいから、慣れといて損はないよ

同じふうに、
-=
*=
/=
もある
625デフォルトの名無しさん:2013/06/19(水) 00:45:11.79
CPythonのバイトコードでは違わないから同じ
626デフォルトの名無しさん:2013/06/19(水) 01:58:48.20
>>617
自分の記憶が正しければ、C言語がその代入演算子を使い始めた。
それが正しいかどうかはともかく、とりあえずPython固有な話じゃない。
乱暴に言うと、プログラミング言語の世界では珍しくない構文。
627デフォルトの名無しさん:2013/06/19(水) 06:28:18.00
>>620
わかる
宣言的じゃないんだよな
1つの式の中で順番を意識する必要があるから、
理解してても一瞬、んん?となる
628デフォルトの名無しさん:2013/06/19(水) 07:10:37.90
asciiコードに←があればそっちが採用されていたに違いない
629デフォルトの名無しさん:2013/06/19(水) 07:50:15.76
>>625
そうなのか、済まん無知だった
630デフォルトの名無しさん:2013/06/19(水) 09:10:00.27
馬鹿には無理
631デフォルトの名無しさん:2013/06/19(水) 10:17:17.34
Pythonにはインクリメントがないのはなぜなんだぜ?
632デフォルトの名無しさん:2013/06/19(水) 10:22:55.84
インクリマンコがないのはruby
pythonにはある
633デフォルトの名無しさん:2013/06/19(水) 10:28:46.03
>>157 以降の流れも参照のこと
634デフォルトの名無しさん:2013/06/19(水) 10:55:04.58
文だしキーワードにしちゃえばよかったのにね
635デフォルトの名無しさん:2013/06/19(水) 15:12:26.48
JavaScriptのsetTimeoutみたいに何秒後に実行させる関数って無いんですか?
Timerもsleepも読込みで止まってしまいます(使い方間違ってたらごめんなさい)
636デフォルトの名無しさん:2013/06/19(水) 16:37:36.36
エスパーでもない限り間違ってるかどうか分かんねー
637デフォルトの名無しさん:2013/06/19(水) 16:48:03.58
>>635
止まるってのが良くわからないな
ttp://ideone.com/KwDnzr
638デフォルトの名無しさん:2013/06/19(水) 16:53:51.59
こっちのがいいか
ttp://ideone.com/cze8IQ
639デフォルトの名無しさん:2013/06/19(水) 20:03:43.85
超初心者用であって池沼用ではないのだが
640デフォルトの名無しさん:2013/06/22(土) 12:04:33.60
python 初日ですが、is (object として同じ)の動き方がわからないです。

a=2
b=2
if (a is b):
  print("same")
これは、同じ整数値を指すポインタみたいなものなんだろうと理解したけど、
a=2
b=8
a*=4
if (a is b):
  print("same")
これでも、sameになるのは、なぜ?
pythonインタプリタが、一々結果を確かめてるのなら、次も same になりそうなのに。
s='bc'
t='abc'
s=t[0] + s
if (s is t):
  print("same")
else:
  print("diff as object")
641デフォルトの名無しさん:2013/06/22(土) 12:15:50.43
>>640
ストリングはリストだから
642デフォルトの名無しさん:2013/06/22(土) 12:19:05.40
>>640
id はオブジェクトへのポインタなり参照による比較であってる
小さい整数についてはキャッシュ済みでそれを使いまわしてる

>>> a = 1000
>>> b = 1000
>>> a is b
False
>>> a = 10
>>> b = 10
>>> a is b
True
643640:2013/06/22(土) 12:30:45.44
>小さい整数についてはキャッシュ済みでそれを使いまわしてる
ひえ〜 
これは、言語仕様として?
それとも、たまたまそういう実装なだけでしょうか?
644デフォルトの名無しさん:2013/06/22(土) 12:35:42.91
キャッシュしたら速いでしょ?真偽やNoneとかさ
そもそもオブジェクトを比較すると分かってるのに
整数に使おうとするのはなぜ?
645640:2013/06/22(土) 12:45:14.73
>整数に使おうとするのはなぜ?
いや、今日からpythonを始めたので、「オブジェクト」の中身が
よく分からなくて、== と is を、いろいろ試していました。

どうも、有り難うございました。
646デフォルトの名無しさん:2013/06/22(土) 13:08:55.11
>>645
たまたまそういう実装なんだと思う
http://docs.python.org/2/c-api/int.html#PyInt_FromLong
647デフォルトの名無しさん:2013/06/22(土) 13:13:00.35
結果が不定なのは仕様だよ
648デフォルトの名無しさん:2013/06/22(土) 13:39:37.23
オブジェクトでないならエラーにすればいいのに…
649デフォルトの名無しさん:2013/06/22(土) 13:43:15.52
Pythonでは全てオブジェクトだよ
650デフォルトの名無しさん:2013/06/22(土) 13:49:58.55
Javaのプリミティブ型とは違うぞ
651648:2013/06/22(土) 14:11:54.85
>>649-650
確かに言われればそうだな。

でも、結果が不定になるのはちょっとなぁ。

Numbers は、警告するとかじゃダメかな。
652デフォルトの名無しさん:2013/06/22(土) 14:13:09.04
警告ってなんだよw
653デフォルトの名無しさん:2013/06/22(土) 14:14:43.27
動的言語で何を言ってるんだ…
654デフォルトの名無しさん:2013/06/22(土) 14:20:57.62
不定でまずい状況ってどんな時だろう
655デフォルトの名無しさん:2013/06/22(土) 15:57:38.13
>>652-653
警告と言うか、オプションで例外にするかどうか決められるような感じ。

>>654
まあ、バグのケースしか考えられないけど、初心者がわけわからず悩むより、
例外でも発生してくれた方がうれしくない?
656デフォルトの名無しさん:2013/06/22(土) 16:03:52.00
その初心者はなんでググらないのか謎だし
その段階で最初からオプションを指定したり色々すごいな
657デフォルトの名無しさん:2013/06/22(土) 16:16:11.22
別にうれしくない
658デフォルトの名無しさん:2013/06/22(土) 16:27:23.04
下手にほかの言語のこと知ってるからこういう発想になるんじゃないの
659デフォルトの名無しさん:2013/06/22(土) 16:37:00.59
そんなオプションがあると知る機会があるなら、知った時点で用もなく数値にisは使わなくなるだろう。
デフォルトにしてしまえば、これまでに作られた不定であることを利用しているプログラムは動かなくなるだろう。

というところまでは想像して欲しいな。
思いつきでペラペラ喋るのではなく。
660デフォルトの名無しさん:2013/06/22(土) 16:51:04.90
不定であることを利用したプログラムが動かなくなるのは問題ないんじゃないだろうか
661デフォルトの名無しさん:2013/06/22(土) 16:55:10.75
言語仕様に則ったプログラムが動かなくなっても問題ないって言ってるのに等しいぞ。
ちょっとその神経は理解しがたい。
662デフォルトの名無しさん:2013/06/22(土) 16:55:47.53
>>660
なんで?
663デフォルトの名無しさん:2013/06/22(土) 16:58:48.80
不定というのは、>>642のようなキャッシュの使い回しのことで
それを利用するコードなんて書かないと思うよ
664デフォルトの名無しさん:2013/06/22(土) 16:59:38.97
そもそも挙動が不定なのだから。
665デフォルトの名無しさん:2013/06/22(土) 17:05:19.46
>>656
>その初心者はなんでググらないのか謎だし

いや、気づかないとググところにいかないでしょ。

>その段階で最初からオプションを指定したり色々すごいな

え゛、テストとかしない人なの?

>>657-658
まあ、そうかな。

>>659
> 数値にisは使わなくなるだろう。

そんなことが確実にできるなら、コーディング時のバグは半減するわけで…

> 不定であることを利用しているプログラムは動かなくなるだろう。

だからこそのオプション指定なわけなんだけどね。
666デフォルトの名無しさん:2013/06/22(土) 17:06:51.47
>>663
書かないと思うのは貴方の勝手だけと、書かれてないと保証するのは貴方じゃないよ
667デフォルトの名無しさん:2013/06/22(土) 17:07:37.90
>>665
isのこと知らない奴がisに関するオプション付けるの?
そのオプションを知ってるってことはisの挙動を知ってるってことじゃないの?
意味がよく分からない
668デフォルトの名無しさん:2013/06/22(土) 17:08:24.55
>>666
実際そんなコードあんの?
それが動かなくても自業自得としか言えない
669デフォルトの名無しさん:2013/06/22(土) 17:10:08.49
>>665
>そんなことが確実にできるなら、コーディング時のバグは半減するわけで…

どのみちテストするんだから気にするなよ
え、テストしない人なの?
670デフォルトの名無しさん:2013/06/22(土) 17:11:58.16
>>668
自業自得と談じるのは貴方の勝手だけど、言語仕様という契約を破ってクレームつけられる役目は貴方じゃないよ
他ならぬ開発者たち
671デフォルトの名無しさん:2013/06/22(土) 17:14:15.44
その値をキャッシュして使いまわすかどうかは環境によるからテストの問題じゃない
672デフォルトの名無しさん:2013/06/22(土) 17:19:35.69
例外にしろとかいうアホの発想に付き合う気はないけど、前バージョン維持してくれるなら、仕様変えるのは構わないよ
今の2と3だけで開発リソースいっぱいいっぱいだから、現実には有り得ないけど
673デフォルトの名無しさん:2013/06/22(土) 17:27:52.90
だから>>646が指摘してるように実装の問題であって言語仕様の問題じゃない。
言語で仕様が定義されてないというのが問題という意見もあるかもしれないが。
674デフォルトの名無しさん:2013/06/22(土) 17:28:15.90
俺は例外にしろとか言ってないが
例外にできない理由として、不定な挙動を利用してる
コードがあるとかいう主張を擁護できないだけ
675デフォルトの名無しさん:2013/06/22(土) 17:33:57.60
>>667
例えば、文法よく知ってるプログラマでも静的解析とか掛けるでしょ?
挙動を知ってるから常にちゃんと書けるなら誰も苦労しないよ…

>>669
だから、テストのときに気づきやすくなるでしょ。
テストしない人には理解できないかもしれないけど (w
676デフォルトの名無しさん:2013/06/22(土) 17:34:18.21
immutable 同士の is はぜんぶ True を返せっていう主張ならありかもしれないとか思った
677デフォルトの名無しさん:2013/06/22(土) 17:41:31.99
>>675
isと==を混同してる人でしょ?もう少し勉強しろとしか言えない
根本的な間違いを人のせいにすんな
678デフォルトの名無しさん:2013/06/22(土) 17:52:42.24
>>677
だから、知識があっても勘違いでバぐることもあるだろって話。

理解できないかなぁ…
679デフォルトの名無しさん:2013/06/22(土) 17:56:51.33
一般論としては分かるが、==とisの話でしょ?
挙動を理解してても勘違いでバグらせる例が思いつかない
680デフォルトの名無しさん:2013/06/22(土) 17:58:08.24
そりゃあ起こりうる間違いなんて無限に想定できるが
isはなあ…別にって感じ
681デフォルトの名無しさん:2013/06/22(土) 17:58:31.77
初心者がisなんぞ覚える必要はない
682デフォルトの名無しさん:2013/06/22(土) 18:25:29.18
In [1]: "a" * 100 is "a" * 100
Out[1]: False

In [2]: "a" * 10 is "a" * 10
Out[2]: True

こうなるのは知ってるんだけど正確な理由を忘れた
683682:2013/06/22(土) 18:29:53.25
ごめん上のレス見てなかった忘れてくれ
684デフォルトの名無しさん:2013/06/22(土) 18:45:02.11
>>679-680
うん、まあ頻度は高くないと思うし、is ,がオブジェクトの比較と言う意味からは
今の仕様の方が正しいんだろうけど、>>642 みたいな挙動をみると何とかな
らないものかと、ちょっと思っただけ。
685デフォルトの名無しさん:2013/06/22(土) 18:47:24.58
普段は言語そのものへの文句はフォーラムで言えとか突っぱねるくせに
珍しく相手してんね
暇なのかww?
686デフォルトの名無しさん:2013/06/22(土) 18:50:34.87
一部のオブジェクトのみFlyweightパターンを適用する行為は以後禁止となります
悪しからずご了承ください
687デフォルトの名無しさん:2013/06/22(土) 19:08:23.54
>>682
試してみたらメモリ使いすぎてスワップしたんだけど自分だけ?
$ python
>> "b"*10000000000 == "b"*10000000000
688デフォルトの名無しさん:2013/06/22(土) 19:08:26.54
>>685
わかってるなら質問しろよ(無茶振り)
689デフォルトの名無しさん:2013/06/22(土) 20:54:19.70
>>687
$ python
>>> "a" * 10 ** 10 == "a" * 10 ** 10

これ実行エラーが出て実行出来ないパターンと
実行出来ちゃって暴走するパターンがある
理由はわからんです
690デフォルトの名無しさん:2013/06/23(日) 13:55:35.61
a='a' * 10 ** 10 で10GBメモリ使ってワロタ
691デフォルトの名無しさん:2013/06/23(日) 22:22:36.18
俺には>>646で話は全部終わりに思えるんやが
いったい何の話をしてるんや・・
692デフォルトの名無しさん:2013/06/24(月) 01:36:04.17
L=[1, 2, 3, 4]において L{1:3}でスライシングすると [2, 3]となるけど、
それならL{1:2}でそうなるようにしときゃいいじゃないかといつも思う・・・
693デフォルトの名無しさん:2013/06/24(月) 01:43:24.94
[L[i] for i in range(1,3)] だから普通
694デフォルトの名無しさん:2013/06/24(月) 01:44:43.38
>>692
どこからどこまでを指定してるんであってどこからいくつではない
695デフォルトの名無しさん:2013/06/24(月) 01:51:45.93
>>693
そういうことだったのか!有り難う!
696デフォルトの名無しさん:2013/06/24(月) 01:56:52.44
実際の中身がそうなってるわけじゃないだろうけど
このような一貫性のためにそうなってるということは間違いない
697デフォルトの名無しさん:2013/06/24(月) 07:44:28.05
2系では
urllib.urlencode('あいうえお')
なのに、
3系では
urllib.perse.quote('あいうえお')
にしないとエラーが出ます。

今回少し検索したので3系での方法がわかったのですが、こういうのは何で勉強してれば身につくのでしょうか?
698デフォルトの名無しさん:2013/06/24(月) 09:56:59.27
リリースノート
699デフォルトの名無しさん:2013/06/24(月) 12:31:50.95
必要になったときに少し検索して身につけるんだよ
700デフォルトの名無しさん:2013/06/24(月) 12:40:49.67
変更点を網羅するのは無理だろうなあ
そもそも2のライブラリだって全部覚えてるわけじゃないし
701デフォルトの名無しさん:2013/06/24(月) 17:38:38.62
>>697
こんなんもあるが
http://diveintopython3-ja.rdy.jp/
702デフォルトの名無しさん:2013/06/26(水) 00:18:50.35
レンタルサーバーでつかえるvirtual pythonというのがあるようで
これをインストールして環境を整えることはうまくいきました。
ただ、これってパフォーマンスはすごく落ちるのでしょうか?
元のpythonとかわりませんか?
すれ違いだったら誘導をお願いします
703デフォルトの名無しさん:2013/06/26(水) 00:21:30.42
1行目から理解としては微妙な気がするな
パフォーマンスは変わらん
704デフォルトの名無しさん:2013/06/26(水) 00:34:42.75
ありがとうございます
なんだかよくわかってはいません
普通にレンタル鯖だと自分が使いたいライブラリとかがうまく入らないので
virtual pythonを入れればいいみたいに思っているのですが違うのですかね?
パフォーマンスは変わらないなら利用してみます
705デフォルトの名無しさん:2013/06/26(水) 01:26:38.31
あ、あとすみません
共用のレンタルサーバでパイソンを使おうとしているものです
pythonのスクリプトからweb上でpostgreなどのデータベースにアクセスする時ですが、
コネクション作成の時にデータベースのidとパスを入れますね
これはスクリプトに平文で書くのはセキュリティ上よろしくないと思うのですが、何かうまい方法はありますか?
706デフォルトの名無しさん:2013/06/26(水) 08:02:28.88
postgreなどのデータベースのトラヒックが暗号化されていない限り
その辺気にしても意味がない
707デフォルトの名無しさん:2013/06/26(水) 08:26:29.75
>>705
最終的にはスクリプトファイルのセキュリティに気を配るしかない。

トラフィックとか言ってる奴は、当面無視でいい。
708デフォルトの名無しさん:2013/06/26(水) 20:47:45.62
>>707
ありがとうございます
セキュリティとして自分が考えられるのは、.py ファイルのパーミッションを適当に705などに設定する
パスワードの書いてあるファイルは別途用意して、DocumentRootより上に置いておいてそちらへの参照とする
くらいなのですが、他に有効な手段はありますか?
暗号化とかしたらデータベースが読み出せないから無駄なんでしょうか
709デフォルトの名無しさん:2013/06/26(水) 21:20:21.38
攻撃者として誰を想定してんの
710デフォルトの名無しさん:2013/06/26(水) 22:29:19.61
705だったら誰でも見れるぞ
711デフォルトの名無しさん:2013/06/26(水) 22:41:43.45
>>709
同鯖の利用者、外部からの攻撃です
さすがに鯖管は大丈夫だと思うので…
705まずいですか?
712デフォルトの名無しさん:2013/06/27(木) 07:21:19.47
実行プロセスグループの所有にする
713デフォルトの名無しさん:2013/06/28(金) 14:58:32.56
超初心者的な質問ですみません。
pythonのモジュールってどうやって入手したらいいんでしょうか?
↓こんなエラーが出てくるのですが、subprocessって標準モジュールじゃないんですか?

from subprocess import Popen, PIPE
ImportError: No module named subprocess

ググっても余計な情報しか出てこないし、困り果てています。
よろしくお願いします。
714デフォルトの名無しさん:2013/06/28(金) 17:10:22.77
普通は標準モジュールですけど、あなたの環境は普通じゃないのかもしれない
対話コンソール起動すると環境とかコンパイル情報とか標準されるから貼れ
あとsys.pathを貼れ
715デフォルトの名無しさん:2013/06/28(金) 22:19:12.04
超初心者なら「普通」の環境ではじめなきゃね!
716デフォルトの名無しさん:2013/06/29(土) 13:08:53.03
質問です
pip や distribute などのモジュールをソースからインストールする際、setup.py を実行すると思いますが
これは/bin/python のあるディレクトリにコピーして実行するべきですか?
それともどこで実行しても大丈夫ですか
717デフォルトの名無しさん:2013/06/29(土) 13:12:36.92
どこで実行しても大丈夫だけど
環境に複数のPythonが入ってる場合、「どれで」実行するかが大事になってくる
1つしか入ってないなら気にしなくていい
718デフォルトの名無しさん:2013/06/29(土) 13:12:37.58
どこで実行しても良い。問題なのは実行される側じゃなくて実行する側だから
719デフォルトの名無しさん:2013/06/29(土) 13:13:27.80
>>717
ありがとうございます
python setup.py でなく/aaa/bbb/bin/python setup.py みたいに
フルパスで指定すれば大丈夫ですか?
720デフォルトの名無しさん:2013/06/29(土) 13:14:24.35
なにいってんだこいつ
721デフォルトの名無しさん:2013/06/29(土) 13:38:54.74
すみません
なんか見当違いのことを言ってしまったかもしれません
722デフォルトの名無しさん:2013/06/29(土) 15:07:54.69
マジレスしとくと
python26で実行してpython27のモジュールがimportされた状態で
setup.pyが正常に終わるとは思えないしもし成功しても使いたくない
723デフォルトの名無しさん:2013/06/29(土) 15:54:47.28
ただの感想をマジレスと言い張る傲慢
724デフォルトの名無しさん:2013/06/30(日) 13:51:29.96
distributeはディストリのパッケージにあればそれを使うほうが良い
725デフォルトの名無しさん:2013/06/30(日) 16:19:37.27
TkinterのCanvasにgifイメージを貼ったんですが、deleteで削除できません。
deleteじゃ駄目なんでしょうか?Pythonのバージョンは2.7です。
宜しくお願いいたします。
726725:2013/06/30(日) 17:27:55.64
すみません。自己解決しました。
727デフォルトの名無しさん:2013/06/30(日) 17:32:07.61
よくやった
728デフォルトの名無しさん:2013/06/30(日) 17:47:51.19
729デフォルトの名無しさん:2013/07/01(月) 04:56:44.29
っす
730デフォルトの名無しさん:2013/07/03(水) 03:23:02.68
すみません、モジョーレが、オブジェクトに、起動できません?
すみません、inport sysとやったのですが、オブジェクトが、本の通りに、メソッドできません
当方、初心者ですm(._.)m
731デフォルトの名無しさん:2013/07/03(水) 12:06:52.67
無理に喋らなくていいからエラーの内容をコピーしてここに貼ってくれ
732デフォルトの名無しさん:2013/07/03(水) 13:35:27.29
素直に母国語のコミュニティで聞けばいいと思うんだ。
そこでシカトされてここに来たのかもしれんけど。
733デフォルトの名無しさん:2013/07/03(水) 13:37:13.73
自分もそう思うけどだったら import のつづりを間違えないような気もする

>>730
inport sys ではなく import sys
734デフォルトの名無しさん:2013/07/03(水) 15:48:21.70
[a: 1 (b: (2.0, 3.0))]
某APIの返り値が上記の形なのですがこれから1を取り出す方法を教えてください
735デフォルトの名無しさん:2013/07/03(水) 17:39:59.40
そんな形は無いという回答をご所望か
736デフォルトの名無しさん:2013/07/03(水) 18:17:40.81
reprの結果でもJSONでもなさそうだけど何これ
737デフォルトの名無しさん:2013/07/03(水) 18:39:08.27
自作APIだろ察してやれよ
738デフォルトの名無しさん:2013/07/03(水) 19:15:39.28
お前ら型拡張もやったことないのか?
739デフォルトの名無しさん:2013/07/03(水) 19:22:16.78
ふ〜ん
それで、やったことある人の回答は?
740デフォルトの名無しさん:2013/07/03(水) 20:48:28.58
#coding: utf-8

とちゃんと書いてるのに、日本語を打ち込むと「?????」ってなるんですが、なんで??
741デフォルトの名無しさん:2013/07/03(水) 21:04:52.85
エディタで保存するときにUTF-8になってないんじゃない?
742デフォルトの名無しさん:2013/07/03(水) 22:39:44.03
エディタを教えろ
743デフォルトの名無しさん:2013/07/04(木) 12:16:33.84
エディタはviですがな
744デフォルトの名無しさん:2013/07/04(木) 12:57:50.49
viという名のvimですね
わかります。
745デフォルトの名無しさん:2013/07/04(木) 13:08:23.56
xyzzy
746デフォルトの名無しさん:2013/07/05(金) 05:19:02.14
シナトラと同じぐらいflaskを解説して下さい。
747デフォルトの名無しさん:2013/07/05(金) 22:56:16.21
Python3.3のthreding.Threadで質問です。
http://pastebin.com/9qfvZDpV
のようなプログラムでtl[0]は処理完了、tl[1]は処理中のような状態で
tl[0].is_alive()、tl[1].is_alive()でTrue, Trueを得るのはどう書けばいいですか?

あと、pythonは上から処理していくと書いてあったんですがstartしてからjoinしてますが、joinする前に処理が完了してしまったりしないんですか?
748デフォルトの名無しさん:2013/07/05(金) 23:28:03.45
>tl[0]は処理完了、tl[1]は処理中
の状態なら tl[0].is_alive() は天地をひっくり返してもTrueにはなりえないだろ
どうしろと
749デフォルトの名無しさん:2013/07/05(金) 23:31:36.66
>joinする前に処理が完了してしまったりしないんですか?
短い処理なら普通に完了しますよ。何かご不満でも?
750デフォルトの名無しさん:2013/07/05(金) 23:39:44.51
完了したスレッドにjoinしてもブロックされないだけだから気にしなくていい
751デフォルトの名無しさん:2013/07/05(金) 23:41:30.57
エスパーすると途中経過が表示したいんじゃないか。
752747:2013/07/05(金) 23:53:50.43
join()の動作を勘違いしてました。joinを実行したスレッドを呼び出したスレッドをブロックするんですね。

>>749
>短い処理なら普通に完了しますよ。何かご不満でも?
ありがとうございます。当方には不満、苦情等は一切ありません。
お気に触られたので謝罪いたします。申し訳ありませんでした。
753デフォルトの名無しさん:2013/07/06(土) 00:02:19.10
>>750
試したらほんとにブロックされないだけでした。
例外エラー出るのかなって思ってたらそれすらもなかったです。

>>751
そうです。でも、joinの勘違いからきてたので忘れてくれてかまわないです。
ありがとうございました。
754デフォルトの名無しさん:2013/07/06(土) 00:04:16.90
Python使ってる連中には変なのが多いから気にしなくていい
755デフォルトの名無しさん:2013/07/06(土) 19:02:04.09
756デフォルトの名無しさん:2013/07/08(月) 01:56:30.83
コンパイルして、カーソルが固まったままなら、無限ループしてると考えてOK?
757デフォルトの名無しさん:2013/07/08(月) 01:57:52.75
コンパイル?
758デフォルトの名無しさん:2013/07/08(月) 03:59:04.52
>>755
キモすぎワロタ
759デフォルトの名無しさん:2013/07/08(月) 20:59:39.81
python3です。
b"\x31"とb"1"は同じ値ですか?呼び方はバイト文字列であってますか?
760デフォルトの名無しさん:2013/07/08(月) 21:16:44.65
>>759
WindowsXPのPython3では同じですな。
他のOSではどうか知らない。

呼び方は、バイトオブジェクトまたはバイトリテラルかなあ
マニュアルを読む限りではね。
文字を表すとは限らないと思うよ。
761デフォルトの名無しさん:2013/07/08(月) 22:13:07.10
バイト列でもいいと思う
762デフォルトの名無しさん:2013/07/08(月) 22:35:24.39
バイトオブジェクトって癖があるよなあ。
バイトから整数や16進文字列へ変換する
直接的なメソッドや関数がない割に、
forや添字でバイトオブジェクトから一個ずつ
データを取り出す時は、整数に変換されて出てくる。
763デフォルトの名無しさん:2013/07/08(月) 22:59:58.41
binasciiとかなかったか
764デフォルトの名無しさん:2013/07/09(火) 07:41:37.91
バイト君とかアルバイトとかでいいじゃん
765デフォルトの名無しさん:2013/07/10(水) 07:49:09.46
あるひ
ソースの中
バイト君に
出会った
766デフォルトの名無しさん:2013/07/10(水) 16:39:14.48
昔N88BASICでゲーム書いてたんですが
パイソン勉強したら幸せになれますか?
767デフォルトの名無しさん:2013/07/10(水) 17:26:22.31
何事も知らないより知ってるほうが幸せになれると思うよ。
768デフォルトの名無しさん:2013/07/10(水) 23:15:16.72
Python 2.7.3を使ってるんだけど、raise使った時の挙動がおかしいです。
769デフォルトの名無しさん:2013/07/10(水) 23:26:51.94
頭が?
770デフォルトの名無しさん:2013/07/11(木) 05:31:34.09
例外なんて使うな。
あれは処理の流れを見えなくするからバグの元。
gotoの方が行き先を明示しているだけマシ。
Pythonにgotoがないのが惜しまれる。
771デフォルトの名無しさん:2013/07/11(木) 07:32:16.36
いやエラーを投げる方もキャッチするほうも明示するでしょ?馬鹿?
772デフォルトの名無しさん:2013/07/11(木) 08:49:41.83
>>771
お前はraiseを見ただけで
ソースのどこに飛んでいくかわかるのか?
それは凄いな。
773デフォルトの名無しさん:2013/07/11(木) 09:27:50.40
関数の中でraiseが使われていれば
必ずそれはその関数を呼んだ方に飛んでいく
呼ばれた方に飛んでいくことは決して無い
774デフォルトの名無しさん:2013/07/11(木) 10:03:13.76
>>772
馬鹿には無理
775デフォルトの名無しさん:2013/07/11(木) 13:06:22.41
>>772
化石
776デフォルトの名無しさん:2013/07/11(木) 13:23:31.08
まあ例外って投げる方より拾った側でどうするか視点の機構だし
失敗してさてどうするか視点のgotoとは役割が違う

やりたければwhile break使って死ぬまでエラーコード返してれば?
とめないよ
777デフォルトの名無しさん:2013/07/11(木) 13:30:44.96
七七七
778デフォルトの名無しさん:2013/07/11(木) 19:46:40.13
特定の関数Aだけから下請け的に呼ばれる関数Bがある時、
Bを関数Aの中に定義すると見通しが良くなると思うんですが、
このスタイルは一般的ですかね?それとも何かまずい点がありますかね

というのは、趣味でツールを書いていて、規模が大きくなってくると
トップレベルに関数がずらずらと並んでどれがどこから呼ばれているか
わからなくなってくるので…
779デフォルトの名無しさん:2013/07/11(木) 19:51:46.75
一般的ですよ
コンパレータとかコールバックとかlambdaじゃ書きにくいし、外のスコープにおいても仕方ないからね
780デフォルトの名無しさん:2013/07/11(木) 20:19:58.21
>>779
ありがとっす
これで安心して関数をまとめられます
781デフォルトの名無しさん:2013/07/11(木) 22:27:04.70
>>767
そうかなぁ、2ちゃんなんて知らない奴の方が幸せそうだぞ...
782デフォルトの名無しさん:2013/07/11(木) 23:41:37.00
リファレンスの見方で質問です。
http://docs.python.jp/3.3/library/urllib.request.html
では"エラーが発生した場合 URLError を送出します。"
とありますが、実際にあげられるのはurllib.error.HTTPErrorでした。
http://docs.python.jp/3.3/library/urllib.error.html?highlight=urlerror#urllib.error.URLError

どうリファレンスを見ていったら、URLErrorじゃなくてHTTPErrorがあげられるとわかりますか?
結局ぐぐってから気づいたんですが、先にtype()でオブジェクトの型を判別してから調べるものだったりするんでしょうか?
783デフォルトの名無しさん:2013/07/12(金) 01:46:12.73
この場合分からないでしょうね
書いてませんから
784デフォルトの名無しさん:2013/07/12(金) 01:54:27.90
>>782
リファレンス(の原文)の書き方に問題があるというのがまずあるとは思うけど、

URLError は urllib.error.URLError のことで、
urllib.error.HTTPError は URLError のサブクラス のサブクラスとなっている、ってとこかな。
ということで混乱の原因はプアなドキュメントにあるんじゃないかな。
785デフォルトの名無しさん:2013/07/12(金) 01:55:34.56
「のサブクラス」って繰り返してるけどそのへんは生温かい目でヨロシコ。
786デフォルトの名無しさん:2013/07/12(金) 08:37:08.30
>URLError を送出します

間違ってないしプアでもない
ぽりもふぃずむを理解していればこれで正しいことが判る
787デフォルトの名無しさん:2013/07/12(金) 08:38:24.56
「ぽりもふぃずむ」ってひらがなになってるけどそのへんは生温かい目でヨロシコ。
788デフォルトの名無しさん:2013/07/12(金) 08:40:27.83
>実際にあげられるのはurllib.error.HTTPErrorでした。

そのときあがったのがタマタマHTTPErrorだっただけで
HTTPError以外のURLErrorが送出される場合もあるって意味ね
だから exception を受けるときに HTTPError で catch したらだめ
あくまで URLError で catch する必要がある
789デフォルトの名無しさん:2013/07/12(金) 19:58:31.51
じゃあHTTPErrorだけ特別扱いしたい時はURLErrorでcatchしてからHTTPErrorであるかどうか確かめてやれって事かな
なんか二度手間だけど
790デフォルトの名無しさん:2013/07/12(金) 21:17:16.47
アスペは字義どおりにしか解釈できないってこと
791デフォルトの名無しさん:2013/07/12(金) 23:53:36.93
HTTPErrorだけ特別扱いしたい時は
URLErrorでcatchして
HTTPErrorでもcatch汁
792782:2013/07/13(土) 01:08:20.68
色々教えてくれてありがとう。やっぱ、リファレンス読むのって自分には難しいです。

後、実装方法書いてくれた人もありがとう。
自分の場合は、HTTPErrorをcatchした場合、それ以外のExceptionをcatchした場合みたいな感じで実装しました。
793デフォルトの名無しさん:2013/07/13(土) 02:44:29.47
>> type(li)
<type 'list'>
>> print(li)
[Something: 1_1, Something: 1_2, Something: 1_3]
上記の先頭に
Name: u'名前'
を追加したいんですがどうすればいいでしょうか
そもそもSomethingとか1_1って文字列なんでしょうか
794デフォルトの名無しさん:2013/07/13(土) 05:04:00.20
urllib パッケージを使ってインターネット上のリソースを取得するには
http://docs.python.jp/3.3/howto/urllib2.html

>ノート except HTTPError が 必ず 最初に来る必要があります、そうしないと except URLError も HTTPError を捕捉してしまいます。
795デフォルトの名無しさん:2013/07/13(土) 05:33:13.08
>私は二つ目のアプローチを好みます。

なんでだろ
796デフォルトの名無しさん:2013/07/13(土) 08:44:03.82
このなかにうそつきがいます。だれでしょう(複数回答可)

http://docs.python.org/2/howto/urllib2.html#handling-exceptions
> though as usual with Python APIs, built-in exceptions such as ValueError,
> TypeError etc. may also be raised).

http://docs.python.jp/2/howto/urllib2.html#id9
> urlopen はレスポンスを処理できなかった場合、 URLError を送出します
> (ふつうの Python API では、組み込み例外の ValueError, TypeError などが送出されますが)。

http://docs.python.org/3.0/library/urllib.request.html
> Raises URLError on errors.
797デフォルトの名無しさん:2013/07/13(土) 09:26:02.99
3番目は嘘つき
2番目は誤訳
1番目は原本なので嘘とかそういう問題じゃない
798デフォルトの名無しさん:2013/07/13(土) 09:28:30.42
少なくとも urlopen は URLError 以外も吐くから
2 は嘘つきと言っても良いくらいの罪
3 は論外
799デフォルトの名無しさん:2013/07/13(土) 09:29:28.76
補足

>少なくとも urlopen は URLError 以外も吐くから

HTTPError のことではないよ
800デフォルトの名無しさん:2013/07/13(土) 12:42:50.48
>>796
一応1には次の行に
"HTTPError is the subclass of URLError raised in the specific case of HTTP URLs."
ってあった。python3の方にも同じこと書いてあった。
urllib.requestみるにhttpでエラーでたときだけHTTPErrorあげてるっぽいですね。
レスポンスコード帰ってくるような場合かな。

例外を拾うことってcatchするでいいんですか?exceptするはおかしいんですか?
try, exceptってあるからずっとexceptって言ってます。
801デフォルトの名無しさん:2013/07/13(土) 13:56:23.32
何を catch するかを予め except するんだ
802デフォルトの名無しさん:2013/07/13(土) 14:18:51.22
>>800
普通は例外を捕捉(catch)するとかいう
except じゃたぶん通じないだろう
803デフォルトの名無しさん:2013/07/13(土) 16:04:22.74
みんなのパイチンくんとデカチンくん
804デフォルトの名無しさん:2013/07/13(土) 20:47:19.24
input関数に対し、キーボードからYかyを
入力したことを判定したいです。
しかし以下を試すと、Enter空打ちでもTrueになります。
これはなぜでしょうか。

>>> yn = input()
(ここでEnter空打ち)
>>> yn in 'Yy'
True
805デフォルトの名無しさん:2013/07/13(土) 20:50:06.32
その変数ynがどんな値を持ってるか見ればわかる話じゃないの
806デフォルトの名無しさん:2013/07/13(土) 21:01:26.96
そもそも逆じゃないか?
yn in 'Yy' では無く 'Yy' in yn
807デフォルトの名無しさん:2013/07/13(土) 21:04:04.34
え?
808デフォルトの名無しさん:2013/07/13(土) 21:06:13.51
>>> '' in 'Yy'

これで答えは出ると思いますが
809デフォルトの名無しさん:2013/07/13(土) 21:14:23.48
>>804
http://docs.python.jp/3/reference/expressions.html#not-in
> 空文字列は、他の任意の文字列の部分文字列とみなされます。
> 従って "" in "abc" は True を返すことになります。

正しい使い方は>>806
810デフォルトの名無しさん:2013/07/13(土) 21:15:55.40
いや、ちょっとまて
それもおかしいぞ
811806:2013/07/13(土) 21:17:20.88
ああ、すまん
Yかyだけに引っ掛けたかったのかな
Yが入ってりゃYでもyesでもいいのかと思ったわ
812デフォルトの名無しさん:2013/07/13(土) 21:27:02.89
>>809
これは勉強不足でした。
タイプ量を削減して楽しようと思ったのですが、仕方有りませんね。
普通に if yn == 'Y' or yn == 'y' とすることにします。
813デフォルトの名無しさん:2013/07/13(土) 21:28:14.58
yn.lower() == 'y' でもいいお
814デフォルトの名無しさん:2013/07/13(土) 21:31:38.70
import androidhelper
droid = androidhelper.Android()
yn = droid.dialogGetInput()
y = [x in yn for x in ['y','Y']]
droid.makeToast(str(True in y))
815デフォルトの名無しさん:2013/07/13(土) 21:32:19.90
二つならどうでもいいけど
>>> yn in list('Yy')
False

>>814はキチガイだからスルー
816デフォルトの名無しさん:2013/07/14(日) 20:38:10.70
PTVSってVisual Studioの無料版では使えないの?
817デフォルトの名無しさん:2013/07/14(日) 21:13:39.16
うん
818デフォルトの名無しさん:2013/07/14(日) 21:17:40.40
ドリームスパークで有料版使えるから
819デフォルトの名無しさん:2013/07/14(日) 21:27:07.24
VS Shellとなら使える
820デフォルトの名無しさん:2013/07/14(日) 21:32:26.18
去年のpyconでそんな話してたよ
821デフォルトの名無しさん:2013/07/15(月) 13:57:57.90
mandam
822デフォルトの名無しさん:2013/07/15(月) 19:02:26.77
>>819
ありがd

VS Shellってintegratedの方だけで大丈夫だよな?
823デフォルトの名無しさん:2013/07/15(月) 23:48:23.44
質問です。

>>> { sum([sum(LofL)]) for LofL in [[.25, .75, .1], [-1, 0], [4, 4, 4, 4]]}
{16, 1.1, -1}

この16, 1.1., -1も合計したいんですが、どうすればいいのか教えて下さい。
sum()を入れ子にすれば合計されると思ったのですが合計されません。
824823:2013/07/15(月) 23:55:59.53
すみません、自己解決しました・・・入れ子は正解でしたね・・・
825自治スレでム板ID導入議論中:2013/07/17(水) 19:57:38.24
socketモジュールのbindについて質問です。
例えばですが、
host="localhost"
port=80
と設定していたとして、
bind((host, port))と、2重に括弧を付けるのは何故なのでしょうか?
実行時には必要な物だと思って書いているので問題は無いのですが、
気になるのですが
826デフォルトの名無しさん:2013/07/17(水) 20:01:51.81
bind(host, port) だと bind() に host と port の二つの引数を渡すことになる
bind((host, port)) だと二要素のタプルをひとつ bind() に渡してる
827デフォルトの名無しさん:2013/07/17(水) 20:02:04.87
>>> host="localhost"
>>> port=80
>>> t = (host, port)
>>> t
('localhost', 80)
>>> type(t)
<class 'tuple'>
>>>
828デフォルトの名無しさん:2013/07/17(水) 20:01:21.22
tuple
829デフォルトの名無しさん:2013/07/17(水) 20:06:34.15
17.2. socket ― 低レベルネットワークインターフェース ― Python 2.7ja1 documentation
http://docs.python.jp/2/library/socket.html
830デフォルトの名無しさん:2013/07/17(水) 20:09:39.27
ただ良く分からんのが、そもそもなぜでタプルを要求すんのかということ
別にタプルでもいいけどさ、なんか積極的な理由があってそうしてるのか?
831デフォルトの名無しさん:2013/07/17(水) 20:11:57.95
関数の戻り値をそのまま引数にできるように

あてずっぽうですのでほんきにしないように
832825:2013/07/17(水) 20:15:37.25
ああ、そういうことなんですか。
アドレスをタプルにして1つとして渡してるんですか。
ありがとうございます。
833デフォルトの名無しさん:2013/07/17(水) 20:21:42.04
分けるのはいつでもできるからだな
834デフォルトの名無しさん:2013/07/17(水) 20:32:19.42
>>830
bind() に渡すアドレスはアドレスファミリにより中身が異なる
例えば TCP/IP ならアドレスはホストとポートから成るけど
UNIX ドメインソケットならアドレスはファイル名だけ
だったらタプルでくるんだほうがいいだろう
835デフォルトの名無しさん:2013/07/18(木) 12:46:55.30
なんかこのスレ読んでると
まだ実用レベルに達して無い問題のある言語っぽく思えて来るんだが・・・
836デフォルトの名無しさん:2013/07/18(木) 12:50:53.81
どのへんが?

だれからも苦情が出ないほど既に実用領域に達しているWinows8と比べての話?
837デフォルトの名無しさん:2013/07/18(木) 19:03:43.24
>>835
文句は使ってから言え
物事を表面からしか見ない自分を恥じろ
838デフォルトの名無しさん:2013/07/18(木) 19:07:36.57
ユーザーは一般的なコミュニケーションを取れるレベルではないです
当たってます
839デフォルトの名無しさん:2013/07/18(木) 19:36:47.63
>>835
実用レベルってどれくらいのレベル?
金融システムのメインに使うとかスパコンで遺伝子解析に使うとか?
840デフォルトの名無しさん:2013/07/18(木) 19:40:17.68
COBOL「呼んだか?」
841デフォルトの名無しさん:2013/07/18(木) 20:23:28.99
Dropboxはどうやってユーザ数175Mにスケールできたか?–初期の技術者が経験を語る | TechCrunch Japan
http://jp.techcrunch.com/2013/07/12/20130711how-did-dropbox-scale-to-175m-users-a-former-engineer-details-the-early-days/
>初期の取り組みから得られたもう一つの教訓は、言語としてPythonを選んで良かったなぁ、ということ。
842デフォルトの名無しさん:2013/07/18(木) 21:24:01.11
おまいらつられすぎ。
843デフォルトの名無しさん:2013/07/18(木) 21:27:32.75
はい、釣り宣言いただきました
844デフォルトの名無しさん:2013/07/20(土) 20:06:10.55
すみません、質問です。
乱数で選択肢を選ぶ以下のようなコードで、
出力が['D', 'E', 'F']のように一文字ずつになってしまいます。

>>> options = ["ABC","DEF","GHI"]
>>> [x for x in options[randint(0,2)]]
['D', 'E', 'F']

どうやったら["DEF"]という出力にできますか?

ちなみに
def choices(): return [x for x in options[randint(0,2)]]
の形で使おうと思っています。マジレスお願いします。
845デフォルトの名無しさん:2013/07/20(土) 20:08:57.89
list(options[randint(0,2)])

気づけば単純
846844:2013/07/20(土) 20:10:05.20
すみません、投稿して10秒で解決しました。x要らないですね・・・。
847デフォルトの名無しさん:2013/07/20(土) 20:10:07.43
[options[randint(0,2)],]

いやこうだな
848844:2013/07/20(土) 20:11:49.20
>>845
それに気付きませんでした・・・ありがとうございました。
849デフォルトの名無しさん:2013/07/20(土) 22:50:22.65
質問です。
reloadというのはどうやってやるのでしょうか?

/matrixというフォルダの直下に

### dictutil.py###
def dict2list(dct, keylist): return [ dct[keylist[i]] for i in range(len(dct)) ]
def list2dict(L, keylist): return { keylist[i]:L[i] for i in range(len(L)) }
def listrange2dict(L): return { i:L[i] for i in range(len(L)) }

・・・というファイルを置いています。
そして、以下のように打ったのですが、どうも見つけられていないようです:

>>> from dictutil import *
>>> reload(dictutil)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'dictutil' is not defined
>>> listrange2dict(L)
>>> dictutil.listrange2dict(L)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'dictutil' is not defined

どうか教えて下さい。お願いします。
850デフォルトの名無しさん:2013/07/20(土) 23:04:10.41
from dictutil ... しても dictutil って名前は定義されない
import dictutil して reload(dictutil) なら OK
851849:2013/07/21(日) 00:59:24.70
>>850
出来ました!

>>> import dictutil
>>> reload(dictutil)
<module 'dictutil' from 'dictutil.py'>
>>> dictutil.listrange2dict(L)
{0: 'A', 1: 'B', 2: 'C'}

この場合はimport dictutilなんですね。覚えておきます。
ありがとうございました!
852デフォルトの名無しさん:2013/07/23(火) 20:22:23.17
ひとつ上のディレクトリにあるファイルを (カレントディレクトリに依存せずに)
インポートしたいのですが、これもっと簡単にかけませんかね?

dirpath = os.path.dirname(os.path.abspath(__file__))
parpath = os.path.join(dirpath, os.pardir)
sys.path.append(parpath)
import hoge
853デフォルトの名無しさん:2013/07/23(火) 21:10:02.63
>>852
import sys,os
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + os.pardir)
import hoge
854デフォルトの名無しさん:2013/07/23(火) 21:27:29.09
os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))
855デフォルトの名無しさん:2013/07/24(水) 22:24:37.14
>>853-854
レスありがとうございます
__file__ のパスを基に os.path でやるしかないですかね?
856デフォルトの名無しさん:2013/07/24(水) 22:36:49.20
from .. import
857デフォルトの名無しさん:2013/07/24(水) 22:37:36.15
あ、モジュールになってれば、だけど
858デフォルトの名無しさん:2013/07/25(木) 22:14:44.50
>>856-857
モジュールになってないんですよねー……
具体的にいうと、エディタで使う小さなスクリプトのテストを一カ所にまとめたいんです

scripts/*.py
scripts/tests/*_test.py

というような感じで
859デフォルトの名無しさん:2013/07/25(木) 22:20:43.37
絶対パスでsys.path.appendするとか
>>853-854を書いたpyファイルをフォルダにコピペしてインポートするとか
860デフォルトの名無しさん:2013/07/25(木) 22:21:15.46
であれば諦めて正攻法でやってね
861デフォルトの名無しさん:2013/07/26(金) 01:24:38.03
何のエディタだか知らないけど、site.pyとか付属してないのか?
付いてるならその中に書けよ
862デフォルトの名無しさん:2013/07/26(金) 01:34:54.17 ID:PBvnv3i6!
おまいらなぜglob使わないの?
import glob
files = glob.glob("../*.py")
863デフォルトの名無しさん:2013/07/26(金) 01:36:18.89
それで?その先はどうするの
質問者が何をやろうとしてるか理解してる?
864デフォルトの名無しさん:2013/07/26(金) 01:43:06.94
>>858
execfile('../*.py')
865デフォルトの名無しさん:2013/07/26(金) 01:46:56.64
>>864
お前もう黙れ
866デフォルトの名無しさん:2013/07/26(金) 22:41:23.97
外に出してインポートするっていうのはいいですね。そうすることにします
長々とご迷惑をおかけしました

>>861
Emacs の shell-command-on-region で呼び出すスクリプト (など) です
選択範囲の文字列をスクリプトに渡して、出力された文字列で置き換えます

>>862
すみません、ワイルドカード使ったのが紛らわしかった
hoge.py と tests/hoge_test.py、 fuga.py と tests/fuga_test.py などが一対一で対応していて
tests/hoge_test.py から hoge.py にアクセスしたいという話です
867デフォルトの名無しさん:2013/07/27(土) 16:38:57.03
module------------class.py
     |--------method.py
     |--------__init__.py
     |--------test_dir----------test_myclass.py

みたいな感じで、class.pyで使うメソッド群をmethod.pyにまとめるのってやり方としておかしかったり、普通はこうする的な方法ありますか?
class.py内で定義するものですか?
868デフォルトの名無しさん:2013/07/27(土) 19:24:18.63
一つ言えるのは
標準モジュールはそんな分割してない
869デフォルトの名無しさん:2013/07/28(日) 14:00:39.84
Pythonで変数や関数に日本語が使えたら
コードがそのまま仕様書になって
これがホントのスクリプト(脚本)なんちゃってと思って
書いてみたら動いてびっくりした。
これって昔からできたことなの?マジ嬉しいのだが。

def 初物(数量):
  初物価格 = 130
  return 初物価格 * 数量
print(初物(100))
870デフォルトの名無しさん:2013/07/28(日) 14:24:36.98
871デフォルトの名無しさん:2013/07/28(日) 15:09:54.66
ascii文化圏の人にとっては昔からそうだったんだね
872デフォルトの名無しさん:2013/07/28(日) 17:45:40.42
● in ▲
●を▲のおのおのにして

みたいなところまで行くと泣く……
873デフォルトの名無しさん:2013/07/28(日) 17:53:40.11
ぴゆう太郎
874デフォルトの名無しさん:2013/07/28(日) 19:57:33.43
>>870
ありがとっす。
これ日本のPythonユーザーで知らない人多いんじゃないのかな。
これだけでもPython3にする価値ありだよね。
パっと見た目でわかりやすいからコメントを減らせるし
他人にコードを引き継ぎやすい。

オブジェクト指向とも相性が良いと思う。
オブジェクト.メソッド
オブジェクト・属性
っていう書き方は、名前付けが適切ならばそのまんま日本語での
設計書になる。素晴らしい。
875デフォルトの名無しさん:2013/07/28(日) 20:08:05.28
>>874
> パっと見た目でわかりやすいからコメントを減らせるし
> 他人にコードを引き継ぎやすい。

VBA や Visual C++ だと、大分前から使えるけど、俺もそう思っていた時もあったなぁ...
876デフォルトの名無しさん:2013/07/28(日) 20:08:30.71
>他人にコードを引き継ぎやすい。

こんなコード引き継ぎ相談されたら断るに限る。
877870:2013/07/28(日) 20:11:13.20
ジャップ
878デフォルトの名無しさん:2013/07/28(日) 20:15:55.53
日本で開発してるRubyですらこんなのは居ない
879デフォルトの名無しさん:2013/07/28(日) 20:23:15.08
日本のWeb開発第一党言語であるPHPでも日本語識別子は使えるけど、
上のほうからド底辺まで見ても使用してる様子はない。
つまりそういうこった。
880デフォルトの名無しさん:2013/07/28(日) 21:27:06.30
いちいち日本語と半角英数変換切り替えるの面倒くさそう。
881デフォルトの名無しさん:2013/07/28(日) 22:07:46.07
ひまわり、だっけか。あんなの
882デフォルトの名無しさん:2013/07/28(日) 22:57:03.35
昔Macで構文が完全に日本語表記のスクリプト言語あったけど、
見た途端ゾッとしたわ。
入力にかかるタイプ数が激増しそうで嫌やわ。
883デフォルトの名無しさん:2013/07/28(日) 23:28:20.15
pydocの存在を知らない子なのか・・・?
884デフォルトの名無しさん:2013/07/28(日) 23:37:15.07
食わず嫌いはなしにして真摯な目で
>>869のコードと
def hatsumono(suuryou):
  hatsumonokakaku = 130
  return hatsumonokakaku * suuryou
print(hatsumono(100))

とを比べてみて欲しいのだけどね。
何年も前に他の誰かが作ったコードだとして、
初めて見る人にとってどちらがメンテしやすいか
一目瞭然でしょうと。
大切なことは、コーディングのしやすさよりも
メンテのしやすさなんだよ。
885デフォルトの名無しさん:2013/07/28(日) 23:45:21.25
子供が弘法に説法してる感じだ
886デフォルトの名無しさん:2013/07/28(日) 23:46:35.53
それで助かるの小学生くらいだと思うよ。
887デフォルトの名無しさん:2013/07/28(日) 23:47:11.50
なんでローマ字
888デフォルトの名無しさん:2013/07/28(日) 23:51:44.19
hatsumonoってなんかいやらしい(中学生)
889デフォルトの名無しさん:2013/07/28(日) 23:52:29.15
そういう想像しないでくださる!
890デフォルトの名無しさん:2013/07/29(月) 00:04:12.51
さすがにそこまでネタくさいとレスに困るからやり直して。
891デフォルトの名無しさん:2013/07/29(月) 00:07:15.30
まずその関数がすごく気持ち悪い
892デフォルトの名無しさん:2013/07/29(月) 00:25:15.43
だが現実はこーだ

def m021f03(p001):
  v001 = 130
  return v001 * p001
print(m021f03(100))
893デフォルトの名無しさん:2013/07/29(月) 03:16:42.20
もう関数fの変数vでいいじゃん・・・
894デフォルトの名無しさん:2013/07/29(月) 03:23:47.11
いつもながらこのスレはピントがぼけだしても流れを止めずに意味不明なレスでつづけちゃうのね。
とりあえず自分がわからないことはまず理解する、っていうアプローチから始めよーぜ。
895デフォルトの名無しさん:2013/07/29(月) 03:29:27.38
>>894
流れを止めてくれ!
896デフォルトの名無しさん:2013/07/29(月) 04:55:37.63
仲裁役気取りは失せろ
邪魔だ
897デフォルトの名無しさん:2013/07/29(月) 11:02:11.52
夏祭り、夜店のくじに当たりなし 露天商の男を逮捕
http://www.asahi.com/national/update/0729/OSK201307280122.html

27日に1万円以上をつぎ込んだ男性が不審に思い、府警に相談。
同署が28日に露店を家宅捜索し、当たりがないことを確認したという。
毛利川容疑者は「27日に約10万円を売り上げた」と話しているという。
898デフォルトの名無しさん:2013/07/29(月) 15:26:09.10
>>882
AppleScript1.xの頃のやつだっけ?
あまりの判り難さに使う人が殆どいなかったらしい。
なので完全日本語版は切られた。
899デフォルトの名無しさん:2013/07/29(月) 17:07:25.07
>>898
何時間か格闘した事があるけど、
閉じ括弧の代わりにend xxxを書くから、日本語だと
以上--end if
以上--end tell
以上--end repeat
以上--end tell
みたいに、各行に元の表記のコメントを入れないと
何が何だか分からなるので、アホらしくて止めた。
それと、実験的な機能なので対応していないアプリが多くて役に立たなかった。
900デフォルトの名無しさん:2013/07/31(水) 16:26:34.95
単純に n 回繰り返しをしたいだけの場合
for i in xrange(n):
  # do something


i = n
while i:
  # do something
  i-=1
とどっちがいいとかあるんですか?
901デフォルトの名無しさん:2013/07/31(水) 17:06:11.86
下は可読性が下がるから基本は上
902デフォルトの名無しさん:2013/07/31(水) 17:25:29.92
ありがとうございます
903デフォルトの名無しさん:2013/07/31(水) 19:08:37.87
可読性の前に指数 i のスコープがループ外にあるとパフォーマンスが落ちる
904デフォルトの名無しさん:2013/07/31(水) 19:14:29.74
指数?
905デフォルトの名無しさん:2013/07/31(水) 19:46:41.91
スコープはバイトコードになったら大して変わらん気がする
906デフォルトの名無しさん:2013/07/31(水) 20:17:10.47
というかPythonのループは変数のスコープを作らないです
907デフォルトの名無しさん:2013/07/31(水) 20:25:33.65
>>906
CからPythonに来た人がまず驚くのがそれだよね
自分も慣れるまでかなり時間がかかった
908デフォルトの名無しさん:2013/07/31(水) 20:25:38.43
>>905
変わるよ

>>906
while のスコープ外に i 定義してるのは?
909デフォルトの名無しさん:2013/07/31(水) 20:41:16.66
>>908
君はまだ人にものを説けるレベルにない
910906:2013/07/31(水) 20:47:44.16
>while のスコープ外に i 定義してるのは?

whileブロックにもforブロックにもifブロックにもスコープなんてないってば
意味が分からないなら分かるようになってから発言おし
911デフォルトの名無しさん:2013/07/31(水) 21:01:46.99
つーかなんでこんなスコープの仕様なの?手抜き?
912デフォルトの名無しさん:2013/07/31(水) 21:12:28.36
>>911
whileやifの中にいちいちスコープが作られる方がおかしいと俺は思う
あれはバグの元だ
913デフォルトの名無しさん:2013/07/31(水) 21:13:51.14
よく洗脳されていますね
914デフォルトの名無しさん:2013/07/31(水) 21:26:48.56
制御文レベルでいちいちスコープ作るようになったのってCから?
915デフォルトの名無しさん:2013/07/31(水) 21:38:30.70
>>913
いやそうじゃなくてね
Cを使っていた時は、ブロックが一つ深くなるたびに
「えーっとこの変数の有効範囲はここの閉じカッコまでだから…」と
気にする手間が増えていくのが苦痛でね
なにせカッコを一つ付けたり削るだけでもスコープが変わってしまうから
ちょっとしたループ構造の見直しでバグが入るリスクがある
ロジックを書くのに集中できない言語、それがCという言語だ

Pythonの「関数のみがローカルスコープを持つ」という仕様は
実にシンプルで実践しやすい。
変数を閉じ込めたい機能単位に関数を作ればいいのだから
916デフォルトの名無しさん:2013/07/31(水) 21:53:11.26
>>910
なにいってんだこいつ
917デフォルトの名無しさん:2013/07/31(水) 21:56:43.46
>>916
そりゃお前だよ
そもそもPython動かしたことも無いだろ
918デフォルトの名無しさん:2013/07/31(水) 22:00:15.98
>>915
> なにせカッコを一つ付けたり削るだけでもスコープが変わってしまうから
> ちょっとしたループ構造の見直しでバグが入るリスクがある

ネタだと思うが、頭になんか障害抱えてない?
91957:2013/07/31(水) 22:02:37.35
コード補完ってやっぱりPyDeb使ってるんですか?
920デフォルトの名無しさん:2013/07/31(水) 22:03:34.60
いえ、当方Vim厨ですので
921デフォルトの名無しさん:2013/07/31(水) 22:40:36.15
Python はスコープ外の値を書き換えられないからブロックスコープにするといろいろ面倒なことになるんじゃ
>>900 の例で while のスコープが有効だった場合 UnboundLocalError になる
922デフォルトの名無しさん:2013/07/31(水) 22:51:28.98
でもforよりwhileループの方が速いんだよな
イテレータがボトルネックになってるのかな
92357:2013/07/31(水) 23:14:31.19
vimか、確かにunixからwindowに移行してviとの別れが一番辛かったけど

また、viに戻るのは辛そうだな...。

でも、参考にします。
924デフォルトの名無しさん:2013/08/01(木) 00:03:40.56
>>917
おまえみたいなやつがいるから糞コードがなくならない

これよんどけカス
http://stackoverflow.com/questions/869229/why-is-looping-over-range-in-python-faster-than-using-a-while-loop
925デフォルトの名無しさん:2013/08/01(木) 00:04:32.14
>>917
こいつまじで python かけなそう
926デフォルトの名無しさん:2013/08/01(木) 02:32:43.26
>>925=916 ?
学校で先生からインターネット使ってはいけませんて言われれないの?
927デフォルトの名無しさん:2013/08/01(木) 08:15:36.34
>>926
分からんなら書くなよwww
いい大人が恥ずかしくないの?
928デフォルトの名無しさん:2013/08/01(木) 11:56:10.03
>>906 >>908
for hoge in fuga:
 if check(hoge):
  found = True
  break
else:
 found = False
929デフォルトの名無しさん:2013/08/03(土) 02:46:42.29
論理演算なのだけど、以下の最後がFalseになるのはなぜでしょうか?

>>> a = 3
>>> a == 3
True
>>> a == 4
False
>>> True | False
True
>>> a == 3 | a == 4
False

環境は
Python 3.3.2 (default, Jul 27 2013, 11:23:47)
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwin
930デフォルトの名無しさん:2013/08/03(土) 03:25:30.62
演算子結合の優先順位とみた

a==(3|a)==4
(a==3)==4
True==4
False

http://docs.python.jp/3.3/reference/expressions.html#summary
931デフォルトの名無しさん:2013/08/03(土) 03:32:04.11
ごめん評価順序勝手に想像したけど嘘だった。3項でも==使えたのね
a==(3|a)==4
a==3==4
False
932デフォルトの名無しさん:2013/08/03(土) 08:47:30.48
>>> True or False
True
>>> a == 3 or a == 4
True
933デフォルトの名無しさん:2013/08/03(土) 09:11:07.18
|は論理演算じゃなくてbit演算な
934929:2013/08/03(土) 11:42:47.15
>> 930-931
ありがとう。理解できた。
(a == 3) or (a == 4)
がTrueを返すことも確認。

>>932-933
bit演算がいまいち分かってないのだけど(みんPyの説明だけでは使い方がイメージできない)、
bool値はint型(0 or 1)に置き換えられると考えてよいのかな。
>>> 1 & True
1
は確認できた。
935デフォルトの名無しさん:2013/08/03(土) 11:45:44.55
>>> 2 & True
0
>>> (bool(2)) & True
True
>>> int(True)
1
936デフォルトの名無しさん:2013/08/03(土) 21:50:37.66
>>> bin(True)
'0b1'
>>> bin(False)
'0b0'
937929:2013/08/03(土) 23:48:35.36
>>935-936
さんくす。
ビット演算(&算術演算)でTrue/Falseが(0, 1)として評価されるのは理解した。
ビット演算で二項がともにboolの時は、なぜか結果もTrue/Falseになる。

で、いろいろ調べている途中に
http://docs.python.jp/3/library/stdtypes.html#boolean-operations-and-or-not
を見つけたのだけど、これは論理演算とは別のもの?
結果がTrue/Falseではないし、
「A OR B」と「B OR A」が違う結果になる論理演算なんて見たことがない。
938デフォルトの名無しさん:2013/08/04(日) 00:53:37.96
>>937
ノートにもあるように、
x or y の意味は if x then true else y で
x and y の意味は if x then y else false になる
言い換えると、これらは純粋な論理演算子ではなく、
条件分岐を演算子で表現した構文糖(syntax sugar)になる
だから交換律(a or b = b or a)が成立しないのは当り前

他の言語、たとえばC言語にも同様な演算子 || や && があるし、
それほど珍しい構文でもない
939デフォルトの名無しさん:2013/08/04(日) 00:56:55.12
なーる、横からだけどわかりやすくてうなった
940デフォルトの名無しさん:2013/08/04(日) 02:42:04.23
bool型の演算とビット値の演算で処理が違うの?
941929:2013/08/04(日) 03:24:56.87
>>938
よく分かった。ありがとう。
Wikipediaの「短絡評価」の説明によると「演算子の第一引数を評価した段階で式全体の値が定まらない場合のみ第二引数を評価する」ということだね。
最後に評価した値を返す場合と、True/Falseを返す場合とで演算子が同じなのは
気持ち悪いと思ったけど、
最後の値(intならその値、boolならTrue/False)を返すという点では一貫しているのか。
>>> a = 8
>>> 3 and (a > 8)
False
>>> 3 or (a > 8)
3
>>> (a == 8) and 0
0
942929:2013/08/04(日) 03:28:05.29
むしろ、
>>> 1 == True
True
>>> True + True
2
>>> False * 100
0
みたいな、intとboolの区別が曖昧な扱いの方が気持ち悪くなってきた。
943デフォルトの名無しさん:2013/08/04(日) 03:56:02.94
馬鹿には無理
944デフォルトの名無しさん:2013/08/04(日) 07:03:47.95
TrueとFalseはint型のサブ型
数値が必要される演算コンテキストで使われると__index__()を呼んで整数に変換される

>> True.__index__()
1
>> False.__index__()
0

http://docs.python.jp/3.3/reference/datamodel.html#the-standard-type-hierarchy
http://docs.python.jp/3.3/reference/datamodel.html#object.__index__
945デフォルトの名無しさん:2013/08/04(日) 09:25:16.66
>>942
だよな〜

>>944 はもちろん理解してるが、そろそろ暗黙の変換は警告してもいいと思う。
946デフォルトの名無しさん:2013/08/04(日) 12:24:50.10
正直、論理演算・ビット演算はよくわからんので
意識して使わないようにしとります。
使うと、後生の人がいじった時にバグの元になるかも知れないから。

組込みなどの特殊な環境でアセンブラをバリバリ使うならともかく
PCで、しかもスクリプト言語で論理演算・ビット演算を使う積極的な
理由はないよね?
947デフォルトの名無しさん:2013/08/04(日) 12:58:55.75
>>946
ビット演算はまあ理解できるが、論理演算は普通に使うだろ
948デフォルトの名無しさん:2013/08/04(日) 17:50:56.20
論理演算使わないでコーディングするほうが面倒くさいわ。
949デフォルトの名無しさん:2013/08/04(日) 20:10:47.89
>>944
論理型が整数型のサブ型となっていることが問題ではないかと
C言語なら超高級アセンブリ言語だから許せるとしても、
その理屈をPythonに当てはめるには無理があるんじゃねえかって話

リンク先文書の型階層についても、タプル型がシーケンス型のサブ型だったり、
要素が1個しかない意味不明なタプルが書けたり、
真面目にデータ型を考えれば意図の不可解な仕様が見受けられると思う
950デフォルトの名無しさん:2013/08/04(日) 23:08:30.87
昔三項が無かった時、代用品なAandBorCではまったのを思い出した
951デフォルトの名無しさん:2013/08/04(日) 23:18:08.77
>949
pythonのタプルは不変の配列と思えば辻褄はあう
952デフォルトの名無しさん:2013/08/04(日) 23:34:08.53
Pythonのタプルは集合論的意味は諦めてsetの方に譲ってる感じなのか
でもsetはsetでおかしくね

>>> set(set())==set()
True

集合論的に{ } = ∅ として ∅ ∈ { ∅ } なんだから ∅ ≠ { ∅ } にしてよって思う
953デフォルトの名無しさん:2013/08/04(日) 23:40:32.87
>>> ("hoge")
'hoge'
>>> ("hoge")[0]
'h'

タプルと言えばこれがハマりどころなんだけどなんでこんな動作するんだろ
954デフォルトの名無しさん:2013/08/04(日) 23:49:39.48
要素がひとつのタプルは ("hoge",) と書く
("hoge")[0] は "hoge"[0] と解釈される
955デフォルトの名無しさん:2013/08/04(日) 23:54:04.99
>>951
不変の配列ならば、要素数が0のリテラルが記述できないのは矛盾している
そもそもタプルとは直積(cartesian product)を表現するデータ型だよ
直積でないデータ型にタプルと命名することが間違っていて、
不変配列ならば不変配列クラス(immutable array)と命名すべきだったのでは?
956デフォルトの名無しさん:2013/08/04(日) 23:54:28.15
それは分かってるけどなんでそういう罠をつけたのかなという疑問
後尾にカンマをつけるのは気持ち悪い気がするし
957デフォルトの名無しさん:2013/08/05(月) 00:02:00.58
要素ひとつのタプルなんて滅多に使わないから問題ないよ(たぶん)
958デフォルトの名無しさん:2013/08/05(月) 00:14:09.76
じゃあ tuple(["hoge"]) で
959デフォルトの名無しさん:2013/08/05(月) 00:30:56.19
滅多に使わないというか、どういう場面で単要素のタプルが必要になるの?
960デフォルトの名無しさん:2013/08/05(月) 00:56:38.51
>>956
Pythonの正確な歴史を知っている訳ではないから推測してみる
たぶんタプルという便利なデータ構造を知った作者が思いつきで
Pyhtonに採用したまでは良かったけれど、「作者に数学的素養が無かった」ため、
誤ってコレクション型のサブ型として実装してしまった... のではないかと
で、後から訂正しようにも既存コードの互換性問題があるので放置されていると
961デフォルトの名無しさん:2013/08/05(月) 02:10:10.28
お前ら自分の無知を棚に上げて、作者を馬鹿にするのもいい加減にしろ。
タブルはPython発ではなく、それ以前からある概念だ。

どっちかっていうと動的型付け言語では配列が柔軟性あり過ぎてタプルと
似た物になってしまった感じで、順番が逆。
962デフォルトの名無しさん:2013/08/05(月) 02:19:13.03
>>961
>タブルはPython発ではなく、それ以前からある概念だ。

数学的素養があれば、そんなことは常識だろ
それを配列というコレクションの概念と混同して実装したのが問題なんだよ
963デフォルトの名無しさん:2013/08/05(月) 03:38:30.28
情報系だとタプルって「組」って意味ぐらいしか持ってない気がする

>>955
>>956
()で要素数0のタプルを表現できる
カンマつけるのは(1 + 2) * 3 とかの結果が(3,3,3)になったりしたら困るからじゃね
964デフォルトの名無しさん:2013/08/05(月) 10:35:43.51
マスター持ってても数学的素養がないとかいわれるのか
965デフォルトの名無しさん:2013/08/05(月) 10:37:07.37
>>955
>要素数が0のリテラルが記述できないのは矛盾している

>>> reduce(lambda a,b: (a,b),[],[])
[]
>>> reduce(lambda a,b: (a,b),(),())
()

>>> isinstance(reduce(lambda a,b: (a,b),[],[]), tuple)
False
>>> isinstance(reduce(lambda a,b: (a,b),[],[]), list)
True
>>> isinstance(reduce(lambda a,b: (a,b),(),()), list)
False
>>> isinstance(reduce(lambda a,b: (a,b),(),()), tuple)
True
966デフォルトの名無しさん:2013/08/05(月) 11:02:58.32
>>964
いまどき大学の履修科目で公理的集合論が必修のところとかあるの?
理工系はおろか数学科すら怪しい気がする
967デフォルトの名無しさん:2013/08/05(月) 12:01:22.57
>>966
古典的集合論なら今でも理工系学部の初年度で必修だと思うが、公理的のほうは知らん
ただ、ここまでの議論の流れと公理的集合論との関連性は何があるん?
968デフォルトの名無しさん:2013/08/05(月) 12:07:38.40
横から見てるだけだけどいろいろ参考になる
969デフォルトの名無しさん:2013/08/05(月) 12:29:35.12
>>967
タプルが直積を意味するときに要素一つじゃいかんだろう
っていうのは外延性公理の要請なんじゃないの
対ならもちろん区別できるけど
(a, b) = {{a}, {a, b}}
(b, a) = {{b}, {a, b}}
一要素のタプルは一要素の集合と区別できない
(a) = {a}
a = {a}
ふにゃふにゃした結論で申し訳ないが
直積集合自体が強力な操作(wikipediaから借りてきた言葉だけど)なので一応そのへんは関係あるかと
970956:2013/08/05(月) 13:45:13.92
>>963
自分へのレスの中でこれが一番説得力があって感心した!
すっきりしたよありがとう
971デフォルトの名無しさん:2013/08/05(月) 14:33:44.83
python を今日始めました。
python の正規表現で、\p{Pf} みたいな「文字クラス」を使う方法はありますか?
import re では、ダメのようです。
972デフォルトの名無しさん:2013/08/05(月) 14:36:39.40
>>969
スマンが、数論は不勉強なので(正しいのか間違っているのかすら)よくわからん

ただ、「>タプルが直積を意味するときに要素一つじゃいかんだろう」という主張は、
「直積集合としてのタプル」という仮説において、「直積とは....である順序対の集合である」
という(Wikipadiaの該当ページ冒頭にある)定義を元に導かれ、
N組に関する次元数が2以上であるという主張も(対の拡張として)自然に導かれると考える
そして、この仮説を前提とする限り、タプルは古典的集合論で形式的に定義できるので、
公理的集合論を持ち出す必要は無いと思う

で、タプルに関するもう一つの仮説「データ構造としてのタプル」、これが>>963の言う
「情報系における組」の意味だと思うけど、この場合、N組の次元数は0以上になる
ところが次元数が0ないし1の時、上記の古典的な「順序対の集合」では定義できない
これを形式的に定義しようと考えた時、もしかすると公理的集合論が必要になるのかもしれない
973955:2013/08/05(月) 14:42:03.19
>>963,965
Pythonは要素数が0のタプルを表現できるので、>>955の「先頭行」について撤回します
HaskellやMLのような言語では () は単位型という(タプルではない)データ型になるので、
これと混同して早とちりしていました
974デフォルトの名無しさん:2013/08/05(月) 15:03:54.56
タプルはイミュータブルな配列としか見てないなあ
実用言語の Python で単にタプルという名前から概念的に議論するのは不毛な気がする
975デフォルトの名無しさん:2013/08/05(月) 15:16:22.57
>>> reduce(lambda a,b: a+[b,],(4,5,6),(1,2,3))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <lambda>
TypeError: can only concatenate tuple (not "list") to tuple
>>> reduce(lambda a,b: a+(b,),(4,5,6),(1,2,3))
(1, 2, 3, 4, 5, 6)

タプルはイミュータブル(キリっ
976デフォルトの名無しさん:2013/08/05(月) 15:25:16.16
それで immutable であることが否定されているの?
(1,2,3) も (4,5,6) も変更されてないよね?
977デフォルトの名無しさん:2013/08/05(月) 15:36:44.72
>>975
Ruby スレに帰れ
978969:2013/08/05(月) 15:43:35.39
要素0でも問題ないという話が見えてなかった
Pythonのタプルはシーケンスですね
集合論ぜんぜん関係無かった(/ω\)ハズカシーィ

Haskellのタプル定義見ると二要素からだね
というか全部型が違う。こういうのはPythonに要らないと言われればまあそうだと思う
http://www.haskell.org/ghc/docs/7.6.2/html/libraries/ghc-prim-0.3.0.0/GHC-Tuple.html
979975ではない:2013/08/05(月) 16:27:43.29
>>976
たぶん、タプルが配列とみなせる(>>974)のであれば、
タプルとミュータブルな配列に対するイミュータブルな操作は
同じ結果となるはずだけど、実際には違った

ということを言いたいのではないかと思われ
980デフォルトの名無しさん:2013/08/05(月) 20:06:30.70
同じシーケンスでも文字列とリストの接続ができないように
リストとタプルの接続もできないという当然の結果が返ってきてるだけで
タプルがイミュータブルな配列とみなせるかどうかとは全く関係のない話だと思うけどなあ
981デフォルトの名無しさん:2013/08/05(月) 22:00:25.45
そもそも>>975はイミュータブルな事にしか触れてないうえに、非破壊的な操作しかしてない謎っぷり
982デフォルトの名無しさん:2013/08/06(火) 01:04:14.95
みんなえらいなあ
983デフォルトの名無しさん:2013/08/06(火) 07:51:38.87
くだすれPython(超初心者用) その18
http://toro.2ch.net/test/read.cgi/tech/1375742968/
984デフォルトの名無しさん:2013/08/06(火) 13:44:25.93
Ruby万歳!Python死ねw
985デフォルトの名無しさん:2013/08/06(火) 14:11:39.10
Ruby信者って民度が大陸並なのな。
986デフォルトの名無しさん:2013/08/06(火) 14:26:20.71
おそらく>>984はRubyスレやバトルスレであばれていたのと同じヤシだと思う
どこにいっても相手にされなくなったので、かまってほしいのではないかと....
987デフォルトの名無しさん:2013/08/06(火) 14:49:25.88
Ruby スレで Python 厨が暴れると反論罵倒が殺到するが、
Python スレに Ruby 厨が来てもほとんどスルー
これが大人の余裕って香具師か。
988デフォルトの名無しさん:2013/08/06(火) 15:00:54.96
暴れれば批判が殺到するのは当たり前
このスレでもRuby信者と思われるカキコはいくつかあるけど、
暴れるというほどのものではないから静かなんだろな
989デフォルトの名無しさん:2013/08/06(火) 15:06:19.13
両方使うのでどっちも読み書きしてるけど
Ruby スレは最近ちょっとおかしくなってる

というか定期的におかしくなるのが Ruby スレ
あんまり波がないのが Python スレ
990デフォルトの名無しさん:2013/08/06(火) 15:12:52.22
単に人少ないだけやろ
991デフォルトの名無しさん:2013/08/06(火) 15:17:48.53
いまは大差ないんじゃないかな
992デフォルトの名無しさん:2013/08/06(火) 15:28:24.51
自演ばっかw
993デフォルトの名無しさん:2013/08/06(火) 18:13:06.29
せやな
994デフォルトの名無しさん:2013/08/06(火) 19:35:21.44
くだすれPython(超初心者用) その18
http://toro.2ch.net/test/read.cgi/tech/1375742968/
995デフォルトの名無しさん:2013/08/06(火) 20:50:28.71
自分で試してみたら list も tuple もアクセス速度変わらなさそうだったのですが
996デフォルトの名無しさん:2013/08/06(火) 22:01:07.76
そら変わらんだろう
997デフォルトの名無しさん:2013/08/06(火) 22:49:45.50
tuple って list よりはやいって聞いたことがあったんですがあれは作るときの話だったのかな
998デフォルトの名無しさん:2013/08/06(火) 23:00:24.92
999デフォルトの名無しさん:2013/08/06(火) 23:45:04.91
>>996 >>998 両人ありがとうございました.
1000デフォルトの名無しさん:2013/08/07(水) 08:46:42.75
Ruby マンセー
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。