【Python】循环语句(while、for)、continue、break

椰椰椰耶 2024-09-01 14:35:01 阅读 92

文章目录

条件语句什么是条件语句语法格式缩进和代码块空语句练习1. 输入一个整数,判断是否是奇数2. 输入一个整数,判断是正数还是负数3. 判断年份是否是闰年

循环语句while 循环for 循环练习1. 打印 1-10 的整数2. 计算 1-100 的和3. 计算 5 的阶乘4. 求 1! + 2! + 3! + 4! + 5!

continue 和 break求若干个数的平均值

条件语句

什么是条件语句

条件语句能够表达 “如果 … 否则 …” 这样的语义. 这构成了计算机中基础的逻辑判定

条件语句也叫做分支语句,表示了接下来的逻辑可能有几种走向

如果,我认真敲代码,我就很容易找到工作;

这是一个条件,如果条件成立,就会容易找到工作

否则,我就容易毕业就失业条件不成立,就容易毕业就失业

条件语句,就是根据一个具体条件的成立与否,来决定接下来的逻辑走向

语法格式

<code>Python 中使用 if else 关键字表示条件语句

(1)if

if expression:

do_something1

do_something2

next_something

如果 expression 值为 True, 则执行 do_something1, do_something2, next_something如果 expression 值为 False, 则只执行 next_something, 不执行 do_something1, do_something2

(2)if-else

if expression:

do_something1

else:

do_something2

如果 expression 值为 True, 则执行 do_something1如果 expression 值为 False, 则执行 do_something2

(3)if - elif - else

if expression1:

do_something1

elif expression2:

do_something2

else:

do_something3

如果 expression1 值为 True, 则执行 do_something1如果 expression1 值为 False, 并且 expression2True 则执行 do_something2如果 expression1 值为 False, 并且 expression2False 则执行 do_something3

注意: Python 中的条件语句写法, 和很多编程语言不太一样

if 后面的条件表达式, 没有 ( ), 使用 : 作为结尾if / else 命中条件后要执行的 “语句块”, 使用缩进 (通常是 4 个空格或者 1 个 tab)来表示, 而不是 { }对于多条件分支, 不是写作 else if, 而是 elif (合体了)

