Python流程控制语句


Python流程控制语句

顺序结构

Created with Raphaël 2.2.0开始AB结束

分支结构

Created with Raphaël 2.2.0开始A条件BCyesno
  • 三种选择语句:

if语句

num1 = 5
num2 = 15
if num 1 <= num2:
    print('num2是比较大的数')

if…else…语句

num1 = 5
num2 = 15
if num1 <= num2:
    print('num2是比较大的数')
else:
    print('num1是比较大的数')

if…elif…else…语句

num1 = 5
num2 = 15
num3 = 25
if num1 >= num2 and num1 >= num3:
    print('num1是比较大的数')
elif num2 >= num3 and num2 >= num1:
    print('num2是比较大的数')
else:
    print('num3是比较大的数')

if语句可以嵌套,即在if语句中可以在写if语句,流程图如下

Created with Raphaël 2.2.0开始A条件B条件CDyesnoyesno

循环结构

  • 按照一定条件,反复执行某一种步骤的过程,叫循环结构
  • 有循环条件和循环体组成
  • 死循环
  • Python提供两种循环结构
    • for循环:重复一定次数的循环,也称为计次循环
    • while循环:直到条件不满足时才结束循环,也称为条件循环
Created with Raphaël 2.2.0开始A条件BCyesno
  • 对于确定次数的循环,for语句在设定初始值和终止值后,循环变量自动累加

for、while循环

for 变量 in 集合(序列/对象/range()):
	循环体
else:
	表达式
  • 每次从集合中去除一个值,并把值赋给变量
  • range([start],stop[,step])
    • start 起始值,默认为0,可以省略
    • stop 结束值,不能省略,循环到stop-1停止
    • step增减值,默认为1
  • 在循环中,print()如果有缩进,表示在for循环内,会按执行次数输出,如果没有缩进,表示没有在for循环内,输出累加结果

例如

list(range(5))  #输出[0,1,2,3,4]
list(range(4,10))  #输出[4,5,6,7,8,9]
list(range(4,10,2))  #输出[4,6,8]

例题:计算1+2+3+…+100的和。

  • for循环
sum = 0
for i in range(1,101):
    sum += i
print('sum=',sum)
  • while循环
i=0
sum = 0
while i <= 100:
    sum += i
    i += 1
print('sum=',sum)

总结

  • 固定次数的循环问题都可以用for循环和while循环来解决
  • 次数不固定的只能用while循环

逻辑运算符

if语句if…else…语句if…elif…else…
and a and b 只有a和b都成立时,才能执行if后面的语句块
or a or b a和b只要有一个条件成立,就执行if后面的语句块
not not a 条件a为false时,执行if后面的代码块
  • 这里的a和b都可以是表达式
  • 在Python中,False、None、空字符串、空列表、空元组、都相当于False

break、continue、pass

  • break
    • 用在for循环和while循环中
    • 循环条件没有false、序列还没有完全递归完,也会停止执行循环语句
    • 在循环嵌套内,break语句将停止执行最深层的循环,并执行下一行代码
  • continue
    • 用在for循环和while循环中
    • 跳出当前循环的剩余语句,然后继续执行下一次循环
    • continue是跳出本次循环,break是跳出整个循环
  • pass
    • 空语句,为了保持程序完整性
    • 一般用作占位语句
    • 只是想让程序循环一定次数,单循环过程中不执行任何操作,则使用pass

在这里插入图片描述

  • break语句会立即退出循环,不会执行else后的语句
  • continue语句会忽略后面的语句,即跳过循环剩余的语句,不结束循环进入下一次循环

break

#例1:for循环
for i in 'voider':
	if i == 'd':
		break
	print(i)
#输出v、o、i

#例2:while循环
num = 5
while num > 0:
	print(num)
	num -= 1
	if num == 3:
		break
print('I am Bad!')
#输出5、4、I am Bad!

continue

#例1:for循环
for i in 'voider':
	if i == 'd':
		continue
	print(i)
#输出v、o、i、d、e、r

#例2:while循环
num = 5
while num > 0:
	print(num)
	num -= 1
	if num == 3:
		continue
print('I am Bad')
#输出5、4、3、2、1、I am Bad!

练习

  1. 编写一个python程序,完成输入两个数,比较它们的大小并输出其中较大者。
  2. 使用Python编程,求1~100间所有偶数的和。
  3. 从键盘接收二百分制成绩(0100),要求输出其对应的成绩等级AE。其中,90分以上为A,8089分为B,7079分为C,60~69分为D,60 分以下为E。
  4. 用Python编写程序,输入一年份,判断该年份是否是闰年并输出结果。
    注:凡符合下面两个条件之一的年份是闰年。
    a)能被4整除但不能被100整除。
    b)能被400整除。
  5. 用Python编程,假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?
  6. 编程,解决猴子吃桃问题。
    猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想吃时,只剩下一个桃子了。求第一天共摘多少个桃子。(迭代法)。
  7. 使用循环语句打印一列5个*
  8. 使用循环语句输出一行5个*(提示:print(’*’,end=""))
  9. 使用循环语句输出下列图案(思考:怎么输出等腰三角形和菱形?)
*
* * 
* * * 
* * * * 
* * * * * 

【GitHub源码参考】

以上内容均属原创,如有不详或错误,敬请指出。
本文作者: 坏坏
原文地址:https://www.cnblogs.com/bad5/p/12583105.html