首页 > 编程语言 >Python控制流:循环语句(for, while)②

Python控制流:循环语句(for, while)②

时间:2024-09-02 09:26:30浏览次数:11  
标签:count 语句 score Python 控制流 while 循环 print

在这里插入图片描述

文章目录

前言

循环语句是编程中不可或缺的控制结构,用于重复执行一段代码。Python提供了两种基本的循环语句:for循环和while循环。本文将详细介绍Python的循环语句,包括它们的用法和最佳实践,并附上一个综合详细的例子,帮助您全面掌握Python循环语句的用法。

1. for 循环

for 循环用于遍历序列(如列表、元组、字符串)或其他可迭代对象。它的语法如下:

for item in iterable:
    # 执行代码块
1.1 遍历列表
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

在这个例子中,for 循环依次将 fruits 列表中的每个元素赋值给变量 fruit,然后打印出来。

1.2 遍历字符串
message = "hello"
for char in message:
    print(char)

在这个例子中,for 循环依次将 message 字符串中的每个字符赋值给变量 char,然后打印出来。

1.3 使用 range() 函数

range() 函数生成一个整数序列,常用于 for 循环。

for i in range(5):
    print(i)

在这个例子中,for 循环依次打印从0到4的整数。

1.4 enumerate() 函数

enumerate() 函数返回枚举对象,生成包含索引和值的元组。

fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
    print(index, fruit)

在这个例子中,for 循环依次打印 fruits 列表中每个元素的索引和值。

1.5 zip() 函数

zip() 函数将多个可迭代对象打包成元组的迭代器。

names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]
for name, age in zip(names, ages):
    print(name, age)

在这个例子中,for 循环依次打印 names 列表和 ages 列表中对应的元素。

2. while 循环

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

while condition:
    # 执行代码块
2.1 基本用法
count = 0
while count < 5:
    print(count)
    count += 1

在这个例子中,while 循环在 count 小于5时不断执行,并在每次循环后将 count 加1。

2.2 无限循环

如果条件一直为真,while 循环将无限执行。

while True:
    print("这是一个无限循环")

在实际编程中,应避免使用无限循环,除非有明确的退出条件。

2.3 使用 breakcontinue 语句

break 语句用于立即退出循环,而 continue 语句用于跳过当前迭代并继续下一次迭代。

count = 0
while count < 10:
    count += 1
    if count == 5:
        continue  # 跳过5
    if count == 8:
        break  # 中断循环
    print(count)

在这个例子中,while 循环在 count 等于5时跳过当前迭代,并在 count 等于8时退出循环。

3. 嵌套循环

循环语句可以相互嵌套,以处理更复杂的任务。

for i in range(3):
    for j in range(3):
        print(i, j)

在这个例子中,外部 for 循环和内部 for 循环依次打印所有可能的 (i, j) 组合。

4. 常见错误和最佳实践
4.1 常见错误
  • 忘记更新循环变量:在 while 循环中,如果忘记更新循环变量,可能会导致无限循环。

    count = 0
    while count < 5:
        print(count)
        # count += 1  # 忘记更新
    
  • 忘记 ::在循环语句的条件表达式后面忘记加冒号。

    for i in range(5)  # 缺少冒号
        print(i)
    
4.2 最佳实践
  • 确保循环条件最终为假:在使用 while 循环时,确保循环条件最终会变为假,以避免无限循环。

    count = 0
    while count < 5:
        print(count)
        count += 1
    
  • 使用描述性变量名:使用有意义的变量名,使代码更易读。

    fruits = ["apple", "banana", "cherry"]
    for fruit in fruits:
        print(fruit)
    
5. 综合详细的例子:学生成绩管理系统

以下是一个学生成绩管理系统的例子,展示了循环语句在实际编程中的应用。

class Student:
    def __init__(self, name, scores):
        self.name = name
        self.scores = scores  # 字典,包含各科成绩

    def average_score(self):
        total_score = sum(self.scores.values())
        num_subjects = len(self.scores)
        return total_score / num_subjects

    def grade(self):
        avg_score = self.average_score()
        if avg_score >= 90:
            return "优秀"
        elif avg_score >= 80:
            return "良好"
        elif avg_score >= 70:
            return "中等"
        elif avg_score >= 60:
            return "及格"
        else:
            return "不及格"

    def pass_fail(self):
        for subject, score in self.scores.items():
            if score < 60:
                return "不及格"
        return "及格"

def main():
    students = []
    
    while True:
        name = input("请输入学生姓名(输入'结束'退出):")
        if name == '结束':
            break

        scores = {}
        while True:
            subject = input("请输入科目名称(输入'完成'结束):")
            if subject == '完成':
                break
            score = float(input(f"请输入 {subject} 的成绩:"))
            scores[subject] = score

        student = Student(name, scores)
        students.append(student)

    for student in students:
        print(f"学生: {student.name}")
        print(f"平均成绩: {student.average_score():.2f}")
        print(f"成绩等级: {student.grade()}")
        print(f"总评: {student.pass_fail()}")
        print("-----------")

