Python 第一个if条件为work,但elif条件为';T
当我试图执行代码时,第一个Python 第一个if条件为work,但elif条件为';T,python,python-3.x,if-statement,conditional-statements,Python,Python 3.x,If Statement,Conditional Statements,当我试图执行代码时,第一个if条件是work,而elif条件不是work。在条件语句之后,except条件正常工作 data = input("Type the number: ") try: integer = int(data) decimal = float(data) if type(integer) == type(int()): for x in range(1,11,1): print("{} X {} = {}".f
if
条件是work,而elif
条件不是work。在条件语句之后,except
条件正常工作
data = input("Type the number: ")
try:
integer = int(data)
decimal = float(data)
if type(integer) == type(int()):
for x in range(1,11,1):
print("{} X {} = {}".format(integer,x,(integer*x)))
elif type(decimal) == type(float()):
for x in range(1,11,1):
print("{} X {} = {}".format(decimal,x,(decimal*x)))
except (TypeError,ValueError):
print("Please type a number")
通过阅读您的代码,我相信您正在尝试判断用户输入的数据是否为整数。 为此,请参阅:
data=input(“键入数字:”)
尝试:
十进制=浮点(数据)#如果数据不是浮点的表示形式,则会产生错误
如果decimal.is_integer():
整数=整数(十进制)
对于范围(1,11,1)内的x:
打印(“{}X{}={}”。格式(整数,X,(整数*X)))
其他:
对于范围(1,11,1)内的x:
打印(“{}X{}={}”。格式(十进制,X,(十进制*X)))
除了(TypeError、ValueError):
打印(“请键入一个数字”)
关于代码的另一个注意事项:
int()
将抛出错误或返回int
。因此,您的第一个条件总是True
通过阅读您的代码,我相信您试图判断用户输入的数据是否为整数。
为此,请参阅:
data=input(“键入数字:”)
尝试:
十进制=浮点(数据)#如果数据不是浮点的表示形式,则会产生错误
如果decimal.is_integer():
整数=整数(十进制)
对于范围(1,11,1)内的x:
打印(“{}X{}={}”。格式(整数,X,(整数*X)))
其他:
对于范围(1,11,1)内的x:
打印(“{}X{}={}”。格式(十进制,X,(十进制*X)))
除了(TypeError、ValueError):
打印(“请键入一个数字”)
关于代码的另一个注意事项:
int()
将抛出错误或返回int
。因此,您的第一个条件总是True
您不需要将输入转换为int
和float
,只转换为其中一个。由于data
是str
,您可以使用isdigit
检查所有字符是否都是数字,因此它是否是int
。您也不应该将类型与==
进行比较,请使用isinstance
data = input("Type the number: ")
try:
if data.isdigit():
number = int(data)
else:
number = float(data)
if isinstance(number, int):
for x in range(1, 11, 1):
print("{} X {} = {}".format(number, x, (number * x)))
elif isinstance(number, float):
for x in range(1, 11, 1):
print("{} X {} = {}".format(number, x, (number * x)))
except (TypeError, ValueError):
print("Please type a number")
如果您没有对信息类型进行任何处理,请使用一个循环而不进行检查
data = input("Type the number: ")
try:
if data.isdigit():
number = int(data)
else:
number = float(data)
for x in range(1, 11, 1):
print("{} X {} = {}".format(number, x, (number * x)))
except (TypeError, ValueError):
print("Please type a number")
您也可以将输入直接转换为
float
,但对于int,结果将类似于246.0
。您不需要将输入转换为int
和float
,只转换为其中一个。由于data
是str
,您可以使用isdigit
检查所有字符是否都是数字,因此它是否是int
。您也不应该将类型与==
进行比较,请使用isinstance
data = input("Type the number: ")
try:
if data.isdigit():
number = int(data)
else:
number = float(data)
if isinstance(number, int):
for x in range(1, 11, 1):
print("{} X {} = {}".format(number, x, (number * x)))
elif isinstance(number, float):
for x in range(1, 11, 1):
print("{} X {} = {}".format(number, x, (number * x)))
except (TypeError, ValueError):
print("Please type a number")
如果您没有对信息类型进行任何处理,请使用一个循环而不进行检查
data = input("Type the number: ")
try:
if data.isdigit():
number = int(data)
else:
number = float(data)
for x in range(1, 11, 1):
print("{} X {} = {}".format(number, x, (number * x)))
except (TypeError, ValueError):
print("Please type a number")
您也可以将输入直接转换为
float
,但对于ints,结果将类似于246.0
。为什么它会工作integer
始终是一个整数,那么为什么它会是假的呢?为了让@Daniel Roseman注释更清楚,任何浮点都可以转换为int:type(int(1.2323))==type(int())
,所以elif
永远不会执行。嗨@Arsallan,如果你找到了一个有价值的答案,请将其标记为已接受,或者在你的问题中增加更多的精确性:)为什么它会起作用integer
始终是一个整数,那么为什么它会是假的呢?为了让@Daniel Roseman注释更清楚,任何浮点都可以转换为int:type(int(1.2323))==type(int())
,所以elif
永远不会执行。嗨@Arsallan,如果你找到了一个有价值的答案,请将其标记为已接受,或者在你的问题中增加更多的精确性,否则:)