前提・実現したいこと
初めて質問を投稿させていただきます。及ばない点があるかもしれませんが、よろしくお願いします。
Pythonで変数a、b、cを1~100のランダムな数字を指定したいです。(複数の変数を一斉にランダムな数字に指定できるようにしたいです。)
やろうと思えば「試したこと①」にかいてある通りできるのですが、変数の種類が増えたときに対応が面倒だと感じたので避けたいです。
どうか力をお貸しいただければと思います。
###試したこと①
もちろん
Python
1import random 2 3a = random.randint(1,100) 4b = random.randint(1,100) 5c = random.randint(1,100) 6 7print(a) 8print(b) 9print(c) # 出力はランダムな1~100から選ばれた数字だった 10
をすればいいのですが、先述の通り変数がd、e、...と増えた時に何行もrandom~~を書くのは面倒です。
###試したこと②
私はリストを作ってfor~inで代入すればいいと思いました。
リストを作れば、変数が増えた時にもリストに追加すればいいだけなので、名案かと思われました。
Python
1import random 2 3a = 0 4b = 0 5c = 0 # ここまでで変数をリストにするためにひとまず変数a,b,cに0を代入。 6items = [a,b,c] #変数をリスト化 7for item in items: 8 item = random.randint[1,100] # 変数を順番にrandom.randintで決めているつもり 9 10print(a) 11print(b) 12print(c) # 結果はa、b、c全て0でした。
※インデントの仕方がわからなかったのでスペースで代用しました。申し訳ありません。※
とすればいいと思いましたが、だめでした。
変数を0と指定しなければいいのかと思い、a = 0
~c = 0
を消すと、そもそもa、b、cが変数と認識されていないのでエラーが出ました。
追記:これをすると変数は変わらず、リストがitems = [45,8,89]
のようになっていました。よく考えてみると当たり前でしたね。
###試したこと③
defを使って何かできないかと思い、
Python
1import random 2 3def random_number(): 4 k = random.randint(1,100) 5 return k 6 7a = 0 8b = 0 9c = 0 10items = [a,b,c] 11# このあと何か上手に書きたかったが、思いつかずに断念。 12
としましたが、結局「試したかったこと②」と同じになると思い、解決にはなりませんでした。
補足情報(FW/ツールのバージョンなど)
何を書けばよいかあまりわからず、申し訳ありません。
参考にしたものは
・Progate のスライド
・書籍:Pythonでつくるゲーム開発入門講座 ソーテック社
です。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/16 04:49