Python语法基础
基本语法
1. Python是个好东西,结合了解释性,编译性,互动性和面向对象的高级程序设计语言,具有结构简单,语法定义清晰的特点。
2. 简单语句没有专门的结束符,自然结束。复合语句以:开始,同一语句块缩进必须对齐。空语句用关键词pass表示。注释语句以#开始。
相比其他的语言,Python使用缩进来表示代码块,而不是一对大括号{}。其中缩进的空格是可变的,但要求同一代码块的语句包含相同的缩进空格数。
#一行一句 x = 100 print("x=",x) #一行多句 y= 200; print("y=",y) #一句多行 z \ = 300 print("z=",z) #复合语句 if x<=y : print(x,"<=",y)
x= 100 y= 200 z= 300 100 <= 200
3. Python有6种标准的数据类型:number(数字),str(字符串),list(列表),tuple(元组),set(集合)和dict(字典)。
Python的数据类型全都是引用类型。不可变数据类型有number,str,tuple,可变数据类型有list,set,和dict。
不可变数据类型:是指存储该类型数据的内存空间的数据值不能改变,如果给不可变类型的变量重新赋值,则系统会分配新的内存空间存储新的值,变量指向新的内存空间。
比如:先a=1,此时开辟个内存空间存放1这个值,a指向该空间。而后a=2,此时并不是将原先空间中1的值改为2,而是新开辟空间存放2这个值,a指向这个新的空间。
可变数据类型:是指存储该类型数据的内存空间的数据值是可以改变的。如果给可变类型的变量重新赋值,则系统会把新值写入当前的内存空间,覆盖现有的值。
4. 关于Python变量和赋值,先定义,后使用:赋值即定义,没有定义变量的关键字,不需要指定数据类型。变量的数据类型,由值决定。所以Python是动态类型语言,可以先后给同一变量赋不同类型的值。
Python通过拆包式赋值可以同时给多个变量赋值,以逗号隔开。以及链式赋值,给多个变量赋同一个值。
通过dir()函数可以查看以定义的所有变量,通过type(x)函数可以查看x变量的数据类型,通过del x可以删除以定义的x变量。
#变量定义赋值 x=100 print(x) x=True print(x) #拆包式赋值 a,b,c=11,15,20 print(a,b,c) #拆包式赋值可以分别赋值不同类型 d,e,f="yyy",3.1415926,1115 print(d,e,f) #链式赋值 g=h=i=111 print(g,h,i) #变量值调换 a,b=b,a print(a,b) #删除变量,注意del 是语句,不是函数 del c print(c)
100 True 11 15 20 yyy 3.1415926 1115 111 111 111 15 11 --------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-25-b78bf7c928e9> in <module> 12 print(a,b) 13 del c ---> 14 print(c) NameError: name 'c' is not defined
5. number数字类型,int,float,bool,complex
int,整数,长整型,没有大小的限制(c++留下羡慕的泪水)
float,小数,可以用科学计数法表示
bool,True和 False,分别代表1和0,可以和数字相加
complex,复数,由实部和虚部两部分组成,a+bj或者complex(a,b),a和b都是浮点型
特殊值,空:None表示
Python是强类型语言,除number数字类型外,不支持自动类型转换。通过调用和数据类型同名的内置函数实现强制类型转换。
6. 序列sequence,泛指一类数据元素有先后顺序(序号,下标,索引)的容器类型。
序列类型:字符串,列表,元组
序列操作:索引访问,切片,*重复,迭代,拆包式赋值。
专用函数:长度len()。排序sorted()。逆序reversed()。跟踪索引enumerate()。同步(并行)计算zpi()。
7. 运算符和表达式
Python的运算符跟其他语言差不多,不同的地方有,/并不是整除,整除有专门的算术运算符//,并且幂也有用**表示,没有自加自减运算符。
特殊的运算符:is/is not:判断是否指向同一个引用。in/not in判断某个变量是否在给定容器(集合)中。
#除 print(5/10) #整除 print(5//10) #幂 print(5**2) x=4 #不存在++x和++x ++x print(x)
0.5
0
25
4