X



くだすれPython(超初心者用) その42【Ruby禁止】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2019/03/18(月) 13:42:55.36ID:+MPRGO7m
★当スレにRubyのソースコード類を書くことを禁ず
☆Ruby等、Pythonではないプログラミング言語での回答類を書くことも禁ず

このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

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

前スレ
くだすれPython(超初心者用) その41【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1549282930/


◆PythonのHome Page
http://www.python.org/

◆まとめwiki
ttp://python.rdy.jp/

◆Pythonのソースコードをそのまま5ちゃんにコピペすると
  インデントが崩れるので
  こういうところ↓にはってきてください
ttp://ideone.com/      Pythonするにはぷち手間あるのがめんどうかなぁ
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数を長めに指定しる。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう
ttps://ja.osdn.net/pastebin/ ログイン必須になりやがった(゚Д゚#)
−−−−天麩羅ここまで−−−−
0699デフォルトの名無しさん
垢版 |
2019/04/07(日) 07:04:27.59ID:n+v7EzQs
関数ABCD順で無限ループしてるなかで

Aに飛んでA→B→C→Dループ
Bに飛んでB→C→D→Aループ
Cに飛んでC→D→A→Bループ

という感じです
0700デフォルトの名無しさん
垢版 |
2019/04/07(日) 07:28:08.82ID:n+v7EzQs
import.random
def A():
....a=random.randint(1,100)
....return A
def B():
....B=random.randint(1,100)
....return B
def C():
....c=random.randint(1,100)
....return C
def.D():
....d=random.randint(1,100)
....return D

while True:
....A()
....B()
....C()
....D()

関数ABCDをループするコードがある時に
Aが90を超えたらAに戻って再びループ
Bが90を超えたらAに戻って再びループ
Cが90を超えたらBに戻って再びループ
Dが90を超えたらCに戻って再びループ
これを無限に繰り返したいということです
0701デフォルトの名無しさん
垢版 |
2019/04/07(日) 08:12:43.08ID:aPMrZc41
説明へたくそがあらゆるスレに大量に沸いてるけど何かのキャンペーンなのか?
0702デフォルトの名無しさん
垢版 |
2019/04/07(日) 08:32:40.00ID:JkriCKoc
乱数の生成とそれ以外の部分を分ければいい
それが嫌なら各関数から次に実行する関数を返すようにすればいい
0703デフォルトの名無しさん
垢版 |
2019/04/07(日) 08:36:59.02ID:mKsxK2JJ
基本的に、次に実行する関数がコロコロ変わる場合には、決まった構造を取れないから、
次に実行する関数を、一旦、キューにでも入れた方が良いかも

OS のプロセススケジューラーは、まさにそう。
赤黒木で、次に実行するプロセスの順番を管理している
0709デフォルトの名無しさん
垢版 |
2019/04/07(日) 09:10:57.50ID:h90p5IeD
>>708
gotoの存在を知っておくのはいいけど、安易に使うものではないことも知っておいて。
もし使うなら、gotoに関する議論をしっかり調べてメリットデメリットを理解してから使うようにした方がいい。
0710デフォルトの名無しさん
垢版 |
2019/04/07(日) 09:14:58.01ID:n+v7EzQs
そうなんですか。
とても便利そうで感動していたのですが...
基本プログラムは戻るという概念はないと考えるべきなんですかね。
gotoについて調べてみます。
0711デフォルトの名無しさん
垢版 |
2019/04/07(日) 09:54:42.44ID:KWJ+xksL
goto はできるだけ使わずに、continue ( break) を使う。

continue
continue文は、for文やwhile文のブロック処理中に使用します。
continue文を使用すると、それ以降の処理を行わず、for文やwhile文のブロックの先頭に戻ります。

break
break文は、for文やwhile文のブロック処理中に使用します。
break文を使用すると、それ以降の処理を行わず、for文やwhile文の繰り返し処理自体が終了します。
0714デフォルトの名無しさん
垢版 |
2019/04/07(日) 11:03:58.83ID:G6UDrmXI
こんなかんじじゃね?(rotateは未定義)

funcs = [A, B, C, D]

