python 语法基础

目录

其中记录了python跟别的语言不一样的一些基础知识点

布尔类型

True

False

除法

/ 默认的除法是精确除法

// 才是通常的取商的整数部分

字符(类似C的ASCII码)

ord() 字符对应编码

chr() 编码转字符

'aaa'.encode('utf-8') 转成对应编码形式的bytes

'aaa'.decode('utf-8')bytes转成utf-8编码

格式化输出

r = 18.0555
'%.2f%%' %r
# '18.06%'

数据类型之list(类比数组)

获取list元素个数len(变量名)

访问元素下标为负表示都是第几个元素

末尾添加元素 vary.append(...)

插入指定位置 vary.insert(1, 'Jack')

末尾元素去除 vary.pop()

去除指定位置 vary.pop(2)

元素之间的数据类型可不同

数据类型之tuple元组

list相比这样定义出来的数组内的元素是不可直接变的,数据更加安全

间接改变的原理:tuple是保持元素的指向不变,指向的内容是可能可变的,例如元素是list

t = ('A', 'B', 'C')

if语句

: 替代花括号块

elif 等价于其他语言的 else if

循环

for-in 循环 for x in ...:

continue 打破当前循环进入下一次循环

break 退出循环体

dict 键值对

d = {'A':11,'B':22,'C':33}
d['B']
# 22

找不到key时会报错,所以查key之前要判断一下key in d的返回值再查找

或者

d.get('B', -1) 第二个参数指定了找不到时返回的值

dict 中的key不可变

删除 d.pop(key)

set key的集合

初始化需传入一个list,传入的元素不能有重复的

s = set([5,5,6,7,7,6,7])
# {5, 6, 7}

添加 add(key)

删除 remove(key)

字符串对象

str.remove('a', 'A')a替换成A但是方法会返回一个新的串,原来的str不可变!

基本函数

abs()

max() 可以放任意个参数只返回最大

a = absabs函数引用发给a,调用a()效果一样

类型转换

int(要转换的变量)

其他类似

定义函数

def 替代function

缩进体置空

pass

函数返回值

居然可以有多个!! 我的三观…

def goBack(x,y)
	return x,y

a,b = goBack(1,2) 

原因:返回的是tuple

类型检查

def goBack(x,y)
	if isinstance(x, (int, float)):
		return x,y
# 允许int和float类型

参数

def power(x, n=2):
# n默认值为2

默认参数必须指向不变对象

参数可以是 list 或者 tuble,利用可变参数

可变参数 def calc(*numbers): 多参数自动组装成tuple

关键字参数 def person(name, age, **kw): 方便扩展函数的参数

参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数

尾递归优化递归函数

指在函数返回的时候,调用自身本身,并且,return语句不能包含表达式

注意:标准解释器并不支持这种用法