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

蓝桥杯python语言基础(3)——循环结构

一、for语句

理解range函数

range(start, stop, step) 

  • start: 序列开始的数字(默认为0)。
  • stop: 序列结束的数字(不包含stop)。
  • step: 步长(默认为1)。

练习

输出在 l 和 r 之间的所有偶数:

print(*(i for i in range(int(input()), int(input()) + 1) if i % 2 == 0))

练习

计算奇数和,偶数和 

n=int(input())
print(*(sum(range(i, n + 1, 2)) for i in (1, 2)))

习题P152-反倍数


题目描述

给定三个整数 a,b,c,如果一个整数既不是 a 的整数倍也不是 b 的整数倍还不是 c的整数倍,则这个数称为反倍数。

请问在 1 至 n 中有多少个反倍数。

输入描述

输入的第一行包含一个整数 n。

第二行包含三个整数 a,b,c 相邻两个数之间用一个空格分隔。

其中,1≤n≤1000000,1≤a≤n,1≤b≤n,1≤c≤n1≤n≤1000000,1≤a≤n,1≤b≤n,1≤c≤n。

输出描述

输出一行包含一个整数,表示答案。


n = int(input())   
a, b, c = map(int, input().split())   
print(sum(1 for i in range(1, n + 1) if i % a and i % b and i % c))

if i % a and i % b and i % c 是条件判断,只有当 i 既不能被 a 整除,也不能被 b 整除,还不能被 c 整除时,条件为真。

习题P153-洁净数


题目描述

小明非常不喜欢数字 2,包括那些数位上包含数字 2 的数。如果一个数的数位不包含数字 2,小明将它称为洁净数。

请问在整数 1 至 n 中,洁净数有多少个?

输入描述

输入的第一行包含一个整数 n

输出描述

输出一行包含一个整数,表示答案


print(sum('2' not in str(i) for i in range(1, int(input()) + 1)))

sum(...):对生成的布尔值序列进行求和,True 会被当作 1False 会被当作 0,最终得到洁净数的数量并打印输出。

习题P191-特别数的和


题目描述

小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。

请问,在 1 到 nn 中,所有这样的数的和是多少?

输入描述

输入格式:

输入一行包含两个整数 n(1≤n≤104)n(1≤n≤104)。

输出描述

输出一行,包含一个整数,表示满足条件的数的和。


n = int(input())
SUM = 0for i in range(n+1):str_n = str(i)contains = Falsefor j in str_n:if j in "2019":contains = Truebreakif contains:SUM += i
print(SUM)
n = int(input())   
print(sum(i for i in range(1, n + 1) if any(j in '2019' for j in str(i))))

习题P2411-星期几


给定一天是一周中的哪天,请问 n 天后是一周中的哪天?

输入格式

输入第一行包含一个整数 w,表示给定的天是一周中的哪天,w 为 1 到 6 分别表示周一到周六,w为 7 表示周日。

第二行包含一个整数 n。

输出格式

输出一行包含一个整数,表示 n 天后是一周中的哪天,1 到 6 分别表示周一到周六,7表示周日。


w = int(input())
n = int(input())num = (w + n - 1) % 7 + 1
print(num)
  • w + n 是计算当前日期加上经过天数后的总天数。

  • -1 是为了将计数调整为从 0 开始,这样 (w + n - 1) % 7 的结果范围就是 0 到 6。

  • 最后 +1 是将结果调整回题目要求的 1 到 7 的表示方式,其中 1 到 6 代表周一到周六,7 代表周日 。

二、while语句

练习

求最大公约数

def gcd(a, b):while b:a, b = b, a % breturn a

breakcontinue是用于控制循环流程的语句

三、循环嵌套

练习

求阶乘之和

def sum_of_factorials(n):result = 0for i in range(1, n + 1):factorial = 1for j in range(1, i + 1):factorial *= jresult += factorialreturn resultnum = 5   
print(f"1到{num}的阶乘之和为: {sum_of_factorials(num)}")

例题3-1 采购

找到满足以下条件的母鸡、公鸡和小鸡的数量:

  1. 母鸡、公鸡和小鸡的总数为90只。
  2. 母鸡每只15元,公鸡每只10元,小鸡每只5元,总花费为500元。
