Python循环语句实战练习和循环嵌套详解

文章目录

  • 循环语句
    • while循环
    • 实战练习
      • 练习1:求100以内所有的奇数之和
      • 练习2:求100以内所有7的倍数之和,以及个数
      • 练习3:求1000以内所有的水仙花数
      • 练习4:获取用户输入的任意数,判断其是否是质数
    • 循环嵌套
      • 练习1:打印99乘法表
      • 练习2:求100以内所有的质数
    • 小游戏《唐僧大战白骨精》
  • 总结
    • while循环
  • python 学习专栏推荐
    • python基础知识(0基础入门)

循环语句

循环语句可以使指定的代码块重复执行指定的次数。在Python中,常见的循环语句有while循环和for循环。

while循环

while循环的基本语法如下:

while 条件表达式:代码块
else:代码块

执行流程:

  1. 执行while后的条件表达式,如果结果为True,则执行循环体(代码块);
  2. 执行完循环体后,再次对条件表达式进行判断;
  3. 如果条件表达式仍然为True,则继续执行循环体,以此类推,直到条件表达式为False;
  4. 如果循环有对应的else语句,则执行else后的代码块。

示例代码:

以下是一个使用while循环打印数字的示例代码:

i = 0
while i < 10:i += 1print(i, "hello")
else:print("else中的代码块")

在上述示例中,我们首先初始化变量i为0,然后通过i < 10作为条件表达式来控制循环的执行。在循环体中,我们对i进行自增操作,并打印出当前的值和"hello"。当i达到10时,条件表达式为False,循环终止。最后,由于循环有对应的else语句,所以会执行else中的代码块,打印出"else中的代码块"。

循环可以根据条件表达式的不同而具有灵活性。通过控制条件表达式和循环体内的代码,你可以实现各种不同的循环逻辑。在编写循环时,一定要注意循环的终止条件,避免出现死循环。同时,利用循环的特性可以简化重复的操作,提高代码的效率。

实战练习

练习1:求100以内所有的奇数之和

示例代码:

# 初始化变量sum,用于存储奇数之和
sum = 0# 使用循环遍历100以内的所有数
for i in range(1, 101):# 判断当前数是否为奇数if i % 2 != 0:# 是奇数,则累加到sum中sum += iprint("100以内所有的奇数之和为:", sum)

练习2:求100以内所有7的倍数之和,以及个数

示例代码:

# 初始化变量sum和count,用于存储倍数之和和个数
sum = 0
count = 0# 使用循环遍历100以内的所有数
for i in range(1, 101):# 判断当前数是否为7的倍数if i % 7 == 0:# 是7的倍数,则累加到sum中,并增加count的值sum += icount += 1print("100以内所有的7的倍数之和为:", sum)
print("100以内所有的7的倍数个数为:", count)

练习3:求1000以内所有的水仙花数

水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:13 + 53 + 3**3 = 153)。

求1000以内所有的水仙花数
示例代码:

# 使用循环遍历1000以内的所有数
for num in range(100, 1000):# 获取百位、十位、个位数字hundreds_digit = num // 100tens_digit = (num // 10) % 10ones_digit = num % 10# 判断当前数是否为水仙花数if num == hundreds_digit ** 3 + tens_digit ** 3 + ones_digit ** 3:print(num)

练习4:获取用户输入的任意数,判断其是否是质数

# 获取用户输入的数字
num = int(input("请输入一个数字:"))# 定义变量is_prime,用于判断是否为质数,默认为True
is_prime = True# 判断是否为质数
if num > 1:for i in range(2, num):if num % i == 0:is_prime = Falsebreak
else:is_prime = False# 输出结果
if is_prime:print(num, "是质数")
else:print(num, "不是质数")

循环嵌套

练习1:打印99乘法表

# 使用两层循环实现乘法表的打印
for i in range(1, 10):  # 控制行数for j in range(1, i + 1):  # 控制列数print(j, "*", i, "=", i * j, end=" ")print()

练习2:求100以内所有的质数

