Python语法很多来自C,但又受到ABC语言的强烈影响。来自ABC语言的一些规定直到今天还富有争议,比如强制缩进。但这些语法规定让Python容易读。
解释型语言:开发过程中没有了编译这个环节,和C的shell类似
交互式语言:可以在一个Python提示符,直接互动执行写你的程序
面向对象语言:支持面向对象的风格或代码封装在对象的编程技术
初学者的语言::对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发
特点:简单易学、丰富的库、快速开发、免费开源、可移植性、解释性语言、可扩展
标准输出:
print(*values,sep=' ', end='\n', file=sys.stdout,flush=False)
values:表示要打印的值,各个值之间用逗号隔开
sep:表示当输入多个打印的值时,各个值之间分割方式,默认空格间隔,可自定义
end:控制print中传入值输出的结束符号,默认换行,可自定义
file:设置输出对象,把print中的数据打印到什么地方,默认为终端,可自定义
flush:该参数主要是刷新,默认False,关闭再刷新,Ture为实时刷新
标准输入:
a = input()
括号内可写字符串来提示用户输入
变量赋值:
a = 1; a = b = 1; a, b = 'a', 2
先为赋值数据开空间,再给空间取别名(变量名),及当赋值数据相同时,被赋值的变量地址相同
标准类型:
numbers(数字):整型,浮点,复数类型
string/bytes(字符串):文本字符串,字节字符串
list(列表):使用[]标识
tuple(元组):类似列表,使用()标识,只读
dictionary(字典):使用{}标识,key:value键值对
不可变类型(数字、字符串、元组):不支持原处修改
可变类型(列表、字典):可以通过操作原处修改,而不用创建新的对象
数字类型转换:
int(a)/float(a):转为int/float类型
complex(a) :复数转换,实数为a,虚数为0
complex(a, b) :实数为a,虚数为b
数学函数:
abs(a):返回数字绝对值,返回任意类型
math.ceil(a):向上取整
math.exp(a):e的a次幂,返回浮点类型
math.fabs(a):返回数字绝对值,返回浮点类型
math.floor(a):向下取整
math.log(a,b):b为底数,返回浮点类型
math.log10(a):10为底数
math.max(a,b,c,...)/math.min(a,b,c,...):取最大/小值,参数可为序列
math.modf(a):返回x整数和小数,整数以浮点类型表示
math.pow(a,b):a的b次方
math.round(a[,n]):a的四舍五入,给定n表示小数后的位数
math.sqrt(a):a的平方根
随机数函数:
random.choice(seq):从seq序列中选一个元素
random.randrange([a, ]b[, c]):a为数字起始,b为结尾(不包括b),c为步长
random.random():生成浮点数,范围(0, 1)
random.seed():改变随机数生成器的种子
random.shuffle(list):将序列所以元素随机排序
random.uniform(a, b):生成浮点数,范围(a, b)
random.randint(a, b):生成整数,范围(a, b)
字符串:
str = "hello word":文本字符串
str = b"hello word":字节字符串
str, str[0:2], str[2:], str[:2], str[1:-1], str[::2], str+"!!!", str*2
len(str):返回str字符串的
str.find("xxx"):在字符串str中查找"xxx",找到返回找到的"xxx"的起始索引,没有返回-1
str.index("xxx"):与find相似,没找到会抛出异常
str.count("xxx"):返回"xxx"在字符串str中出现的次数
str.replace("xxx","xx"):将字符串str中的"xxx"替换为"xx"
str.encode(encoding="xxx", errors="xx"):将"xx"类型字符串转换为"xxx"类型的字符串,"xxx"默认为"utf-8"(字节字符串),"xx"默认为"strict"(文本字符串)
str.decode(encoding="xxx", errors="xx"):将"xxx"类型的字符串转换为"xx"字符串
列表:
list1 = [1, 2, "hello", [1, 2]]
list2 = [1, 2, list1]
list3 = [4, 6, 2, 1, 8]
list4 = [('c', 1), ('b', 4), ('d', 8), ('a', 2)]
list2[2][2][2]:访问到list2中的list1中的"hello"中的"l"
list1.append(1):追加"1"
list1.insert(1,2):在list1的下标"1"的位置插入"2"
list3.sort()/sorted(list3):将list3升序排序(列表内容必须为可比较的)
list4.sort(key=lambda x : x[0])/sorted(list4, key=lambda x : x[0]):设置key值以排序
元组与list用法一样(无增删改查函数),使用"()",但其内部元素不可变(元素为可变类型时,该元素内部数据可更改)
字典:
{key:value, key2:value2, ...}:key只能是数字或字符串,value能是任意类型
函数:
def 函数名(形参列表):
函数体
返回值
形参列表与C/C++相似,形参类型在函数调用时决定(传递的实参类型)
返回值可为任意类型,可返回多个数据
map(fun,[i for i in range(10)]):map函数将第二参数作为第一参数(函数)的输入,返回保存结果的地址
函数体内使用全局变量时使用"global"关键字声明
匿名函数(lambda):
lambda 形参1, 形参2, ...:返回值
lambda表达式不能返回多个值
列表推导式:
list1 = [i for i in range(1, 11)] —>[1, 2, 3, 4, ..., 10]
list1 = [i for i in range(1,11) if j % 2 == 0]