赞
踩
最近复习了一下Python的基本内容,做了笔记记录如下:
输入:input()
输出:print()
变量命名:数字字母下划线,不可以用空格、内置关键字函数名,区分大小写,谨慎使用l和O
python 复合布尔表达式计算采用短路规则,即如果通过前面的部分已经计算出整个表达式的值,则后面的部分不再计算,如: (1 > 2) and (1 / 0)返回值为True,而(1 > 2) or (1 / 0)则会报错
continue语句:跳出本次循环,执行下一次循环
break语句:跳出当前循环
pass语句:什么也不做,一般用作占位符
多行输入:可以用反斜杠\来将同一行的语句分为多行书写
同行输入多条语句:不同语句之间用分号;分隔
字符串
字符串:包含在’ ’或者” ”中,可以用三引号或者三个双引号进行多行输入(三个单引号或者三个单引号还可用作跨行注释,单行注释用#)
字符串的修改:
1)string.title() 标题格式,每个单词首字母大写
2)string.upper() 全部大写
3)string.lower() 全部小写
4)string.capitalize() 字符串的首字母大写
5)string.center(width[, fillchar]) 指定一个width长度,居中输出字符串str,不足
的地方用fillchar填充,默认为空格
6)string.expandtabs(tabsize=8) 将string中的tab符号转换为空格,默认为8个
7)string.replace(old, new[, max]) 将string中的old子串替换成new,如果指定
max,则表示最多替换次数
8)string.join(seq) seq必须为一个字符串序列,该函数可用来将seq的字符串序
列通过string作为连接符,连成一个整体的字符串
9)string.ljust(width[, fillchar]) 指定一个width长度,居中输出字符串str,不足的
地方用fillchar填充,默认为空格
10) string.lstrip([chars]) 删除string左侧的chars子串,默认为空格
11) string.rstrip([chars]) 删除string右侧的chars子串,默认为空格
12) string.strip([chars]) 删除string左右两侧的chars子串,默认为空格
13) string.maketrans(intab, outtab) 在string上对intab建立一个outtab的映射,注
意intab字符串的每一个字符映射到outtab字符串对应位置的字符,intab和
outtab必须相同长度,这个函数只是构成一个映射,返回字典格式,要实现将
string字符串按照映射转换还得借助translate()函数
14) string.translate(table, deletechars=‘ ’) 将string按照table对应的映射,转换
string,不希望转换的字符放到deletechars中
15) string.rjust(width[, fillchar]) 类似ljust,右对齐
16) string.split(str=‘ ‘, num=string.count(str)) 以str为分隔符截取字符串,返回字符
串列表,如果指定num,则最多返回num个元素
17) string.splitlines([keepends]) 按照行分隔字符串,返回一个各行作为元素的列
表,如果keepends=True,则保留换行符,否则不保留。
18) string.swapcase() 将string的大写改成小写,小写改成大写
19) string.zfill(width) 返回长度为width的string,右对齐,前面填充0
字符串运算符:
1)+ 字符串连接
2)* 重复输出字符串
3)[ ] 索引获取字符串中的某个字符,允许负索引
4)[ : ] 字符串切片
5)in 成员运算符,询问给定字符串是否在目标字符串中,返回布尔值
6)not in 成员运算符,询问是否不在,返回布尔值
字符串检测与搜索:
1) string.count(str, beg=0, end=len(string)) 检查str在string中出现的次数,返
回出现的次数,beg和end指定开始和结尾的位置
2) string.find(str, beg=0, end=len(string)) 检查str是否在string中,若在,返回
索引值,否则返回-1。如果包含多个,则只返回第一个的索引。
3) string.index(str, beg=0, end=len(string)) 检查str是否在string中,若在,返
回索引值,否则报一个异常。如果包含多个,则只返回第一个的索引
4) max(string) 查找并返回string中的最大字母,返回值为字符串,不是索引
5) min(string) 查找并返回string中的最小字母,返回值也是字符串
6) len(string) 返回string的长度
7) string.refind(str, beg=0, end=len(string)) 类似find(),只是从右边开始搜索
8) string.reindex(str, beg=0, end=len(string)) 类似index(),只是从右边开始搜
索
字符串的判定:
1) string.isalnum() 判断string是否只有字母或者数字字符,若是则返回True,不是
或者是空字符串则返回False
2) string.isalpha() 判断是否全为字母,返回布尔值
3) string.isdigit(), isdecimal(), isnumeric() 都用来判断是否为数字,区别如下: 4) string.islower 如果字符串中包含至少一个区分大小写的字符,且都是小写,则
返回True
5) string.isspace() 判断字符串是否只包含空白,返回布尔值
6) string.istitle() 判断字符串是否是标题花的,返回布尔值
7) string.isupper() 如果字符串中包含至少一个区分大小写的字符,并且均为大
写,则返回True
8) string.startwith(str, beg=0, end=len(string)) 判断string从beg到end的子串是否
以str开头,返回布尔值
9) string.endswith(str, beg=0, end=len(string)) 判断string的beg到end范围内
的子串是否以str结尾,返回布尔值
字符串的编码:
1)string.encode(encoding=‘utf-8’, errors=‘strict’) 以encoding指定的编码格式编码
字符串,如果错误默认报一个ValueError的异常,除非errors指定的是’ignore’或
者’replace’
2)bytes.decode(encoding=‘utf-8’, errors=‘strict’) python3没有string的decode()方
法,但可以使用bytes对象的decode()方法,bytes对象由string.encode()生成
列表
列表运算符:
1) + 列表的拼接
2) * 列表的重复
3) in 判断元素是否在列表中,若在返回True,不在则返回False
4) [ ] 列表的索引
5) [ : ] 列表的切片
列表的查询:
1) len(list) 获取list的长度
2) max(list) 获取list元素的最大值
3) min(list) 获取list元素的最小值
4) list.count(obj) 统计某个元素obj在list出现的次数
5) list.index(obj) 从列表中找出某个值第一个匹配项的索引位置
列表的修改:
1) list.append(obj) 在列表末尾添加新对象(单一对象)
2) list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值
3) list.insert(index, obj) 在指定位置index插入对象obj
4) list.pop(obj.list[-1]) 移除列表中的一个元素(默认最后一个),并返回该元素值
5) list.remove(obj) 移除列表中某个值的第一个匹配项
6) list.reverse() 反向列表中元素
7) list.sort() 对原列表排序
8) list.clear() 清空列表
9) list.copy() 复制列表
元组
元组的运算符:
1) + 元组的拼接
2) * 元组的重复
3) in 判断元素是否存在于元组中
4) [ ] 索引
5) [ : ] 切片
元组的修改:
1) 元组中的元素是不允许修改的,但是可以使用+对元素进行拼接
2) 元组中的元素是不允许删除的,但是可以使用del语句删除整个元组
元组的一些常用函数:
1) cmp(tuple1, tuple2) 比较两个元组元素
2) len(tuple) 获取元组的长度
3) max(tuple) 返回元组中的最大值
4) min(tuple) 返回原族中的最小值
字典
字典的搜索与访问:
1) [ ] 使用键作为索引访问
2) len(dict) 计算字典元素个数
3) dict.copy() 返回一个字典的浅拷贝对象
4) dict.get(key, default=None) 返回指定键的值,如果值不存在,返回default
5) dict.has_key(key) 如果键key在字典中则返回True,否则为False
6) dict.items() 以列表返回可遍历的(键,值)元组组合
7) dict.keys() 以列表返回一个字典的所有键(字典的键必须是不可变对象)
8) dict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,
将会添加键并将值设为default
9) dict.values() 以列表返回字典中所有值
字典的修改:
1) dict[‘key-name’]=value 直接通过赋值来修改或者增加字典元素,如果同一个键被
赋值两次,那么记住后一个
2) dict.clear() 删除字典内所有元素
3) dict.fromkeys(seq[, val]) 创建一个新字典,以序列seq种元素作为字典的键,val为
字典所有对应键的初始值
4) dict.update(dict2) 将字典dict2的键/值对更新到dict中
5) dict.pop(key[, default]) 删除字典给定键key所对应的值,返回值为被删的值。key
的值必须给出,否则返回default值
6) dict.popitem() 随机返回并删除字典中的一堆键/值对
集合
集合的特性:无序性(不支持索引)、互异性(所有元素都不相同)、确定性(对于一个确定的元
素和一个确定的集合,元素和集合的关系只有属于或者不属于,不存在模棱两可的情况)
集合的运算符:
1) A < B 子集,判断A是否属于B,返回布尔值,等价于A.issubset(B)
2) A | B 并集,返回A和B的并集,等价于A.union(B)
3) A & B 交集,返回A和B的交集,等价于A.intersection(B)
4) A - B 差集,返回A和B的差集,等价于A.difference(B)
5) A ^ B 对称差(只属于其中一个集合而不属于另一个集合的原色组成的集合),
返回A和B的对称差,等价于A.symmetric_difference(B),也等价于(A - B) | (B - A)
集合的修改:
1) set.add(obj) 向集合中添加单个元素
2) set.update(objs) 向集合中添加多个元素
3) set.discard(obj) 从集合中删除一个存在的元素,若不存在则返回原集合
4) set.remove(obj) 从集合中删除一个存在的元素,若不存在则抛出一个KeyError
5) set.pop() 随机删除一个元素,并返回删除的元素
6) set.clear() 清空集合,此时原集合变为一个空集合:set()
7) set.copy() 返回一个set的浅拷贝
8) setA.difference_update(setB) 从setA中删除setB的所有元素
9) setA.intersection_update(setB) 用setA & setB来更新并添加到setA中
10) setA.symmetric_difference_update(setB) 用setA ^ setB来更新并添加到setA中
集合的判定:
1) setA.isdisjoint(setB) 如果两个集合有一个空交集,返回 True
2) setA.issubset(setB) 如果另一个集合包含这个集合,返回 True
3) setA.issuperset(setB) 如果这个集合包含另一个集合,返回 True
集合的内置函数:
1) all(set) 如果集合中的所有元素都是 True(或者集合为空),则返回 True
2) any(set) 如果集合中的所有元素都是 True,则返回 True;如果集合为空,则
返回 False
3) enumerate(set) 返回一个枚举对象,其中包含集合中所有元素的索引和值对
4) len(set) 返回集合的长度(元素个数)
5) max(set) 返回集合中的最大项
6) min(set) 返回集合中的最小项
7) sorted(set) 从集合中的元素返回新的排序列表(不排序集合本身)
8) sum(set) 返回集合的所有元素之和
不可变集合:用set()定义的集合是可修改的,但是用frozenset()来定义的集合则不可修改,没有增删元素的方法
循环和条件语句
条件语句:
1) if 判断条件1:
执行语句1
else:
执行语句2
2) if 判断语句1:
执行语句1
elif 判断语句2:
执行语句2
……
elif 判断语句n:
执行语句n
else:
执行语句n+1
3) if (判断语句): 执行语句
while循环: 1) while 判断条件:
执行语句
2) while 判断条件:
执行语句1
else:
执行语句2
3) while (判断语句): 执行语句
for循环:
1) for iterating_var in sequence:
statements(s)
2) for iterating_var in sequence:
statement1
else:
statement2
3) for index, item in enumerate(sequence):
process(index, item)
用于枚举索引号和对应值
函数
函数的定义:函数的声明:def func():
返回值:用return语句返回
函数的参数:
位置参数:调用函数时按照位置参数的位置依次传入实参(是个必选参数)
默认参数:给参数设置默认值,在调用函数时可以省略相关的参数而采用默认值作为
输入,要注意默认参数应放在必选参数后面,否则会报错,当默认参数较
多的时候应当把参数变化大的放在前面,变化小的放在后面。注意:默认
参数必须指向不变对象
可变参数:形参前面要加*,传入的参数个数是可变的(>=0个),且调用时自动组装成一
个元祖,比如想要传入一个列表,但是不确定个数,如果使用位置参数,
那么就需要先构造一个实参列表再传入形参,可变参数的目的就是为了省
略这个构造的过程,直接传入数目可变的参数
关键字参数:形参前要加**,传入的参数个数可变(>=0),是含参数名的参数,调
用时自动组装成一个字典,可以用于扩展函数功能
命名关键字参数:关键字参数可以任意命名关键字,命名关键字参数也属于关键字参
数,但是限制了关键字的名字,通常用,* ,进行分隔,这之后的 参
数均视为命名关键字参数,如果前面已经有过一个可变参数,则可
以省略这个符号,之后的参数均被视为命名关键字参数。但是与关
键字参数不同的是,有几个命名关键字参数就要有几个输入,即传
入参数数目固定,与位置参数不同的是传入参数时必须同时传入参
数名,命名关键字参数是会组装为字典的,需要体会一下区别
参数的组合:以上5中参数都可以组合使用,但是要注意参数定义的顺序必须是:必
选参数、默认参数、可变参数、命名关键字参数和关键字参数(但是
尽量要避免使用多种参数,否则不易于理解)
递归函数:函数内部可以调用其他函数,但是当函数内部调用自身的时候就是递归函数,类似于数
列中的递推公式f(n) = F(f(n-1))这种
匿名函数:定义:nmfun = lambda arg1[, arg2,……,argn] :experssion
调用:nmfun()
作用:简单,省去命名的麻烦
高级特性
切片:
1)[ ] 索引
2)[ 0 : 3 ] 截取索引为0-2的元素
3)[ : 3] 截取前三个元素(起始元素索引必须为0)
4)[ -2 : ] 支持负索引,截取倒数第二个到最后一个元素
5)[ : 10 : 2 ] 前10个数,间隔为2
6)[ : : 5 ] 以5为间隔截取元素
7)[ : ] 原样赋值
8)切片操作可用于列表、元组和字符串等,返回原类型
列表生成式:
1)list(range(100))
2)[ fun(x) for x in range(10)] fun(x)为x的一个函数表达式,这个表达是可以使自己够
早的,也可以是内嵌函数,用于输出。[ range(10) ]是不可以的,因为range()也
是一种类,可以单独存在于列表中,应该使用[ i for i in range(10) ]
3)[ fun(x) for x in range(10) if x % 2 == 0 ] 在2)的基础上增加了条件判断,则对x为
偶数的情况下进行构造
4)[ m + n for m in str1 for n in str2 ] 嵌套for循环进行循环,生成全排列
生成器:
一边循环一边计算的机制,比如对于一个很大的列表,但是只需要用前面几个,那么后边
的就浪费了存储空间,生成器就是在用到的时候按照某种算法进行计算,不用创建完整的
列表
创建:1)列表生成式的[ ]改为()就可以用于创建一个生成器generator,generator保存
的是算法,需要使用next()函数逐个获得generator的下一个返回值,直到最后一
个,超过则跑出StopIteration的错误。
2)如果一个函数使用了yield关键字,那么这个函数就不是一个普通函数而是一个
generator,对于编程generator的函数,在每次调用next()的时候执行,一旦遇到
yield语句返回,再次执行时从上次返回的yield语句除继续执行
调用:1)next() 每调用一次next()函数都可以获得generator的下一个返回值
2)for 循环调用,和列表的迭代相同
作者:笑脸皮猴子
来源:CSDN
原文:https://blog.csdn.net/weixin_40693324/article/details/79757975
版权声明:本文为博主原创文章,转载请附上博文链接!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。