while True:
. for f in funcs:
. n = f()
. if n > 90:
. funcs = rotate(funcs)
0715デフォルトの名無しさん
垢版 |
2019/04/07(日) 11:40:28.10ID:d52YJryc
後藤?
0716デフォルトの名無しさん
垢版 |
2019/04/07(日) 11:51:04.89ID:n+v7EzQs
>>713
まじですか!?
そんなやばいもんだったのですね。。。

>>714
>>703さんの言うキューに入れるとはこういう事だったんですね。
勉強になります。
0717デフォルトの名無しさん
垢版 |
2019/04/07(日) 11:54:00.18ID:d52YJryc
appendって2次元配列になっちゃうのでしょうか?
kara=[]
kara.append([1,2,3,4])
これだと2次元配列になる
kara.append(1,2,3,4)
ではエラー?
0719デフォルトの名無しさん
垢版 |
2019/04/07(日) 12:10:46.72ID:d52YJryc
array=[1,2,3,4]
for n in range(4):
print(array[n])

これだとnに0から3までのインデックスが入るわけですよね
なぜ自動的にそうなるんですか?そういう決まりなんですか?


>>718
存在忘れてました
0720デフォルトの名無しさん
垢版 |
2019/04/07(日) 12:38:35.16ID:0uIk07A1
そうだお
パイソン作った人が決めたんだよ
0721デフォルトの名無しさん
垢版 |
2019/04/07(日) 13:01:56.35ID:d52YJryc
ありがとうです
0722デフォルトの名無しさん
垢版 |
2019/04/07(日) 13:02:14.01ID:d52YJryc
vs codeがメモリ使いすぎなんですが、いいエディタないですか?
idleはありますです
0723デフォルトの名無しさん
垢版 |
2019/04/07(日) 13:15:07.96ID:HG+SSO0q
エディタは探し続けるしかない
俺はVSCODE使ってるわ。メモリ24GB積んでたらそれほど気にならん
0724デフォルトの名無しさん
垢版 |
2019/04/07(日) 14:03:31.99ID:pahFUo3A
ちょこちょこした事ならSublime でも良いと思うけど、IDE ならEclipse なんかどうだろう。 インストール途中で引っかかって進んでいないけど。
Pycharm も一度は試そうかと思ってたけど有料なんだろ?
0725デフォルトの名無しさん
垢版 |
2019/04/07(日) 14:08:36.55ID:pahFUo3A
eclipse + PyDev

この組み合わせで出来ること。
・コード補完
・コードドキュメントの表示
・インタラクティブコンソールでデバッグ
・実行時に変数の値を更新
・条件付きブレークポイント
・例外ブレークポイント
・ブレークポイントでストップ中に、コンテキスト切り替え
・ソースコード自動フォーマット
・コードカバレッジ計測
・コード評価(PyLint)
・プロファイリング(cProfile)
・Gitでソースコード管理(Git)
0727デフォルトの名無しさん
垢版 |
2019/04/07(日) 14:14:20.85ID:pahFUo3A
eclipe は、長い間 java 系 の開発に使ってきたから使い続けたい。
プログラムが巨大になればなるほどありがたさがわかってくる。
0728デフォルトの名無しさん
垢版 |
2019/04/07(日) 14:19:17.52ID:opmlQB67
eclipseはプラグイン増やすとワークスペースや本体がすぐに壊れるから、結局言語別に全て分離するのが最善であることに気付く
だから統合環境としてのeclipseに固執する意味はゼロに近い
代わりにVSCodeが真にextensibleかつオープンな統合環境を実現した
0731デフォルトの名無しさん
垢版 |
2019/04/07(日) 16:08:17.66ID:d52YJryc
find的な関数はあるんすか?ループで使うやつです
0733デフォルトの名無しさん
垢版 |
2019/04/07(日) 16:34:47.97ID:d52YJryc
何がやりたいのかはわかりません
ゲームエンジンにはあった関数なんですが
0734デフォルトの名無しさん
垢版 |
2019/04/07(日) 16:42:14.41ID:Uqhse/UH
>>733
その関数の仕様を示すか、せめてそのエンジンの名前と関数名を挙げないことにはエスパー以外誰も回答できないと思うぞ。
0736デフォルトの名無しさん
垢版 |
2019/04/07(日) 17:22:43.11ID:d52YJryc
なんちゅーか、リストの中に特定の文字が含まれるか みたいなものだと思います
find関数あるんすね
0737デフォルトの名無しさん
垢版 |
2019/04/07(日) 17:30:11.79ID:MpkRE5L0
>>736
inのこと?
x = [‘hoge’, ‘foo’, ‘bar’]
if ‘hoge’ in x: print(‘yay’)
0738デフォルトの名無しさん
垢版 |
2019/04/07(日) 17:51:37.81ID:pahFUo3A
>>736 思いますって何やねん。 兎に角Python ではほとんどできない事はないからしっかり勉強すれば?
何も勉強していないで何のために質問してるの?