# 初始化变量count,用于计数质数的个数
count = 0# 使用循环遍历100以内的所有数
for num in range(2, 101):# 判断是否为质数is_prime = Truefor i in range(2, int(num ** 0.5) + 1):if num % i == 0:is_prime = Falsebreak# 如果是质数,则打印输出并增加计数器的值if is_prime:print(num, end=" ")count += 1# 输出质数的个数
print("\n100以内所有的质数个数为:", count)

小游戏《唐僧大战白骨精》

1、身份选择① 显示提示信息欢迎光临 xxx 游戏!请选择你的身份:1.xxx2.xxx请选择:x② 根据用户选择来分配身份(显示不同的提示消息)  1.---2.---3.---  2、游戏进行① 显示玩家的基本信息(攻击力 生命值)② 显示玩家可以进行的操作:1、练级- 提升玩家的攻击力和生命值2、打BOSS- 玩家对BOSS进行攻击,玩家要攻击BOSS,BOSS对玩家进行反击- 计算BOSS是否被玩家消灭,玩家是否被BOSS消灭- 游戏结束3、逃跑- 退出游戏,显示提示信息,游戏结束!

示例代码:

import random# 显示身份选择提示信息
print("欢迎光临《唐僧大战白骨精》游戏!")
print("请选择你的身份:")
print("1. 唐僧")
print("2. 白骨精")# 获取用户选择的身份
choice = input("请选择(输入数字序号):")if choice == "1":# 唐僧身份print("你选择了唐僧身份,祝你成功取经!")# 初始化玩家的攻击力和生命值player_attack = 10player_hp = 100while True:# 显示玩家的基本信息print("【玩家信息】")print("攻击力:", player_attack)print("生命值:", player_hp)# 显示玩家可以进行的操作print("请选择你要进行的操作:")print("1. 练级")print("2. 打BOSS")print("3. 逃跑")# 获取用户选择的操作choice = input("请选择(输入数字序号):")if choice == "1":# 练级操作,提升玩家的攻击力和生命值player_attack += 5player_hp += 20print("恭喜你,成功练级!")elif choice == "2":# 打BOSS操作boss_attack = random.randint(10, 30)boss_hp = random.randint(100, 200)print("【BOSS信息】")print("攻击力:", boss_attack)print("生命值:", boss_hp)print("战斗开始!")while True:# 玩家攻击BOSSboss_hp -= player_attackprint("你对BOSS造成了", player_attack, "点伤害")# 判断是否击败BOSSif boss_hp <= 0:print("恭喜你,成功击败BOSS!")break# BOSS反击玩家player_hp -= boss_attackprint("BOSS对你造成了", boss_attack, "点伤害")# 判断是否被BOSS消灭if player_hp <= 0:print("很遗憾,你被BOSS消灭了!")breakelif choice == "3":# 逃跑操作,退出游戏print("你选择了逃跑,游戏结束!")breakelse:print("无效操作,请重新选择!")elif choice == "2":# 白骨精身份print("你选择了白骨精身份,准备吃唐僧肉!")# 初始化玩家的攻击力和生命值player_attack = 20player_hp = 80while True:# 显示玩家的基本信息print("【玩家信息】")print("攻击力:", player_attack)print("生命值:", player_hp)# 显示玩家可以进行的操作print("请选择你要进行的操作:")print("1. 练级")print("2. 打唐僧")print("3. 逃跑")# 获取用户选择的操作choice = input("请选择(输入数字序号):")if choice == "1":# 练级操作,提升玩家的攻击力和生命值player_attack += 10player_hp += 10print("恭喜你,成功练级!")elif choice == "2":# 打唐僧操作tangseng_attack = random.randint(5, 15)tangseng_hp = random.randint(50, 150)print("【唐僧信息】")print("攻击力:", tangseng_attack)print("生命值:", tangseng_hp)print("战斗开始!")while True:# 玩家攻击唐僧tangseng_hp -= player_attackprint("你对唐僧造成了", player_attack, "点伤害")# 判断是否击败唐僧if tangseng_hp <= 0:print("恭喜你,成功吃到了唐僧肉!")break# 唐僧反击玩家player_hp -= tangseng_attackprint("唐僧对你造成了", tangseng_attack, "点伤害")# 判断是否被唐僧消灭if player_hp <= 0:print("很遗憾,你被唐僧打败了!")breakelif choice == "3":# 逃跑操作,退出游戏print("你选择了逃跑,游戏结束!")breakelse:print("无效操作,请重新选择!")else:print("无效选择,游戏结束!")

