目录
第四章
1、程序分支结构;
python程序的分支结构分三种控制结构:顺序结构、分支结构、循环结构
顺序结构:按代码顺序执行代码;
分支结构:python分支结构分为单分支结构、二分支结构、多分支结构、条件判断及组合;
单分支结构:根据判断条件结果判断而选择不同向前运行路径的运行方式;
二分支结构:根据判断条件结果选择不同向前路径的运行方式;
单分支:
if <条件>:
<语句块>
双分支:
if <条件>:
<语句块1>
else:
<语句块2>
条件判断即组合:
关系操作符:
2.程序的循环结构:
python中有两个循环方式一个是遍历循环,一个是无限循环;
遍历循环:遍历某一个结构形成的循环运行方式;
语法如下:for <循环变量> in <遍历结构>:
<语句块>
从结构中逐一提取元素,放在循环变量中;由保留字和for和in组成完整遍历所有元素后结束;
每次循环,所获得的元素放入循环变量,并执行一次语句块;
遍历结构可以是range()函数、字符串、组合数据类型和文件等等
range()函数是能生成一组数字序列使用方法有两种:
range(stop)
stop:从0开始计数到stop结束,但不包括stop
range(start, stop[, step])
start: 计数从 start 开始,默认是从 0 开始,例如:range(5)等价于range(0,5)
stop: 计数到 stop 结束,但不包括 stop,例如:range(0,5)是0,1,2,3,4没有5
step:步长,默认为1,例如:range(0,5)等价于 range(0, 5, 1)
for i in range(5):
print(i,end=' ')
print()
#---------------------
for i in range(1,5,2):
print(i,end=' ')
print()
#---------------------
for i in "Python":
print(i,end='')
print()
结果:
0 1 2 3 4
1 3
Python
无限循环:由条件控制的循环运行方式;
while <条件>:
<语句块>
反复执行语句块直到条件不满足退出程序;
循环控制保留字:break和continue
break跳出并结束当前整个循环,执行循环后的语句;
continue结束当次循环,继续执行后续次数循环;
break和continue可以和for和while循环搭配使用;(和C语言基本一致)
第五章
1.函数的定义:
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
- 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号 : 起始,并且缩进。
- return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。
(以找出最大值为例)
Python 定义函数使用 def 关键字,一般格式如下:
def <函数名>(<参数列表>):
<函数体>
return <返回值列表>(可以没有返回值)
例如:
def happy():
print("happy birthday to you!")
def happyb(name):
happy()
happy()
print("happy birthday, dear {}!".format(name))
happy()
happyb("江江江江")
print()
happyb("所有人")
结果:
happy birthday to you!
happy birthday to you!
happy birthday, dear 江江江江!
happy birthday to you!happy birthday to you!
happy birthday to you!
happy birthday, dear 所有人!
happy birthday to you!
2.函数的调用:(和C语言基本一致)
注意:必须先定义后调用。
3.函数的参数传递:
可变数量参数,在参数前追加(*)实现,带*号的参数只能出现在列表最后。可以当作元组类型传递到函数中去。(个人理解:追加*号的参数,用C语言的形参、实参来描述:追加*号的参数是形参,即,只有一个带*号的形参,可以对应多个实参),例如:
>>> def v(a,*b):
print(type(b))
for n in b:
a = a+n
return a>>> v(2,66,88,2,10,100)
<class 'tuple'>
268
4.匿名函数
Python 使用 lambda 来创建匿名函数。
所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。
- lambda 只是一个表达式,函数体比 def 简单很多。
- lambda 的主体是一个表达式,而不是一个代码块。仅仅能在 lambda 表达式中封装有限的逻辑进去。
- lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
- 虽然 lambda 函数看起来只能写一行,却不等同于 C 或 C++ 的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
lambda 函数的语法只包含一个语句,如下:
lambda [arg1 [,arg2,.....argn]]:expression
5.全局变量和局部变量:
一个程序的所有的变量并不是在哪个位置都可以访问的。访问权限决定于这个变量是在哪里赋值的。变量的作用域决定了在哪一部分程序你可以访问哪个特定的变量名称。两种最基本的变量作用域如下:
- 全局变量
- 局部变量
定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中。