AttributeError:' int'对象没有属性'替换'

时间:2016-12-30 03:40:22

标签: python input

我想知道为什么运行此代码时出现此错误:

# Ask user input
# Find out network device id for network device with ip or hostname, index 3 is device id
# In the loop until 'id' is assigned or user select 'exit'
id = ""
device_id_idx = 3
while True:
    user_input = input('=> Select a number for the device from above to show IOS config:')
    user_input= user_input.replace(" ","") # ignore space
    if user_input.lower() == 'exit': 
        sys.exit()
    if user_input.isdigit():
        if int(user_input) in range(1,len(device_show_list)+1):
            id = device_list[int(user_input)-1][device_id_idx]
            break
        else:
            print ("Oops! number is out of range, please try again or enter 'exit'")
    else:
        print ("Oops! input is not a digit, please try again or enter 'exit'")
# End of while loop

输出错误:

user_input= user_input.replace(" ","") # ignore space
AttributeError: 'int' object has no attribute 'replace'

此代码应该接受输入和返回信息。提前谢谢!

1 个答案:

答案 0 :(得分:0)

如果您使用的是Python3.x input将返回一个字符串,您可以尝试调试代码以检查user_input

的类型
print(type(user_input))

如果您使用的是Python2.x input,那么对您的代码来说可能不是一个好方法 因为input函数会评估您的输入。如果您的输入为1 2,则会得到SyntaxError: invalid syntax,如果您的输入为1,则会得到int个对象,这就是你得到错误的原因。

我建议使用raw_input,因为raw_input正是用户键入的内容并将其作为字符串传回。

您可以阅读this

希望这有帮助。