python程序的三种执行结构
一、分支结构:根据条件判断的真假去执行不同分支对应的子代码
1.1 if判定
完整语法如下:
if 条件1: #条件可以是任意表达式,如果条件1为True,则依次执行代码。 代码1 代码2 ... elif 条件2:#如果条件2为True,则依次执行代码。 代码3 代码4 ... else: #如果是其他情况,则依次执行代码。 代码5 代码6 ...
语法特点:
1、python用相同缩进(4个空格表示一个缩进)来标识一组代码块,同一组代码会自上而下依次运行 。
2、条件可以是任意表达式,但执行结果必须为布尔类型,在if判断中所有的数据类型也都会自动转换成布尔类型
3、None,0,空(空字符串,空列表,空字典等)三种情况下转换成的布尔值为False
举例:
score=input('>>: ') score=int(score) if score >= 90: print('优秀') elif score >= 80: print('良好') elif score >= 70: print('普通') else: print('很差')
if 嵌套举例:
age_of_girl=20 height=165 weight=99 is_pretty=True success=False if age_of_girl >= 18 and age_of_girl < 22 and height > 160 and weight < 100 and is_pretty == True: if success: print('你好!') else: print('我喜欢你') else: print('阿姨好')
二、循环结构:重复执行某段代码块
2.1 while 循环
2.11循环的步骤:
步骤1:如果条件为真,那么依次执行:代码1、代码2、代码3、......
步骤2:执行完毕后再次判断条件,如果条件为True则再次执行:代码1、代码2、代码3、......,如果条件为False,则循环终止
2.12语法结构:
while 条件: 代码1 代码2 代码3
举例:
username = "marsha" password = "123456" count = 0 # 记录错误验证次数,避免重复代码 while count < 3: inp_name = input("请输入用户名:") inp_pwd = input("请输入密码:") if inp_name == username and inp_pwd == password: print("登陆成功") else: print("输入的用户名或密码错误!") count += 1
2.13 结束while循环的方式
A: while循环 + break # break 用于结束本层循环,要结束几层循环就要用几个break
username = "marsha" password = "123456" count = 0 while count < 3: # 第一层循环 inp_name = input("请输入用户名: ") inp_pwd = input("请输入密码: ") if inp_name == username and inp_pwd == password: print("登陆成功") while True: # 第二层循环 cmd = input('>>: ') if cmd == 'quit': break # 用于结束本层循环,即第二层循环 print('run <%s>' % cmd) break # 用于结束本层循环,即第一层循环 else: print("输入的用户名或密码错误!") count += 1
B: break循环 +continue : # continue用于结束本次循环
number=11 # 打印1到10之间,除7以外的所有数字 while number>1: number -= 1 if number==7: continue # 结束本次循环 print(number)
C: break循环 +tag #在循环中用同一个变量tag,如果tag为True,则继续,如果tag为False,就可以在某一层直接退出所用层的循环。
username = "marsha" password = "123456" count = 0 tag = True while tag: inp_name = input("请输入用户名:") inp_pwd = input("请输入密码:") if inp_name == username and inp_pwd == password: print("登陆成功") while tag: cmd = input('>>: ') if cmd == 'quit': tag = False # tag变为False, 所有while循环的条件都变为False break print('run <%s>' % cmd) break # 用于结束本层循环,即第一层循环 else: print("输入的用户名或密码错误!") count += 1
D: break循环+else # 当while 循环正常执行完并且中间没有被break 中止的话,就会执行else后面的语句,所以我们可以用else来验证,循环是否正常结束
count = 0 while count <= 5 : count += 1 print("Loop",count) else: print("没有被break打断,else 正常运行了")
count = 0 while count <= 5 : count += 1 if count == 3: break print("Loop",count) else: print("见不到我了") #被break 打断,else 不会运行了
2.2 for循环: #在循环取值(即遍历值)时for循环比while循环的使用更为简洁
2.21语法结构:
for 变量名 in 可迭代对象: # 可迭代对象可以是字符串\列表\字典 代码一 代码二 ...
举例:
for count in range(6): # range(6)会产生从0-5这6个数 print(count)
for k in {'name':'marsha','age':49,'gender':'male'}: # for 循环默认取的是字典的key赋值给变量名k print(k)
#请用for循环嵌套的方式打印如下图形: ***** ***** ***** for i in range(3): for j in range(5): print("*",end='') print() # print()表示换行
#请用for循环打印九九乘法表 for i in range(1,10): for j in range(1,i+1): print('%s*%s=%s' %(i,j,i*j),end=' ') print()
#请用for循环打印金字塔 # 分析 ''' #max_level=5 * # current_level=1,空格数=4,*号数=1 *** # current_level=2,空格数=3,*号数=3 ***** # current_level=3,空格数=2,*号数=5 ******* # current_level=4,空格数=1,*号数=7 ********* # current_level=5,空格数=0,*号数=9 # 数学表达式 空格数=max_level-current_level *号数=2*current_level-1 ''' # 实现: max_level=5 for current_level in range(1,max_level+1): for i in range(max_level-current_level): print(' ',end='') #在一行中连续打印多个空格 for j in range(2*current_level-1): print('*',end='') #在一行中连续打印多个空格 print()
2.22 for循环与break\continue的使用同while
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!