1. os.getcwd() # 获取当前目录,注:os模块需要先导入
2. os.system(“pause”) # 暂停程序,按任意键继续
3. os.path.exists(“d:/a.txt”) # 判断文件或者文件夹是否存在,返回布尔值
4. a = a or b # 给变量赋默认值,或者说给变量赋条件式值,等价于javascript的 a = a || b
5. 访问类变量(类名.变量名),或者(实例名.变量名),在实例方法里访问类变量(self.变量名)。实例是继承类,且和类是两个独立的存在,在实例里访问不到的属性会自动到类里面去找。
6. 如何在类里访问实例方法,实例方法和普通方法区别不大,只是第一个参数默认都是self,正常情况下会传入实例本身,在类里调用实例方法时没办法传这个参数,那么只要传一个其他对象或者字符串即可。
7. enumerate() # 遍历列表(数组),可以同时获取索引和值,看后面的例子
8.json 模块 #json常用的两个方法是,把字符串转换成字典对象json.loads(),把对象转换成字符串json.dumps()。在把字典对象转换成字符串时有一个需要注意的地方就是中文会转换成ascii码不能正常显示,这种情况只要加上参数ensure_ascii=False就能正常显示了,看下文中的例子
9.判断变量是否存在 locals().keys(), 判断字典里的key值是否存在dict_name.keys() 看下文中的例子
10. ‘’.join() 拼接字符串,下文中有例子
11.列表去重: 方法1:可以利用set集合的唯一性,这种方法有个不好的地方是得到的列表是无序的。方法2:用for循环,下文中有例子
12.给变量条件赋值,Python中没有引入三目运算符,所以条件赋值时有另外的简写方法:c = a if a>b else b, a>b是条件,条件满足返回a,条件不满足返回b。另外还有or 和 and 也可以条件赋值,看下文中的例子
13.给函数传不定长参数和带默认值的参数,Python给函数传不定长参数有两种,一种是元组*args,一种是字典**kwargs。如果是元组*args,必须要放在正常参数的后面,且如果有字典要放在字典参数**kwargs的前面。如果是字典,则必须要放在最后。还有一种带默认值的参数 例如: myFn(aa=“aa”) 这种带默认值的参数必须要放在正常参数的后面,可以放在元组参数的前面或者后面,必须放在字典参数的前面。看下面的例子
14.捕获异常,且打印出来,try / except Exception as e 。Exception是通用异常,所有异常都会被捕获到,用法看下面的例子
15.列表推导式,语法:[表达式 for 变量 in 列表 if 条件],条件可以写可以不写,例子看下面
7. enumerate() # 遍历列表(数组),可以同时获取索引和值,下面是例子
arr1 = ["a","b","c","d"]
for index,value in enumerate(arr1):
print(index,value)
# 结果
0 a
1 b
2 c
3 d
8.json 模块 #json常用的两个方法是,把字符串转换成字典对象json.loads(),把对象转换成字符串json.dumps()。json.dump(data,file)把字典对象转换成字符串并写入文件。
注:字符串转换成字典对象时,字符串里只能使用双引号。
arr2 = [("张三","18","13888888888","男"),("李四","20","13123544487","男")]
str = json.dumps(arr2[0],ensure_ascii=False) # 加上参数ensure_ascii=False就能正常显示中文了
print(str)
# 输出结果
["张三", "18", "13888888888", "男"]
9.判断变量是否存在 locals().keys(), 判断字典里的key值是否存在dict_name.keys() 例如:
dict1 = {"name":"张三","agea":"a"}
if "dict1" in locals().keys():
print("变量存在")
if "name" in dict1.keys():
print("dict1['name'] 值存在")
# 输出结果
变量存在
dict1['name'] 值存在
10. ‘’.join() 拼接字符串,例如:
arr =["a","b","c"]
arr_str = "-".join(arr)
print(arr_str)
# 输出结果 a-b-c
11.列表去重: 方法1:可以利用set集合的唯一性,这种方法有个不好的地方是得到的列表是无序的。方法2:用for循环
# 方法1
list_1 = ["a","b","c","c","d","d"]
list_2 = list(set(list_1))
# 输出结果 ['a', 'd', 'b', 'c']
# 方法2
list_1 = ["a","b","c","c","d","d"]
list_2=[]
for i in list_1:
if i in list_2:
continue
list_2.append(i)
print(list_2)
# 输出结果 ['a', 'b', 'c', 'd']
12.给变量条件赋值,Python中没有引入三目运算符,所以条件赋值时有另外的简写方法:c = a if a>b else b, a>b是条件,条件满足返回a,条件不满足返回b,看下文中的例子
# 带 if else 条件判断
a=10;b=20
c = a if a>b else b
print(c)
# 输出结果 20 由于a>b 不成立,所以返回20
# or
a={};b={"name":"zhang","age":"20"}
c = a or b
print(c)
# 输出结果 {'name': 'zhang', 'age': '20'} 因为a是空对象,所以会返回b。
# 这个可以用来给给变量设置默认值
# and
a={};b={"name":"zhang","age":"20"}
c = b and "Nihao"
print(c)
# 输出结果 "Nihao" 这个是返回第一个空对象或者说值等于False的对象,如果两个值都不为False,则返回后面的对象
# 这个应该用的比较少
13.给函数传不定长参数和带默认值的参数,Python给函数传不定长参数有两种,一种是元组*args,一种是字典**kwargs。如果是元组*args,必须要放在正常参数的后面,且如果有字典要放在字典参数**kwargs的前面。如果是字典,则必须要放在最后。还有一种带默认值的参数 例如: myFn(aa=“aa”) 这种带默认值的参数必须要放在正常参数的后面,可以放在元组参数的前面或者后面,必须放在字典参数的前面。看下面的例子
# 给函数传不定长参数,元组或者字典,调用的时候也要用*或**指定参数
def myFn(a,b,*args,**kwargs):
print(a,b,args,kwargs)
myFn(1,2)
# 输出结果 1 2 () {}; 字典和元组可以省略不传,默认会有一个空元组和空字典
myFn(1,2,"aa","bb")
# 输出结果 1 2 ('aa', 'bb') {}; 后面的参数如果不用*或者**指定是元组或者字典,则默认会合成一个元组
myFn(1,2,("aa","bb"))
# 输出结果 1 2 (('aa', 'bb'),) {};
# 由于后面的参数没有用*指定是元组,所以默认合成了一个只有一个元素的元组
myFn(1,2,{"aa":"aaa","bb":"bbb"},{"name":"zhangsan"})
# 输出结果 1 2 ({'aa': 'aaa', 'bb': 'bbb'}, {'name': 'zhangsan'}) {};
# 由于后面的参数没有指定是元组或者字典,即使传入字典也会被合成一个元组
myFn(1,2,*("aa","bb"))
# 输出结果 1 2 ('aa', 'bb') {}; 指定了是元组,所以接收到的也是一个元组
myFn(1,2,**{"name":"xiaoming"})
# 输出结果 1 2 () {'name': 'xiaoming'}; 指定了是字典,所以接收到的也是一个字典
myFn(1,2,name="zhangsan",age="18")
# 输出结果 1 2 () {'name': 'zhangsan', 'age': '18'}; 用这种方式也可以给字典传值
# 给函数的参数设置默认值
def myFn2(a,b,name="xiaofang"):
print(a,b,name)
myFn2(1,2) # 输出结果 1 2 xiaofang
myFn2(1,2,name="拉克丝") # 输出结果 1 2 拉克丝
# 下面几种在定义函数时,由于参数的位置不对,会报错
def err_myFn_1(*args,a,b): # 报错
print(args,a,b)
def err_myFn_2(**kwargs,a,b): # 报错
print(kwargs,a,b)
def err_myFn_3(a,b,**kwargs,*args): # 报错
print(kwargs,a,b)
def err_myFn_3(a,b,**kwargs,name="易大师"): # 报错
print(kwargs,a,b)
14.捕获异常,且打印出来,try / except Exception as e 。Exception是通用异常,所有异常都会被捕获到,用法看下面的例子
try:
a=1+"b"
except Exception as e:
print(e)
# 输出结果 unsupported operand type(s) for +: 'int' and 'str';这句话的意思是int和str是不同类型的数据,不同类型的数据不能直接相加
15.列表推导式,语法:[表达式 for 变量 in 列表 if 条件],条件可以写可以不写
# 列表推导式 有条件
aa = [1,2,3,4,5]
bb = [i for i in aa]
print(bb)
# 列表推导式 无条件
cc = [i for i in range(20) if i>2]
print(cc)
# 输出结果
# [1, 2, 3, 4, 5]
# [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]