【问题标题】:applying a QUIT function to mini game in python将QUIT函数应用于python中的迷你游戏
【发布时间】:2021-03-03 09:38:02
【问题描述】:

所以我刚开始使用python,我收到了以下任务;

我需要创建一个小游戏,其中游戏从 0-10 中选择一个随机数。 现在我得到了大部分代码,但似乎我在实现 Quit 选项时一直遇到问题。

所以关键是玩家可以随时给出Quit作为答案然后游戏退出。 看来我不能以正确的方式归属Quit

输入退出命令 (nee) 时,我不断收到以下错误消息;

**Traceback (most recent call last):
  File "C:\Users\aarabsa\PycharmProjects\projecten1\Lotto1.2.py", line 22, in <module>
    guess = int(input('Probeer opnieuw of typ nee om het spel te verlaten: '))
ValueError: invalid literal for int() with base 10: 'nee'**

各位大神可以给点建议吗?

import random        
import sys

print("Hello, wat is uw naam?")

naam = input()

print("Kan je de juiste cijfer raden tussen 0 en 10?")

answer = random.randint(0, 10)

guess = int(input('geef uw gekozen nummer: '))


TotalGuesses = 0

while guess != answer:

   TotalGuesses += 1

   if guess < answer:
    
     print('fout antwoord!')
    
     guess = int(input('Probeer opnieuw of typ nee om het spel te verlaten: '))
    
     if guess in ['nee']:
        
        print('Jammer dat je nu al opgeeft ' + naam + ', tot de volgende keer!')
        
        sys.exit()

   elif guess > answer:
    
        print('fout antwoord!')
    
        guess = int(input('Probeer opnieuw of typ nee om het spel te verlaten: '))
    
        if guess in ['nee']:
        
           print('Jammer dat je nu al opgeeft ' + naam + ', tot de volgende keer!')
    
        sys.exit()

     if guess == answer:
    
         break

if guess == answer:

print('Correct ' + naam + '! Je hebt ' + str(TotalGuesses) + 'foutief geraden voordat je de juiste antwoord kon vinden!')

【问题讨论】:

  • 您正在尝试将文本 "nee" 转换为整数 - 这显然不起作用。您需要检查这是否是输入之前转换它

标签: python python-3.x exit valueerror


【解决方案1】:

只有在您首先确定用户没有输入该字符串时,您才应该转换为 int。例如:

guess = None  # So it's defined
guess_string = input('geef uw gekozen nummer: ')
if guess_string.lower() == 'nee':
    ...  # tell the user goodbye, or whatever
    sys.exit()
else:
    guess = int(guess_string)

此外,您可以在转换并将其分配给guess 之前检查他们的输入是否为有效数字。 Here 解释了如何做到这一点。

由于您在程序中多次获得用户输入,因此您可以将所有内容封装在一个函数中并调用它,这样您的代码中就不会出现重复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-16
    • 1970-01-01
    相关资源
    最近更新 更多