总结

循环语句是编程中一种重要的控制结构,可以使指定的代码块重复执行多次。在Python中,常见的循环语句有while循环和for循环。

while循环

  • while循环的基本语法为:

    while 条件表达式:代码块
    else:代码块
    
  • 执行流程:

    1. 执行while后的条件表达式,如果结果为True,则执行循环体(代码块);
    2. 执行完循环体后,再次对条件表达式进行判断;
    3. 如果条件表达式仍然为True,则继续执行循环体,以此类推,直到条件表达式为False;
    4. 如果循环有对应的else语句,则执行else后的代码块。
  • 循环的注意事项:

    • 避免死循环:确保在循环内部有能够改变条件表达式的代码,否则会陷入无限循环。
    • 初始化和更新表达式:需要在循环外部先初始化变量,并在循环体内部对变量进行更新操作,以控制循环的执行。
    • 利用break语句:可以在循环内部使用break语句来提前终止循环。
  • 示例代码:

    i = 0
    while i < 10:i += 1print(i, "hello")
    else:print("else中的代码块")
    

    在上述示例中,我们使用while循环打印数字1到10,并在每个数字后面输出"hello"。当i达到10时,条件表达式i < 10为False,循环终止。最后,由于循环有对应的else语句,所以会执行else中的代码块。

  • while循环的灵活性:可以通过控制条件表达式和循环体内的代码,实现不同的循环逻辑。利用循环的特性可以简化重复的操作,提高代码的效率。

循环是编程中常用的控制结构之一,掌握循环语句的使用可以让代码更加灵活和高效。但也要注意循环的终止条件和避免死循环的情况,以确保程序的正确执行。


python 学习专栏推荐

python基础知识(0基础入门)

【python基础知识】0.print()函数
【python基础知识】1.数据类型、数据应用、数据转换
【python基础知识】2.if条件判断与条件嵌套
【python基础知识】3.input()函数
【python基础知识】4.列表和字典
【python基础知识】5.for循环和while循环
【python基础知识】6.布尔值和四种语句(break、continue、pass、else)
【python基础知识】7.实操-用Python实现“文字PK”小游戏(一)
【python基础知识】7.实操-用Python实现“文字PK”小游戏(二)
【python基础知识】8.编程思维:如何解决问题-思维篇
【python基础知识】9.函数的定义和调用
【python基础知识】10.用函数编写程序 - 实操篇
【python基础知识】10.用Python实现石头剪刀布小游戏-函数实操篇
【python基础知识】11.如何debug -常见报错原因及排查思路 - 思维篇
【python基础知识】12.类与对象(一)
【python基础知识】12.类与对象(二)
【python基础知识】13.类与对象(三)
【python基础知识】13.类与对象(四)
【python基础知识】14.图书管理系统的搭建(类与对象实操)
【python基础知识】15.编码基础知识
【python基础知识】16.文件读写基础及操作
【python基础知识】16.“古诗默写题”的python实现(文件读写和编码-实操篇)
【python基础知识】17.模块的概念以及如何引入
【python基础知识】18.实操-使用python自动群发邮件
【python基础知识】19.产品思维以及流程图的使用 - 思维篇
【python基础知识】20.“午饭吃什么”的python实现(产品思维-实操篇)
【python基础知识】21.高效偷懒的正确打开方式-毕业篇
【python文件处理】CSV文件的读取、处理、写入
【python文件处理】Excel自动处理(使用 openpyxl)
【python文件处理】-excel格式处理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/71433.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无涯教程-JavaScript - BESSELY函数

