python的数据类型详解
python基础
- 认识python基本类型
- python的注释风格有三种(也可以说是两种)
- python的对齐方式
- python的多行语句折断
- 字符串类型的“计算”
- 列表的常见用法
- 元组的常见用法
- 集合set的常见用法
- 字典的常见用法
- bytes类型
- python的输入输出
- python中的引用
认识python基本类型
python的数据类型一般不会去定义,作为python的数据类型是比较特殊的,python数据是使用赋值作为数据类型的定义,所以我们列出一些基本的数据类型。(ps:详解可看目录直接跳!)
a = 10 # 整型,python没有长整型
b = 1.1 # 浮点型
c = "hello" # 字符串类型
e = True # 布尔型
f = [1,2,3,4,5] # 列表
g = (1,2,3,4,5) # 元组
h = {'Google', 'Taobao', 'Runoob'} # 集合
i = {"one":1,"two":2} # 字典
在以上数据结构中不可变数据:整型、字符串类型、元组
可变数据:列表、字典、集合
使用type()
的内置函数可以打印当前的数据类型。也可以使用isinstance([数据],[检测类型])
来判断数据是否为这个类型。
两者的区别就是,type()不会认为子类是一种父类型。
isinstance()则会认为子类是一种父类型。
在python3中,bool是int的子类,所以使用
isinstance(bool,int)
结果为trueTrue和false可以和数字相加,true=1,false=0,当用于判断时却不是那么回事。
print(isinstance(bool,int))
print(True+1)
print(False+1)
print(True is 1)
print(False is 0)
python的注释风格有三种(也可以说是两种)
# 使用#号注释
"""
文本注释
"""
'''
文本注释
'''
python的对齐方式
域其他语言不同的是,python使用 [空格]
来表示缩进,而且是根据不同的空格数字来表示同一个代码块。
if True:print("True")
else:print("False")
如果后续代码的缩进格式存在问题,则编译器会报错。
python的多行语句折断
python中如果一条语句太长了可以使用\
进行折断,实现多行语句。
total = item_one + \item_two + \item_three
在[],{},或者()中的多行语句不需要使用反斜杠\
。
字符串类型的“计算”
python和其他语言一样都是使用反斜杠\
来进行转义字符,使用r可以让反斜杠不发生转义。
在python中字符串类型不仅可以用来进行+
法运算,还可以用于*
法运算,而乘法的作用是重复字符串。
在字符串中可以使用[::]
来截取字符串,还可以设置步长,需要注意的是,0
代表第一个字符的下标,而-1
代表最后一个字符。
string = "123456"
print(string)
print(string*2) # 重复两次字符串
print(string[0:-1]) # 输出字符串
print(string[1:4]) # 输出第二个字符串开始到第五个字符串结束
print(string[2:]) # 从第三个字符开始输出所有字符串
print(string[1:6:2]) # 从第二个字符开始输到第七个字符,步长为2
print(string + "hello") # 字符串相加
# \n 的作用
print("12345\n6789")
print(r"12345\n6789") # 打印原始字符串
列表的常见用法
列表其实和字符串差不多,不过列表是比字符串好用的,列表可以完成大多数数据集合类的数据结构实现。
组成列表的数据结构可以不相同,可以是字符串,整形,浮点型以及列表(嵌套)。
列表使用[]
来存储数据,使用,
分割数据,列表和字符串一样都可以用于分割元素。
# 变量[下标1:下标2]
arr = ['abcd','123',234,2.23,'hello']
arr2 = [123,"pig"]
print(arr) #打印整个列表
print(arr[0]) #打印列表第一个元素
print(arr[1:3]) #打印列表第二个元素到第四个元素
print(arr[2:]) #打印列表第三个元素到第最后
print(arr2*2) #重复打印列表
print(arr+arr2) #打印两个列表相加
列表中的元素可以引用下标进行改变。
arr = ['abcd','123',234,2.23,'hello']
arr[0] = "world"
print(arr) #打印整个列表
arr[2:4]=[]
print(arr) #打印整个列表
元组的常见用法
元组与列表类似,不过不能进行修改。
元组在()
中,使用,
隔开。
元组中的类型可以相同也可以不同。
tuple = ('abcd', 123, 2.23, 'runoob', 70, 899)
tinytuple = (123, 'runoob')print(tuple) # 输出完整元组
print(tuple[0]) # 输出元组的第一个元素
print(tuple[3:5]) # 输出从第四个元素开始到第五个元素
print(tuple[3:]) # 输出从第四个元素开始的所有元素
print(tinytuple * 2) # 输出两次元组
print(tuple + tinytuple) # 连接元组
虽然元组是一个不可变的对象,但是可以包含可变对象list
和其他可变对象。
当构造一个空元组时和单一元素元组时需要注意:
tup1 = () #空元组
tup2 = (20,) #一个元素的元组
注意:这里需要添加,
不然系统只会觉得你创建了一个其他类型的数据。
和上面一样
1.元组也可以使用切片
2.元组也可以使用
+
和*
法
集合set的常见用法
python的集合是一种无序,可变的数据类型,用于存储唯一的元素。
集合中元素不会重复,可以进行
交集,并集,差集
等集合操作。使用
{}
表示集合,使用,
分割集合中元素。同样的,也可以使用set()
函数创建集合。空集合只能使用
set()
,空{}
是用于创建空字典。
sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Google'}print(sites) # 输出集合,重复的元素被自动去掉# 成员测试
if 'Runoob' in sites :print('Runoob 在集合中')
else :print('Runoob 不在集合中')# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')print(a)print(a - b) # a 和 b 的差集print(a | b) # a 和 b 的并集print(a & b) # a 和 b 的交集print(a ^ b) # a 和 b 中不同时存在的元素
字典的常见用法
字典是python中一个内置数据类型。
字典是一个无需对象的集合,字典中的元素是通过键来存取的,而不是通过下标。字典相当于hashmap
.
使用
{}
标识,是一个无序的键key:值value的集合,注意 key 必须使用不可变类型,在同一个字典中,每一个 key 都是唯一的,如果有相同的两个键,就会自动覆盖旧key,一般取数据都是使用键值。
dict1 = {}
dict1['one'] = "www.baidu.com"
dict1['two'] = "www.163.com"
print(dict1) # 输出完整的字典
print(dict1['one']) # 输出键为one的值
print(dict1.keys()) # 输出所有键
print(dict1.values()) # 输出所有值
bytes类型
在python中,bytes表示的是0~255
之间的整数。创建bytes数字的方式有很多种,常见的是用`b`作为前缀。也可以使用bytes()函数将其他类型的数字转换为bytes类型。
bytes 类型通常用于处理二进制数据,比如图像文件、音频文件、视频文件等等。在网络编程中,也经常使用 bytes 类型来传输二进制数据。
x = bytes("hello",encoding="utf-8")
# bytes 同样也支持切片、查找、替换等操作、
x = b"hello"
y = x[1:3]
print(y)
z = x+b"world"
print(z)
数据类型转换方法,常用方法是[数据类型](要转换的数据)
y = 123
str(y)
print(type(y))
python的输入输出
# 输入,尽管用户输入的是整数,input会将其当作字符串类型
num = input('请输入一个整数')
#输出
print(num)
#如果要将输入的整数进行相加,需要改变其数据类型
num = int(num)
# 在输出时,使用前置f和不使用前置f的区别
a = 10
b = 20
print('a+b={a+b}')
print(f'a+b = {a+b}')
# 使用了前置f可以读取{}的内容,而不使用,是将其作为普通字符串的
print
默认输出是换行的,如果不需要换行,需要在末尾添加end = " "
print(10,end = " ")
print(20,end = " ")
如需重复输入则需要使用循环。
题目示例:请输入三个浮点数,求他们的和
a = input("请输入一个浮点数")
b = input("请输入一个浮点数")
c = input("请输入一个浮点数")
# 类型转换
a = float(a)
b = float(b)
c = float(c)
#打印
print(f"a+b+c={a+b+c}")
因为浮点数在python中是没有确切的值,所以python会自动将起作为一个无限小数
而如果你想要得到确切的值,可以使用f{num:.[几位小数]f}
# 保留小数点后两位
print(f"a+b+c={a+b+c :.2f}")
python中的引用
import与from……import是用于导入相应模块的。
比如需要导入somemodule
可以写作import somemodule
。
从某个模块中导入某个函数可以写作from somemodule import somefunction
。
从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
将某个模块中的全部函数导入,格式为: from somemodule import *
在后续写代码时会频繁使用。