流程控制

一、流程控制

1. if语句

如果

属于一个条件控制语句

2. 使用
2.1 简单if语句

语法:

​ if 表达式:

​ 语句

说明:单分支,要么执行语句,要么不执行,执行与否取决于表达式是否成立

工作原理:当程序执行到if语句的时候,首先判断表达式的值是否为真,如果为真,则执行语句,否则跳过整个if语句代码继续向下执行

何为真假?

假:False 0 0.0 None “”

2.2 if-else语句

语法:

​ if 表达式:

​ 语句1

​ else:

​ 语句2

说明:双分支【实现了二选一的操作】

工作原理:当程序执行到if语句的时候,首先判断表达式的值是否为真,如果为真,则执行语句1,如果未假,则执行语句2

2.3 if-elif语句

语法:

​ if 表达式1:

​ 语句1

​ elif 表达式2:

​ 语句2

​ elif 表达式3:

​ 语句3

​ 。。。。

​ else:

​ 语句n

说明:多分支【实现了多选一的操作】

工作原理:

​ a.首先判断表达式1 的值,如果为真,则执行语句1,然后挑出整个if-elif语句

​ b.如果表达式1 的值为假,则继续判断表达式2 的值,如果为真,则执行语句2…

​ c.如果if和elif后面的表达式全部为假,则执行else后面的语句n

注意:只执行其中的一个分支,从上往下依次的判断

2.4 嵌套if语句

语法:

​ if 表达式1:

​ if 表达式2:

​ 语句

说明:只有当表达式1和表达式2都成立的情况下,才会执行语句

注意:嵌套的层数最好不要超过三层,为了代码的可读性和可维护性

二、循环结构

1. while
1.1 while循环

概念:

广义:一个周期现象或者重复出现的情况,这种状态被称为循环

狭义:在满足条件的情况下,反复执行某一段代码,在编程语言中出现的这种现象被称为循环。被反复执行的这段代码被称为循环体

语法:

while 表达式:

​ 语句

工作原理:遇到while语句时,首先计算表达式的值,如果表达式的值为假,则跳过整个while语句,继续执行下面的代码;如果表达式的值为真,则执行对应的语句

1.2 while-else

语法:

while 表达式:

​ 语句1

else:

​ 语句2

说明:

​ a. 当表达式的值为假的时候,则执行else中的语句2

​ b. 当while语句执行完成之后,也会执行else中的语句2

1.3 无限循环(死循环)

在循环语句中,表达式永远为真的循环

while True:
    # 循环体
while 1:
	 # 循环体
2. for
2.1 for-in循环

语法:

for 变量名 in 列表:

​ 语句

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M8ikujp9-1614773990045)(D:\Python\课堂笔记\QQ图片20191121161513.jpg)]

# 求偶数
for n in range(1,101):
   if n%2==0:
       print("{}是一个偶数".format(n))
       
# 换一种方式求偶数
for n in range(1,101):
   # 明明判断是奇数
       if n%2==1:
            continue
        # 打印偶数
   print("{}是偶数".format(n))

   # 求奇数
    for n in range(1,101):
       if n%2==1:
           print("{}是一个奇数".format(n))
2.2 列表生成式

语法:

[exp for iter_var in iterable]

l = [1,2,3,4,5,6,7,8,9,10]
ls = []
for item in l:
   ls.append(item**2)
print(ls)

简化:
ls = [x**2 for x in l]
range(100): 默认步长step=1,start=0
range(1,100): start=1,end=100,step=1
range(1,100,2):start=1,end=100,step=2
注意range特性:左闭右开(包头不包尾)
2.3 同时遍历列表中索引和元素
l = [1,2,3,4,5,6,7,8,9,10]
for index,num in enumerate(l):
   if index%2 == 0:
       print(index,num)
记录:
enumerate 可以包装序列,内置函数, 返回索引和值
2.4 小结

for 循环可以遍历的对象(字符串,列表,元组)

遍历字典\文件

可以用在列表生成式

#右侧正三角形
for j in range(1,10):
for x in range(1,10-j):
  print(' ',end='')
for i in range(1,j+1):
print(i,end='')
print('')

#右侧倒三角形
mylist = list(range(1,10))
mylist.reverse()
  print(mylist)
for j in mylist:
for x in range(1,10-j): #输出空格
print(' ',end='')
newlist = list(range(1,j+1))
newlist.reverse()
for i in newlist:
print(i,end='')
print('')

三、循环关键字

1. Break
当满足某个条件下,立刻结束整个循环,break可以用在for和while
for letter in "Python":
   if letter == "h":
       break
   print(letter)
输出结果: Pyt   
# 10 每次都减1,当减到5的时候,结束本次循环
var = 10
while var > 0:
   print(var)
   var -= 1
   if var == 5:
       break
输出结果: 10 9 8 7 6
2. continue
结束本次循环,并立即进入下次循环
for letter in "python":
   if letter == "h":
       print("continue语句之后字母")
       continue
   print("打印当前字符:",letter)
跳过5 就不打印
var = 10
while var > 0:
   var -= 1
   if var == 5:
       continue
   print(var)
3. pass
不执行任何命令,只是保持语法的准确性,相当于"占位符"
for letter in "python":
   if letter == "h":
       pass
   print(letter,end="")

四、案例

1. while+if+break
无限输入,当我输入
记事本: 打印出记事本
进  程: 打印进程
退  出: 打印退出
默  认: 输出其他
"""
# 无限输入 while + if 循环
while True:
   context = input("请输入你要打印内容:\n")
   if context == "记事本":
       print("记事本")
   elif context == "进程":
       print("进程")
   elif context == "退出":
       break
   else:
       print("输出其他")
2. 交换
# x和y的互换
	x = 3
	y = 5
	z = x
	x = y
	y = z
	print(x,y)
简洁版: x,y = y,
print(id(x),id(y)) 地址互换
3. 猜数字
num = 10.1
while True:
   try:
       num_input = eval(input("请输入你要猜的数字:\n"))
       if num == num_input:
           print("您猜测很准确")
           break
       elif num > num_input:
           print("您输入数字太小")
       else:
           print("您输入数字太大了")
   except:
       print("您输入一定要为数字哈!!!")

注意:eval 是把你表达式转换成想要的结果,相当于智能转换

五、作业

  1. 输出1-100之间偶数和:使用for、range
  2. 打印左正三角和左倒三角: 使用双层for循环和print
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值