基础
输入类型强制转化
输入为字符串形式,若要进行输入类型转换或输出提示信息,可如此形式:int(input("输入一个整数:"))
输出形势
print('a'+'b') 结果:ab
print('a','b') 结果:a b
print('%s%s'%('a','b')) 结果:ab
print()函数去掉自动添加的换行:print('a',ending='')
在函数中强制修改全局变量
例如:
global A=100
循环中的else
Python中while和for常见到配有else。
假若循环中存在break,当执行break跳出循环时,不执行else块的代码;
若正常地结束循环,则要执行else块的代码。
编码
默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。
指定编码方法:
# -*- coding: gbk -*-
#coding=gbk
指定解释器
#!/usr/bin/python3
表示 python3 解释器所处的绝对路径就是 /usr/bin/python3, 路径被写死了, 类似于编程中的"硬编码"。
#!/usr/bin/env/ python3
表示从 "PATH 环境变量"中查找 python3 解释器的位置, 路径没有被写死, 而是在"环境变量"中寻找 python3 解释器的安装路径, 再调用该路径下的解释器来执行脚本。
备注:
当命令行的解释器指定和py文件内的解释器指定冲突时,命令行优先;
以上的路径是基于Linux/Unix的。
if __name__ == "__main__":
当.py文件被直接运行时,if __name__ == "__main__":之下的代码块将被运行;
当.py文件以模块形式被导入时,if __name__ == "__main__":之下的代码块不被运行。
短路计算
匿名函数(lambda)
可以使用lambda简单快速地定义一个函数,其格式为:
[函数名] = lambda [传入参数] : [函数返回值]
例如:
add = lambda x,y : x+y
与
def add(x,y):
return x+y
一致
@函数装饰器
当程序使用“@函数”(比如函数 A)装饰另一个函数(比如函数 B)时,实际上完成如下两步:
- 将被修饰的函数(函数 B)作为参数传给 @ 符号引用的函数(函数 A)。
- 将函数 B 替换(装饰)成第 1 步的返回值。
def funA(fn):
print('A')
fn() # 执行传入的fn参数
return 'fkit'
@funA
def funB():
print('B')
print(funB) # fkit
上面程序使用 @funA 修饰 funB,这意味着程序要完成两步操作:
- 将 funB 作为 funA() 的参数,也就是上面代码中 @funA 相当于执行 funA(funB)。
- 将 funB 替换成上一步执行的结果,funA() 执行完成后返回 fkit,因此 funB 就不再是函数,而是被替换成一个字符串。
运行上面程序,可以看到如下输出结果:
A
B
Fkit
附录
pip常用命令
获取帮助:pip --help
升级 pip:pip install -U pip
安装包:pip install SomePackage
卸载包 :pip uninstall SomePackage
升级指定的包:pip install -U SomePackage
搜索包:pip search SomePackage
查看指定包的详细信息:pip show -f SomePackage
列出已安装的包:pip freeze or pip list
查看可升级的包:pip list -o
pip自升级:python -m pip install --upgrade pip
round()函数四舍六入五成双
Python2:
round()函数进行四舍五入
Python3:
①当被修约的值为5时,如果它前面的数为偶数且被修约数的后面没有数时则舍弃;
②当被修约的值为5时,如果它前面的数为奇数时则进位;
③当被修约的值为5时,如果它前面的数为偶数时且被修约数的后面还有数时,则进位。
例如:
对22.5取值是舍
对23.5取值是进
对22.51取值是进
sys.argv[]
sys.argv[]可以从程序外部获取参数,由于从外部取得的参数可以是多个,所以获得的是一个 列表 (list),也就是说sys.argv其实可以看作是一个列表,所以才能用[]提取其中的元素。其第一个元素是程序本身,随后才依次是外部给予的参数。
向程序传入参数的方式就是通过命令行:python [文件名].py [参数1] [参数2] ……
其中sys.argv[0]是指程序本身(包含路径+文件名),从sys.argv[1]开始才是传入的参数。
程序中使用该方法需要导入sys包(import sys)