# ‘Python’ の中に ‘Py’ が有るか?

if ‘Py’ in ‘Python’ : print(‘有ったぞ’)
# 有ったぞ
0739デフォルトの名無しさん
垢版 |
2019/04/07(日) 18:08:57.67ID:d52YJryc
list=[1,2,3,4,5]
result = list.find("1")
print(result)

>>737
.find
みたいな形で使うものですね
↑だとエラーになりますが
もらったinのコードもなぜかリスト部分がエラーになりますが
0740デフォルトの名無しさん
垢版 |
2019/04/07(日) 18:24:23.16ID:d52YJryc
ああ、ループか
ごめんなさい
0741デフォルトの名無しさん
垢版 |
2019/04/07(日) 18:33:24.66ID:d52YJryc
list=[1,2,3,4,5]
for i in range(5):
if list[i].find(1):
print("hoge")
これでもエラーになりますね
listには属性がないというエラーです
0743デフォルトの名無しさん
垢版 |
2019/04/07(日) 18:53:02.03ID:IvHbp9J/
>>737をよくみると、「’」であるべきところに
「’」じゃないのが入ってるので、そのままコピペだとうごかない。
0744デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:00:23.66ID:AvqFg232
>>741
> listには属性がないというエラーです
ちゃんとエラーメッセージ読めてる?
こう出てるはずだが…

Traceback (most recent call last):
File "./prog.py", line 3, in <module>
AttributeError: 'int' object has no attribute 'find'

https://ideone.com/GZdjoF
0745デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:03:40.75ID:d52YJryc
>>742
リストが表示されますが。。。
0746デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:05:44.94ID:d52YJryc
ああ、確かにリストiはリスト全体ではにゃいですね、、、
0748デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:06:35.80ID:zc2PfqGU
お願いだから日本語くらいは正確に読みとってくれ
落ち着いて読め
落ち着け
0749デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:07:57.21ID:d52YJryc
でも、リストで回さないと検索出来ないですよね
0750デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:11:53.27ID:d52YJryc
>>744
そうですね findという属性がリスト(intオブジェクト)にはないということですよね
.findみたいな形のメソッドはないんでしょうか?
0752デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:30:18.54ID:pahFUo3A
>>749 ちょっと待てや、先ず何をやりたいのかはっきりさせろ。 お前の頭の中がしっちゃかめっちゃかだから
先ず自分が何を知りたいのか整理しておかないと人が書いたことも理解できないだろ。

[1,2,3,4,5] この中から、1とか2を探したいのか?
0755デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:36:07.43ID:d52YJryc
>>752
したいことはリストの中に1が存在するかどうかの判定です
.findという形で出来るのでしょうか?
0760デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:57:30.69ID:d52YJryc
for y in range(4):

print(map[y].find(n))

if map[y].find(n) != -1:
img[n].set_position(Vector2(map[y].find(n)*100, y*100))

ゲームエンジンにこういうのがあったんですが、このfindってpythonで言うなんですかね?後は調べます
0763デフォルトの名無しさん
垢版 |
2019/04/07(日) 21:11:17.19ID:KWJ+xksL
>>760 map に何が入ってるのかわからないから何とも言えんな、 find でも出来そうだし、そんなもの使わなくても出来そうだし。 そもそもそのゲームエンジンって何だよ。

