Python初见2
零蚀
基本语法
- 函数
- Set
- 字符串
- Dict字典
文档路径,
🔗python3.x官方文档
Library reference->Build in Functions->所有系统内置的方法
-
函数
- 函数简介
# 函数的定义 def function(): print('') # 调用函数,函数调用必须在定义的后面,不能像c那样申明 function()
- 函数文档注释
# 在鼠标command+focus函数的时候就显示的注释;在函数底下添加‘’‘内容’‘’ def function(a,b): '''求和''' sum=a+b return function()
- 全局变量
m = 20 def fun(): # 将局部变量的m(指针)对应到全局变量的m # 否则函数里的m就是新建的局部变量,和全局变量没有关系 global m m = 30 print(m)
- 函数返回
# 多返回值的返回类型为元祖类型(tuple) def fun(a, b): return a + b, a - b
- 模块导入
#直接导入模块进行方法调用 import utils utils.fun() #导入模块中的某个方法 from utils import fun fun()
- 函数式编程
函数可以作为函数的参数,也可以作为返回值。常见编程方式,OOP面向对象,FP函数式编程,POP面向过程的编程。
‘’‘高阶函数’‘’ # 构建函数 def func(a, b): return a + b # 函数作为参数 def fun1(a, b, func): return func(a, b) # 传入函数 print(fun1(10, 20, func))
’‘’lambda表达式‘’‘ # 相当于把命名了一个函数d(a,b):return a+b d = lambda a, b: a + b print(d(10, 20)) # lambada表达式的运用,用于一行可以解决的问题 def sub(a, b, func): return func(a, b) print(sub(10, 20, lambda a, b: a + b))
- 高阶函数案例
''' 正常会按照首字母大小排序, 如果需要按照字母长度排序 ''' listSort = ["asdf", "fdfd", "cdsaffdsf", "basdkgjsalk;"] listSort.sort() print(listSort) ''' sort(*,key=None,reverse=False)中,key作为比较键(根据什么来进行比较) 默认值None表示直接排序不单独比较键值 ''' # len()函数传进来,参数由sort提供,参数为单位元素 listSort.sort(key=len) print(listSort) ''' 根据第二个元素排序 ''' # 提取比较键,第二个元素 def second_char(ele): return ele[1] # 将函数赋值给key listSort.sort(key=second_char) print(listSort) # listSort.sort(key=lambda ele:ele[1])
-
Set集合
- 元素唯一性,无序性
# 打印 s = {'快乐', '难过', '溜了'} for ele in s: # 无序打印 print(ele) # 添加元素 s.add('愤怒💢') s.add('绝望') print(s) # 第二种添加方式,将一个容器中的元素添加到集合中 s.update((0, 1)) s.update([2, 3, 4], (5, 6, 7)) print(s) # 集合删除这个元素,元素不存在报错 s.remove(1) print(s) # 集合删除元素,元素不存在不报错 s.discard('jj') print(s) # 第二种删除的方法,随机删除 s.pop() print(s)
- 集合之间的运算
s1 = {1, 2, 3, 4, 5} s2 = {1, 2, 3, 4, 5, 6, 7} # s1 是否s2的子集 a = s1.issubset(s2) print(a) # s2是否是s1的超集 b = s2.issuperset(s1) print(b) # 并集 c = s1.union(s2) print(c) # 交集 d = s1.intersection(s2) print(d) # 差集 e = s2.difference(s1) print(e) # 异或,第二个方法更新了s1 f = s1.symmetric_difference(s2) print(f) s1.symmetric_difference_update(s2) print(s1)
-
字符串
- 打印字符串
# 下列三种等同 str1 = 'a\nb\nc\nd' str2 = "a\nb\nc\nd" #原样输出字符串 str3 = ''' a b c ''' print(str1) print(str2) print(str3)
- 字符串判断
s1 = 'faksdjflakdjfla;' s2 = '123214324325' # 是否都是字母(当前至少有一个字符) print(s1.isalpha()) # 是否只包含数字(字符串不为空) print(s2.isdecimal()) # 是否都是小写(至少包含一个区分大小写的字符) print(s1.islower()) # 是否都是大写(至少包含一个区分大小写的字符) print(s1.isupper()) # 以什么开始,以什么结束 print(s1.startswith('fak')) print(s1.endswith('fla;'))
- 查找
str1 = 'grandfather' # 找到第一个是a index = str1.find('a') print(index) # 找到'ther'第一个字符坐标 index = str1.find('ther') print(index) # 从指定位置找,首位范围皆包含 index = str1.find('a', 3, str1.__len__() - 1) print(index) # 从右往左查找 index = str1.rfind('a', 3, str1.__len__() - 1) print(index) # 以上find查找不存在返回-1,以下index查找不存在报错 inl = str1.index('a') print(inl)
- 替换
# 全部替换 str = 'hello java,java' str1 = str.replace('java', 'python') print(str1) # 替换次数,默认是 -1 str1 = str.replace('java', 'python', 1) print(str1)
- 拆分和链接
# 以第一个形参为准,拆分为3个元素所成的元祖 # ('hello ', 'j', 'ava,java') str0 = 'hello java,java' tuples = str0.partition('j') print(tuples) # 从右开始寻找,同上 # ('hello java,', 'j', 'ava') str1 = str0.rpartition('j') print(str1) # 每个形参元素都会被划分,类似java,若寻找的是第一个字符,会多一个空元素,默认头部多一个空元素 lists = str0.split('h') print(lists) # 根据\r\n等特殊字符进行划分 str1 = str0.splitlines() print(str1) # 字符串(迭代体)的每个元素都和str拼接一次 # 来hello java,java自hello java,java我 str1 = str0.join('来自我') print(str1)
- 字符串补充和去空
# 左对齐,不够数字补空格 string = 'zero' # 字符串左对齐,右边补空格 print(string.ljust(10)) # 字符串右对齐,左边补空格 print(string.rjust(10)) # 中间对齐,两遍补空格 print(string.center(10)) # 去左右两边空白 string = 'unit_gallery ' print(string.strip()) # 去字符左右两边指定字符 print(string.lstrip('_')) print(string.rstrip('_')) print(string.strip('_')) # 是否包含空格 str.__contains__(' ')
-
Dict字典
# 键支持int,tuple,str,键不能重复,不然会被覆盖 d = {1: 'ss', (1, 2, 3): 'df', 'df': 'ok'} print(d) # 查询 print(d['df']) print(d.get('df')) # 获取所有的键 print(d.keys()) print(type(d.keys())) # <class 'dict_keys'>视图图对象,主要是让内存对象,keys不能添加对象,不支持修改 # dict_keys([1, (1, 2, 3), 'df'])可以转成list print(list(d.keys())) # 字典中所有值 # dict_values(['ss', 'df', 'ok'])视图对象 print(d.values()) # 字典中所有条目 # dict_items([(1, 'ss'), ((1, 2, 3), 'df'), ('df', 'ok')]) print(d.items())
- CRUD
d = {'s': 1} # 增 d['op'] = 'o' print(d) d.setdefault('ll', 12) print(d) # 删 del d['ll'] print(d) print(d.pop('op')) # 返回的是value print(d) # 改 d['s'] = 2 print(d) # 查/遍历 d = {1: 's', (1, 2): 'as', 'fa': 'aa'} # 这般遍历都是键值 for key in d: print(d[key]) # 第二种遍历 l = list(d.keys()) for ele in l: print(d[ele]) # 第三种遍历 v = d.values() for value in v: print(value) # 第四种遍历 item = d.items() # 遍历的得出都是元祖 for ele in item: print(ele[0], " : ", ele[1])
- 其他
# 空字典 d={} # 空集合 s=set() # 清空 d.clear() # 删除整个字典(删除后不能用) del d # 测量 length=len(d)
🔗 前言
🔗 Python 基础列表
🔗 Python初见1
🔗 Python初见3
🔗 Python初见4
🔗 Python初见5
🔗 Python初见6
🔗 Python初见7
🔗 Python初见8 – 飞机大战
🔗 Python初见9— 坦克大战