字符串格式化补充,format&format_map
1) format于%s的优势
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704225920356-856929135.png)
2)format_map:
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704225928974-559436671.png)
全局变量,局部变量
1)全局变量与局部变量
NOTE:建议尽量不要使用全局变量,会占用内存
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704230022291-1210311566.png)
输出为:1000
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704230042229-125561277.png)
输出会报错:
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704230055063-308504152.png)
因为a是在test内声明的,如果需要用a,则需要调用test()函数
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704230103232-770287617.png)
以上所进行处理的都是字符串,字符串是不能改变的,但是字典却可以:
函数传参
可变参数
特点:不必填,并且不限制参数个数,通过在参数前加*号来定义
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704230124171-1530504379.png)
输出为:
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704230132553-435368287.png)
如果有多个参数的返回,它会用一个元组来存值
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704230140463-1342294805.png)
输出为:
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704230156590-782101510.png)
函数递归
函数递归:函数自己调用自己,例如:
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704230205424-858122697.png)
递归有一个最大的次数999次的限制,所以该段程序会报错:
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704230212130-419130427.png)
用递归必须要一个明确的结束条件,如下:
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704230217498-835373853.png)
输出为:
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704230230472-1643216415.png)
列表推导式
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704230244115-47630664.png)
内置函数
python的内置函数:
- input
- int
- dict
- set
- list
- str
- len
- open
- tuple
- type
- max:取最大值
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704230318726-549617069.png)
输出:
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704230325982-577866689.png)
- dir:看这个对象里面有哪些方法
输出:
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704230653327-686398955.png)
- sorted:排序
输出:
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704230712817-1481927660.png)
- print(char(97)): 打印数字对应的ascii
- print(ord('b')): 打印字符对应的ascii
- round(): 保留几位小数
- eval: python执行代码
- exex: 执行Python代码
- enumerate: 枚举
输出:
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704230805602-540664130.png)
- zip:压缩多个list
输出:
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704230829418-2084862232.png)
模块
-
标准模块
-
第三方模块
别人写好的模块,你下载下来安装好能用
- 最便捷的安装方法:
pip install pymysql
- whl结尾的文件的安装方法:
先从pypl网站下载下
pip install C:\Users\bjniuhanyang\Desktop\redis-2.10.6-py2.py3-none-any.whl
- tar文件的安装
解压缩以后,走到文件夹下,shift+右键"setup.py"(直接在地址栏输入cmd),在此处打开命令行,输入:python
setup.py install
OS MODULE
- 创建文件夹mkdir & makedirs:
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704230927435-1243785628.png)
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704230941706-1791774396.png)
- 列出某个目录下面的所有文件 listdir():
输出为:
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704231000254-2098585660.png)
- 删除文件夹 rmdir():
- 一个例子:
- 拼接路径:在需要拼路径的时候尽量用该方法
输出:
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704231047989-1418450290.png)
- 取当前操作系统的路径分隔符:
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704231057415-2083455960.png)
- 取父目录的路径:
输出:
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704231120198-1274460491.png)
- 获取文件大小:
- 判断文件或者文件夹是否存在:
- 分割文件名和路径
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704231154866-1938765475.png)
- 一个特别好用的循环取文件夹内的文件的命令:os.walk():
原始文件路径如:
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704231225610-1539933992.png)
输出:
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704231234733-1402570767.png)
- 例子:给文件改名
日期时间相关的module
![](https://images2018.cnblogs.com/blog/1404335/201807/1404335-20180704231318472-1240443888.png)
两个可直接使用的function:
#时间戳转格式化好的时间
#1. 首先要把时间戳转成时间元组
#2. 再把时间元组转成格式化好的时间
def timestampsToString(timestamps=None, format='%Y-%m-%d %H:%M:%S'):
if timestamps:
time_tuple = time.localtime(timestamps) #转成时间元组
return time.strftime(format,time_tuple)
return time.strftime(format)
res = timestampsToString(2234123120)
print(timestampsToString())
# 格式化好的时间转时间戳
# 1. 首先把格式化好的时间转成时间元组
# 2. 把时间元组转成时间戳
def strToTimestamp(format_time=None, format='%Y%m%d%H%M%S'):
if format_time:
time_tuple = time.strptime(format_time,format)
return int(time.mktime(time_tuple))
return (time,time())
print(strToTimestamp('20190221180759'))