如何在Python中打印数据类型?

如何在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* (我不确定这是否是您想要的

我是Python新手。我写了一个简单的代码来了解输入的数据类型。 这是我的密码。 我给出了两个将转换为“字符串”的输入。使用“If”条件匹配输入数据类型。但我的输出很奇怪。我不知道它为什么在这里打印唯一的整数。谁能帮我解决这个问题

我也在这里添加了我的输出

代码:

输出

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