文章目录
参加华为官方手册:Python中的“瓶瓶罐罐” 实验指导手册
1 数值
a = 2 + 1j
print(type(a))
print(7 / 2)
print(7 // 2)
print(2 ** 3) # 输出 8,**表示乘方操作
print(5+1.6) # 输出 6.6,不同精度的类型的数字相加默认取高精度类型作为结果
abs(-1.1) # 输出 1.1
round(1.4) # 输出 1
round(-1.7) # 输出-2
divmod(5,2) # 输出(2, 1)
max(1,2,3,5)# 输出 5
import math
math.cos(math.pi) # 输出-1.0,求取 math.pi 的余弦值
math.fabs(-1) # 输出 1.0,会将结果转化为浮点数
math.ceil(1.1) # 输出 2,向上取整
math.floor(1.1) # 输出 1,向下取整
math.factorial(4) # 输出 24,求阶乘 1*2*3*4
print(True+True)
print(True+False)
print(False-True)
print(True*2)
2 字符串
2.1 索引获取字符串中的元素
str1 = 'Python'
for i in range(6):
print(str1[i])
for i in range(6):
print(str1[-1-i])
2.2 切片获取字符串中的元素
str1 = 'Python'
# str1[a: b: c] [a, b]是区间长度, c是步长
print("str1[::]:",str1[::])
print("str1[::2]:",str1[::2])
print("str1[2::2]:",str1[2::2])
print("str1[1:5:2]:",str1[1:5:2])
print("str1[-1:-5:2]:",str1[-1:-5:2])
print("str1[-1:-5:-2]:",str1[-1:-5:-2])
2.3 检测字符、字符串
mystr = 'hello world,my name is python'
str1 = "python"
# str.find (str1, beg=0, end=len(string))
# 查看是否包含 str,可以通过 beg 和 end 指定查找范围
# 返回索引位置,找不到返回-1
mystr.find(str1, 0, len(mystr)) # 输出 23
mystr.find(str1, 5, 20) # 输出-1
# 统计给定字符的出现次数:
mystr = 'hello world,my name is python'
# str.count(str1, beg=0, end=len(string)),在指定范围统计给定字符出现的次数
mystr.count("n", 0, len(mystr)) # 输出 2
2.4 查看字符串是否以某个字符开始或结束
mystr = 'hello world,my name is python'
# str.startswith(s):是否以 s 开始
print(mystr.startswith("hello"))
# str. endswith(s):是否以 s 结束
print(mystr.endswith("world"))
2.5 格式化输出
格式化操作符(百分号%)、字符串转换类型和格式化操作符辅助指令实现格式化输出。
print('My name is %s ,age is %d' % ('AI', 63))
str1 = "AI"
str2 = 63
print(f"My name is {str1} ,age is {str2:.2f}")
3 元组
元组的定义:
t1 = (1, 2, 3)
t2 = 1, 2, 3
print(type(t1))
print(type(t2))
单元素元组(易错)
t1 = (1)
t2 = ((1))
t3 = (1,)
t4 = ((1),)
print(type(t1), "\n", type(t2))
print(type(t3), "\n", type(t4))
#######
<class 'int'>
<class 'int'>
<class 'tuple'>
<class 'tuple'>
元组不能进行之间进行乘法运算。
t1 = (1, 2, 3)
t2 = (4, 5, 6)
t3 = t1 + t2
print(t3)
print(t3*2)
4 列表
4.1 索引和切片
l1 = [1, 2, 3]
l2 = list("python")
print(l2) # 输出:['p', 'y', 't', 'h', 'o', 'n']
a = [i for i in range(5)] # 输出:[0, 1, 2, 3, 4]
b = [i for i in range(5) if i % 2] # 输出:[1, 3]
print(a,'\n', b)
4.2 常用操作
#. list.append(obj):在列表末尾添加新的对象。
#. list.remove(obj):移除列表中某个值的第一个匹配项。
#. list.insert(index, obj):用于将指定对象插入列表的指定位置。index:插入位置
#. list.pop([index=-1]):要移除列表中对下标对应的元素(默认是最后一个)。Index:下标
#. enumerate(sequence) :将一个可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
animals = ['cat', 'dog', 'monkey']
animals.append('fish') # 追加元素
print(animals) # 输出 ['cat', 'dog', 'monkey', ‘fish’]
animals.remove('fish') # 删除元素 fish
print(animals) # 输出 ['cat', 'dog', 'monkey']
animals.insert(1,'fish') # 在下标 1 的地方插入元素 fish
print(animals) # 输出 ['cat', ‘fish’, 'dog', 'monkey']
animals.pop(1) # 删除下标为 1 的元素
print(animals) # 输出 ['cat', 'dog', 'monkey']
animals = ['cat', 'dog', 'monkey']
for i in enumerate(animals):
print(i) # 元素下标和元素所组成的索引
4.3 列表数据排序
list1 = [12, 45, 32, 55]
# list.sort(cmp=None, key=None, reverse=False):cmp 为可选参数, 如果指定了该参数,会使
# 用该参数的方法进行排序。key 是用来进行比较的元素。reverse 为排序规则,False 为升序。
list1.sort() # 对列表进行排序
print(list1) # 输出[12,32,45,55]
list1.sort(reverse=True) # 对列表进行逆序排序
print(list1)
# list.reverse():反向列表中元素。
list1.reverse() # 对列表进行逆置
print(list1) # 输出[55,45,32,12]
5 字典
5.1 字典赋值形式
# 字典的三种赋值操作
# 字典的三种赋值操作
x = {'a': 'A', 'b': "B", 'c': 3}
X = dict(a='A', b="B", c=3)
x = dict([("a", "A"), ("b", "B"), ("c", 3)])
# 字典推导式
dict1 = {'a': 'A', 'b': "B", 'c': 3}
dict2 = {v: k for k, v in dict1.items()}
print(dict2)
修改、添加和删除
x = {'a': 1, 'b': 'B', 'c': 3, "x": "x"}
# 向字典中插入数据
print(x)
# 修改字典中的数据
x["a"] = "A"
print(x)
# 删除字典中的数据
x.pop("x")
print(x)
5.2 字典的错误操作
x = {'a':'A','b':"B",'c':3}
x = {'b': "B", 'c': 3, "a": 1} # {'a': 1, 'b': 'B', 'c': 3},值被覆盖
x = {'a': 'A', 'b': "B", 'c': 3, [1, 2]: "AB"} # 键不可变,报错
x[1] # 字典无序不能使用下标
5.3 获取字典中的数据
value = dict[key]
x = {'a': 1, 'b': 'B', 'c': 3}
# 使用键获取值
print(x["a"])
print(x["x"]) # 如果访问不存在的键,会报错
get(x)
x = {'a': 1, 'b': 'B', 'c': 3}
# 使用 get(key,["str"])方法获取数据
print(x.get("a"))
print(x.get("x")) # 使用 get 方法获取数据时,如果键不存在会返回指定的值 str
print(x.get("x", "x 不存在"))
# 查看所有的键
print(x.keys())
# 查看所有的值
print(x.values())
# 查看所有的键值对
print(x.items())
6 集合
6.1 集合定义
sample_set = {'Prince', 'Techs'}
sample_set = set(['Prince', 'Techs'])
print(sample_set)
6.2 常用操作
**set.add(obj):**给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作。
**set.remove(obj):**移除集合中的指定元素。
sample_set = {'Prince', 'Techs'}
# set.add(obj):给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作。
sample_set.add('Data') # 向集合中增加元素 Data
print(sample_set) # 输出 {'Prince', 'Techs', 'Data'}
print(len(sample_set)) # 输出 3
# set.remove(obj):移除集合中的指定元素。
sample_set.remove('Data') # 删除元素 Data
print(sample_set) # {'Prince', 'Techs'}
list2 = [1, 3, 1, 5, 3]
print(list(set(list2))) # 输出 [1,3,5],利用集合元素的唯一性进行列表去重
sample_set = frozenset(sample_set) # 不可变集合
7 数据拷贝
a = [1, 2, 3, [5, 4]]
s = {"a": 1, "b": [2, "B"]}
a1 = a
a1[0] = 0
s1 = s
s1["a"] = "A"
print("l:", a)
print("l1:", a1)
print("s:", s)
print("s1:", s1)
观察输出,发现原数据已经被改变。
浅拷贝 加入 s1 = s.copy()
a = [1, 2, 3, [5, 4]]
s = {"a": 1, "b": [2, "B"]}
a1 = a.copy()
a1[0] = 0
s1 = s.copy()
s1["a"] = "A"
print("l:", a)
print("l1:", a1)
print("s:", s)
print("s1:", s1)
深拷贝 加入 a1 = copy.deepcopy(a)