Python基础之流程控制
1.如何更好的学习Python2.Python准备之Python环境安装和Pycharm使用3.Python准备之笔记-MarkDown格式及云端笔记4.Python准备之软件开发规范5.Python基础之计算机基础6.Python基础之编程语言7.Python基础之Python基本构成
8.Python基础之流程控制
9.Python特殊机制之垃圾回收机制10.Python中级之数据类型的内置方法11.Python中级之可变数据类型和不可变数据类型12.Python中级之文件操作13.Python中级之列表字典推导式和三元运算符14.Python中级之深浅拷贝15.Python中级之字符编码16.Python中级之异常处理17.Python中级之解压赋值18.Python高级之闭包函数19.Python高级之函数介绍20.Python高级之名称空间与作用域21.Python高级之装饰器22.Python高级之模块与包23.Python高级之迭代器与生成器24.Python模块之re模块25.Python模块之os模块26.Python模块之random模块27.Python模块之序列化模块(json模块与pickle模块)28.Python模块之time模块和datetme模块29.Python高级之递归函数30.Python高级之常见的内置函数31.Python模块之sys模块32.Python模块之hashlib模块33.Python模块之logging模块34.Python面向对象之面向对象编程35.Python面向对象之三大特征-封装36.Python面向对象之绑定方法和非绑定方法37.Python面向对象之三大特征-继承38.Python面向对象之三大特征-多态39.Python面向对象之派生40.Python面向对象之组合41.Python面向对象之反射流程控制
【1】流程控制语句介绍
- 程序是由语句构成,而流程控制语句 是用来控制程序中每条语句执行顺序的语句。
【2】顺序结构
-
顺序结构是指按照代码书写的顺序,一条语句接着一条语句执行,没有跳过、重复或其他特殊的结构。
【3】分支结构
(1)单分支结构(if)
if+条件1 : 换行 执行内容 # 条件1如果为真 结束 # 条件1如果为假则跳过if语句,执行后续的代码
(2)双分支结构(ifelse)
if+条件1 : 执行内容1 # 条件1如果为真,则执行内容1(条件正确的情况下执行的内容) else: 执行内容2 # 条件1如果为假,则执行内容2(条件错误的情况下执行的内容) # 示例 age = 16 if age > 18 : print('你已经成年啦!') else: print('你还没有成年,请享受青春~') # 输出 你还没有成年,请享受青春~ # 因为age并没有大于18,所以条件为假,所以打印这段话
(3)多分支结构(if-elif-else)
if+条件1 : 执行内容1 # 条件1如果为真,则执行内容1(条件正确的情况下执行的内容) elif+条件2 : 执行内容3 # 条件1为假,而条件2为真,则执行条件2下的执行内容3 else: 执行内容2 # 除条件1,条件2所描述的其他索引情况均执行内容2(条件错误的情况下执行的内容) # 示例 age = 18 if age > 18: print('你已经成年了!') elif age == 18: print('你刚刚迈入了成年人的世界!') else: print('你还没有成年,请享受青春~') # 输出 你刚刚迈入了成年人的世界! # age=18 ,并不满足条件1(大于18),但是满足条件2(等于18),故输出执行内容3
(4)多层嵌套结构
- 多层嵌套结构是将多个分支结构嵌套在一起形成的复杂结构。
- 每一层的分支结构都可以根据不同的条件进行选择性的执行。
- 多层嵌套结构的使用需要注意代码的可读性和维护性。
实例练习 1
# 定义一个字典 {'key':'value'} ---> 多用户登录功能 # 两个输入框 --- > 用户名和密码 # ---> 用户名和密码是否正确 # 正确 :登陆成功 # 失败 : 再输一次 # 再失败 : 登录失败
个人答案(萌新一枚,供大伙批评指教)
# 定义用户登录密码 user_login = {'user': '001', 'lea4ning': '123', 'zwq': '456'} # 用户输入用户名和密码 input_username = input('请输入用户名:>>>') input_userPwd = input('请输入密 码:>>>') # 程序进行运算 # 程序1 检查是否在库中,如果不在,提示重新赋值 if input_username not in user_login: # 如果输入的用户名不在用户库中,输出‘用户不存在’ print("用户不存在,请重新输入:>>>>") input_username = input('请输入用户名:>>>') # 重新输入用户名,程序重新为用户名赋值 # 程序2 赋值正确则校验密码,若密码错误重新赋值 if input_username in user_login: # 用户名重新赋值若正确,进入校验阶段 if input_userPwd != user_login[input_username]: # 校验输入的密码,错误的情况重新输入 print("密码输入错误,请重新输入:>>>") input_userPwd = input('请输入密 码:>>>') # 重新赋值密码 else: print("用户名不存在,请检查后重试~") # 程序3 重新赋值内容正确,则输出登录成功 if input_userPwd == user_login.get(input_username): # 校验重新输入的密码,正确的情况,输出登录成功 print("密码输入正确") print(f"登录成功~欢迎{input_username}光临~") else: print("登录失败!请检查后重启~") # 密码经过第二遍赋值依旧错误,将输出登录失败
实例练习 2
# 使用字典模拟多用户登录功能 --- 多用户登录查看内容功能 # 字典格式 : {'key':'value'} # 定义一个字典 : 用户登录和密码{'username':"password"} # 定义一个字典 : 字典中放 对应用户的全部信息 比如这个用户的 年龄/爱好/性别/身高 # 两个输入框 --- > 可以输入用户名和密码 # 比对用户名和密码是否正确 # 用户校验正确 :登陆成功 并打印当前用户除 密码以外的其他信息 # 用户校验失败 :再输一次 # 再失败 : 登录失败,退出程序
个人答案(萌新一枚,供大伙批评指教)
# 定义字典 user_login = {'user': '001', 'lea4ning': '123', 'zwq': '456'} user_info = {'user': {'age': 18, 'sex': 'man', 'hobby': 'run', 'height': 170}, 'lea4ning': {'age': 20, 'sex': 'man', 'hobby': 'badminton', 'height': 175}, 'zwq': {'age': 22, 'sex': 'superman', 'hobby': 'code', 'height': 180} } # 设置输入 input_username = input('请输入用户名:>>>') input_userPwd = input('请输入密 码:>>>') # 程序输出 if input_username not in user_login: # 如果输入的用户名不在用户库中,输出‘用户不存在’ print("用户不存在,请重新输入:>>>>") input_username = input('请输入用户名:>>>') if input_username in user_login: if input_userPwd != user_login[input_username]: print("密码输入错误,请重新输入:>>>") input_userPwd = input('请输入密 码:>>>') if input_userPwd == user_login[input_username]: print("密码输入正确") print(f"""欢迎{input_username}登录,以下为您的信息 用户姓名:{input_username} 用户年龄:{user_info[input_username]['age']}岁 用户性别:{user_info[input_username]['sex']} 用户爱好:{user_info[input_username]['hobby']} 用户爱身高:{user_info[input_username]['height']}cm """) else: print("登录失败,请检查后重试~")
【4】循环结构
- 循环结构是一种程序控制结构,用于反复执行一组语句,直到满足某个条件为止。
(1)while循环
语法
while condition: # 循环体
-
while
是循环的关键字。 -
condition
是循环的条件,当条件为真时,循环体会一直执行。 -
循环体是需要重复执行的代码块。
while True: print('nice') # 此处while循环为死循环,因为True条件一直为真,故print('nice')一直运行 while 当条件为真时: 持续执行代码块,除非条件出现变化,或者使用break函数
(2)for循环
语法
for variable in sequence: # 循环体
for
是循环的关键字。variable
是循环变量,它会在每次循环中取sequence
中的一个值。sequence
是一个序列,可以是列表、元组、字符串等。
for i in [1, 2, 3, 4]: # list print(i) # 1 2 3 4 会按顺序提取列表[1,2,3,4]中的值 for i in (1, 2, 3, 4): # tuple print(i) # 1 2 3 4 会按顺序提取元组(1,2,3,4)中的值 for i in 'learn': # str print(i) # l e a r n 会按顺序提取字符串'learn'中的值 # 因为列表、元组、字符串都是可以通过下标索引提取内容
(3)退出循环
break:退出
1、语法
while condition: # 循环体 if some_condition: break # 退出循环
2、实例参考
username = "user" password = "123" count = 0 while count < 3: # 第一层循环 inp_name = input("请输入用户名:") inp_pwd = input("请输入密码:") if inp_name == username and inp_pwd == password: # 此处break内容解释,当用户名密码输入正确后, # 首先输出‘登录成功’,然后就可以通过break解除第一层循环 print("登陆成功") while True: # 第二层循环 # 此处额外套入一层循环,且在第一层循环结束的break前, # 故需要先结束第二层循环才可以进行第一层循环的结束 cmd = input('>>: ') if cmd == 'quit': break # 用于结束本层循环,即第二层循环 print(f'run <{cmd}>') break # 用于结束本层循环,即第一层循环 else: print("输入的用户名或密码错误!") count += 1 ''' 如果没有进行循环的结束,将会在第二层循环结束后,继续进行第一层循环,重新输入用户名 '''
continue
1、语法
while condition: # 循环体 if some_condition: continue # 跳过当前循环,继续下一次循环
2、实例参考
count = 0 while count < 5: count += 1 if count == 3: print(f'已跳过{count}') continue # 当 count 等于 3 时,跳过当前循环,继续下一次循环 print(count) '''输出: 1 2 已跳过3 4 5 '''
(4)标志位
- 自定义一个变量作为标志位
flag = True # 初始化标志位 while flag: # 循环体 if some_condition: flag = False # 修改标志位,退出循环
flag = True # 标志位 count = 0 # 计数器 while count < 5 and flag: # and 关键字连接的条件与标志位 count += 1 # count每完成一次循环+1 if count == 3: print(f"{count}:逢三归一") flag = False print(count) # 输出:1 2 3:逢九归一 3 '''正常情况<5的数,有[1,2,3,4], 此处打印至3时,flag的值被变更为False, and关键字关联的条件中有一方为False,则条件变为False,循环中止'''
(5)循环分支
while 条件: 循环体 else: 循环正常执行完毕且没被break关键字中止,将执行else语句下的内容 如果执行过程被break关键字中止,将不会执行else语句
count = 0 # 计数器 while count < 3: count += 1 # count每完成一次循环+1 print(count) # 当count=3时,与循环语句<3不符,故循环结束 else: print('循环结束') # 1 2 3 循环结束
(6)range关键字
#基本语法 for i in range(start, stop, step): # 循环体 # start 为起始内容 # stop 为终止内容 # step 为步长
# start 起始内容 # 默认为0,且需要与stop成对使用,单独不可用 # stop 终止的内容 # 可单独使用 for i in range(3): # for i in range(0,3) print(i) # 0 1 2 # step 步长 # start与stop以step为间隔数,默认值为1 for i in range(1, 6): print(i) # 1 2 3 4 5 for i in range(1, 6, 1): print(i) # 1 2 3 4 5 for i in range(1, 6, 2): print(i) # 1 3 5 # 若step设为0,将会报错【ValueError: range() arg 3 must not be zero】
- 补充
# range + len 遍历序列 # 原理便是通过len()函数可以提取出序列的长度,而长度可以对应stop的值 list1 = [1,2,3] for i in range(len(list1)): # for i in range(0,3): print(list1[i]) # i的值为0 1 2 对应至list1[0],list1[1],lis1[2]
# 通过range()创建序列 list2 = list(range(1,4)) # list强转(range的值为(1,2,3)) print(list2) # [1,2,3]
实例练习 1 (while循环分支嵌套)
# 登录功能 # ---> 存储 字典存储用户的登录信息 # 输入框输入 用户名和密码 # 可以尝试 3 次 ----> 用户名或密码错误的话就要重新输入了! # 第一次的时候告诉你还有两次 # 最后一次的时候告诉你还愿意继续尝试吗? # 如果选择继续尝试的话 ---> 继续尝试
个人答案(萌新一枚,供大伙批评指教)
user_info = {'user': '001'} # 存储信息 count = 3 # 计数器 tag = True # 标志符 # 进入循环 while count > 0 and tag: # 当剩余次数不为1时,执行循环 count -= 1 # 作为次数的计数期,执行一次,次数减1 input_name = input("请输入用户名:>>>>") input_pwd = input("请输入密 码:>>>>") if input_name in user_info and input_pwd == user_info.get(input_name): # 校验用户名和密码,正确直接退出 print(f"欢迎{input_name}登录~祝您有美好的一天~") break else: print("用户名或密码有误,请检查后重新输入!") print(f"还有{count}次机会,请仔细检查~") # 输入错误直接结束后续判断,重新输入用户名和密码 if count == 0: # 当次数归零,询问是否重新尝试 answer = input("次数已经用完,请选择是否重试:y/n") if answer == 'y': # 如果选择继续,将count的值重新添加至3次机会 count = 3 else: print("下次再见~")
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了