如何使变量接受字符串

时间:2018-12-06 03:55:06

标签: python-3.x

我想让这段代码继续下去吗?我尝试将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")

2 个答案:

答案 0 :(得分:0)

循环的第一行可以具有以下两种效果之一:保证xint,或者引发ValueError。捕获错误并重新启动循环,或者继续使主体知道xint

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.')