描述 BESSELY函数针对x的指定顺序和值返回Bessel函数Yn(x)(也称为Weber函数或Neumann函数)。 语法 BESSELY(X, N)争论 Argument描述Required/OptionalXThe value at which to evaluate the function.RequiredNThe order of the function. If n is not an integer, it is tr…

Spring中Endpoint、HasFeatures、NamedFeature和Actuator的关系及实现原理

文章目录 1. 关系缘由2. Actuator简介及简单使用3. Endpoint和Actuator的关系4. Endpoint和HasFeatures的关系5. Endpoint和HasFeatures原理解析5.1 Endpoint的实现原理5.2 HasFeatures的实现原理 6. 个人闲谈 1. 关系缘由 我们经常可以在Springboot中看到Endpoint注解&#x…

什么牌子的led台灯质量好?热门的Led护眼台灯推荐

led台灯有环保无污染、耗能低、长寿命等优点&#xff0c;适合用在阅读、书写、批阅等办公或学习的场所。而挑选LED台灯时&#xff0c;分散光挡板做的比较好的优先选择&#xff0c;能分散大量蓝光&#xff0c;对眼睛危害较小。下面&#xff0c;小编为大家推荐五款质量好的led护眼…

EF框架基础应用入门

文章目录 一、介绍二、EF6框架基础1. 数据模型和实体类2. 数据库上下文&#xff08;DbContext&#xff09;介绍3. 配置数据模型与数据库表的映射关系 两种方式Fluent API和数据注解Fluent API数据注解 4. 数据库迁移&#xff08;Migration&#xff09;概述a. 创建初始迁移b. 更…

ElementUI浅尝辄止20:Pagination 分页

分页组件常见于管理系统的列表查询页面&#xff0c;数据量巨大时需要分页的操作。 当数据量过多时&#xff0c;使用分页分解数据。 1.如何使用&#xff1f; /*设置layout&#xff0c;表示需要显示的内容&#xff0c;用逗号分隔&#xff0c;布局元素会依次显示。prev表示上一页…

Vulnhub: Masashi: 1靶机

kali&#xff1a;192.168.111.111 靶机&#xff1a;192.168.111.236 信息收集 端口扫描 nmap -A -sC -v -sV -T5 -p- --scripthttp-enum 192.168.111.236查看80端口的robots.txt提示三个文件 snmpwalk.txt内容&#xff0c;tftp服务在1337端口 sshfolder.txt内容&#xff0c…

日200亿次调用,喜马拉雅网关的架构设计

说在前面 在40岁老架构师 尼恩的读者社区(50)中&#xff0c;很多小伙伴拿到一线互联网企业如阿里、网易、有赞、希音、百度、滴滴的面试资格。 最近&#xff0c;尼恩指导一个小伙伴简历&#xff0c;写了一个《API网关项目》&#xff0c;此项目帮这个小伙拿到 字节/阿里/微博/…

管理类联考——数学——汇总篇——知识点突破——数据分析——计数原理——减法原理除法原理

减法原理 正面难则反着做(“ − - −”号) 【思路】当出现“至少、至多”、“否定用语"等正面较难分类的题目&#xff0c;可以采用反面进行求解&#xff0c;注意部分反面的技巧以及“且、或"的反面用法。 除法原理 看到相同&#xff0c;定序用除法消序( “ &quo…

python批量下载csdn文章

声明&#xff1a;该爬虫只可用于提高自己学习、工作效率&#xff0c;请勿用于非法用途&#xff0c;否则后果自负 功能概述&#xff1a; 根据待爬文章url(文章id)批量保存文章到本地&#xff1b;支持将文中图片下载到本地指定文件夹&#xff1b;多线程爬取&#xff1b; 1.爬取…

关于 Nginx 的哪些事

