python基础之 流程控制
流程控制方法的使用极大的增强了程序的执行能力,使得程序能像人一样,能够判断条件并根据结果来执行一系列任务。流程控制包括 if判断、while循环和for循环。
一、流程控制之if判断
1.基本语法:
语法1:在if后面加上判断条件,如果条件满足就执行if语句内的代码块 if条件: 缩进代码块 语法2:if和else连用,else上面的所有条件都不满足时,就会执行else下的代码块。 if条件: 缩进代码块 else: 缩进代码块 ... 语法3:if和elif,else连用,elif用来连接多个条件的判断,else上面的所有条件都不满足时,就会执行else下的代码块。 if条件1: 缩进代码块 elif条件2: 缩进代码块 elif条件3: 缩进代码块 else: 缩进代码块 ... 语法4:if嵌套,在一个if语句的子代码块里再次使用if判断 if条件1: if条件2: 缩进代码块 缩进代码块
score = input('your score>>: ') score = int(score) if score >= 90: print('优秀') elif score >= 75: print('良好') elif score >= 60: print('及格') else: print('很差')
二、流程控制之while循环
if判断只能执行一次,如果想要多次执行一段代码,直到满足要求才停止,就需要用到while循环。
1.while循环:条件循环
while 条件:
缩进代码块
i = 0 while i < 5: print(i) i += 1
while后面是判断条件,当条件满足时(True),会执行子代码块,执行完子代码块时,会再次判断条件是否满足,如果满足,继续执行,如此循环。为了不让程序陷入死循环,通常会添加一段代码(比如 i+=1 这样的计数器)来控制循环。
2.while+break: break代表结束本层循环,即会无条件终止其所在循环,并且放弃执行这个循环中break下方的代码,然后跳出这个循环。
name='lalal' pwd='123' while True: input_name=input('name:') input_pwd=input('password:') if input_name == name and input_pwd == pwd: print('login successful') break else: print('username or password error')
3.while+continue: continue代表结束本次循环,直接进入下一次,即不执行本次循环中continue下方的代码,回到判断条件。
while True: num1 = int(input("give me a number>>>")) if num1 < 5: print("被break终止") break else: print("遇到了continue") continue
4.while+else:与其他语言不同的是,while循环后也可以加else,当while语句正常执行完,没有被break,就会执行else里的语句。即else的子代块只有在while循环没有被break打断的情况下才会执行
row = 1 while row <6: rank = 0 while rank<(5-row): print(" ",end="") rank+=1 print("*"*(2*row-1)) row+=1
杨辉三角
斐波那契数列
三、流程控制之for循环
for循环的底层原理实际是迭代循环(迭代器会在函数内容中提到),只要是可迭代对象,for循环都可以将其中的值遍历出来。
for循环可以对常见的字符串、列表、字典使用,而不用依赖索引。for循环与while循环相比,不需要索引,而且用法上也更加精简。而且for和while循环一样也可以嵌套,与break、continue、else连用。
1.语法
for i in range(10): 缩进的代码块
当循环对象是一个字典时,取到的是key
2.while循环 VS for循环
1)while循环:称之为条件循环,循环的次数取决于条件何时为False.
2)for循环:称之为...循环,循环的次数取决于数据包含的元素的个数
3)for循环专门用来取值,在循环取值方面比while循环要强大,以后但凡遇到循环取值的场景,就应该用for循环。
3.for+break
4.for+continue
5.for+else
6.for循环的嵌套:
for i in range(3):
for i in range(2):
print(i,j)
外层循环执行一次,内层循环要执行全部.
for i in range(1,10): for j in range(1,i+1): print("%s * %s = %s" % (j,i,i*j),end="\t") print()
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)
在python2中,range()返回一个列表,而在python3中,返回一个可迭代对象。