【发布时间】:2019-03-05 05:59:25
【问题描述】:
这个程序会问用户一系列关于两个数字的问题。这两个数字将在 1 到 10 之间随机生成,并且会询问用户 10 次。在这 10 个问题结束时,程序将显示用户从这些问题中答对了多少。 每个问题应随机决定询问乘积、总和或差。将询问的问题和验证用户输入的功能分开。
我尝试使用三个乘积、总和或随机差来生成。我尝试使用z = random.randint(1, 4) 是从 1 是产品、2 是总和或 3 是差中选择,然后我使用如果变量 z 是 1,然后做产品数学或者如果 var z 是 3,那么应该是这样的区别x / y,但我想不出它完成它。当我第一次使用产品运行时,我得到了预期的结果,但它可以工作,所以我只需要添加包括总和和差异。
EXPECTED OUTPUT 与产品(一些分数测试不正确):
> python3 rand3.py
What is 3 x 4
Enter a number: 12
What is 3 x 7
Enter a number: 27
What is 6 x 3
Enter a number: 18
What is 7 x 10
Enter a number: 70
What is 9 x 10
Enter a number: 90
What is 9 x 7
Enter a number: 72
What is 5 x 9
Enter a number: 54
What is 6 x 8
Enter a number:
Incorrect Input!
Enter a number: 48
What is 1 x 5
Enter a number: 5
What is 10 x 3
Enter a number: 30
You got 7 correct out of 10
我的作品仅用于产品(成功):
import random
def askNum():
while(1):
try:
userInput = int(input("Enter a number: "))
break
except ValueError:
print("Incorrect Input!")
return userInput
def askQuestion():
x = random.randint(1, 100)
y = random.randint(1, 100)
print("What is " + str(x) + " x " +str(y))
u = askNum()
if (u == x * y):
return 1
else:
return 0
amount = 10
correct = 0
for i in range(amount):
correct += askQuestion()
print("You got %d correct out of %d" % (correct, amount))
我目前的工作:(我正在努力像预期的输出一样添加总和和差异
更新:在预期输出与产品配合良好之后,我尝试使用 1-3 为 z 添加新的随机整数,这意味着我使用 1 表示产品,2 表示对于 sum 和 3 是通过给定随机选择使用 if 语句的差异。我在这方面很挣扎,这是我停下来想办法随机做数学的地方,因为我现在是 Python 的新手一个多月了。
import random
def askNum():
while(1):
try:
userInput = int(input("Enter a number: "))
break
except ValueError:
print("Incorrect Input!")
return userInput
def askQuestion():
x = random.randint(1, 10)
y = random.randint(1, 10)
z = random.randint(1, 4)
print("What is " + str(x) + " "+ str(z)+ " " +str(y))
u = askNum()
if (z == 1):
x * y #product
return 1
else if (z == 2):
x + y #sum
return 1
else if (z == 3):
x / y #difference
return 1
else
return 0
amount = 10
correct = 0
for i in range(amount):
correct += askQuestion()
print("You got %d correct out of %d" % (correct, amount))
输出:
md35@isu:/u1/work/python/mathquiz> python3 mathquiz.py
File "mathquiz.py", line 27
if (z == 1):
^
IndentationError: unexpected indent
md35@isu:/u1/work/python/mathquiz>
对于当前的输出,我仔细检查了更正的 Python 格式,所有内容都是敏感的,并且仍然与运行输出相同。任何帮助都会得到解释。 (我希望我的英语可以听得懂,因为我是聋子)我从星期六开始这个,比预期的准时见面。
【问题讨论】:
-
尝试将
else if替换为elif。现在可以用了吗? -
在 u=askNum() 之后你的 if 块缩进了错误
-
好的@Lomtrur,我已将所有
else if替换为elif,但它仍然是相同的输出,没有任何改变? -
@mamun,我很困惑,但
u=askNum()是用户输入的答案...
标签: python python-3.x math random symbolic-math