目录
三.程序控制流程
1.顺序结构
顺序结构即时程序的一般执行流程,按:从上到下,从左到右依次执行
如:
print('先执行')
print('后执行')
2.选择结构
定义:选择结构用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程。
2.1单分支
语法:
if 条件 :
执行语句
当条件满足时则运行执行语句,若条件不满足则跳过执行语句。
a = int(input('输入你的年龄:'))
if a < 18 :
print('小屁孩!!!')
2.2 双分支
语法:
if 条件 :
满足时语句
else :
不满足时语句
当条件满足时则运行满足时的语句,若条件不满足则运行 else 后面的语句。
a = int(input('输入你的年龄:'))
if a < 18 :
print('小屁孩!!!')
else :
print('恭喜您成年了!!')
2.3 多分支
语法:
if 条件1 :
满足1语句
elif 条件2 :
满足2语句
……
elif 条件n :
满足n语句
else :
不满足时语句
a = int(input('输入你的年龄:'))
if a > 18 :
print('恭喜您成年了!!!')
elif a > 12 :
print('你已经是青年了!!!')
else :
print('小屁孩!!!')
3.循环
定义:循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。 它由循环体中的条件,判断继续执行某个功能还是退出循环。
3.1while循环
语法:
while 条件 :
循环体
先进行条件判断若满足条件则进入循环体,运行完后再进行判断满足条件则继续循环,不满足则跳出循环。
例:
a = 0
while a < 10 :
print(a)
a += 1
3.2 for循环
for 循环 —— for in
语法:
for i in range(start,end,step) :
循环语句
i --- i 是一个变量用于接收range的值
in --- 在一个容器中判断该元素是否存在
range(start,end,step) --- 从产生 start 到 end 的数(不包括end) step 是步长即是两个数之间的间隔
若 range(end) 只有一个参数:表示 end 从 0 ~ end 这个范,但是不包括end
若 range(start,end) 只有二个参数:表示start end 从 start ~ end 这个范,但是不包括end
若 range(start,end,step) 只有三个参数:表示 end 从 start ~ end 这个范 且步长为 step,但是不包括end
print('只有一个参数')
for i in range(10) :
print(i,end = ',')
print('')
print('只有两个参数')
for i in range(10,20) :
print(i,end = ',')
print('')
print('只有三个参数')
for i in range(10,30,3) :
print(i,end = ',')
print('')
3.3 break 和 continue
break --- 跳出整个循环或选择结构(只能跳出一层循环)
for i in range(20) :
if i == 12 :
break
print(i,end = ',')
continue --- 跳出当前一层循环
for i in range(20) :
if i == 12 :
print('**')
continue
print(i,end = ',')
4.选择和循环的混合练习
用循环和选择完成十进制转换二进制和十六进制 输入 O 代表输入转换为二进制 输入 H 转换为十六进制,输入 N 退出算法
print('十进制转二进制,十进制转十六进制')
while True :
flag = input('转为二进制输入:O,转为十六进制输入:H,退出输入:N :')
strr = ''
temp1 = 0
temp2 = 0
#选择运算规则
if flag == 'O'or flag == 'o' :
num = int(input('输入一个十进制整数:'))
while True :
#判断奇偶 且进行运算
temp = num // 2
temp1 = num + 1
#奇数是1 偶数整除是 0
if temp == temp1 // 2 :
strr += '0'
else :
strr += '1'
num = temp
if temp <= 1 :
strr += '1'
break
#反向获取字符串 -1是最后一个字符
for i in range(1,len(strr) + 1) :
print(strr[-i],end = ' ')
print('')
if flag == 'H' or flag == 'h' :
num = int(input('输入一个十进制整数:'))
strr_H = '0123456789ABCDEF'
while True :
#求余数 并运算
if num >= 16 :
temp = num % 16
strr += strr_H[temp]
else :
strr += strr_H[num]
break
num = num // 16
#反向获取字符串 -1是最后一个字符
for i in range(1,len(strr) + 1) :
print(strr[-i],end = ' ')
print('')
elif flag == 'N' or flag == 'n' :
break