このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。
エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで
前スレ
くだすれPython(超初心者用) その33
http://echo.2ch.net/test/read.cgi/tech/1490424742/
くだすれPython(超初心者用) その34 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017/05/28(日) 20:34:15.87ID:7AoJbiyO
2017/05/28(日) 20:35:12.02ID:bw/VOywX
>>1
乙
乙
2017/05/28(日) 20:35:27.98ID:7AoJbiyO
関連スレ
Pythonのお勉強 Part53
http://echo.2ch.net/test/read.cgi/tech/1494683284/
◆関連リンク Python の Home Page
ttp://www.python.org/
◆長いコードはこういうところにはってください
ttp://ideone.com/
ttp://codepad.org/
ttp://pastebin.com/
ttp://dpaste.com/
ttps://try.jupyter.org/
◆まとめwiki
ttp://python.rdy.jp/
ネットにはデマ情報がいっぱい残ってるので正しい情報をメモ
cmd で UTF-8 使える方法 (chcp 65001 について) ttp://nazochu.blogspot.jp/2011/08/blog-post_26.html
mintty ttp://dogmap.jp/2011/11/15/mintty/
mintty ttp://tanakh.jp/posts/2011-11-15-windows-terminal.html
↓
色々紆余曲折あったけど Git インスコして GitBash 使うのが一番楽っぽい
https://git-for-windows.github.io/
Pythonのお勉強 Part53
http://echo.2ch.net/test/read.cgi/tech/1494683284/
◆関連リンク Python の Home Page
ttp://www.python.org/
◆長いコードはこういうところにはってください
ttp://ideone.com/
ttp://codepad.org/
ttp://pastebin.com/
ttp://dpaste.com/
ttps://try.jupyter.org/
◆まとめwiki
ttp://python.rdy.jp/
ネットにはデマ情報がいっぱい残ってるので正しい情報をメモ
cmd で UTF-8 使える方法 (chcp 65001 について) ttp://nazochu.blogspot.jp/2011/08/blog-post_26.html
mintty ttp://dogmap.jp/2011/11/15/mintty/
mintty ttp://tanakh.jp/posts/2011-11-15-windows-terminal.html
↓
色々紆余曲折あったけど Git インスコして GitBash 使うのが一番楽っぽい
https://git-for-windows.github.io/
2017/05/28(日) 20:40:30.00ID:7AoJbiyO
関連スレ
Matplotlib でグラフプログラミング【Python】
http://echo.2ch.net/test/read.cgi/tech/1256385982/
ディープラーニング
http://echo.2ch.net/test/read.cgi/tech/1457792560/(DAT落ち)
人工知能ディープラーニング機械学習のための数学
http://echo.2ch.net/test/read.cgi/tech/1482808144/
【統計分析】機械学習・データマイニング15
http://echo.2ch.net/test/read.cgi/tech/1492344216/
【Python】Python Webフレームワーク総合スレ
http://tamae.2ch.net/test/read.cgi/php/1329996601/
【Python】TurboGearsスレ Part 1【Framework】
http://tamae.2ch.net/test/read.cgi/php/1176022606/
Google App Engine for Python 6アプ目
http://tamae.2ch.net/test/read.cgi/php/1358570953/
Python CGI
http://tamae.2ch.net/test/read.cgi/php/1163513344/
Matplotlib でグラフプログラミング【Python】
http://echo.2ch.net/test/read.cgi/tech/1256385982/
ディープラーニング
http://echo.2ch.net/test/read.cgi/tech/1457792560/(DAT落ち)
人工知能ディープラーニング機械学習のための数学
http://echo.2ch.net/test/read.cgi/tech/1482808144/
【統計分析】機械学習・データマイニング15
http://echo.2ch.net/test/read.cgi/tech/1492344216/
【Python】Python Webフレームワーク総合スレ
http://tamae.2ch.net/test/read.cgi/php/1329996601/
【Python】TurboGearsスレ Part 1【Framework】
http://tamae.2ch.net/test/read.cgi/php/1176022606/
Google App Engine for Python 6アプ目
http://tamae.2ch.net/test/read.cgi/php/1358570953/
Python CGI
http://tamae.2ch.net/test/read.cgi/php/1163513344/
5デフォルトの名無しさん
2017/05/29(月) 13:26:13.77ID:gnWdEBVU 5年以上前の過去ログへのレスですw
http://toro.2ch.net/test/read.cgi/tech/1322115727/
> 113 :デフォルトの名無しさん:2011/12/07(水) 15:17:31.93
> ある本に書いてあったのですが、
> from math import sqrt
> psqrt(pow(4.5-4.2,2)+pow(1-1,2))
> のようにすると、
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> NameError: name 'psqrt' is not defined
> のようなエラーが出ます
> これはどのようにすればいいのでしょうか?
この書籍はオライリーの『集合知プログラミング』(初版)だと思われますが、
同じエラーを経験しましたが、これは見ての通り
文脈からしてpsqrtをsqrtに直せばいいだけだと思いますが、
そもそもpow関数の引数に入れる値が間違っているようです。
この書籍の正誤表がネット上にあります。
https://sites.google.com/site/prgclctintelligence/errata
この正誤表の訂正前の記述もこの初版とは異なりますので要注意。
http://toro.2ch.net/test/read.cgi/tech/1322115727/
> 113 :デフォルトの名無しさん:2011/12/07(水) 15:17:31.93
> ある本に書いてあったのですが、
> from math import sqrt
> psqrt(pow(4.5-4.2,2)+pow(1-1,2))
> のようにすると、
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> NameError: name 'psqrt' is not defined
> のようなエラーが出ます
> これはどのようにすればいいのでしょうか?
この書籍はオライリーの『集合知プログラミング』(初版)だと思われますが、
同じエラーを経験しましたが、これは見ての通り
文脈からしてpsqrtをsqrtに直せばいいだけだと思いますが、
そもそもpow関数の引数に入れる値が間違っているようです。
この書籍の正誤表がネット上にあります。
https://sites.google.com/site/prgclctintelligence/errata
この正誤表の訂正前の記述もこの初版とは異なりますので要注意。
6デフォルトの名無しさん
2017/05/29(月) 22:29:35.86ID:5gJ1PeLc 条件がTrueの時はABC、条件がFalseのときはBCのように
(A)BCの(A)の部分を条件で追加したいのですが
test = [['あいうえお', 'アイウエオ', 'ア'], ['かきくけこ', 'カキクケコ', ''],
['さしすせそ', 'サシスセソ', 'サ'], ['たちつてと', 'タチツテト', '']]
result = []
for i in test:
x = ''
if i[2]:
x += '【{0[2]}】\n'.format(i)
result.append(x + '{0[0]}\n{0[1]}'.format(i))
print('\n\n'.join(result))
これを内包表記で作成したいのですが
result = ['【{0[2]}】\n{0[0]}\n{0[1]}'.format(i) if i[2] else '{0[0]}\n{0[1]}'.format(i) for i in test]
条件でformatを切り替える以外に方法ありますでしょうか?
(A)BCの(A)の部分を条件で追加したいのですが
test = [['あいうえお', 'アイウエオ', 'ア'], ['かきくけこ', 'カキクケコ', ''],
['さしすせそ', 'サシスセソ', 'サ'], ['たちつてと', 'タチツテト', '']]
result = []
for i in test:
x = ''
if i[2]:
x += '【{0[2]}】\n'.format(i)
result.append(x + '{0[0]}\n{0[1]}'.format(i))
print('\n\n'.join(result))
これを内包表記で作成したいのですが
result = ['【{0[2]}】\n{0[0]}\n{0[1]}'.format(i) if i[2] else '{0[0]}\n{0[1]}'.format(i) for i in test]
条件でformatを切り替える以外に方法ありますでしょうか?
7デフォルトの名無しさん
2017/05/30(火) 10:49:29.89ID:gxWnkgCC おまえ向いてない
8デフォルトの名無しさん
2017/05/30(火) 10:59:08.01ID:ItunGfv1 >>6
result = ['\n'.join(( '【' + i[2] + '】', i[0], i[1])) if i[2] else '\n'.join((i[0], i[1])) for i in test]
print('\n\n'.join(result))
result = ['\n'.join(( '【' + i[2] + '】', i[0], i[1])) if i[2] else '\n'.join((i[0], i[1])) for i in test]
print('\n\n'.join(result))
2017/05/30(火) 11:14:07.76ID:C9qHY4kc
2017/05/30(火) 11:14:43.87ID:C9qHY4kc
アンカ違ってた。>>6ね。
11デフォルトの名無しさん
2017/05/30(火) 11:46:52.81ID:ItunGfv1 >>6
def trans(s):
if s[2]: return '【' + s[2] + '】', s[0], s[1]
return s[0], s[1]
result = ['\n'.join(trans(i)) for i in test]
print(*result, sep='\n\n')
def trans(s):
if s[2]: return '【' + s[2] + '】', s[0], s[1]
return s[0], s[1]
result = ['\n'.join(trans(i)) for i in test]
print(*result, sep='\n\n')
2017/05/30(火) 14:23:14.01ID:6yum6/wf
>>8,11
ありがとうございます。
参考にさせていただきます。
>>9
条件で文字を表示あり・なしみたいなのができたらいいなと思って
最初に内包表記で作ったのが
result = ['【{0[2]}】\n'.format(i) if i[2] else '' + '{0[0]}\n{0[1]}'.format(i) for i in test]
うまくいかなくて
いま試しにかっこつけてみたら思った通りになったんだけどかっこって大丈夫なのか?
result = [('【{0[2]}】\n'.format(i) if i[2] else '') + '{0[0]}\n{0[1]}'.format(i) for i in test]
ありがとうございます。
参考にさせていただきます。
>>9
条件で文字を表示あり・なしみたいなのができたらいいなと思って
最初に内包表記で作ったのが
result = ['【{0[2]}】\n'.format(i) if i[2] else '' + '{0[0]}\n{0[1]}'.format(i) for i in test]
うまくいかなくて
いま試しにかっこつけてみたら思った通りになったんだけどかっこって大丈夫なのか?
result = [('【{0[2]}】\n'.format(i) if i[2] else '') + '{0[0]}\n{0[1]}'.format(i) for i in test]
2017/05/30(火) 14:30:48.01ID:6yum6/wf
リストにしなくてもこれでいけそう
flag = True
test = 'あいうえお' + ('かきくけこ' if flag else '') + 'さしすせそ'
print(test)
どうもありがとうございました。
flag = True
test = 'あいうえお' + ('かきくけこ' if flag else '') + 'さしすせそ'
print(test)
どうもありがとうございました。
2017/05/30(火) 15:33:34.98ID:C9qHY4kc
そこにこそformat()だろ。
test ='あいうえお{}さしすせそ' .format('かきくけこ' if flag else '')
test ='あいうえお{}さしすせそ' .format('かきくけこ' if flag else '')
2017/05/30(火) 17:10:33.37ID:6yum6/wf
2017/05/30(火) 17:27:38.44ID:8uTEYK+9
きれいだ
17age
2017/05/30(火) 18:54:13.25ID:cPI0fzDZ18age
2017/05/30(火) 20:36:57.55ID:cPI0fzDZ どなたか、解決法を知りませんか?
2017/05/30(火) 20:38:35.97ID:kWERrntF
多分無理
20age
2017/05/30(火) 21:14:57.92ID:cPI0fzDZ そこを何とかお願いします
最初の1秒の間にエンター押したら起動後に消えてくれます
最初の1秒の間にエンター押したら起動後に消えてくれます
2017/05/30(火) 21:21:20.61ID:Oby1Oa62
端末のプロセスをキルしたらいけるか?
2017/05/30(火) 21:30:38.96ID:sm3ZD28q
>17
tesut
じゃなくて、
test
って書いてほしい。
import os
import signal
input("hit Enter to close the console")
is.kill(os.getppid(), signal.SIG_DFL)
これでターミナル閉じたよ。wundows
tesut
じゃなくて、
test
って書いてほしい。
import os
import signal
input("hit Enter to close the console")
is.kill(os.getppid(), signal.SIG_DFL)
これでターミナル閉じたよ。wundows
2017/05/30(火) 21:32:13.67ID:sm3ZD28q
>22
is.kill
じゃなくて、
os.kill
誤字すいません。
is.kill
じゃなくて、
os.kill
誤字すいません。
2017/05/30(火) 21:48:21.02ID:Oby1Oa62
wundows
2017/05/30(火) 21:55:40.69ID:sm3ZD28q
重ね重ね、誤字ばかりで、申し訳ない
26デフォルトの名無しさん
2017/05/30(火) 22:43:31.29ID:f/2fyGyA d を辞書としたとき、
for k in d.keys():
と
for k in d:
は等価ですか?
等価だとして、どちらが早いですか?
for k in d.keys():
と
for k in d:
は等価ですか?
等価だとして、どちらが早いですか?
2017/05/30(火) 22:47:46.61ID:Eop9uX5M
そこの速度差は誤差でしょ
2017/05/30(火) 22:53:39.93ID:kWERrntF
>>26
dからkeysを探して呼び出す手間が入るから等価ではない、速度差は上にも書いてある通り誤差だろうが
dからkeysを探して呼び出す手間が入るから等価ではない、速度差は上にも書いてある通り誤差だろうが
2017/05/30(火) 23:03:14.12ID:WkZkNXY5
>26
disっていう標準モジュールで、バイトコードを逆アセンブルした結果を見れるよ。
既に指摘のある通り、
d.keys()だと
LOAD_ATTR
CALL_FUNCTION
が余計に入る。
実行時間は、誤差の範囲と思う。
disっていう標準モジュールで、バイトコードを逆アセンブルした結果を見れるよ。
既に指摘のある通り、
d.keys()だと
LOAD_ATTR
CALL_FUNCTION
が余計に入る。
実行時間は、誤差の範囲と思う。
2017/05/30(火) 23:06:38.21ID:f/2fyGyA
2017/05/30(火) 23:28:27.47ID:f/2fyGyA
D1, D2 は集合。
D = (D1, D2) は M のインスタンス変数。
d は辞書で、 M のインスタンス変数。
for r in M.D[0]:
■■for c in M.D[1]:
■■■■if (r, c) in M.d:
というようなコードを↓のようなコードに置き換えると、
for ループのループ回数が多いとき、少しは速くなる
でしょうか?
ケースバイケースだとは思いますが、↓のような方法で
少しは速くしようなどと考える人はあまりいないでしょうか?
D1 = M.D[0]
D2 = M.D[1]
M_d = M.d
for r in D1:
■■for c in D2:
■■■■if (r, c) in M_d:
D = (D1, D2) は M のインスタンス変数。
d は辞書で、 M のインスタンス変数。
for r in M.D[0]:
■■for c in M.D[1]:
■■■■if (r, c) in M.d:
というようなコードを↓のようなコードに置き換えると、
for ループのループ回数が多いとき、少しは速くなる
でしょうか?
ケースバイケースだとは思いますが、↓のような方法で
少しは速くしようなどと考える人はあまりいないでしょうか?
D1 = M.D[0]
D2 = M.D[1]
M_d = M.d
for r in D1:
■■for c in D2:
■■■■if (r, c) in M_d:
2017/05/30(火) 23:30:27.91ID:kWERrntF
>>31
俺ならitertools使う
俺ならitertools使う
2017/05/30(火) 23:34:04.54ID:/DgUh2Dj
>>31
やってみりゃいいじゃん
やってみりゃいいじゃん
2017/05/30(火) 23:36:14.34ID:f/2fyGyA
2017/05/30(火) 23:48:47.28ID:ah0rBcm0
冗談きついぜ
2017/05/30(火) 23:50:27.27ID:wCTc2Yir
大差ないと予想
2017/05/31(水) 00:06:13.82ID:gBIsA548
>>31
for name in expr:のexprは最初の一度だけ評価されてイテレーターになるので
ローカル変数にexprの結果を割り当てても、その手間分コストが増えるだけじゃないかな
http://docs.python.jp/3/reference/compound_stmts.html#the-for-statement
for name in expr:のexprは最初の一度だけ評価されてイテレーターになるので
ローカル変数にexprの結果を割り当てても、その手間分コストが増えるだけじゃないかな
http://docs.python.jp/3/reference/compound_stmts.html#the-for-statement
2017/05/31(水) 00:08:40.56ID:yq0731FK
当たった
2017/05/31(水) 00:19:23.90ID:eDo7CzNQ
2017/05/31(水) 00:21:53.01ID:eDo7CzNQ
あ、でもやっぱり B は毎回評価されるような気がします。
例えば、↓のようなコードを考えると B は毎回評価されないとダメな気がします。
for i in A:
→ここで B を変更する
■■for j in B:
例えば、↓のようなコードを考えると B は毎回評価されないとダメな気がします。
for i in A:
→ここで B を変更する
■■for j in B:
2017/05/31(水) 00:42:01.43ID:yq0731FK
超初心者はパフォーマンスなんか気にするなよ
2017/05/31(水) 01:50:21.04ID:jDvWEkkq
何十万回もループを回すような場合だと、ローカル変数への割当は、数十ミリから数百ミリ秒の高速化になった記憶がある。
あと、ネストしたリストへのアクセスは遅いので、
a[m][n]に二重ループでアクセスする時は、
am=a[m]
と1つめのループの中でしておいてから、
二つ目のループの中では、
am[n]としてアクセスした方が、速くなる。
これは、ループが1000回くらいでも、ミリ秒単位でちゃんと差が出る。
もちろん、index使ってのアクセスよりも、
for elem in lst:
としてイテレータ使う方が速い。
profiler使うと、関数単位でどこに時間が、かかっているか分かるので、オススメ。
SpyderとかのIDEに組み込んであるのが使いやすいと思う。
高速化に興味があるなら、ハイパフォーマンスPythonっていう本がオライリーから出てるから、参考にしてみては?
あと、ネストしたリストへのアクセスは遅いので、
a[m][n]に二重ループでアクセスする時は、
am=a[m]
と1つめのループの中でしておいてから、
二つ目のループの中では、
am[n]としてアクセスした方が、速くなる。
これは、ループが1000回くらいでも、ミリ秒単位でちゃんと差が出る。
もちろん、index使ってのアクセスよりも、
for elem in lst:
としてイテレータ使う方が速い。
profiler使うと、関数単位でどこに時間が、かかっているか分かるので、オススメ。
SpyderとかのIDEに組み込んであるのが使いやすいと思う。
高速化に興味があるなら、ハイパフォーマンスPythonっていう本がオライリーから出てるから、参考にしてみては?
43デフォルトの名無しさん
2017/05/31(水) 08:01:32.80ID:k6UVBo1S パフォーマンスよりpythonらしい書き方かどうかを気にすべき
44age
2017/05/31(水) 11:32:43.74ID:u7MalF/72017/05/31(水) 11:36:28.46ID:AV1cHHAT
>>17-23
プロセスには親子関係がある。
端末からPythonを起動すれば、親は端末で、子はPython
親を終了すれば、子も強制終了されるから、正常な終了ができない。
メモリ上にあるデータが、保存されないかも
普通サーバーなどは、デーモン化して、親プロセスをなくす。
そうすれば、親が終了しても、無関係だから安全
プロセスには親子関係がある。
端末からPythonを起動すれば、親は端末で、子はPython
親を終了すれば、子も強制終了されるから、正常な終了ができない。
メモリ上にあるデータが、保存されないかも
普通サーバーなどは、デーモン化して、親プロセスをなくす。
そうすれば、親が終了しても、無関係だから安全
46デフォルトの名無しさん
2017/05/31(水) 13:02:32.85ID:8pr90v8J for a in [1,2,3,4,5]:
[tab]print(a) ←インデントする
print("こんにちわ") ←インデントしない
「python入門教室」のサンプルでこんなコードがあって、
インデントしない部分は繰り返されませんよみたいなことを教えたいようなのだ
普通にこんにちわを続けてインデントしなかったせいで
SyntaxError: invalid syntax って出て実行できないんだが。
これって本がおかしいですよね?
ちなみにコマンドプロンプトでやってます
[tab]print(a) ←インデントする
print("こんにちわ") ←インデントしない
「python入門教室」のサンプルでこんなコードがあって、
インデントしない部分は繰り返されませんよみたいなことを教えたいようなのだ
普通にこんにちわを続けてインデントしなかったせいで
SyntaxError: invalid syntax って出て実行できないんだが。
これって本がおかしいですよね?
ちなみにコマンドプロンプトでやってます
2017/05/31(水) 13:48:49.94ID:gBIsA548
>>46
たぶん対話シェルへの入力としては間違っているという話ではないかと
インデント潰れるけど対話シェルのプロンプトを再現するとこういうことだよね?
>>> for a in [1,2,3,4,5]:
... print(a)
... print("こんにちわ") # ...(二次プロンプト)の部分にインデントを下げて入力した
File "<stdin>", line 3
print("こんにちわ")
^
SyntaxError: invalid syntax
>>>
print("こんにちは")はfor文とは独立した文だから>>>の行に入力しないとエラー
対話シェルの仕様による制限なので(pythonの構文としては間違ってない)本の説明不足かなあ
これwebのドキュメントにも詳しくは載ってないな、分かりにくいね
https://docs.python.jp/3/tutorial/interpreter.html
たぶん対話シェルへの入力としては間違っているという話ではないかと
インデント潰れるけど対話シェルのプロンプトを再現するとこういうことだよね?
>>> for a in [1,2,3,4,5]:
... print(a)
... print("こんにちわ") # ...(二次プロンプト)の部分にインデントを下げて入力した
File "<stdin>", line 3
print("こんにちわ")
^
SyntaxError: invalid syntax
>>>
print("こんにちは")はfor文とは独立した文だから>>>の行に入力しないとエラー
対話シェルの仕様による制限なので(pythonの構文としては間違ってない)本の説明不足かなあ
これwebのドキュメントにも詳しくは載ってないな、分かりにくいね
https://docs.python.jp/3/tutorial/interpreter.html
48デフォルトの名無しさん
2017/05/31(水) 14:01:00.73ID:8pr90v8J >>47
ありがとうございます。
本だと、こんにちわをfor文に組み込んだら
1
2
3
4
5
こんにちわ
みたいな結果が出ると書かれてました。
わかりづらいので該当部分載せます
http://i.imgur.com/V46Hrjy.jpg
http://i.imgur.com/xzyC4jE.jpg
ありがとうございます。
本だと、こんにちわをfor文に組み込んだら
1
2
3
4
5
こんにちわ
みたいな結果が出ると書かれてました。
わかりづらいので該当部分載せます
http://i.imgur.com/V46Hrjy.jpg
http://i.imgur.com/xzyC4jE.jpg
49デフォルトの名無しさん
2017/05/31(水) 14:08:38.39ID:8pr90v8J もしかして、メモ帳から作成したファイルなら実行できるとかですか?
2017/05/31(水) 14:20:04.68ID:gBIsA548
>>49
(メモ帳がpythonに適しているかは疑問だけど)できます
ページの上のほうにexample-04-03-01.pyとファイル名が書かれてるので
スクリプトファイルの編集&実行を前提にした(not対話シェル)項目っぽい
(メモ帳がpythonに適しているかは疑問だけど)できます
ページの上のほうにexample-04-03-01.pyとファイル名が書かれてるので
スクリプトファイルの編集&実行を前提にした(not対話シェル)項目っぽい
51デフォルトの名無しさん
2017/05/31(水) 14:20:38.02ID:nBc8lPEG http://docs.python.jp/3.5/tutorial/introduction.html#first-steps-towards-programming
>複合文を対話的に入力するときには、(パーザはいつ最後の行を入力したのか推し量ることができないので) 入力の完了を示すために最後に空行を続けなければなりません。
>>49
はい
>複合文を対話的に入力するときには、(パーザはいつ最後の行を入力したのか推し量ることができないので) 入力の完了を示すために最後に空行を続けなければなりません。
>>49
はい
2017/05/31(水) 14:21:40.07ID:AV1cHHAT
メモ帳は、プログラミングに使えない
メモ帳で保存したテキストには、
BOM(Byte Order Mark)という余計なデータが付くから、正常に実行できない
TeraPad など、他のエディタを使うべき
メモ帳で保存したテキストには、
BOM(Byte Order Mark)という余計なデータが付くから、正常に実行できない
TeraPad など、他のエディタを使うべき
2017/05/31(水) 14:25:41.25ID:2JRCyRNh
54デフォルトの名無しさん
2017/05/31(水) 14:27:57.89ID:8pr90v8J >>51
この本、最初のほう飛ばし読みして分かったのですが、すべてIDLEで学習していく本みたいです・・・。
しかし、IDLEでも結果はエラーになりました・・・。
>>> # coding:utf-8
>>> for a in [1,2,3,4,5]:
print(a)
print("こんにちは")
SyntaxError: invalid syntax
この本、最初のほう飛ばし読みして分かったのですが、すべてIDLEで学習していく本みたいです・・・。
しかし、IDLEでも結果はエラーになりました・・・。
>>> # coding:utf-8
>>> for a in [1,2,3,4,5]:
print(a)
print("こんにちは")
SyntaxError: invalid syntax
2017/05/31(水) 14:35:41.32ID:2JRCyRNh
2017/05/31(水) 14:38:09.83ID:5PA7tv0u
>>54
IDLEのshellじゃなくてFile→New Fileでエディタ起動してコード書き込んで保存してF5押せばいい
IDLEのshellじゃなくてFile→New Fileでエディタ起動してコード書き込んで保存してF5押せばいい
57デフォルトの名無しさん
2017/05/31(水) 14:45:30.56ID:8pr90v8J >>55
エンター押しても空行になりませんでした...
エンター押しても空行になりませんでした...
58デフォルトの名無しさん
2017/05/31(水) 14:46:44.92ID:8pr90v8J そもそもコマンドプロンプトで出来ないコーディングとシェルでしか出来ないコーディングがある時点でパンクしそう..
59デフォルトの名無しさん
2017/05/31(水) 14:50:17.67ID:8pr90v8J60デフォルトの名無しさん
2017/05/31(水) 14:58:15.81ID:8pr90v8J あ、new fileでやったら動きました
ありがとうございました...
失礼しました
ありがとうございました...
失礼しました
2017/05/31(水) 15:03:15.04ID:tJJiEo5p
62デフォルトの名無しさん
2017/05/31(水) 15:05:12.06ID:u7MalF/72017/05/31(水) 15:05:56.71ID:2JRCyRNh
>>57
エンターを押した時点でforループが実行(完了)される。
>>> for a in [1,2,3,4,5]:
... print(a)
...
1
2
3
4
5
>>> print("こんにちは")
こんにちは
プログラミングやるならエディタで作成したファイルの文字コードは認識しとかなきゃダメ。
とりあえずUTF-8選んどけ。
エンターを押した時点でforループが実行(完了)される。
>>> for a in [1,2,3,4,5]:
... print(a)
...
1
2
3
4
5
>>> print("こんにちは")
こんにちは
プログラミングやるならエディタで作成したファイルの文字コードは認識しとかなきゃダメ。
とりあえずUTF-8選んどけ。
64デフォルトの名無しさん
2017/05/31(水) 15:11:52.54ID:u7MalF/7 ってか、>> ID 8pr90v8J は
Android 5.0(Lollipop)を搭載したNexus 5
使ってるのか……。
Android 5.0(Lollipop)を搭載したNexus 5
使ってるのか……。
65デフォルトの名無しさん
2017/05/31(水) 15:13:03.12ID:8pr90v8J66デフォルトの名無しさん
2017/05/31(水) 15:23:34.95ID:u7MalF/7 バージョンアップしてたらAndroid™ 6.0か……
どちらにしろ誤爆なので、見なかった事にして下さい
どちらにしろ誤爆なので、見なかった事にして下さい
2017/05/31(水) 15:32:57.00ID:tJJiEo5p
>>53
横だけどAtomをいれてみた。便利そう
横だけどAtomをいれてみた。便利そう
68デフォルトの名無しさん
2017/05/31(水) 15:37:59.34ID:u7MalF/7 お前、流石にその(画像は)引くわぁ〜
音楽もアニソンばかりだし、せめて水樹の曲入れるなら、田村の曲ももっと入れとけよ
花澤の再生回数だけ異様に多いな
音楽もアニソンばかりだし、せめて水樹の曲入れるなら、田村の曲ももっと入れとけよ
花澤の再生回数だけ異様に多いな
2017/05/31(水) 15:56:09.33ID:RyxKgJ03
第二の照井君とはならなかった
70デフォルトの名無しさん
2017/05/31(水) 16:00:47.64ID:nBc8lPEG もうどこの誤爆か書いてけや
71デフォルトの名無しさん
2017/05/31(水) 16:36:23.41ID:FdBBH6qG オライリーのpython入門 不親切すぎる・・・
72デフォルトの名無しさん
2017/05/31(水) 17:28:49.67ID:u7MalF/7 誤爆
携帯の解像度から機種を特定→別スレから大学生と推測→携帯の販売時期を検索
→大学3〜4年と推測→ちょうど、nexus7 2012の修理方法を調べてた
→正規復元方法を試す→不可→バッテリー交換しても電源が入らない→充電口の破損を確認→スイッチの異常か
基盤の異常かどちらか迷ってる→強い衝撃を与えたと聴いてる→どこスレで聞くか迷ってる間にアニソンすれに書き込み
かと、思ったが、まさかのアニソンスレと誤爆
携帯の解像度から機種を特定→別スレから大学生と推測→携帯の販売時期を検索
→大学3〜4年と推測→ちょうど、nexus7 2012の修理方法を調べてた
→正規復元方法を試す→不可→バッテリー交換しても電源が入らない→充電口の破損を確認→スイッチの異常か
基盤の異常かどちらか迷ってる→強い衝撃を与えたと聴いてる→どこスレで聞くか迷ってる間にアニソンすれに書き込み
かと、思ったが、まさかのアニソンスレと誤爆
73デフォルトの名無しさん
2017/05/31(水) 17:30:09.80ID:u7MalF/7 最後の文はpythonスレです
2017/05/31(水) 17:30:13.76ID:ZnJVdbCY
>>71
python3入門にしなさい
python3入門にしなさい
2017/05/31(水) 18:54:55.13ID:5+rNqd0l
プロジェクトごとにパッケージ分離したくてvenv使うとこまでは分かったんだけど
どういう名前でどこに置くのが一般的?
みんなプロジェクトのルートに「env」とかでおいてるんですかね
どういう名前でどこに置くのが一般的?
みんなプロジェクトのルートに「env」とかでおいてるんですかね
76デフォルトの名無しさん
2017/05/31(水) 19:45:41.57ID:Qo+ozR8I l がリストのとき、
if e in l:
を多用すると極端に遅くなるんですけど、もしかして、線形探索して探していますか?
s = set(l)
if e in s:
としたほうが速いですか?
もしそうだとすると、自動的に
if e in l:
と書いたとき、 l を集合に変換して検索してくれればいいのにと思うのですが。
if e in l:
を多用すると極端に遅くなるんですけど、もしかして、線形探索して探していますか?
s = set(l)
if e in s:
としたほうが速いですか?
もしそうだとすると、自動的に
if e in l:
と書いたとき、 l を集合に変換して検索してくれればいいのにと思うのですが。
77デフォルトの名無しさん
2017/05/31(水) 20:27:26.92ID:k6UVBo1S78デフォルトの名無しさん
2017/05/31(水) 20:32:07.45ID:u7MalF/7 setは順序を保持しないから、テストケースで失敗する事も有る
最後に結果をソートしても良いなら、気にしなくて良いんだけど……。
最後に結果をソートしても良いなら、気にしなくて良いんだけど……。
79デフォルトの名無しさん
2017/05/31(水) 20:36:26.64ID:ac0fXejp2017/05/31(水) 20:40:50.03ID:cGjmnPnY
うせろガイジ
2017/05/31(水) 20:48:34.28ID:jdtThzgG
こわ〜い
2017/05/31(水) 20:50:41.20ID:gBIsA548
83デフォルトの名無しさん
2017/05/31(水) 20:59:15.81ID:ac0fXejp >>82
OrderedDictをどうやって使うつもりや?言うてみい?
OrderedDictをどうやって使うつもりや?言うてみい?
2017/05/31(水) 21:31:07.53ID:Qo+ozR8I
2017/05/31(水) 21:32:19.57ID:Qo+ozR8I
2017/05/31(水) 22:13:59.97ID:Qo+ozR8I
Philip N. Kleinの『行列プログラマー』を読んでいて、はまっています。
M は行列を表わすクラスのインスタンスです。
M.D == (M.D[0], M.D[1])
M.D[0] は行列 M の行のインデックスです。
M.D[1] は行列 M の列のインデックスです。
M[i, j] で行 i、列 j の要素にアクセスできます。
M は行列を表わすクラスのインスタンスです。
M.D == (M.D[0], M.D[1])
M.D[0] は行列 M の行のインデックスです。
M.D[1] は行列 M の列のインデックスです。
M[i, j] で行 i、列 j の要素にアクセスできます。
2017/05/31(水) 22:17:31.36ID:Qo+ozR8I
M.D[0] == M.D[1] で、行列 M は対称行列です。
↓の二つのプログラムは、同じ動作をすると思ったのですが、
(1)は正しく動作せず、(2)は正しく動作します。
なぜだかさっぱり分かりません。なぜ(1)と(2)で異なる動作をするのでしょうか?
(1)
S = set()
for i in M.D[0]:
■■for j in M.D[1]:
■■■■if i == j:
■■■■■■continue
■■■■elif i > j:
■■■■■■t = i
■■■■■■i = j
■■■■■■j = t
■■■■S.add(((i, j), M[i, j]))
L = list(S)
L = sorted(L, key=lambda e: e[1])
(2)
S = set()
for i in M.D[0]:
■■for j in M.D[1]:
■■■■if i == j:
■■■■■■continue
■■■■elif i > j:
■■■■■■S.add(((j, i), M[i, j]))
■■■■else:
■■■■■■S.add(((i, j), M[i, j]))
L = list(S)
L = sorted(L, key=lambda e: e[1])
↓の二つのプログラムは、同じ動作をすると思ったのですが、
(1)は正しく動作せず、(2)は正しく動作します。
なぜだかさっぱり分かりません。なぜ(1)と(2)で異なる動作をするのでしょうか?
(1)
S = set()
for i in M.D[0]:
■■for j in M.D[1]:
■■■■if i == j:
■■■■■■continue
■■■■elif i > j:
■■■■■■t = i
■■■■■■i = j
■■■■■■j = t
■■■■S.add(((i, j), M[i, j]))
L = list(S)
L = sorted(L, key=lambda e: e[1])
(2)
S = set()
for i in M.D[0]:
■■for j in M.D[1]:
■■■■if i == j:
■■■■■■continue
■■■■elif i > j:
■■■■■■S.add(((j, i), M[i, j]))
■■■■else:
■■■■■■S.add(((i, j), M[i, j]))
L = list(S)
L = sorted(L, key=lambda e: e[1])
88デフォルトの名無しさん
2017/05/31(水) 22:25:48.52ID:6C3HqcgA 六本木 ネットベンチャー系 2017年春の陣
http://file.takanoridayo.blog.shinobi.jp/dayo170301roppongi.png
http://file.takanoridayo.blog.shinobi.jp/dayo170301roppongi.png
89デフォルトの名無しさん
2017/05/31(水) 22:38:26.58ID:u7MalF/7 最後のelse文で i > j で無い。から
2017/05/31(水) 22:39:42.54ID:Qo+ozR8I
ループ変数の値をループ内で変更するとまずいとかそういうことはありますか?
2017/05/31(水) 22:48:01.11ID:Qo+ozR8I
もっと問題をシンプルにしてみましたが、やはり理解できない現象が
発生します。
なぜか(1)と(2)で結果が違います。これは同じになりそうですが。。。
(1)
S1 = {1, 2, 3}
S2 = {1, 2, 3}
for i in S1:
■■for j in S2:
■■■■t = i
■■■■i = j
■■■■j = t
■■■■print((j, i))
(2)
S1 = {1, 2, 3}
S2 = {1, 2, 3}
for i in S1:
■■for j in S2:
■■■■print((i, j))
発生します。
なぜか(1)と(2)で結果が違います。これは同じになりそうですが。。。
(1)
S1 = {1, 2, 3}
S2 = {1, 2, 3}
for i in S1:
■■for j in S2:
■■■■t = i
■■■■i = j
■■■■j = t
■■■■print((j, i))
(2)
S1 = {1, 2, 3}
S2 = {1, 2, 3}
for i in S1:
■■for j in S2:
■■■■print((i, j))
2017/05/31(水) 22:49:02.56ID:Qo+ozR8I
(1)の結果:
(1, 1)
(1, 2)
(2, 3)
(2, 1)
(1, 2)
(2, 3)
(3, 1)
(1, 2)
(2, 3)
(2)の結果:
(1, 1)
(1, 2)
(1, 3)
(2, 1)
(2, 2)
(2, 3)
(3, 1)
(3, 2)
(3, 3)
(1, 1)
(1, 2)
(2, 3)
(2, 1)
(1, 2)
(2, 3)
(3, 1)
(1, 2)
(2, 3)
(2)の結果:
(1, 1)
(1, 2)
(1, 3)
(2, 1)
(2, 2)
(2, 3)
(3, 1)
(3, 2)
(3, 3)
2017/05/31(水) 23:34:30.01ID:jDvWEkkq
iを内側のループで書き換えているのだから、当然そうなる。
2017/05/31(水) 23:40:28.18ID:Qo+ozR8I
2017/05/31(水) 23:45:14.36ID:zosiqGOP
>>86
尼のレビューがひどいけど、線型代数はプログラムと別に学んだほうがいいぞ
尼のレビューがひどいけど、線型代数はプログラムと別に学んだほうがいいぞ
96デフォルトの名無しさん
2017/06/01(木) 00:30:17.24ID:25B895iy pyautoguiを使った作業の自動化について教えてください。
以下の作業の自動化を試みています。
1.あるアプリケーションでファイルを読み込み、処理を行う
→2.(処理を終えるまで待つ)
→3.次のファイルで同じことをする(以下繰り返し)
2.の段階では現状、ファイルのサイズに合わせてsleep関数で調整していますが、
それだと、ちょっとした処理の遅れでタイミングが狂ってしまい、
以降の動作がうまくいかなくなる問題があります。
処理が終わって「クリックやキーボードなど、操作できるようになったよ」という
状態を認識する方法ってありますか。
以下の作業の自動化を試みています。
1.あるアプリケーションでファイルを読み込み、処理を行う
→2.(処理を終えるまで待つ)
→3.次のファイルで同じことをする(以下繰り返し)
2.の段階では現状、ファイルのサイズに合わせてsleep関数で調整していますが、
それだと、ちょっとした処理の遅れでタイミングが狂ってしまい、
以降の動作がうまくいかなくなる問題があります。
処理が終わって「クリックやキーボードなど、操作できるようになったよ」という
状態を認識する方法ってありますか。
2017/06/01(木) 00:52:35.61ID:5sVH+pSJ
対象プログラムの実装によるから汎用的な方法はないですな
98デフォルトの名無しさん
2017/06/01(木) 00:57:54.21ID:L3uS1u+Y 解決法としては、どんな(余分な)処理をしても、あり余るsleep時間を設けてループさせる
処理終了後に画像やメッセージを呼び出して、認識させてから次に移る(フラグの受け渡しとか?)
どんな処理か具体的に上げてくれないと解らない
処理終了後に画像やメッセージを呼び出して、認識させてから次に移る(フラグの受け渡しとか?)
どんな処理か具体的に上げてくれないと解らない
99デフォルトの名無しさん
2017/06/01(木) 01:49:46.26ID:25B895iy >>98
処理の内容は、ほとんど上記に書いた程度です。
音源から指定周波数の音を抽出するアプリがあり、
アプリ上のあるボタンをクリックすることで変換作業が行われます。
そこで新たに変換後ファイルが生成され、同時に10秒ほど処理待ちでフリーズ?して、
操作可能になったら次のファイルへ移ります。
>処理終了後に画像やメッセージを呼び出して、認識させてから次に移る(フラグの受け渡しとか?)
こういう方法ができればいいとは思ってます。
sleepで稼ぐのは必要以上に時間もかかるし、確実ではないので・・・。
「フラグの受け渡し」というのは、例えばどんな処理なのでしょうか。
サンプルコードとかってありませんか。
処理の内容は、ほとんど上記に書いた程度です。
音源から指定周波数の音を抽出するアプリがあり、
アプリ上のあるボタンをクリックすることで変換作業が行われます。
そこで新たに変換後ファイルが生成され、同時に10秒ほど処理待ちでフリーズ?して、
操作可能になったら次のファイルへ移ります。
>処理終了後に画像やメッセージを呼び出して、認識させてから次に移る(フラグの受け渡しとか?)
こういう方法ができればいいとは思ってます。
sleepで稼ぐのは必要以上に時間もかかるし、確実ではないので・・・。
「フラグの受け渡し」というのは、例えばどんな処理なのでしょうか。
サンプルコードとかってありませんか。
100デフォルトの名無しさん
2017/06/01(木) 06:11:10.07ID:iY3v6x4R わっちょい注意報
101デフォルトの名無しさん
2017/06/01(木) 08:13:11.73ID:Djsxgnsg >>96
使ったことないけど、スクリーンショットを撮って、その画像を解析するんじゃないかな?
https://pyautogui.readthedocs.io/en/latest/screenshot.html
locate でスクリーンショット内から特定の画像の位置を探せるから、例えば有効状態になったボタンを周期監視で探せば、読み込み完了が分かるでしょ?
使ったことないけど、スクリーンショットを撮って、その画像を解析するんじゃないかな?
https://pyautogui.readthedocs.io/en/latest/screenshot.html
locate でスクリーンショット内から特定の画像の位置を探せるから、例えば有効状態になったボタンを周期監視で探せば、読み込み完了が分かるでしょ?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 [蚤の市★]
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 [蚤の市★]
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- クリスマスの「予定なし」54% [少考さん★]
- 日銀0.75%に利上げへ、30年ぶりの水準に 19日金融政策決定会合 [蚤の市★]
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 ★2 [蚤の市★]
- 【実況】博衣こよりのえちえち機動戦士ガンダム逆襲のシャア🧪★2
- 【実況】博衣こよりのえちえち機動戦士ガンダム逆襲のシャア🧪★3
- 【ウヨしぐさ】高市「君が代の意味統一されていない」_日本政府見解は「天皇を象徴とするわが国の繁栄祈念」 [979264442]
- 茶ぁしばこうや···
- 【画像】大好きな彼氏のために自分から乳首開発するシチュ←一番抜けるよな?
- 愛国者「釘を使わない日本独自の伝統工法スゴイ!」X民「それ中国起源ですよ」→批判殺到 [834922174]
