Skip to content

数据类型

数据类型概览

python 中有以下数据类型

20220430103848

下面我们分别输出这些类型,具体的类型使用方法,我们会在后面单独讲

整型

py
a = 1
# 输出结果:<class 'int'>
print(type(a))

浮点型

py
a = 1.1
# 输出结果:<class 'float'>
print(type(a))

布尔

py
a = True
# 输出结果: <class 'bool'>
print(type(a))

字符串

py
a = "1234"
# 输出结果:<class 'str'>
print(type(a))

列表:

py
a = [1, 2, 3, 4]
# 输出结果:<class 'list'>
print(type(a))

元组

py
# 输出结果:<class 'tuple'>
a = (1, 2, 3, 4)
print(type(a))

字典

py
a = {"name": "xiaoqiang", "age": 18}
# 输出结果:<class 'dict'>
print(type(a))

集合

py
a = {1, 2, 3, 4}
# 输出结果:<class 'set'>
print(type(a))

输入输出

输出函数

python 中输出内容我们使用 print 函数,前面的代码中我们也使用过这个函数,但是前面的代码仅仅是简单的输出,我们这小节详细的讲一下 print 这个输出函数,先来体验一下格式化输出

py
name = 'nodeing.com'
print('我正在%s这个网站学习python课程' % name)

%s 表示字符串输出,name 变量的值会替换掉%s 这个位置,上面代码的输出结果为

我正在nodeing.com这个网站学习python课程

上面我们仅仅是输出了字符串内容,还可以输出数字,数字精确到某位小数输出等都可以被支持,下面我们来看一下有哪些输出格式

格式符号转换
==%s==字符串
==%d==有符号的十进制整数
==%f==浮点数
%c字符
%u无符号十进制整数
%o八进制整数
%x十六进制整数(小写 ox)
%X十六进制整数(大写 OX)
%e科学计数法(小写'e')
%E科学计数法(大写'E')
%g%f 和%e 的简写
%G%f 和%E 的简写

举个例子:输出 2 位小数

py
a = 9.1234567
print('您购买商品的价格是:%.2f' % a)

输出结果

浮点数输出两位小数:9.12

我们使用输出,最常见的还是输出数字或者字符串模板,有更简便的方式支持输出,后面大家尽可能用这种方式

py
name = "zhangsan"
age = 18
print(f'我的名字叫:{name},我的年龄是:{age}')

用上面的方式比较简单,但是需要你的 python 版本大于等于 3.6

输入函数

当你的程序需要和用户交互,需要用户输入内容才能往下执行的时候,就需要用到输入函数,先来看一个案例,让用户输入用户名和密码

py
username = input("请输入用户名:")
password = input("请输入密码:")
print(f'您的用户名是:{username}, 您输入的密码是: {password}')

注意哈,上面的代码,我们不要使用 code runner 运行,我们要在终端里面去运行才有交互的效果

输出命令来运行 python 文件, 这里表示运行 01_hello.py 这个文件

python .\01_hello.py

运行完成后,让你输入用户名和密码,最后程序会帮你打印出结果

PS E:\workspace\python\python-basic> python .\01_hello.py
请输入用户名:zhangsan
请输入密码:123456
您的用户名是:zhangsan, 您输入的密码是: 123456

注意:input 接收的任何数据默认都是字符串数据类型, 这个要记住,我们在下个小节中讲数据类型转换需要注意到这个特点

数据类型转换

数据类型转换的意思就是把不同的类型转换成你想要的类型,然后参与计算,数据类型转换需要内置的函数支持,可以参考下面的表

函数说明
==int(x [,base ])==将 x 转换为一个整数
==float(x )==将 x 转换为一个浮点数
complex(real [,imag ])创建一个复数,real 为实部,imag 为虚部
==str(x )==将对象 x 转换为字符串
repr(x )将对象 x 转换为表达式字符串
==eval(str )==用来计算在字符串中的有效 Python 表达式,并返回一个对象
==tuple(s )==将序列 s 转换为一个元组
==list(s )==将序列 s 转换为一个列表
chr(x )将一个整数转换为一个 Unicode 字符
ord(x )将一个字符转换为它的 ASCII 整数值
hex(x )将一个整数转换为一个十六进制字符串
oct(x )将一个整数转换为一个八进制字符串
bin(x )将一个整数转换为一个二进制字符串

你只需要记住数据类型怎么转换就行,上面的函数记不住到时候查询就行,举个例子

py
a = input("请输入数字a:")
b = input("请输入数字b:")

print(a + b)

运行结果

PS E:\workspace\python\python-basic> python .\01_hello.py
请输入数字a:1
请输入数字b:2
12

前面我们说过,input 输入的内容都是字符串类型,如果我们要做数字的加法,需要把 input 输入的内容转成数字类型,因此,我们需要修改上面的代码

py
a = int(input("请输入数字a:"))
b = int(input("请输入数字b:"))

print(a + b)

运行结果

PS E:\workspace\python\python-basic> python .\01_hello.py
请输入数字a:1
请输入数字b:2
3

这次的运行结果符合我们的预期,接下来的案例需要大家自行运行

py
# 1. float() -- 转换成浮点型
intnum = 1
print(float(intnum))
print(type(float(intnum)))

# 2. str() -- 浮点数转成字符串
floatnum = 10.0
print(type(str(floatnum)))

# 3. tuple() -- 将列表转成元组
lis = [10, 20, 30]
print(tuple(lis))
print(type(tuple(lis)))


# 4. list() -- 将元组转成列表
t1 = (100, 200, 300)
print(list(t1))
print(type(list(t1)))

# 5. eval() -- 将字符串中的数据转换成Python表达式原本类型
str1 = '10'
str2 = '[1, 2, 3]'
str3 = '(1000, 2000, 3000)'
print(type(eval(str1)))
print(type(eval(str2)))
print(type(eval(str3)))