流程控制即控制流程,具体指控制程序的执行流程,而程序的执行流程分为三种结构:
顺序结构(之前我们写的代码都是顺序结构)
分支结构(用到if判断)
循环结构(用到while与for)
>>>print(1) >>>print(2) >>>print(3) 1 2 3 # 按照顺序从上至下执行指令
分支结构就是根据条件判断的真假去执行不同分支对应的子代码
人类某些时候需要根据条件来决定做什么事情,比如:如果今天下雨,就带伞
所以程序中必须有相应的机制来控制计算机具备人的这种判断能力
if 条件1: # 如果条件1的结果为True,就依次执行:代码1、代码2,...... 代码1 代码2 ...... elif 条件2: # 如果条件2的结果为True,就依次执行:代码3、代码4,...... 代码3 代码4 ...... elif 条件3: # 如果条件3的结果为True,就依次执行:代码5、代码6,...... 代码5 代码6 ...... else: # 其它情况,就依次执行:代码7、代码8,...... 代码7 代码8 ...... # 注意: # 1、python用相同缩进(4个空格表示一个缩进)来标识一组代码块,同一组代码会自上而下依次运行 # 2、条件可以是任意表达式,但执行结果必须为布尔类型 # 在if判断中所有的数据类型也都会自动转换成布尔类型 # 2.1、None,0,空(空字符串,空列表,空字典等)三种情况下转换成的布尔值为False # 2.2、其余均为True
# 登录账户 inp_user = input("请输入您的用户名:") inp_psd = input("请输入您的密码") if inp_user == "ft" and inp_psd == "123": print("登录成功") else: print("登录失败") # 查询分数 score = input("请输入您的分数:") score = int(score) if score >= 90: print("优秀") elif score >=80 : print("良好") elif score >=70 : print("普通") else: print("很差")
循环结构就是重复执行某段代码块
人类某些时候需要重复做某件事情
所以程序中必须有相应的机制来控制计算机具备人的这种循环做事的能力
while 条件: 代码1 代码2 代码3 while的运行步骤: 步骤1:如果条件为真,那么依次执行:代码1、代码2、代码3、...... 步骤2:执行完毕后再次判断条件,如果条件为True则再次执行:代码1、代码2、代码3、......,如果条件为False,则循环终止
username = "tom" password = "123" x = 1 while x < 4 : inp_name = input("请输入您的账户:") inp_psd = input("请输入您的密码:") if inp_name == username and inp_psd == password : print("登录成功") else: print("登录失败") x += 1 # 登录成功时,循环不会立即停止
username = "tom" password = "123" count = 0 while count < 3: inp_name = input("请输入您的账户:") inp_pwd = input("请输入您的密码:") if inp_name == username and inp_pwd == password: print("登录成功") break # 结束本层循环 else: print("登录失败") count += 1
break代表结束本层循环,而continue则用于结束本次循环,直接进入下一次循环 # 第一种 i =1 while i <= 5: if i == 3 : i += 1 continue print(i) i += 1 # 第二种 i = 0 while i < 5: i += 1 if i == 3: continue print(i)
在while循环的后面,我们可以跟else语句,当while 循环正常执行完并且中间没有被break 中止的话,就会执行else后面的语句,所以我们可以用else来验证,循环是否正常结束
x = 1 while x < 5: print("loop", x) x += 1 else : print("循环结束") 输出为 loop 1 loop 2 loop 3 loop 4 循环结束 # 如果有break,就不会执行else后面的指令
# 猜年龄 age = 20 i = 1 while i < 4: guess = input("年龄大小") guess = int(guess) if guess == age and i == 1 : print("一次就猜中了!真的假的!") break # 猜中了就结束循环 elif guess > age: print("猜大了,再猜小一点") elif guess < age: print("猜小了,再猜大一点") else: print("你终于猜中了~~~") break # 这里猜中直接结束循环,不会再显示外循环的else i += 1 else: print("这都猜不到吗,笨蛋!")
循环结构的第二种实现方式是for循环,for循环可以做的事情while循环都可以实现,之所以用for循环是因为在循环取值(即遍历值)时for循环比while循环的使用更为简洁
for 变量名 in 可迭代对象: 代码一 代码二 ... # 例1 for item in ['a','b','c']: print(item) # 运行结果 abc # 参照例1来介绍for循环的运行步骤 # 步骤1:从列表['a','b','c']中读出第一个值赋值给item(item=‘a’),然后执行循环体代码 # 步骤2:从列表['a','b','c']中读出第二个值赋值给item(item=‘b’),然后执行循环体代码 # 步骤3: 重复以上过程直到列表中的值读尽
nums = [1,2,3,4,5] for x in nums: print(x)
for x in {'name':'egon','age':18,'gender':'male'}: print(x)
for x in range(3): print(x) for y in range(6): print(y,end='') print() # 表示换行 # 输出为 0 012345 1 012345 2 012345 # 外循环有三次,内循环五次,每一个外循环都要执行一次内循环
# 九九乘法表 for x in range(1,10): for y in range(1,x+1): # x为1时,y的取值为1,x循环一次,y循环次数等于取值个数,后面同理 print("%s*%s=%s" %(x,y,x*y),end=' ')# end后面的空格越大,print之间间距也越大 print( )# 每循环一次换行 # 输出结果为 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
//非原创,仅供交流学习//