示例: 输入 1 表示愿意认真学习, 输入 2 表示躺平摆烂 `

choice = input('输入 1 表示认真学习,输入 2 表示躺平')

if choice == '1':

print(('你能找到工作'))

elif choice == '2':

print('你废了')

else:

print('输入错误')

注意 ifelifelse 后面都有:

缩进和代码块

Python 中使用缩进表示代码块. 不同级别的缩进, 程序的执行效果是不同的

a = input('输入第一个整数:')

b = input('输入第一个整数:')

if a == '1':

if b == '2':

print('aaa')

print('bbb')

print('ccc')

#运行结果

输入第一个整数:1

输入第一个整数:2

aaa

bbb

ccc

两个条件都满足才会打印 aaa,因为打印 aaa 的语句有两级缩进,相当于是 if b == '2' 条件内部的代码块第一个条件满足,就会打印 bbb,因为打印 bbb 的语句只有一级缩进,相当于是 if a== '1' 条件内部的代码块两个条件即使都不满足,也能打印 ccc,因为打印 ccc 的语句,没有缩进,相当于和两个 if 都无关

当前有多级嵌套的时候,当前的雨具属于哪个代码块,完全取决于缩进的级别

空语句

pass 表示空语句, 并不会对程序的执行有任何影响, 只是占个位置, 保持 Python 语法格式符合要求.

a = int(input("请输入一个整数:"))

if a != 1:

pass

else:

print("hello")

虽然希望条件满足的时候,什么都不做,但是由于 Python 对于语法格式,尤其是缩进和代码块要求较高,所以如果什么都不写,是不符合语法要求的,所以必须得写一个 pass 空语句来占位

练习

1. 输入一个整数,判断是否是奇数

a = int(input('输入一个整数'))

if a % 2 == 1:

print(f'{ a} 是一个奇数')

else:

print(f'{ a} 不是一个奇数')

这串代码在 C++/Java 是不太行的,因为在那边 -19 % 2 == -1,和 1 是不相等的。但在 Python 中,-19 % 2 == 1

2. 输入一个整数,判断是正数还是负数

a = int(input('输入一个整数'))

if a > 0:

print(f'{ a} 是正数')

elif a < 0:

print(f'{ a} 是负数')

else:

print(f'{ a} 是 0')

3. 判断年份是否是闰年

每隔 4 年润一次;如果是世纪闰年,得看能否被 400 整除

year = int(input('输入一个年份'))

if year % 100 == 0:

# 世纪闰年的判定

if year % 400 == 0:

print('闰年')

else:

print('平年')

else:

# 普通闰年的判定

if year % 4 == 0:

print('闰年')

else:

print('平年')

循环语句

while 循环

基本语法格式:

while 条件:

循环体

条件为真,则执行循环体代码条件为假,则结束循环

for 循环

基本语法格式

for 循环变量 in 可迭代对象:

循环体

注意:

pythonfor 和其他语言不同, 没有 “初始化语句”, “循环条件判定语句”, “循环变量更新语句”, 而是更加简单所谓的 “可迭代对象”, 指的是 “内部包含多个元素, 能一个一个把元素取出来的特殊变量”

练习

1. 打印 1-10 的整数

while 循环:

num = 1

while num <= 10:

print(num)

num += 1

包含

循环变量的初始值循环变量的判定条件循环变量的更新语句


for 循环:

for i in range(1, 11):

print(i)

range 是一个内建函数,起到的效果就是得到一个“可迭代对象”,这个可迭代对象中就包含了一系列的整数range(beg, end) ==> [beg, end)前闭后开区间


range 还提供了一个参数“步长”,默认的步长是 1

例如:打印 2,4,6,8,10

for i in range(2, 12, 2)

print(i)

2. 计算 1-100 的和

while 循环:

sum = 0

num = 0

while num <= 100:

sum = num + sum

num +=1

print(sum)

3. 计算 5 的阶乘

while 循环:

result = 1

n = 1

while n <= 5:

result *= n

n += 1

print(result)

4. 求 1! + 2! + 3! + 4! + 5!

while 循环:

num = 1

sum = 0

while num <= 5:

# 先计算出 num! 是多少,往 sum 上进行累加

factorResult = 1

i = 1

while i <= num:

factorResult *= i

i += 1

sum += factorResult

print(sum)

continue 和 break

continue:立即结束当前这次循环,进入下一次循环

break:立即结束整个循环

代码示例: 模拟吃包子. 吃第 3 个包子的时候吃出了一只虫.

for i in range(1, 6):

if i == 3:

continue

print(f'吃完第{ i}个包子')

# 运行结果

吃完第1个包子

吃完第2个包子

吃完第4个包子

吃完第5个包子

代码示例: 模拟吃包子. 吃第 3 个包子的时候吃出了半只虫.(没胃口了)

for i in range(1, 6):

if i == 3:

break

print(f'吃完第{ i}个包子')

# 运行结果

吃完第1个包子

吃完第2个包子

求若干个数的平均值

theSum = 0

count = 0

while True:

num = input('请输入一个数字:(分号表示输入结束)')

if num == ';':

break

num = float(num)

theSum += num

count +=1

print(f'平均值为{ theSum/count}')

# 运行结果

请输入一个数字:(分号表示输入结束)11

请输入一个数字:(分号表示输入结束)22

请输入一个数字:(分号表示输入结束)33

请输入一个数字:(分号表示输入结束);

平均值为22.0

光看到 while True 不一定是死循环,关键是要看循环里有没有 breaktheSum 表示加和的结果;count 表示有几个数字不能在输入 num 的时候就将 num 的类型转换为 float,不然你最后想结束循环,输入 ; 的时候会报错不能将 ; 直接输入到一个数字后面,不然也会报错



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。