当前位置: 首页 > 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、静…...

汇编的使用总结

一、汇编的组成 1、汇编指令&#xff08;指令集&#xff09; 数据处理指令: 数据搬移指令 数据移位指令 位运算指令 算术运算指令 比较指令 跳转指令 内存读写指令 状态寄存器传送指令 异常产生指令等 2、伪指令 不是汇编指令&#xff0c;但是可以起到指令的作用&#xff0c;伪…...

DeepSeek理解概率的能力

问题&#xff1a; 下一个问题是概率问题。乘车时有一个人带刀子的概率是百分之一&#xff0c;两个人同时带刀子的概率是万分之一。有人认为如果他乘车时带上刀子&#xff0c;那么还有其他人带刀子的概率就是万分之一&#xff0c;他乘车就会安全得多。他的想法对吗&#xff1f;…...

AI 浪潮席卷中国年,开启科技新春新纪元

在这博主提前祝大家蛇年快乐呀&#xff01;&#xff01;&#xff01; 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;其影响力已经渗透到社会生活的方方面面。在中国传统节日 —— 春节期间&#xff0c;AI 技术也展现出了巨大的潜力&#xff0c;为中国年带…...

AI时代的网络安全:传统技术的落寞与新机遇

AI时代的网络安全&#xff1a;传统技术的落寞与新机遇 在AI技术飞速发展的浪潮中&#xff0c;网络安全领域正经历着前所未有的变革。一方面&#xff0c;传统网络安全技术在面对新型攻击手段时逐渐显露出局限性&#xff1b;另一方面&#xff0c;AI为网络安全带来了新的机遇&…...

可以称之为“yyds”的物联网开源框架有哪几个?

有了物联网的发展&#xff0c;我们的生活似乎也变得更加“鲜活”、有趣、便捷&#xff0c;包具有科技感的。在物联网&#xff08;IoT&#xff09;领域中&#xff0c;也有许多优秀的开源框架支持设备连接、数据处理、云服务等&#xff0c;成为被用户们广泛认可的存在。以下给大家…...

线程局部存储tls的原理和使用

一、背景 tls即Thread Local Storage&#xff0c;也就是线程局部存储&#xff0c;可在进程内&#xff0c;多线程按照各个线程分开进行存储。对于一些与线程上下文相关的变量&#xff0c;可放到tls中&#xff0c;减少多线程之间的数据同步的开销。 有人可能会问&#xff0c;我…...

RK3588平台开发系列讲解(ARM篇)ARM64底层中断处理

文章目录 一、异常级别二、异常分类2.1、同步异常2.2、异步异常三、中断向量表沉淀、分享、成长,让自己和他人都能有所收获!😄 一、异常级别 ARM64处理器确实定义了4个异常级别(Exception Levels, EL),分别是EL0到EL3。这些级别用于管理处理器的特权级别和权限,级别越高…...

CAN总线

1. 数据帧&#xff08;Data Frame&#xff09; 数据帧是 CAN 总线中最常用的帧类型&#xff0c;用于传输实际的数据。其结构如下&#xff1a; 起始位&#xff08;Start of Frame, SOF&#xff09;&#xff1a;标志帧的开始。标识符&#xff08;Identifier&#xff09;&#x…...

qwen2.5-vl:阿里开源超强多模态大模型(包含使用方法、微调方法介绍)

1.简介 在 Qwen2-VL 发布后的五个月里&#xff0c;众多开发者基于该视觉语言模型开发了新的模型&#xff0c;并向 Qwen 团队提供了极具价值的反馈。在此期间&#xff0c;Qwen 团队始终致力于打造更具实用性的视觉语言模型。今天&#xff0c;Qwen 家族的最新成员——Qwen2.5-VL…...

python实现dbscan

python实现dbscan 原理 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法。它将簇定义为密度相连的点的最大集合&#xff0c;能够把具有足够高密度的区域划分为簇&#xff0c;并可在噪声的空间数据库中发现任意形…...