2014-09-06 6 views
-1

사용자에게 목록을 사용하여 1에서 10까지의 임의의 정수를 지름으로 제공하는 프로그램을 만들고 Pi를 3으로 사용하여 원의 둘레를 계산해야합니다. 내 코드에서 사용자가 정수 대신 문자열을 입력하면 프로그램은 사용자에게 정수를 입력하도록 요청합니다. 그런 다음 사용자가 정답을 입력하면 프로그램에서 오답이라고 표시합니다. 나는 그것이 옳다고 말하는 프로그램이 필요하다. 도움을받을 수있는 기회가 있으십니까? 여기 내 코드는 다음과 같습니다.Python 프로그램에서 사용자 입력 처리

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 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) 
    return cirAnswer 
    cirAnswer = 0; 
    cirAnswer = 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 float (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) 
+0

파이썬을 반환했다 : //en.wikipedia.org/wiki/Tail_call) 최적화. 재귀를 사용하는 대신 루프에서'askCir'을 호출해야합니다. –

답변

0

프로그램의 오타 때문에 작동하지 않습니다.

cirAanswer = askCir(cirAnswer) 필요가 기본적으로 새 응답이 할당되고 있었다

cirAnswer = askCir(cirAnswer)

될 수있는 새로운 cirAanswer 변수 0은 항상 [꼬리 전화] (HTTPS가없는

+0

내게 어리석은 방법, 고마워요. – Brandon

관련 문제