除开函数外的 python 基础知识总汇,用于复习及查看,写的会很简略
# 基础知识
普通的除法:1/2 0.5
整除: 1//2 0
取模:%
乘方:23 (-32 等同于 -(3**2))
十六进制:0xAF
八进制:010
变量无需声明即可使用
1 | x = 3 |
变量名命名同 C 语言
print 在 python2 是语句,在 python3 中是函数,所以应当加上()
1 | input ( "The meaning of life: " ) |
1 | pow ( 2 , 3 ) |
round 函数会把浮点数四舍五入为最接近的整数值 ( py2 与 py3 对于 0.5 的取值有所不同)
abs 绝对值函数
可以用变量来引用函数
1 | import math |
math 中的 sqrt 不支持复数运算而 cmath 中支持
1 | import cmath |
字符串是值,就像数字一样,单引号和双引号没有本质区别
\ 与 C 语言中一样使用
字符串之间可以拼接
1 | "hello," + "world" |
转换成字符串有两种方式
str 将对象转换成用户看的,repr 转换成 python 表达式
1 | print ( repr ( "hello world" ) ) |
长字符串:
1 | print ( """ This is a very long string |
原始字符串
1 | path = 'c:\\program\\fnord' |
# 序列
列表和元组的区别在于列表可以修改而元组不可以
通用的序列操作:索引,分片,加,乘
索引同数组,数组最后一个元素的位置标号为 - 1 如:greeting [-1]
print 的返回值是一个序列,所以我们可以如此调用
1 | fourth = input ( "Year: " )[3] |
列表可以相加与相乘,例如
1 | endings = ['st','nd','rd']+17 * ['th',] \ |
分片
numbers [-3:-1]
numbers[-3:]
numbers[0::2]
numbers[-1:0:-2]
成员资格:in 函数
长度:len
最大值:max
最小值:min
# 列表
list 函数 对立: ''.join (somelist)
删除元素 del names [2]
分片赋值:可以使用与原序列不等长的序列将分片替换(可以用来删除某一段)
1 | numbers[1:1] = [2, 3 ,4 ] |
.append( )
.count ( )
.extend ( ) 追加一个序列
.index ( ) 找出第一个匹配项索引位置
.insert (i , value) 插入
.pop ( ) 移除最后一个值并返回值
.remove ( ) 移除第一个匹配项
.reserve ( ) 反向存放
.sort ( ) 会该表原来的列表修改,也就是说修改副本不会影响原本,反之不然
sort 里面可以有参数如 cmp,key=len,reserve=True
sorted ( ) 返回已排序的列表副本
# 元组
如果你用逗号分隔了一些值,那么你就自动创建了元组
tuple ( ) 类比于 list
# 字符串
1 | format = "hello , %s , %s enough for ya!" |
模板字符串:
1 | from string import Template |
转换符包括(注意顺序)
- %
- 转换标志 ,- : 左对齐,+ : 正负号,"" 正数前保留空格,0:位数不够用零来凑
- 最小值宽(若为 * 则从元组读入)例如 '%. * s' % (5 , 'dada')
- . 后跟精确度
字符串方法:
.find ("target" ,start ,end) 查找字串 (start end 可忽略)
sth.join ( )
.lower ( ) 转换成小写
.title () //.capwords () 标题
.replace (A , B) 查找并替换
.split ( ) join 的逆运算
.strip () 去除两侧空格,可自己添加例如.strip ( ' * !')
.translate ( ) && .maketrans python3 有所区别,运用时自己网上查
# 字典
创建: phonebook = {'A' : 1 , 'B' : 2 ......}
dict (序列)
len ( )
d[k]
d[k] = v
del d[k]
k in d 检查 d 中是否有含有键为 k 的项
字典可以嵌套,类比于多维数组
1 | template = "%(title)s , %(ooo)d " |
.clear ( ) 原本操作
.copy ( ) 替换值不变原本,修改值会变
.deepcopy (copy 函数库中) 复制其包含的所有值
.fromkeys ([] , 'default' ) or dict.fromkeys ( [ ] , 'default' ) 给给定的键建立新的字典
.get ('value') 访问不存在的项返回 None
.has_key ('value') 查询是否有此键,py3 中被__contains__(key) 替代
.items () 把所有项以列表形式返回,且每一项返回 (键,值) 的形式
.iteritems ( ) 返回迭代器
.keys ( ) 返回键 , 同上
.itereys ( ) 同上
.values ( ) 同上
.itervalues ( ) 同上
.pop (' 键 ') 删除对应的键值对
.popitem ( ) 随机弹出项
.setdefault (键,'default')
.update (x) 有则不变,无则加之
# 条件、循环和其它语句
print: , 即空格,print 即换行(除非在最后加,)
import somemodule
from sm import sf
from sm import sf as (可避免重名)
解包时可在最后用 * rest 把剩下的值都存入 rest
+=
- =
1 | if ... : |
x is y x 和 y 是同一对象
x is not y ...
x in y
x not in y
可以使用 x<y<z
断言:assert 判断条件
如果不满足直接程序崩溃
while 判断 :
代码块
代码块
for i in sequence :
...
...
range ( 3 )
[ 0 , 1 , 2 , 3 ]xrange ( 3 )
同 range 只不过是一个一个给出的,更为高效