くだすれPython(超初心者用) その16
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2013/01/21(月) 16:36:03.35もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。
エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで
前スレ
くだすれPython(超初心者用) その15
http://toro.2ch.net/test/read.cgi/tech/1350718465/
関連スレ
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/
0002デフォルトの名無しさん
2013/01/21(月) 16:37:09.96|_::;; ~"'ヽ
| //^''ヽ,,)
| i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
|( ´∀`) < きのこ のこーのこ げんきのこ ♪
|(ノ |つ
| |
⊂ _ ノ
""U
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
(´∀` )| < エリンギ まいたけ ブナシメジ ♪
⊂| (ノ |
| |
ヽ _ ⊃
.U""
|
| ミ
| ミ サッ!
| ミ
|
0003デフォルトの名無しさん
2013/01/21(月) 16:37:44.63│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
0004デフォルトの名無しさん
2013/01/21(月) 17:13:34.910005デフォルトの名無しさん
2013/01/21(月) 18:28:35.520006デフォルトの名無しさん
2013/01/22(火) 05:00:11.00_ _ ∩
( ゚∀゚ )ノ ))) おっ!
( 二つ
ノ 彡ヽ
(_ノ ⌒゙J
⊂ヽ
((( (_ _ )、 ぱい!
γ ⊂ノ, 彡
し'⌒ヽJ
_ _ ∩
( ゚∀゚ )ノ ))) おっ!
( 二つ
ノ 彡ヽ
(_ノ ⌒゙J
⊂ヽ
((( (_ _ )、 ぱい!
γ ⊂ノ, 彡
し'⌒ヽJ
0007デフォルトの名無しさん
2013/01/22(火) 07:28:50.372コマ目と4コマ目がワキ嗅いでる臭くて嫌だな〜なんて
0008デフォルトの名無しさん
2013/01/23(水) 14:39:06.62ttps://developers.google.com/appengine/docs/python/gettingstartedpython27/?hl=ja
どんどん出てくるpython2.7情報
ttp://sourceforge.jp/magazine/12/02/29/048214
Google App Engine 使うなら
こっちのスレ行った方が良い
Google App Engine for Python 6アプ目
http://kohada.2ch.net/test/read.cgi/php/1358570953/
0009デフォルトの名無しさん
2013/01/24(木) 17:39:12.83コマンドプロンプトで値を与えると、リストのリストのデータができあがります。
いろいろな値をコマンドプロンプトで与えてそれを一つのテキストファイルに出力するには、どうすればよいのですか?
リストのリストの出力の例
例1 L1 = [["みかん"]["50円"][C][D]],["りんご"]["100円"][G][J]],......]
例2 L2 = [["ぶどう"]["400円"][C][D]],["りんご"]["100円"][G][J]],......]
欲しいテキストファイル
みかん,50円,C,D
りんご.......
.......
例1の終わり
ぶどう,50円,C,D
......
.......
例2の終わり
3つめの始まり
0010デフォルトの名無しさん
2013/01/24(木) 19:42:59.70>>> L1 = [["みかん"]["50円"]['C']['D']],["りんご"]["100円"]['G']['J']]]
File "<stdin>", line 1
L1 = [["みかん"]["50円"]['C']['D']],["りんご"]["100円"]['G']['J']]]
^
SyntaxError: invalid syntax
L1, L2書き直し
あと、データ構造自体が悪いと思う
正確には分からないけど、L1, L2のデータ構造見直しが重要だと思う。
0011デフォルトの名無しさん
2013/01/24(木) 19:52:09.01ごめんなさい。データ構造は以下のようになります。
L1 = [["みかん","50円",'C','D'],["りんご","100円",'G','J']]
0012デフォルトの名無しさん
2013/01/24(木) 20:47:15.49WindowsXPではこれで行けた
with open('outfile.txt','w') as f:
for youso in L1:
f.write(','.join(youso) + '\n')
0013デフォルトの名無しさん
2013/01/24(木) 20:48:17.29path = 'tech9.txt'
with open(path, 'w') as f:
for line in L1:
f.write(','.join(line) + '\n')
:!cat tech9.txt
みかん,50円,C,D
りんご,100円,G,J
0014デフォルトの名無しさん
2013/01/24(木) 20:54:48.000015デフォルトの名無しさん
2013/01/24(木) 21:00:00.640016デフォルトの名無しさん
2013/01/24(木) 21:55:57.16print('空文字列でしたら、終了します。')
while True:
raw = input('文字列を入力して下さい。:')
# 文字列前後の空白文字、改行文字を除去。
line = raw.strip()
if not line:
# 空文字列だったので終了。
break
# 空白文字で個々の要素に分割。
elements = line.split(' ')
lines.append(elements)
path = 'tech9-2.txt'
# 書き込みmodeで path を開く。
with open(path, 'w') as fw:
for elements in lines:
# ','を区切り文字として、結合
csv = ','.join(elements)
# 書き込み。
fw.write(csv)
# 改行文字を書き込み。
fw.write('\n')
# with 使って open() を呼び出しているから、
# fw.close()を呼び出して file object を閉じる必要はない。
# with open(path, 'r') as fr:
# 上と下は同じ意味。
with open(path) as fr:
# さっき書き込んだ内容全てを読み込む。
rdata = fr.read()
# 読み込んだ内容を 'rdata =' の出力以下に書き込む。
print('rdata =')
print(rdata)
0017デフォルトの名無しさん
2013/01/24(木) 22:50:35.81できました。ありがとうございます。
0018デフォルトの名無しさん
2013/01/25(金) 02:50:46.15for i in range(len(list)):
if list[i][2] == 'S' or list[i][2] == 'L' or list[i][2] == 'T' or list[i][2] == 'E':
a = list[i][2]
b_num = list[i][1]
for i in range(len(list)):
if b_num == list[i][0]:
a += list[i][2]
a_list.append(a)
うまくいきません。
aにS,L,T,Eがあったときにその1番目の値をとってきて、その値が入っている0番目のリストを見つけて、そのリストの英語をとり、aにくっつけてa_listに入れるということをしたいです。
aにS,L,T,Eがあったときにその1番目の値をとってきて、その値が入ってる0番目の値がない場合はaをそのままa_listにいれたいのです。
出力結果としては
a_list = [TE,E,E,SL,L]が欲しいです。
よろしくお願いします。
0019デフォルトの名無しさん
2013/01/25(金) 02:52:08.53list = [[0,1,T, ”文字列”][1,2,E,”文字列”][1,2,E, ”文字列”][3,4,S, ” 文字列”][4,-1,L, ”文字列”]]
です。
0020デフォルトの名無しさん
2013/01/25(金) 05:58:53.25csvモジュール使おう
ideone.com/hGegPp
>>18-19 各要素の数が同じならループ変数に展開できる。簡略化するけど、こんな感じ
src = [(0,1,"T"), (1,2,"E"), (1,2,"E"), (3,4,"S"), (4,-1,"L")]
dest = []
for a,b,c in src:
if c in "TESL":
v = c + "".join(z for x,y,z in src if x == b)
dest.append(v)
0021デフォルトの名無しさん
2013/01/25(金) 07:57:05.43期待する出力は ['TEE', 'E', 'E', 'SL', 'L'] ではなくて?
インデント推測でコードを修正したら、ロジック自体は通ったよ。
エラーの原因
* リストの形式はカンマ区切り [[1][2][3]] のようになってるのを [[1],[2],[3]] とする。
* 文字列のクォートが全角っぽいので半角に直す。
* T,E,S,L が未定義。
他、気になる所
変数名、組み込み型の"list" や ループ変数の "i" を使いまわしてる点。
このコードの実行には影響ないけど、問題になりやすいので避けたほうがいい。
0022デフォルトの名無しさん
2013/01/25(金) 07:59:32.99最初の条件式のところは、一文字と決まってるなら c in "TESL" で済むけど、
"ES" in "TESL" 等も真になってしまうので、できればsetの利用を推奨。
0023デフォルトの名無しさん
2013/01/25(金) 10:56:36.34ありがとうございます。
>>21
最初のTが2つのEにかかるのですが、同じものにかかる場合は、一つにかかると判定したいです。
なので
['TE', 'E', 'E', 'SL', 'L']
が欲しいです。
0024デフォルトの名無しさん
2013/01/25(金) 13:09:14.21順序関係ないならsetが使える
順序が必要なら、順序を維持したまま重複を取り除く関数を作る。手軽/手抜きな実装は、
from collections import OrderedDict
uniq = lambda seq: OrderedDict.fromkeys(seq).keys()
他
ideone.com/Ah77EZ if/forで率直に実装
ideone.com/VBH065 イテレータを扱う場合、重複した要素を取くジェネレータを作っておくと便利
0025デフォルトの名無しさん
2013/01/25(金) 14:08:43.11ありがとうございます。
0026デフォルトの名無しさん
2013/01/25(金) 15:57:31.17文。文。文。文。文。文。〜「A」はBでした。文。文。文。文。文。文。
(K)
文。文。文。文。文。文。文。文。文。「G」はHでした。
文。文。文。文。文。文。〜 (C。それは「Dである。」)〜。文。
(J)
(E。それは「Fである。」)〜。文。文。文。文。文。文。文。
ある形になっている文をとってきたいのですが、
テキストファイルをラインごとに読み込んだあとに、それを。で区切って読みなおして、『「,」は,でした。』が含まれる文をとってくればいいのでしょうか?
文をとるところまでが上記の方法でよいとしてそこから抜き出すのはどうすればよいでしょうか?
『〜「A」はBでした。』、『〜 (C。それは「Dである。」)〜。』、(J)という形の文を全てとって来たいです。
その後にAとBとCとDを抜き出したいです。
欲しい出力は
「A」はBでした。、「G」はHでした。
A、B、G、H
(C。それは「Dである。」)、(E。それは「Fである。」)
C、D、E、F
(J)、(K)
J、K
です。(と「は全角です。
0027デフォルトの名無しさん
2013/01/25(金) 19:22:39.810028デフォルトの名無しさん
2013/01/26(土) 03:13:38.53Pythonより自然言語処理寄りな話題かも
「わかち書き」「形態素解析」辺りを調べてみよう。
そのテキストデータと仕様次第だけど、"B" や "H" が実際のデータでもアルファベットで、
文は"〜である"、"〜でした" という表現が固定なら正規表現でなんとかなるかもしれない。
実際には、日本語の文中から名詞を抜き出したいのなら、適切な自然言語処理が必要になってくる。
0029デフォルトの名無しさん
2013/01/26(土) 05:38:39.33これだけだと、文中の改行・括弧内の句点の読み飛ばしに対応出来ない。
["〜 (C。", "それは「Dである。", "」)〜。"] と離れてしまう。
括弧のみの行は句点が無いので、(行読みの場合なら)行内に単一で現れないと、
他の文の先頭に付いて混ざってしまうかもしれない、等。
この辺、例に挙げられたデータが簡略化されすぎてて、不確定な点が多く判断が難しいけど。
この例では大丈夫でも、実データでうまくいかない可能性がある。
0030デフォルトの名無しさん
2013/01/26(土) 07:44:06.220031デフォルトの名無しさん
2013/01/26(土) 16:49:09.18reader= csv.reader( hoge)
for i, v in enumerate( reader):
if i == 9:
break
として、readerをforで10回回したとします
次にもう一度forで回すと、CSVが11行目から取り出されます。
これはどうしてこうなるのでしょうか? イテレータの内部で現在までに吐き出した値を覚えておいてその続きから呼び出されているのでしょうか?
もう一度、csv.reader()で代入すると1行目から回ることはわかりましたが、一般的なメソッドか何かで初期化が用意されているのでしょうか?
0032デフォルトの名無しさん
2013/01/26(土) 16:57:42.23そいつでseekできんじゃね
0033デフォルトの名無しさん
2013/01/26(土) 17:02:16.89>イテレータの内部で現在までに吐き出した値を覚えておいてその続きから呼び出されているのでしょうか?
イテレータが保持していると言うよりは、csv.readerに渡したファイルライクオブジェクトが状態を保持している
それはなぜかと言ったら、全てのデータを必要とするかどうか分からないのに全読みしておく価値がないから
0034デフォルトの名無しさん
2013/01/26(土) 17:08:01.040035デフォルトの名無しさん
2013/01/26(土) 22:45:17.86ありがとうございます。
正規表現を使ってみます。
0036デフォルトの名無しさん
2013/01/27(日) 03:47:05.00何がいけないのでしょうか?
#coding:utf-8
import re
pattern = re.compile(r'「.*でした。')
file = open('a.txt','r')
for line in file:
matchedList = pattern.findall(line)
if matchedList:
print matchedList
file.close()
0037デフォルトの名無しさん
2013/01/27(日) 05:07:37.84まずは、どのようにうまくいかないかをきちんと説明しよう
多分 a.txtの文字コードだと思うけど。
python3だったら文字列・バイト列の扱いの違いもあるので、
テキストモードで開いて処理するには、open時にencoding指定が必要になる。
0038デフォルトの名無しさん
2013/01/27(日) 09:44:06.36> イテレータが保持していると言うよりは、csv.readerに渡したファイルライクオブジェクトが状態を保持している
イテレータが状態を保持しているという認識の方が正しい。
>>31
> これはどうしてこうなるのでしょうか? イテレータの内部で現在までに吐き出した値を覚えておいてその続きから呼び出されているのでしょうか?
その通り。というか、イテレータはそもそもその目的のためにある。
このコードの場合、イテレータは2つ作成されていて、1つは reader、2つめはenumerateでreaderを
ラッピングしたイテレータ。どちらもStopIterationしてないので、for を抜けた後も継続可能。
> 一般的なメソッドか何かで初期化が用意されているのでしょうか?
イテレータを途中で初期化する方法は普通はない。
この場合、hoge.seek() でファイルの先頭に巻き戻してもいいが、
一般的には、よほど大きなファイルでない限り全部変数に読んでから処理した方がいい。
ちなみに、csv.readerにはline_num属性があるので、enumerateする意味はあまりない。
0039デフォルトの名無しさん
2013/01/27(日) 10:41:04.39ttp://fujishinko.exblog.jp/7688121/
Python のジェネレータ (1) - 動作を試す
1.イテレータとはコンテナの要素を走査するためのオブジェクト
これまでに Python の リスト内包表記、イテレータ について調べた。 次は、「ジェネーレータ」。
ttp://jutememo.blogspot.jp/2008/07/python-1.html
C# , Python , Ruby の yield の違い
ttp://cointoss.hatenablog.com/entry/2012/12/20/234336
0040デフォルトの名無しさん
2013/01/27(日) 11:57:48.12Python2の最新バージョンを使っています。
エラーは出なく、何も表示されずにプログラムが終了します。
0041デフォルトの名無しさん
2013/01/27(日) 12:23:35.26a.txtの文字エンコーディングは?
UTF-8, UTF-16, Shitf_JIS, EUC-JPとかそういうの
0042デフォルトの名無しさん
2013/01/27(日) 13:30:00.85Shitf_JISです。
UTF-8に直すべきでしょうか?
0043デフォルトの名無しさん
2013/01/27(日) 13:31:31.50UTF-8にしてもだめでした。
0044デフォルトの名無しさん
2013/01/27(日) 13:53:09.870045デフォルトの名無しさん
2013/01/27(日) 13:53:35.46> if matchedList:
> print matchedList
findall( ) の戻り値って文字列の(* リスト *) じゃないの?
なので、
for m in matchedList:
print m
かと。
あと、compile( ) って、マニュアルには match( ) と search( ) に適用って書いてあるけど、
findall( ) にも使えるんだっけ?
0046デフォルトの名無しさん
2013/01/27(日) 14:12:16.10うちでは動いたよ
考えられるのはa.txtとスクリプトのエンコーディングが一致してないか
そもそもa.txtが正規表現 「.*でした。 にマッチする文字列を含んでいないとか
ちなみに次のスクリプトならどうなる?
#coding:utf-8
import re, codecs
pattern = re.compile(ur'「.*でした。')
for line in codecs.open('a.txt','r', 'utf-8'):
matchedList = pattern.findall(line)
if matchedList: print matchedList
0047デフォルトの名無しさん
2013/01/27(日) 14:14:14.39import re, codecs
pattern = re.compile(ur'「.*でした。')
for line in codecs.open('a.txt','r', 'utf-8'):
matchedList = pattern.findall(line)
if matchedList: print matchedList
0048デフォルトの名無しさん
2013/01/27(日) 14:20:26.70pattern = re.compile(ur'「.*でした。')
for line in codecs.open('a.txt','r', 'utf-8'):
matchedList = pattern.findall(line)
if matchedList: print matchedList
0049デフォルトの名無しさん
2013/01/27(日) 14:36:03.53動きました。
ありがとうございました。
(ur'「.*でした。') でuを付ける必要があったんですね。
0050デフォルトの名無しさん
2013/01/27(日) 16:36:47.34uが必要なのは codecs.open で開いたから、読み込み時にunicodeへデコードされる為。
元のコード、うちでも期待通りに動いたよ。(python2.7/a.txtの文字コードはutf-8で試した)
原因は、テキスト・ファイルと正規表現の文字コードの不一致と診て間違いなさそう。
後、オフトピ。正規表現 ur'「.*?でした。' と最短一致が必要になるはず。
0051デフォルトの名無しさん
2013/01/27(日) 17:23:22.00動作に重大な影響を及ぼすのっていうのは
スクリプト言語の重大な欠点だよね。
自分もWindowsのメモ帳が何のコードでテキストを
保存するかを知らないまま、職場でスクリプトを書いている。
書くのも実行するのもWindows環境である限り
問題ないのだろうけど、将来不安ではある。
0052デフォルトの名無しさん
2013/01/27(日) 17:29:04.29原因まで、わかりやすく説明してくれてありがとうございます。
最短一致を使用すると出力が出てこなくなってしまいます。
どういうことか教えていただけませんか?
「A」はBでした。
『「.*」は.*でした。』で目的の出力を得ることができました。
C。それは「Dである。」
『.+。それは「*である。』
が一つの文の中で何個か出てくる場合があって、目的の出力が取れなくて困っています。
この時に最短一致が必要ということでしょうか?
両方とも?をつけてもうまくいきません。
0053デフォルトの名無しさん
2013/01/27(日) 17:30:30.69『.+。それは「.*である。』 です。
0054デフォルトの名無しさん
2013/01/27(日) 17:34:20.84Sublime Text2くらい使いなよ
0055デフォルトの名無しさん
2013/01/27(日) 17:40:58.60ただやっぱり、
(C。それは「Dである。」)〜(E。それは「Fである。」)
という文が出力されてしまいます。
CとFでマッチングが起こっていると思うのですが、どうすればよいでしょうか?
0056デフォルトの名無しさん
2013/01/27(日) 18:04:04.55そのうまくいかない現象を回答者が再現するために必要な
最小限のコードと入力をちょうだい
0057デフォルトの名無しさん
2013/01/27(日) 18:28:11.14CD \"Documents and Settings"\"All Users"
0058デフォルトの名無しさん
2013/01/27(日) 18:37:50.550059デフォルトの名無しさん
2013/01/28(月) 00:41:05.27ありがとうございます。
どうにかうまくいかない問題を解決できました。
0060デフォルトの名無しさん
2013/01/28(月) 00:52:04.16List2_set = set(List2)
List3_set = List_set - List2_set
List3 = list(List3_set)
リストの中身に同じものがある場合に引き算を行いたいのですが、setにして引き算すると引き算された結果の順番がList_setの上からではない順番に変わってしまいます。
順番が変わらない方法はありますか?
0061デフォルトの名無しさん
2013/01/28(月) 01:23:09.22AとBをさらに抜き出したいです。
Aは「」の間にあるものを、Bは『」は』と『でした。』の間にあるものをとるという方法でいいんですよね?
Bの中に「」があるばあいがあるんですけど、最初に出てきた「」のみマッチングさせることは可能ですか?
0062デフォルトの名無しさん
2013/01/28(月) 01:39:22.22collectionsモジュールのドキュメント末尾にOrderedSetのレシピに言及がある。
OrderedDictを使ったコンテナ型の例も載ってるので、順に目を通して。
docs.python.jp/2.7/library/collections.html
差集合を得るのために一時的にset使うだけなら、
片方のみをsetにして、forで順に廻すでもいい。
a = [1,2,3,4,5]
b = set([1,2,3])
c = [x for x in a if not x in b]
0063デフォルトの名無しさん
2013/01/28(月) 01:56:07.03> Aは「」の間にあるものを、Bは『」は』と『でした。』の間にあるものをとるという方法でいいんですよね?
これは実データ次第。実データがその仕様で問題ないならそれでokなんだろうけど、
第三者的には不明瞭な点が多くて判断し兼ねる。
例えば、"「A」は『Bでした。』でした。" 的な文があれば、途中の"でした。"にマッチしてしまう。
> Bの中に「」があるばあいがあるんですけど、最初に出てきた「」のみマッチングさせることは可能ですか?
流れから、誠意表現でということだと思うけど、可能です。
0064デフォルトの名無しさん
2013/01/28(月) 02:12:24.27ありがとうございます。その方法を使わせてもらいます。
0065デフォルトの名無しさん
2013/01/28(月) 02:25:34.71ありがとうございます。
実データを見る限り、「A」はBでした。は問題なさそうです。
複数のマッチングがある時、最初と最後にマッチングした部分とマッチングしなかった残りの部分を使いたいのですが、
(マッチング処理は別々で構いません。)
正規表現のわかりやすいホームページがあったら、教えて頂けないでしょうか?
よろしくお願いします。
0066デフォルトの名無しさん
2013/01/28(月) 18:57:14.16for line in List:
m = re.match(ur'(.*である。」))',line)
print(m)
(C。それは「Dである。」)が複数存在するとき、line中の最後のマッチさせようと
上記のコードを書いたのですが、そもそもなぜか全部Noneになります。
ちゃんと、(C。それは「Dである。」)は存在します。
なぜでしょうか?
0067デフォルトの名無しさん
2013/01/28(月) 19:36:09.36lineになにも入ってないからじゃないの?
0068デフォルトの名無しさん
2013/01/28(月) 19:49:19.65for line in List: <- この List は何処から?
0069デフォルトの名無しさん
2013/01/28(月) 19:56:24.570070デフォルトの名無しさん
2013/01/28(月) 19:58:41.170071デフォルトの名無しさん
2013/01/28(月) 20:00:05.49ur'(.*である。」))' <= 閉じ括弧が2重だけど、これは意図通り?
コードはコピペしてる?
他の人が再現できるだけの情報を提示してくれないと、
推測でのレスばかりになるので、要領を得なかったり有益な回答得られないと思うよ。
0072デフォルトの名無しさん
2013/01/28(月) 20:38:12.73すいません。下記です。かっこは2重じゃないです。
file = codecs.open('file.txt','w','utf-8')
for line in matchedList:
m = re.match(ur'(.*である。」)',line)
print(m)
0073デフォルトの名無しさん
2013/01/28(月) 20:42:46.59そのまま動くソースとテスト用データを貼れよ
0074デフォルトの名無しさん
2013/01/28(月) 21:10:14.90開いたfileを使ってなくね?
0075デフォルトの名無しさん
2013/01/28(月) 21:17:29.78二個目の「〜である。」をとりたいです。
http://fast-uploader.com/file/6914931000681/
http://fast-uploader.com/file/6914930813025/
0076デフォルトの名無しさん
2013/01/28(月) 21:18:58.40書き込みのため開けたんですけど、現時点で書き込めない状態なのでつかえてません。
0077デフォルトの名無しさん
2013/01/28(月) 21:54:02.76ファイルからテキストを「読み込む」んだよね?何故書き込みモード…
それはさて置き。Noneになる原因は、
re.match だと line の先頭から走査するので、頭に余分な文字付いてるとその時点でマッチ失敗。
恐らく、やりたいことは re.finditerやre.search の方で出来る。
>>65
正規表現 HOW TO
docs.python.jp/2.7/howto/regex.html#regex-howto
正規表現モジュール
docs.python.jp/2.7/library/re.html
0078デフォルトの名無しさん
2013/01/28(月) 23:16:02.71ありがとうございます。
書き込みモードなのは最後に出てきた「」をテキストファイルに起こしたかったからです。
re.finditerは複数とってきてしまい、行ごとに最後のマッチを取ってくることができないと思うのですが?
re.searchが取ってくるのは最初にマッチしたところではないのですか?
自分の理解力がないのだと思いますが・・・
0079デフォルトの名無しさん
2013/01/29(火) 00:52:35.57正規表現を2回使ってるけど,1回で目的は実現できると思う.
p = re.compile(ur'(.*?。それは(「.*?である。」))')
として,
L = p.findall(line)
とする.
最短一致".*?"を使うことで1行に
(A。それは「Bである。」)
が複数あってもLには
(A。それは「Bである。」)
のパターンに当てはまる全ての要素が格納される.
でもって,「.*?である。」を半角カッコでくくることでグループのリストが入る.(参考: ttp://d.hatena.ne.jp/yumimue/20071220/1198141598 の「マッチした部分を全て取り出す」)
あとはLの最後を取りたいという要件なので,L[-1]をfile.txtに書けば良い.
以上を踏まえて,こんな感じでどうでしょうか?
# coding: utf-8
import re, codecs
p = re.compile(ur'(.*?。それは(「.*?である。」))')
f = codecs.open('file.txt', 'w', 'utf-8')
for line in codecs.open('a.txt', 'r', 'utf-8'):
L = p.findall(line)
if L:
f.write(L[-1] + '\r\n')
print L[-1]
f.flush()
f.close()
0080デフォルトの名無しさん
2013/01/29(火) 09:43:15.98pattern = ur'(([^。(]+)。それは「([^。]+)である。」)' # 行の全ての (A。それは「Bである。」) にマッチ
last_match = ur'^.*' + pattern # 行の最後に現れるパターンだけにマッチ
first_match = ur'^.*?' + pattern # 行の最初に現れるパターンだけにマッチ
これをfinditerでループを回せばどれでも望みの結果が得られる。
0081デフォルトの名無しさん
2013/01/29(火) 12:19:35.52ありがとうございます。
期待した結果がとれました。
0082デフォルトの名無しさん
2013/01/29(火) 12:35:55.41単純に"あいうえお" - "えお" = "あいう"
こういうことをしたいのですが。
0083デフォルトの名無しさん
2013/01/29(火) 13:41:05.050084デフォルトの名無しさん
2013/01/29(火) 13:59:38.88b = set(u"えお")
c = a - b
print "".join(c)
0085デフォルトの名無しさん
2013/01/29(火) 16:33:41.34ありがとうございます。
0086デフォルトの名無しさん
2013/01/29(火) 18:19:51.08参考までに聞きたいんだが、文字列の引き算をどこに使う予定なの?
具体的な使い道が浮かばんわw
0087デフォルトの名無しさん
2013/01/29(火) 20:13:28.580088デフォルトの名無しさん
2013/01/29(火) 23:28:38.52文字列同士の引き算って元々何かのプログラミング言語とかにあるものなの?
0089デフォルトの名無しさん
2013/01/29(火) 23:55:07.680090デフォルトの名無しさん
2013/01/29(火) 23:58:00.59Subtracting one string from another will remove all occurrences
of the second string from the first one. So "foobarfoogazonk" - "foo" results in "bargazonk".
Pike Manual
http://fredrik.hubbe.net/pike/tutorial/tutorial_4.html#4.1.3
0091デフォルトの名無しさん
2013/01/30(水) 00:24:02.84pikeか。名前は聞いた事あるけどしらなかったわ。
ありがとう。
0092デフォルトの名無しさん
2013/01/30(水) 13:52:16.05PyQtってどうなの?
0093デフォルトの名無しさん
2013/01/30(水) 19:06:09.46聞きたいことを具体的に書けよ。
0094デフォルトの名無しさん
2013/01/30(水) 19:30:30.04でも PySide の方がいいってひともいるし
wxPython 最強ってひともいる
0095デフォルトの名無しさん
2013/01/30(水) 22:01:01.660096デフォルトの名無しさん
2013/01/30(水) 22:05:14.10第三者にもソースを開示する義務を負うので
それが嫌な人には使えない
0097デフォルトの名無しさん
2013/01/31(木) 05:33:36.79ttp://www.amazon.co.jp/dp/4877832890/
このひとの他の本酷かったから買うつもり無いけど
0098デフォルトの名無しさん
2013/01/31(木) 19:18:09.78pythonのプログラム上でlispのプログラムを呼び出して使うってことはできないですよね?
0099デフォルトの名無しさん
2013/01/31(木) 21:00:36.43lispプログラム起動するコマンド発行すればいいだけじゃね?
0100デフォルトの名無しさん
2013/01/31(木) 21:03:12.050101デフォルトの名無しさん
2013/01/31(木) 21:16:35.51ttp://common-lisp.net/project/clpython/
0102デフォルトの名無しさん
2013/01/31(木) 21:43:42.35http://www.aoky.net/articles/peter_norvig/lispy2.htm
0103デフォルトの名無しさん
2013/01/31(木) 22:38:59.17こういうリストを
a=[1,2,3,4,5]
こうしたいのですが、
a=['1','2','3','4','5']
どうしても
a= '[1,2,3,4,5]'
となってしまいます。
どうすれば
a=['1','2','3','4','5']
が得られるか教えてください。
よろしくお願いします。
0104デフォルトの名無しさん
2013/01/31(木) 22:47:30.710105デフォルトの名無しさん
2013/01/31(木) 22:49:38.240106デフォルトの名無しさん
2013/01/31(木) 22:59:33.23ありがとうございました!!
0107デフォルトの名無しさん
2013/01/31(木) 23:19:00.57今、それを調べてました。やっと使い方がわかりました。ありがとうございます。
0108デフォルトの名無しさん
2013/02/01(金) 01:58:54.760109デフォルトの名無しさん
2013/02/01(金) 02:20:51.93何が問題なんでしょうか?
In [1]: for i in range(3) :
...: print i
...:
0
1
2
In [2]: for i in range(3) :
print i
------> print(i)
------------------------------------------------------------
IndentationError: expected an indented block (<ipython console>, line 2)
まったく同じ質問が以下のスレにあったのですが、スルーされていました。
Pythonのお勉強 Part35
http://www.logsoku.com/r/tech/1253535109/51
0110デフォルトの名無しさん
2013/02/01(金) 03:13:40.59Pythonはブロックの中身が空だとエラーが出る
0111デフォルトの名無しさん
2013/02/01(金) 07:32:39.48みなさんプログラミングがんばってますか〜
みんなのみんなのパイチンくんですよ〜
0112デフォルトの名無しさん
2013/02/01(金) 10:00:33.920113デフォルトの名無しさん
2013/02/01(金) 13:38:22.26できるのですね、ありがとうございます。
0114デフォルトの名無しさん
2013/02/02(土) 00:08:57.65Emacs Lisp を使わねばならなくなり、といって今さら Lisp の勉強なんぞしたくないと
思っていました。
でも この記事(読んだのは lispy.htm ですが)を読むことで Lisp
のエッセンスを三時間で理解できたと思います。Lisp を好きになっちゃいました。
0115デフォルトの名無しさん
2013/02/02(土) 08:00:42.81文字列をwriteした時、使用される文字コードは
どこの設定で決まるのでしょうか。
WindowsXPのコマンドラインから実行する前提です。
0116デフォルトの名無しさん
2013/02/02(土) 08:01:00.84として
list[4]=0
とすると
list=[0, 1, 2, 3, 0, 5]
とリスト内の要素を指定出来ますが、
逆に4以外を操作したいって場合はうまい書き方はありませんか?
つまり、「hogehogeでない要素」という否定の要素の指定をお願いします。
0117デフォルトの名無しさん
2013/02/02(土) 08:37:38.27>>> L = [0, 1, 2, 3, 4, 5]
>>> L1 = []
>>> for i in range(len(L)):
... if L[i] != 4:
... L1.append(None)
... else:
... L1.append(L[i])
...
>>> L1
[None, None, None, None, 4, None]
0118デフォルトの名無しさん
2013/02/02(土) 08:52:58.99f = lambda e: 9 if e != 4 else 4
L = [ 3, 8, 4, 0, 7 ]
R = [ f(e) for e in L ]
print R
0119デフォルトの名無しさん
2013/02/02(土) 10:17:56.45普通にopen(ファイル名,'w')して文字列をwriteした時、
使用される文字コードはソースファイルのエンコードで決まる。
# -*- coding: utf-8 -*-
として、
open('hoge.txt', 'w').write('あいう')
ならutf-8で書かれるし、
open('hoge.txt', 'w').write('あいう'.decode('utf-8').encode('cp932'))
ならcp932で書かれる。
codecs使わない限りバイナリには影響与えない。
0120デフォルトの名無しさん
2013/02/02(土) 10:19:33.26ちょっと注意が必要。
argvに入ってくる文字列のエンコードとかあるし。
0121デフォルトの名無しさん
2013/02/02(土) 11:43:34.91いや、4って要素じゃなくて添字のことでしょ
>>> L = [0, 1, 2, 3, 4, 5]
>>> L = [0 if i!=4 else j for i,j in enumerate(L)]
>>> L
[0, 0, 0, 0, 4, 0]
0122デフォルトの名無しさん
2013/02/02(土) 12:04:34.89^^^^ ^^^^
0123デフォルトの名無しさん
2013/02/02(土) 12:09:57.83L[4]=0
で4という要素にはアクセスできない。質問者が言葉を間違えてるだけ
0124デフォルトの名無しさん
2013/02/02(土) 12:22:18.22l = [0,1,2,3,4,5]
t = l.pop(4)
for i in range(len(l)):
l[i] = 2
l[4:1] = [t]
print l
[2, 2, 2, 2, 4, 2]
0125デフォルトの名無しさん
2013/02/02(土) 12:53:26.99l = np.array([0,1,2,3,4,5])
for i in np.argwhere(l!=4):
l[i] = 99
print l
0126デフォルトの名無しさん
2013/02/02(土) 12:56:58.25用途に合ってないのに使うのは微妙
0127デフォルトの名無しさん
2013/02/02(土) 13:00:42.800128デフォルトの名無しさん
2013/02/02(土) 13:13:49.23>>> L = [0, 1, 2, 3, 4, 5]
>>> L2 = []
>>> for i in range(len(L)):
... if i != 4:
... L2.append(None)
... else:
... L2.append(L[i])
...
>>> L2
[None, None, None, None, 4, None]
LをL3として、
L3 = [100, 101, 102, 103, 104, 105]
とした時に、どういう事をしたくてどういう結果が欲しかったのか、
質問し直してくれない?>>116
0129デフォルトの名無しさん
2013/02/02(土) 13:17:05.54要素 [0 if i!=4 else i for i in L]
これだけの話
0130デフォルトの名無しさん
2013/02/02(土) 13:27:52.84l = [0,1,2,3,4,5]
t = range(len(l))
t.pop(4)
for i in t:
l[i] = 0
0131デフォルトの名無しさん
2013/02/02(土) 13:41:23.65なんでリスト内包表記を使わないの?
>リストに要素を append() する場合、インタプリタは「リストから append 属性を
>取り出してそれを関数として呼び出す」という処理をしなければなりません。
> それに対して、リスト内包表記を使うと、インタプリタに直接「リストに要素を
>追加する」という処理をさせることができます。インタプリタが解釈する命令数
>が減る、属性の取り出しが不要になる、関数呼び出しが不要になる、という3つ
>の理由で、リスト内包表記を使うと速くなります。
http://dsas.blog.klab.org/archives/51742727.html
0132デフォルトの名無しさん
2013/02/02(土) 13:55:47.45for i in range(len(L)): ~ でやるなら代入とスキップでいいだろ
なんで新たにリストを作って毎度関数を呼び出すのか
0133デフォルトの名無しさん
2013/02/02(土) 14:09:36.491つ目、内包表記の中で条件分岐とか分かりづらいと思った。
2つ目、質問者>>116の質問内容からして、内包表記は難しいと思った。
以下のように各要素を100倍するだけなら内包表記を説明したかも。
>>> L4 = [x * 100 for x in L]
>>> L4
[0, 100, 200, 300, 400, 500]
>>> ML5 = map(lambda x: x * 100, L)
>>> ML5
<map object at 0xb70f766c>
>>> tuple(ML5)
(0, 100, 200, 300, 400, 500)
>>> tuple(ML5)
()
3つ目、実行速度とか効率とかよりも以前の問題で>>116は躓いてるでしょ。
質問者がどこで躓いているのか把握した上で答えようよ。
> 逆に4以外を操作したいって場合はうまい書き方はありませんか?
>つまり、「hogehogeでない要素」という否定の要素の指定をお願いします。
って聞いてきた人に「内容表記ってのがあってー」とかって言うと、
質問者は混乱すると思うよ。頭の悪い回答者だと思う。
0134デフォルトの名無しさん
2013/02/02(土) 14:22:07.62内包表記というのがあってーじゃなくて
こういうときはこうすると覚えればいいだけ
それにリスト内包表記や三項演算子のネストは止めた方が良いが
今回それぞれ一個だからわかりづらくはない
pythonのリスト内包表記や三項演算子はfor文やif文と直交性があるから
mapやfilterやlambdaを組み合わせるより遥かに直感的に書ける
まるでC言語のようなコードをPythonで書くのは馬鹿らしいことだよ
Pythonではどう書くのか覚えて慣れたほうがいい
0135デフォルトの名無しさん
2013/02/02(土) 14:59:20.33質問のどこが悪いのか指摘したうえで再提出要求でいいよ
でないとプログラマがするような質問の仕方が身につかない
0136デフォルトの名無しさん
2013/02/02(土) 15:16:12.990137デフォルトの名無しさん
2013/02/02(土) 15:38:55.890138デフォルトの名無しさん
2013/02/02(土) 15:50:04.55という時に使う言葉ではあるが
0139デフォルトの名無しさん
2013/02/02(土) 15:54:57.270140デフォルトの名無しさん
2013/02/02(土) 17:10:03.620141デフォルトの名無しさん
2013/02/02(土) 17:14:15.13> - very clear, concise, and orthogonal syntax
PythonにあってPHPにないものは?
・簡潔明瞭で、直交性の高いシンタックス
http://wiki.python.org/moin/PythonVsPhp (公式)
> its syntax and toolset are remarkably coherent. Moreover,like math, its design is orthogonal
http://books.google.co.jp/books?id=nEJ-jcYF2fMC&pg=PA16&lpg=PA16&dq=orthogonal#v=onepage&q=orthogonal&f=false (オライリー)
0142デフォルトの名無しさん
2013/02/02(土) 17:18:11.31応用的な使い方されると、もう分からない。
>>139とかほとんど真逆の事言われてるような気すらする…
0143デフォルトの名無しさん
2013/02/02(土) 17:18:32.04なんで直行性でそういう意味になるんだろう
0144デフォルトの名無しさん
2013/02/02(土) 17:21:47.72いかにベクトルが同じ方向を向かないかを意味するのに、
同じ方法で同じ結果が得られるという意味に使おうという
ガイジンの発想がよく分からん
0145デフォルトの名無しさん
2013/02/02(土) 17:38:59.87for はイテラブル・オブジェクトを辿るし、if は条件を判定するってだけ
これで条件演算子が e1 ? e2:e3 だったらシンタックスのコンパクトさが損なわれる
全部個人的な評価だけど
0146デフォルトの名無しさん
2013/02/02(土) 17:55:03.330147デフォルトの名無しさん
2013/02/02(土) 18:08:08.99あとfor文やwhile文のelse節を使ったコードは寡聞にして見たことがない
0148デフォルトの名無しさん
2013/02/02(土) 18:41:17.44X = mx
Y = my
こうなってたら、Xは、xによるが、yによらない。
0149デフォルトの名無しさん
2013/02/02(土) 18:43:22.60ある処理を実現する複数の従属な記述がないから。
本当はいくらでも違う書き方が出来るけど、まあ独立性についてはそんな感じ。でも一貫性と言ったほうが分かりやすい。
0150デフォルトの名無しさん
2013/02/02(土) 18:47:47.140151デフォルトの名無しさん
2013/02/02(土) 19:40:22.93長々とスレ違いな話題ですまん。
皆の意見参考にして自分なりに考えてみた。
こういう解釈でいいんだろうか?
直交性が高いシンタックス
= シンタックスと文脈の直交性が高い
(キーワードが文脈と独立して解釈出来る)
= どんな文脈でも forはiteration、ifは条件分岐を意味する
かつ、iteration、条件分岐を意味する他のキーワードはない
= >>134、138 の意味
0153116
2013/02/02(土) 21:33:57.37そして、丁寧に回答してくださった方々ありがとうございました。
添え字で否定の指定したかったのですが、ここまで大変参考になりました。
リスト内包表記は視覚的にもとても見やすいので使いこなせるよう頑張ります。
0154デフォルトの名無しさん
2013/02/02(土) 21:45:23.810155デフォルトの名無しさん
2013/02/02(土) 23:07:18.96>>139 の説明が悪いんだろ。
(異なる対象に対して、)
同じような操作で、同じような結果が得られるとき
(は、対象と操作の直交性が高い (つまり、対象と操作の独立性が高い))
>>145 とかは、俺も意味がわからん。
直交って言ってるんだから、○○と△△ のようにベクトルは2つ必要だと思うが。
0156デフォルトの名無しさん
2013/02/02(土) 23:16:59.40ベクトルは一切関係ないです。一切。
0157デフォルトの名無しさん
2013/02/02(土) 23:19:24.88img = cv2.imread("hoge.jpg", 1)
b = g = r = img.copy()
OpenCVで画像を読み込んだのでimgの中身はnumpyの3次元arrayなのですが
これを普通の文字列や数値と同じノリで代入してもr,g,bそれぞれ全部0のarrayが代入されてしまいます。
もちろんそれぞれ別箇に代入すれば解決しましたけど、なるべく同時に代入するよう記述したいです。
うまい記述方法はありませんか?
0158デフォルトの名無しさん
2013/02/02(土) 23:24:20.220159デフォルトの名無しさん
2013/02/02(土) 23:39:51.06まずもって全て0の配列が代入される意味は分からんが、それ以前に
そんなことしたら r, g, b は全部同じオブジェクトを指すことになるのだが、それで良いのか
つまり r の要素を変更したら g, b も同じく変更される
0160デフォルトの名無しさん
2013/02/02(土) 23:45:58.12b, c, d = [img.copy() for i in range(3)]
0161デフォルトの名無しさん
2013/02/02(土) 23:46:34.26やはりそれが問題なのでしょうか?
すべて値渡しにするためには
b, g, r = img.copy(), img.copy(), img.copy()
しかないのでしょうか?
レスありがとうございました。
0162デフォルトの名無しさん
2013/02/02(土) 23:51:50.12ありがとうございます
これでちゃんと通りました
リスト内包表記は便利ですね
0163デフォルトの名無しさん
2013/02/03(日) 23:44:01.29ValueError: array is too big.
これにうまく対処する方法はありますか?
(メモリでなく一時的にHDDに書き出しながら計算するとか?)
たとえば、以下のような計算をしたいです。
import numpy as np
N=1000000
A = np.random.rand(N,N)
B = np.random.rand(N,N)
C = np.tensordot(A,B,([1,0],[0,1]))
print C
0164デフォルトの名無しさん
2013/02/04(月) 00:08:24.040165デフォルトの名無しさん
2013/02/04(月) 00:17:05.17A,Bをジェネレータにできないようなら
変に工夫するよりmmapつかって富豪プログラミングするかな。
numpy.memmapとか。
0166デフォルトの名無しさん
2013/02/05(火) 00:53:58.19http://www.ops.dti.ne.jp/ironpython.beginner/multithread3.html
mutex モジュールは Python 3.0 で削除されました。 との事でした。
http://docs.python.jp/3/library/mutex.html
Python 3で多重起動防止をやるにはどうしたらよいでしょうか
0167デフォルトの名無しさん
2013/02/05(火) 06:29:12.53http://d.hatena.ne.jp/yatt/20100107/1262869979
http://www.phactory.jp/cms/blog/post/admin/2010/02/python_lock/
0168デフォルトの名無しさん
2013/02/05(火) 16:08:39.88排他制御の実現方法は幾つかあるけど、多分、各環境毎に実装方法が異なるので
Pythonで〜というより、環境が提供してる方法を調べた方がいいかもしれない。
(例えば、wxだったらwx.SingleInstanceChecker みたいなのが用意されてたりする)
0169デフォルトの名無しさん
2013/02/05(火) 16:32:33.17flock()がなぜか無駄に有名だけど、flock()はPosix標準ですらないので
少なくともPosix標準で定義されていて高機能なfcntl系のlockf()を使った方がいいよ
あと紛らわしいのがmutexってPosix系とWindowsで意味が違っていて
pthreadだとスレッド同期オブジェクトだがWindowsではプロセス間排他に使える
グローバルなカーネルオブジェクト
なのでWindowsならばmutexを使うのはこの場合一つの妥当な解だけど
ctypesとかwin32専用のモジュールを使う必要があるはず
0170デフォルトの名無しさん
2013/02/05(火) 16:35:22.63multiprocessingの方のSemaphoreは、内部で名前付きセマフォを使ってるんだけど、
引数で名前を指定する方法がないので、惜しいけど、多重起動防止には使えない。
ちなみに、ロック・ファイル方式は、システムがクラッシュした時、
ロックが残ってしまった場合を考慮すると運用面で難有りです。
0171デフォルトの名無しさん
2013/02/05(火) 16:49:07.46http://pypi.python.org/pypi/justme/
Prohibit to run two process/instance at same time.
to use a transaction behavior via sqlite3.
頑張って作ってみたよ。どうぞ。
0172デフォルトの名無しさん
2013/02/05(火) 20:29:37.920173デフォルトの名無しさん
2013/02/06(水) 00:15:59.16f = open(ファイルパス、r、UTF-8)で読み込ませたかったんですが、
'unicodeescape' codec can't decode 〜
というエラーが出てしまい読み込みません。どうしたらいいのでしょうか?
0174デフォルトの名無しさん
2013/02/06(水) 00:37:22.92たぶんコレだろ
ttp://stackoverflow.com/questions/1347791/unicode-error-unicodeescape-codec-cant-decode-bytes-cannot-open-text-file
0175デフォルトの名無しさん
2013/02/06(水) 00:41:41.81まずは、環境を明記し実際のコードとエラーメッセージを省略せずに貼り付けて
よくあるケースだと、メモ帳でutf-8のファイル作るとBOMが付くのが原因
Pythonで BOM付き utf8 読むときは "utf8-sig" を指定する。
0176173
2013/02/06(水) 01:01:39.34windows7 home premiumにpythonをインストールして使っています
>>> f = open("C:\Users\kenta\Desktop\english2.txt" , "r" , encoding = "utf-8")
File "<stdin>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in positio
n 2-4: truncated \UXXXXXXXX escape
このように出ます。
utf-8をutf8-sigにしましたが同じでした。
>>173様のurlを見ましたが、パスの頭が\uなのがいけないということでしょうか?
0177デフォルトの名無しさん
2013/02/06(水) 02:12:04.33俺の環境では、パスの\を/にしたら行けた
0178173
2013/02/06(水) 02:16:20.34解決しました!ありがとうございます!
しかしなぜバックスラッシュを入れるべきところでスラッシュが許可されるのでしょう?
他いろんな箇所でもバックスラッシュとスラッシュが入れ替わり可能なんでしょうか
御存じの方教えていただけませんか
0179デフォルトの名無しさん
2013/02/06(水) 02:17:00.46\を\\にしても行ける
0180デフォルトの名無しさん
2013/02/06(水) 02:37:35.940181デフォルトの名無しさん
2013/02/06(水) 09:12:59.85パス名として扱われる文字列中ではディレクトリ階層の区切り文字として
↓の2つが使えると考えればおk
・python標準の区切り文字 /
・os標準の区切り文字 (Windowsなら)\
\は扱いが面倒くさいし移植性も低いから素直に/を使うのがいいかと
>>180
os.listdir(r'C:\Users\ore\')
SyntaxError: (ry
このように出ま(ry
ってなったり\区切りは何かと面倒くさいよね
0182デフォルトの名無しさん
2013/02/06(水) 09:47:32.41知らなかった。
0183デフォルトの名無しさん
2013/02/06(水) 10:02:48.29ここには書かれてないよね
ttp://python.rdy.jp/
0184デフォルトの名無しさん
2013/02/06(水) 11:30:28.130185173
2013/02/06(水) 12:25:29.76区切り文字が複数ある場合があるんですね
os.listdir(r'C:\Users\ore\')
だと最後の'がraw文字列になって引用終わりになってないってことですよね?
os.listdir(r'C:\Users\ore\'')でやってみたらできますね…
みなさんありがとうございました^o^
0186デフォルトの名無しさん
2013/02/06(水) 12:49:18.070187デフォルトの名無しさん
2013/02/06(水) 13:26:55.51>>> import os
>>> os.path.join('c:', 'users', 'ore')
'c:/users/ore
>>> os.path.expanduser('~')
'/home/ore'
移植性が高くって良いじゃないですか。
0188デフォルトの名無しさん
2013/02/06(水) 14:21:03.54windowsでパス区切りに / を使うと、区切り文字が混ざったりする
0189デフォルトの名無しさん
2013/02/06(水) 15:26:14.160190デフォルトの名無しさん
2013/02/06(水) 17:10:52.160191デフォルトの名無しさん
2013/02/06(水) 17:59:22.13起動履歴にもなるのは良いね。使ってみたので幾つかフィードバック
* SQLのコメントは -- (エラーが出た、修正したら動いた)
* 辞書の順序、トリッキーな事しなくても、名前つきプレースホルダ使えば辞書のまま渡せるよ
* lock/unlock は with 文に対応すると隠せる
* 起動中のアプリケーションのPIDを知る方法があれば、より良いかもしれない。
多重起動しない代わりに、シグナル等を送ってウィンドウをアクティブにしたりする等の需要がある
0192デフォルトの名無しさん
2013/02/06(水) 19:02:44.94> * SQLのコメントは -- (エラーが出た、修正したら動いた)
これは、手元で対応済みです。
ご迷惑お掛けしました。
> * 辞書の順序、トリッキーな事しなくても、名前つきプレースホルダ使えば辞書のまま渡せるよ
指摘の点で、ここだけちょっと分からないのですが。
> * lock/unlock は with 文に対応すると隠せる
こちらも、手元で対応済みです。
> * 起動中のアプリケーションのPIDを知る方法があれば、より良いかもしれない。
> 多重起動しない代わりに、シグナル等を送ってウィンドウをアクティブにしたりする等の需要がある
これは対応しようと思っていました。
誰かに言われたら考えよーって思ってました。
早速指摘されたので対応策を考えようと思います。
0193192
2013/02/06(水) 19:20:32.97> * 辞書の順序、トリッキーな事しなくても、名前つきプレースホルダ使えば辞書のまま渡せるよ
分かりましたので修正しました。
ご指摘ありがとうございます。
0194デフォルトの名無しさん
2013/02/06(水) 22:19:38.57自分のブログででも宣伝したらいいのに
0195デフォルトの名無しさん
2013/02/06(水) 23:57:11.03おまえ根性腐ってるな
0196デフォルトの名無しさん
2013/02/07(木) 00:00:32.060197デフォルトの名無しさん
2013/02/07(木) 01:11:32.20例えば、こんなcsvを読み込んで3個で1セットにしたいのですが。
1,1,1,2,2,2,3,3,3
5,5,5,6,6,6
line1 = [(1,1,1),(2,2,2),(3,3,3)]
line2 = [(5,5,5),(6,6,6)]
と言った感じで。
0198デフォルトの名無しさん
2013/02/07(木) 01:25:41.01apiがよくないね
例えばjustme1.py justme2.pyのそれぞれでJustMe.lock()した場合、
(JustMeを)使う側が意図するのは、justme1.py justme2.pyそれぞれのプロセスが
ひとつずつになることだと思うけどそうはならない。
ならばと、JustMe(script_name='justme1') JustMe(script_name='justme2')
とするけどこれもやっぱり上と同じ動作をするんだよね。
script_nameを渡せるならscript_nameだけでロック対象を区別するべきで、
db_pathみたいな本来の目的にはさほど関係ない要素はカプセル化したほうがいいかと。
0199デフォルトの名無しさん
2013/02/07(木) 01:29:19.28>>> list(zip(*[iter(a)]*3))
[(1,1,1), (2,2,2), (3,3,3)]
端数がある場合は itertoolsの zip_longest で。
そういえば、ちょっと前に挙がった pike だと
配列/数値 の割り算(?) で同様の分割が出来たりしてた。
0200デフォルトの名無しさん
2013/02/07(木) 02:02:37.42例外処理なし
>>> lines = []
>>> for line in open('test.csv'):
... linen = eval(line)
... lines.append([tuple(linen[i*3:(i+1)*3]) for i in range(len(linen)/3)])
...
>>> lines[0]
[(1, 1, 1), (2, 2, 2), (3, 3, 3)]
>>> lines[1]
[(5, 5, 5), (6, 6, 6)]
0201デフォルトの名無しさん
2013/02/07(木) 02:06:42.79↓
lines.append([linen[i*3:(i+1)*3] for i in range(len(linen)/3)])
0202デフォルトの名無しさん
2013/02/07(木) 02:16:02.69>>200 あまりにもゴリゴリすぃ
0203デフォルトの名無しさん
2013/02/07(木) 02:19:37.04僕もそういうコーディングできるようになりたいんで
どういう本を読んでその域に達したのかとか
通ってる(た)大学とか
年収とか
彼女の有無とか
教えてくださいm(_ _)m
0204デフォルトの名無しさん
2013/02/07(木) 02:20:49.75あなたと同じ低学歴童貞ニートです
0205デフォルトの名無しさん
2013/02/07(木) 02:23:23.40僕が低学歴なのも童貞なのもニートなのもあたってますけど…
そういう冗談はいいのでマジで教えてください
せめて一個目の質問だけでも
0206デフォルトの名無しさん
2013/02/07(木) 02:56:33.410207デフォルトの名無しさん
2013/02/07(木) 02:59:06.850208デフォルトの名無しさん
2013/02/07(木) 05:04:41.44心の中では「ペップエイト」と呼んでいるのですが、正解はピーイーピーエイトあたりでしょうか?
いつか口に出す機会が訪れたときに備えておきたいです。
0210デフォルトの名無しさん
2013/02/07(木) 08:59:21.76記念に釣られてみるが
ここ最近の Python の伸びは node.js の影響かもな
0211デフォルトの名無しさん
2013/02/07(木) 09:20:46.03ペッペイト
0212171=192
2013/02/07(木) 09:31:04.17お昼頃にはpypiにuploadしたいと思います。
>>198
apiではなく、名前が悪いのでしょう。
db_pathをlock_file_pathに修正しました。
重要な修正になりますが、
公開から48時間経っていませんし、
こっそり修正してもイイカナ。
>>191
> * 起動中のアプリケーションのPIDを知る方法
insert('prelock')をauto commit modeで発行し、
insert('lock')でtransaction immediateを発行するようにしました。
もしも誰かと競合し多重起動になった場合、
自分がinsert('prelock'), insert('lock')を発行した瞬間よりも前に、
誰かがinsert('prelock')を発行していますので、
現状の'prelock'の内容を吐き出すことで、
誰がlock()したのか分かるように出来ました。
ただ、微妙な順序、つまり、ほぼ同時期にprelock, lockを発行する場合を考えると、
A-prelock
B-prelock
C-prelock
A-lock
B-lock => 多重起動を検知するが、最終prelockは、C-prelock!
A-prelock, C-prelockが分かってもどっちがlockしているのか断定出来ない!
一番最後のprelockは誰が現在lock()しているのかを、必ずしも教えてくれません。
ですので、多重起動を検知した場合、過去10件のprelockを表示するようにしました。
さすがに、10人が多重起動云々は考えなくて良いよね、、、
0213デフォルトの名無しさん
2013/02/07(木) 09:33:02.59臭すぎるよ
0214デフォルトの名無しさん
2013/02/07(木) 09:33:44.36最悪の開発者だな
0215デフォルトの名無しさん
2013/02/07(木) 09:36:39.770216デフォルトの名無しさん
2013/02/07(木) 09:42:46.770217デフォルトの名無しさん
2013/02/07(木) 09:43:41.630218デフォルトの名無しさん
2013/02/07(木) 09:48:17.620219デフォルトの名無しさん
2013/02/07(木) 10:03:21.24もちろん全部自演です
0220デフォルトの名無しさん
2013/02/07(木) 10:18:15.25|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||
|| ○荒らしは放置が一番キライ。荒らしは常に誰かの反応を待っています。
|| ○重複スレには誘導リンクを貼って放置。ウザイと思ったらそのまま放置。
|| ○放置された荒らしは煽りや自作自演であなたのレスを誘います。
|| ノセられてレスしたらその時点であなたの負け。
|| ○反撃は荒らしの滋養にして栄養であり最も喜ぶことです。荒らしにエサを
|| 与えないで下さい。 Λ_Λ
|| ○枯死するまで孤独に暴れさせておいて \ (゚ー゚*) キホン。
|| ゴミが溜まったら削除が一番です。 ⊂⊂ |
||___ ∧ ∧__∧ ∧__ ∧ ∧_ | ̄ ̄ ̄ ̄|
( ∧ ∧__ ( ∧ ∧__( ∧ ∧  ̄ ̄ ̄
〜(_( ∧ ∧_ ( ∧ ∧_ ( ∧ ∧ は〜い、先生。
〜(_( ,,)〜(_( ,,)〜(_( ,,)
〜(___ノ 〜(___ノ 〜(___ノ
0221171=192
2013/02/07(木) 13:29:14.04先ほど、version=1.1.0を公開しました。
色々便利にしました。完成したと思っています。
若干荒れてしまったようです。
そもそも作ろうとした切っ掛けは、>>166の需要があると分かったからです。
自分でも欲しいとは思っていたのですが、
自分一人だけなら、起動時に気を配るだけで多重起動に対処できる、
また、os.path.exists()使えば済む話なのに、
作るのも面倒くさいなーと思っていたので作らなかったのでした。
なので、>>171はスレの流れに沿った投稿です。
>>192も>>191の意見に答えたモノです。
>>212も>>198に答えたモノです。
>>212の下二段は勉強スレに書くべきだったかもしれません。
自分で一から作りましたので、>>166の投稿は、
sqlite3, sqlite3のtransactionの勉強をする良い契機となりました。
0224デフォルトの名無しさん
2013/02/07(木) 13:55:22.610225171=192 ◆bCJxn8aZG34F
2013/02/07(木) 14:01:02.750226デフォルトの名無しさん
2013/02/07(木) 14:04:43.69(そういうの=自作自演&スレ私物化&汚ミット)
0227デフォルトの名無しさん
2013/02/07(木) 16:13:49.900228デフォルトの名無しさん
2013/02/07(木) 19:02:43.100229デフォルトの名無しさん
2013/02/08(金) 01:48:14.28zip等、関数型プログラミング言語由来の機能を使ったコードを考える時は、
関数型言語 (SchemeやHaskell) でのプログラミングの経験が役に立つ。
Pythonで学ぶなら 公式ドキュメント内の "関数型プログラミング HOWTO" を入門に、参考資料を辿ると良い。
イデオムとして覚えておきたいなら、公式ドキュメント他、PLEAC,PyMOTW,Cookbook等にたくさんレシピがあります。
207のgrouperが199のコードそのものだし。例えば、他の似たような処理
0230デフォルトの名無しさん
2013/02/08(金) 01:50:26.71* ファイルからnバイトずつ読むイテレータ iter(lambda: stream.read(n), "")
ちなみに、199はイテレータを取れるけど、対象がシーケンス(lenで予め長さが解かる)の場合は
スライスを取るようにした方がループ回数少なく済むので、そちらの方が効率は良いかもしれないです。
>>225
don't mind. 多重起動防止の実装を調べる切っ掛けになったし。参考になったよ。ありがとう
0231デフォルトの名無しさん
2013/02/08(金) 02:19:27.010232デフォルトの名無しさん
2013/02/08(金) 02:21:14.110233梅どぶろく=171=192 ◆21Da3ggG3M
2013/02/08(金) 11:36:07.87ありがとうございます。
>>225
は愉快犯です。
多分一連の荒らし。
お前は死ね。
0234デフォルトの名無しさん
2013/02/08(金) 13:17:19.14そういうことをして何が楽しいのでしょうか?
荒らしに荒らし呼ばわりされるようなことは何もしていません。
0235171=192 ◆UwwhKlilKVPU
2013/02/08(金) 13:19:39.75トリップ変えます
0236梅なんとか=171=192 ◆hxdjhIaCpI
2013/02/08(金) 13:32:39.39誰だよ?
あと、自演癖を治したいのでいい病院教えてください。
0237デフォルトの名無しさん
2013/02/08(金) 13:43:09.22www.google.co.jp/search?q=21Da3ggG3M
安田英幸と鳥かぶってるゾ
^^^^誰?
0238デフォルトの名無しさん
2013/02/08(金) 14:04:57.53勤務先企業と裁判 -> 係争中から2chに粘着 -> 職を失う ->
2chでアンチと闘いながら自作自演に勤しむ日々
0239デフォルトの名無しさん
2013/02/08(金) 14:50:54.630240デフォルトの名無しさん
2013/02/08(金) 15:11:17.760241デフォルトの名無しさん
2013/02/08(金) 16:49:19.23空飛ぶPython即時開発指南書 Naomi Ceder (著), 新丈 径 (監修)
ttp://www.amazon.co.jp/dp/479813080X/
パーフェクトPython Pythonサポーターズ (著)
ttp://www.amazon.co.jp/dp/477415539X/
Pythonサポーターズって何よ?w すっげー怪しいんだけど
0242デフォルトの名無しさん
2013/02/08(金) 16:57:35.39発売一月後の尼レビューがいい感じな方
0243デフォルトの名無しさん
2013/02/08(金) 17:58:34.89内容紹介読むと
空飛ぶ: 初心者向け
パーフェクト: 脱初級者向け
って感じだな。
空飛ぶの方はジャケ買いしたくなる魅力があるw
0244デフォルトの名無しさん
2013/02/08(金) 17:58:56.62上の原書はManningのThe Quick Python Bookか
ここか本スレで勧めてる人いたなあ
0245デフォルトの名無しさん
2013/02/08(金) 19:47:14.990246デフォルトの名無しさん
2013/02/08(金) 20:54:10.30怪しい新刊が出る度に猛チェックしてる時点でお里が知れる
0247デフォルトの名無しさん
2013/02/08(金) 21:34:09.28英語読めないことに相当なコンプレックスがあるんだろうな
0248デフォルトの名無しさん
2013/02/08(金) 21:36:46.980249デフォルトの名無しさん
2013/02/08(金) 21:42:04.91カワイイ奴だな
中2の俺を思い出すよ(笑)
0250デフォルトの名無しさん
2013/02/08(金) 21:43:06.280251デフォルトの名無しさん
2013/02/08(金) 21:43:16.71洋書のPython本でお勧めは?
書名だけでなくどこがお勧めかも書いて
0252デフォルトの名無しさん
2013/02/08(金) 21:44:44.83ますますカワイイな
0253デフォルトの名無しさん
2013/02/08(金) 21:45:51.67Python Scripting for Computational Science
Numpy Cookbook
Sage Beginner's Guide
そもそも日本にこういうの書いてる人がいないから選択肢がない
0254デフォルトの名無しさん
2013/02/08(金) 21:47:36.84Think Statsとかいうクソ本も翻訳されて売られてたし(英語版は無料)
0255デフォルトの名無しさん
2013/02/08(金) 21:55:34.38技術的な背景がわかってればかなり読むの簡単だよね
そのまま英語→カタカナ語になってる用語多いし
高一のころjavaとjavascriptのオライリーの洋書読んで>>246みたいなことしてたわw
0256デフォルトの名無しさん
2013/02/08(金) 21:56:34.53高二病
0257デフォルトの名無しさん
2013/02/08(金) 22:01:05.07高二病というのもあるんだ
ま、リア二だから許して
0258デフォルトの名無しさん
2013/02/08(金) 22:03:46.38お前、実は英語まったく読めないだろ?w
プログラミングスレに居座ってないで英語の勉強しろよ
0259デフォルトの名無しさん
2013/02/08(金) 22:07:18.090260デフォルトの名無しさん
2013/02/08(金) 22:09:03.500261デフォルトの名無しさん
2013/02/08(金) 22:09:44.65確かに読みやすい
あくまでも相対的な話
0262デフォルトの名無しさん
2013/02/08(金) 22:11:05.87洋書で読む必要合ったの?どうせ英語の勉強になるし一石二鳥wwwとか考えたんだろうな
そういう英語の勉強からの現実逃避をやめろ。洋書を買おうが洋画を見ようが
まずその段階に立ってなければ時間を浪費するだけ
まさに二兎追うものは一兎をも得ずだ。英語の読めない高2はさっさと勉強しろ
0263デフォルトの名無しさん
2013/02/08(金) 22:15:52.75どうせ、というか俺世代の奴が洋書読むメリットって
むしろそこにあるでしょ
あとなぜか洋書の方が邦訳版より安かったんだよね
0264デフォルトの名無しさん
2013/02/08(金) 22:18:32.36順番が逆なんだよ。なんのために勉強してるの?
そんなことが出来るなら勉強する必要ねーじゃん
洋書の方が読むのに時間がかかるんだから、安かったから読むとか馬鹿がすること
時間を大事にしろよ。現実逃避すんな
0265デフォルトの名無しさん
2013/02/08(金) 22:19:25.360266デフォルトの名無しさん
2013/02/08(金) 22:19:39.760267デフォルトの名無しさん
2013/02/08(金) 22:26:15.74その理屈だと
完璧に英語を習得するまでは英文を読むなってことになりますよ
定義できない完璧を目指すのは土台無理なことですし
0268デフォルトの名無しさん
2013/02/08(金) 22:28:22.67高校レベルの英語も満足に出来ないお前が洋書を読むのは時期尚早だとなんで理解できないのかな
0269デフォルトの名無しさん
2013/02/08(金) 22:35:22.15何事も経験するのはいいことだ
0270デフォルトの名無しさん
2013/02/08(金) 22:40:28.350271デフォルトの名無しさん
2013/02/08(金) 22:41:07.18ネイティブじゃない限り和書のほうがずっと早く読めるんだから
多少高くついてもそっちを選ぶべきというのは理屈にかなっているだろ
0272デフォルトの名無しさん
2013/02/08(金) 22:55:15.37>技術書の英語なんて単語の種類や文法の複雑さを鑑みても学習効果なんてたかが知れたこと
これは鋭い指摘ですね
読みやすいという感覚があったのはそういう事情があったからだと思います
ただ、読まされる英文じゃなくて読みたい英文に触れられたのがとにかく新鮮で楽しかったわけです
これは無駄ではなかったと思ってますw
0273デフォルトの名無しさん
2013/02/08(金) 23:01:00.53自己正当化は結構だがそんなんじゃカスみたいな人生しか待ってないぞ
0274デフォルトの名無しさん
2013/02/08(金) 23:05:09.830275デフォルトの名無しさん
2013/02/08(金) 23:17:12.65if is_impotent():
accept_my_fate():
exit(1)
ejaculated = masturbate()
0276デフォルトの名無しさん
2013/02/08(金) 23:20:44.110277デフォルトの名無しさん
2013/02/09(土) 03:14:56.71逆だったら良かったのに。
0278デフォルトの名無しさん
2013/02/09(土) 03:37:34.400279デフォルトの名無しさん
2013/02/09(土) 08:47:37.72そんなに沢山必要か?
0280デフォルトの名無しさん
2013/02/09(土) 13:41:01.640281デフォルトの名無しさん
2013/02/09(土) 16:55:04.220282デフォルトの名無しさん
2013/02/09(土) 17:27:35.120283デフォルトの名無しさん
2013/02/09(土) 17:32:43.14日本語訳を用意してくれるライブラリやプロジェクトは少ない
日本語を選んだほうが良いのは、言うまでもなく、既に日本語訳がある場合に限る
待たなければいけない時点で速く読めるかどうかは関係なくなる
0284デフォルトの名無しさん
2013/02/09(土) 17:50:04.89ライブラリ添付の英語ドキュメントは読めたほうがいいね
0285デフォルトの名無しさん
2013/02/11(月) 17:04:51.47la=[2, 4, 6, 7]
for b in lb:
for a in la:
if a==b :
break
else:
lb.remove(b)
lb
[2, 47, 7, 4, 1]
?
0286デフォルトの名無しさん
2013/02/11(月) 17:05:56.16la=[2, 4, 6, 7]
for b in lb:
for a in la:
if a==b :
break
else:
lb.remove(b)
lb
[2, 47, 7, 4, 1]
?
0287デフォルトの名無しさん
2013/02/11(月) 17:12:37.030288デフォルトの名無しさん
2013/02/11(月) 17:16:06.610289デフォルトの名無しさん
2013/02/11(月) 17:16:31.210290デフォルトの名無しさん
2013/02/11(月) 17:17:55.70確かに
0291デフォルトの名無しさん
2013/02/11(月) 17:33:26.49appendするのがいいですか?
0292デフォルトの名無しさん
2013/02/11(月) 17:35:21.080293デフォルトの名無しさん
2013/02/11(月) 17:45:37.040294デフォルトの名無しさん
2013/02/11(月) 17:50:02.50list を表す時は小文字じゃなくて大文字のL使おうな
あと、こういう風に>>293とやって自分にレスアンカーを付けてやると良いよ
これでいいかい?
>>> La = [2, 4, 6, 7]
>>> Lb = [2, 3, 47, 7, 3, 4, 5, 1]
>>> sta = set(La)
>>> stb = set(Lb)
>>> sta & stb
{2, 4, 7}
>>> sta - stb
{6}
>>> stb - sta
{1, 3, 5, 47}
>>> sta | stb
{1, 2, 3, 4, 5, 6, 7, 47}
0295デフォルトの名無しさん
2013/02/11(月) 17:50:54.02. . : : : :: : : :: : ::: :: : :::: :: ::: ::: ::::::::::::::::::::::::::::::::::::::
. . .... ..: : :: :: ::: :::::: :::::::::::: : :::::::::::::::::::::::::::::::::::::::::::::
Λ_Λ . . . .: : : ::: : :: ::::::::: :::::::::::::::::::::::::::::
/:彡ミ゛ヽ;)ー、 . . .: : : :::::: :::::::::::::::::::::::::::::::::
/ :::/:: ヽ、ヽ、 ::i . .:: :.: ::: . :::::::::::::::::::::::::::::::::::::::
/ :::/;;: ヽ ヽ ::l . :. :. .:: : :: :: :::::::: : ::::::::::::::::::
 ̄ ̄ ̄(_,ノ  ̄ ̄ ̄ヽ、_ノ ̄ ̄ ̄ ̄
0296デフォルトの名無しさん
2013/02/11(月) 17:52:26.790297デフォルトの名無しさん
2013/02/11(月) 17:53:44.29たいへん参考になりました
ありがとうございました
0298デフォルトの名無しさん
2013/02/11(月) 18:04:17.13いまどきハンガリアン?
Python的には小文字アンスコ繋ぎだろ。
やるならa_list
0299デフォルトの名無しさん
2013/02/11(月) 18:10:07.75list_foo, list_foobar を縦に並べて書いた時に
list_ の部分が揃って好き
0300デフォルトの名無しさん
2013/02/11(月) 18:10:23.45欲しかったのはLc?
>>293も満たしたつもりだけど。
>>> Lc = []
>>> for x in Lb:
... if x not in sta:
... Lc.append(x)
...
>>> Lc
[3, 47, 3, 5, 1]
0301デフォルトの名無しさん
2013/02/11(月) 18:10:27.45http://www.python.org/dev/peps/pep-0008/#id27
0302デフォルトの名無しさん
2013/02/11(月) 18:17:06.12どこ?クラス名はCamelCaseと書いてあるのは見つけたけど
0303デフォルトの名無しさん
2013/02/11(月) 18:21:41.93listって書くよりLの方が楽でしょ。
これってお試しでやれば良いだけだし、
4,5行の範囲内だから"list"って書かなくても
"L"でlistって分かるよ。
moduleとかの話とはまた違う話。
柔軟にいこう柔軟に。
PEP: 8
Title: Style Guide for Python Code
http://oldriver.org/python/pep-0008j.html
規範:命名規則
避けるべき名前
「l」 (小文字のエル)、「O」(大文字のオー)、「I」(大文字のアイ)
を1文字の変数名として使わない。
フォントによっては、これらの文字は数字の 1 や 0 と区別できない。
「l」 を使いたくなったら、代わりに「L」を使う。
0304デフォルトの名無しさん
2013/02/11(月) 18:26:00.40リストを表したいなら複数形にすべきだよ
そもそも文頭に数字の1が来ることなんてないだろ
len()はLen()じゃねえし
0305デフォルトの名無しさん
2013/02/11(月) 18:27:08.95Lcではないです。十分です。
0306デフォルトの名無しさん
2013/02/11(月) 18:32:50.56>1文字の変数名として使わない
ここ超重要なんだけどね
2文字以上なら1aとかエラーになるから
気にしなくていい
0307デフォルトの名無しさん
2013/02/11(月) 18:36:31.22'O' (uppercase letter oh), or 'I' (uppercase letter eye) as
single character variable names."
ってあるけど、la(エルエー), Ia(アイエー)は区別付かないので、以下の方が良いと思う。
「l」 (小文字のエル)、「O」(大文字のオー)、「I」(大文字のアイ)
を数文字(2,3文字)の変数名の先頭に使わない。
or
を数文字(2,3文字)の変数名に含めない。
こいつは原文を修正すべきと思いました。
誰かお願い。
本家に申し立てて下さい。
0308デフォルトの名無しさん
2013/02/11(月) 18:37:57.930309デフォルトの名無しさん
2013/02/11(月) 18:38:57.59リーダブルコードをはじめ一般的にそう言われてるでしょ
listの頭文字を別の文字に読み間違える人がいるだろうか
それと、Lがリストを表すというのはどれくらい一般的なんだろう
nがnumber ofを表すってくらい有名なら使っていいと思うけど
0310デフォルトの名無しさん
2013/02/11(月) 18:45:40.37PEP8に書いてあるというのはよく知られていること
0311デフォルトの名無しさん
2013/02/11(月) 18:48:09.220312デフォルトの名無しさん
2013/02/11(月) 18:48:53.881st と区別付きにくくない?
先頭が数字だから変数名には出来ないんだけどさ。
lstってlast, list, lostどれか分かりにくいから止めるべきでは?(`・ω・´)キリッ
Ia(アイエー)って電流の意味で書きたくなるので、
縦棒は大文字の愛さん専用ということで。
>>309
> 1文字の変数名として使わない。
> 数文字(2,3文字)の変数名の先頭に使わない。
勝手に変な話しているぞ
Pythonの話と他の話は分けてしましょう。
Pythonの中でならLがlistを表すのは、
「それくらい分かるだろ?予想付くだろ!」
って言って良いと思う。
0313デフォルトの名無しさん
2013/02/11(月) 18:52:58.58エキスパートPythonプログラミングのPEP8をカバーした命名規則でもそういう話はなかった気がするなあ
別の話を勘違いしてるのはお前じゃないかな
Lがリストなんてどこに書いてある?
0314デフォルトの名無しさん
2013/02/11(月) 18:54:55.42細かいこと気にすんなよ。
0315デフォルトの名無しさん
2013/02/11(月) 18:57:19.64横からだけどPEP8には書いてないけどLっていったら普通はリストだね
listが組み込み名で使えないのが関係してるんじゃないかと
list_とか書くの面倒だし
>>311
やらない
0316デフォルトの名無しさん
2013/02/11(月) 18:58:43.44どこにも書いてないよ。
だから、「それくらい分かるだろ?予想付くだろ!」って書いた。
書いてあるなら「書いてあるだろ!」って書いたけど?
Pythonの中でなら一文字変数Lがlistを表すのは
「それくらい分かるだろ?予想付くだろ!」っていうぐらい一般的だと思う。
当然に、文脈によっては、Lが別のclassのinstanceって事はあると思うよ。
0317デフォルトの名無しさん
2013/02/11(月) 19:02:15.05お前らが言ってるのってメタ構文変数みたいな話ね
それは普通、推奨されないし、list_とかで変数を説明するのは普通のこと
laをLaに変えるべきとか言ってたからそういうルールがあるのかと思ったわ
この場合、別にlaでも問題ないわ
0318デフォルトの名無しさん
2013/02/11(月) 19:02:33.981文字のlと1は1文字だと
間違えても数字の1としてそのまま実行されてしまうが、
1文字でない場合は大体エラーになってすぐ分かるので気にしなくていい
ll とか IO とかは微妙かもしれないがね
0319デフォルトの名無しさん
2013/02/11(月) 19:09:41.76リストって意味を通常含むからメタ構文変数って言っていいかはともかく
LaやLbはあまりやらない。せいぜいL, L1, L2
0320デフォルトの名無しさん
2013/02/11(月) 19:18:55.69l, laではなくL, Laと書く癖を付けておいた方が良いよね。
だってPEP8で"〜を1文字の変数名として使わない。"
と、非推奨であると名言しているもん。
PEP8の該当箇所を知った上で、
> この場合、別にlaでも問題ないわ
って書く人はPython使わない方が良いと思う。
>>319
l(小文字のエル)ではなくて、Lを使うことをPEP8で推奨しているよ。
と>>285に説明したかっただけですので。
0321デフォルトの名無しさん
2013/02/11(月) 19:21:25.48集合が大文字のSで、それに添字が付くのは数学では一般的なのに
>>320
だからー、一文字の無意味変数は文字に関わらず推奨されてないんだって
そんなゴミ文字を使うときは何を使おうがおなじことだよ
lではなくLを使うことによって生産性が上がることがある?
そもそもLだって何の意味もないコードでしか使えないのに
0322デフォルトの名無しさん
2013/02/11(月) 19:30:11.79PEP8的には l = ... を使うぐらいだったら L を使えってだけだよ
La, Lbなんて変数を使う人は滅多にいない
la, lbを使う人は結構いる
0323デフォルトの名無しさん
2013/02/11(月) 19:32:09.26listだってListにしなくちゃいけないし
consoleだってconsoLeにしなくちゃいけないよ
0324デフォルトの名無しさん
2013/02/11(月) 19:32:37.77なんでわざわざappendなんてせにゃならんのだ。
0325デフォルトの名無しさん
2013/02/11(月) 19:35:20.26・インデックスでループして、popで削除して、削除したらインデックスを進めない
・インデックスで逆順ループして、popで削除
新しいリストを作らないならこのどちらかだな
0326324
2013/02/11(月) 19:37:42.98Lc = [ e for e in Lb if e not in La ]
0327デフォルトの名無しさん
2013/02/11(月) 19:37:45.180328デフォルトの名無しさん
2013/02/11(月) 19:51:38.71内包表記でif not inとか使うと読みにくいんで。
>>293の話もあって、本当は>>300のLcを結果として得たかったのかも。
と思って>>300書きました。
初心者の人に説明する時は、
>>326と>>300では、>>300の方が分かりやすいと思いますが。
誰に説明するか考えた上での>>326ですか?
>>321
話がそれてきてますが。
>>285が発端なんだけど。
分かってる?
>>285に対する回答として>>294の説明をしたよね。
>>297で質問者は納得してくれたんだけど。
十分だと思うんだ。
ただ、la, lbを使っているところから、一文字の変数名として小文字のlは
非推奨と書いているPEP8の存在を知らないような気がした。
私自身も最初la, lb使ってましたんで。
でも、PEP8読んでLa, Lb使うようにしました。
よく分かんないから書いて欲しいんだけど、>>294にケチ付ける人は、
>>285に対する説明でどう書けば満足してた?
PEP8知らないだろうなーって思う初心者の方にPEP8の該当箇所黙ってた方が良かった?
どうせお前の意見言ってみろって言われたら黙るんでしょ?
自分の意見・考えは示さず批判する側で居続けたい人達ばかりでしょ?
┐(´д`)┌ヤレヤレ
0329デフォルトの名無しさん
2013/02/11(月) 19:55:06.410330デフォルトの名無しさん
2013/02/11(月) 19:57:07.350331デフォルトの名無しさん
2013/02/11(月) 20:04:17.51いやだから、aとかbとか意味のない変数名はPEP8以前の話だって。
実用コードでそんな変数名使ってるなら絶対直した方が良いけど、
その場合「ちゃんと読み手に意味が分かる変数名使おうな」って話になる。
そこで単なる規約のPEP8持ちだしてLaだLbだ言ってもコードは読みやすく
ならない。
要は、>>285みたいな例ではla、lbで全く問題ないって事だ。
0332324
2013/02/11(月) 20:08:27.71CはC, JavaはJavaにふさわしい書き方があるように、
PythonにはPythonにふさわしい書き方がある。
「直交性」という言葉の意味は俺は分からんし、
確かそれで揉めてた気がするけど、俺は>134と似た意見を持ってる。
そもそも>285は質問の仕方が下手で、
何を適切な結果として受け取りたかったのか分からんけど、
俺としてはそんなことはどうでもよくて、
>300が華麗にスルーされているように見えたのが気になっただけ。
Pythonでこんなまどろっこしいことやってたら疲れる。
変数名の命名規約は俺は結構どうでもいい。
やりたい人達でやって。
0333デフォルトの名無しさん
2013/02/11(月) 20:08:38.83非推奨と書いているPEP8の存在を知らないような気がした。
私自身も最初la, lb使ってましたんで。
0334デフォルトの名無しさん
2013/02/11(月) 20:09:39.970335デフォルトの名無しさん
2013/02/11(月) 20:12:44.070336デフォルトの名無しさん
2013/02/11(月) 20:16:33.16「l」 (小文字のエル)、「O」(大文字のオー)、「I」(大文字のアイ)
を数文字(2,3文字)の変数名の先頭に使わない。
or
を数文字(2,3文字)の変数名に含めない。
こいつは原文を修正すべきと思いました。
誰かお願い。
本家に申し立てて下さい。
0337デフォルトの名無しさん
2013/02/11(月) 20:17:56.850338デフォルトの名無しさん
2013/02/11(月) 20:18:31.42lenが抹殺されるからやっぱり嫌です
0339デフォルトの名無しさん
2013/02/11(月) 20:25:14.370340デフォルトの名無しさん
2013/02/11(月) 20:32:19.48lenはlen()と被っているので、使わないようにしましょう(`・ω・´)キリッ
>>> s = 'abc'
>>> len(s)
3
>>> len = 100
>>> len(s)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
0341デフォルトの名無しさん
2013/02/11(月) 20:32:51.590342デフォルトの名無しさん
2013/02/13(水) 03:01:20.38何がキリッだ
てめえのゴミのような日常生活の心配してろ
0343デフォルトの名無しさん
2013/02/13(水) 04:23:24.480344デフォルトの名無しさん
2013/02/13(水) 07:00:44.59終端の添字の要素を含むと len(hoge[2:5]) が 4 になってしまう
0345デフォルトの名無しさん
2013/02/13(水) 07:24:57.820346デフォルトの名無しさん
2013/02/13(水) 07:39:04.901になろうがどうだろうがどうでもいい
0347デフォルトの名無しさん
2013/02/13(水) 07:51:00.460348デフォルトの名無しさん
2013/02/13(水) 08:43:01.050349デフォルトの名無しさん
2013/02/13(水) 17:31:25.25あるいはどちらかしか使わない派?
0350デフォルトの名無しさん
2013/02/13(水) 17:35:35.230351デフォルトの名無しさん
2013/02/13(水) 17:52:44.19ありが�d
できればPyGTKを使わない理由、PySideを使うメリットも教えてちょ
0352デフォルトの名無しさん
2013/02/13(水) 18:44:51.68> PyGTKを使わない理由
なんとなく
> PySideを使うメリット
ライセンス的に
> wxPython
windowsでちょっとしたツールを作るのにお手軽
自分で使ってみて必要な機能がありしっくりくるのを使えばいいんじゃないかな
0353デフォルトの名無しさん
2013/02/13(水) 19:03:13.39使えば判る
0354デフォルトの名無しさん
2013/02/13(水) 23:35:08.400355デフォルトの名無しさん
2013/02/13(水) 23:35:54.790356デフォルトの名無しさん
2013/02/14(木) 13:18:05.06これって将来削除されるってことですか?
0357デフォルトの名無しさん
2013/02/14(木) 14:40:41.620358デフォルトの名無しさん
2013/02/14(木) 23:33:32.630359デフォルトの名無しさん
2013/02/18(月) 11:37:29.18手元の環境はPythonが2.7.3で動作するプログラムを、さくらインターネットに持って行くと動かなくなります。
さくらインターネットのPythonも2.7.3なのですが、Shelveは環境により動作が変わるのでしょうか?
例えばさくらインターネットでは、shelve.open()で指定したファイル名の後ろに".db"がつけられます。
これは、ファイル名を変更することで修正を行えたのですが、DBにデータが保存されないという現象も起きています。
0360デフォルトの名無しさん
2013/02/18(月) 12:01:12.06変わる
以下の11..4.1を参照せよ
http://docs.python.jp/2/library/shelve.html
0361デフォルトの名無しさん
2013/02/18(月) 12:21:34.760362359
2013/02/18(月) 13:56:04.17ありがとうございます。
そのマニュアルは読んでいたのですが、制限というものがわかっておらずshelveで操作
可能なことは共通で利用可能かと思っておりました。
問題は不具合があったコードを書きなおすことで解決できたのですが、今後もshelveを
利用しようと考えているため、shelveについて質問させて頂ければと思います。
まず、shelveのバックエンドが環境に寄って変わるという事ですが、今回のように同じ
バージョンのPythonでもバックエンドが変わるというのはShelveはどこで利用するバッ
クエンドを決めているのでしょうか?
利用するバックエンドはどのように知ることが出来るでしょうか?
0363359
2013/02/18(月) 13:57:10.20件で付加される条件が決まるのでしょうか?
shelveファイルが存在しなければ初期データの投入する処理を指定ファイル名のファイ
ルが存在するかということで行なっていたのですが、今回は拡張子が付加されて常に初
期データに戻るという問題も起きておりました。
また、ローカルとリモートのDBファイルを見てみると、バックエンドによって形式が違
うようなのですが、これは互換性が無いと考えてよろしいでしょうか?
この場合ファイルを移動させる際は、pickleでファイルに落とし、リモートでpickleか
らshelveに落とすという手順が必要になるでしょうか?
バックエンドによる制限の違いを調べたのですが見つけることができませんでした。
こちらについても、記載のあるページなどございましたらご案内頂ければと思います。
0364デフォルトの名無しさん
2013/02/18(月) 14:16:20.60>バージョンのPythonでもバックエンドが変わるというのはShelveはどこで利用するバッ
>クエンドを決めているのでしょうか?
anydbm.openの優先順位に従う
具体的には['dbhash', 'gdbm', 'dbm', 'dumbdbm']の順
>利用するバックエンドはどのように知ることが出来るでしょうか?
print type(shelve.open('hogehuga.db').dict)
あるいは作成されたDBに対してwhichdbを使用する
>また、拡張子が付加される場合があるようですが、こちらも条件としてはどのような条
>件で付加される条件が決まるのでしょうか?
>shelveファイルが存在しなければ初期データの投入する処理を指定ファイル名のファイ
>ルが存在するかということで行なっていたのですが、今回は拡張子が付加されて常に初
>期データに戻るという問題も起きておりました。
BSD DBの場合サフィックス.dbが付与される
http://docs.python.jp/2.6/library/dbm.html
>また、BSD DBは拡張子 .db がついたファイルが一つ作成されます。
>また、ローカルとリモートのDBファイルを見てみると、バックエンドによって形式が違
>うようなのですが、これは互換性が無いと考えてよろしいでしょうか?
>この場合ファイルを移動させる際は、pickleでファイルに落とし、リモートでpickleか
>らshelveに落とすという手順が必要になるでしょうか?
互換性が無いと考えてよい。考えるべき
そもそもshelveでなくdictのpickleで代替できないか考えた方がいいが
0365デフォルトの名無しさん
2013/02/18(月) 14:27:09.60shelve.openの中は以下のようになっている(模式的なものであり厳密には違う)
def open(filename, flag='c', protocol=None, writeback=False):
Shelf.(anydbm.open(filename, flag), protocol, writeback)
すなわち、使いたいdbmを自分でオープンし、Shelfのコンストラクタに渡せばいい
dumbdbmは遅いけど可搬性が保障されている
0366デフォルトの名無しさん
2013/02/18(月) 17:47:38.35これで初学者にはいい言語ってんだからプログラミングって茨の道なんだな
0367デフォルトの名無しさん
2013/02/18(月) 17:51:21.52↓みたら少し分かった。
http://www.youtube.com/watch?v=hx5sWRdg-S0
0368デフォルトの名無しさん
2013/02/18(月) 18:12:04.72初心者はこれみりゃいい
0369デフォルトの名無しさん
2013/02/18(月) 18:13:01.21これも中々良い
0370デフォルトの名無しさん
2013/02/18(月) 23:09:47.600371デフォルトの名無しさん
2013/02/18(月) 23:31:36.22def branch(length):
if length < 10:
return
forward(length)
left(30)
branch(length/2)
right(60)
branch(length/2)
left(30)
forward(-length)
branch(200)
input()
このbranchの中にbranchってのがよく分からないんで教えてくれませんか
200進んで、30曲がって、branch(100)だから、100進んで、30曲がって…branch(12.5)で12.5進んで、30曲がる
で次にlengthが6.75になるからreturn…でこのあとどうなるのかがさっぱり分かりません
実際の描画を見ると行ったり戻ったり奇妙な動きをするのですがどうなればそうなるのかちんぷんかんぷんで
>>370
ずぶの素人は内容以前に文中の用語がまず理解できないんですよあれ
0372デフォルトの名無しさん
2013/02/18(月) 23:46:00.520373デフォルトの名無しさん
2013/02/18(月) 23:49:11.580374デフォルトの名無しさん
2013/02/19(火) 13:20:17.970375デフォルトの名無しさん
2013/02/19(火) 13:23:37.49http://www.nicovideo.jp/mylist/21945950
0376デフォルトの名無しさん
2013/02/19(火) 16:13:03.67左の末端に到達の後は、右 60 の後 branch(6.25) を呼出
10以下なので直に return し、左 30 (左30右60左30 で元の向き) 後退 12.5 (分岐点まで戻る)
次に、右 60 の後 branch(12.5) ・・・と、右の枝を描画。先端に到達した後は分岐点まで戻る、を繰り返し。
tinyurl [dot] com [slash] aebgg6z
Visual Execution -> forward でステップ実行
return後、何処に戻ってるかわかると思う。
0377デフォルトの名無しさん
2013/02/19(火) 21:39:46.150378デフォルトの名無しさん
2013/02/19(火) 21:47:10.380379デフォルトの名無しさん
2013/02/19(火) 21:51:12.79はい
0380デフォルトの名無しさん
2013/02/19(火) 22:08:05.290381デフォルトの名無しさん
2013/02/19(火) 22:10:18.820382デフォルトの名無しさん
2013/02/19(火) 22:14:16.520383デフォルトの名無しさん
2013/02/19(火) 23:34:41.51http://www.codecademy.com/ja/tracks/python
0384デフォルトの名無しさん
2013/02/20(水) 00:35:57.32あぁ〜なんとなく分かって来ました
returnの後は次のright(60)に進んじゃうんですね
えーっとreturn文という物が今度はよく分かんなくなってきました
今までreturn文は関数の結果を関数外で使えるようにするためと理解してたんですけど、今回特に値は使ってないですよね
この場合のreturnは切り上げて次に移るみたいな使われ方というか…
今までの例題だとreturnで関数定義終わっちゃってたので、ここで描画終わっちゃうんじゃないかとか思ってたんですけど
0385デフォルトの名無しさん
2013/02/20(水) 05:05:48.42標準入力からの読み込みを終わらせることができません。
基本的な以下のコードでも、1行目で入力待ちを続けたまま2行目にいきません。
name = raw_input('input your name: ')
print name
本来の動作としては、enterキーで変数nameに入力が渡り、printが実行されると思います。
windowsなので改行コードの違いから、入力の終わりと認識されないのだろうと見込んでいるのですが
どうすればいいんでしょうか。
os.linesepに'\r\n'を代入するのはやってみたんですが、変化なしでした。
0386デフォルトの名無しさん
2013/02/20(水) 05:20:30.67def foo():
1
は
def foo():
1
return None
と同じ。またreturn文に値を指定しなかった場合もreturn Noneと同じ
例題の動作が難しければ一方のbranch(length/2)をコメントアウトしてみるのもいい
>>385
Win7+Python2.6.3にコマンドプロンプトで再現しないから
詳しい動作環境書いたほうがいいよ
0387デフォルトの名無しさん
2013/02/20(水) 05:38:13.75申し訳ありません、入力をUTF-8で受け取ろうと考えて加えていたコードにより、
動作が変わっていました。
この部分をはずしたところ正常な動作を確認できたので、見直してみますm(_ _)m
0388デフォルトの名無しさん
2013/02/20(水) 05:44:38.690389デフォルトの名無しさん
2013/02/20(水) 06:21:26.70てすと
てすと
0390デフォルトの名無しさん
2013/02/20(水) 07:03:59.480391デフォルトの名無しさん
2013/02/20(水) 08:45:37.87Django、Pyramid、Flask、Web2py、Bottle、etc…
0392デフォルトの名無しさん
2013/02/20(水) 10:28:14.590393359
2013/02/21(木) 10:34:19.92ありがとうございます。非常に勉強になりました。
> BSD DBの場合サフィックス.dbが付与される
> http://docs.python.jp/2.6/library/dbm.html
こちらについてなのですが、ローカルとさくらインターネットの環境で比べてみたのですが、
ローカル
<class 'bsddb._DBWithCursor'>
さくらインターネット
<type 'dbm.dbm'>
となり、さくらインターネットで".db"が付加されましたので、dbmモジュールが使われ、そのdbmモジュールでbsddbが使用される場合に、".db"が付加されるという事でよろしいでしょうか?
0394デフォルトの名無しさん
2013/02/21(木) 18:00:42.92公開されたパーフェクトPythonのジャケもカッコイイ!
6人の著者も有名人?っぽいし期待していいかも
0395デフォルトの名無しさん
2013/02/21(木) 18:23:00.78ページ数で割ると、それぞれの内容は深くなさそう
前半にページ数を割いて、後半は申し訳程度のオマケだろうが
0396デフォルトの名無しさん
2013/02/22(金) 01:18:23.02Early Releaseでもいいな買うか。
0397デフォルトの名無しさん
2013/02/22(金) 01:42:30.823rdは1つも削らずに翻訳して欲しいぜよ
0398デフォルトの名無しさん
2013/02/22(金) 08:35:13.090399デフォルトの名無しさん
2013/02/22(金) 11:51:39.17読みづらいw
0400デフォルトの名無しさん
2013/02/22(金) 12:08:53.360401デフォルトの名無しさん
2013/02/22(金) 12:38:56.590402デフォルトの名無しさん
2013/02/22(金) 15:05:18.400403デフォルトの名無しさん
2013/02/22(金) 15:10:06.85手順としては、
・MeCab0.993とmecab-pythonをダウンロードして、解凍&インストールする。
・mecab-pythonのsetup.pyをWindows用に書き換える。
・VC++をインストール、環境変数をいろいろ設定。
・Pythonにインストール
ていう感じです。OSはVista Homeです、
ビルドしてインストールできているようなのですが、(Python27\Lib\site-packagesにコピーされている)
EclipseからMeCabをimportしようとすると、UnSolvedとなってしまうし、
コマンドラインでimportしようとすると
MECAB_ANY_BOUNDARY = _MECAB.MECAB_ANY_BOUNDARY(MeCab.py 194行目)
でMECAB_ANY_BOUNDARYは’module’オブジェクトに含まれてないと怒られてしまいます。
また、なぜかわかりませんが、python.exeと同じフォルダにMeCab.pyがあるとimportできます。
どこか間違ったんでしょうか?
0404デフォルトの名無しさん
2013/02/22(金) 15:23:54.45Eclipse の Preferences -> PyDev で MeCab のパス追加した?
0405デフォルトの名無しさん
2013/02/22(金) 16:40:31.582nd
3rd
4th
5th
6th
7th
8th
9th
10th
11st
12nd
13rd
14th
0406デフォルトの名無しさん
2013/02/22(金) 18:30:58.44>>396
Amazon.comは2013/05になってたけどまだまだ遅れそうな気がするな
なんでここまで難産なんだろ
0407デフォルトの名無しさん
2013/02/22(金) 18:35:05.9012th
13th
14th
...
20th
21st
22nd
23rd
24th
0408デフォルトの名無しさん
2013/02/22(金) 18:36:50.100409デフォルトの名無しさん
2013/02/22(金) 18:51:30.92Eclipseの方は使えるようになりました。ありがとうございました。
pythonコマンドラインの方はやっぱりダメで
めんどくさいからエラーの3行をコメントにしました。
ちょっと心配だけど動くようになりました。
0410デフォルトの名無しさん
2013/02/22(金) 19:10:09.23Rubyみたいな詐欺ではないですか?
0411デフォルトの名無しさん
2013/02/22(金) 19:12:27.57狐にでも化かされたんじゃないか
0412デフォルトの名無しさん
2013/02/22(金) 19:50:07.09__
で始まるとprivateとか慣習はある
_ 1つだと protected
__ 2つだと private
だったかな
あくまで慣習なので破ることも可能
0413デフォルトの名無しさん
2013/02/22(金) 19:57:02.67衝突を避けるような云々
0414デフォルトの名無しさん
2013/02/22(金) 20:05:54.49... def __init__(self):
... self.hogea = 1
... self._hogeb = 2
... self.__hogec = 3
...
>>> class Fuga(Hoge):
... def __init__(self):
... super(Fuga, self).__init__()
... print self.hogea
... print self._hogeb
... self.__hogec = 4
... print self.__hogec
... print self._Hoge__hogec
...
>>> Fuga()
1
2
4
3
<__main__.Fuga object at 0x020C17B0>
0415デフォルトの名無しさん
2013/02/22(金) 20:20:15.670416デフォルトの名無しさん
2013/02/22(金) 20:21:30.680417デフォルトの名無しさん
2013/02/22(金) 20:23:21.62無理やり _親__hogec でアクセスすることは可能
0418デフォルトの名無しさん
2013/02/22(金) 20:24:48.04ありがとうございました。
0419デフォルトの名無しさん
2013/02/22(金) 20:26:01.80http://docs.python.org/3/reference/lexical_analysis.html?highlight=mangling#reserved-classes-of-identifiers
0420デフォルトの名無しさん
2013/02/22(金) 20:31:29.660421デフォルトの名無しさん
2013/02/22(金) 20:33:08.93これは恥ずかしいw
0422デフォルトの名無しさん
2013/02/22(金) 20:41:25.26大丈夫だよここは超初心者用だから
0423デフォルトの名無しさん
2013/02/22(金) 20:44:54.150424デフォルトの名無しさん
2013/02/22(金) 20:47:03.570425デフォルトの名無しさん
2013/02/22(金) 20:50:19.43class Foo(object):
def __init__(self):
self.ss = 'Foo.ss'
self.__name = 'Foo.__name'
class Bar(Foo):
def __init__(self):
super().__init__()
self.ss = 'Bar.ss'
self.__name = 'Bar.__name'
bar = Bar()
print('__dict__ =', bar.__dict__)
bar._Foo__name = 'changed'
print('__dict__ =', bar.__dict__)
__dict__ = {'ss': 'Bar.ss', '_Foo__name': 'Foo.__name', '_Bar__name': 'Bar.__name'}
__dict__ = {'ss': 'Bar.ss', '_Foo__name': 'changed', '_Bar__name': 'Bar.__name'}
0426デフォルトの名無しさん
2013/02/22(金) 20:59:24.45そう言えばLearning Python 4ndの邦訳全然出てこないな
千ページ超えてるから楽しみなのに
0427デフォルトの名無しさん
2013/02/22(金) 21:34:36.86文法チェッカ、どれがオススメ?
0428デフォルトの名無しさん
2013/02/22(金) 22:36:42.160429デフォルトの名無しさん
2013/02/22(金) 22:37:13.890430デフォルトの名無しさん
2013/02/23(土) 01:25:12.80実本はshop.oreilly.comでも2013年5月ってあるからなあ。
0431デフォルトの名無しさん
2013/02/25(月) 16:35:50.510433デフォルトの名無しさん
2013/02/26(火) 20:00:03.62>>> obj
{u'1_C': {u'2_A': 300, u'2_B': 400}, u'1_B': 3000, u'1_A': {u'2_A': {u'3_A': 10, u'3_C': 1, u'3_B': 100}, u'2_B': {u'3_A': 10, u'3_C': 1000, u'3_B': 100}}}
こういうフォーマットでなく、
>>> pprint.pprint(obj)
{u'1_A': {u'2_A': {u'3_A': 10, u'3_B': 100, u'3_C': 1},
u'2_B': {u'3_A': 10, u'3_B': 100, u'3_C': 1000}},
u'1_B': 3000,
u'1_C': {u'2_A': 300, u'2_B': 400}}
こういうフォーマットで出すには、自分で構造体内をcrawlしてやる手続きを書かないとならないのでしょうか。
それとも何か使えそうなライブラリがあるでしょうか。
u'1_A': u'2_A': u'3_A': 10,
u'1_A': u'2_A': u'3_B': 100,
u'1_A': u'2_A': u'3_C': 1,
u'1_A': u'2_B': u'3_A': 10,
u'1_A': u'2_B': u'3_B': 100,
u'1_A': u'2_B': u'3_C': 1000,
u'1_B': 3000,
u'1_C': u'2_A': 300,
u'1_C': u'2_B': 400
こういうフォーマットとは、1行は var = val の型で、varの要素名は省略してはならない。
0434デフォルトの名無しさん
2013/02/26(火) 20:07:03.900435デフォルトの名無しさん
2013/02/26(火) 20:12:05.840436デフォルトの名無しさん
2013/02/26(火) 20:26:56.280437デフォルトの名無しさん
2013/02/26(火) 21:22:37.54> 普通にループで書けば
とは、
> 自分で構造体内をcrawlしてやる手続き
と何が違いますか? 「普通にループ」についてここ読めとかあったらお願いします
0438デフォルトの名無しさん
2013/02/26(火) 22:35:45.35あともしobjが辞書であれば構造体と違って順序はないので注意
0439デフォルトの名無しさん
2013/02/26(火) 22:47:05.44http://www.learnstreet.com/
0440433
2013/02/27(水) 07:21:43.70> 木の全てのパスを列挙するのであれば再帰で書く
やはりそれしかないですか。ありがとうございました。
なおsortの必要はありません。お気遣いもありがとうございました。
0441デフォルトの名無しさん
2013/02/27(水) 08:14:44.210442デフォルトの名無しさん
2013/02/27(水) 12:41:10.22キモいんだけど
0443デフォルトの名無しさん
2013/02/27(水) 12:55:55.660444デフォルトの名無しさん
2013/02/27(水) 17:43:39.360445デフォルトの名無しさん
2013/02/27(水) 21:41:03.60これ作った奴Javaにコンプレクスでもあんのか
0446デフォルトの名無しさん
2013/02/27(水) 21:45:54.88興味ないからMLで聞いてくるといいよ
0447デフォルトの名無しさん
2013/02/27(水) 21:57:21.29> ライブラリを探すほどのことか?
標準的な仕組みがあればそれを使った方が何かとイイてのは言うまでもないことです。
0448デフォルトの名無しさん
2013/03/02(土) 15:22:36.57コメントに java へのリスペクトが書いてある
>>445 に java コンプレックスがあるのか知らんけど python は java をリスペクトして開発されたモジュールは結構多い
それをコンプレックスと思うなら python 使わなければ良い
0449デフォルトの名無しさん
2013/03/02(土) 21:15:58.620450デフォルトの名無しさん
2013/03/02(土) 22:01:58.210451デフォルトの名無しさん
2013/03/02(土) 22:34:08.830452デフォルトの名無しさん
2013/03/03(日) 14:19:44.210453デフォルトの名無しさん
2013/03/04(月) 23:43:36.01テキストボックスに入力した数字にたいして、ボタンを押して更新できるようにしたいんですが、
更新のところのやり方がよくわかりません。
plotを、再設定するだけじゃだめなんでしょうか
plotまでは流れているようですが更新されません。
0454デフォルトの名無しさん
2013/03/06(水) 00:32:28.27ごめんなさい。
0455デフォルトの名無しさん
2013/03/06(水) 09:19:42.74っせえ
黙ってろ
0456デフォルトの名無しさん
2013/03/06(水) 14:54:29.200457デフォルトの名無しさん
2013/03/06(水) 16:47:51.36俺の言った通りだろう
0458デフォルトの名無しさん
2013/03/06(水) 22:43:49.620459デフォルトの名無しさん
2013/03/06(水) 23:46:17.930460デフォルトの名無しさん
2013/03/07(木) 10:22:31.550461デフォルトの名無しさん
2013/03/07(木) 10:58:46.140462デフォルトの名無しさん
2013/03/07(木) 12:26:18.690463デフォルトの名無しさん
2013/03/07(木) 12:55:46.95けっこうです
0464デフォルトの名無しさん
2013/03/07(木) 13:49:02.750465デフォルトの名無しさん
2013/03/07(木) 15:59:40.78>>464
ありがとうございます。
0466デフォルトの名無しさん
2013/03/07(木) 18:57:57.540467デフォルトの名無しさん
2013/03/07(木) 19:48:25.220468デフォルトの名無しさん
2013/03/07(木) 21:22:27.023冊くらいに分けて欲しかった
0469デフォルトの名無しさん
2013/03/08(金) 09:39:16.84windowsです
0470デフォルトの名無しさん
2013/03/08(金) 09:43:15.02ググれ
0471デフォルトの名無しさん
2013/03/09(土) 07:43:29.000472(;D)笑男 ◆LeBIz0ZWfs
2013/03/09(土) 09:19:58.830473(;D)笑男 ◆LeBIz0ZWfs
2013/03/09(土) 09:20:31.310474デフォルトの名無しさん
2013/03/09(土) 10:07:12.28可変長のリストの入力に対して固定長のリストを出力したいのですが
足りない部分を先頭の要素から0で埋めようと思います
例:出力が固定長 5 のとき
入力 [1, 3] 出力 [0, 0, 0, 1, 3]
入力 [2, 1, 3] 出力 [0, 0, 2, 1, 3]
入力 [5, 4, 2, 1, 3] 出力 [5, 4, 2, 1, 3]
一番シンプルに書く方法はどんなのがありますか?
0475デフォルトの名無しさん
2013/03/09(土) 10:08:11.100476デフォルトの名無しさん
2013/03/09(土) 10:14:14.06>>> def pad_list(lst, pad, size): return [pad] * (size - len(lst)) + lst
>>> pad_list([2, 3], 0, 5)
[0, 0, 0, 2, 3]
0477デフォルトの名無しさん
2013/03/09(土) 10:14:49.110478デフォルトの名無しさん
2013/03/09(土) 10:19:30.120479デフォルトの名無しさん
2013/03/09(土) 10:49:44.30とりあえずそれでいきます
ありがとうございました
0480デフォルトの名無しさん
2013/03/09(土) 12:37:35.13Ubuntu入れたほうがいいですか?
16GBのUSBメモリでインストールを検討してるのですが
どうでしょうか?
0481デフォルトの名無しさん
2013/03/09(土) 12:44:38.82windowsでも問題なくできるよ
0482デフォルトの名無しさん
2013/03/09(土) 12:45:53.100483デフォルトの名無しさん
2013/03/09(土) 13:23:16.140484480
2013/03/09(土) 13:35:20.01windowsでやります
0485デフォルトの名無しさん
2013/03/09(土) 19:23:07.59pythonのlibrary名教えて下さい。
0486デフォルトの名無しさん
2013/03/09(土) 19:37:55.200487デフォルトの名無しさん
2013/03/09(土) 19:40:20.260488デフォルトの名無しさん
2013/03/09(土) 19:55:06.91なるほどね
0489デフォルトの名無しさん
2013/03/10(日) 00:40:19.38def factorial(x):
if x <= 1:
return 1
return x * factorial(x - 1)
factorial(5)が1×2×3×4×5で120を返すとの事なのですが、計算の流れが理解出来ません。
factorial(x -1)はどんな動きをしているのでしょうか?
0490デフォルトの名無しさん
2013/03/10(日) 00:56:18.35x*(x-1)*(x-1-1)*(x-1-1-1)...
x<=1を満たすまで自分を呼び出し続けるだけ
0491デフォルトの名無しさん
2013/03/10(日) 01:58:53.540492デフォルトの名無しさん
2013/03/10(日) 03:43:40.69>>491
ありがとうございます。
なんとなく理解出来たような気がします。
factorial(x)に5を代入すると
return 5 * factorial(4)
4をxとして1行目に戻して最終行で
return 4 * factorial(3)
以後同じように3 *, 2 *, 1 *と入れ子が深くなりつつ繰り返され、
条件が成立した時点では
return 5 * (4 *(3 *(2 *(1))))
となるので5×4×3×2×1で120という事ですよね?
これで先に進む事が出来ます。
本当にありがとうございました。
0493デフォルトの名無しさん
2013/03/10(日) 23:04:00.99from Crypto.Cipher import AES
def aes_encrypt(msg, key, iv):
encryptor = AES.new(key, AES.MODE_CBC, iv)
return encryptor.encrypt(msg)
aes_encrypt(encrypt.py)は、main.pyからインポートされて呼び出されます。
実行すると、ImportError: No module named Crypto.Cipherというエラーが出ます。
どうしたらいいのでしょうか?
Python 2.7.3 + python2-crypto 2.6
0494デフォルトの名無しさん
2013/03/10(日) 23:15:02.350495デフォルトの名無しさん
2013/03/11(月) 09:27:30.770496デフォルトの名無しさん
2013/03/11(月) 11:20:55.12linux板で聞け
0497デフォルトの名無しさん
2013/03/11(月) 13:05:02.67conf ディレクトリ内
conf を /etc/appname へシンボリックリンク
0498デフォルトの名無しさん
2013/03/11(月) 13:53:39.25バッドノウハウ
0499デフォルトの名無しさん
2013/03/11(月) 14:08:18.050500デフォルトの名無しさん
2013/03/11(月) 14:32:07.190501デフォルトの名無しさん
2013/03/11(月) 18:27:02.850502デフォルトの名無しさん
2013/03/11(月) 19:49:58.520503 忍法帖【Lv=4,xxxP】(2+0:5)
2013/03/12(火) 21:10:19.36ちなみにプラギンは?
jedi-vim?
0504デフォルトの名無しさん
2013/03/13(水) 08:31:48.47importすると、日本語が通らなくてダメなの?
0505デフォルトの名無しさん
2013/03/13(水) 08:45:42.24非ascii文字がパスに含まれている場合
起動中に__main__の設定が失敗するバグがある
まだ公式の修正リリースはありません
0506デフォルトの名無しさん
2013/03/13(水) 08:50:07.740507デフォルトの名無しさん
2013/03/13(水) 10:12:39.400508デフォルトの名無しさん
2013/03/13(水) 12:34:30.47家帰ったら探してみよう
0509デフォルトの名無しさん
2013/03/13(水) 14:29:27.58チラシの裏にでも書いてろ、なっ!
0510デフォルトの名無しさん
2013/03/13(水) 14:36:40.512からあるバグじゃないの。それ。
0511デフォルトの名無しさん
2013/03/13(水) 14:52:19.200512デフォルトの名無しさん
2013/03/13(水) 15:09:45.650513デフォルトの名無しさん
2013/03/13(水) 16:50:14.17PYTHONPATH\Lib\site-packages\sitecustomize.py(なければ作る)に
import sys
from codecs import getwriter
sys.setdefaultencoding('shift_jis')
sys.stdout = getwriter('shift_jis')(sys.stdout)
と書くと日本語のエンコード関係がマシになるかもしれません。
0514デフォルトの名無しさん
2013/03/13(水) 18:22:26.520515デフォルトの名無しさん
2013/03/13(水) 20:20:11.72プログラムを身につけたいと思ったもののプログラムの種類が多すぎて何からやればいいか
わからなかったのでプログラミングが学べる英語動画サイトみてたら初心者向けはpythonが多いようでした
その後本屋にいくとpythonは日本ではマイナー言語のように書籍が少なかったのです
pythonは日本ではマイナーなのでしょうか?pythonの利点と欠点を教えて下さい
プログラムを学ぶ目的は株のシステムトレードをしたいからです
0516デフォルトの名無しさん
2013/03/13(水) 20:22:20.77日本語しか読めない&読む気がないのなら他の言語にしましょう
利点と欠点より前に考えるべきことです
0517デフォルトの名無しさん
2013/03/13(水) 20:23:27.49欠点:遅い
0518デフォルトの名無しさん
2013/03/13(水) 20:24:09.33日本でマイナーな理由を教えてください
アメリカでメジャーってことは数年遅れで日本でもメジャーになるってことでしょ?
0519デフォルトの名無しさん
2013/03/13(水) 20:25:15.67具体的にいうとpythonはどういう系のプログラムに向いててどういうのが向いてないの?
0520デフォルトの名無しさん
2013/03/13(水) 20:26:09.900521デフォルトの名無しさん
2013/03/13(水) 20:26:46.390522デフォルトの名無しさん
2013/03/13(水) 20:27:20.400523デフォルトの名無しさん
2013/03/13(水) 20:29:25.58使わないほうがいい理由をおしえて
>>521
教えてくれよ
0524デフォルトの名無しさん
2013/03/13(水) 20:29:41.39こういうのって言質を取りたいだけでPythonを使う気は最初からさらさらないからな
0525デフォルトの名無しさん
2013/03/13(水) 20:30:33.53ちょっとした処理の自動化には少々面倒なのでPerlとかの方が便利
各種のデータ処理に非常に強い
ループぶん回して計算しまくるようなのには全くもって不向き
0526デフォルトの名無しさん
2013/03/13(水) 20:31:31.560527デフォルトの名無しさん
2013/03/13(水) 20:33:01.820528デフォルトの名無しさん
2013/03/13(水) 21:00:42.540529デフォルトの名無しさん
2013/03/13(水) 21:04:01.72数年でメジャーになるという説が正しいとすればあと1年だが・・・
だがしかし
0530デフォルトの名無しさん
2013/03/13(水) 21:05:43.160531デフォルトの名無しさん
2013/03/13(水) 21:20:22.30何年で流行るとか意味不明な供述をしている方がいらっしゃいましたので
一例を提示差し上げただけですわ
0532デフォルトの名無しさん
2013/03/13(水) 21:23:36.270533デフォルトの名無しさん
2013/03/13(水) 21:37:12.53端金でプログラマをこき使い書かせるのが正解です
一からプログラムを学ぶのはあまりにも非生産的です
0534デフォルトの名無しさん
2013/03/13(水) 23:15:37.430535デフォルトの名無しさん
2013/03/13(水) 23:32:04.69前者は一章がいい感じにすべってた
0536デフォルトの名無しさん
2013/03/13(水) 23:47:01.290537デフォルトの名無しさん
2013/03/14(木) 01:25:11.59超初心者用
読む価値なし
パーフェクトPython
初心者用
内容が薄い
0538デフォルトの名無しさん
2013/03/14(木) 01:29:06.610539デフォルトの名無しさん
2013/03/14(木) 01:32:09.80素養のないやつにはいくら優しい入門書を書いても無駄。
0540デフォルトの名無しさん
2013/03/14(木) 01:40:41.660541デフォルトの名無しさん
2013/03/14(木) 04:34:26.08Learning Python 5th
http://www.amazon.co.jp/gp/aw/d/1449355730
0542デフォルトの名無しさん
2013/03/14(木) 06:42:45.76来週でると思うよ。
来週の何曜日に出るか知りたかったら、オライリー・ジャパンに直接聞いてみるといいよ。
0543デフォルトの名無しさん
2013/03/14(木) 08:16:25.140544デフォルトの名無しさん
2013/03/14(木) 08:19:22.33購入ボタンを押すプログラムが書きたいのですが
Pythonでも出来ますか?
0545デフォルトの名無しさん
2013/03/14(木) 08:49:43.62出来る
0546デフォルトの名無しさん
2013/03/14(木) 10:51:35.26にちゃんみたいにリクエストやレスポンスなどの仕様が公開されてません
0547デフォルトの名無しさん
2013/03/14(木) 10:54:14.41気合いと根性があれば可能だけれども,言語の選定は重要.
0548デフォルトの名無しさん
2013/03/14(木) 12:28:05.00初心者にできるとは言ってないことに注意しろ
0549デフォルトの名無しさん
2013/03/14(木) 12:36:26.73本当の本当に言語一個もやったことがない初心者だと1年コースだと思え
0550デフォルトの名無しさん
2013/03/14(木) 14:23:44.13ネットブックをpython勉強専用機にしたいと思っています
そう自分は形から入る性格です
まずarchlinuxを入れました
pythonだけ出来ればいいのでX環境は入れないで良かったのですが
consoleで日本語が使えません>< そこでjfbtermを入れてみました
w3mも見れるしそこで問題は解決したのですがやっぱり物足りない感
そこでWMでタイル型なんて入れたら良いのかな?と思ったのですが
調べるとpythonで書かれたWMがありました→qlite
じゃあいっそpython関係のアプリだけを今後インストールしたいと思いました
X環境とqlite以外入っていない状態です
何かpythonアプリで良いものを教えてくださいm(._.*)m
0551デフォルトの名無しさん
2013/03/14(木) 14:27:23.720552デフォルトの名無しさん
2013/03/14(木) 14:34:29.20誰が見ても超初心者ですね
uzblやwmiiがPython(というか任意の言語)で拡張できて楽しいよ
qtileならpython-xlibが依存関係で入ってるからそれで遊べる
0553デフォルトの名無しさん
2013/03/14(木) 15:56:45.73qliteなんてもんがあるんだーうわー
俺はsqlite3の書き間違いだと思ってたよ、うわー恥ずかしー
って思ったけど良く良く>>552を見てみれば、qtileって書いてあるじゃないか
初心者に試された!
0554デフォルトの名無しさん
2013/03/14(木) 16:39:14.07開発効率的にも実行速度的にもPHPのほうが有利なのに
0555デフォルトの名無しさん
2013/03/14(木) 17:02:53.550556デフォルトの名無しさん
2013/03/14(木) 18:27:40.55ありがとうございます
アマゾンのページのhtmlのソースとかを読んで
ボタン名とかを把握して、クリックする感じになるんですかね?
Python以外の言語の方がやりやすかったりしますでしょうか
0557デフォルトの名無しさん
2013/03/14(木) 18:40:42.470558デフォルトの名無しさん
2013/03/14(木) 18:43:39.96> アマゾンのページのhtmlのソースとかを読んで
> ボタン名とかを把握して、クリックする感じになるんですかね?
基本的にはそう、mechanizeとかね
webkitを使えばログイン画面をそのまま表示して入力させたりajaxサイトにも対応出来る
> Python以外の言語の方がやりやすかったりしますでしょうか
どの言語もやり易さは大体同じだけど、シンプルなpythonが一番わかりやすいよ
0559デフォルトの名無しさん
2013/03/14(木) 19:01:55.35そりゃパイソンスレで聞けばパイソンが一番やりやすいって答えるよ
実際はPHPが一番楽
0560デフォルトの名無しさん
2013/03/14(木) 19:12:41.980561デフォルトの名無しさん
2013/03/14(木) 19:13:55.18MSで働いてるような凄腕プログラマもいれば
林檎で働いてるゴミグラマもいる
0562デフォルトの名無しさん
2013/03/14(木) 19:36:43.20実は >>556 の質問には
node.js が最適と答えざるを得ない
0563デフォルトの名無しさん
2013/03/14(木) 19:44:00.77Appleみたいな強烈なセンスある天才やジョブスみたいなカリスマは残念だけどあまり居ないね
0564デフォルトの名無しさん
2013/03/14(木) 19:53:04.780565デフォルトの名無しさん
2013/03/14(木) 19:55:12.140566デフォルトの名無しさん
2013/03/14(木) 20:10:38.190567デフォルトの名無しさん
2013/03/14(木) 21:16:36.55神扱いされてるプログラマの一人だけどまあ地味なのは否めないな
0568デフォルトの名無しさん
2013/03/14(木) 22:11:20.010569デフォルトの名無しさん
2013/03/15(金) 03:53:02.23作者には美的感覚が無かったのか
0570デフォルトの名無しさん
2013/03/15(金) 04:16:14.95アンインストールする方法はありますか?
0571デフォルトの名無しさん
2013/03/15(金) 06:35:35.82ファイルを削除するだけ
0572デフォルトの名無しさん
2013/03/15(金) 09:53:47.340573デフォルトの名無しさん
2013/03/15(金) 10:52:21.45個人的にはlowerCamelCaseの方が気持ち悪い
PascalCaseとアンスコだけでいい
0574デフォルトの名無しさん
2013/03/15(金) 13:49:16.940575デフォルトの名無しさん
2013/03/15(金) 20:26:15.74アホのオレには一苦労だったわ
他の言語で慣れてる人には、楽勝なんだろうな〜
0576デフォルトの名無しさん
2013/03/15(金) 20:40:02.010577デフォルトの名無しさん
2013/03/15(金) 22:05:42.210578デフォルトの名無しさん
2013/03/15(金) 22:30:48.520579デフォルトの名無しさん
2013/03/15(金) 22:49:00.850580デフォルトの名無しさん
2013/03/16(土) 00:07:35.32何か不満か
たぶん2.7の期限が来ても誰かがサポートつづけんだろ
0581デフォルトの名無しさん
2013/03/16(土) 00:24:51.520582デフォルトの名無しさん
2013/03/16(土) 00:26:23.400583デフォルトの名無しさん
2013/03/16(土) 01:12:27.47まあ3系にはシェバンを理解するランチャが付いてるんですが
0584デフォルトの名無しさん
2013/03/16(土) 01:16:27.61馬鹿には無理
0585デフォルトの名無しさん
2013/03/16(土) 01:21:01.67pyである必要性すらない
0586デフォルトの名無しさん
2013/03/16(土) 01:38:09.21現実が見えてない馬鹿はお前な
0587デフォルトの名無しさん
2013/03/16(土) 07:28:18.97応答なしになってデバッグしづらいです。
応答なしにならないようにする、または出力先を idle に変えるような方法はありますか?
環境は win7 64 bit, python 2.7.3, wxPython2.8-win32-unicode-2.8.12.1-py27 で idle から実行しています。
例えばフレームのタイトルに "日本語文字列" などを unicode にしていない場合のエラーでも
wxPython: stdout/stderr ウィンドウが応答無しになりエラーメッセージがスクロールすらできません。
0588デフォルトの名無しさん
2013/03/16(土) 09:41:17.49pyscripterならwxのエラーも出てるけど
0589デフォルトの名無しさん
2013/03/16(土) 09:56:25.70PyScripter-v2.5.3-Setup.exe からインストールしてやってみました。
こちらだと例外ダイアログは正常に閉じれますが、別に表示される wxPython: stdout/stderr は
マウスを近づけただけで応答なしになってしまいます。
0590デフォルトの名無しさん
2013/03/16(土) 09:58:39.000591デフォルトの名無しさん
2013/03/16(土) 10:54:35.03python test.py として実行したら、 wxPython: stdout/stderr ダイアログは表示されませんでした。
エラーメッセージがコマンドプロンプトに表示されましたが、ダイアログに表示されたものではありません。
もしかしたらダイアログに表示される最初のメッセージなのかもしれません。
>>588
バグの原因は文字コードではなく未定義の配列要素へのアクセスが原因でした。
修正したあと別のエラーによってダイアログが表示されましたが、固まらずにエラーログが表示されました。
バグの内容によって応答なしにはならないので、このまま PyScripter を使おうと思います。ありがとうございました。
0592デフォルトの名無しさん
2013/03/16(土) 11:03:53.24http://www.wxpython.org/docs/api/wx.App-class.html#__init__
redirectをFalseにするとウインドウが出なくなる
0593 忍法帖【Lv=5,xxxP】(1+0:5)
2013/03/16(土) 11:59:06.250594デフォルトの名無しさん
2013/03/16(土) 12:01:57.36Eclipse + PyDev + CVS
0595デフォルトの名無しさん
2013/03/16(土) 12:07:11.460596デフォルトの名無しさん
2013/03/16(土) 12:09:19.213.xは文字コード周りが「枯れてない」ので
どっちも面倒くさいことになるのはいっしょ。
まだ対処可能なケースの多い2.xの方がマシ。
3.3でかなり改善はされたけど、
おかげでバグが激しくて3.3.1待ちの状態。
0597デフォルトの名無しさん
2013/03/16(土) 12:11:50.283.3はまだ地雷だけど
0598デフォルトの名無しさん
2013/03/16(土) 12:13:40.340599デフォルトの名無しさん
2013/03/16(土) 12:23:02.030600デフォルトの名無しさん
2013/03/16(土) 12:39:23.240601デフォルトの名無しさん
2013/03/16(土) 13:00:05.500602デフォルトの名無しさん
2013/03/16(土) 13:07:24.380603デフォルトの名無しさん
2013/03/16(土) 13:07:26.72emacs + auto-complete
0604デフォルトの名無しさん
2013/03/16(土) 13:09:30.050605デフォルトの名無しさん
2013/03/16(土) 13:26:56.28100回まわさないと水が出てこない蛇口でも使えるから糞仕様ではないって言うよ、たぶん
0606デフォルトの名無しさん
2013/03/16(土) 13:52:22.790607デフォルトの名無しさん
2013/03/16(土) 13:53:47.760608デフォルトの名無しさん
2013/03/16(土) 14:19:20.83Notepad++ プラグインのPython Scriptを入れて
0609デフォルトの名無しさん
2013/03/16(土) 15:50:27.760610デフォルトの名無しさん
2013/03/16(土) 16:04:07.24python $(FULL_CURRENT_PATH)
Enter
0611デフォルトの名無しさん
2013/03/16(土) 16:08:55.250612デフォルトの名無しさん
2013/03/16(土) 16:54:14.17>>611 知らなかった。やらせてもらいます。
0613デフォルトの名無しさん
2013/03/16(土) 19:16:55.47RubyみたいにWindowsは中途半端にサポートしてますか?
0614デフォルトの名無しさん
2013/03/16(土) 19:18:30.890615デフォルトの名無しさん
2013/03/16(土) 19:18:50.740616デフォルトの名無しさん
2013/03/16(土) 19:55:49.760617デフォルトの名無しさん
2013/03/16(土) 20:02:20.032.7ベースだけど
0618デフォルトの名無しさん
2013/03/16(土) 20:29:54.240619デフォルトの名無しさん
2013/03/16(土) 21:21:18.30ncursesを使った簡単なプログラムを作りたいと思ったのですが
その簡単なサンプルみたいなものも情報も少なく感じています。
何かおすすめみたいのがあれば教えてください m(_ _"m)
0620デフォルトの名無しさん
2013/03/16(土) 21:25:06.620621デフォルトの名無しさん
2013/03/16(土) 21:38:22.660622デフォルトの名無しさん
2013/03/16(土) 21:41:30.46一応Cのライブラリには対応してたはず
最悪.NETのライブラリも使える
0623デフォルトの名無しさん
2013/03/16(土) 21:48:20.04http://pastebin.com/8CgSPDJ0
0624デフォルトの名無しさん
2013/03/16(土) 22:55:41.89GUIは.NETの使えば良いかなーって感じ
0625デフォルトの名無しさん
2013/03/16(土) 23:01:20.06プログラミング初心者の俺でもそのくらい分かる
0626デフォルトの名無しさん
2013/03/16(土) 23:21:57.85L = []
for i in range(10):
L[i] = "abc" + str(i)
print(L)
上記を実行して以下のようなリストを作りたいのですがうまくいきません。
["abc0","abc1","abc2",…,"abc9"]
どうすれば意図する事が出来るでしょうか?
0627デフォルトの名無しさん
2013/03/16(土) 23:22:59.570628デフォルトの名無しさん
2013/03/16(土) 23:37:04.33(1) L = [] → L = [None]*10
(2) L[i] = "abc" + str(i) → L.append("abc"+str(i))
(3) >>627 ( i をキャストしてないけど)
(3)のリスト内包表記がベスト
あと、文字列の結合は ''.join(list) を使ったほうが良い
0629デフォルトの名無しさん
2013/03/17(日) 15:23:33.270630デフォルトの名無しさん
2013/03/17(日) 15:50:48.920631デフォルトの名無しさん
2013/03/17(日) 16:31:44.160632デフォルトの名無しさん
2013/03/17(日) 16:36:21.580633デフォルトの名無しさん
2013/03/17(日) 16:42:13.810634デフォルトの名無しさん
2013/03/17(日) 16:53:45.110635デフォルトの名無しさん
2013/03/17(日) 16:54:22.830636デフォルトの名無しさん
2013/03/17(日) 17:18:07.660637デフォルトの名無しさん
2013/03/17(日) 17:31:54.49L = ["abc%d" % i for i in range(10)]
0638デフォルトの名無しさん
2013/03/17(日) 17:41:28.130639デフォルトの名無しさん
2013/03/17(日) 17:42:34.320640デフォルトの名無しさん
2013/03/17(日) 17:54:17.190641デフォルトの名無しさん
2013/03/17(日) 17:57:47.03list(map("abc{}".format, range(10)))
0642デフォルトの名無しさん
2013/03/17(日) 17:58:56.750643デフォルトの名無しさん
2013/03/17(日) 18:00:48.440644デフォルトの名無しさん
2013/03/17(日) 18:03:20.59データ構造やアルゴリズムを変えてみてから言えよ
0645デフォルトの名無しさん
2013/03/17(日) 18:04:30.870646デフォルトの名無しさん
2013/03/17(日) 18:06:27.650647デフォルトの名無しさん
2013/03/17(日) 18:17:59.540648 忍法帖【Lv=6,xxxP】(1+0:5)
2013/03/17(日) 18:26:55.10http://cl.ly/code/3R0f3S2I161j
サブディレクトリ含む場合は出来るのですが、サブディレクトリなしの場合が出来ません。
こんなエラー
http://cl.ly/text/2e0F0Q101l3c
どこがダメでしょうか。
0649デフォルトの名無しさん
2013/03/17(日) 18:33:40.26どこがどうと言えないのだけど
0650デフォルトの名無しさん
2013/03/17(日) 18:37:08.010651デフォルトの名無しさん
2013/03/17(日) 18:39:01.59os.path.joinの第二引数がリストになってるよ
0652デフォルトの名無しさん
2013/03/17(日) 18:39:13.060653デフォルトの名無しさん
2013/03/17(日) 18:39:25.63コードの見た目が壊滅的に気持ち悪い
記号の演算子乱用する言語と同じくらい気持ち悪い
0654デフォルトの名無しさん
2013/03/17(日) 18:40:55.640655デフォルトの名無しさん
2013/03/17(日) 18:44:06.710656デフォルトの名無しさん
2013/03/17(日) 18:45:38.30これは不細工が嫌いとかそういうレベルの感情だからどうしようもない
0657デフォルトの名無しさん
2013/03/17(日) 18:46:29.710658デフォルトの名無しさん
2013/03/17(日) 18:50:46.49map("abc{}".format, range(10)) ともなると
"abc{}".format のアリティが文字列リテラルの中の {} の数によって決められるのがあれかも
0659デフォルトの名無しさん
2013/03/17(日) 18:51:18.440660デフォルトの名無しさん
2013/03/17(日) 18:52:44.49append(lst, elem)
join(lst1, lst2)
とかしたい。
0661デフォルトの名無しさん
2013/03/17(日) 18:59:41.74joinを呼ぶ文字列は区切り文字であってリストじゃない
つまりlst1とlst2を連結するメソッドではない
0662デフォルトの名無しさん
2013/03/17(日) 19:00:51.44むしろシーケンスがlenメソッド持つべきだろ
頭湧いてんのか
0663デフォルトの名無しさん
2013/03/17(日) 19:03:18.84文字列の連結は + にしてほしい。
str1 + str2
0664デフォルトの名無しさん
2013/03/17(日) 19:04:40.220665デフォルトの名無しさん
2013/03/17(日) 19:05:45.150666デフォルトの名無しさん
2013/03/17(日) 19:06:21.590667デフォルトの名無しさん
2013/03/17(日) 19:06:27.70だからそれは出来るだろ。処理系によって滅茶苦茶おそくなるが
というか、お前はPythonやオブジェクト指向言語を使わないほうが良いと思う
まあ、オブジェクト指向だからこそ演算子のオーバーロードができるわけだから
もうプログラミング辞めたほうがいいと思う
0668デフォルトの名無しさん
2013/03/17(日) 19:06:40.090669デフォルトの名無しさん
2013/03/17(日) 19:08:02.960670デフォルトの名無しさん
2013/03/17(日) 19:08:50.54def append(a, e):
a.append(e)
def join(s, a):
s.join(a)
def map(*a, **b):
raise Exception('Hey motherfucker! Do NOT use "map" function.')
from unko import *
0671デフォルトの名無しさん
2013/03/17(日) 19:12:08.76>>628
ありがとうございます。
リスト末尾への追加はappend()を使うんですね。すっかり頭から抜けていました。
(1)のL = [None]*10
を使って最初のループに当てはめてみてもうまくいきました。
メソッドを使わずに代入だけでリスト内の構成を変えようとした事が失敗の原因だったんですね。
まだ内包表記まで進んでいないので内包表記は後日見直してみます。
本当にありがとうございました。
0672デフォルトの名無しさん
2013/03/17(日) 19:21:35.26append([1, 2, 3], 4) の結果はどこに行くの。
0673デフォルトの名無しさん
2013/03/17(日) 19:28:36.770674デフォルトの名無しさん
2013/03/17(日) 19:37:07.83何で?
こんな変な動作をする関数は
Cなどの従来一般的な開発言語にはないでしょ。
0675デフォルトの名無しさん
2013/03/17(日) 19:38:17.940676デフォルトの名無しさん
2013/03/17(日) 19:40:54.31残念ながらC言語以前からありますw
0677デフォルトの名無しさん
2013/03/17(日) 19:42:12.690678デフォルトの名無しさん
2013/03/17(日) 19:44:26.620679デフォルトの名無しさん
2013/03/17(日) 19:49:47.71append([1, 2, 3], 4) に返して欲しいのは [1, 2, 3, 4] だよ。
implicit に a を書き換えるんじゃなくて。
関数定義するならこんな感じ。
def append(a, e):
return a + [e]
0680デフォルトの名無しさん
2013/03/17(日) 19:51:13.44人間の脳味噌って不可思議だね
0681デフォルトの名無しさん
2013/03/17(日) 19:52:03.61その関数に何の意味があるんだ…
0682デフォルトの名無しさん
2013/03/17(日) 19:58:51.65じゃあ、a.append(e) に何の意味があるんだ?
0683デフォルトの名無しさん
2013/03/17(日) 19:59:22.360684デフォルトの名無しさん
2013/03/17(日) 20:02:16.89aのメソッドであることに意味がある
>>660みたいな馬鹿には一生わからないだろうが
0685デフォルトの名無しさん
2013/03/17(日) 20:02:38.43嫌なら使うのやめろ
士ね
0686デフォルトの名無しさん
2013/03/17(日) 20:04:33.84a のメソッドであることにどんな意味があるの?
0687デフォルトの名無しさん
2013/03/17(日) 20:14:47.84mapにたいして深刻な勘違いをしていると言わざるを得ない
>>686
リストしか使わない処理だから。読むときも書くときも他のことを考えなくて済む
リストを継承したクラスでも同じことが出来る
>>660みたいな馬鹿には一生わからないだろうが
0688デフォルトの名無しさん
2013/03/17(日) 20:16:32.91レス乞食にはpassを食わせろ
0689デフォルトの名無しさん
2013/03/17(日) 20:20:25.320690デフォルトの名無しさん
2013/03/17(日) 20:21:09.87嫌なら使うのやめろ
士ね
0691デフォルトの名無しさん
2013/03/17(日) 20:29:58.320692デフォルトの名無しさん
2013/03/17(日) 20:31:44.870693デフォルトの名無しさん
2013/03/17(日) 20:39:19.170694デフォルトの名無しさん
2013/03/17(日) 20:40:48.49pass
0695デフォルトの名無しさん
2013/03/17(日) 21:35:45.40じゃあなんで len は lst.len() みたいにならないんだ?
ぜんぶメソッドに統一すればいいじゃないか。
0696デフォルトの名無しさん
2013/03/17(日) 21:38:57.070697デフォルトの名無しさん
2013/03/17(日) 21:40:50.78わかります
0698デフォルトの名無しさん
2013/03/17(日) 21:49:21.130699デフォルトの名無しさん
2013/03/17(日) 22:01:14.570701デフォルトの名無しさん
2013/03/17(日) 22:33:10.94http://mail.python.org/pipermail/python-3000/2006-November/004643.html
0702デフォルトの名無しさん
2013/03/17(日) 23:37:17.230703デフォルトの名無しさん
2013/03/18(月) 02:34:54.800704デフォルトの名無しさん
2013/03/18(月) 07:02:15.51それ読むとグイドは x.len() キモイって言ってるけど、
同じ理由で lst.append(elem) もキモイんだけど。
それと、lst.append(elem) が lst の内容を陰に書き換えるのもキモイ。
0705デフォルトの名無しさん
2013/03/18(月) 07:15:09.54発言に多少齟齬があっても気にしないのが大人としての優しさ
0706デフォルトの名無しさん
2013/03/18(月) 07:26:54.200707デフォルトの名無しさん
2013/03/18(月) 07:38:38.920708 忍法帖【Lv=7,xxxP】(1+0:5)
2013/03/18(月) 08:36:15.99サンクス!!
0709デフォルトの名無しさん
2013/03/18(月) 08:49:49.68副作用があるときメソッド、副作用がないとき関数。
例:lst.sort() と sorted(lst)
0710デフォルトの名無しさん
2013/03/18(月) 09:02:53.930711デフォルトの名無しさん
2013/03/18(月) 09:13:25.39そんなメソッドstrにあったか?
0712デフォルトの名無しさん
2013/03/18(月) 09:33:26.81str.decode()も副作用がない
0713デフォルトの名無しさん
2013/03/18(月) 09:50:27.450714デフォルトの名無しさん
2013/03/18(月) 11:43:53.370715デフォルトの名無しさん
2013/03/18(月) 12:10:08.57僕?お昼休みですけど
ところでお前ら死ね
0716デフォルトの名無しさん
2013/03/18(月) 13:31:48.40appendはリストだけの操作だから全体に使えるようにする意味がない
全て関数にすべきとか、もうクラスを一度も書いたことがないC言語しか知らない人間の言うことだから
どんな議論も無意味だけど
こんな瑣末なことが気持ち悪いと思うのならPythonは使うべきではない
ま、そんな奴は全ての言語について何かしら本質でないことに対して気持ち悪いと言うのだろうが
それをハッカーがよくやる真っ当な言語ディスだと勘違いしてるのならご愁傷様
0717デフォルトの名無しさん
2013/03/18(月) 13:55:19.270718デフォルトの名無しさん
2013/03/18(月) 14:07:59.130719デフォルトの名無しさん
2013/03/18(月) 14:16:59.920720デフォルトの名無しさん
2013/03/18(月) 14:35:17.36"abc" → ["a", "b", "c"] → len(["a", "b", "c"]) → 3
みたいに。len が string の長さを測る必要ない。
0721デフォルトの名無しさん
2013/03/18(月) 14:36:38.18stringに対して酷い誤解をしてるよ
0722デフォルトの名無しさん
2013/03/18(月) 14:39:42.390723デフォルトの名無しさん
2013/03/18(月) 14:42:28.81for i in range(len(list)): list[i]
は出来るのに
for i in range(len(string)): string[i]
がダメな理由は何?
馬鹿すぎてお話にならないが
0724デフォルトの名無しさん
2013/03/18(月) 14:45:58.720725デフォルトの名無しさん
2013/03/18(月) 14:48:20.480726デフォルトの名無しさん
2013/03/18(月) 14:49:45.490727デフォルトの名無しさん
2013/03/18(月) 14:50:29.97そう決めるのならPythonを使うべきではない。それだけ
0728デフォルトの名無しさん
2013/03/18(月) 14:59:18.39それらはすべて自分のライブラリにフィードバックしてるから。
ありがとう!
0729デフォルトの名無しさん
2013/03/18(月) 15:00:41.17全て台無しにする糞ライブラリの完成だなw
0730デフォルトの名無しさん
2013/03/18(月) 15:03:24.350731デフォルトの名無しさん
2013/03/18(月) 15:11:17.51やっぱ速度も違ってくるのかな?
0732デフォルトの名無しさん
2013/03/18(月) 15:21:03.700733デフォルトの名無しさん
2013/03/18(月) 15:21:39.54>>> from timeit import timeit
>>> timeit(' ["abc" + str(i) for i in range(10)] ')
12.046442985534668
>>> timeit(' ["".join(("abc", str(i))) for i in range(10)] ')
16.259288787841797
>>> timeit(' ["".join(["abc", str(i)]) for i in range(10)] ')
19.62903094291687
0734デフォルトの名無しさん
2013/03/18(月) 15:26:57.04ありがと。
けっこう差が出るもんだね
0735デフォルトの名無しさん
2013/03/18(月) 15:29:25.29Psyco など)ごとの欠点を引き出さないように書くべきである。たとえば、
CPython が a+=b や a=a+b などの文字列連結をインプレイス処理して、効
率よく動作する実装に依存してはならない。これでは Jython での動作が遅く
なってしまう。パフォーマンスに敏感な部分では、''.join() を使うべき
である。こう書いておけば、様々な実装において、連結処理は線形時間で
処理できる。
0736デフォルトの名無しさん
2013/03/18(月) 15:32:21.690737デフォルトの名無しさん
2013/03/18(月) 15:32:55.580738デフォルトの名無しさん
2013/03/18(月) 15:35:07.76じゃあその使ってる処理系でベンチやってくれ。
0739デフォルトの名無しさん
2013/03/18(月) 15:40:09.04はい
http://matsulib.hatenablog.jp/entry/2013/02/20/234348
0740デフォルトの名無しさん
2013/03/18(月) 15:46:23.49文字列にがんがん文字列追加してく例じゃん
そりゃjoinのほうが早いよ
0741デフォルトの名無しさん
2013/03/18(月) 16:05:45.10何もしないことです 怠惰や失敗への恐れや他人への迷惑への懸念、大元の理由は様々ですが
あそこにいる人たちの共通点は何もしてこなかった事に尽きます
0742デフォルトの名無しさん
2013/03/18(月) 18:35:27.74仕事しろチンカス
0743デフォルトの名無しさん
2013/03/18(月) 18:45:41.48自称意識高い系で、有名プログラマとか本の受け売りばっかり頭に叩き込んでる奴が
皺のなくなった頭とドヤ顔でこういうことを喋ってる
たまに勉強会で見かける
0744デフォルトの名無しさん
2013/03/18(月) 18:53:03.470745デフォルトの名無しさん
2013/03/18(月) 18:54:05.900746デフォルトの名無しさん
2013/03/18(月) 18:55:54.160747デフォルトの名無しさん
2013/03/18(月) 18:56:32.22馬鹿「受け売りはやめろ」
0748デフォルトの名無しさん
2013/03/18(月) 18:58:15.200749デフォルトの名無しさん
2013/03/18(月) 18:59:49.100750デフォルトの名無しさん
2013/03/18(月) 19:01:09.38そのくせ開発者には文句たらたら(しかもそれは自分の無能さが原因)。死んだほうがいい
0751デフォルトの名無しさん
2013/03/18(月) 19:01:56.350752デフォルトの名無しさん
2013/03/18(月) 19:02:40.23お前工具の開発元にいちいちフィードバック送ってんの?
へーすごいね。えらいね。帰っていいよ。
0753デフォルトの名無しさん
2013/03/18(月) 19:05:01.830754デフォルトの名無しさん
2013/03/18(月) 19:06:06.49そのコミュニティとやらはお前に何か尽くしてくれんの?
葬式に来てくれるとか?
そうでないなら労力を吸い取られてるだけの単なる物好きだね
大したものだ
0755デフォルトの名無しさん
2013/03/18(月) 19:08:31.66何か強みになりましたか?
0756デフォルトの名無しさん
2013/03/18(月) 19:14:52.080757デフォルトの名無しさん
2013/03/18(月) 19:16:01.07お前らは強制的にあの世行きだ
0758デフォルトの名無しさん
2013/03/18(月) 19:17:18.37頭大丈夫?
0759デフォルトの名無しさん
2013/03/18(月) 19:17:19.01ユーザーの意識が今後の発展にかかわるんだ。
0760デフォルトの名無しさん
2013/03/18(月) 19:19:02.18罵倒する語彙も不足してるらしいな。よく分かるぜ。
0761デフォルトの名無しさん
2013/03/18(月) 19:19:25.720762デフォルトの名無しさん
2013/03/18(月) 19:21:25.63言語仕様についてならコミュニティで大いに語って来いよコミュニティバカ
0763デフォルトの名無しさん
2013/03/18(月) 19:21:49.00罵倒じゃなくて>>751-752,754-755みたいなレスをしちゃう人間の脳みそを本気で心配しているのだが
Python関連の何かに親でも殺されたのか?怖いよ
0764デフォルトの名無しさん
2013/03/18(月) 19:26:06.21一週間前にも居たよな
公開オナニー馬鹿が全国に
0765デフォルトの名無しさん
2013/03/18(月) 19:28:26.10http://bugs.python.org/
本当に書きに行く度胸のある奴はいないだろうから迷惑にはなるまい
0766デフォルトの名無しさん
2013/03/18(月) 19:30:03.16フィードバックのデメリットって何?
自分が使おうとしてるプログラムやソースコードのことで気づいたことでしょ?
わざわざ自分と関係のない問題を見つけ出すわけじゃないよ
なぜフィードバックにブチギレてるのか理解不能w
0767デフォルトの名無しさん
2013/03/18(月) 19:31:51.92誰だ?出てこい
0768デフォルトの名無しさん
2013/03/18(月) 19:32:35.04>そうでないなら労力を吸い取られてるだけ
0769デフォルトの名無しさん
2013/03/18(月) 19:36:35.83労力を削く以上に根本的なデメリットは無いよね
否定していいぞ、できるなら
0770デフォルトの名無しさん
2013/03/18(月) 19:37:05.480771デフォルトの名無しさん
2013/03/18(月) 19:37:15.960772デフォルトの名無しさん
2013/03/18(月) 19:40:38.350773デフォルトの名無しさん
2013/03/18(月) 19:43:02.670774デフォルトの名無しさん
2013/03/18(月) 19:45:03.450775デフォルトの名無しさん
2013/03/18(月) 19:46:34.40無能な働き者がコミットしまくるよりいいんじゃないの
0776デフォルトの名無しさん
2013/03/18(月) 19:48:26.18このスレ存続の危機だろうけどな
0777デフォルトの名無しさん
2013/03/18(月) 19:50:34.61うん、このスレに上がってるような不満や問題点の指摘は的外れすぎて絶対にコミッターにはなれないし
なんでPythonを使ってるかも分からないレベル
それくらい言語への理解が至ってないのに、何故か偉そうで意味が分からない
質問者ではないようだし、自分では初心者だと思ってないらしいから質が悪い
0778デフォルトの名無しさん
2013/03/18(月) 19:55:52.070779デフォルトの名無しさん
2013/03/18(月) 19:56:03.11考えるより自分の胸に手を当てた方が早いんじゃないか
0780デフォルトの名無しさん
2013/03/18(月) 19:59:19.43お前がお前の胸に手を当てて分かることなんて俺は知らんよ
0781デフォルトの名無しさん
2013/03/18(月) 20:01:18.94ぐらいにしか聞こえない
0782デフォルトの名無しさん
2013/03/18(月) 20:03:11.830783デフォルトの名無しさん
2013/03/18(月) 20:05:46.42あれなりたくてなってるものだったの?
罰ゲームだと思ってた
0784デフォルトの名無しさん
2013/03/18(月) 20:05:56.520785デフォルトの名無しさん
2013/03/18(月) 20:07:05.57よく何も知らないことに対して自信満々に嘘八百が並べられるな
生きてて恥ずかしくないんだろうか
0786デフォルトの名無しさん
2013/03/18(月) 20:07:45.960787デフォルトの名無しさん
2013/03/18(月) 20:11:26.75昔は人生の落伍者でも使える言語との評判でした
0788デフォルトの名無しさん
2013/03/18(月) 20:12:01.89今でしょ!の先生も言ってるだろ
まあ、今何かする暇があるってことは
今の作業を事前にスケジュールできていなかったわけで
アレ見た社会人がネタじゃなくマジ感銘受けてられると
いろんな意味で参る
0789デフォルトの名無しさん
2013/03/18(月) 20:14:54.95時代の進歩を感じるね
0790731
2013/03/18(月) 20:15:06.34すまんの
0791デフォルトの名無しさん
2013/03/18(月) 20:15:25.510792デフォルトの名無しさん
2013/03/19(火) 21:21:47.33移住するか
0793デフォルトの名無しさん
2013/03/19(火) 21:23:57.650794デフォルトの名無しさん
2013/03/19(火) 21:27:07.740795デフォルトの名無しさん
2013/03/19(火) 21:27:20.58Haskelでも見てくるか
0796デフォルトの名無しさん
2013/03/19(火) 21:28:56.270797デフォルトの名無しさん
2013/03/19(火) 21:31:08.06ポルトガルの詩だっけ?
0798デフォルトの名無しさん
2013/03/19(火) 21:33:41.600799デフォルトの名無しさん
2013/03/19(火) 23:51:32.100800デフォルトの名無しさん
2013/03/20(水) 08:11:14.15こんなに難しいとは・・・
0801デフォルトの名無しさん
2013/03/20(水) 08:35:23.170802デフォルトの名無しさん
2013/03/20(水) 08:52:10.1914. 浮動小数点演算、その問題と制限
http://docs.python.jp/2/tutorial/floatingpoint.html
0803デフォルトの名無しさん
2013/03/20(水) 08:54:39.953.0
0804デフォルトの名無しさん
2013/03/20(水) 08:56:15.770805デフォルトの名無しさん
2013/03/20(水) 09:00:11.41馬鹿には無理
0806デフォルトの名無しさん
2013/03/20(水) 10:38:11.50なぜこのような奇妙な仕様になったのでしょうか
0807デフォルトの名無しさん
2013/03/20(水) 10:47:57.03C#やJavaなんかは戻り値やプロパティを使ってるが、
それらに比べてもともとクソ遅いので例外のパフォーマンスヒットを無視できるから
0808デフォルトの名無しさん
2013/03/20(水) 10:59:32.97Pythonは外部イテレータ(C#やJavaと同じ方式)なので実はそうでもなかったりする
next()一つで済むという一点だけだな
0809デフォルトの名無しさん
2013/03/20(水) 12:15:21.45くたばれ、おっさん!
0810デフォルトの名無しさん
2013/03/20(水) 13:19:57.300811デフォルトの名無しさん
2013/03/20(水) 13:21:02.710812デフォルトの名無しさん
2013/03/20(水) 14:29:34.73メソッドチェインやらラムダやらSQLもどきやらで同じことやってる言語は色々あるが
ここまでしっくりくるのは他にない
0813デフォルトの名無しさん
2013/03/20(水) 14:45:29.740814デフォルトの名無しさん
2013/03/20(水) 14:47:55.810815デフォルトの名無しさん
2013/03/20(水) 15:52:28.870816デフォルトの名無しさん
2013/03/22(金) 00:39:50.59掛け算の結果がおかしいんですが、これは私だけでしょうか?
Python2.7.3 Windows7 32bit
0817デフォルトの名無しさん
2013/03/22(金) 00:51:27.44パソコンの中の小人がサボってるのかも
0818デフォルトの名無しさん
2013/03/22(金) 00:55:55.400819デフォルトの名無しさん
2013/03/22(金) 00:57:04.49計算結果はおかしくありません。コンピュータにおける浮動小数点のしくみを理解しましょう
あとこのような質問はあまりにも基礎的なのですでに多くの質問と回答がネット上に上がっているはずです
事前に検索する癖をつけるか計算機の基礎知識を身につけてください(「コンピュータはなぜ動くのか」を読むことを勧めます)
0820デフォルトの名無しさん
2013/03/22(金) 00:58:49.55うん
ttp://codepad.org/w55bPRtW
0821デフォルトの名無しさん
2013/03/22(金) 01:05:53.59基本情報技術者を受けたほうがはやい。これもクソ退屈な試験で過去問みるだけで受かるけど
その過程で浮動小数点とか基本的なことは大体知ることができるし、何の役にも立たない資格が貰えるオマケ付き
それよか実際に重要なのは厳密な解が欲しいときに
例えば計算のすべてをint型でやるようにアルゴリズムを考えなおす等のプログラミングテクニックかな
やり方は問題によるけど競技プログラミングではよく出くわす
0822デフォルトの名無しさん
2013/03/22(金) 01:09:45.660823デフォルトの名無しさん
2013/03/22(金) 01:10:25.390824デフォルトの名無しさん
2013/03/22(金) 01:14:39.35退屈な本であることは否定しないけどこういう記事
ttp://www.whitehackerz.jp/blog/?p=1154
がネタかネタじゃないのか区別つかずにバイラルする世相だとマジレスしたくもなる
0825デフォルトの名無しさん
2013/03/22(金) 01:21:55.00スクリプト言語の演算速度なんてどうせほぼ無視できるんだから
0826デフォルトの名無しさん
2013/03/22(金) 01:29:25.570827デフォルトの名無しさん
2013/03/22(金) 01:32:31.81pythonのdecimalモジュールみたいにライブラリでやると演算自体のコストに比べて
諸々のオーバーヘッドがとんでもなく大きくなるからなあ
10進演算が組み込みで速いって結構メリットだと思うけど
0828デフォルトの名無しさん
2013/03/22(金) 01:59:58.81コメンテーターがあほばっか
0829デフォルトの名無しさん
2013/03/22(金) 02:05:08.240830デフォルトの名無しさん
2013/03/22(金) 05:46:25.150831デフォルトの名無しさん
2013/03/22(金) 08:48:22.440832デフォルトの名無しさん
2013/03/22(金) 09:15:43.530833デフォルトの名無しさん
2013/03/22(金) 18:21:03.150834デフォルトの名無しさん
2013/03/23(土) 15:12:14.36例えば
for i in [Firefox, Chrome, Opera, Safari]: のループ内で、それぞれの変数名の最初の2文字(FirefoxならFi)を文字列としてループ内で他の変数に格納することは可能でしょうか?
0835デフォルトの名無しさん
2013/03/23(土) 15:13:36.68辞書使え
0836デフォルトの名無しさん
2013/03/23(土) 15:18:16.27どういう時にそんなことしたくなった?
0837デフォルトの名無しさん
2013/03/23(土) 15:18:24.410838デフォルトの名無しさん
2013/03/23(土) 15:26:34.67それぞれの変数はstatsmodelsのolsで回帰分析をして作成したもので、ループ内ではpandasのデータフレームに、変数名の最初の2文字をカラム名、.params属性で出てくる値をカラムの値として1つずつ繋げて1つのデータフレームとしたいのですが、他に良い方法はありませんか?
0839デフォルトの名無しさん
2013/03/23(土) 15:27:30.360840デフォルトの名無しさん
2013/03/23(土) 15:32:51.640841デフォルトの名無しさん
2013/03/23(土) 15:33:30.87for k, v in locals():
if isinstance(v, statsmodels):
print('k[:2] =', k[:2], 'v =', v)
これでいいんじゃない?
個人が趣味でやる分には構わないと思うけど、
他人が見たらなんのことやらさっぱり。
0842デフォルトの名無しさん
2013/03/23(土) 15:56:25.24ありがとうございます。しかしこのやり方だと含めたくない他のstatsmodelsから生成されたインスタンスも含めることになってしまいますよね?
今回はループを使わずに1つずつ手作業で指定して当分はしのぐことにします。
皆さんありがとうございました。
0843デフォルトの名無しさん
2013/03/23(土) 16:01:43.45よく分からんけど、
for k, v in locals():
if k in ['Firefox', 'Chrome', 'Opera', 'Safari']:
print('k[:2] =', k[:2], 'v =', v)
これでいいんじゃない?
0844デフォルトの名無しさん
2013/03/23(土) 18:05:51.570845デフォルトの名無しさん
2013/03/23(土) 18:09:10.350846デフォルトの名無しさん
2013/03/23(土) 18:26:29.650847デフォルトの名無しさん
2013/03/23(土) 18:29:49.890848デフォルトの名無しさん
2013/03/23(土) 18:34:04.180849デフォルトの名無しさん
2013/03/23(土) 18:35:14.340850デフォルトの名無しさん
2013/03/23(土) 18:41:59.760851デフォルトの名無しさん
2013/03/23(土) 18:47:51.42これ他人事じゃないのよ
0852デフォルトの名無しさん
2013/03/23(土) 19:11:36.60自分のことだけ気をつけてれば大丈夫
0853デフォルトの名無しさん
2013/03/24(日) 16:19:27.06質問の前提を変えずに解決法を提示するという当たり前のことがわかってない人が若干名いるんだよね
「そんなことするな」「やらなければいい」って猿でも言える
馬鹿な人ほど問題の前提をひっくり返して解決した気になるって誰かが言ってたけど至言だと思う
解決策が思いつかない自分の駄目さから無意識のうちに目を背けようとしてるんだってさ
0854デフォルトの名無しさん
2013/03/24(日) 16:47:24.18if v in [Firefox, Chrome, Opera, Safari]:
でいけるはず、やってみそ
0855デフォルトの名無しさん
2013/03/24(日) 16:49:33.96質問の前提を変えちゃダメなんてルールは無い
馬鹿げた質問には馬鹿だと教えてやるのが親切ってもんだ
0856デフォルトの名無しさん
2013/03/24(日) 17:04:38.04カスの世話だ
0857デフォルトの名無しさん
2013/03/24(日) 17:22:23.100858デフォルトの名無しさん
2013/03/24(日) 17:54:06.13/: :| ヽ
/ : :/ ヽ ___ _,,,:. .-: :´彡フ
_ノ\_∠: : : : : : : : :`: :-: :,:_:/彡 /
( : : : : : : : : : : : : : : `ゝ /
マ r::/: /: : | : : : : : : : : ::\ /
//: /: : : |: : | |: : |: _: : : :ヽ
ジ {/ 7|`\/i: /|:|/|´: : : : :|ヽ
〉 ,‐-‐、`|7 || |_::|,_|: : :|:::|: |
で / r:oヽ` /.:oヽヽ: :|: | :|
{ {o:::::::} {:::::0 }/: :|N
っ | ヾ:::ソ ヾ:::ソ /|: : |
!? ヽ::::ー-.. /ヽ ..ー-::: ヽ::| r--ッ
-tヽ/´|`::::::::::;/ `、 ::::::::::: /: i } >
::∧: : :|: |J \ / /::i: | /_ゝ
. \ヾ: |::|` - ,, ___`-´_ ,, - ´|: : :|:::|
ヽ: |::|\  ̄/ /| |: : :|: |
0859デフォルトの名無しさん
2013/03/24(日) 18:07:25.89そもそも管理すべきデータを間違ってとらえているから
変数名をデータとして扱いたいなんて要求が出るんだよね。
これは完全に設計上の謝りで、質問の前提を変えるなどという問題ではないよ。
特にこの場合は初心者特有の間違いだから、回答としては「そんなことするな」が正解。
ちなみに質問の前提を変えて問題を解決するなんて、馬鹿には無理。
0860デフォルトの名無しさん
2013/03/24(日) 18:14:05.63痴れたことを
0861デフォルトの名無しさん
2013/03/24(日) 18:24:00.770862デフォルトの名無しさん
2013/03/24(日) 20:01:31.30ここは「くだすれPython(超初心者用)その16」というスレ
超初心者には馬鹿に見える秀才君がたくさんいます
超初心者には「そんなことするな」という回答が理解できません
>>859 はスレチ
0863デフォルトの名無しさん
2013/03/24(日) 20:03:32.870864デフォルトの名無しさん
2013/03/24(日) 20:46:51.71なんだ荒らしたいのか?変な人に絡んでしまった。
0865デフォルトの名無しさん
2013/03/24(日) 20:48:55.270866デフォルトの名無しさん
2013/03/24(日) 21:29:28.26そうしたら最適なコードを書きたい人が書いてくれるから
0867デフォルトの名無しさん
2013/03/24(日) 21:46:21.06zip形式のってないんですか?
0868デフォルトの名無しさん
2013/03/24(日) 21:48:19.230869デフォルトの名無しさん
2013/03/24(日) 21:52:00.990870デフォルトの名無しさん
2013/03/24(日) 21:55:02.190871デフォルトの名無しさん
2013/03/25(月) 14:48:14.02オブジェクトをメンバーに持つオブジェクトがあったとします。メンバー側のオブジェクトから親のオブジェクトを参照する
方法はありますか?
例えば
import random
class Ko(object):
def __init__(self,a,b):
self.a=a
self.b=b
class Oya(object):
def __init__(self,x,y,z)
self.kodomo=Ko(x,y)
self.z=z
kodomotachi=[]
oya1=Oya(1,2,3)
oya2=Oya(3,4,5)
oya3=Oya(31,41,51)
oya4=Oya(11,21,31)
kodomotachi.append(oya1.kodomo)
kodomotachi.append(oya2.kodomo)
kodomotachi.append(oya3.kodomo)
kodomotachi.append(oya4.kodomo)
kodomotachi.remove(kodomotachi[random.randint(0,3)])
としたとき、kodomotachiリストはOyaオブジェクトのインスタンスのkodomoメンバで構成されてる
訳ですが、たとえば上記のようにkodomotachiリストの内容が不明な時に、
kodomotachi[2]などから親オブジェクトを参照する方法はありますか?
0872デフォルトの名無しさん
2013/03/25(月) 15:40:25.14parentとchildで書き直して
0873デフォルトの名無しさん
2013/03/25(月) 15:44:09.12KoクラスにOyaインスタンスへの参照を保持する変数を入れとけばいいんじゃないの
0874デフォルトの名無しさん
2013/03/25(月) 15:58:31.87hogoshakai.append(oya1)
hogoshakai.append(oya2)
hogoshakai.append(oya3)
hogoshakai.append(oya4)
o = [oya for oya in hogoshakai if oya.kodomo == kodomotachi[2]]
0875デフォルトの名無しさん
2013/03/25(月) 16:21:40.010876デフォルトの名無しさん
2013/03/25(月) 16:29:05.340877デフォルトの名無しさん
2013/03/25(月) 19:18:34.73import random
class Ko(object):
def __init__(self,a,b,c):
self.a=a
self.b=b
self.c=c
class Oya(object):
def __init__(self,x,y,z)
self.kodomo=Ko(x,y,self)
self.z=z
...
kodomotachi[2].c
ハァハァ、、、ツカレタ、、、ハァハァ
タメシテナイカラ、ダメダッタラゴメンネ
0878871
2013/03/26(火) 08:57:54.62>>876
>>877
みなさん有り難うございました。実はpymunkという物理エンジンを簡単に使うために、○とか□とかの物体をpymunk純正のshapeとかbodyとかのオブジェクトと
ともにpygameの描画メソッドつきのクラスにした自分用ラッパーライブラリを作っています。
pymunkの世界(space)にshapeとかbodyとかの物体情報をappendしてくんですが、衝突判定機能なんかで登録したbodyなどの純正オブジェクトは返り値として
得られるのですが、それらを内包する自作オブジェクトを得る方法はないかと悩んでました。
と言う訳で、メンバ側のオブジェクトは改造しづらい状況なので874さん、876さんの方法でいってみます。
でも877さんのメンバ側のオブジェクトに親オブジェクトの情報を持たせる方法も目から鱗でした。
みなさん、有り難うございました。
0879質問(前編)
2013/03/26(火) 12:18:44.742.RubyでいうRailsみたいなフレームワークはPythonではなんでしょうか?
3.PHPでいうPear、Rubyでいうgem、Pythonではなんでしょうか?
4.今からPython3.3で勉強しても問題ないでしょうか?
5.RubyでいうHerokuみたいな無料で使えるクラウドがありますがPython3.3が動くクラウドってありませんか?
0880質問(後編)
2013/03/26(火) 12:21:04.507.PythonではテキストエディタとIDEどっちを使うほうがいいでしょうか?
8.Pythonの定番のGUI作成ライブラリってありますか?
9.Pythonで構築されたサイトのまとめってありませんか?python.jpで公式に取り上げてませんか?
10.文字コードは基本utf8bomなしで改行コードはLFでコード書くものでしょうか?
0881デフォルトの名無しさん
2013/03/26(火) 12:26:45.262. django
3. pypi, easy_install
4. 大丈v
5. あります
6. 問題ない
7. 俺はvim
8. tkinter, qt
9. python.org
10. yes
0882デフォルトの名無しさん
2013/03/26(火) 12:29:02.060883デフォルトの名無しさん
2013/03/26(火) 12:36:39.66Djangoとか
PyPi
ほとんどローカルでしか使えないと思うけどそれでよければ
ない
いいよ
両方使ってみて自分に合う方
Python3希望しているなら今のところ諸手を挙げたお勧めはない
日本語の資料を希望しているならない
そんな制限はない
0884デフォルトの名無しさん
2013/03/26(火) 13:35:44.30どうせいやいや使ってるんでしょう?
0885デフォルトの名無しさん
2013/03/26(火) 14:12:26.120886デフォルトの名無しさん
2013/03/26(火) 14:13:34.27楽しいから
それだけ
0887デフォルトの名無しさん
2013/03/26(火) 14:14:03.29俺はRuby/PHP/Perlがキモすぎて嫌だから。
適用分野はかぶっているので、Python嫌ならRuby/PHP/Perl使っとけばいいんじゃね?
0888デフォルトの名無しさん
2013/03/26(火) 14:14:58.05それが「Pythonコミュニティー怖い」と言われる所以かもな。
0889デフォルトの名無しさん
2013/03/26(火) 14:52:09.740890871
2013/03/26(火) 16:38:40.97同意。
キモいと言われるかもしれないが俺もPythonは楽しいです。
とっかかりは簡単でも奥が深い(俺が浅いのかも)言語だと信じてます。
objective-C、JAVA、JAVAscriptと挫折した俺だけど、Pythonではちょこちょこ作れてます。
0891デフォルトの名無しさん
2013/03/26(火) 22:38:10.150892デフォルトの名無しさん
2013/03/26(火) 22:51:34.35問題は起きない
「python3」の名前でpathが通る
0893879
2013/03/26(火) 23:02:26.320894デフォルトの名無しさん
2013/03/27(水) 05:35:20.83ありがとうございます。
これで安心してインストール出来ます。
0895デフォルトの名無しさん
2013/03/27(水) 15:05:10.25Pythonは書きやすいし読みやすいからストレスが貯まり辛いよね
多分Rubyでも同じような印象を受けると思う
PythonとRubyはプログラミングの入り口に最適だと思う
>>891
ちなみにUbuntu12.10だとデフォルトでpython3.2が入ってるので楽だよ
「python3」で3系 「python」で2系にpathが通ってる
0896デフォルトの名無しさん
2013/03/27(水) 15:56:55.950897デフォルトの名無しさん
2013/03/27(水) 16:05:57.26本当に入ってました!
ありがとうございます。
0898デフォルトの名無しさん
2013/03/27(水) 18:40:07.300899デフォルトの名無しさん
2013/03/27(水) 21:31:23.64いえ、嬉しかっただけです。
0900デフォルトの名無しさん
2013/03/27(水) 21:36:05.19ここをどこだと思ってる
0901デフォルトの名無しさん
2013/03/27(水) 22:21:01.30class A
{
private $str;
public function setStr($s){
$this->str = $s;
}
public function getStr(){
return $this->str;
}
protected test1($n) {
return ($n + 10) * 2;
}
private test2($n) {
return $n * 2;
}
}
0902デフォルトの名無しさん
2013/03/27(水) 22:26:18.39def __init__(self):
self.__str = None
def setStr(self, s):
self.__str = s
def getStr(self, s):
return self.__str
def test1(self, n):#protectedは無い
return (n + 10) * 2
def __test2(self, n):
return n * 2
0903デフォルトの名無しさん
2013/03/28(木) 00:07:14.850904デフォルトの名無しさん
2013/03/28(木) 00:39:53.91JavaとPHPからPythonくるとなんか違和感がありますがこういうものって覚えるしかなさそうですね
どうもありがとうございます
0905871
2013/03/28(木) 13:02:51.85CとPythonしか書いたことのないあっしですが、上の例を拝見するとPHPよりPythonの方がすっきりしてるように見えるなぁ....。
まぁ、慣れの問題なんでしょうけど....。
やたらとself連呼なのが嫌だってアンチの人は言うけど、どうなんでしょね? 少なくとも、あっしは気になりませんが。
0906デフォルトの名無しさん
2013/03/28(木) 13:58:33.690907デフォルトの名無しさん
2013/03/28(木) 14:10:35.593.08以上のやつ
0908デフォルトの名無しさん
2013/03/28(木) 14:27:24.20PyYAML-3.10.zipをダウンロードしました
python setup.py install
python setup.py --with-libyaml install
ってやるとインストールようなんですが、たとえばPython3.3をアンインストールしたらpyyamlもアンインストールされるのですかね?
Pythonを入れなおした場合、またpyyamlはインストールしなおさないといけないのでしょうか?
0909デフォルトの名無しさん
2013/03/28(木) 14:34:54.21>ってやるとインストールようなんですが、たとえばPython3.3をアンインストールしたらpyyamlもアンインストールされるのですかね?
されない
>Pythonを入れなおした場合、またpyyamlはインストールしなおさないといけないのでしょうか?
しなおさないといけない
0910デフォルトの名無しさん
2013/03/28(木) 16:11:05.200911デフォルトの名無しさん
2013/03/29(金) 16:02:49.59$ apt-cache show python3 | grep 'Version'
$ sudo apt-get install python3.3 python3.3-dev
$ mkdir projects
$ cd projects
ここから先ができません。
$ pyvenv default
$ source default/bin/activate
$ wget http://python-distribute.org/distribute_setup.py
$ python distribute_setup.py
$ easy_install pip
0912デフォルトの名無しさん
2013/03/29(金) 20:54:27.59書いてあるコマンドは実行できるよ
どこが出来ないのかわからないから人に伝える時の方法を教えよう
「このコマンドを打ったら」「こんなエラーが出ました」
「エラー内容:表示された英語全部(長い時は最初と最後の100文字くらい)」
0913デフォルトの名無しさん
2013/03/29(金) 22:17:09.44#!/usr/bin/env PYTHONOPTIMIZE=1 python
print __debug__
みたいなファイルを作って実行すると固まるし、
#!/usr/bin/env python -O
print __debug__
みたいにすると「そのようなファイルやディレクトリはありません」と言われて動かない。
同じファイルを手元のMac(python2.7.3)で動かすと問題なく動くんだけど、なんででしょう?
0914デフォルトの名無しさん
2013/03/29(金) 22:47:59.29ググってたら、CentOSだと #! でのenvの引数は1つしか指定できないみたい。
原因は分かったけど、切り替えの解決法が分からない。
rubyだと
#!/bin/sh
exec ruby -x "$0" "$@"
#!ruby
puts 'Hello world!'
みたいな記法があるみたいだけど・・・・
0915デフォルトの名無しさん
2013/03/29(金) 23:52:24.99#!/usr/bin/env bash
''''exec python -O -- "$0" ${1+"$@"} # '''
print __debug__
これで出来ました。
0916デフォルトの名無しさん
2013/03/30(土) 04:15:51.590917デフォルトの名無しさん
2013/03/30(土) 07:53:05.900918911
2013/03/30(土) 11:03:45.47説明不足ですみません
pyvenv コマンドが見つかりませんとでました
調べたら
pyvenv-3.3 default
でできました。
python distribute_setup.py
をすると
/local/bin /local/libにインストールされるバグ?
http://bugs.python.org/issue16480
easy_install pip
パスがないためインストールできないようです。
0919デフォルトの名無しさん
2013/03/30(土) 15:05:57.45コマンド打ってエラー出たらそのエラー書かないと
ubuntuならeasy_install使いたいなら
$ sudo apt-get install python-setuptools
0921デフォルトの名無しさん
2013/04/02(火) 20:17:54.740922デフォルトの名無しさん
2013/04/02(火) 20:30:48.26https://launchpad.net/~ubuntu-rebuilds/+archive/py3.3
$ sudo add-apt-repository ppa:ubuntu-rebuilds/py3.3
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install python-pip
0923デフォルトの名無しさん
2013/04/02(火) 21:32:13.10Windowsならインストーラ一個落として
Wクリ一発で済むのに
0924デフォルトの名無しさん
2013/04/02(火) 21:33:39.370925デフォルトの名無しさん
2013/04/02(火) 21:37:38.77いやこの辺はWindowsのほうがよっぽど面倒。
0926デフォルトの名無しさん
2013/04/02(火) 21:49:16.43インストーラWクリの
どこがどう面倒なのか説得力ある説明よろしく
0927デフォルトの名無しさん
2013/04/02(火) 21:52:38.95ボタンのある位置までマウスポインタを動かして、そこからずれない様に
マウスを固定しつつ、すばやく二度もクリックしなければいけないのに
どこがどう面倒じゃないのか説得力のある説明よろしく
0928デフォルトの名無しさん
2013/04/02(火) 21:55:48.52の質問じゃないという
ここが超初心者スレであっても
0929デフォルトの名無しさん
2013/04/02(火) 22:00:58.86>>911はWindowsだとWクリック一発で済むの?ほんと?
0930デフォルトの名無しさん
2013/04/02(火) 22:03:59.08オプション選択もある
0931デフォルトの名無しさん
2013/04/02(火) 22:06:54.370932デフォルトの名無しさん
2013/04/02(火) 22:06:59.42WindowsPCの一台くらい持ってるだろ?
やってみれよ。
0933デフォルトの名無しさん
2013/04/02(火) 22:13:06.44よってデフォルトじゃないバージョンを入れるには注意しないと環境が壊れる
WindowsはPythonがよそ者だから何をしても壊れない
0934デフォルトの名無しさん
2013/04/02(火) 22:13:16.10読んでないけど想像はつくな
0935デフォルトの名無しさん
2013/04/02(火) 22:18:45.89良い子は真似すんなよ
0936デフォルトの名無しさん
2013/04/02(火) 22:20:07.060937デフォルトの名無しさん
2013/04/02(火) 22:31:52.65読み終わった後レジの横にあったゴミ箱に捨ててきた
0938デフォルトの名無しさん
2013/04/02(火) 22:40:38.13よそ者の在日民主が暴れても国は揺るがないが
自民が売国すると国が死ぬみたいなものだな
0939デフォルトの名無しさん
2013/04/02(火) 22:47:53.56そもそもソフトごとのインストーラなんてものがない。
パッケージマネージャ使う。
新たにインスコしたければ、他のいろんなパッケージと同様にパッケージマネージャから
インスコしたいパッケージ選ぶだけ。
バージョンが上がればパッケージマネージャが他のパッケージと一緒にバージョンアップ
してくれる。
Lunixでpipやeasy_install使うのはパッケージマネージャの管理外になるので邪道。
>>933
使ったことない奴が何言ってんのよ。
0940デフォルトの名無しさん
2013/04/02(火) 22:50:48.42自分でビルドする羽目になるよね(´・ω・`)
0941デフォルトの名無しさん
2013/04/02(火) 22:54:48.43よってデフォルトじゃないバージョンを入れるには注意しないと環境が壊れる
自分で使うバージョンは自分でビルドしたほうが安心
0942デフォルトの名無しさん
2013/04/02(火) 22:55:13.43こいつ使ったことない絶対w
pipはpipでアップデートするんだよw
パケジなんてなくても.tar.gzからでもインスト出来るし管理出来るかどうかだろ?
何が邪道だw Linux使えてない人が言うでない
0943デフォルトの名無しさん
2013/04/02(火) 23:04:36.89Pythonのバージョン上げると問題が出てきたりするから
上の例ではvenvなんかで仮想環境を掘ってるんだろう
と思うんだけど本の現物を見てみないとなんとも
0944デフォルトの名無しさん
2013/04/02(火) 23:10:53.890945デフォルトの名無しさん
2013/04/02(火) 23:40:26.88Linux使ったことないおまいさんには理解できない世界かもしれんけど、
Linuxではそのシステムにインストールされてるパッケージは全部パッケージマネージャが管理するのが前提なんだよ。
パッケージマネージャが各パッケージの依存関係も管理するから。
pythonのパッケージもディストリビューションのリポジトリに入ってるのをパッケージマネージャでインスコする。
その範囲であればディストリビューションが動作を確認してることを意味する。
それ以外の手段でインスコしたパッケージは自分で管理しなければならない。
UbuntuなりFedoraなり大体のディストリビューションはウェブからリポジトリのパッケージ検索できるから確認してみそ。
0946デフォルトの名無しさん
2013/04/02(火) 23:43:08.790947デフォルトの名無しさん
2013/04/03(水) 00:00:47.59独自インストールですしお寿司
0948デフォルトの名無しさん
2013/04/03(水) 00:05:37.80(default) $ python distribute_setup.py
がうまくいったとして、
(default) $ echo $PATH
(default) $ ls -l default/bin
(default) $ which easy_install
の入力と出力それぞれ貼ってみて
0949デフォルトの名無しさん
2013/04/03(水) 00:39:10.400950デフォルトの名無しさん
2013/04/03(水) 00:48:12.940951918
2013/04/03(水) 09:36:07.17$ echo $PATH
/home/ubuntu/projects/default/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
$ ls -l default/bin
合計 8
-rw-r--r-- 1 ubuntu ubuntu 2150 3月 29 10:33 activate
-rwxr-xr-x 1 ubuntu ubuntu 121 3月 29 10:33 pydoc
lrwxrwxrwx 1 ubuntu ubuntu 9 3月 29 10:33 python -> python3.3
lrwxrwxrwx 1 ubuntu ubuntu 9 3月 29 10:33 python3 -> python3.3
lrwxrwxrwx 1 ubuntu ubuntu 18 3月 29 10:33 python3.3 -> /usr/bin/python3.3
$ which easy_install
/usr/local/bin/easy_install
0952デフォルトの名無しさん
2013/04/03(水) 10:36:31.78$ source default/bin/activate して仮想環境が有効になった状態で
(default) $ python distribute_setup.py したのなら
easy_install は default/bin に入るんじゃないかと思う
というわけで仮想環境が有効になっていない状態で
$ python distribute_setup.py した可能性はない?
0953デフォルトの名無しさん
2013/04/03(水) 11:40:03.30おっと先に回答があったようですが
Python3.3のvenvを試す
ttp://ymotongpoo.hatenablog.com/entry/2012/09/03/002604
$ pyvenv-3.3 default
このコマンドで default/ というディレクトリを作成し
default/ 以下のPython環境を3.3としている
ただこれ、このディレクトリに入ったら自動でその環境になるわけではなく
そこに作られた default/bin/activate を読み込むことでその環境になる
$ default/bin/activate を実行すると仮想環境(今回は3.3)になり
環境から抜けるには $ deactivate
簡単に理解するには以下のようにインタプリタを呼び出してみるとわかる
$ default/bin/activate
----------------------------------------
(default) $ python
----------------------------------------
Python 3.3.0
>>> exit()
(default) $ deactivate
----------------------------------------
$ python
----------------------------------------
Python 2.7.3
>>> exit()
0954デフォルトの名無しさん
2013/04/03(水) 11:55:21.13bin/activate は直接実行ではなく source しなきゃいけない
というか直接実行できないようになってるはず
0955デフォルトの名無しさん
2013/04/03(水) 12:01:07.74Python 2.7.3
$
0956デフォルトの名無しさん
2013/04/03(水) 12:47:57.72pysetupもまだだし
0957918
2013/04/03(水) 14:10:35.24ubuntuを再インストールして試してみましたが
/local/binにインストールされます。
コマンド
$ sudo apt-get install python3.3 python3.3-dev
$ mkdir projects
$ cd projects
$ pyvenv-3.3 default
$ source default/bin/activate
$ wget http://python-distribute.org/distribute_setup.py
$ python distribute_setup.py
0958デフォルトの名無しさん
2013/04/03(水) 15:27:10.10source したらプロンプトの左側に (default) って出てない? 出てるなら端折らないで
出てる状態で su/sudo つけずに $ python distribute_setup.py して
/local/bin なんて場所に easy_install が入っちゃうのならお手上げ
0959918
2013/04/03(水) 16:27:41.62$ sudo apt-get install python3.3 python3.3-dev
$ mkdir projects
$ cd projects
$ pyvenv-3.3 default
$ source default/bin/activate
(default) $ wget http://python-distribute.org/distribute_setup.py
(default) $ python distribute_setup.py
easy_installは/local/binにインストールされます。
(default) $ ./default/local/bin/easy_install pip
pipも/local/binにインストールされます。
0960デフォルトの名無しさん
2013/04/03(水) 17:04:05.970961デフォルトの名無しさん
2013/04/03(水) 17:37:54.54/local/bin って ./local/bin のことか…
やっつけな回避策でいいなら bin/activate を開いて
PATH="$VIRTUAL_ENV/bin:$PATH"
PATH="$VIRTUAL_ENV/local/bin:$PATH"
とかすればとりあえず local/bin にパスは通る
0963デフォルトの名無しさん
2013/04/04(木) 09:16:28.12説明不足ですみません。
pyvenvの状態では
(default) $
/home/ubuntu/projects/default/local/bin
にインストールされます。
$ pyvenv-3.3 --clear default
にすると環境全部消えるので書き換えたPATHも戻ってしまいますが
対策されるまでしばらくこれで使ってみます。
どうもありがとうございました。
0964デフォルトの名無しさん
2013/04/04(木) 09:40:13.010965デフォルトの名無しさん
2013/04/04(木) 09:52:03.010966デフォルトの名無しさん
2013/04/04(木) 19:54:39.42何日もかかるって…
UNIX系OSの暗黒面が大爆発している例だな。
0967デフォルトの名無しさん
2013/04/04(木) 20:07:26.02バグというか仕様なんだから
ubuntu で distribute_setup.py 使わなければOK
.tar.gz 落として setup.py install
0968829
2013/04/04(木) 20:39:35.04hoge=[]と del hoge[:]で挙動が異なるんだなぁ、奥が深い....。この数日ハマった...。
0969968
2013/04/04(木) 20:41:04.900970デフォルトの名無しさん
2013/04/04(木) 21:15:32.60ぷんすか
0971デフォルトの名無しさん
2013/04/04(木) 21:18:40.02>>953 のサイト見た?
pyvenv でヴァーチャル環境でローカルにインスコ出来て
--clear できれいサッパリ削除出来るってお得じゃないか
0972デフォルトの名無しさん
2013/04/04(木) 21:21:21.67気持ちを代弁してやっただけよ
0973918
2013/04/05(金) 09:52:58.94ソースから入れても./local/binに入ります。
$ pyvenv-3.3 default
$ source default/bin/activate
$ curl -O "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.35.tar.gz"
$ tar xzf distribute-0.6.35.tar.gz
$ cd distribute-0.6.35
$ python setup.py install
0974デフォルトの名無しさん
2013/04/05(金) 13:24:41.23python distribute_setup.py も結局 python setup.py install するのでそうなるだろう
ところで pip で入れたモジュールはちゃんと使えてる?
0975デフォルトの名無しさん
2013/04/07(日) 16:36:37.81ある文字列 ( 0-9 a-f A-F のみが含まれる)
'123456789abcdeff0123456789abcdef' ...
から
[0x1234, 0x5678, 0x9abc, 0xdeff, 0x0123, 0x4567, 0x89ab, 0xcdef] ...
という 2byte 毎の値のリストを得るにはどんな書き方がありますか?
文字列の長さは常に 8 の倍数ですが最大の長さは不明です(どこまでも大きくなる可能性あり)
0976デフォルトの名無しさん
2013/04/07(日) 16:56:25.98それとも1024か32768か2^32か不明なだけで、処理するときには判明しているのか?
0977デフォルトの名無しさん
2013/04/07(日) 17:02:20.74>>> s = '123456789abcdeff0123456789abcdef'
>>> [int(s[i:i+4], 16) for i in range(0, len(s), 4)]
[4660, 22136, 39612, 57087, 291, 17767, 35243, 52719]
>>> [hex(int(s[i:i+4], 16)) for i in range(0, len(s), 4)]
['0x1234', '0x5678', '0x9abc', '0xdeff', '0x123', '0x4567', '0x89ab', '0xcdef']
これでいいのかなあ。なんかやりたいこととは違う気がしなくもない
0978デフォルトの名無しさん
2013/04/07(日) 17:02:46.49質問者が文字列から、と言っている以上、前者ではありえない。
['0x'+s[i:i+4] for i in range(0,len(s),4)]
0979デフォルトの名無しさん
2013/04/07(日) 17:06:10.24[int(i, 16) for i in iter(lambda: f.read(4), '')]
0980デフォルトの名無しさん
2013/04/07(日) 17:07:42.97struct.unpack('>%dh' % (len(s) / 4), binascii.a2b_hex(s))
0981デフォルトの名無しさん
2013/04/07(日) 17:13:59.20stream から読むのをイメージしていました
>>979 さんのが一番良いみたいです
あとお願いついでですが
'123456789abcdeff0123456789abcdef' ...
から
[(0x1234, 0x5678), (0x9abc, 0xdeff), (0x0123, 0x4567), (0x89ab, 0xcdef)] ...
の様にペアにしたタプルで得るにはどう書けば良いですか?
0982デフォルトの名無しさん
2013/04/07(日) 17:20:20.540983デフォルトの名無しさん
2013/04/07(日) 17:22:52.44s = '123456789abcdeff0123456789abcdef'
f = StringIO.StringIO(s)
[struct.unpack('>2h', binascii.a2b_hex(i)) for i in iter(lambda: f.read(8), '')]
[(4660, 22136), (-25924, -8449), (291, 17767), (-30293, -12817)]
0984デフォルトの名無しさん
2013/04/07(日) 17:28:53.08http://toro.2ch.net/test/read.cgi/tech/1365323116/
0985デフォルトの名無しさん
2013/04/07(日) 17:33:54.010986デフォルトの名無しさん
2013/04/07(日) 17:35:41.43# itertools レシピのgrouper
list(itertools.izip_longest(*([g]*2), fillvalue=None))
0987デフォルトの名無しさん
2013/04/07(日) 17:46:08.460988デフォルトの名無しさん
2013/04/07(日) 17:48:13.75python2でできない、あるいは難しいこととかあるのかな
0989デフォルトの名無しさん
2013/04/07(日) 17:50:09.54int(i, 16) のところで16ビット符号付整数にするにはどうすればいい?
0990デフォルトの名無しさん
2013/04/07(日) 17:57:27.420991デフォルトの名無しさん
2013/04/07(日) 18:03:21.42int() になんか便利なオプションあるのかなと思って
0992デフォルトの名無しさん
2013/04/07(日) 18:04:41.99出来ました
ありがとうございます
0993デフォルトの名無しさん
2013/04/07(日) 18:17:04.130994デフォルトの名無しさん
2013/04/07(日) 18:22:36.47約 1,220 件 (0.39 秒)
0995デフォルトの名無しさん
2013/04/07(日) 18:28:46.300996デフォルトの名無しさん
2013/04/07(日) 18:29:38.950997デフォルトの名無しさん
2013/04/07(日) 18:32:45.390998デフォルトの名無しさん
2013/04/07(日) 18:37:02.720999デフォルトの名無しさん
2013/04/07(日) 18:37:46.57無いよ。
1000デフォルトの名無しさん
2013/04/07(日) 18:38:53.8816bit目が1なら全bit反転して+1
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。