2.9 运算符
2.9.1 算数运算符
算数运算符就是常规的加减乘除类运算符 + - * / % ** //
比较运算符就是常规的 大于、等于、小于之类的,主要是用来做比较的,返回True 或False == != > < >= <=
2.9.3 逻辑运算符
逻辑运算符就是与或非 and or not
2.10 循环语句
2.10.1 for 循环
for 循环用来遍历(挨个调用)任何序列的项目,这个序列可以是一个列表,也可以是一个字符串,然后针对这个序列中的每个项目去执行相应的操作。
2.10.2 while循环
while循环用来循环执行某程序,即当条件满足时,一直执行某程序,知道条件不满足时,程序终止。
在写while循环时,一定要注意代码的缩进,否则容易陷入死循环。
2.11 条件语句
2.11.1 if条件语句
if条件语句是程序先去判断某个条件是否满足,如果条件满足,则执行判断语句的程序,if条件后面的程序需要首行缩进
2.11.2 else语句
else 语句是if语句的补充,if条件只说明了当条件满足时程序去做什么,没有说明条件不满足时程序去做什么?而else 语句是用来说明当条件不满足时,程序去做什么。
2.11.3 elif 语句
elif 语句可以近似理解成else_if,前面提到 if语句、else 语句都仅可以对一条语句进行判断,但有时需要对多条语句进行判断,可以使用elif 语句。
elif中可以有else语句,也可以没有,但是必须有if语句,具体执行顺序是先判断if后面的条件是否满足。如果满足则运行if为真时的程序,结束循环;如果if条件不满足就去判断elif语句,会有多个elif 语句,但是只有0个或1个elif语句会被执行。
2.12 函数
2.12.1 普通函数
普通函数一般由函数名(必需)、参数、语句块(必需)、return、变量几部分组成。
定义函数语法:
def 函数名(参数):
语句块
定义函数使用的关键词是def,函数名后面的括号里放入参数(参数可以为空),参数后面需要以冒号结尾,语句块需要缩进4个空格,语句块是函数具体要做的事情。
定义一个名为 learn_python()的函数:
def learn_python(location):
print("我在{}上学python".format(location)) # 语句块
learn_python("地铁") # 函数调用
--------------------------------------------
我在地铁上学python
上诉的函数利用learn_python()这个函数名,调用learn_python对应的语句块。
函数的参数有形参(形式参数)和实参(实际参数)两种,在定义函数时使用的参数是形参,比如上面的 location;但是在调用函数时传递的参数是实参,比如上面的“地铁”。
上面语句中直接执行了print()操作,没有返回值,我们也可以利用return 对语句块的运行结果进行返回。
定义一个含有return的函数:
def learn_python(location):
doing = ("我正在{}上学python".format(location)) # 将运行结果赋值给doing
return doing # return 用来返回doing的结果
learn_python("地铁") # 调用函数
---------------------------------------
我正在地铁上学python
定义一个含有多个参数的函数:
def learn_python(location,people):
doing = ("我正在{}上学python,人{}".format(location,people))
return doing
learn_python("地铁","很多")
-----------------------------------------------------
我正在地铁上学python,人很多。
2.12.2 匿名函数
匿名函数,顾名思义就是没有名字的函数,也就是省略了def定义函数的过程。lambda 只是一个表达式,没有函数体,lambda的具体使用方法如下:
lambda arg1,arg2,arg3,...: expression
arg1、arg2、arg3表示具体的参数,expression 表示参数要执行的操作。
普通函数:
def two_sum(x,y):
result = x + y
return result
two_sum(1,2)
------------------------------------------------------
3
匿名函数:
f = lambda x,y:x+y
f(1,2)
-----------------------------------------------------
3
2.13 高级特性
2.13.1 列表生成式
现在有一个列表,你需要对该列表中的每个值求平方,然后将结果组成一个列表。
普通方法
num = [1,2,3,4,5]
new = [] # 创建一个空列表来存放计算后的结果
for i in num:
new.append(i*2)
new
----------------------------------------------
[1,4,9,16,25]
列表生成
num = [1,2,3,4,5]
[i**2 for i in num]
--------------------------
[1,4,9,16,25]
列表生成的好处
普通的for循环
for m in list1:
for n in list2:
new.append(m+n)
等于列表生成式
【m+n for m in list1 for n in list2】
列表生成式可以减少代码行数,而且嵌套多了for循环会导致程序变很慢。
2.13.2 map(0 函数
map() 函数的表现形式为map(function,agrs),表示对序列agrs中的每个值进行funciont操作,最终得到一个结果序列。
a = map(lambda x,y:x+y,[1,2,3],[3,2,1])
print(a) # <map object at 0x0000024081BFDD90>
for i in a:
print(i) # 可以打印出来 3个元素,都是4
4
4
4
也可以使用list()方法,将结果值生成一个列表。
b = list(map(lambda x,y:x+y,[1,2,3],[3,2,1]))
b
-------------------------------
[4,4,4]
2.14 l库
要调用函数,首先需要定义一个函数,同理,要调用库,首先需要导入库,导入库的方法主要有以下两种。
import module_name #直接导入具体的库名
from module1 import module2 # 从一个较大库中导入较小的一个库