关于 Nginx 的哪些事 1、Nginx 主要功能2、Nginx 的常用命令2.1、启动Nginx2.2、停止 Nginx2.3、重新加载Nginx 配置2.4、检查Nginx配置文件2.5、指定配置文件2.6、检查Nginx版本2.7、显示Nginx帮助信息 3、Nginx 配置文件 nginx.conf3.1、Nginx 配置文件&#xff08;nginx.con…

NLP:生成熟悉NLP开源工具,如NLTK、 HanLP等,并搜寻、下载和熟悉PKU、 CoreNLP, LTP MSR, AS CITYI 等语料库。

目录 一、NLTK 二、HanLP 三、PKU 四、CoreNLP 五、LTP 六、MSR 一、NLTK NLTK&#xff08;Natural Language Toolkit&#xff09;是Python的一个开源自然语言处理库。它提供了大量已经预处理好的文本数据和语料库&#xff0c;以及一些常用的文本处理算法和NLP工具。例如&…

插入排序——希尔排序

1、简述&#xff1a; 希尔排序(Shells Sort)是插入排序的一种又称“缩小增量排序”&#xff08;Diminishing Increment Sort&#xff09;&#xff0c;是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因 D.L.Shell 于 1959 年提出而得名。 希尔排…

[杂谈]-快速了解直接内存访问 (DMA)

快速了解直接内存访问 (DMA) 文章目录 快速了解直接内存访问 (DMA)1、使用 DMA 需要什么&#xff1f;2、DMA介绍3、DMA 中的数据传输如何进行&#xff1f;4、DMA接口5、DMAC 控制器寄存器6、DMA 控制器编程模式6.1 突发模式&#xff08;Burst Mode&#xff09;6.2 循环窃取模式…

无人机集群路径规划MATLAB:孔雀优化算法POA求解无人机集群三维路径规划

一、无人机模型简介 单个无人机三维路径规划问题及其建模_IT猿手的博客-CSDN博客 二、孔雀优化算法POA介绍 孔雀优化算法( Peafowl Optimization Algorithm, POA), 是由 Jingbo Wang 等于2022 年提出的一种群体智能优化算法。其灵感来源于孔雀的群体行为。 智能优化算法&am…

2023年度AWS SAP直冲云霄训练营学习分享

AWS在公有云市场一直处于行业领先地位&#xff0c;其培训认证体系也是非常的完善的。而且经常在国内组织一些技术论坛&#xff0c;技术分享&#xff0c;公开课&#xff0c;训练营等技术活动。 AWS训练营适合希望学习和考取AWS助理级架构师/专家级架构师&#xff08;AWS SAA/AW…

Nebula数据库安装

1、什么是nebula NebulaGraph是一款开源的、分布式的、易扩展的原生图数据库&#xff0c;能够承载包含数千亿个点和数万亿条边的超大规模数据集&#xff0c;并且提供毫秒级查询。 2、利用docker-compose安装Nebula数据库 1、前提条件 主机中安装了docker主机中安装了Docke…

基于改进莱维飞行和混沌映射的粒子群优化BP神经网络分类研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【git】【IDEA】在idea中使用git

目录 一、 在IDEA中配置git 二、 获取git仓库 2.1 本次初始化仓库 2.2 从远程仓库克隆 三、 本地仓库操作 3.1 将文件加入暂存区 3.2 将暂存区的文件提交到版本库 3.3 快捷键 使用快捷键 实现加入到暂存区与提交到版本库 3.4 查看日志 Show History 四、 远程仓库操…

springboot初试elasticsearch

引入依赖 elasticsearch的依赖版本与你elasticsearch要一致 <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId> </dependency> 索引库的操作 创建索引库 impo…

Scikit-learn:全面概述

引言&#xff1a; 在机器学习领域&#xff0c;Python已经成为一种重要的编程语言&#xff0c;这得益于其简洁、多功能和丰富的库。在这些库中&#xff0c;Scikit-learn作为其中最受欢迎和强大的之一&#xff0c;脱颖而出。它提供了各种工具、算法和功能&#xff0c;使用户能够…