Day04.循环结构

Python循环技巧全攻略,基础到高级应用一文get! Python是一种通用且功能强大的编程语言,它提供了各种结构来有效地处理重复性任务。循环概念就是这方面的基本工具之一。循环允许开发人员重复执行代码块,使其成为高效和简洁编程的关键要素。在这里,本文将深入探讨Python中的循环,包括它们的类型、用途和最佳实践。 阅读详情

循环结构



前言

我们在写程序的时候,一定会遇到需要重复执行某条或某些指令的场景。例如用程序控制机器人踢足球,如果机器人持球而且还没有进入射门范围,那么我们就要一直发出让机器人向球门方向移动的指令。在这个场景中,让机器人向球门方向移动就是一个需要重复的动作,当然这里还会用到上一课讲的分支结构来判断机器人是否持球以及是否进入射门范围。再举一个简单的例子,如果要实现每隔1秒中在屏幕上打印一次“hello, world”并持续打印一个小时,我们肯定不能够直接把print('hello, world')这句代码写3600遍,这里同样需要循环结构。

循环结构就是程序中控制某条或某些指令重复执行的结构。在Python中构造循环结构有两种做法,一种是for-in循环,一种是while循环。


一.for-in循环

如果明确的知道循环执行的次数或者要对一个容器进行迭代(后面会讲到),那么我们推荐使用for-in循环,例如下面代码中计算1~100求和的结果( ∑ n = 1 100 n \displaystyle \sum \limits_{n=1}^{100}n n=1∑100​n)。

# 用for循环实现1~100求和
sum_num = 0
for x in range(101):
    sum_num += x
    
print(sum_num)

需要说明的是上面代码中的range(1, 101)可以用来构造一个从1到100的范围,当我们把这样一个范围放到for-in循环中,就可以通过前面的循环变量x依次取出从1到100的整数。当然,range的用法非常灵活,下面给出了一个例子:

  • range(101):可以用来产生0到100范围的整数,需要注意的是取不到101。
  • range(1, 101):可以用来产生1到100范围的整数,相当于前面是闭区间后面是开区间。
  • range(1, 101, 2):可以用来产生1到100的奇数,其中2是步长,即每次数值递增的值。
  • range(100, 0, -2):可以用来产生100到1的偶数,其中-2是步长,即每次数字递减的值。

知道了这一点,我们可以用下面的代码来实现1~100之间的偶数求和。

# 用for循环实现1~100之间的偶数求和
sum_even = 0
for x in range(0,101,2):
    sum_even += x
    
print(sum_even)

当然,也可以通过在循环中使用分支结构的方式来实现相同的功能,代码如下所示。

sum_even = 0
for x in range(1, 101):
    if x % 2 == 0:
        sum_even += x

print(sum_even)

说明: 相较于上面直接跳过奇数的做法,下面这种做法很明显并不是很好的选择。

二.While循环

如果要构造不知道具体循环次数的循环结构,我们推荐使用while循环。while循环通过一个能够产生或转换出bool值的表达式来控制循环,表达式的值为True则继续循环;表达式的值为False则结束循环。

下面我们通过一个“猜数字”的小游戏来看看如何使用while循环。猜数字游戏的规则是:计算机出一个1到100之间的随机数,玩家输入自己猜的数字,计算机给出对应的提示信息(大一点、小一点或猜对了),如果玩家猜中了数字,计算机提示用户一共猜了多少次,游戏结束,否则游戏继续。

import random

answer = random.randint(1, 100)
num = 0

while True:
    num += 1
    guess = int(input("请输入猜的正整数:"))
    if answer == guess:
        print("恭喜您已猜中,一共猜了 %d 次!" % num)
        break
    elif guess > answer :
        print("太大了!")
    else:
        print("太小了!")

上面的代码中使用了break关键字来提前终止循环,需要注意的是break只能终止它所在的那个循环,这一点在使用嵌套的循环结构(下面会讲到)需要引起注意。除了break之外,还有另一个关键字是continue,它可以用来放弃本次循环后续的代码直接让循环进入下一轮。

和分支结构一样,循环结构也是可以嵌套的,也就是说在循环中还可以构造循环结构。下面的例子演示了如何通过嵌套的循环来输出一个九九乘法表。

# 输出乘法口诀表(九九表)
for i in range(1, 10):
    for j in range(1, i+1):
        print("%d * %d = %d" % (i, j, i*j), end = "\t")
    print()  # 换行

三.练习

3.1 输入一个正整数判断是不是素数。

提示: 素数指的是只能被1和自身整除的大于1的整数。

