Python数据类型
基本数据类型
多个变量赋值
Python允许你同时为多个变量赋值。例如:
a = b = c = 1
以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。
您也可以为多个对象指定多个变量。例如:
a, b, c = 1, 2, "john"
以上实例,两个整型对象 1 和 2 分别分配给变量 a 和 b,字符串对象 “john” 分配给变量 c。
基本数据类型
- int(有符号整型)
- long(长整型,也可以代表八进制和十六进制)
- float(浮点型)
- complex(复数)
布尔类型
和Java中的Boolean相似, 所以基本用法也都相同。
a = True b = False print(a and b) # 输出False,逻辑与运算 print(a or b) # 输出True,逻辑或运算 print(not b) # 输出True,逻辑非运算 print(3 > 5) # 输出False,比较运算
标准数据类型
在内存中存储的数据可以有多种类型。
例如,一个人的年龄可以用数字来存储,他的名字可以用字符来存储。
Python 定义了一些标准类型,用于存储各种类型的数据。
Python有五个标准的数据类型:
- Numbers(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Dictionary(字典)
案例回顾
下面是每种数据类型的基本使用和案例说明:
1.数字类型(Numbers)—–可变
数字类型包括整型(int)、浮点型(float)和复数型(complex)。可以进行常见的数学运算,如加减乘除、幂运算、取模运算等。例如:
a = 5 b = 2.5 c = 3 + 4j print(a + b) # 输出7.5,自动将整型转换为浮点型 print(a ** b) # 输出55.9016994,a的b次幂 print(c.real) # 输出3,复数的实部 print(c.imag) # 输出4,复数的虚部
2.字符串类型(String) —–不可变
字符串是一系列字符的序列,可以用单引号或双引号括起来。可以进行字符串拼接、切片、大小写转换等操作。例如:
str1 = 'hello' str2 = "world" str3 = str1 + ' ' + str2 # 字符串拼接 print(str3) # 输出hello world print(str1[0]) # 输出h,字符串切片 print(str2[-1]) # 输出d,字符串切片 print(str1.upper()) # 输出HELLO,字符串大小写转换
3.列表类型(List)
列表是一种有序的集合,可以包含任意类型的元素。可以进行索引、切片、增删改查等操作。例如
lst = [1, 'hello', 2.5, True] print(lst[1]) # 输出hello,列表索引 print(lst[-1]) # 输出True,列表索引 print(lst[1:3]) # 输出['hello', 2.5],列表切片 lst.append('world') # 列表增加元素 print(lst) # 输出[1, 'hello', 2.5, True, 'world'] lst[0] = 0 # 列表修改元素 print(lst) # 输出[0, 'hello', 2.5, True, 'world']
5.元组(Tuple)—–不可变
元组是一种有序的集合,与列表类似,**但是元组是不可变的,**即元素的值不能修改。可以进行索引、切片等操作。
tup = (1, 'hello', 2.5, True) print(tup[1]) # 输出hello,元组索引 print(tup[-1]) # 输出True,元组索引 print(tup[1:3]) # 输出('hello', 2.5),元组切片
6.集合类型—–元素不重复 , 和set集合类似—–不可变
集合是一种无序的不重复元素的集合,可以进行交并补等操作。
set1 = {1, 2, 3, 4} set2 = {3, 4, 5, 6} print(set1 | set2) # 输出{1, 2, 3, 4, 5, 6},集合并运算 print(set1 & set2) # 输出{3, 4},集合交运算 print(set1 - set2) # 输出{1, 2},集合差运算
7.字典类型
字典是一种无序的键值对集合,可以根据键来访问值。可以进行增删改查等操作。例如:
dict1 = {'name': 'Tom', 'age': 20, 'gender': 'male'} print(dict1['name']) # 输出Tom,字典访问值 print(dict1.get('age')) # 输出20,字典访问值 dict1['age'] = 21 # 字典修改值 print(dict1) # 输出{'name': 'Tom', 'age': 21, 'gender': 'male'} dict1['city'] = 'Beijing' # 字典增加键值对 print(dict1) # 输出{'name': 'Tom', 'age': 21, 'gender': 'male', 'city': 'Beijing'}
五大数据类型的高级用法
列表类型 (list[] )
内置函数:
Python包含以下方法:
set集合类型
集合的创建
# 集合的创建 set1 = set() # 相当于java中的new List... # 或者 set1 = {12,1,22,31}
集合的添加元素
# set1 = {1, 2, 3} set1.add(4) print(set1) # 输出{1, 2, 3, 4}
集合的删除元素
可以使用remove()或discard()方法删除集合中的一个元素,如果元素不存在,则抛出KeyError异常(remove()方法)或不进行任何操作(discard()方法)。
set1 = {1, 2, 3} set1.remove(2) print(set1) # 输出{1, 3} set1.discard(4) print(set1) # 输出{1, 3},元素4不存在,不进行任何操作
集合的运算
可以使用union()、intersection()、difference()、symmetric_difference()等方法进行集合的并、交、差、对称差等运算。
set1 = {1, 2, 3} set2 = {2, 3, 4} set3 = set1.union(set2) # 并集 print(set3) # 输出{1, 2, 3, 4} set4 = set1.intersection(set2) # 交集 print(set4) # 输出{2, 3} set5 = set1.difference(set2) # 差集 print(set5) # 输出{1} set6 = set1.symmetric_differ ence(set2) # 对称差 print(set6) # 输出{1, 4}
判断集合之间的关系
可以使用issubset()、issuperset()、isdisjoint()等方法判断集合之间的包含关系。
set1 = {1, 2, 3} set2 = {2, 3, 4} print(set1.issubset(set2)) # 输出False,set1不是set2的子集 print(set2.issuperset(set1)) # 输出True,set2是set1的超集 print(set1.isdisjoint(set2)) # 输出False,set1和set2有共同的元素
数字类型
这个就是相当于将简单的数字类型进行了封装, 如果没有了float 和 double之间的区别
数学函数运算
其中python提供了许多数学函数,可以对数字进行各种运算和计算。常用的数学函数包括abs()、round()、min()、max()、pow()等。
x = -2.5 print(abs(x)) # 输出2.5,取绝对值 print(round(x)) # 输出-2,四舍五入 print(min(1, 2, 3)) # 输出1,取最小值 print(max(1, 2, 3)) # 输出3,取最大值 print(pow(2, 3)) # 输出8,即2的3次幂
类型转换
x = 2.5 print(int(x)) # 输出2,将浮点型转换为整型 print(float(2)) # 输出2.0,将整型转换为浮点型 print(complex(2, 3)) # 输出(2+3j),将实数转换为复数
元组类型
创建元组()
tuple1 = tuple() # 或者 tuple1 = (1, 2, 3)
元组的访问
就是简单的遍历
print(tuple1[0]) # 输出1,第一个元素 print(tuple1[-1]) # 输出3,最后一个元素 print(tuple1[1:3]) # 输出(2, 3),第2个到第3个元素
运算符
可以使用加号+和乘号*来进行元组的拼接和复制操作。
tuple1 = (1, 2, 3) tuple2 = (4, 5, 6) tuple3 = tuple1 + tuple2 # 元组拼接 print(tuple3) # 输出(1, 2, 3, 4, 5, 6) tuple4 = tuple1 * 3 # 元组复制 print(tuple4) # 输出(1, 2, 3, 1, 2, 3, 1, 2, 3)
元素统计
可以使用count()方法统计元素在元组中出现的次数,使用index()方法查找元素在元组中的位置。
tuple1 = (1, 2, 3, 2) print(tuple1.count(2)) # 输出2,元素2出现了2次 print(tuple1.index(3)) # 输出2,元素3在元组中的位置为2
这些方法可以帮助开发者方便地进行元组的操作和处理。由于元组是不可变的,因此在使用元组时需要注意不能对元素进行修改。
元组内置函数
Python元组包含了以下内置函数
字符串类型
字符串切片
可以使用切片操作来截取字符串的一部分。切片操作的语法为:s[start:end:step],其中start为起始位置(默认为0),end为结束位置(默认为字符串长度),step为步长(默认为1)。
s = 'Hello, world!' print(s[0:5]) # 输出Hello,取前5个字符 print(s[7:]) # 输出world!,从第7个字符到字符串末尾 print(s[:5]) # 输出Hello,从字符串开头到第5个字符 print(s[-6:]) # 输出world!,取最后6个字符 print(s[::2]) # 输出Hlo ol!, 每隔一个字符取一个
字符串拼接
可以使用加号+来进行字符串的拼接操作。
s1 = 'Hello' s2 = 'world' s3 = s1 + ', ' + s2 + '!' print(s3) # 输出Hello, world!
字符串查找
可以使用find()、index()、count()等方法来查找字符串中的子串。
s = 'Hello, world!' print(s.find('world')) # 输出7,返回子串的起始位置,如果没有找到则返回-1 print(s.index('world')) # 输出7,返回子串的起始位置,如果没有找到则抛出ValueError异常 print(s.rindex('world')) # 从右边开始索引 print(s.count('o')) # 输出2,统计子串在字符串中出现的次数
字符串替换
可以使用replace()方法来替换字符串中的子串。
s = 'Hello, world!' s2 = s.replace('world', 'Python') print(s2) # 输出Hello, Python!
字符串分割和连接
可以使用split()方法将字符串按照指定的分隔符进行分割,使用join()方法将字符串列表或元组连接成一个字符串。
s = 'Hello, world!' lst = s.split(',') # 将字符串按照逗号分割成列表 print(lst) # 输出['Hello', ' world!'] s2 = '-'.join(lst) # 将列表按照横线连接成字符串 print(s2) # 输出Hello- world!
这些方法可以帮助开发者方便地进行字符串的操作和处理。由于字符串是不可变的,因此在使用字符串时需要注意不能对字符串进行修改。
内置函数
字典类型
创建字典
可以使用花括号{}或dict()方法创建一个字典:
dict1 = {'name': 'Tom', 'age': 20} dict2 = dict([('name', 'Jerry'), ('age', 18)])
访问字典元素
可以使用键来访问字典中的值,如果键不存在,则会抛出KeyError异常。也可以使用get()方法来访问字典中的值,如果键不存在,则返回指定的默认值。
dict1 = {'name': 'Tom', 'age': 20} print(dict1['name']) # 输出Tom print(dict1.get('age', 0)) # 输出20 print(dict1.get('gender', 'Unknown')) # 输出Unknown,键gender不存在,返回指定的默认值 修改字典元素
可以使用赋值语句对字典中的元素进行修改,如果键不存在,则会添加新的键值对。
dict1 = {'name': 'Tom', 'age': 20} dict1['age'] = 21 # 修改键age的值为21 dict1['gender'] = 'Male' # 添加新的键值对 print(dict1) # 输出{'name': 'Tom', 'age': 21, 'gender': 'Male'}
删除字典元素
可以使用del语句或pop()方法删除字典中的元素,如果键不存在,则会抛出KeyError异常(del语句)或返回指定的默认值(pop()方法)。
dict1 = {'name': 'Tom', 'age': 20} del dict1['age'] # 删除键age print(dict1) # 输出{'name': 'Tom'} age = dict1.pop('age', 0) # 删除键age,并返回其对应的值,如果键不存在,则返回指定的默认值 print(age) # 输出0
字典视图
字典视图(dictionary view)是一个动态的“窗口”,可以看到字典中的键和值。Python提供了三种字典视图:keys()方法返回字典中的键视图,values()方法返回字典中的值视图,items()方法返回字典中的键值对视图
dict1 = {'name': 'Tom', 'age': 20} keys = dict1.keys() # 返回字典中的键视图 values = dict1.values() # 返回字典中的值视图 items = dict1.items() # 返回字典中的键值对视图 print(keys) # 输出dict_keys(['name', 'age']) print(values) # 输出dict_values(['Tom', 20]) print(items) # 输出dict_items([('name', 'Tom'), ('age', 20)])
这些方法可以帮助开发者方便地进行字典的操作和处理。由于字典是无序的,因此在使用字典时需要注意不能依赖字典中元素的顺序。
内置函数:
Python字典包含了以下内置方法:
字符串的相关内置函数
字符串格式化
Python 字符串格式化
Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。
在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。
如下实例:
#!/usr/bin/python print "My name is %s and weight is %d kg!" % ('Zara', 21)
以上实例输出结果:
My name is Zara and weight is 21 kg!
python 字符串格式化符号:
格式化操作符辅助指令:
三引号
str12 = """ 这是一个晴朗的小凹 我想牵着你走 这世上没有什么是 一个人 -------rayce """