当前位置: 首页 > article >正文

Python--循环

在Python中,while循环和for循环的语法如下:

1. while循环

while循环会在给定条件为真时重复执行代码块。其基本语法如下:

while 条件:
    # 执行的代码块

示例:

count = 0
while count < 5:
    print(count)
    count += 1

2. for循环

for循环用于遍历一个序列(如列表、元组、字典、集合、字符串等),其基本语法如下:

for 变量 in 可迭代对象:
    # 执行的代码块

示例:

fruits = ['苹果', '香蕉', '橙子']
for fruit in fruits:
    print(fruit)

总结

  • while循环适合在事先不知道循环次数而只是根据条件决定是否继续循环的情况。
  • for循环更适合遍历已知的可迭代对象。

练习

输出1~3的数字

i = 1
while i <= 3: #i<=3为真则一直执行,直到条件为假
    print(i)
    i += 1

求1~99的偶数和

sum = 0 #保存和
i = 2 #偶数
while i < 99:
    sum += i
    i += 2
print("1~99之间的偶数和为:", sum)

判断素数

x = int(input("请输入一个数字")) #1456789876541
i = 2
while i<x:
    if x%i ==0:
        print(f"{x}不是素数")
        break
    i+=1
if(i >= x):
    print(f"{x}是素数")

求1+2+3+…+n

x = int(input("请输入一个数字"))
sum = 0
for i in range(x+1):
    sum += i
print(sum)

求1+1/2+1/3+1/4+1/5+…+1/x

x = int(input("请输入一个数字"))
sum = 0
for i in range(1,x+1):
    sum += 1/i
print(sum)

3.break

break跳出一层循环。
例:1+2+3+…+x<1000; 1+2+3+…+x+(x+1)>1000,求x的值

sum = 0 
for i in range(1,1000): 
    sum += i; 
    if sum > 1000: 
        break; #跳出循环 
print(i-1,sum) 
sum = 0 
i = 1
while True: 
    sum += i 
    if sum > 1000: 
        break 
    i += 1 
print(i-1,sum) 

4.continue

提前结束本次循环,直接进入下一次循环.
例如:输出1~10直接的奇数.

for i in range(1,11):
    if i%2 == 0:#偶数,跳过
        continue
    print(i) 

5.使用while 循环处理列表和字典

for 循环是⼀种遍历列表的有效方式,但不应该在 for 循环中修改列表,否则将导致 Python 难以跟踪其中的元素。要在遍历列表的同时修改它,可使用while 循环。

5.1在列表之间移动元素

假设有一个包含新来且未办理入学手续的学生列表,在办理完手续后需把他们移到已办理手续列表中.
⼀种办法是使用⼀个 while 循环,在办理学生手续同时将其从未办理手续学生列表中提取出来,再将其加入已办理手续列表。代码如下:

strangers = ['刘备','曹操','孙权','诸葛亮','周瑜']
students = []
while strangers: #strangers还有数据
    stu = strangers.pop(0) #移除第一个元素
    print(f"{stu},已经办理入学手续")
    students.append(stu) #添加至尾部

print("已经办理入学手续有:",students)

5.2删除列表中的特定值

删除下面列表中的所有’cat’

pets = ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat'] #宠物列表
print(pets)    
while 'cat' in pets: #pets中还存在cat则循环继续    
    pets.remove('cat') #删除一个cat    
print("删除'cat'后的列表:",pets)    

http://www.kler.cn/a/321306.html

相关文章:

  • Spark RDD中常用聚合算子源码层面的对比分析
  • Taro React-Native IOS 打包发布
  • 斯坦福泡茶机器人DexCap源码解析:涵盖收集数据、处理数据、模型训练三大阶段
  • 【JavaEE初阶 — 多线程】死锁的产生原因和解决方法
  • kubernetes简单入门实战
  • idea 弹窗 delete remote branch origin/develop-deploy
  • 数组组成的最小数字 - 华为OD统一考试(E卷)
  • OmniAns丨OPENAIGC开发者大赛高校组AI创作力奖
  • 即插即用篇 | DenseNet卷土重来! YOLOv8 引入全新密集连接卷积网络 | ECCV 2024
  • CentOs-Stream-9 解决此系统未向授权服务器注册问题
  • 行情叠加量化,占据市场先机!
  • 计算机网络1
  • 【数据结构】假设二叉树采用二叉链表存储,编写一棵二又树中序遍历的非递归算法。
  • Apache技术深度解析与实战案例
  • Pydantic 是一个强大的 Python 库
  • EVM理解:深入理解EVM的运作方式,包括Gas机制、交易执行流程等。
  • 【IOS】申请开发者账号(公司)
  • C++ 排序算法
  • 基于51单片机的方向盘模拟系统
  • OJ在线评测系统 后端 使用代理模式编写测试类 并 实现核心业务判题流程
  • 开源治理聚光灯 | 企业规模不同,治理方式各显神通
  • 【openwrt-21.02】VPN Passthrough系列之L2TP Passthrough实现
  • 谷神后端$vs.dbTools.list
  • Windows安装Vim,并在PowerShell中直接使用vim
  • 【裸机装机系列】16.kali(ubuntu)-安装linux和win双系统-重装win11步骤
  • React Native中如何调用iOS的Face ID和Android的生物识别,react-native-biometrics