Day3 — Python循环

Day3 — Python循环

一、if多分支结构:if-elif-else

在这里插入图片描述

  1. 应用场景:根据不同的条件执行不同的操作。

  2. 语法:只要有一个条件满足,其他的条件下都不再判断。

    if 条件语句1:
    	代码段2
    elif 条件语句2:
    	代码段2
    elif 条件语句3:
    	代码段3
    ...
    else:
    	代码段n
    
  3. 执行过程:

    • 从上往下依次判断条件语句的结果是否为True,如果为True就执行这个if或者elif对应的代码段,执行完if再判断后面的条件,也不再执行后面的代码段。

    • else后面的代码只有在前面所有的条件都不满足的时候才会执行。

# 判断一个人是否健康
height = 1.76
weight = 98
bmi = weight / (height ** 2)
if 18.5 <= bmi <= 24.9:
    print('正常')
elif bmi < 18.5:
    print('偏轻')
else:
    print('偏重')

练习:输入成绩,如果输入的
成绩在90分以上(含90分)输出A;
80分-90分(不含90分)输出B;
70分-80分(不含80分)输出C;
60分-70分(不含70分)输出D;
60分以下输出E。

grade = float(input('请输入成绩:'))
if grade < 0 or grade > 100:
    print('输入错误')
elif grade >= 90:
    print('A')
elif grade >= 80:
    print('B')
elif grade >= 70:
    print('C')
elif grade >= 60:
    print('D')
else:
    print('E')

二、if嵌套

练习:输入一个数,如果输入的数是偶数就打印’偶数’, 否则打印奇数。如果这个数能被4整除,还要打印’4的倍数’

num = int(input('输入一个整数:'))
if num % 2 == 0:
    print('偶数')
    if num % 4 == 0:
        print('4的倍数')
else:
    print('奇数')

三、循环结构 — forwhile

需求:打印亚索的台词10遍

# 方法一
print('死亡如风,常伴吾身')
print('死亡如风,常伴吾身')
print('死亡如风,常伴吾身')
print('死亡如风,常伴吾身')
print('死亡如风,常伴吾身')
print('死亡如风,常伴吾身')
print('死亡如风,常伴吾身')
print('死亡如风,常伴吾身')
print('死亡如风,常伴吾身')
print('死亡如风,常伴吾身') #10次

# 方法二
message = '死亡如风,常伴吾身'
print(message)
print(message)
print(message)
print(message)
print(message)
print(message)
print(message)
print(message)
print(message)
print(message) # 10次

# 方法三
message = '死亡如风,常伴吾身'
for x in range(10):
    print(message)

​ 从上面的代码来看,用以前学习的方法打印一句台词多次,十分的复杂,而用for循环代码就十分的简单。

所以不难看出,for循环的作用就是让代码执行重复执行,while亦是如此。

有一种写代码原则:DRY原则(Don’t Repeat Yourself)

1. for循环

在这里插入图片描述

  1. 语法:

    for 变量 in 序列:
    	循环体
    

    说明:
    for、in、冒号 — 固定写法。
    变量 — 变量名(程序员随便命名)。
    序列 — 容器型数据类型的数据,例如:字符串、列表、元组、集合、字典、迭代器、生成器、range等。

    循环体 — 和for保持一个缩进的一条或者多条语句;需要重复执行的代码。

  2. 执行过程

    让变量去序列中取值,一个一个的取,取完为止,每取一个值执行一次循环体。

for x in 'abcd':
    print('hello world!')

# 结果是打印四次‘hello world!’,因为‘abcd’的长度为4
# 第一次循环:x = 'a'   -> print('hello world!')
# 第二次循环:x = 'b'   -> print('hello world!')
# 第三次循环:x = 'c'   -> print('hello world!')
# 第四次循环:x = 'd'   -> print('hello world!')
# 第五次循环:x取不到值,循环结束

思考:‘++++’打印100次?

把字符串作为序列就很麻烦,这个时候可以使用range。

1.1 range函数
  • range(N) — 产生[0,N)的数字范围,里面包含:0,1,2,3,...N-1 (N>0)
print(range(10))   #range(0,10)
for x in range(10):
    print(x)
# 所以刚才的思考问题就可以这样来解决
str = '++++'
for x in range(100):
    print('++++')
  • rang(M,N) — 产生[M,N)的数字范围,里面包含:M,M+1,M+2,...,N-1 (M<N)
# 产生数字范围1~100并且打印出来
for x in range(1,101):
    print(x)
# 产生数字范围-100~-1并且打印出来
for y in range(-100,0):
    print(y)
  • range(M,N,step) — 从M开始每次加step产生下一个数,N取不到
# 写程序产生数字:
# -1, -3, -5, -7, -9
# 5, 4, 3, 2, 1
for x in range(-1, -10, -2):
    print(x)
for y in range(5, 0, -1):
    print(y)

练习:计算1+2+3+…+100的和

sum1 = 0
for x in range(1, 101):
    sum1 += x
print(sum1)
2.while循环

在这里插入图片描述

  1. 语法

    while 条件语句:
    	代码段(循环体)
    

    说明:

    while、冒号 — 固定写法

    条件语句 — 任何有结果的表达式都可以(赋值语句不行)

    循环体 — 和while保持一个缩进的一条或多条语句;需要重复执行的代码

  2. 执行过程

    不断判断条件语句的结果是否为True,为True就执行循环体,然后再判断;为False循环直接结束。

num = 0
while num < 5:
    print('hello world!')
    num += 1
3. for循环和while循环的选择

​ 循环次数确定就是用for循环;循环次数不确定就使用while循环。

练习:不断输入数据,直到输入的内容是0为止

num = int(input('请输入数字:'))
while num:
    num = int(input('请输入数字:'))

四、循环关键字 — continuebreak

在这里插入图片描述

1.continue

​ 只能出现在循环体里面。

continue的作用:直接结束当次循环,直接进入下一次循环的判断

for x in range(10):
    print('hello!')
    continue
    print('Bye!')     #不会执行,但仍会循环
2.break

​ 只能出现在循环体里面。

break的作用:直接结束整个循环。

for x in range(10):
    print('hello!')
    break
    print('Bye!')   #不会执行,循环结束
    
#################################################

# 第一步:while True
while True:
    # 第二步:描述清楚需要重复执行的操作
    value = input('请输入数字:')
    # 第三步:添加循环结束条件
    if value == '0':
        break

练习:使用while循环打印1~10

num = 1
while True:
    if num > 10:
        break
    print(num)
    num += 1
3.else
  1. 完整的for循环
for 变量 in 序列:
   循环体
else:
   代码段
  1. 完整的while循环:
while 条件语句:
	代码段(循环体)
else:
	代码段

else的存在不影响原来循环的执行。

当循环自然死亡,else后面的代码段会执行。如果循环是因为遇到break二结束的,else后面的代码就不会执行

for x in range(3):
    print(x)
else:
    print('else中的代码!')  # 会执行
####################################    
for x in range(3):
    print(x)
    if x == 2:
        break
else:
    print('else中的代码!')  # 不会执行    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值