from math import sqrt

num = int(input('请输入一个正整数: '))
end = int(sqrt(num))
is_prime = True

for x in range(2, end + 1):
    if num % x == 0:
        is_prime = False
        break
if is_prime and num != 1:
    print('%d是素数' % num)
else:
    print('%d不是素数' % num)

3.2 输入两个正整数,计算它们的最大公约数和最小公倍数。

提示: 两个数的最大公约数是两个数的公共因子中最大的那个数;两个数的最小公倍数则是能够同时被两个数整除的最小的那个数。

x = int(input('x = '))
y = int(input('y = '))

# 如果x大于y就交换x和y的值
if x > y:
    # 通过下面的操作将y的值赋给x, 将x的值赋给y
    x, y = y, x

# 从两个数中较小数开始做递减的循环
for factor in range(x, 0, -1):
    if x % factor == 0 and y % factor == 0:
        print('%d和%d的最大公约数是%d' % (x, y, factor))
        print('%d和%d的最小公倍数是%d' % (x, y, x * y // factor))
        break

3.3 打印如下所示的三角形图案。

*
**
***
****
*****
    *
   **
  ***
 ****
*****
    *
   ***
  *****
 *******
*********
# 个人的小白代码
for i in range(1, 6):
    print("*" * (i))

for i in range(5, 0, -1):
    print(" "* (i-1) + "*" * (6-i))

for i in range(5, 0, -1):
    print(" "* (i-1) + "*" * (11-2*i))

大家还是看大佬的代码吧

row = int(input('请输入行数: '))
for i in range(row):
    for _ in range(i + 1):
        print('*', end='')
    print()


for i in range(row):
    for j in range(row):
        if j < row - i - 1:
            print(' ', end='')
        else:
            print('*', end='')
    print()

for i in range(row):
    for _ in range(row - i - 1):
        print(' ', end='')
    for _ in range(2 * i + 1):
        print('*', end='')
    print()

总结

今天主要是学习了几个简单的循环结构,但是逻辑上的代码实现,感觉还是跟不上节奏,只会用很简单的循环,没有丝毫的变通,这个还是需要好好加强一下。还有就是代码的通用性即泛化能力上有很大的问题,这个得好好练练。最后就是有些编程练习,需要一些底层的数学公式才好优化,不然感觉就很浪费CPU。

溜了遛了,脑壳疼。Loading(4/100)。。。。

【Python入门】5大Python循环技巧:你真的掌握了吗? 循环是一种重复执行某段代码的结构,直到满足某个条件为止。通过循环,可以避免重复编写相同的代码,使程序更加简洁和高效。for循环用于遍历序列(如列表、元组、字符串等)或其他可迭代对象,每次迭代处理一个元素。while循环用于在条件满足时重复执行一段代码,直到条件不再满足为止。else子句可以与for或while循环一起使用,当循环正常结束(即没有被break语句中断)时执行。定义for循环用于遍历序列或其他可迭代对象,每次迭代处理一个元素。作用for循环适用于已知迭代次数的情况,使代码更加简洁和易读。 阅读详情

相关推荐

Python:循环

循环: 在python编程中,python提供了for循环和while循环 while循环: 基本语法为: while 判断条件: 执行语句...... 1、while循环用于循环执行程序,以处理需要重复处理的任务。 2、while循环用于多次判断同一个条件,if 语句只能判断一个条件一次 3、执行语句可以是单个语句或语句块。判断条件可以是任何表达式(参考if............

不怕猫的耗子A 3万+

Python基础(11)——Python循环(while、for)

思考:假如我有个女朋友,有一天我们闹矛盾生气了,女朋友说:道歉,说100遍“媳妇儿,我错了”。这个时候程序员会怎么做?答:100遍print('媳妇儿,我错了')思考:复制粘贴100次吗?答:重复执行100次一样的代码,程序中循环即可循环的作用:让代码更高效的重复执行。循环的作用:控制代码重复执行while语法while 条件 : 条件成立重复执行的代码 1 条件成立重复执行的代码 2 . . . . . .while循环嵌套语法。

老板来片烤面包的博客 3万+

Claude skill-creator插件深度解析:从创建到优化的完整技能工程化体系

摘要:skill-creator是Anthropic推出的Claude技能开发插件,提供从创建到优化的全流程工程化支持。其核心架构采用渐进式披露机制和多Agent协作模式,包含Grader、Analyzer等专业评估组件。该插件支持自动化评测系统,通过测试用例管理、并行执行和结果聚合实现技能验证;提供迭代优化算法,基于数据驱动改进技能性能。典型应用场景包括标准化技能开发、自动化测试验证和触发优化,显著降低开发门槛并提升技能质量。

虚心若愚 988

Python循环语句(while循环、for循环)

Python循环语句(while循环、for循环)

LAO__LIN的博客 1万+

Docker拉取ubuntu22.04镜像使用ROS2 humble及仿真工具可视化进行导航

Docker中安装Ubun22以及ROS,gazebo可视化等

lovebc的博客 1677

cpp中auto, auto &和const auto &的区别

笔者初学cpp,如有纰漏,请见谅并指正。 用在哪 auto用于推断类型,具体可用于声明变量时根据初始化表达式自动推断该变量的类型,也就是可用在for循环。 也可以用于声明函数返回值的占位符。 怎么用 这里主要讲for循环中三者的区别 直接说结论 auto auto用于copy一份集合中的数据,对于这种情况,在循环体中不论怎么修改copy的数据,是不会影响到原有集合中的数据的。 举个简单的例子 int arr[5] = {0, 1, 2, 3, 4}; cout << "使用auto" <&

NinoSun的博客 3176

day04 循环结构

1 switch语句的格式?针对格式的解释?以及注意事项? 2 看程序,分析下面程序的结果: 3 根据输入的值,判断是星期几 (分别用if语句和switch语句实现) 4 for循环的格式?要能看懂执行流程 5 while循环的格式?要能看懂执行流程 6 break,continue和return分别有什么用?

喝醉酒的小白 4333

LPDDR5 学习笔记01:功能概述

LPDDR5/LPDDR5X SDRAM设备采用8/16DQ通道架构,支持2Gb-32Gb容量。通过CK命令时钟和更快的WCK数据时钟协同工作,7个CA引脚传输控制信息,支持2:1或4:1的WCK:CK比例。设备提供BG/8B/16B三种存储模式选择,分别支持不同数据速率(最高8.533Gbps)和突发长度。采用0.5V VDDQ电源电压,实现高速双倍数据速率传输,并通过差分WCK时钟完成数据采样。读写采用突发访问机制,需先激活命令再执行读写操作。新型LPDDR5X仅支持BG和16B模式,优化了高速性能。

一只豌豆象的博客 2202

Day04——循环结构

循环结构 循环结构:根据循环条件,重复执行某段代码。 常见的循环结构:for循环、while循环、do-while循环、foreach语句 常见循环结构的语法格式: for循环 for (①初始化部分; ②循环条件部分; ④迭代部分){ ③循环体部分; } 说明: ②循环条件部分为boolean类型表达式,当值为false时,退出循环 ①初始化部分可以声明多个变量,但必须是同一个类型,用逗号分隔 ④可以有多个变量更新,用逗号分隔 while循环 ①初始化部分 while(②循环条件部分){

Z__XY_的博客 1400

AI Agent开发第49课-DIFY让AI自动预约排班后发企业微信通知-MongoDb-Redis-企业微信调用

我们的Dify会讲得很透彻,坚持喂饭级教程,从一个基本的AI自动预约客户到自动记录客户的信息再到自动判断下一步如何走全部是AI化的,这是一个真正的AI原生应用,它来自于我的一个大型物业公司用AI自动预约系统中的一部分。我们会使用这个预约流做完整的Dify例子来讲完,因为它太有代表性了。工作流中的控制反转、AI决策下一步怎么走、人为干涉、用户行为判断、外部中间件如Redis,今天我们就要讲到在Dify中调用MongoDB的数据以及企业微信通知来作为预约派单的最后一步了。

打造全国最全的AI Agent开发知识领域的博客 1753

【AI智能体】Dify集成 Echarts实现数据报表展示实战详解

Dify集成 Echarts 实现智能数据报表集成与展示实战详解

congge 5962

Day04 - 循环结构

Day04 - 循环结构 循环结构的应用场景 如果在程序中我们需要重复的执行某条或某些指令,例如用程序控制机器人踢足球,如果机器人持球而且还没有进入射门范围,那么我们就要一直发出让机器人向球门方向奔跑的指令。当然你可能已经注意到了,刚才的描述中其实不仅仅有需要重复的动作,还有我们上一个章节讲到的分支结构。再举一个简单的例子,比如在我们的程序中要实现每隔1秒中在屏幕上打印一个"hello, worl...

Laic Zhang的博客 1396

BUG调试案例六:RK3568+国产YT8531网络PING调试案例

这次调试过程让我对后续类似问题的应对更加有信心。如果芯片在其他项目中已被验证可用,那么在我们的设计中原则上也应该能够正常工作。如果出现异常,就必须坚持追根溯源,找出具体原因和根本问题。每一次问题的解决,都是一次深入理解系统和提升能力的机会 —— 在不断探索和学习中,也在持续成长。

案例文章,高速信号 2332

Day 04 循环结构、方法

Day 04 ScorpioDong 1. 复习 运算符: 关系运算符 逻辑运算符 自增自减运算符 三元运算符 Scanner使用 导包 import java.util.Scanner; 声明 Scanner sc = new Scanner(System.in); 方法 nextInt(); nextDouble(); nextLine(); 分支...

m0_37771142的博客 347

室内无线传播损耗分析与传播模型验证课程设计

室内无线传播损耗分析与传播模型验证课程设计

a_zxswer的博客 187

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Day04-循环结构

本文转自GitHub文章:Python - 100天从新手到大师 https://github.com/jackfrued/Python-100-Days Day04-循环结构 循环结构的应用场景 如果在程序中我们需要重复的执行某条或某些指令,例如用程序控制机器人踢足球,如果机器人持球而且还没有进入射门范围,那么我们就要一直发出让机器人向球门方向奔跑的指令。当然你可能已经注意到了,刚才的描述中其实...

冰度猎魂的博客 170

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Day04 Java循环结构

循环结构 文章目录循环结构1.循环的概念2.while循环(先判断,再执行)3.do while循环(先执行,再判断)4.for循环(先判断,再执行)循环的组成(四个部分):5.流程控制6.嵌套循环 1.循环的概念 概念:通过某个条件,重复执行的一段逻辑代码 2.while循环(先判断,再执行) 语法: while(布尔表达式) { //逻辑代码(循环操作) } 执行流程: ​ 对布尔表达式进行判断,结果为true,则执行逻辑代码 ​ 执行完毕后,再

weixin_44961111的博客 147

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Day_04循环结构

循环: 重复的做某件事 1.while循环 语法: // 循环条件 while(条件表达式){ // 条件成立 执行.. // 循环操作/循环体 } // 先在判定条件再循环 循环的结构组成: 初始化循环的变量(用于表示条件用的) 循环条件 循环操作 循环出口(更新循环变量 2.do_while循环结构 语法: do{ // 循环操作 // 循环出口 }wh...

a642636026的博客 221

python-DAY04 循环结构

day04 1.1-100求和 2.判断素数 3.猜数字游戏 4.打印九九乘法表 5.输出三角形 6,猴子偷桃 7.百钱百鸡

sinat_36515789的博客 495

day04 笔记 java循环结构

笔记: 1.分支结构: 1)if结构:1条路 2)if...else结构:2条路 3)if...else if结构:多条路 4)switch..case结构:多条路 优点:效率高、结构清晰 缺点:整数、相等 break:跳出switch 2.循环: 1)反复执行一段相同或相似的代码 2)循环三要素: 2...

