0
from random import randint
firstnumber=randint (1,9)
print(firstnumber)
secondnumber=randint (1,9)
print(secondnumber)
a=  str(firstnumber) + str(secondnumber)
print (a)
numbers= input("Enter 2 numbers")

b = int(numbers)
if b== int(a):
        print ("You have won 10000 dollars")
elif int(b[1])==int(a[0]) and int(b[0])==int(a[0]):
        print ("You have won 3000 dollars")
**elif int(b[0])== int(a[0]) or int(b[0])==int(a[1]) or int(b[1])==int(a[0]) or int(b[1])== int[1]:**
        print ("You have won 1000 dollars")
else:
        print ('Try again')

プログラムは、2 つの乱数を決定し、それらを組み合わせて宝くじ番号を作成することになっています。これらの 2 つの数字は同じであってはならず、これらの 2 つの数字が同じである場合、プログラムは別の 2 つの数字を生成して新しい宝くじ番号を作成する必要があります。これは宝くじの当選番号であるため、プログラムは乱数を出力しません。

これは、宝くじの番号が 53 の場合の報酬システムの仕組みです。人が正しい番号を順番に推測した場合 (つまり 53)、その人は $10000 を獲得する必要があります。逆の順序で正しい数字を推測した場合 (つまり 35) は、$10000 を獲得する必要があります。 $3000 を獲得し、数字の 1 つ (つまり、37 または 63 または 59 または 45) を正しく当てると、$1000 を獲得するはずです。それ以外の場合、プログラムは出力する必要があります (Try Again)。

私は基本的に自分のプログラムを修正する方法を知りたいです (入力が $10,000 を獲得する入力以外の場合、太字の行に何か問題があるため、プログラムは失敗します。別の宝くじの当選番号を生成する方法も知りたいです)。 randint が生成する 2 つの数字が同じで、入力をチェックして、入力に宝くじ番号の 1 つが含まれているかどうかを確認する方法も知りたいです。

4

2 に答える 2

0

文字列を操作し、わかりやすい名前の変数を使用すると、プログラムの動作が読みやすくなります。コメントインライン。

from random import randint
firstnumber=randint (1,9)
print(firstnumber)
secondnumber=randint (1,9)
print(secondnumber)
a=  str(firstnumber) + str(secondnumber)
print (a)
# change to raw_input - numbers will be a string
numbers= raw_input("Enter 2 numbers")

# split the numbers up - 1st digit, second digit
lottery1, lottery2 = a[0], a[1]
guess1, guess2 = numbers[0], numbers[1]

# apply your logic
# both digits, correct order
if lottery1 == guess1 and lottery2 == guess2:
     print ("You have won 10000 dollars")
# both digits, reverse order
elif lottery1 == guess2 and lottery2 == guess1:
     print ("You have won 3000 dollars")
# one digit
elif guess1 in (lottery1, lottery2)  or guess2 in (lottery1, lottery2):
     print ("You have won 1000 dollars")
else:
     print ('Try again')
于 2013-10-11T13:45:40.297 に答える