map[] が、bytearray なら、多分 find(n) だろうな。 この場合はnが含まれる位置を取り出すと言う意味。
0764デフォルトの名無しさん
垢版 |
2019/04/08(月) 00:15:32.59ID:LsTkaBrV
こんにちは
platformio-ide-terminalを導入してshell override
0765デフォルトの名無しさん
垢版 |
2019/04/08(月) 00:16:52.73ID:LsTkaBrV
>>764 すみませんとぎれました
も設定変更したのですが、左下の+をクリックしても相変わらず何も入力できない画面が出てきます
input関数を使いたいのですがどうしたら良いでしょうか?
0766デフォルトの名無しさん
垢版 |
2019/04/08(月) 05:47:43.74ID:Xgx7hCRv
>>763
そうですか どうもです
0767デフォルトの名無しさん
垢版 |
2019/04/08(月) 05:49:30.32ID:Xgx7hCRv
idleってトグルのコメントアウトありますか?
0768デフォルトの名無しさん
垢版 |
2019/04/08(月) 05:52:22.51ID:Xgx7hCRv
list関数の目的ってなんですか?
普通のリストでいいんじゃありません?
0769デフォルトの名無しさん
垢版 |
2019/04/08(月) 06:04:01.76ID:ijdHUaIX
import glob
f=glob.glob(".\aaa\*")

助けて下さい。。。
上のコードでaaaというフォルダ内のファイル名を取得したいのですがうまくいきません。
フォルダ名を変えるとうまく取得できます。。。
フォルダ名の先頭が「a」だと上手くいかないのですがバグですか?
それともなにか決まりがあるのでしょうか?

windows環境っす。
0770デフォルトの名無しさん
垢版 |
2019/04/08(月) 06:33:58.62ID:2+Nk20gv
>>769
\がエスケープされてる
glob.glob(r".\aaa\*")
0773デフォルトの名無しさん
垢版 |
2019/04/08(月) 06:37:41.84ID:ijdHUaIX
コードの修正をしたところちゃんと取得できました。
本当にありがとうございます。
0777デフォルトの名無しさん
垢版 |
2019/04/08(月) 11:23:43.24ID:r5MC5DWh
pyautoguiを使ってPCにある画像が表示されたらクリックするというプログラムを作ったのですが
やたらとCPU使用率が高くなります。90%以上に…
SikuliXなどを使った場合はCPU使用率は20%程度におさまります。
CPU使用率を下げるにはどうすればいいのでしょうか?

https://ideone.com/T4aEJc
0782デフォルトの名無しさん
垢版 |
2019/04/08(月) 14:39:17.16ID:LKdogrbE
while True:
....A()
....while True:
........B()
........if not C() break
....D()
0783デフォルトの名無しさん
垢版 |
2019/04/09(火) 01:04:20.45ID:UmDHwXHw
【12日まで】500円を貰える春のばらまきキャンペーン開催中です

@ スマホのApp Storeから「プリン(pring)」をインストールする
A 会員登録を済ませる     
B 下図の通りに進む  
https://pbs.twimg.com/media/D3o7rx3UYAA6jzJ.jpg 
C コードを登録 [5gAYSz] 
     
これで五百円を貰えます     
スマホでセブンATMからお金を下ろせたり(キャッシュカード不要)便利なアプリですのでよろしければお試し下さい。     
0784デフォルトの名無しさん
垢版 |
2019/04/09(火) 08:57:21.72ID:2RX/lqpj
import random
from numba import jit
@jit
def test():
____n=10000000
____count=0
____for i in range(n):
________a=random.randint(1,100000000)
________b=a*2
________cl=[]
________cl.append(a),cl.append(b)
________ch=random.sample(cl,2)
________if ch[0]<ch[1]:
____________count+=1
____print(count)
test()

