gpt4 book ai didi

python - 乘法游戏 python

转载 作者:行者123 更新时间:2023-12-04 22:14:45 24 4
gpt4 key购买 nike

我应该用 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 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()

最佳答案

你提到的问题

My code keeps repeating the same set of numbers



这并不奇怪,因为您将 num_1num_2 (1) 设置在 main 函数之外和 (2) 在主 while 循环之外。一个简单的修正是:
    while count < gamenumber:
num_1 = random.randint(1,10)
num_2 = random.randint(1,10)

My code doens't stop at the number asked for:



同样,这并不奇怪,因为您永远不会增加 count 计数器:您总是有 count < gamenumber
一个简单的修正是:
    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 表示 add 1 to count *in place* 。您也可以执行 count = count + 1 但它的效率稍低,因为您创建了一个您并不真正需要的临时变量 ( count + 1 )。

其他问题
  • 你从不定义 wrong
  • 在函数外定义 gamenumber。虽然在这种情况下这不是问题,但使用 gamenumber 作为 main 的参数会更容易,因为它是驱动游戏的变量。
  • 您的 result 在循环中定义。您可能希望为每个好的答案增加一个计数器,并在主循环之后打印结果。
  • 您的 result 计算为 correct/wrong 。虽然我确定您的意思是 correct/gamenumber ,但您必须格外小心:countgamenumber 是整数,整数除法与浮点数除法不同。例如, 2/3 给出 0 ,但 2/float(3) 给出 0.6666666 。所以,我们必须在某处使用浮点数。
  • 你想打印一个百分比:你的 result 应该是 result=correct*100./gamenumber
  • 您不希望 gamenumber 为 0,否则您的 result 将是未定义的。

  • 所以,总而言之,你的 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.")

    关于python - 乘法游戏 python ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12452438/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com