python第二课 循环 for 和while

本文深入讲解了Python中的while和for循环的应用,包括条件控制、break和continue语句的使用技巧。通过实例演示了循环在常见任务中的应用,如求和、输出特定图形等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

while循环

格式:

while 判断条件: (boolean)

循环体

break 停止当前循环

break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。

break语句用在while和for循环中。

如果使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。

continue 跳出本次循环

Python continue 语句跳出本次循环,而break跳出整个循环。s

continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。

continue语句用在while和for循环中。

1.求1-100偶数的和

n=1

sum=0 #任何时候都必须先声明变量

while n<=100:

if n%2==0:

    sum+=n

n=n+1

print(sum) #输出结果为2550

2.请用户输入数字,求和,直到输出0时退出

sum=0

while True:

n= int(input('请输入一个数字:'))

if n==0:

    break

sum+=n

print(sum)

  1. 1-100之间,遇到3和5的倍数输出当前值+是3和5的倍数;遇到5的倍数输出当前值+是五的倍数;遇到3的倍数输出当前值+是三的倍数.

    n=1

    sum=0

    while n<=100:

    if n%3==0 and n%5==0:

    print(n,'是三和五的倍数')
    

    elif n%5==0:

    print(n, '是五的倍数')
    

    elif n%3==0:

    print(n, '是三的倍数')
    

    n=n+1

    else:

    print(‘循环结束’)

range()函数不包含结尾参数

nums=range(5)

for i in range(-2,50,2):

print(i)

4.输出一行9个2.输出9行9个

for i in range(9): #9行9个*

for i in range(9): #一行9个*

   print('*',end='')          #end='' 换行

print()

5.输出直角三角形

for i in range(1,9):

for i in range(i):

    print('*',end='')

print()

6.输出九九乘法表

for i in range(1,10):

for n in range(1,i+1):

    print(n,'*',i,'=',(i*n),end='\t',)     #\t  制表符

print ()

7.等腰三角形和菱形

rows=int(input(‘请输入菱形的行数:’))

for i in range(rows):

for j in range(rows-1,i,-1):

    print(' ',end="")      #*前的空白

for k in range(i*2+1):

    print('*',end='')         #构成菱形的*

print()            #上半部分

for i in range(1,rows-1+1): #下半部分

for j in range(i):              #i取(1,rows) 因为下半部比上半部少一行,所有从1开始

     print(" ",end='')

for k in range((rows-i)*2-1):     #取((rows-i)*2-1)  -1是因为下半部比上半部少一行,(rows-i)*2则是每行*数

     print('*',end='')

print()

8.请用户输入成绩, 统计各区间的人数 超出0-100 重新输入 正确 询问是否继续

a=b=c=d=0

while True:

num=int(input('请输入成绩:'))

if num>=90 and num<=100:

     a+=1

elif num>=80 and num<=90:

    b+=1

elif num>=60 and num<=80:

    c+=1

elif num>=0 and num<=60:

     d+=1

else:

     print("超出范围 请重新输入!")

    continue                #放回到循环条件判断位置 必须在循环体中

str=input('是否继续? y/n')

if str.__eq__('n'):                #__eq__ 类 ==    及str的值是否为n,是则break,结束整个循环

     break

print(‘>=90’,a)

print(‘>=80’,b)

print(‘>=60’,c)

print(‘>=0’,d)

9.统计3个班级中每个班级3个学生的成绩:大于80有多少人

aa=0

for i in range(1,4): #(1,4) 三个班

print(‘请输入’,i,’个班的成绩:’)

for j in range(1,4): #(1,4) 每个班3个学生

   ab=int(input('请输入'+str(j)+'个班的成绩:'))

    if ab<0:

        print('输入负数,进入下一班级')

       break         #break结束并返回到for i in range(1,4):循环中

   if ab<80:

       continue     #continue  结束的当前循环 并执行aa+=1

   aa+=1

print(“大于80的人数:”,aa)

### Python 中 `while` 循环与 `for` 循环的区别及使用场景 #### 一、基本概念 - **`while` 循环** 是一种基于条件判断的循环结构。只要指定的条件为真 (`True`),循环体会持续执行,直到条件变为假 (`False`) 或遇到 `break` 关键字中断循环[^1]。 - **`for` 循环** 主要用于遍历可迭代对象(如列表、元组、字符串等)。它会依次访问容器中的每一个元素,直至完成整个序列的迭代[^2]。 --- #### 二、主要区别 | 特性 | `while` 循环 | `for` 循环 | |-------------------|---------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------| | **核心机制** | 基于布尔条件控制循环 | 基于容器或可迭代对象逐一访问 | | **适用场景** | 条件未知的情况下,适合需要动态决定何退出的情况 | 已知迭代次数或者明确知道操作范围更合适 | | **语法形式** | ```python while condition: ...``` | ```python for item in iterable: ...``` | | **是否依赖外部变量** | 需要显式定义更新控制变量 | 自动管理内部计数器或其他迭代逻辑 | 具体而言: 1. **循环次数** - 如果事先无法确定循环的具体次数,则通常采用 `while` 循环来实现[^3]。 ```python import random a = 0 while a != 5: a = random.randint(1, 10) print(a) ``` - 若已知确切的循环次数或需遍历固定集合的数据项,则优先考虑 `for` 循环[^4]。 ```python for i in range(1, 10): print(i) ``` 2. **灵活性对比** - 使用 `while` 可以构建更加灵活复杂的流程控制逻辑,比如模拟无限等待事件发生的情形[^5]。 ```python while True: user_input = input("请输入命令 (输入 'exit' 结束): ") if user_input.lower() == "exit": break print(f"您输入的是 {user_input}") ``` - 虽然理论上可以通过某些技巧让 `for` 实现类似的无尽运行效果,但从语义上看并不直观合理。 3. **性能考量** - 对于简单的数值区间枚举任务来说,`for` 循环往往表现得更为简洁高效; - 当涉及到复杂的状态转换或是不确定性的业务需求,可能需要用到更多辅助代码才能达成目标,在这种情况下选用合适的循环方式尤为重要。 --- #### 三、实际案例分析 ##### 场景 A:查找第一个符合条件的随机整数 如果希望找到某个特定范围内首次出现的目标值,这里更适合运用 `while` 循环因为它的特性允许我们不断尝试新的样本直到成功为止。 ```python import random target_value = 7 current_number = None while current_number != target_value: current_number = random.randint(1, 10) print(f"找到了! 数字是{current_number}.") ``` ##### 场景 B:打印斐波那契数列前 N 项 假设我们需要展示一系列按照规律生成的结果集,此利用带有索引参数传递功能的标准库函数配合 `for` 就显得格外方便实用。 ```python def fibonacci(n): sequence = [] a, b = 0, 1 for _ in range(n): sequence.append(b) a, b = b, a+b return sequence result = fibonacci(10) print(result) ``` --- ### 总结建议 选择哪种类型的循环取决于具体的编程需求以及数据特点等因素综合权衡之后再做决策最为恰当不过啦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值