python入门之循环结构

举报
tea_year 发表于 2025/11/17 15:37:20 2025/11/17
【摘要】 在Python中,循环结构是一种允许代码块重复执行直到满足特定条件为止的控制流语句。循环结构在处理重复任务时非常有用,例如遍历列表、重复执行计算等。常用的循环类型及描述Python中主要有两种循环类型:for循环和while循环。‌for循环‌:用于遍历序列(如列表、元组、字符串)或其他可迭代对象,对每个元素执行一次代码块。‌while循环‌:在给定条件为真时重复执行代码块。条件在每次循环迭...

在Python中,循环结构是一种允许代码块重复执行直到满足特定条件为止的控制流语句。循环结构在处理重复任务时非常有用,例如遍历列表、重复执行计算等。

常用的循环类型及描述

Python中主要有两种循环类型:for循环和while循环。

  • for循环‌:用于遍历序列(如列表、元组、字符串)或其他可迭代对象,对每个元素执行一次代码块。
  • while循环‌:在给定条件为真时重复执行代码块。条件在每次循环迭代之前检查。

for循环

特殊类型的循环,for in格式,从集合里面,逐个提取数据

  • 语法
for 变量 in 序列:
      语句1
      语句2
      ...
# for循环案例
# 比如[1,2,3,4,5,6,7]

list_one = [1,2,3,4,5,6,7]

for num in list_one:
    print(num)
    print(num+100)
    print(num+1000)


#定义一个列表;
# list=['linux','mac','windows','HonmOS']
# list={'java','python','go'}
# for os in list:
#     print(os)

dict={'Y':'河南省','J':'北京市','H':'上海市'}
#逐个从list这个列表来获取数据
#list和set输出的都是里面的值;dict类型输出的是key
# for key in dict:
#     print(key)
#     print(dict[key])
#这个方式:for key,value in 字典的所有的项目集合
for key,value in dict.items():
    print(key,value)
#------相当于下面的代码组合 字典所有的key集合 value集合
for k in dict.keys():
    print(k)
for v in dict.values():
    print(v)    
# 打印学生列表姓名
# 如果是jingjing,那肯定是我的最爱呀
# 如果是别的学生,那要冷酷的拒绝他

stu_list = ['王大眼','李美丽','王晓静']

#for循环+if判断
for stu in stu_list:
    if stu == "王晓静":
        print("晓静你去了哪里")
    else:
        print("对不起同学,饶了老衲吧")
对不起同学,饶了老衲吧
对不起同学,饶了老衲吧
晓静你去了哪里

for-else语句

  • for循环结束的时候,有时候需要执行一些收尾工作,此时需要使用else语句
  • else语句是可选的
# for-else语句
# 打印列表中的同学
# 如果没有在列表中,或者列表结束了,我们需要打印提示语句,表示不再爱了

stu_list = ['王大眼','李美丽','王晓静']

for stu in stu_list:
    if stu == "王晓静":
        print("晓静你去了哪里")
    else:
        print("对不起同学,饶了老衲吧")
else:
    print("不会再爱了")
对不起同学,饶了老衲吧
对不起同学,饶了老衲吧
晓静你去了哪里
不会再爱了

range函数

  • 生成有序数列
  • 生成数字队列可以定制
# range案例1
# 生成一个从1到100的数字序列
# range的生成序列的两个数字是左包括右边不包括
dig_list = range(1,101)
for dig in dig_list:
    print(dig)
    
# 一般在python中,连个表示范围的数字都是左包括右边不包括,randint函数是个特例
# range函数在python2.x和python3.x中有严重区别
# range3
# 打印从1到9的数字
for i in range(1,10):
    print(i)
1
2
3
4
5
6
7
8
9

while循环

1、循环简介

循环:有条件重复做同一件事,直到条件不满足==。

循环的作用:让·代码高效的重复执行

2、while循环三步走

① 定义一个计数器 如: i = 0 , i = 1

② 编写循环条件 如:while i < 100:

③ 在循环内部更新计数器 如 : i +=1

  • 一个循环语句
  • 表示当条件成立的时候,就循环,适应于不知道具体循环次数,但能确定在某个条件成立的情况下就循环
  • while语法
while 条件表达式:
      语句块
      
  #另外一种表达方法
  while 条件表达式:
      语句块1
  else:
      语句块2
# 如果说年利率是6.7%,本利是每年翻滚,则多少年后本金会翻倍
benqian = 10000            #①初始值
year = 0 # 存放需要翻本的年数

#②循环的条件,等于的时候已经翻倍了
while benqian < 20000: 
    benqian = benqian * (1 + 0.067) 		#④:循环体的代码
    year += 1      # year = year + 1  		#③: 自增 自减的条件代码
    
print(year)

# 年利率案例2
# 本案例中循环体没有被执行
while benqian < 20000:
    benqian = benqian * (1 + 0.067)
    year += 1      # year = year + 1
else:
    print(year)
11

案例

host_list文件

www.jd.com
www.baidu.com
www.qq.com


import subprocess

# 定义颜色来区分主机状态,颜色格式:\033[显示方式;前景色;背景色m
redFont = "\033[1;31m"  # 红色
greenFont = "\033[1;32m"  # 绿色
defautFont = "\033[0m"  # 结束颜色格式的输出

with open("host_list", "r") as f:
    for host in f:  # 逐行读取文本文件中的主机
        host = host.strip()  # 每行末尾有隐藏的换行符\n,使用strip()函数清除
        for i in range(3):  #0 1 2 
            #linux的执行代码
            #result = subprocess.run(['ping', '-c1', '-W1', str(host)], stdout=subprocess.PIPE, check=False)
            #windows执行
            result = subprocess.run(['ping', '-n', '1', '-w', '3000', str(host)], stdout=subprocess.PIPE, check=False)

            if result.returncode == 0:  # 判断返回码
                print(greenFont + host + ' 主机' + defautFont + ' 正在运行')
                break
            else:
                if i == 2:  # 连续3次无法通信,则判定为停止状态
                    print(redFont + host + ' 主机' + defautFont + ' 停止运行')

break,continue,pass

  • break:无条件结束整个循环,简称循环猝死
  • continue:跳过本次循环,继续下一次循环
  • pass:只是占位符号,代表这句话啥也不干,没有跳过功能
# 确定一个数字队列中是否包含数字7
# 确定是否包含,只要找到一个即可确定,不需要再继续往下找了,所以使用break

dig_list = [3,4,6,7,54,3,23,2,4,7]

for dig in dig_list:
    if dig == 7:
        print("哈哈哈,找到了")
        break
    else:
        print(dig)
3
4
6
哈哈哈,找到了
# continue语句练习
# 在数字1-10中,寻找所有偶数,找到偶数后打印偶数

dig_list = [1,2,3,4,5,6,7,8,9,10]

'''
# continue案例1

for dig in dig_list:
    if dig % 2 == 0:
        print(dig)
        print("哈哈,你是个双的")
    else:
        continue
'''

# 此段代码跟上面代码等价
for dig in dig_list:
    if dig % 2 == 1:
        continue
        
    print(dig)    
    print("哈哈,你是个双的")
2
哈哈,你是个双的
4
哈哈,你是个双的
6
哈哈,你是个双的
8
哈哈,你是个双的
10
哈哈,你是个双的
# pass案例1

age = 19
if age > 19:
    pass
else:
    print("你还小")

#换java写
if(age>19){
}
else{
    打印“你还小”
}
class Dog{
    //去完善狗类吃屎动作
    //去完善跑动作
}
你还小
# pass案例2

ages = [2,23,43,54,65,2]
for age in ages:
    pass
    print(age)
2
23
43
54
65
2

while循环与for循环对比

① 对于循环次数已知的情况,适合使用while循环(因为while循环有遍历次数)

② 对于循环次数未知的情况,如数据容器(字符串、列表、元组、字典、集合统称为数据容器)推荐使用for循环,其实for循环是专门用于实现对数据容器的遍历

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。