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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
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/ ログイン必須になりやがった(゚Д゚#)
−−−−天麩羅ここまで−−−−
733デフォルトの名無しさん
垢版 |
2019/04/07(日) 16:34:47.97ID:d52YJryc
何がやりたいのかはわかりません
ゲームエンジンにはあった関数なんですが
2019/04/07(日) 16:42:14.41ID:Uqhse/UH
>>733
その関数の仕様を示すか、せめてそのエンジンの名前と関数名を挙げないことにはエスパー以外誰も回答できないと思うぞ。
2019/04/07(日) 16:42:34.37ID:ISAcjhgY
あるに決まってんじゃん、何でマニュアルを検索しないの?
https://docs.python.org/ja/3/search.html?q=find
736デフォルトの名無しさん
垢版 |
2019/04/07(日) 17:22:43.11ID:d52YJryc
なんちゅーか、リストの中に特定の文字が含まれるか みたいなものだと思います
find関数あるんすね
737デフォルトの名無しさん
垢版 |
2019/04/07(日) 17:30:11.79ID:MpkRE5L0
>>736
inのこと?
x = [‘hoge’, ‘foo’, ‘bar’]
if ‘hoge’ in x: print(‘yay’)
2019/04/07(日) 17:51:37.81ID:pahFUo3A
>>736 思いますって何やねん。 兎に角Python ではほとんどできない事はないからしっかり勉強すれば?
何も勉強していないで何のために質問してるの?

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

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

>>737
.find
みたいな形で使うものですね
↑だとエラーになりますが
もらったinのコードもなぜかリスト部分がエラーになりますが
740デフォルトの名無しさん
垢版 |
2019/04/07(日) 18:24:23.16ID:d52YJryc
ああ、ループか
ごめんなさい
741デフォルトの名無しさん
垢版 |
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には属性がないというエラーです
2019/04/07(日) 18:53:00.59ID:zc2PfqGU
まあ、list[i]はlistじゃないからね
print(type(list[i]))してみれば分かるけど
2019/04/07(日) 18:53:02.03ID:IvHbp9J/
>>737をよくみると、「’」であるべきところに
「’」じゃないのが入ってるので、そのままコピペだとうごかない。
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
745デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:03:40.75ID:d52YJryc
>>742
リストが表示されますが。。。
746デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:05:44.94ID:d52YJryc
ああ、確かにリストiはリスト全体ではにゃいですね、、、
2019/04/07(日) 19:05:55.07ID:zc2PfqGU
なんだと
744の通り、君が何か端折って無い限りlist[i]はintのだが
2019/04/07(日) 19:06:35.80ID:zc2PfqGU
お願いだから日本語くらいは正確に読みとってくれ
落ち着いて読め
落ち着け
749デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:07:57.21ID:d52YJryc
でも、リストで回さないと検索出来ないですよね
750デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:11:53.27ID:d52YJryc
>>744
そうですね findという属性がリスト(intオブジェクト)にはないということですよね
.findみたいな形のメソッドはないんでしょうか?
2019/04/07(日) 19:26:38.05ID:AvqFg232
とにかくマニュアル読め
https://docs.python.org/ja/3/tutorial/datastructures.html
とりあえずお前が欲しいのはindex()だと思う
あとリスト(intオブジェクト)みたいなわけわからん書き方するなよ
お前さんが理解できてるのかできてないのかわからん
2019/04/07(日) 19:30:18.54ID:pahFUo3A
>>749 ちょっと待てや、先ず何をやりたいのかはっきりさせろ。 お前の頭の中がしっちゃかめっちゃかだから
先ず自分が何を知りたいのか整理しておかないと人が書いたことも理解できないだろ。

[1,2,3,4,5] この中から、1とか2を探したいのか?
2019/04/07(日) 19:31:31.56ID:pahFUo3A
質問の前に基本の勉強をする事だな。
2019/04/07(日) 19:36:02.57ID:bnPma/AH
>>752

最初の2つが1、2だろ
755デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:36:07.43ID:d52YJryc
>>752
したいことはリストの中に1が存在するかどうかの判定です
.findという形で出来るのでしょうか?
2019/04/07(日) 19:42:16.17ID:dQladGVm
>>755
in演算子を使います。

list=[1,2,3,4,5]
print 1 in list
2019/04/07(日) 19:50:13.76ID:/nTEWxBc
>>755
inでもindexでも好きなのを使え
https://ideone.com/EXBMlf
2019/04/07(日) 19:51:03.78ID:VS5mFLzx
というか組み込み関数のlistを上書きすんなよー
トラブルの元だぞ
2019/04/07(日) 19:57:08.93ID:IvHbp9J/
ID:d52YJryc
760デフォルトの名無しさん
垢版 |
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で言うなんですかね?後は調べます
2019/04/07(日) 20:00:02.17ID:/nTEWxBc
最初にそれを書けや
2019/04/07(日) 20:03:46.74ID:IvHbp9J/
では
気を取り直して
つぎのかたどうぞー
2019/04/07(日) 21:11:17.19ID:KWJ+xksL
>>760 map に何が入ってるのかわからないから何とも言えんな、 find でも出来そうだし、そんなもの使わなくても出来そうだし。 そもそもそのゲームエンジンって何だよ。

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

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

windows環境っす。
770デフォルトの名無しさん
垢版 |
2019/04/08(月) 06:33:58.62ID:2+Nk20gv
>>769
\がエスケープされてる
glob.glob(r".\aaa\*")
2019/04/08(月) 06:34:13.75ID:ijdHUaIX
早朝にすいません。
どなたかお助けを・・・
2019/04/08(月) 06:35:43.31ID:ijdHUaIX
>>770
ありがとうございます。
助かります。
2019/04/08(月) 06:37:41.84ID:ijdHUaIX
コードの修正をしたところちゃんと取得できました。
本当にありがとうございます。
2019/04/08(月) 08:58:58.11ID:xawk68Fs
>>769
バグ?wお前のアタマのこと?ww
2019/04/08(月) 09:32:18.84ID:Bk24LCX8
>>768
初心者は気にしなくていいよ
大人になってから気にしてね
2019/04/08(月) 11:02:22.33ID:kdwh5yHb
>>768 先ずはマニュアルを見なさい。
2019/04/08(月) 11:23:43.24ID:r5MC5DWh
pyautoguiを使ってPCにある画像が表示されたらクリックするというプログラムを作ったのですが
やたらとCPU使用率が高くなります。90%以上に…
SikuliXなどを使った場合はCPU使用率は20%程度におさまります。
CPU使用率を下げるにはどうすればいいのでしょうか?

https://ideone.com/T4aEJc
2019/04/08(月) 11:42:41.20ID:QfzJZ21c
sleep を入れずに、無限ループしてるとか?
2019/04/08(月) 11:57:45.44ID:r5MC5DWh
スリープは入れてます
2019/04/08(月) 12:45:12.00ID:yFytPSzO
except:の方に入って無いじゃん
2019/04/08(月) 13:09:36.24ID:IKpd+dkD
そういうことだったんですね。
ありがとうございます。
782デフォルトの名無しさん
垢版 |
2019/04/08(月) 14:39:17.16ID:LKdogrbE
while True:
....A()
....while True:
........B()
........if not C() break
....D()
783デフォルトの名無しさん
垢版 |
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からお金を下ろせたり(キャッシュカード不要)便利なアプリですのでよろしければお試し下さい。     
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を高速化できると聞いたんですが全然早くなりません。
私の使い方の何がいけないのでしょうか?
たまに早くなるときもあるのですが、早くなる時とならない時の規則が全くわかりません。
誰が教えて〜
785デフォルトの名無しさん
垢版 |
2019/04/09(火) 19:29:14.06ID:bV70K2EI
pygameってインテリセンスあるんすか
786デフォルトの名無しさん
垢版 |
2019/04/09(火) 19:31:35.45ID:bV70K2EI
最初から入ってますやね ごめん
787デフォルトの名無しさん
垢版 |
2019/04/09(火) 19:41:17.37ID:bV70K2EI
やっぱ出ないのがある
pygame.display.set_caption
のset_captionの部分は出ないのですか?
788デフォルトの名無しさん
垢版 |
2019/04/09(火) 19:43:09.50ID:bV70K2EI
pygame_snippeterで出たわ
ごめんぬ
789デフォルトの名無しさん
垢版 |
2019/04/09(火) 19:50:39.11ID:bV70K2EI
pygame.draw.rect
のrectが出ない
どうやったら出るの
2019/04/09(火) 23:11:44.10ID:Ds+BH9Ta
優しくしごいてごらん
791デフォルトの名無しさん
垢版 |
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
792デフォルトの名無しさん
垢版 |
2019/04/10(水) 05:46:36.34ID:mQh/DMfO
pygameのインテリセンスは何の環境で出ます?
793デフォルトの名無しさん
垢版 |
2019/04/10(水) 07:23:04.34ID:mQh/DMfO
if __name__ == "__main__"をサルでもわかるように教えてみてください
794デフォルトの名無しさん
垢版 |
2019/04/10(水) 07:25:29.47ID:mQh/DMfO
要はメンバ関数的なものは他からインポートしただけで実行されちゃうので、それを防ぐってことですか?
2019/04/10(水) 08:03:46.63ID:abuMoS36
>>793
まずはその質問であなたが聞きたいことがどういうことか相手に正確に伝わるのか、客観的に考えてみてください。
次に、そんな聞き方で相手があなたに答えようという気になるかどうか、考えてみてください。
796デフォルトの名無しさん
垢版 |
2019/04/10(水) 08:41:40.10ID:TbFSlD63
今pytestでテストを勉強してる。

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

でも、どこまでテストを書けばいいのかよく分からん。
コードカバレッジが100%になればOKとしていいのかね
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 で囲まれた部分は、実行されない
798デフォルトの名無しさん
垢版 |
2019/04/10(水) 10:45:14.37ID:g9h2j5fz
がんばれまつもと
いけいけまつもと
なんださかこんなさか

生命保険のCMだと思ってたわ
2019/04/10(水) 12:37:06.25ID:w9tzkVKB
クソ言語rubyは*nix文化に依存しているので初心者に取って意味が分からない記号$0などが唐突に出てきたりする。
え?知ってて当然でしょ?といった態度なのである。
また同様の理由で*nix依存のプロセスフォークコードが初心者用教材に出てきたりでwindowsユーザーから総スカンを食らって今の体たらくとなった。
rubyではpython以上にwindowsユーザーに人権はない。
rubyの凋落は約束されていたのである。
2019/04/10(水) 12:45:00.76ID:g5aVzwwu
rubyはまつもとゆきひろがモルモン教徒というだけで避けるべき言語
2019/04/10(水) 14:25:26.23ID:3J6MW5VC
宗教的な話をするのは止めろ
避ける理由なんて *ガイジが多い* だけで十分だろ
2019/04/10(水) 15:13:23.99ID:0IjK1T9A
https://blog-imgs-44-origin.fc2.com/n/e/w/news21c/20120227_mad.jpg
2019/04/10(水) 18:54:18.33ID:BCtEG6Cs
>>800
+1
2019/04/10(水) 19:15:57.40ID:xcPdAU38
>>799
そういう暗黙のルールみたいなのが少ないのがpythonの良さだったが最近はpythonもそうではない。
2019/04/10(水) 19:21:36.77ID:w9tzkVKB
かといってrubyに人が戻るわけでもないけどな。
2019/04/10(水) 19:43:43.97ID:rYIIY36D
pandasデータフレームのindex自体に特定文字が含まれていた場合、該当index列だけヒストグラムを描くにはどうしたらよいでしょうか
2019/04/10(水) 22:10:36.39ID:LfcCX027
>>784です。
Pythonに詳しい方、回答お願いいたします><
2019/04/10(水) 22:50:03.89ID:ufoQFtcn
>>807 print(count) の下に return count を入れたらどうなる?
2019/04/10(水) 22:59:10.63ID:LfcCX027
>>808
あまり変わりません。
2019/04/11(木) 00:47:16.46ID:gJnDKBxk
>>809
規則に関しては全く分からんが
784の癌はrandom.sampleだ

探し方は普通にコメントアウトしたり戻したりして探しただけだ
ほんの10分だ
2019/04/11(木) 04:39:22.40ID:NMbmtCQc
>>810
実際にnumbaを使ってコメントアウトを繰り返して自分なりの使い方を見つけるしかないのですね。
ありがとうございます。
812デフォルトの名無しさん
垢版 |
2019/04/11(木) 05:31:35.70ID:wTPWcZPk
keys = pygame.keys.get.pressed()
if keys[pygame.K_LEFT]:
これってなんでカギかっこになってるんでしょうか
またなぜpygameとついているのでしょうか
pressed関数から何か呼び出すのであればkeys.k_left
とかでいいと思うんですが
2019/04/11(木) 06:03:33.52ID:SMdbPkuM
知らないけど、pygame.K_LEFT は、単純な整数定数とかじゃないの?

例えば、pygame.K_LEFT が、10 なら、keys[ 10 ] になる
814デフォルトの名無しさん
垢版 |
2019/04/11(木) 07:20:29.32ID:wTPWcZPk
整数定数ってのを使うときにブラケットを使うんですか?
2019/04/11(木) 07:38:33.52ID:aem/1zLy
内部ではただの整数だけどそれだと扱いにくいから
その整数に別名をつけて辞書のキーとしてアクセスしている
つまり辞書アクセスのブラケット
2019/04/11(木) 08:30:56.96ID:2hHpC+zg
>>807 numba が実行パスに入っていないんじゃない?
2019/04/11(木) 09:49:25.40ID:tmgsPVDK
出所の分からないコードの意図をあてろとか国語の先生より酷いw
818デフォルトの名無しさん
垢版 |
2019/04/11(木) 11:40:43.08ID:wTPWcZPk
>>815
どうも 
819デフォルトの名無しさん
垢版 |
2019/04/11(木) 18:45:56.86ID:wTPWcZPk
vs codeでpythonインタープリターが出てこないんですが、ただwindowsにpythonとvs codeをインストールしただけではダメなんでしょうか
820デフォルトの名無しさん
垢版 |
2019/04/11(木) 19:03:34.81ID:wTPWcZPk
失礼
こんなかんじになります
普通はpython3.7みたいなのが出ると思うんですが
http://or2.mobi/index.php?mode=image&;file=232963.jpg
2019/04/11(木) 19:48:39.13ID:YXnFgkew
その画面のselect interpreterを実行すれば、インストールされてるpythonが表示されてそれを選択すればいい
pythonが表示されてないなら、おそらくpathにpythonのインタプリタへのパスかわ入ってない
822デフォルトの名無しさん
垢版 |
2019/04/11(木) 19:56:18.22ID:wTPWcZPk
ありがとうございます
表示されました
823デフォルトの名無しさん
垢版 |
2019/04/11(木) 19:57:04.68ID:wTPWcZPk
ちなみにインタープリターの設定とpythonエクステンションの違いは何ですか?
エクステンションだけでもターミナルでの実行はできますね
2019/04/11(木) 21:01:26.25ID:YXnFgkew
ターミナルで実行出来るのはvscodeのextensionとは全く関係なし
vscode上でインタープリタを設定する必要があるのは、バージョン違いの複数のインタープリタを使い分けるため

windowsは知らんけど、macとlinuxなら仮想環境を作ってそれを有効化してからコマンドラインでvscodeを起動すれば自動でインタプリタの設定をしてくれるからおすすめ
825デフォルトの名無しさん
垢版 |
2019/04/12(金) 01:09:36.08ID:sGBe8Pmp
 ├ main.py
 ├ dir
 │ ├ sub1.py
 │ └ sub2.py

上記のような階層で
main.pyとsub1.pyとsub2.pyに同じ外部ライブラリを複数個importしています。

importするライブラリを変更する場合
main.pyとsub1.pyとsub2.pyのそれぞれのimport文を書き換えなければならず手間がかかります。
これを1つのファイルだけ書き換えればいいようにする方法はありますか?
2019/04/12(金) 01:20:32.23ID:wLs4Sov9
1つのファイルにimportするファイルを書いて、それをimportするようにすれば良いだけだよ
827デフォルトの名無しさん
垢版 |
2019/04/12(金) 07:32:53.20ID:65SYOe81
>>824
pygameなんですが、その仮想環境?のインタープリターを設定したら、インテリセンスが機能するようになりました
この(仮想環境)とついてるpythonとついていないパイソンの違いはなんですか?
828デフォルトの名無しさん
垢版 |
2019/04/12(金) 08:10:26.88ID:65SYOe81
やっぱ機能してないですね
2019/04/12(金) 08:57:27.71ID:acwwceBV
状況は正確に書いてくれないと考えてる途中で前提が覆ってうんざりする
もう止めた
2019/04/12(金) 08:59:32.68ID:WO5SLys3
Windows10・WSL・Ubuntu 16.04 では、

which python3
/usr/bin/python3

file /usr/bin/python3
/usr/bin/python3: symbolic link to python3.5

つまり、python3 というコマンドの実体は、python3.5。
例えばこれを、python3.6 に切り替えたい場合、仮想環境を使う

Ruby の仮想環境のrbenv(anyenv)が有名

anyenv には、pyenv(python), nodenv(node)などもあるけど、
python には標準で、venv が入っている
831デフォルトの名無しさん
垢版 |
2019/04/12(金) 09:07:05.29ID:D41kXTgJ
>>830
嘘書くなよ
違うバージョン使うなら別に実行環境構築しないとだめ
venvはそこからの話で使いたいバージョンをベースに仮想環境をつくる
2019/04/12(金) 10:56:41.78ID:EM6Ln3LK
>>830
死ね
■ このスレッドは過去ログ倉庫に格納されています