优快云_20162126的博客 290

Python100天打卡-Day04 - 循环结构

循环结构 循环结构的应用场景 程序中需要重复的执行某条或某些指令 在Python中构造循环结构有两种做法,一种是for-in循环,一种是while循环。 for-in循环 如果明确的知道循环执行的次数或者是要对一个容器进行迭代(后面会讲到),那么我们推荐使用for-in循环 """ 用for循环实现1~100求和 Version: 0.1 Author: 骆昊 """ sum = 0 fo...

wxl1999的博客 317

Day04 分支结构以及循环

分支结构:基于条件执行某语句 if结构:1条路 语法: if(boolean){ 语句块 } 执行过程: 判断boolean的值: 若为true,则执行语句块1(if整个结束) 若为false,则if直接结束 //1)偶数的判断: int num = 5; //带数(6,5) if(num%2==0){ System.out.println(num+"是偶数"); } System.out.println("继续执行..."); //2)满500打8折:

qq_45462360的博客 212

Day04-Java循环结构

循环结构 循环的作用是使某些代码重复执行多少,在流程控制中心发挥重要作用,也是一种非常常见的控制方法。 while结构 语法: while(条件(布尔值)){ 代码块 } 循环外代码 执行流程:先判断是否满足条件,满足条件运行代码块,执行完成之后再次判断是否执行条件,满足继续执行否者退出循环执行循环外代码。 //求1-10的和 public static void main(String[] args){ //1、定义变量并赋值 int sum=1; //2、添加一个循环的条件 while(

MsyLaoLi的博客 204
上一篇: Day03.分支结构
下一篇: Day05.构造程序逻辑
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值