如何在Python中打印数据类型?
我是Python新手。我写了一个简单的代码来了解输入的数据类型。 这是我的密码。 我给出了两个将转换为“字符串”的输入。使用“If”条件匹配输入数据类型。但我的输出很奇怪。我不知道它为什么在这里打印唯一的整数。谁能帮我解决这个问题 我也在这里添加了我的输出 代码: 输出:如何在Python中打印数据类型?,python,Python,我是Python新手。我写了一个简单的代码来了解输入的数据类型。 这是我的密码。 我给出了两个将转换为“字符串”的输入。使用“If”条件匹配输入数据类型。但我的输出很奇怪。我不知道它为什么在这里打印唯一的整数。谁能帮我解决这个问题 我也在这里添加了我的输出 代码: 输出: Enter A Value abc Enter B value def A is = abc B is = def A and B is Integer *Program End* (我不确定这是否是您想要的
Enter A Value
abc
Enter B value
def
A is = abc
B is = def
A and B is Integer
*Program End*
(我不确定这是否是您想要的)您可以使用type()函数在python中打印某物的数据类型,如下所示:
var = 25
print(type(var))
输出:
<class 'int'>
5 is type of <class 'int'>
2.9 is type of <class 'float'>
Hello is type of <class 'str'>
type()方法将返回类类型
a=5
print(a,"is type of",type(a))
b=2.9
print(b,"is type of",type(b))
c='Hello'
print(c,"is type of",type(c))
输出:
<class 'int'>
5 is type of <class 'int'>
2.9 is type of <class 'float'>
Hello is type of <class 'str'>
5是一种
2.9是一种
Hello是一种
问题出在这一行:
if (type(a)==int, type(b)==int)
^这适用于所有条件(如果条件)
这不是在if
语句中使用多个条件的方法。事实上,这只是一个元组。所以你说的是如果(0,0)
。所以据
默认情况下,除非对象的类定义了
返回False的bool()方法或len()方法
当使用对象调用时,返回零。这里是大多数的
被视为错误的内置对象:
- constants defined to be false: None and False.
- zero of any numeric type: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
- empty sequences and collections: '', (), [], {}, set(), range(0)
在这种情况下,您将使用元组和len()!=0
因此,当检查其真值时,它将始终返回真值
。因此,检查多个真值条件的正确方法是使用:
^注意:我在其他条件中添加了type()
,因为它们不存在
现在。这里还有一个问题:
a=str(input("Enter A Value \n"))
b=str(input("Enter B value \n"))
您正在转换为str
输入,该输入已经是str
,因为input
为您提供str
,因此您将始终获得:
A和B是字符串
因为它们都是str
。因此,您可以使用str
内置函数:
if a.isnumeric() and b.isnumeric():
print('A and B is Integer')
elif a.isalpha() and b.isalpha():
print('A and B is String')
elif a.replace('.','',1).isdigit() and b.replace('.','',1).isdigit():
print('\nA and B is Float')
第一个是,然后是最后一个检查它是否为浮点
:将
替换为1,并检查它是否保持为
输出:
100 is a <class 'int'>
Python is a <class 'str'>
5.973 is a <class 'float'>
100是一个
Python是一种
5.973是一个
假设:1<代码>输入
给你一个字符串;二,。然后将其显式传递给str
,为什么不清楚a
和b
的数据类型?这是否回答了您的问题@jonrsharpe和所有的比较只是测试一个非空元组的真实性……您可能想要打印((键入(a)=int,键入(b)==int))
(注意所需的双括号)以查看您实际检查的内容。还要注意,至少有一个元素的容器被认为是正确的。-我试过用你的方式。但是,我的输出仍然是相同的“A和B是整数”我的问题是:我知道我在那里给出了字符串值。但是我想通过“elif”语句进行匹配,我想在那里得到“A和B作为字符串”的输出,我想将数据类型与输入匹配。我把字符串作为输入。当我使用“elif”语句时,我检查我的输入数据类型,并期望输出仅为“String”。但它以“整数”的形式给出,程序结束。
100 is a <class 'int'>
Python is a <class 'str'>
5.973 is a <class 'float'>