Python 乘法游戏蟒蛇
我应该用python编写一个程序,询问用户需要多少个乘法问题,然后随机给他们1到10的问题。然后它吐出他们正确的百分比。我的代码不断重复同一组数字,而且不会停在用户要求的数字上。你能告诉我怎么了吗Python 乘法游戏蟒蛇,python,random,multiplication,Python,Random,Multiplication,我应该用python编写一个程序,询问用户需要多少个乘法问题,然后随机给他们1到10的问题。然后它吐出他们正确的百分比。我的代码不断重复同一组数字,而且不会停在用户要求的数字上。你能告诉我怎么了吗 import random import math gamenumber = int(input("How many probems do you want?\n")) num_1 = random.randint(1,10) num_2 = random.randint(1,10) def ma
import random
import math
gamenumber = int(input("How many probems do you want?\n"))
num_1 = random.randint(1,10)
num_2 = random.randint(1,10)
def main():
random.seed()
count = 0
while count < gamenumber:
guess = int(input("What is " + str(num_1) + "x" + str(num_2) + "."))
answer = str(num_1*num_2)
correct = guess == answer
if guess == answer:
print("Correct!")
else wrong:
print("Sorry, the answer is", answer, ".")
result = correct/wrong
print("You got ", "%.1f"%result, "of the problems.")
main()
随机导入
输入数学
gamenumber=int(输入(“您想要多少个问题?\n”))
num_1=random.randint(1,10)
num_2=random.randint(1,10)
def main():
random.seed()
计数=0
当计数<游戏编号时:
猜测=int(输入(“什么是”+str(num_1)+“x”+str(num_2)+”))
答案=str(num_1*num_2)
正确=猜测=答案
如果猜测==答案:
打印(“正确!”)
其他错误:
打印(“对不起,答案是”,答案是“.”)
结果=正确/错误
打印(“您得到了问题的”、“%.1f”%result“。)
main()
您只分配给num_1
和num_2
一次。他们的价值观永不改变;你的数字如何变化?此外,您不增加计数
,因此其原始值始终与游戏号
进行比较
你需要给你的两个变量分配一个新的随机数并增加你的计数器。对我来说最突出的问题是你有一个无限循环;你不会在任何地方增加
count
。你忘记在循环中增加count
,并且num\u 1
和num\u 2
不会得到新值
Python是一种过程语言。它从上到下执行方法体中的语句。这一行:
num\u 1=random.randint(1,10)
是一个赋值语句。它并不将num_1
等同于评估其值的随机过程;它通过调用random.randint(1,10)
对表达式求值,并将该值赋给num\u 1
,一次
必须强制再次调用random.randint以获得另一个随机数,并且每次要更改num_1的值时,必须让语句为num_1赋值
import random
import math
“问题”的拼写是错误的
将接下来的两行移动到循环中
num_1 = random.randint(1,10)
num_2 = random.randint(1,10)
def main():
random.seed()
count = 0
while count < gamenumber:
这算是正确答案吗?应该是正确+=猜测==答案
correct = guess == answer
if guess == answer:
print("Correct!")
你的意思是数一数错误答案的数目吗<代码>错误+=猜测!=回答
correct = guess == answer
if guess == answer:
print("Correct!")
其他错误:
是语法错误吗其他:#错误
可能吗
else wrong:
print("Sorry, the answer is", answer, ".")
这不是计算百分比的方法。您应该使用correct*100/gamenumber
和dedent来匹配print()
此外,您在任何地方都没有递增count
。它更容易使用
for count in range(gamenumber):
而不是你提到的while
循环问题
我的代码不断重复同一组数字
这并不奇怪,因为您将num_1
和num_2
(1)设置在main
函数之外,以及(2)设置在mainwhile
循环之外。一个简单的修正是:
while count < gamenumber:
num_1 = random.randint(1,10)
num_2 = random.randint(1,10)
while count < gamenumber:
num_1 = random.randint(1,10)
num_2 = random.randint(1,10)
guess = int(input("What is " + str(num_1) + "x" + str(num_2) + "."))
answer = str(num_1*num_2)
count += 1
这里,count+=1
表示将1添加到count*in-place*
。您也可以执行count=count+1
,但由于您创建了一个实际上并不需要的临时变量(count+1
),因此效率会稍低一些
其他问题
- 您从未定义过错误的
- 您可以在函数外部定义
。虽然在这种情况下这不是一个问题,但是使用gamenumber
作为gamenumber
的参数会更容易,因为它是驱动游戏的变量main
- 您的
在循环中定义。您可能希望为每个好答案增加一个计数器,并在主循环后打印结果结果
- 您的
计算为结果
。虽然我确信你的意思是正确/错误
,但你必须格外小心:correct/gamenumber
和count
是整数,除法整数与除法浮点数不同。例如,gamenumber
给出2/3
,但0
给出2/float(3)
。所以,我们必须在某个地方使用浮子0.66666
- 您想打印一个百分比:您的
应该是结果
result=correct*100./gamenumber
- 您不希望
为0,否则您的gamenumber
结果将无法定义
main
函数应该是
def main(gamenumber):
random.seed()
count = 0
correct = 0
while count < gamenumber:
num_1 = random.randint(1,10)
num_2 = random.randint(1,10)
guess = int(input("What is " + str(num_1) + "x" + str(num_2) + "."))
answer = str(num_1*num_2)
count += 1
if guess == answer:
correct += 1
print("Correct!")
else wrong:
print("Sorry, the answer is", answer, ".")
if gamenumber > 1:
result = correct * 100./gamenumber
print("You got ", "%.1f"%result, "of the problems.")
def main(游戏编号):
random.seed()
计数=0
正确=0
当计数<游戏编号时:
num_1=random.randint(1,10)
num_2=random.randint(1,10)
猜测=int(输入(“什么是”+str(num_1)+“x”+str(num_2)+”))
答案=str(num_1*num_2)
计数+=1
如果猜测==答案:
正确+=1
打印(“正确!”)
其他错误:
打印(“对不起,答案是”,答案是“.”)
如果游戏编号>1:
结果=正确*100./gamenumber
打印(“您得到了问题的”、“%.1f”%result“。)
如何重新分配这些号码?真不敢相信我竟然忘了伯爵!这就解释了。但是我是python新手,我不知道如何在每次python询问乘法问题时将数字重新分配为随机数,就像第一次那样。好吧,太棒了,我知道了,现在每次数字都是随机的:)。但是,你能帮我找出用户正确回答问题的百分比吗?所以这就是他们得到它的次数除以它的总数
def main(gamenumber):
random.seed()
count = 0
correct = 0
while count < gamenumber:
num_1 = random.randint(1,10)
num_2 = random.randint(1,10)
guess = int(input("What is " + str(num_1) + "x" + str(num_2) + "."))
answer = str(num_1*num_2)
count += 1
if guess == answer:
correct += 1
print("Correct!")
else wrong:
print("Sorry, the answer is", answer, ".")
if gamenumber > 1:
result = correct * 100./gamenumber
print("You got ", "%.1f"%result, "of the problems.")