一、基本语法
1.变量
a.python变量的数据类型是在给变量赋值时确定的,不像C语言在使用变量时需要先定义变量;
b.python变量是对内存中某个数据的引用,而不是某一个固定内存单元的标识。这其中,x、y都指向同一块存着“1”的内存,只不过名字不同而已。
>>>x=1
>>>y=1
>>>id(x)
1458006144
>>>id(y)
1458006144
2.标识符
在python中,变量名、列表名、函数名等都用标识符来表示。
标识符是由字母、数字和下划线(_)组成(只能是这三者的组合),但不能以数字开头。
3.关键字
如“class”、"def"、“if”、“elif”、“else”等
4.缩进
和c语言不同的是,python每一行代码不以“;”结尾,其通过语句的缩进对齐来反映语句之间的逻辑关系。要么都使用空格缩进,要么都是用tab键缩进。不同的代码缩进会有不同的执行结果。
5.注释
单行注释采用#开头。
多行注释,采用三引号括起来形成多行字符串。
6.续行
在python中,每个语句行都以回车符结束。可以将多行语句放在同一行中,语句之间用分号间隔。如果语句行太长,可以使用反斜杠“\”将一行语句分多行显示。如果一行语句中包含小括号、中括号或大括号,则不需要使用多行续行符。
if year%4==0 and year%100!=0 or\
year%400==0:
print("该年为闰年")
也可以写成下面的形式:
if(year%4==0 and year%100!=0 or
year%400==0):
print(("该年为闰年"))
7.变量的赋值
链式赋值语句:
>>>a=b=c=3
python中提供了同步赋值方式,其格式为:
>>>a,b,c=10,20,30
8.模块的引用
使用Python编程时,通常会引用一些模块,这些模块也称为库。
Python的库主要分为三大类:标准模块(系统自带)、第三方模块(需要另外安装)、自定义模块。这些模块在使用之前需要引入。引入的方式有import方式和from方式。
import方式:
import<模块名>
这种引用方式在调用模块的函数时必须同时包含模块的名字,例如
>>>import turtle
>>>turtle.Pen()
为方便使用,可以用as给模块定义一个别名,例如:
>>>import turtle as t
>>>t.Pen()
from方式:可将模块中指定的函数导入到当前程序,用法如下:
from <模块名> import <函数名>
例如:
>>>from turtle import Pen #导入turtle模块中的Pen()函数
>>>Pen()
这种方式引入模块的函数后,函数前面无需再加模块名称。
如果要把模块中的所有函数都引入到程序中,可以使用如下格式:
from <模块名> import *
这种方式将库的所有函数导入到当前程序时,可能会覆盖掉当前程序中已有的相同函数名,建议谨慎使用。
二、数据类型
1.数值类型
a.整数型数据
b.浮点型数据:
两种表示方法:a.十进制小数形式:如3.14;b.指数形式:就是科学计数法表示的浮点数,如4e-2。表示0.04.
c.复数型数据
2.字符串类型
a.在python中定义一个字符串可以使用单引号、双引号或者三引号(也就是三个单引号或三个双引号)。
例如,字符串’I say:"hello"'。
用单引号或双引号括起来的字符串必须在一行内表示,这是最常见的表示字符串的方法。
用三引号括起来的字符串可以是多行的。
例如:’’’古今多少事
都在笑谈中’’’
b.特殊的字符串
\n | 回车换行 |
\' | 代表一个单引号 |
c.原始字符串
原始字符串用于显示字符串原来的意思,不让转义字符生效。这就要用到字母r或R来进行定义。例如:
>>>print(r'c:\11\a.txt')
c:\11\a.txt
>>>print('c:\11\a.txt')
c:.txt
3.布尔类型
4.复合数据类型
列表、元组、字典和集合是Python的复合数据类型
列表:
>>>list1=[1,5,9,'x','y']
元组:
>>>tup=(5,'x','y')
字典:
>>>dict={"name":LiMing,"age":20}
集合:
>>>set1={'Bob','Jack','Tom'}
5.类型转换函数
float()函数:可以将其他类型的数据转换为浮点型,例如:
>>>float(3)
3.0
int()函数:
>>>int(3.14)
3
>>>int(float('3.14'))#有的字符串不能直接转换为整型,应该分两步转换
3
str()函数:
>>>str(3.14)
'3.14'
>>>str(True)
'True'
bool()函数:可以将其他类型的数据转换为布尔型
complex()函数:可以将其他类型转换为复数
chr()函数:将一个整数按ASCII码转换为对应的字符,例如:
>>>chr(65)
'A'
ord()函数:ord()函数则是把字符转换为对应的ASCII码或Unicode编码值。
三、基本运算
a.数学运算
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
// | 整除 |
% | 求余 |
** | 求幂(3**2=9) |
python提供了一些常用的数学运算函数,如
>>>abs(-3.14)#求绝对值
3.14
>>>divmod(7,4)#求商和余数
(1,3)
>>>pow(4,2)#求乘方
16
>>>round(1.5)#采用“奇进偶不进”的方法取整
2
>>>round(2.5)
2
>>>max(1,3,5)
5
>>>min(1,2,3)
1
b.位运算
c.关系运算(>、<、==、!=、>=)
d.逻辑运算
and(逻辑与)、or(逻辑或)、not(逻辑非)
e.测试运算
in(查找指定序列中某个值是否存在,存在返回ture)和not in
>>>3 in(1,2,3,4,5)
True
>>>3 not in(1,2,3,4,5)
False
四、字符串
a.创建字符串
>>>s1="abcd1234" #字符串可以包含任意字符
>>>s2='He said:"hello!"' #字符串里面包含双引号,外面需要用单引号
>>>s3='Let's go!' #字符串外面是单引号,里面的但引号前需加反斜线\转义
SyntaxError:invalid syntax
>>>s3='Let\'s go!'
>>>s3
"Let's go!"
>>>s4=r"c:\11\q1\a1.txt" #字符串前面加R或r,禁止转义,按字面意思使用
b.字符串的访问
c.字符串常用方法
如大小写转换、字符串对齐处理、字符串替换、字符串的运算等
五、输入输出
基本输入函数input(),
基本输入函数input(),其使用格式如下:
<变量>=input(<提示信息>)
>>>a=input()
1
>>>a
'1' #input()返回值为字符串
>>>a=int(input())
1
>>>a
1
eval()函数,其用法如下:
<变量>=eval(<字符串>)
>>>x=eval('123')
>>>x
123
基本输出函数print(),其用法如下:
print(<输出项>)
>>>a,b,c=1,2,3
>>>print(a,b,c)
1 2 3
print()函数输出文本时会默认在最后增加一个换行,如果希望输出文本后增加其他内容,可以使用end参数,如:
>>>for i in range(3):
print(i)
0
1
2
>>>for i in range(3):
print(i,end',')
0,1,2,
六、格式化输出
d | 按十进制输出一个整数 |
b | 按二进制输出一个整数(format()中使用的说明符) |
o | 按八进制输出一个整数 |
x | 按十六进制输出一个整数 |
f、e、g | 按小数形式或科学计数法形式输出一个整数或浮点数 |
c | 输出以整数为编码的字符 |
s | 输出字符串 |
Python提供了格式化运算符%,format内置函数和format()方法用于格式化输出
>>>print("书的价格是%.2f"%12.3)
书的价格是12.30
>>>print(format(12.3,'.2f'))
12.30
>>>print("书的价格是{0:.2f}".format(12.3)) #"0:"是指format()中数据的序号
书的价格是12.30
一、格式化运算符%在python2中用得很多,python3仅是为了兼容python2而保留格式化运算符%,其使用格式如下:
格式字符串%(逗号分割的输出项)
>>>print("%5.2f\n%05.1f\n%-6.1f\n%-7.3f"%(3.14,3.14,3.14,3.14))
3.14#5个宽度两位小数
003.1
3.1#这里大概是默认左对齐
3.140
二、format()内置函数可以将一个输出项单独进行格式化,其使用格式如下:
format(输出项,[格式说明符])
>>>print(format(65,'c'),format(65,'b'),format(65,'o'))
A 1000001 101
三、format方法是python3中主要的格式化输出方法,它把字符串当成一个模板,通过传入的参数对输出项进行格式化。其使用格式为:
格式化字符串.format(逗号分割的输出项)
其中,格式化字符串=普通字符+格式说明符
而格式说明符={[序号或键]:格式说明符}
>>>print('{0}的成绩是{1}'.format('高山',90))
高山的语文成绩是90
<键>形式的格式说明符,用于指向使用改键的参数,例如:
>>>print('{xm}的{kc}成绩是{cj}'.format(xm='高山',cj=90,kc='语文'))
高山的语文成绩是90
花括号{}形式的格式说明符,按自然顺序输出,例如:
>>>print('{}的{}成绩是{}'.format('高山','语文',90))
高山的语文成绩是90
注:这里只讨论了输出函数的一些参数,其他参数用到现学即可。
七、顺序结构
八、选择结构
单分支选择结构:
其格式如下:
if 表达式:
语句块
示例:
if a<60:#注意空格和冒号
print("不能评奖学金\n")#注意向右缩进
print("因为成绩为{}".format("不及格"))#注意语句块的对齐
双分支选择结构:
其格式如下:
if 表达式:
语句块1
else:
语句块2
示例:
if a<60:#注意空格和冒号
print("不能评奖学金\n")#注意向右缩进
print("因为成绩为{}".format("不及格"))#注意语句块的对齐
else:
print("可以评奖学金\n")
双分支还有一种更简洁的表示方式,适合“语句块1”和“语句块2”都只包含简单表达式的情况,其格式如下:
<语句块1> if <表达式> else <语句块2>
示例:
print("不能评奖学金\n") if a>600 else print("可以评奖学金\n")
嵌套分支选择结构:
if a>=60:
if a>=90:
print("一等奖学金\n")
else:
if a>=80:
print("二等奖学金\n")
else:
print("三等奖学金\n")
else:
print("下次加油\n")
多分支选择结构:
if 表达式1:
语句块1
elif 表达式2:
语句块2
......
elif 表达式n:
语句块n
else:
语句块n+1
九、循环结构
while循环
其格式如下:
while 表达式:
语句块
示例:
i=1
while i<=3:
print("加油!\n")
i=i+1
for循环
其格式如下:
for 循环变量 in 对象:#执行过程中从对象逐个提取元素,放在循环变量中并执行语句块,这种处理模式称为遍历。对象可以是字符串、列表、元组、字典、文件或range()函数等
语句块
注:for常与range()函数配合使用,该函数用于生成整数序列,格式是range(start,end,step),其中start表示序列的起始值,可以省略,默认从0开始;end表示序列的结束值,但不包括end;step表示序列的步长,可以忽略,默认为1.
示例:
for i in range(5):
print(i)
运行结果:
0
1
2
3
4
for i in range(1,5):
print(i)
运行结果:
1
2
3
4
for i in range(9,1,-4)
print(i)
运行结果:
9
5
循环控制语句
break语句:用于跳出它所在的那层循环
continue语句:用于结束本次循环,继续下一轮循环。
pass语句:是空语句的意思,不做任何操作,相当于占位语句。
else语句:是while和for循环的扩展模式。如果循环正常结束,则执行else子句;若非正常结束而是break提前退出,则不执行else子句。
示例:
while True:
key=input("请输入密码:")
if len(key)<6 or len(key)>6:
print("长度为6位,请重新输入!")
continue#如果没有continue,循环就不会执行了
elif key=="778899":
print("密码正确!")
break
else:
print("密码有误,请重新输入!")
十、列表
十一、元组
十二、字典
十三、集合
十四、函数
a.函数的定义
def 函数名([形式参数列表]):
函数体
[return <返回值>]
示例:
def f():
pass
b.函数的调用
函数名(实际参数列表)
示例:
首先定义一个函数
def j(n):
f=1
for i in range(1,n+1):
f=f*i
return f
对该函数进行调用
print(j(10))
c.函数的参数类型
位置参数
def j(x,y):
return x*y
j(1,2)
关键字参数
def j(x,y)
print("x=",x,"y=",y)
j(y=10,x=20)
运行结果:
x=20 y=10
默认值参数
def j(x,y=20,z=10): #y和z已有默认值
print("x=",x,"y=",y,"z=",z)
j(5,10)
程序结果如下:
x=5 y=10 z=10
注意:默认值参数必须出现在形参表的最右端。也就是说,第一个形参使用默认值参数后,它后面的所有形参也必须使用默认值参数,否则会出错。
元组可变长参数
字典可变长参数
d.变量的作用域
d.1 在函数体内部,如果要为全局变量重新赋值,可以使用global语句。
>>>a=1
>>>def f():
a=a+2 #修改全局变量的值
print(a)
>>>f()
error
修改全局变量,要用到global关键字
>>>a=1
>>>def f()
global a #global关键字声明
a=a+2
print(a)
>>>f()
3
d.2 同一个程序里,如果全局变量与局部变量同名,则在局部变量的作用范围内,全局变量不起作用。
e.匿名函数(没有函数名的函数)
格式:
<函数对象名>=lambda <形式参数列表>:<表达式>
示例:
def add1(x,y):
return x+y
可定义为匿名函数:
f=lambda x,y:x+y
函数对象名可以作为函数直接调用,对于上例,可以这样调用:
a,b=2,3
result=add1(a,b)
或直接调用:
result=(lambda x,y:x+y)(2,3)
f.递归函数