流程控制与函数
流程控制
各个语言中,流程控制语句无非就三种
1.顺序结构
2.选择分支结构
这里需要注意一下,在Python中,只有if……else结构
提醒一下,在Python中书写代码一定要注意代码的缩进。
3.循环结构
这里为啥只说了一个循环结构呢,别着急,for很重要,并且他不算是严格意义上的循环结构
列表也是一样的操作。
我们着重讲一下字典的操作
这里打印出来的是我们字典里面的键
就相当于
若果想遍历值
两种写法
最主要的是如何同时遍历键与值
这里用到了一个我们前面没讲到的内置方法 items 这个方法的作用是把字典变成一个个的元组
(key,value)
。
。
。
很多个。
当然如果不想元组的形式输出,我们可以这样写
python是一个很开放的语言,有些技巧多学学总会有好处,写之前你也没想到python的for可以这样写。
既然讲到了选择分支跟循环结构,那就要说说两个关键字
break 结束所在的一个循环,执行下面的代码
continue 暂停本次循环,立即执行下次循环
光说没用,我们来看例子
当然,我在这里遇到一个问题,困扰了我十几分钟,就是如果程序我这样写,结果会是啥样
下面展示一些 内联代码片
。
// A code block
var foo = 'bar';
i = 0
while i <= 10:
if i == 3:
continue
elif i == 6:
break
else:
pass
print(i)
i += 1
我把运行结果放在下面
这是为什么呢?
从左边可以看到,我们的程序还没有结束,还在运行。
因为如果把递增放在continue下面,continue暂停之后,下面的代码是没有运行的,所以没法递增,自然卡在这里。
如果是break可不可以呢,
当然可以,因为break直接跳出循环,之后整个循环都结束了,所以在前在后无所谓,但是,还是要注意代码的逻辑。
接下来说一下else与循环结合的用法
直接上实例来解析用法,
下面展示一些 内联代码片
。
// A code block
var foo = 'bar';
i = 0
while i <= 10:
print(i)
i += 1
else:
print('循环结束')
i = 0
while i <= 10:
print(i)
i += 1
if i ==3:
continue
else:
print('循环结束')
i = 0
while i <= 10:
print(i)
i += 1
if i ==3:
break
else:
print('循环结束')
代码实例放在这,自己去试试,我就直接说了
前两个会输出循环结束,第三个不会
因为只有在循环正常结束才会运行else的语句。
当然for循环也是如此。
还记得之前做过的一个练习题吗
求一百以内的素数,我们可以改进一下程序。
下面展示一些 内联代码片
。
// A code block
var foo = 'bar';
import math
for i in range(2,100):
if i == 2:
print(i)
else:
for j in range(2,i+1):
if j == i:
print(i)
elif i / j == i // j:
break
我们来改进一下程序。
检查一下跟之前的输出有无不同。
range 这个内置函数可以生成指定范围的序列,但是是前闭后开,例如range(2,87)2~86
函数
1.内置函数
2.自定义函数
Python函数的参数是函数中比较重要的,也是比较灵活的。
函数的参数
1.必须参数
调用时必须按照函数定义的参数列表的顺序依次传递
2.参数的默认值
如果没有传入某个参数的值,使用默认值。
默认参数,调用时可以传值也可以不传。
3.关键字参数
在调用方法时,使用参数名=传递参数来指定传入的值属于哪个参数
4.可变参数
*定义的参数 (会将传递的参数封装到元组当中)
**定义的参数 (会将参数自动封装到一个字典中)必须使用关键字的方式传入参数
这样就报错了,所以我们使用关键字传入参数试试。
这样不就对了。
函数的返回值
Python是不需要指定函数是否有返回值,需要返回在后面加上return就好了
求两个数的最大值
但是呢,在Python中可以返回多个值,很灵活的一个语言。
返回多个值是封装到一个元组中。当然单独都拿出来可不可以,当然可以
python是不是很灵活
但是他需要记住的方法以及技巧比较多。
今天就到这里吧。