if __name__ == "__main__":
    main()
5.1 类和方法
Student
  • __init__ 方法:初始化学生姓名和成绩。
  • average_score 方法:计算学生的平均成绩。
  • grade 方法:根据平均成绩返回学生的成绩等级。
  • pass_fail 方法:检查所有科目成绩是否及格。
5.2 主函数
  • main 函数:循环输入学生信息并输出每个学生的成绩信息。

在这个例子中,我们使用了for循环和while循环来处理学生信息的输入和输出。通过这个例子,我们可以看到循环语句在实际编程中的应用。

5.3 运行结果:

在这里插入图片描述

总结

本文详细介绍了Python的循环语句,包括for循环和while循环的用法及其最佳实践。通过一个综合详细的例子,我们展示了循环语句在实际编程中的应用。希望本文对您理解和应用Python循环语句有所帮助。


欢迎点赞|关注|收藏|评论,您的肯定是我创作的动力

在这里插入图片描述

标签:count,语句,score,Python,控制流,while,循环,print
From: https://blog.csdn.net/rjdeng/article/details/141807490

相关文章

  • Python知识点:如何使用Python实现图像分类
    使用Python实现图像分类通常涉及使用深度学习库,如TensorFlow或PyTorch。以下是使用TensorFlow和Keras来实现一个简单图像分类模型的步骤。1.安装所需的库首先,确保已安装必要的Python库。使用以下命令安装TensorFlow和其他必需的库:pipinstalltensorflown......
  • 花店鲜花管理与推荐系统+Python+Django网页界面+管理系统+计算机课设
    一、介绍花店鲜花管理与推荐系统。本系统使用Python作为主要开发语言开发的一个花店鲜花管理与推荐的网站平台。网站前端界面采用HTML、CSS、BootStrap等技术搭建界面。后端采用Django框架处理用户的逻辑请求,并将用户的相关行为数据保存在数据库中。通过Ajax技术实现前后端的数......
  • python进阶篇-day03-学生管理系统与深浅拷贝
    day03-学生管理系统-面向对象魔术方法:__dict__将对象的属性和属性值封装为字典用字典的值实例化对象:对象名(**字典)=>拆包student.py"""该文件记录的是:学生类的信息.​学生的属性如下: 姓名,性别,年龄,联系方式,描述信息"""​#1.定义学生类.......
  • Python——造物者type( )、元类与抽象基类
    type()函数在Python中,type()函数是一个非常重要的内置函数,它的前因后果和追根溯源可以从以下几个方面来理解:Python中所有的类本质上也是一个对象,一个从类type实例化的对象。使用type()函数对类进行操作时,会返回type本身,即typeistype。一、定义与基本用途定义:type()函数是P......
  • 【VS Code编写Python】Python 快速入门指南
    1.前言Python扩展使VisualStudioCode成为出色的Python编辑器,可在任何操作系统上运行,并可与各种Python解释器一起使用。首先安装:VS代码Python解释器(任何积极支持的Python版本)VSCode市场上的Python扩展要进一步自定义VSCodeforPython,您可以利用Python......
  • Python纯代码 取组合数结果
    总是在编程题目上碰到取列表中若干元素组合结果的情况,想出过解法但是老是忘,趁现在还记得赶紧写下来 大致思路是:通过迭代遍历每个元素位置,选择可能的位置,用yield生成并返回。 defget_c(list1,num_left=None,list2=None):""":paramlist1:待取组合数列表:......
  • [python][selenium][web自动化]元素定位方式
    8种方式:1、id2、class_name3、name4、link_text5、partial_link_text6、tag_name7、css_selector8、XPath1、2、3:元素属性,通常跟7、8去组合使用比较多。4、5:是用可点击的链接的文本去定位。6:是根据元素标签去定位。7、8:最常用的方式,能结合前面6种方式组合去定位,我个人觉得理解后......
  • python threading 线程原理实验
    原理进程之间,编程语言可以不同,内存不共享。需要用socket/IRC/RPC等技术实现进程间通信线程之间,编程语言必须相同,内存共享。类变量self.xxx共享,分叉target的函数内变量private不共享。代码#!/usr/bin/env-Scondarun--live-stream-nbasepythonimportthreadingasthi......
  • 堆排序python实现
    一,树与二叉树1,树        树是一种数据结构,比如目录结构。        树是由n各节点组成的集合:    1.如果n=0,那存在一个节点作为数的根节点,其他节点可以分为m个集合,每个集合本身又是一颗树,比如:树的相关概念,比如根节点,叶子节点什么的不做过多介绍......
  • 基于yolov10的学生课堂行为检测系统,支持图像检测,也支持视频和摄像实时检测(pytorch框架
       更多目标检测和图像分类识别项目可看我主页其他文章功能演示:基于yolov10的学生课堂行为检测系统,支持图像、视频和摄像实时检测【pytorch框架、python】_哔哩哔哩_bilibili(一)简介基于yolov10的学生课堂行为检测系统是在pytorch框架下实现的,这是一个完整的项目,包括代码......