-
逻辑与或非用的是
and or not
。 -
除法即使整除结果也是浮点数
-
地板除
//
结果一定是整数。 -
内存中的字符串是Unicode编码,
str.encode('utf-8 or ascii')
将class str
为class bytes
。反之用bytes.decode('utf-8 or ascii')
将class bytes
转换成class str
。转换为bytes
后可以在存储在硬盘。decode('utf-8', errors='ignore')
可以忽略错误的byte。 -
len()
可以计算str
的字符数或者bytes
的字节数。 -
#!/usr/bin/env python3
告诉解释器python的位置 -
#-*- coding: utf-8 -*-
告诉解释器以utf-8
读取.py
文件。 -
输出格式化:
'%s, %d' % ('str', 10)
。 -
f字符串:
r = 2.5 s = 1.23 print(f'xxx {r}, sad{s:.1f}') #输出:xxx 2.5, sad1.2
-
input('')
返回一个str
-
python的变量本质上是引用,而且引用类型可变。
list
有序列表,元素可以不是同一类型,用[]
定义一个list。
方法:
- append
- insert(index, element)
- pop() 或者 pop(index)
tuple
初始化后无法修改,用()
定义。如果tuple
只有一个元素,为了避免歧义,需要在第一个元素后加上,
。 t = (1,)
。如果tuple
元素是一个列表,那么本质上不变的是列表地址(指针),列表本身的元素是可以变的。
tuple可以赋值给多个变量:a,b = (1,2)
。
循环
for x in 可迭代对象:
f(x)
while condition:
xxx
from collections.abc import Iterable
isinstance('abc', Iterable) # str是否可迭代
dict(map)
-
初始化:
d = {'key':value, }
。或者赋值:d['key2'] = value2
。 -
key in dict
判断key
是否存在。 -
dict.get('key', -1)
如果key
不存在返回-1,缺省是None。 -
dict.pop('key')
删除 -
keys
可以是不同的类型,但必须是不可变对象,不可以是list。s = 'abc' dict = {s:1} #本质上是dict{'abc' : 1}。s再被赋值成其他值也不影响dict
set
- 使用
list
初始化:s = set([xxx])
。
函数
- 参数可以看作是引用传递。
- 显示传入参数可以忽略函数定义时参数的顺序。
- 默认参数必须指向不变对象
- 可变参数
def calc(*numbers):
,函数内部numbers
是一个tuple。可以将list或者tuple传入可变参数:calc(*list)
。 - 关键字参数
def person(name, age, **kw)
,kw在函数内部是一个dict,可以把一个dict对象传进去(拷贝):person('zjz', 10, **dict)
。 - 命名关键字参数:强制调用者使用参数名字,参数列表中用
*
之后或者可变参数后边的参数代表命名关键字参数。 - 参数组合顺序必须是: 必选参数、默认参数、可变参数、命名关键字参数和关键字参数。