一、流程控制
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-100之间偶数和:使用for、range
- 打印左正三角和左倒三角: 使用双层for循环和print