python学习9:python的三类流程控制-ifelse/while/for

三类流程:顺序结构,分支结构,循环结构

一.顺序结构

# 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结束的时候就换行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值