封筒のパラドックスをシミュレーションしてみました。
numbaは@jitつけるだけでPythonを高速化できると聞いたんですが全然早くなりません。
私の使い方の何がいけないのでしょうか?
たまに早くなるときもあるのですが、早くなる時とならない時の規則が全くわかりません。
誰が教えて〜
0785デフォルトの名無しさん
垢版 |
2019/04/09(火) 19:29:14.06ID:bV70K2EI
pygameってインテリセンスあるんすか
0786デフォルトの名無しさん
垢版 |
2019/04/09(火) 19:31:35.45ID:bV70K2EI
最初から入ってますやね ごめん
0787デフォルトの名無しさん
垢版 |
2019/04/09(火) 19:41:17.37ID:bV70K2EI
やっぱ出ないのがある
pygame.display.set_caption
のset_captionの部分は出ないのですか?
0788デフォルトの名無しさん
垢版 |
2019/04/09(火) 19:43:09.50ID:bV70K2EI
pygame_snippeterで出たわ
ごめんぬ
0789デフォルトの名無しさん
垢版 |
2019/04/09(火) 19:50:39.11ID:bV70K2EI
pygame.draw.rect
のrectが出ない
どうやったら出るの
0791デフォルトの名無しさん
垢版 |
2019/04/09(火) 23:25:23.18ID:ADLzGaMc
>>700
ft=[A,B,C,D]
fn=len(ft)
pc=0
while True:
....if ft[pc]()>90:
........pc=max(0,pc-1)
....else:
........pc=(pc+1)%fn
0792デフォルトの名無しさん
垢版 |
2019/04/10(水) 05:46:36.34ID:mQh/DMfO
pygameのインテリセンスは何の環境で出ます?
0793デフォルトの名無しさん
垢版 |
2019/04/10(水) 07:23:04.34ID:mQh/DMfO
if __name__ == "__main__"をサルでもわかるように教えてみてください
0794デフォルトの名無しさん
垢版 |
2019/04/10(水) 07:25:29.47ID:mQh/DMfO
要はメンバ関数的なものは他からインポートしただけで実行されちゃうので、それを防ぐってことですか?
0795デフォルトの名無しさん
垢版 |
2019/04/10(水) 08:03:46.63ID:abuMoS36
>>793
まずはその質問であなたが聞きたいことがどういうことか相手に正確に伝わるのか、客観的に考えてみてください。
次に、そんな聞き方で相手があなたに答えようという気になるかどうか、考えてみてください。
0796デフォルトの名無しさん
垢版 |
2019/04/10(水) 08:41:40.10ID:TbFSlD63
今pytestでテストを勉強してる。

とりあえず、fizzbuzzについてテストを書いてみた。
https://pastebin.com/eVb5zW6D

でも、どこまでテストを書けばいいのかよく分からん。
コードカバレッジが100%になればOKとしていいのかね
0797デフォルトの名無しさん
垢版 |
2019/04/10(水) 08:45:30.83ID:ctVOU6iK
if __FILE__ == $0
# メイン処理
end

Ruby で、このイディオムを使う理由は、
$0 は、Ruby コマンドで指定したファイル名(メインファイル)。
「ruby a.rb」と実行した際の、a.rb で、これは変化しない

一方、__FILE__ は、現在評価中のファイル名。
require, load で、別のファイル(ライブラリ)を読み込んだ際、そのファイル名に変わる

これにより、そのファイルをテストする際に、
ライブラリ・メインファイルとして、機能を切り替えてテストできる

つまり、他のファイルから、ライブラリとして読み込まれた場合は、
「__FILE__ == $0」が偽になるので、if 〜 end で囲まれた部分は、実行されない
0798デフォルトの名無しさん
垢版 |
2019/04/10(水) 10:45:14.37ID:g9h2j5fz
がんばれまつもと
いけいけまつもと
なんださかこんなさか

生命保険のCMだと思ってたわ
0799デフォルトの名無しさん
垢版 |
2019/04/10(水) 12:37:06.25ID:w9tzkVKB
クソ言語rubyは*nix文化に依存しているので初心者に取って意味が分からない記号$0などが唐突に出てきたりする。
え?知ってて当然でしょ?といった態度なのである。
また同様の理由で*nix依存のプロセスフォークコードが初心者用教材に出てきたりでwindowsユーザーから総スカンを食らって今の体たらくとなった。
rubyではpython以上にwindowsユーザーに人権はない。
rubyの凋落は約束されていたのである。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況