如何使输入变量接受字符串和整数?

时间:2019-12-05 17:13:10

标签: python input

我有一个代码,可以根据用户输入的值以不同的颜色绘制点,但是我想创建一个if / else类型的语句,如果用户不知道所需的值,则将以一种颜色绘制图形。该代码可以在下面看到:

test = []

start = 0
end = int(input("How many non primary sources do you have?\n(If you do not know this value please enter x:)")) - 1

if end == x:
    end == len(test)
    start2 = 0
    end2 = len(test)
    plt.scatter(Alpha[start:end], Beta[start:end], color=['green'])
    plt.scatter(Alpha[start2:end2], Beta[start2:end2], color=['red'])
    plt.show()
else:
    start2 = end + 1
    end2= len(test) - 1
    plt.scatter(Alpha[start:end], Beta[start:end], color=['green'], marker = '+', label = 'Non primary source')
    plt.scatter(Alpha[start2:end2], Beta[start2:end2], color=['red'], marker = '*', label = 'Primary source')
    plt.legend()
    plt.show()

在此之前,有很多代码我剪掉了,因为它们不需要了,但还是有一种方法可以允许用户输入数字和字符串,以便在输入时不知道他们有多少个主源可以键入“ x”并且代码不会崩溃?

1 个答案:

答案 0 :(得分:1)

让它们输入0或-1表示未知值。 或者,您将输入作为字符串并检查其x是否为x的首字母,如果不是,则尝试将其强制转换为int。

end = input("How many non primary sources do you have?\n(If you do not know this value please enter x:)")
if end =="x":
    #plot with one color
else:
    try:
        end_int=int(end)
        #plot with more colors
    except ValueError:
        #catch input that is neither x nor an int