在简单的Python程序中处理用户输入

时间:2014-09-06 09:39:32

标签: python

我正在制作一个程序,使用列表为用户提供1到10的随机整数作为直径,他们必须使用Pi计算周长。到目前为止,除了输入错误之外,一切都工作得很好。当用户回答问题时,无论答案是什么,都表示不正确。

有机会获得一些帮助吗?这是我的代码:

import turtle
import random
turtle.speed("fastest")


pi = 3
minNumber = 4
maxNumber = 10
score = 0
listNmbers = []

a = [1,3,5,7,9]

red = random.random()
green = random.random()
blue = random.random()

num1 = random.choice(a)


def drawSquare():
    for i in range(4):
        turtle.begin_fill()
        turtle.pendown()
        turtle.forward(50)
        turtle.left(90)
        turtle.end_fill()
    turtle.right(360/correct)


turtle.penup()
turtle.setpos(-700,-200)
turtle.fillcolor("green")


def askCir(cirAnswer):
    try: 
        user = input("What is the circumference of a circle if the diameter is " + str(num1) + " and Pi is 3?")
        cirAnswer = int(user)   
    except:
        print("Please input a number only!")
        cirAnswer = 0;
        cirAanswer = askCir(cirAnswer)



print("Welcome! What is your name??")
name = str(input())
print("Hello", name,"you need to calculate the circumference of a circle when given a diameter. To calculate the circumference, use the equasion; Pi x Diameter (Pi = 3")

def getNumbers():
    num = input("how many questions would you like to answer? (Pick between 5 and 10)")
    try:
        numbers = int(num)
    except:
        print("That is not a number!")
        return getNumbers()
    goodInput = minNumber < numbers < maxNumber

    if not goodInput:
        print ("That is not between 5 and 10. Please input an integer between 5 and 10.")
        return getNumbers()
    else:
        return numbers
numbers = getNumbers()    


for i in range(numbers):
    red = random.random()
    green = random.random()
    blue = random.random()
    turtle.color(red,green,blue)
    num1 = random.choice(a)
    correct = num1 * 3

    cirAnswer = 0;
    cirAnswer = askCir(cirAnswer)
    print(str(correct))

    if cirAnswer == correct:
        print("That's Correct! Well Done")
        score = score + 1
    else:
        print("Sorry that is incorrect")

    for k in range(correct):
        turtle.color(red,green,blue)
        drawSquare()

    turtle.penup()
    turtle.forward(150)

1 个答案:

答案 0 :(得分:0)

return cirAnswer中缺少askCir语句。如果用户间无效答案多次,askCir中应该有一个循环。