【发布时间】:2019-11-22 14:48:30
【问题描述】:
所以我正在使用 Python 3.7 制作控制台应用程序;这在很大程度上取决于输入 (wowz)。
应用程序的功能是在两个整数变量的值之间“交换”。这不是问题所在,问题是当我尝试通过使用几个“if 语句”检查输入的 data-type 来验证用户的输入时,无论是什么使用“input()”函数的用户输入;输入的 data-type 将始终定义为 ""
我只是想让这小块 ART 动态运行。 (我希望 input() 函数动态检测输入的数据类型并将其分配给变量?请)
P.S.:我什么都没尝试,因为我发现的都是无用的;我猜。 (告诉我使用 int() 函数,例如:{
# Works just fine when input is fully composed of integral numbers.
a = int(input("Enter an integer as a value for A: "))
} (编辑以下第 5 行)
我不想使用 int() 函数;因为它会导致一堆问题,如果用户的输入是一个不完全由整数组成的字符串。 (值错误)
def swap(x, y):
return y, x
aValid = 1
bValid = 1
a = input("Enter an integer as a value for A: ")
if (str(type(a)) != "<class 'int'>"):
print("Please take us seriously, we're watching you.\n")
aValid = 0
while (aValid == 0):
a = input("Enter an integer as a value for A: ")
if str(type(a)) != "<class 'int'>":
print("Please take us seriously, we're watching you.\n")
aValid = 0
else:
aValid = 1
# ! To be worked on:
b = input("Now, Please enter the value for B: ")
print("A = " , a)
print ("B = ", b)
a, b = swap(a, b)
print("Now:\nA = ", a)
print("B = ", b)
我希望 Python 3.7 (32bit) 中的 input() 函数能够动态检测输入的 data-type 并分配它到变量以及输入本身。
但实际发生的是它总是将输入的 data-type 分配为 ""; (之前没有空格,)导致程序进入无限循环,这让我很头疼;我的愚蠢。
【问题讨论】:
-
在 Python 2.7 中,
inputused 这样做;raw_input返回一个字符串,input()等价于eval(raw_input())。正确的做法是在try语句中简单地调用a = int(a)并在无法将值解析为整数时捕获可能的ValueError。
标签: python python-3.x input dynamic integer