Python-TIPS
-
for .... else
循环for 循环能正常结束,则运行 else;如果是 break 结束,则不运行 else
-
__dict__
__dict__
中存储了对象的属性,类和实例都有自己的属性,内置对象没有属性。类对象的
__dict__
中存储了类的静态函数、类函数、普通函数、全局变量以及一些内置属性实例对象的
__dict__
中存储一些self.xxx
的一些东西 -
try...except...else...finally
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24try:
可能发生异常的代码
except:
如果出现异常执行的代码
else:
没有异常执行的代码
finally:
无论是否有异常都要执行的代码
# 带as
except 异常类名 as result :
print(result) # 异常描述信息
# 自定义异常,继承于Exception
class 异常类名(Exception):
def __init__(self):
def __str__(self):
return 异常描述信息
## 调用
raise 异常类名
## 捕捉
except -
is
与==
的区别python 中的对象包含三个基本要素,分别是:id(标识)、tpye(类型)和 value(值)。
is
和==
都是比较运算,区别在于is
是同一性运算符,比较两个对象的 id 是否相等;==
是比较操作符,比较两个对象的 value 是否相等。1
2
3
4
5
6>>>a = [1,2,3]
>>>b = [1,2,3]
>>>a == b
True
>>>a is b
False -
函数注释 Function Annotations
Python 中函数的参数与返回值都可以添加注释,参数后面添加
[: expression][= expression]
,返回值使用->
提示返回类型。1
2def add(x:int,y:int=0) -> int:
return x+ylambda 函数不能添加。
使用函数的
__annotations__
即可获得函数注释,返回一个 map -
*
和**
再函数式编程中,
*
代表的是可变长度的看个参数,如元组、列表;**
表示可以接收键值对类型的可变参数。1
2
3
4
5
6
7
8
9def person(name,age,gender='男',*args,**kwds):
print(f'name:{name},age:{age},gender:{gender}')
print(args)
print(kwds)
20,男,175,180,work='student') person(Jim,
jim,20,男
(175,180)
{'work'='student'}*
和**
还可以用于列表、元组、字典的解包,作用于字典时,*
返回 key,丢弃 value,**
获取 key:value 格式1
2
3
4
5
6
7
8
9
10
11
12
13>>>a = (1,2,3)
>>>print(a)
(1,2,3)
>>>print(*a)
1 2 3
>>>a = [1,2,3]
>>>print(*a)
1 2 3
>>>a = {'name'='Jim','gender'='male'}
>>>print(*a)
name age
>>>print('name:{name},gender:{gender}'.format(**a))
name:Jim,gender:male -
三元表达式
Truedo if Ture else False-do
-
字符串的翻转
1
2string='123456'
string[::-1] -
判断是否为回文
1
string == string[::-1]
-
单词大小写
1
2
3string.title() # 单词首字母大写
string.upper() # 所有单词大写
string.capitalize() # 字符串首字母大写 -
字符串合并
1
2string = list(string)
' '.join(string) -
二值交换
1
2
3
4
5a, b = b, a
# 利用位操作,不适用于a==b的情况
a ^= b
b ^= a
a ^= b -
字典的合并
1
result = {**dict1, **dict2}
-
列表的操作
函数名 作用 append 作为整体向列表追加 extend 再列表末尾一次性追加另一个序列中的多个值 remove 移除列表中某个值的元素 pop 移除元素,默认为最后一个,也可以指定索引 count 统计某个元素在列表中出现的次数 index 找出第一个匹配项的索引,可以指定查找范围 reverse 反向,可以指定比较的元素 -
字符串常用内置方法
方法名 描述 lower() 转为小写 upper() 转为大写 swapcase() 大小写转换 count() 计数 endswith() 是否以*结尾 startswith() 是否以*开头 find() 从左向右寻找 rfind() 从右向左寻找 isnumeric() 是否只包含数字 ljust() 左对齐,右侧填充至指定长度 rjust() 右对齐,左侧填充至指定长度 lstrip() 去除左侧多余的空格或指定字符 rstrip() 去除右侧多余的空格或指定字符 strip() 去除左右侧多余的空给或指定字符 replace() 替换 split() 切片,返回列表 -
字典常用操作
方法名 描述 dict() 创建空字典 keys() 所有键,使用list()转为列表 values() 所有值,使用list()转为列表 items() 以列表返回可遍历键值元组数组 get() 返回指定键的值 setdefault() 与get类似,但如果键不在字典中,会添加键并设置默认值 pop() 删除给定键的值,返回值为删除的值 popitem() 删除键值对,返回值为删除的键值对 clear() 删除字典内所有元素 copy() 浅拷贝(浅拷贝父对象,子对象仍是引用)
评论