Python 以10为基数的int()的文本无效:'';错误

Python 以10为基数的int()的文本无效:'';错误,python,function,loops,python-3.x,base,Python,Function,Loops,Python 3.x,Base,我大约5周前才开始编写代码,我正在为我的游戏开发课程编写代码,我在一个问题上陷入了困境。当我运行代码时,我得到了“ValueError:invalid literal for int(),以10为底:“”错误,我不确定我做错了什么。我将在下面发布我的代码。感谢您的帮助。谢谢大家! start = 0 def addition(num1): return num1 + num1 def square(num): print("I'm in square") return

我大约5周前才开始编写代码,我正在为我的游戏开发课程编写代码,我在一个问题上陷入了困境。当我运行代码时,我得到了“ValueError:invalid literal for int(),以10为底:“”错误,我不确定我做错了什么。我将在下面发布我的代码。感谢您的帮助。谢谢大家!

start = 0
def addition(num1):
    return num1 + num1

def square(num):
    print("I'm in square")
    return num * num

def display(message):
    """Display game instuctions"""
    print(message)
def instructions():
    """Display game instuctions"""
    print("Welcome to the world's greatest game")


def main():
    instructions()
    scores = [("Roger", 3456), ("Justin", 2320), ("Beth", 1422)]

    start = input("Would you like to view the high score options? y/n ")
    if start == "y":
        print("""\
        Hello! Welcome to the high scores!
        Here are the current high score leaders!:
        """)
        print(scores)
        print("""\n\
        0 - Sort high scores
        1 - Add high score
        2 - Reverse the order
        3 - Remove a score
        4 - Square a number
        5 - Add 2 numbers together
        """)
        option = int(input())
        while option < 6:
            start = int(input("Please enter your selection")) 
            print(scores)
            if option == 0:
                scores.sort()
                print("These are the scores sorted alphabetically")
                print(scores)
            if option == 1:
                print(scores)
                print("Please enter your name and score; After entering your name, hit the return key and enter your score")
                name = input()
                score = int(input())
                entry = (name,score)
                scores.append(entry)
                print(scores)
            if option == 2:
                print(scores)
                scores.reverse()
                print("\nHere are the scores reversed")
                print(scores)
            if option == 3:
                print(scores)
                print("Please enter the high score you would like to remove. After typing the name, hit the return key and enter the score")
                name1 = input()
                score1 = int(input())
                remove = (name1,score1)
                scores.remove(remove)
                print(scores)
            if option == 4:
                val = int(input("Give me a number to square"))
                sqd = square(val)
                print(sqd)
            if option == 5:
                val0 = int(input("Give me one number"))
                val1 = int(input("Give me another number"))
                addi = (val0 + val1)
                print(addi)

main()
start=0
def添加量(num1):
返回num1+num1
def平方(num):
打印(“我在广场上”)
返回num*num
def显示(信息):
“”“显示游戏说明”“”
打印(信息)
def指令():
“”“显示游戏说明”“”
打印(“欢迎来到世界上最伟大的游戏”)
def main():
指示()
分数=[(“罗杰”,3456),(“贾斯汀”,2320),(“贝思”,1422)]
开始=输入(“您想查看高分选项吗?是/否”)
如果开始==“y”:
打印(“”)\
你好!欢迎来到高分!
以下是当前的高分领导者!:
""")
打印(分数)
打印(“”\n\
0-排序高分
1-加高分
2-颠倒顺序
3-删除分数
4-将一个数字平方
5-将两个数字相加
""")
option=int(输入())
选项<6时:
start=int(输入(“请输入您的选择”))
打印(分数)
如果选项==0:
scores.sort()
打印(“这些是按字母顺序排列的分数”)
打印(分数)
如果选项==1:
打印(分数)
打印(“请输入您的姓名和分数;输入姓名后,按回车键并输入您的分数”)
名称=输入()
分数=整数(输入()
条目=(姓名、分数)
分数。附加(条目)
打印(分数)
如果选项==2:
打印(分数)
分数。反向()
打印(\n分数是否颠倒)
打印(分数)
如果选项==3:
打印(分数)
打印(“请输入要删除的高分。键入名称后,按回车键并输入分数”)
名称1=输入()
score1=int(输入())
删除=(名称1,分数1)
分数。删除(删除)
打印(分数)
如果选项==4:
val=int(输入(“给我一个平方数”))
sqd=平方(val)
打印(sqd)
如果选项==5:
val0=int(输入(“给我一个数字”))
val1=int(输入(“给我另一个数字”))
addi=(val0+val1)
打印(addi)
main()

当您的输入不是数字时,可能会发生这种情况,因此
int()
将失败

例如:

>>> int(input())
hey
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'hey'
>>int(输入())
嘿
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:基数为10的int()的文本无效:“嘿”

要解决此问题,您可以通过
try/except
子句和循环不断请求输入,直到它成为
int

这很可能发生在您的代码中,因为您在循环开始时两次请求用户输入

...
option = int(input())
while option < 6:
  start = int(input("Please enter your selection")) 
...
如果要在输入非整数时显示某种错误并退出程序,可以使用
try except
块:

...
try:
  option = int(input("Please enter your selection")) 
  while option < 6:  
    ...
    option = int(input("Please enter your selection")) 
except ValueError:
  print("Error!")
。。。
尝试:
option=int(输入(“请输入您的选择”))
选项<6时:
...
option=int(输入(“请输入您的选择”))
除值错误外:
打印(“错误!”)
  • 输入字符串值并尝试将字符串转换为int
  • e、 g


    您必须输入字符串值并尝试将字符串转换为int。哪一行出现异常以及该状态的用户输入是什么?您正在尝试将空字符串转换为int。检查您的
    input
    呼叫。您的
    option=option=int(输入(“请输入您的选择”)
    option=int(输入(“请输入您的选择”))
    有什么不同吗?
    ...
    try:
      option = int(input("Please enter your selection")) 
      while option < 6:  
        ...
        option = int(input("Please enter your selection")) 
    except ValueError:
      print("Error!")
    
    >>> int(raw_input())
    e
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: invalid literal for int() with base 10: 'e'
    >>> 
    
    if option == 0:
        # Do coding for option 0
    elif option==1:
        # Do coding for option 1