三类流程:顺序结构,分支结构,循环结构
一.顺序结构
# 1.顺序结构:从上往下
# 案例:通过输入两个数字,输入完成后进行交换
a = input("请输入第一个数据:")
b = input("请输入第二个数据:")
print('交换之前:a=%s,b=%s' % (a,b))
# 进行交换
c = a
a = b
b = c
print('交换之后:a=%s,b=%s' % (a,b))
二.分支结构:
单项分支,双项分支,多项分支,嵌套分支
# 2.分支结构:满足某个条件执行某个路径:if else
# 分类:单项分支,双项分支,多项分支,嵌套分支
# 2-1)单项分支
# if 条件:
# 代码块
# 案例:输入一个字符,判断是否为纯数字,是的话就输入:是数字
a = input("请输入第一个数据:")
if a.isdigit(): # 成立则执行以下代码
print('是数字!')
print('程序结束')
# 2-2)双项分支:if else
# if 条件:
# 代码1
# else:
# 代码2
# 案例:输入一个字符,判断是否为纯数字,是的话就输入:是数字
a = input("请输入第一个数据:")
if a.isdigit(): # 成立则执行以下代码
print('是数字!')
else:
print('不是数字!')
print('程序结束')
# 2-3)多项分支:if else
# if 条件1:
# 代码1
# elif 条件2:
# 代码2
# ....
# else:
# 代码3
# 案例:买票,3岁以下:不需要买;4-11:买儿童票;12-59成人票;>=60 不需要买
age = input("请输入用户年龄:")
age = int(age)
if age >= 60:
print('老年人无需买票')
# elif age>=12 and age <= 59:
elif age >= 12: # 优化
print('请买成人票')
# elif age >= 4 and age <= 11:
elif age >= 4: # 优化
print('买儿童票哦')
else:
print('免费票!')
# 2-4)嵌套分支:
# if 条件:
# if 条件:
# 代码块:
# else:
# ...
# else:
# ...
# 案例:如果输入的是数字,则执行以上买票行为
age = input("请输入用户年龄:")
if age.isdigit():
if age >= 60:
print('老年人无需买票')
# elif age>=12 and age <= 59:
elif age >= 12: # 优化
print('请买成人票')
# elif age >= 4 and age <= 11:
elif age >= 4: # 优化
print('买儿童票哦')
else:
print('免费票!')
else:
print('不是数字!')
# 输入一个需要修改的数据,在的话则修改;不在则提示不存在集合
set1 = {'java','c++','python','vue'}
data = input("请输入需要删除的数字:")
if data in set1:
# 则删除
set1.remove(data)
print('删除后的数据:{info}'.format(info = set1))
else:
# 不在集合
print('没有这个数可删除哦!')
三.循环结构(while/for)
# 3.循环结构:反复执行某个代码,直到对应的条件不成立则结束:while,for
# 3-1)while循环
# while 条件:# 是否成立,成立则进入代码块,直到条件不成立则退出循环
# 代码
# 怎么避免死循环?
# 方法一:①要控制条件不能永远成立 ---引用对应的变量
# ②在每次循环体中修改这个变量的值
# 案例:循环输出3次:我爱学习
num = 0 # 自增
while num < 3: # 0 1 2
print("我爱学习")
# 每进入循环体,修改一次num
num +=1
print('循环结束')
num = 3 # 自减
while num > 0: # 3 2 1
print("我爱学习")
# 每进入循环体,修改一次num
num -=1
print('循环结束')
# 方法二:break,contiune 关键字去进行控制
# break: 直接退出当前循环
# continue:不执行后面的代码块,直接进入下一次循环
num = 0
while True:
print('我爱学习')
num +=1
if num == 3:
break # 直接退出当前的循环
案例:continue
# continue:num1=10 当num2>10 输出num2 > num1 并且退出,否则就让它继续执行
num1 = 10
num2 = 0
while True:
if num2 > num1: # 0>10?
break
else:
# continue # 如果放在这个位置的话 num2 += 1不会运行 永真
num2 += 1 # 所以如果要运行该代码 则必须放在continue之前
continue
print("num2={}".format(num2))
# 案例:当用户输入的是纯数字则退出循环,让对应的数据相加
# num = 1
# while True: # 不知道什么时候输入对,所以永真的状态下进行输入
# print('------第{}次循环-------'.format(num))
# a = input("请输入第一个数字:")
# b = input('请输入第二个数字:')
# if a.isdigit() and b.isdigit():
# sum = int(a)+int(b)
# break
# else:
# num +=1
# # 一直输入不是数字的话,就一直输入
# continue
# print("sum={}".format(sum))
# 案例:输入密码,输错大于3次则退出输入
# user = 'xxx'
# pwd = '123456'
# while True:
# input_user = input('请输入用户名:')
# input_pwd = input('请输入密码:')
# if input_user == user and input_pwd == pwd :
# print('登录成功!')
# break
# elif input_user == user and input_pwd != pwd :
# num += 1
# # print('密码错误!')
# if num <= 3:
# print('密码有误')
# else:
# print('密码次数超过3次!')
# break
# else:
# print('用户名错误!')
案例:for
# for 循环遍历
# for 变量名 in 可迭代的数据类型(列表,元组,字典,集合):
# 代码块
list1 = ['python','c++','vue']
for i in list1:
print(i)
dict1 = {'name':'xxx','age':22}
for key in dict1:
# print(key)
print(dict1[key])
for key in dict1.keys():
print(key)
for value in dict1.values():
print(value)
# 嵌套循环---------------------------------------------------------------------------
# for 变量名 in 可迭代的数据类型(列表,元组,字典,集合):
# 代码块
# for 变量名 in 可迭代的数据类型(列表,元组,字典,集合):
# 代码块
li = [[11,22],[33,44],[55,66]]
for i in li:
# print(i)
for k in i:
print(k)
# range()控制循环次数:---生成一个有序的数字列表-----------------------------------------
# range(n,m,k) # n起设值,m 结束值 , k 步长 =1
for i in range(1,10):
print(i) # 9;左闭右开
list2 = ['python','vue1','vuew']
for i in range(0,len(list2)):
print(i)
案例示范:乘法口诀表
存在疑惑:我也不知道为什么/n会展示出来???列入待研究
# 案例:乘法九九表
for i in range(1,10): # 1-9
for j in range(1,i+1):
print("{}*{}={}\t".format(j,i,j*i),end="")
print("/n") # j结束的时候就换行