count = 0
for x in range(91):for y in range(91):for z in range(91):count += 1if x+y+z == 90 and 15*x+10*y+5*z == 500:print(x,y,z)print("循环次数 ",count)

优化代码

  • 母鸡最多可能有 500 // 15 ≈ 33.33,取整为 33,循环范围到 34
  • 公鸡最多可能有 500 // 10 = 50,循环范围到 51
  • 将 z = 90 - x - y 代入第二个方程 15 * x + 10 * y + 5 * z == 500 中,得到一个只关于 x 和 y 的方程,减少计算量。
count = 0
for x in range(34):for y in range(51):z = 90-x-ycount += 1if x+y+z == 90 and 15*x+10*y+5*z == 500:print(x,y,z)print("循环次数 ",count)

通过数学计算进一步优化

for x in range(6):y = 10 - 2 * xz = 80 + xprint(x,y,z)

例题3-2 水仙花数

水仙花数是指一个三位数,其各位数字的立方和等于该数本身。例如,153=13+53+33​,所以 153 是一个水仙花数。

for a in range(1, 10):for b in range(0, 10):for c in range(0, 10):num = a * 100 + b * 10 + cif num == a ** 3 + b ** 3 + c ** 3:print(num)
for num in range(100,1000):num100 = (num // 100)num10 = (num // 10) % 10num1 = num % 10if num == num100**3 + num10**3 + num1**3:print(num)

例题3-3 素数

如果 n 能被某个 i 整除,说明 n 不是素数,将 prime 设为 False 并跳出循环

L = int(input())
R = int(input())for n in range(L,R+1):prime = Trueif n<= 1:prime = Falsefor i in range(2,int(n**0.5) + 1):if n % i == 0:prime = Falsebreakif prime:print(n)

例题3-4 日期

输出2000年至2026年每一天的日期

for year in range(2000, 2026):for month in range(1, 13):if month in [4, 6, 9, 11]:days_in_month = 30elif month == 2:if (year % 4 == 0 and year % 100!= 0) or (year % 400 == 0):days_in_month = 29else:days_in_month = 28else:days_in_month = 31for day in range(1, days_in_month + 1):print(f"{year}-{month:02d}-{day:02d}")

例题3-5 完美数


一个数字如果等于它的因子之和(不包含它本身),那么这个数字称之为完美数。 例如6=1+2+3,28=1+2+4+7+14。 求出1-n中所有的完美数并输出。

输入:一个整数n(n≤10000)n(n≤10000)

输出:对于每个完美数输出1行

【分析】 枚举1-n中的每个数字,对于这个数字,求出它的所有因子,将其全部加起来判断是否等于本身。 


n = int(input())for num in range(2, n + 1):factor_sum = 0for factor in range(1, num):if num % factor == 0:factor_sum += factorif factor_sum == num:print(num)

相关文章:

蓝桥杯python语言基础(3)——循环结构

一、for语句 理解range函数 range(start, stop, step) start: 序列开始的数字&#xff08;默认为0&#xff09;。stop: 序列结束的数字&#xff08;不包含stop&#xff09;。step: 步长&#xff08;默认为1&#xff09;。 练习 输出在 l 和 r 之间的所有偶数&#xff1a; pri…...

微服务网关鉴权之sa-token

目录 前言 项目描述 使用技术 项目结构 要点 实现 前期准备 依赖准备 统一依赖版本 模块依赖 配置文件准备 登录准备 网关配置token解析拦截器 网关集成sa-token 配置sa-token接口鉴权 配置satoken权限、角色获取 通用模块配置用户拦截器 api模块配置feign…...

23【进制的理解】

很多人可能听过计算机的最底层是2进制执行&#xff0c;但是原理并不知道&#xff0c;我们今天先不讨论那么复杂的问题&#xff0c;先讨论什么是进制 1910&#xff0c;10并不是1个字符&#xff0c;而是2个字符&#xff0c;也就是说在10进制里面没有“10”这个字符&#xff0c;1…...

jemalloc 5.3.0的tsd模块的源码分析

一、背景 在主流的内存库里&#xff0c;jemalloc作为android 5.0-android 10.0的默认分配器肯定占用了非常重要的一席之地。jemalloc的低版本和高版本之间的差异特别大&#xff0c;低版本的诸多网上整理的总结&#xff0c;无论是在概念上和还是在结构体命名上在新版本中很多都…...

【Convex Optimization Stanford】Lec3 Function

【Convex Optimization Stanford】Lec3 Function 前言凸函数的定义对凸函数在一条线上的限制增值扩充&#xff1f; 一阶条件二阶条件一些一阶/二阶条件的例子象集和sublevel set关于函数凸性的扩展&#xff08;Jesen Inequality)保持函数凸性的操作非负加权和 & 仿射函数的…...

深入 Rollup:从入门到精通(三)Rollup CLI命令行实战

准备阶段&#xff1a;初始化项目 初始化项目&#xff0c;这里使用的是pnpm&#xff0c;也可以使用yarn或者npm # npm npm init -y # yarn yarn init -y # pnpm pnpm init安装rollup # npm npm install rollup -D # yarn yarn add rollup -D # pnpm pnpm install rollup -D在…...

wangEditor富文本编辑器,Laravel上传图片配置和使用

文章目录 前言步骤1. 构造好前端模版2. 搭建后端存储3. 调试 前言 由于最近写项目需要使用富文本编辑器&#xff0c;使用的是VUE3.0版本所以很多不兼容&#xff0c;实际测试以后推荐使用wangEditor 步骤 构造好前端模版搭建后端存储调试 1. 构造好前端模版 安装模版 模版安…...

chrome源码剖析—进程通信

Chrome 浏览器采用多进程架构&#xff08;multi-process architecture&#xff09;&#xff0c;这种架构使得每个浏览器标签、扩展、插件、GPU 渲染等都在独立的进程中运行。为了确保不同进程之间的高效通信&#xff0c;Chrome 使用 进程间通信&#xff08;IPC, Inter-Process …...

JJJ:linux时间子系统相关术语

文章目录 墙上时间内核管理的各种时间无时钟滴答模式&#xff08;tickless mode 或 no-tick mode&#xff09;简要介绍具体实现动态时钟滴答 Dynamic Ticks完全无时钟滴答&#xff08;Full Tickless&#xff09; nohz sleep单触发模式 oneshot mode 墙上时间 真实世界的真实时…...

0 基础学运维:解锁 K8s 云计算运维工程师成长密码

前言&#xff1a;作为一个过来人&#xff0c;我曾站在技术的门槛之外&#xff0c;连电脑运行内存和内存空间都傻傻分不清&#xff0c;完完全全的零基础。但如今&#xff0c;我已成长为一名资深的k8s云计算运维工程师。回顾这段历程&#xff0c;我深知踏上这条技术之路的艰辛与不…...

大一计算机的自学总结:位运算的应用及位图

前言 不仅异或运算有很多骚操作&#xff0c;位运算本身也有很多骚操作。&#xff08;尤其后几个题&#xff0c;太逆天了&#xff09; 一、2 的幂 class Solution { public:bool isPowerOfTwo(int n) {return n>0&&n(n&-n);} }; 根据二进制表示数的原理&#…...

计算机毕业设计Django+Tensorflow音乐推荐系统 机器学习 深度学习 音乐可视化 音乐爬虫 知识图谱 混合神经网络推荐算法 大数据毕设

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

AI 图片涌入百度图库

在这个信息爆炸的时代&#xff0c;我们习惯了通过搜索引擎来获取各种想要的信息和图片。然而&#xff0c;现在打开搜索引擎看到的却是许多真假难辨的信息——AI图片&#xff0c;这部分数据正以惊人的速度涌入百度图库&#xff0c;让小编不禁想问&#xff1a;未来打开百度图库不…...

可爱狗狗的404动画页面HTML源码

源码介绍 可爱狗狗的404动画页面HTML源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果 效果预览 源码获取 可爱狗狗的404动画页面HTML源码...

【微服务与分布式实践】探索 Dubbo

核心组件 服务注册与发现原理 服务提供者启动时&#xff0c;会将其服务信息&#xff08;如服务名、版本、所在节点的网络地址等&#xff09;注册到注册中心。服务消费者则可以从注册中心发现可用的服务提供者列表&#xff0c;并与之通信。注册中心会存储服务的信息&#xff0c…...

OpenCSG月度更新2025.1

1月的OpenCSG取得了一些亮眼的成绩 在2025年1月&#xff0c;OpenCSG在产品和社区方面继续取得了显著进展。产品方面&#xff0c;推出了AutoHub浏览器自动化助手&#xff0c;帮助用户提升浏览体验&#xff1b;CSGHub企业版功能全面升级&#xff0c;现已开放试用申请&#xff0c…...

C++封装红黑树实现mymap和myset和模拟实现详解

文章目录 map和set的封装map和set的底层 map和set的模拟实现insertiterator实现的思路operatoroperator- -operator[ ] map和set的封装 介绍map和set的底层实现 map和set的底层 一份模版实例化出key的rb_tree和pair<k,v>的rb_tree rb_tree的Key和Value不是我们之前传统意…...

二次封装的方法

二次封装 我们开发中经常需要封装一些第三方组件&#xff0c;那么父组件应该怎么传值&#xff0c;怎么调用封装好的组件原有的属性、插槽、方法&#xff0c;一个个调用虽然可行&#xff0c;但十分麻烦&#xff0c;我们一起来看更简便的方法。 二次封装组件&#xff0c;属性怎…...

消息队列篇--通信协议篇--网络通信模型(OSI7层参考模型,TCP/IP分层模型)

一、OSI参考模型&#xff08;Open Systems Interconnection Model&#xff09; OSI参考模型是一个用于描述和标准化网络通信功能的七层框架。它由国际标准化组织&#xff08;ISO&#xff09;提出&#xff0c;旨在为不同的网络设备和协议提供一个通用的语言和结构&#xff0c;以…...

Python实现U盘数据自动拷贝

功能&#xff1a;当电脑上有U盘插入时&#xff0c;自动复制U盘内的所有内容 主要特点&#xff1a; 1、使用PyQt5创建图形界面&#xff0c;但默认隐藏 2、通过CtrlAltU组合键可以显示/隐藏界面 3、自动添加到Windows启动项 4、监控USB设备插入 5、按修改时间排序复制文件 6、静…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

API网关Kong的鉴权与限流:高并发场景下的核心实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中&#xff0c;API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关&#xff0c;Kong凭借其插件化架构…...

xmind转换为markdown

文章目录 解锁思维导图新姿势&#xff1a;将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件&#xff08;ZIP处理&#xff09;2.解析JSON数据结构3&#xff1a;递归转换树形结构4&#xff1a;Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...

ABAP设计模式之---“Tell, Don’t Ask原则”

“Tell, Don’t Ask”是一种重要的面向对象编程设计原则&#xff0c;它强调的是对象之间如何有效地交流和协作。 1. 什么是 Tell, Don’t Ask 原则&#xff1f; 这个原则的核心思想是&#xff1a; “告诉一个对象该做什么&#xff0c;而不是询问一个对象的状态再对它作出决策。…...

篇章一 论坛系统——前置知识

目录 1.软件开发 1.1 软件的生命周期 1.2 面向对象 1.3 CS、BS架构 1.CS架构​编辑 2.BS架构 1.4 软件需求 1.需求分类 2.需求获取 1.5 需求分析 1. 工作内容 1.6 面向对象分析 1.OOA的任务 2.统一建模语言UML 3. 用例模型 3.1 用例图的元素 3.2 建立用例模型 …...

年度峰会上,抖音依靠人工智能和搜索功能吸引广告主

上周早些时候举行的第五届年度TikTok World产品峰会上&#xff0c;TikTok推出了一系列旨在增强该应用对广告主吸引力的功能。 新产品列表的首位是TikTok Market Scope&#xff0c;这是一个全新的分析平台&#xff0c;为广告主提供整个考虑漏斗的全面视图&#xff0c;使他们能够…...