day07 分支,循环

if(分支)

if的语法

  • if 条件表达式:
  • 代码块
  • ....
  • 条件表达式的计算结果必须为布尔值
  • 为True则执行下面的代码块
  • 注意冒号以及缩进
age = 21
age_inp = int(input('猜一下年龄:'))

if age == '21':
    print('机智')
if age >= '21':
    print('傻逼')

猜一下年龄:25
傻逼

if...else...

age = 21
age_inp = int(input('猜一下年龄:'))

if age == '21':
    print('机智')
else:
    print('傻逼')

猜一下年龄:30
傻逼

if...elif...else

  • elif可以有很多个
  • else也可以没有
  • 但多路分支,只会执行一个
score = int(input('请输入学生成绩:'))
# 注意input接受的值是字符串
if score >= 90:
    print('A')
elif score >= 80:
    print('B')
else:
    print('C')

请输入学生成绩:98
A

if的嵌套

  • 多个if叠加使用
  • 不推荐,尽量保持代码整洁
my_score = 98

score = int(input('猜猜我的分数'))
if score != my_score:
    if score > my_score:
        print('大了')
    elif score < my_score:
        print('小了')
else:
    print('对了')

猜猜我的分数9
小了

for循环

  • 用法:for 变量 in 序列:
  • 遍历
for i in range(4):
    print(i)

0
1
2
3

for-else 语句

  • 当for循环结束的时候,执行else语句
for i in range(4):
    print(i)
else:
    print('输出完成')

0
1
2
3
输出完成

for循环的嵌套(重要)

  • 很重要
for i in range(3):
    for j in range(2):
        print(i, j)

0 0
0 1
1 0
1 1
2 0
2 1

range介绍

  • 生成一个数字序列
  • 包括左边不包括右边(Python大都是这样,randint除外)
  • range在python2和python3中有严重区别,注意
  • range中有三个参数,第一和第二个是取值区间,不填默认第一个为0,第三个是跨度,可以为负数(了解)
for i in range (1,4):
    print (i)

1
2
3

while循环

  • while 条件表达式:
    • 代码块
  • 没有具体的循环次数,只要循环的条件成立,就一直循环
my_score = 98

# 无限循环
while True:
    score = int(input('猜猜我的分数'))
    if score != my_score:
        if score > my_score:
            print('大了')
        elif score < my_score:
            print('小了')
    else:
        print('对了')

猜猜我的分数65
小了
猜猜我的分数100
大了
猜猜我的分数98
对了
猜猜我的分数...

capital = 5000
year = 0
while capital<7000:
    capital *= 1.12
    year += 1
    print(f'第{year}年,现在我有{capital}元')

第1年,现在我有5600.000000000001元
第2年,现在我有6272.000000000002元
第3年,现在我有7024.640000000003元

while + else

  • 当while循环没有被break掉,条件表达式的结果为False,执行else下的语句
capital = 5000
year = 0
while capital<7000:
    capital *= 1.12
    year += 1
    print(f'第{year}年,现在我有{capital}元')
else:
    print('满足了')

第1年,现在我有5600.000000000001元
第2年,现在我有6272.000000000002元
第3年,现在我有7024.640000000003元
满足了

循环之break,continue, pass

  • break: 无条件结束整个循环,简称循环猝死
  • continue:无条件结束本次循环,从新进入下一轮循环
  • pass:表示略过,通常用于站位
# 在数字1-10中找到7
for i in range(1, 11):
    if i == 7:
        print(i)
        break

7

# 在数字1-10中,打印所有偶数
for i in range(1, 11):
    if i%2 == 1:
        continue
    print(i)

2
4
6
8
10

# 不知道这块代码要做什么,先用pass占好位置,以免报错
for i in range(1, 10):
    pass
上一篇:day07-列表类型/元组类型/字典类型/集合类型内置方法


下一篇:day07 类