我想知道为什么运行此代码时出现此错误:
# 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'
此代码应该接受输入和返回信息。提前谢谢!
答案 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
希望这有帮助。