質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Kivy

Kivyは、Pythonを用いたNUI開発のためのオープンソースフレームワーク。マルチタッチなど多くの入力に対応したNUIアプリなどを開発することができます。多くの環境で動作するクロスプラットフォームです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1920閲覧

pythonのrandom.randintの引数について

BBJapan

総合スコア7

Kivy

Kivyは、Pythonを用いたNUI開発のためのオープンソースフレームワーク。マルチタッチなど多くの入力に対応したNUIアプリなどを開発することができます。多くの環境で動作するクロスプラットフォームです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/02/02 04:08

編集2020/02/02 04:24

kivyで作ったスロットマシンのコードです。15,16行目の

python

1def change_value(self,dt): 2 self.value = random.randint(0,9) 3

の引数のdtはなぜ必要なのでしょうか。試しにdtを消して実行すると

`Traceback (most recent call last):
File "main.py", line 53, in <module>
SlotApp().run()
File "/Users/babayoshimichi/.pyenv/versions/3.6.5/lib/python3.6/site-packages/kivy/app.py", line 855, in run
runTouchApp()
File "/Users/babayoshimichi/.pyenv/versions/3.6.5/lib/python3.6/site-packages/kivy/base.py", line 504, in runTouc

hApp
EventLoop.window.mainloop()
File "/Users/babayoshimichi/.pyenv/versions/3.6.5/lib/python3.6/site-packages/kivy/core/window/window_sdl2.py", l
ine 747, in mainloop
self._mainloop()
File "/Users/babayoshimichi/.pyenv/versions/3.6.5/lib/python3.6/site-packages/kivy/core/window/window_sdl2.py", l
ine 479, in _mainloop
EventLoop.idle()
File "/Users/babayoshimichi/.pyenv/versions/3.6.5/lib/python3.6/site-packages/kivy/base.py", line 339, in idle
Clock.tick()
File "/Users/babayoshimichi/.pyenv/versions/3.6.5/lib/python3.6/site-packages/kivy/clock.py", line 591, in tick
self._process_events()
File "kivy/_clock.pyx", line 384, in kivy._clock.CyClockBase._process_events
File "kivy/_clock.pyx", line 414, in kivy._clock.CyClockBase._process_events
File "kivy/_clock.pyx", line 412, in kivy._clock.CyClockBase._process_events
File "kivy/_clock.pyx", line 167, in kivy._clock.ClockEvent.tick
TypeError: change_value() takes 1 positional argument but 2 were given`

というエラーが出ます。ご教示お願いいたします。

python

1from kivy.app import App 2from kivy.clock import Clock 3from kivy.properties import NumericProperty 4from kivy.uix.boxlayout import BoxLayout 5from kivy.uix.button import Button 6from kivy.uix.label import Label 7import random 8 9class SlotLabel(Label): 10 value = NumericProperty(0) 11 font_size = 48 12 evt = None 13 def on_value(self,*args): 14 self.text = str(self.value) 15 def change_value(self): 16 self.value = random.randint(0,9) 17 18class SlotButton(Button): 19 counter = 0 20 font_size = 28 21 def on_press(self): 22 upper_box = self.parent.children[1] 23 if self.counter == 0: 24 for lbl in upper_box.children: 25 lbl.evt = Clock.schedule_interval(lbl.change_value, 0.05) 26 self.text = 'Stop' 27 elif self.counter == 4: 28 for lbl in upper_box.children: 29 lbl.value = 0 30 self.text = 'Start' 31 else: 32 lbl = upper_box.children[3-self.counter] 33 lbl.evt.cancel() 34 if self.counter == 3: 35 self.text = 'Reset' 36 self.counter += 1 37 if self.counter == 5: 38 self.counter = 0 39 40class SlotApp(App): 41 def build(self): 42 root_box = BoxLayout(orientation='vertical') 43 upper_box = BoxLayout(size_hint_y=9) 44 45 upper_box.add_widget(SlotLabel(text='0')) 46 upper_box.add_widget(SlotLabel(text='0')) 47 upper_box.add_widget(SlotLabel(text='0')) 48 49 root_box.add_widget(upper_box) 50 root_box.add_widget(SlotButton(text='Start')) 51 return root_box 52 53SlotApp().run()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2020/02/02 04:15

エラーは全文掲載された方が回答がつきやすくなるかと思います。
BBJapan

2020/02/02 04:21

ご指摘ありがとうございます。エラー全文掲載しました。 よろしくお願いいたします。
guest

回答1

0

ベストアンサー

Clock.schedule_intervalが、引数を1つ取る関数を期待していますので(Kivyのドキュメント)、メソッド内で使わなくても渡してくる引数を受け取れる必要があります。

投稿2020/02/02 04:18

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BBJapan

2020/02/02 04:28

なぜdtが必要なのか理解できました! 回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問