このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は 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
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 でスクリーンショット内から特定の画像の位置を探せるから、例えば有効状態になったボタンを周期監視で探せば、読み込み完了が分かるでしょ?
102デフォルトの名無しさん
2017/06/01(木) 11:00:22.95ID:cPJLt0GR >>99
変換後のファイルが解っているならそれを待てば良いのでは?
その後のスリープが十分な時間をおいてもそこそこには短いのではないかな?
本当はアプリ側から終了に関する何かができるのが良いけど
フラグファイルを削除、shellでアプリを実行、shellの最後にフラグファイルtouch
py側はフラグファイルができるの待ちなんてのは?
変換後のファイルが解っているならそれを待てば良いのでは?
その後のスリープが十分な時間をおいてもそこそこには短いのではないかな?
本当はアプリ側から終了に関する何かができるのが良いけど
フラグファイルを削除、shellでアプリを実行、shellの最後にフラグファイルtouch
py側はフラグファイルができるの待ちなんてのは?
103デフォルトの名無しさん
2017/06/01(木) 12:22:42.19ID:L3uS1u+Y winならHiMacroEx使って、マウス操作と(ファイル選択時に)キーボード入力したら良いと思う
一定隔離空けとけば、なんとかなるよ。
どうしても、pythonで実現しなければ行けない理由が有るなら教えて (つд⊂)ゴシゴシ
プログラムより先にフリーソフト頼ったほうが良いと思うよ(個人的にだけど……。)
一定隔離空けとけば、なんとかなるよ。
どうしても、pythonで実現しなければ行けない理由が有るなら教えて (つд⊂)ゴシゴシ
プログラムより先にフリーソフト頼ったほうが良いと思うよ(個人的にだけど……。)
104デフォルトの名無しさん
2017/06/01(木) 21:08:49.59ID:L3uS1u+Y105デフォルトの名無しさん
2017/06/01(木) 21:21:53.39ID:4NZyrsle よくわからんけど
os.path.splitext使うんじゃなくて?
どう置き換えたいのかわからんし、コメントの「拡張子を表示している」の意味もわからん
os.path.splitext使うんじゃなくて?
どう置き換えたいのかわからんし、コメントの「拡張子を表示している」の意味もわからん
10696
2017/06/01(木) 22:03:44.89ID:CzM97RwD >>101
一つの手かもしれません。試してみようと思います。
>>102
似たようなことかもしれませんが、
最初考えていたのは変換ファイルが生成されるディレクトリのファイル数を監視して、
ファイルが増えたら次の処理へ進む、ということを考えていました。
しかし、プログラム処理中にディレクトリを見ていると、
「変換処理」ボタンを押して、処理が完了するまでに一旦ファイルが生成してしまうんですね。
しかし、画面上ではまだクリックとかは受け付けられない状態なので
(例えばその状態でクリックすると、重いときによくある「プログラムが応答していません」となる)、
結局待機時間が必要となるようです。
最後の2行、もう少し詳しく教えていただけませんか。
理解しきれてなくて申し訳ありません。
>>103
目的は自動化処理の勉強でもあるので、
できる限り自分でプログラムを組みたいという意図はあります。
ただ、たまたまpyautoguiの存在を知ってpythonに手を出した部分もあり、
正直他の言語で対応できるなら、そちらを選択するのもありだと思っています。
よく使うOSはwindowsなのですが、
例えば、windowsプログラミングの知見があれば
今回のような状態を認識することとかできるのでしょうか?
一つの手かもしれません。試してみようと思います。
>>102
似たようなことかもしれませんが、
最初考えていたのは変換ファイルが生成されるディレクトリのファイル数を監視して、
ファイルが増えたら次の処理へ進む、ということを考えていました。
しかし、プログラム処理中にディレクトリを見ていると、
「変換処理」ボタンを押して、処理が完了するまでに一旦ファイルが生成してしまうんですね。
しかし、画面上ではまだクリックとかは受け付けられない状態なので
(例えばその状態でクリックすると、重いときによくある「プログラムが応答していません」となる)、
結局待機時間が必要となるようです。
最後の2行、もう少し詳しく教えていただけませんか。
理解しきれてなくて申し訳ありません。
>>103
目的は自動化処理の勉強でもあるので、
できる限り自分でプログラムを組みたいという意図はあります。
ただ、たまたまpyautoguiの存在を知ってpythonに手を出した部分もあり、
正直他の言語で対応できるなら、そちらを選択するのもありだと思っています。
よく使うOSはwindowsなのですが、
例えば、windowsプログラミングの知見があれば
今回のような状態を認識することとかできるのでしょうか?
107デフォルトの名無しさん
2017/06/01(木) 22:14:13.94ID:Uwpxl/vB 悩むより、触ってみることの方が大事かもよ
おちんちんについては。
おちんちんについては。
108デフォルトの名無しさん
2017/06/01(木) 22:19:54.39ID:WSMhyWlx 触ってごらんウールだよ
109デフォルトの名無しさん
2017/06/01(木) 22:32:38.84ID:Uwpxl/vB 俺のウール、ごわごわしてる(´・ω・`)
110デフォルトの名無しさん
2017/06/01(木) 23:27:12.86ID:biLitq02 Windowsで他のアプリを自動運転したいとき
俺ならUWSC使うな
ボタンの状態なんかも読み取れるぞ
俺ならUWSC使うな
ボタンの状態なんかも読み取れるぞ
111デフォルトの名無しさん
2017/06/01(木) 23:37:02.38ID:HrlrgTfR >>106
110ではないがmacやlinuxならsikuliと言ったところか
アプリ側が連続処理中ではちと無理だね
一回一回変換するなら無関係なファイルをバッチなりで作れば良いのだがどうもイメージしている感じが違うようだ。
役に立てずすまんね
110ではないがmacやlinuxならsikuliと言ったところか
アプリ側が連続処理中ではちと無理だね
一回一回変換するなら無関係なファイルをバッチなりで作れば良いのだがどうもイメージしている感じが違うようだ。
役に立てずすまんね
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【おこめ券】物価高対策の“おこめ券”全米販は1枚477円で販売へ 鈴木農水大臣「国民の皆様に活用いただきやすいよう工夫いただいた」★2 [ぐれ★]
- 【食】「シャウエッセンは焼くべからず」暗黙のルールを破り売上高過去最高…日本ハム社員たちが「夜味」にかけた情熱 [ぐれ★]
- 【話題】好きな鍋は?! 「寄せ鍋」「キムチ鍋」「水炊き」「もつ鍋」「豆乳鍋」「ちゃんこ鍋」「ごま坦々鍋」「トマト鍋」 [ひぃぃ★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★5 [蚤の市★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 ★5 [蚤の市★]
- 【埼玉】54歳男性死亡…菓子店で機械に挟まれる 昼前に1人で作業中、あんを混ぜる“かくはん機”に巻き込まれ…女性従業員が発見 入間 [ぐれ★]
- 【終了】日本、外貨獲得の商品がもう「女」しかない。高市早苗に「外交」させるところまでは正しかった模様 [517791167]
- 鈴木農水大臣「物価高対策でお米券1枚477円で販売します☺」 [931948549]
- ムミィ🥺いる❓🏡
- Pornhub「米国内で最もシコられたキャラはチュンリー、2B、そして…」 [347751896]
- ママカースト、地獄すぎるwwwwwwwwwwwwwwwwwwwww [977790669]
- 【高市】「女は男のコンテンツに興味を持つが、男は女のコンテンツに興味を持たない」👈これ何で?🧐 [762037879]
