python复习第5天:条件控制与循环
2020-03-01 本文已影响0人
潮办公
title: python复习100天--第5天
date: 2020-03-01 14:00:24
tags:
- python
- 基础
categories: python复习
top: 6
条件控制
- if--else为最基本的条件控制语句
- if 后面接一个布尔表达式,如果是真,执行一段代码,如果不是真,执行另外一段代码
- else if一般简写为elif
- 代码块需要缩进
- else不需要接条件,代表上面的都不成立的情况
a = float(input("请输入你的成绩:"))
if a >= 90: # 成绩大于等于90
print('你的成绩为优秀')
elif a >= 80: # 成绩小于90,但是大于等于80
print('你的成绩为良好')
elif a >= 60: # 成绩小于80,但是大于等于60
print('你的成绩为及格')
else: # 最后一个else不接条件,就是60以下的意思
print('不及格')
"""
# 输出结果
请输入你的成绩:85
你的成绩为良好
"""
if 嵌套
- if可以嵌套,即分支之后再分支
- 根据缩进位置确认嵌套的if和else对应的结构
a = float(input("请输入你的成绩:"))
if a >= 60: # 如果成绩大于等于60
if a >= 80: # 如果成绩大于等于80
if a >= 90: # 如果成绩大于等于90
print('你的成绩为优秀')
else: # 如果成绩小于90,但是大于80,对应第三个if
print('你的成绩为良好')
else: # 如果小于80,但是大于60,对应第二个if
print('你的成绩为及格')
else: # 如果成绩小于60,对应第一个if
print('不及格')
"""
# 输出结果
请输入你的成绩:85
你的成绩为良好
"""
循环语句
for循环
- for xx in xxx
- xxx可以为字符串,列表,元组,甚至有时候是字典
- xx可以为任意变量名称,如x,i,j等等
- 需要用冒号和缩进符控制需要循环的语句块
for x in range(5):
print(x)
for i in 'abcd':
print(i)
"""
# 输出结果
0
1
2
3
4
a
b
c
d
"""
- for 循环常和列表放在一起构成列表表达式,列表表达式可以方便快捷的生成新列表
list2 = [] # 构建一个空列表,用来储存新列表
for x in range(5):
list2.append(x ** 2)
list3 = [x**2 for x in range(5)] # 和上面三行代码效果一样
print(list2)
print(list3)
"""
# 输出结果
[0, 1, 4, 9, 16]
[0, 1, 4, 9, 16]
"""
- for循环之间也可以嵌套
# 打印9*9乘法口诀
for i in range(1, 10): # 用来控制有多少行
for j in range(1, i+1): # 用来控制每行有多少个数
print('{}x{}={}'.format(i, j, i*j), end='\t') # 为了显示在一行,这里用水平制表符隔开
print('') # 需要一个回车,因为这一列输出完了
"""
# 输出结果
1x1=1
2x1=2 2x2=4
3x1=3 3x2=6 3x3=9
4x1=4 4x2=8 4x3=12 4x4=16
5x1=5 5x2=10 5x3=15 5x4=20 5x5=25
6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36
7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49
8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64
9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81
"""
- for循环的打断
- break:直接跳出本次循环,本次循环结束
- continue:跳过本次循环,进入下一次循环
- pass:用来占一个位置,不具有实际意义,若后面有代码仍然会执行
# 演示打印奇数
for i in range(10):
if i % 2 == 0: # 如果为偶数,跳过
continue
else:
print(i) # 否则才打印
"""
输出结果:
1
3
5
7
9
"""
# 演示打印前5个数
for i in range(10):
if i == 5:
break # 如果i等于5,退出本次循环
else:
print(i)
"""
输出结果:
0
1
2
3
4
"""
# 演示pass占位功能
for i in range(10):
pass
"""
输出结果:
"""
# 演示pass占位功能
for i in range(5):
pass
print(i)
"""
输出结果:
0
1
2
3
4
"""
- for后面也可以接else,表示循环结束后应该要执行的代码
# 演示pass占位功能
for i in range(3):
print(i)
else:
print('循环已经结束')
"""
输出结果:
0
1
2
循环已经结束
"""
while循环
- 翻译为当什么什么时候就执行循环,可以理解为条件循环
- while后面接布尔值
- while也可以接else
- while打断同for,也可以用break, continue
# 计算银行存款利息多少年才能翻倍
i = 0.05 # 假设银行利息为5%
s = 1000 # 本金为1000
n = 0 # n为存款年限
while s < 2000:
n += 1 # 等同于n=n+1
s = s * (1+i)
else:
print('循环结束') # while也可以接else
print('{}年后你的本息和翻倍'.format(n))
"""
# 输出结果:
循环结束
15年后你的本息和翻倍
"""
for和while的区别
- for知道要循环多少次,而while不知道
- for循环为遍历循环,通常为遍历字符串,列表,元祖、甚至字典
- while循环为条件循环,只要条件成立,就可以一直循环下去