python基础
数据类型
- 整数:在程序中的表示方法和数学上一样。
- 浮点数:小数,数字很大时10用e表示,例如1.23×109要写成1.23e9。
- 字符串:用单引号’ 或双引号" 括起来的任意文本,如果字符串内部含有引号用转义字符即可(例如\’,转义字符\可以表示很多,\n表示换行,\t表示制表符,\本身也要转义,\\表示的字符是\)。
- 布尔值:True和False,可以用and,or,not计算。
- 空值:None,不可以理解为0,0是有意义的,而None就是空值。
变量
- 变量名必须是大小写英文、数字和_的组合,且不能用数字开头。
- 变量不仅可以是数字,还可以是任意数据类型。
- 常量就是不能变的变量,通常用全部大写的变量名表示常量。
字符串
- 在最新的Python3版本中,字符串是以Unicode编码的,即Python的字符串支持多语言。
- 字符串str,字节byte
- 格式化字符串,%s表示用字符串替换,%d表示用整数替换。如果不知道用什么,%s永远起作用,它会把任何数据类型转换为字符串。
- 编码内容太难了[哭]
list
- list是可变的有序集合,可以随时添加和删除其中的元素,可以往list中追加元素到末尾。
- len()函数可以获得list元素的个数,元素位置索引从0开始,最后一个是-1。
- append()函数可以追加元素到末尾。
- insert(i,p)函数可以插入元素p到任意位置i。
- pop(i)可以删除i位置的元素。
- list的元素也可以是另一个list。
tuple
- tuple一旦初始化就不能修改,也没有append(),insert()这样的方法,因为其不可变所以更安全,能使用tuple就不用list。
- 如果tuple里面包含一个list,虽然list不能指向到别的元素只能是list,但是list本身内容可变。
- 定义一个空的tuple,写成()。
- 定义一个只有1个元素的tuple,必须加一个逗号,例如t=(2,)只有一个元素2的tuple。
条件判断和循环
- 条件判断用if语句实现,要接冒号:,后面可以加elif做更细致的判断。
- 一种循环是for…in…循环,依次吧list或tuple里面的元素迭代出来。
- break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环。
dict和set
- dict字典,使用键-值(key-value)存储,查找速度非常快,一个key只能对应一个value,如果key不存在dict就会报错。
- 删除key用pop()的方式,其value也会一起删除。
- set和dict类似,也是一组key的集合,但不存储value,所以set中没有重复的key。
- add(key)方法可以添加元素到set中。
- remove(key)方法可以删除元素。
函数
- 调用函数:python中内置很多函数,知道函数的名称和参数就可以直接调用。
- 定义函数:定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。
- 空函数:如果想定义一个什么事也不做的空函数,可以用pass语句,虽然pass语句什么都不做,但是可以用来当做占位符,
def nop():
pass
- 参数检查:参数个数不对,系统可以自己检查,但是类型不对无法检查。
- 函数可以返回多个值,也就是tuple。
- 函数的参数除了正常的必选参数以外,还有默认参数、可变参数和关键字参数。默认参数就是把参数设置一个默认值,如果不输入其他值就是默认值。可变参数就是传入的参数个数可变,定义可变参数在参数前面加一个*即可,调用的时候不需要组装出一个list或者tuple。关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数,命名关键字参数必须传入参数名。
- 递归函数就是一个函数在内部调用自身本身,优点是定义简单逻辑清晰,缺点是存在栈溢出的问题(听不懂什么意思= =),可以通过尾递归防止栈溢出。
def person(name, age, *, city='Beijing', job):
print(name, age, city, job)
>>> person('Jack', 24, job='Engineer')
Jack 24 Beijing Engineer
以上,*后面的city和job是关键字参数,其中city具有默认值,调用时可以不传入city的参数,输入engineer时必须同时输入参数名job。
高级特性
切片
- L[1:3]表示从索引1取到3(共两个),如果从索引0开始0可以省略L[:3],python支持倒数切片L[-2:]表示从倒数第二个取到最后,L[-2:-1]表示从倒数第二个取到倒数第一个(只有一个)。
>>>