dポイントプレゼントキャンペーン実施中!

プログラミング初心者です。randomモジュールの使い方を勉強し、数字あてゲームを作っているのですが、質問があります。
正解の数字の桁数を3桁に指定したとします。
random.randint(0,999)とすると、032は32になってしまいます。
これだと答えに32を入力すると正解になってしまいますが、「032」と入れないと正解にならないようにしたいのですが、どうすればいいでしょうか。コード例を添えていただけると助かります。
一つ、ストリング型を使った方法を思いついたのですが、こんなに面倒なことをしなくてもいいはずだと思い質問させていただきました。↓
import random
keta1 = str(random.randint(0,9))
keta2 = str(random.randint(0,9))
keta3 = str(random.randint(0,9))
seikai = keta1+keta2+keta3

guess = str (input ("3桁の数字を入力してください"))

if keta1 == guess[0] and keta2 == guess[1] and keta3 ==guess[2]:
____print ("正解!")
else:
____print ("不正解")
____print ("正解は:",seikai)

A 回答 (4件)

以下のようにしてください。


seikaiには,"000"~"999"の文字列が格納されます。
ーーーーーーーーーーーーーーーーーーーーーーー
# coding: UTF-8
import random
num = random.randint(0, 999)
seikai = format(num,"03d")
print(seikai) #確認用
    • good
    • 1

#coding: cp932


# ↑は使用環境に合わせて

import random

seikai = random.randint(0,999)
#print(seikai)

while True:
  guess = input("3桁の数字を入力してください:")
  if guess.isdigit():
    break
  print("数字以外が入力されています。再入力してください。")


if len(guess) == 3 and int(guess) == seikai:
  print ("正解!")
else:
  print ("不正解")
  print ("正解は:{0:03d}".format(seikai))
  #print("正解は:%03d" % seikai)
    • good
    • 0

#!/usr/bin/env python



# -*- coding: utf-8 -*-

import random

if __name__ == '__main__':
  seikai = random.randint(0, 999)
  guess = input("3桁の数字を入力して下さい")
  if len(guess) == 3 and seikai == int(guess):
    print("正解")
  else:
    print("不正解\n正解は{0}".format(seikai))
    • good
    • 0

ごめんね、pythonは知らないんだけど



整数をstring型に変換できるなら
整数のフォーマットを指定して変換できないのかな?

例えば整数を表示するときに桁数を指定して表示できるなら
3桁を指定して表示した場合、032と表示されると思う
それをそのまま変換に流用はできないかな?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!