[英]Python (pyscripter)
以下代码未终止并不确定原因。
def main():
pass
if __name__ == '__main__':
main()
import random # imports random
def GuessingGame (): # creating def function for GuessingGame
yes = ['y', 'Y', 'Yes', 'yes'] # setting variables
rng = random.Random ()
numbertoguess = rng.randrange (1,10) # setting random number between 1 and 10
correctguesses = 0
winpercent = 0
attempts = 0
name = input('What is your name? ') # asks user for name and introduces the game
print('Nice to meet you', name, '! I am going to pick a random number and you will have 3 tries to guess it.'
'Good luck!')
while attempts < 3: # creates a function
guess = int(input('Guess the number I have chosen between 1 and 10. '))
attempts += 1
if guess == numbertoguess: # tells user if guess is right
print('Great guess, youre right', name, '!')
correctguesses += 1 # adds on to correct guesses
winpercent = float((correctguesses*100)/attempts)# determines percent of correct answers
print ('You have' , correctguesses, 'correct guesses!')
print ('You are right', winpercent, 'of the time.')
elif guess > numbertoguess: # tells if guess is too high
print('The number is lower than', guess, "!")
elif guess < numbertoguess: # tells if guess is too low
print('The number is higher than', guess, "!")
else: # tells when you have lost
print('Wrong, the number was', numbertoguess, '!')
print ('You have' , correctguesses, 'correct guesses!')
print ('You are right', winpercent, 'of the time.')
gameover = input("Do you want to play again? Yes or No? ")
while gameover is 'Yes' or 'yes': GuessingGame () #oportunity to play again
else: exit() # ends games
print ('The program will now terminate. Goodbye.')
GuessingGame () # calls game
def main():
pass
if __name__ == '__main__':
main()
import random # imports random
# Your 2 while loops were not indented causing them not to know what the attempt variable, made in the GuessingGame function was.
def GuessingGame (): # creating def function for GuessingGame
yes = ['y', 'Y', 'Yes', 'yes'] # setting variables
rng = random.Random ()
numbertoguess = rng.randrange (1,10) # setting random number between 1 and 10
correctguesses = 0
winpercent = 0
attempts = 0
name = raw_input('What is your name? ') # asks user for name and introduces the game (inputs used in strings must be raw.)
print('Nice to meet you', name ,'! I am going to pick a random number and you will have 3 tries to guess it.'
'Good luck!')
while attempts < 3: # creates a function
guess = int(input('Guess the number I have chosen between 1 and 10. '))
attempts += 1
if guess == numbertoguess: # tells user if guess is right
print('Great guess, youre right', name, '!')
correctguesses += 1 # adds on to correct guesses
winpercent = float((correctguesses*100)/attempts)# determines percent of correct answers
print ('You have' , correctguesses, 'correct guesses!')
print ('You are right', winpercent, 'of the time.')
elif guess > numbertoguess: # tells if guess is too high
print('The number is lower than', guess, "!")
elif guess < numbertoguess: # tells if guess is too low
print('The number is higher than', guess, "!")
else: # tells when you have lost
print('Wrong, the number was', numbertoguess, '!')
print ('You have' , correctguesses, 'correct guesses!')
print ('You are right', winpercent, 'of the time.')
gameover = raw_input("Do you want to play again? Yes or No? ")
while gameover is 'Yes' or 'yes': GuessingGame () #oportunity to play again
else: exit() # ends games
print ('The program will now terminate. Goodbye.')
GuessingGame () # calls game`enter code here`
您的代码无法正常工作的原因有两个。 第一个是while循环不在GuessingGame函数内部,从而导致他们不知道在那里产生的变量是什么。 第二个原因是,如果要在字符串中使用输入,则必须使用raw_input()而不是普通的input()。 希望对您有所帮助!
我相信while gameover is 'Yes' or 'yes': GuessingGame ()
您的问题一直存在while gameover is 'Yes' or 'yes': GuessingGame ()
如果用户输入yes至他们是否想再次玩游戏,则您将一遍又一遍地调用该函数,这是已知的作为递归。 如果我是正确的,这会将尝试次数重置为0,从而永远不会退出while循环。 我不确定这是否是您想要的,而是while gameover is 'Yes' or 'yes': continue
编写while gameover is 'Yes' or 'yes': continue
不是调用GuessingGame() while gameover is 'Yes' or 'yes': continue
实际上将返回while循环的顶部。
另外,当函数主体刚刚通过时,我不太确定定义main()函数的重要性。 相反,你应该写你GuessinGame()以上,如果名称 ==“ 主 ”,然后让你的while
循环之下,如果名称 ==“ 主 ”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.