概述
目录
- 一、程序控制
- 分支结构
- 条件判断
- 单分支
- 双分支
- 多分支
- range() 函数
- for...in循环
- 循环嵌套
- continue语句
- while循环
- break语句
一、程序控制
流程控制是指在程序运行时,对指令运行顺序的控制。
通常,程序流程结构分为三种:顺序结构、分支结构和循环结构。
顺序结构是程序中最常见的流程结构,按照程序中语句的先后顺序,自上而下依次执行,称为顺序结构;分支结构则根据if条件的真假(True或者False)来决定要执行的代码;循环结构则是重复执行相同的代码,直到整个循环完成或者使用break强制跳出循环。
Python语言中,一般来说,我们使用if语句实现分支结构,用for和while语句实现循环结构。
流程图,是使用图形来表示流程控制的一种方法,是一种传统的算法表示方法,用特定的图形符号和文字对流程和算法加以说明,叫做算法的图,也称为流程图。俗话说千言万语不如一张图。
圆角矩形用来表示“开始”与“结束”。
矩形用来表示要执行的动作或算法。
菱形用来表示问题判断。
平行四边形用来表示输入输出。
箭头用来代表工作流方向。
分支结构
条件判断
条件语句是用来判断给定的条件是否满足,并根据判断的结果(True或False)决定是否执行或如何执行后续流程的语句,它使代码的执行顺序有了更多选择,以实现更多的功能。
一般来说,条件表达式是由条件运算符和相应的数据所构成的,在Python中,所有合法的表达式都可以作为条件表达式。条件表达式的值只要不是False、0、空值(None)、空列表、空集合、空元组、空字符串等,
其它均为True。
单分支
在Python程序中,用if 语句实现。
根据Python的缩进规则,如果if 语句判断是True ,就把缩进的两行print语句执行了,否则,什么也不做。
if <条件判断1>:
<执行1>
#单向分支选择结构是最简单的一种形式,不包含elif和else,当表达式值为True时,执行语句块,
#否则该语句块不执行,继续执行后面的代码。
如:
age = 20
if age >= 18: #注意不要少写了冒号':'
print('your age is', age) #your age is 20
print('adult') #adult
双分支
双分支语句是由if和else两部分组成,当表达式的值为True时,执行语句块1否则执行语句块2。
if <条件判断1>:
<执行1>
else:
<执行2>
age = 3
if age >= 18:
print('your age is', age)
print('adult')
else:
print('your age is', age)
print('teenager')
salary={'张三':2000,'李四':3000,'王五':4000,'刘三':5000}
print('修改前:',salary)
if salary['张三']>4000:
salary['张三']=salary['张三']+300
else:
salary['张三']=salary['张三']*1.1
print('修改后:',salary)
INnum=int(input('请输入一个数:'))
if (INnum % 2==0) and (INnum % 3==0): #注意不要少写了冒号':'
print('输入的数能同时被2和3整除')
else:
print('输入的数不能同时被2和3整除')
多分支
多分支选择结构由if、一个或多个elif和一个else子块组成,else子块可省略。一个if语句可以包含多个elif语句,但结尾最多只能有一个else。
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
age = 3
if age >= 18:
print('adult')
elif age >= 6:
print('teenager')
else:
print('kid')
#例如:根据你身上带的钱,来决定你今天中午能吃什么
money=float(input('请输入你带的钱:'))
if (money>=1) and (money<=5):
print('你可以吃包子')
elif (money>5) and (money<=10):
print('你可以吃面条')
elif money<0:
print('你的钱不够')
else:
print('你可以吃大餐')
if 语句执行有个特点,它是从上往下判断,如果在某个判断上是True ,把该判断对应的语句执行后,就忽略掉剩下的elif 和else
if 判断条件还可以简写
x=9
if x:
print('True') #输出True
只要x 是非零数值、非空字符串、非空list等,就判断为True ,否则为False
birth = input('birth: ')
if birth < 2000:
print('00前')
else:
print('00后')
# 输出 TypeError: '<' not supported between instances of 'str' and 'int'
# 此段可正常运行
birth = input('birth: ')
if int(birth) < 2000:
print('00前')
else:
print('00后')
range() 函数
range()是python的内置函数,用的地方挺多的,经常会在for循环中作为循环的次数来使用.
range(5) 生成的序列是从0开始小于5的整数:
range(101) 可以生成0-100的整数序列
给定的终止数值并不在要生成的序列里;range(10) 会生成10个值,并且是以合法的索引。生成一个长度为10的序列。range也可以以另一个数字开头,或者以指定的幅度增加(甚至是负数;有时这也被叫做 ‘步进’)
range(start, stop [,step])
# start 指的是计数起始值,默认是 0;
# stop 指的是计数结束值,但不包括 stop ;
# step 是步长,默认为 1,不可以为 0
#range() 方法生成一段左闭右开的整数范围。
for…in循环
for循环的语法结构跟前面讲的if…else有点类似,记的时候不要记混淆了。
for执行时,依次将可迭代对象中的值赋给变量,变量每赋值一次,则执行一次循环体。循环执行结束时,如果有else部分,则执行对应的语句块。else只有在循环正常结束时执行。 如果使用break跳出循环,则不会执行else部分,且根据实际编程需求,else部分可以省略。其结构如下。
for 变量 in 序列或迭代对象:
循环体(语句块1)
else:
语句块2
注意:for和else后面冒号不能丢,循环体、语句块缩进严格对齐。
#例如求1~100的累加和,range()函数是生成1到100的整数,Sum是累加的和。
sum=0
for s in range(1,101): #循环从1到100,当101时就退出循环
sum=sum+s #100次
print(sum) # 输出5050
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name) # 输出Michael、Bob、Tracy
IntL=[1,2,3,4,5,6,7,8]
s=0
for i in IntL:
s=s+i
print(s) # 输出36
for i in range(36,66):
print(i)
if i % 6==0:
print('被6整除:',i)
#列表对象中所有偶数除以2
List_sample1=list(range(20)) #创建列表对象
print(List_sample1)
for i in List_sample1: #从0循环到19
if i%2==0:
List_sample1[i]=int(List_sample1[i]/2) #除以2取整
else:
print('Over')
print(List_sample1)
'''
输出
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
Over
[0, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19]
'''
#工资大于3500的增加10%,低于3500的增加20%
salary={'张三':2000,'李四':3000,'王五':4000,'刘三':5000}
print('修改前:',salary)
for i in salary:
if salary[i]>3500:
salary[i]=salary[i]*(1+0.1)
else:
salary[i]=salary[i]*(1+0.2)
print('修改后:',salary)
N1=int(input('请输入第一个数 N1:'))
N2=int(input('请输入第二个数 N2:'))
if N1>N2:
print('第一个数 N1 必须小于第二个数 N2')
else:
for i in range(N1,N2):
if i % 6==0:
print(i)
#要以序列的索引来迭代,您可以将 range() 和 len() 组合如下:
a = ['Mary', 'had', 'a', 'little', 'lamb']
for i in range(len(a)):
print(i, a[i])
循环嵌套
for循环嵌套是指在for循环里有一个或多个for语句,循环里面再嵌套一重循环的叫双重循环,嵌套两层以上的叫多重循环。
例如使用两个for循环打印出九九乘法表,使用for循环和range()函数,变量i控制外层循环,变量j是控制内层循环的次数。
# 九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print(str(j)+'*'+str(i)+'='+str(i*j),end=' ')
print()
continue语句
在循环过程中,continue语句是结束本次循环(循环体中continue后面的语句不执行),进入下一次循环。
# 输出50到80(不含)的数字中,无法被3整除的数字
for i in range(50,80):
if i % 3 ==0: # 如果满足该条件,则后面的语句不再执行
continue
print(i,end=' ') #输出50 52 53 55 56 58 59 61 62 64 65 67 68 70 71 73 74 76 77 79
#例如求1!+2!+3!+4!+…+10!的和
summ=0
for j in range(1,11):
num=1
for i in range(1,j):
num=i*num
summ=summ+num
print(summ) # 输出409114
# 例如把1~100中不能被3整除且不含字符3的数输出。
for i in range(1,100):
if (i % 3 ==0) or ( '3' in str(i)):
continue
print(i,end=' ') #输出1 2 4 5 7 8 10 11 14 16 17 19 20 22 25 26 28 29 40 41 44 46 47 49 50 52 55 56 58 59 61 62 64 65 67 68 70 71 74 76 77 79 80 82 85 86 88 89 91 92 94 95 97 98
while循环
当不知道循环次数,但知道循环条件时,一般使用while语句。与for循环类似,可在循环体中使用break和continue语句,break语句可以提前退出循环。else部分可以省略。
注意:在Python中没有do…while语句。
while 循环条件:
循环体(语句块1)
else:
语句块2
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum) # 输出2500
break语句
它的作用是跳出循环或终止循环,执行循环后面的语句。
n = 1
while n <= 100:
if n > 10: # 当n = 11时,条件满足,执行break语句
break # break语句会结束当前整个循环
print(n)
n = n + 1
print('END')
'''
输出
1
2
3
4
5
6
7
8
9
10
END
'''
#例如求50以内所有5的倍数的和。
i = 1
sum=0
while i <= 50:
if i % 5 ==0:
sum=sum+i
print(i,end=' ')
i=i+1
else:
print('nOver')
print('sum= ',sum)
'''
输出
5 10 15 20 25 30 35 40 45 50
Over
sum= 275
'''
#例如求1000以内所有的完数,如6=1+2+3除了它自身以外的因子之和等于它本身叫完数。
for i in range(1,1000):
sum=0
fac=[]
for j in range(1,i):
if i % j ==0:
sum=sum+j
fac.append(j)
if i==sum:
print(i,fac,end=' ')
# 输出6 [1, 2, 3] 28 [1, 2, 4, 7, 14] 496 [1, 2, 4, 8, 16, 31, 62, 124, 248]
最后
以上就是清爽蓝天为你收集整理的课程笔记--004(程序控制、分支结构、for in、循环嵌套)的全部内容,希望文章能够帮你解决课程笔记--004(程序控制、分支结构、for in、循环嵌套)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复