具有输入和整数的ValueError

时间:2018-08-19 13:47:12

标签: python

我正在学习使用zyBooks的编程类,因此我不确定(由于此解释器的工作方式)我的问题是我只是在做一些愚蠢的事情还是在zyBooks上不能正常工作。 / p>

它要求我输入基本的用户输入字符串。这些是说明:

  

使用来自用户输入的字符串分配user_str,并提示:'输入字符串:'

     

提示-替换?在以下代码中:user_str =?('输入字符串:')

我相信我已经遵循了它给我的指示,但是我遇到了这个错误。谢谢您的帮助!

1
2 '''Your Solution Goes here '''
3 user_str = int(input'Enter a string: '))
4 print()
5 
6 print(user_str)

我得到的错误:

Exited with return code 1
Traceback (most recent call last):
  File "main.py", line 3, in <module>
    user_str = int(input('Enter a string: '))
ValueError: invalid literal for int() with base 10: 'Hello!'

2 个答案:

答案 0 :(得分:2)

您不能将Hello!变成int。摆脱输入周围的int(...)

注意:如果字符串是有效数字,则可以将字符串转换为整数。

答案 1 :(得分:1)

我对您的问题有点困惑,所以我将回答我可以做出的两种解释。

如果要用户输入字符串(例如:Hello World),则要将其另存为字符串,并保存在变量中,因此请忽略将尝试使用的int()函数(并且失败)将其转换为整数:

user_str = input('Enter a string: ')

如果您想要一个整数(例如:231),问题是您正在要求用户输入字符串,因此更好的解决方案是:

user_str = int(input('Enter a number: '))

或:

user_str = int(input('Enter a integer: '))

这种情况的正确方法是尝试将其转换为整数,如果失败则打印一条消息(可能您尚未在课堂上看到此信息):

correct_inp = False
while not correct_inp:
    inp_str = input('Enter a integer: ')
    try:
        user_str = int(imp_str)
        correct_inp = True
    except:
        print("Ups, this is not an integer, try again")
print(user_str)