我想让这段代码继续下去吗?我尝试将x ==放在str上,但是我认为那不可能是答案。
while True:
x = int(input("Please enter an integer:
"))
if x < 0:
x = 0
print('Negative changed to zero')
elif x == 0:
print('Zero')
elif x == 1:
print('Single')
else:
x == str :
input("please enter a string")
答案 0 :(得分:0)
循环的第一行可以具有以下两种效果之一:保证x
为int
,或者引发ValueError
。捕获错误并重新启动循环,或者继续使主体知道x
是int
while True:
x_str = input("Please enter an integer: ")
try:
x = int(x)
except ValueError:
print("{} is not an integer; please try again".format(x))
continue
if x < 0:
x = 0
print('Negative changed to zero')
elif x == 0:
print('Zero')
elif x == 1:
print('Single')
答案 1 :(得分:0)
我会尽力猜测您想要什么。我认为您想要一个类似于输入的函数,但有一个奇怪的变化:如果输入的(x)可以解释为整数,则它将返回整数本身,而不是x。例如,如果用户输入-72,则返回-72,而不是'-72'。当然,如果用户输入了无法解释为整数的内容,则该函数无需修改即可返回它。
当然,Python是强类型的,它不提供这样的功能,但是编写起来很容易。如果您只想接受看起来“普通”的整数,则甚至不需要try
。
def intput(prompt=''):
entered = input(prompt)
if entered[entered.startswith('-'):].isdigit(): return int(entered)
else: return entered
while True:
x = intput('Please enter an integer: ')
if x < 0:
x = 0
print('Negative input changed to zero')
elif x == 0: print('Zero')
elif x == 1: print('Single')
elif isinstance(x, str): print('You have entered a string that cannot be '
'easily interpreted as an integer.')