24大数据 while循环

判断闰年

闰年的判断规则为:

  1. 能被400整除(如2000年)
  2. 能被4整除但不能被100整除(如2024年,排除1900年这类整百年)
python 复制代码
# 获取用户输入的年份(转换为整数类型,避免字符串格式错误)
year = int(input("请输入要判断的年份:"))
if year % 400 == 0:
    print(f"{year}年是闰年")
elif year % 4 == 0 and year % 100 != 0:
    print(f"{year}年是闰年")
# 不满足上述任一条件则为平年
else:
    print(f"{year}年是平年")

while循环的语法格式

python 复制代码
while 判断条件1:
	代码块1
else:
	代码块2

break语句

用于跳出本层循环,在循环条件不为False或者序列还没循环完的情况下,也会终止循环语句。

continue语句

用于跳出本次循环。continue后的剩余语句都将跳过,继续进行下一轮循环。

例题

题目要求:

  1. 遍历1900年到2100年的所有年份,遇到能被 100 整除的年份(即整百年,如 1900 年、2000 年)时,不打印该年份,但仍需计入 "已判断的年份总数",并继续判断下一个年份;
  2. 当遍历到2050 年时,立即终止整个循环,2050 年及之后的年份不再处理;
  3. 对于非整百年份,若为闰年(能被 4 整除),则打印该年份;
  4. 循环结束后,统计并打印 "已判断的年份总数"(从 1900 年到循环终止前的最后一个年份)。

参考答案

python 复制代码
start_year = 1900
end_year = 2100
current_year = start_year
count = 0  # 统计已判断的年份总数
print("1900-2049年中,非整百年的闰年有:")
while current_year <= end_year:
    # 规则1:遇到整百年(能被100整除),用continue跳过打印
    if current_year % 100 == 0:
        current_year += 1
        count += 1  # 即使跳过打印,仍计入已判断的年份
        continue
    # 规则2:遍历到2050年时,用break终止循环
    if current_year == 2050:
        break
    # 闰年判断逻辑(仅判断非整百年)
    if current_year % 4 == 0:
        print(current_year, end=" ")
    current_year += 1
    count += 1
# 输出已判断的年份总数(1900-2049共150年)
print(f"\n已判断的年份总数:{count}")

韩信点兵

士兵人数满足条件:

  1. 除以3余数为2,除以5余数为4,除以7余数为6
  2. 士兵人数在1000以上

对于1000及以后的数字按照从小到大去进行遍历,直到条件满足,找到符合条件的士兵人数,就立即终止循环。

逻辑图

参考答案

python 复制代码
#韩信点兵
print("韩信点兵求人数") #输出提示信息
n=1000                 #假定人数1000
while True:            #一直循环
    if n%3==2 and n%5==4 and n%7==6: #满足点兵规则
        break          #跳出循环
    else:
        n=n+1          #否则,人数加1
print("士兵有:",n,"人") #输出士兵人数

积分兑换

已知初始积分为 5680 分,商场积分兑换规则为 "满 1000 分可兑换 1 次礼品,每次兑换消耗 1000 分,剩余积分保留 "。

使用while循环控制兑换流程,结合 if判断验证兑换条件。

计算最多能兑换的礼品次数,以及兑换结束后剩余的积分。

最终输出格式要求:明确打印 "最多可兑换礼品次数:X 次" 和 "兑换后剩余积分:Y 分"。

参考答案

python 复制代码
# 初始化变量
initial_points = 5680  # 初始积分
exchange_count = 0     # 兑换次数,初始为0
remaining_points = initial_points  # 剩余积分,初始等于初始积分

# while循环控制兑换流程(只要剩余积分满足兑换条件,就继续循环)
while remaining_points >= 1000:
    # if判断验证是否满足兑换条件(满1000分)
    if remaining_points >= 1000:
        exchange_count += 1  # 兑换次数+1
        remaining_points -= 1000  # 兑换后消耗1000分

# 输出最终结果
print(f"最多可兑换礼品次数:{exchange_count} 次")
print(f"兑换后剩余积分:{remaining_points} 分")
相关推荐
爱敲代码的憨仔12 小时前
BM25全文检索
开发语言·python·全文检索
天行健,君子而铎12 小时前
场景化适配+合规审查+技术突破:运营商AI数据分类分级最优解决方案
大数据·安全
SamChan9013 小时前
用Python+Requests批量翻译PDF:从脚本到调度
后端·python·microsoft·ai·pdf·机器翻译
草莓熊Lotso13 小时前
【LangChain】核心技术:嵌入模型与向量存储完全指南
服务器·网络·python·langchain
leisoo809720 小时前
100GBA股股票数据怎么存ClickHouseRedisMySQLJSON完整对比
大数据·linux·服务器·开发语言·python
AI产品测评官21 小时前
突破系统割裂困局:2026企业级AI招聘架构如何迈向“原生全流程”?
大数据·微服务·架构
WangYan202221 小时前
基于XGBoost与AI的生态—地学多源数据建模:植被与土地利用识别、土壤碳氮空间预测、生物多样性驱动机制、土壤微生物功能预测、生态退化与风险识别
python·机器学习·xgboost
梦梦代码精21 小时前
连锁品牌数字化:从门店扩张到用户资产运营的技术底座
大数据·人工智能·低代码·docker·开源·代码规范
金銀銅鐵1 天前
[Python] 借助 turtle 逐字展示唐诗《金缕衣》
python
沐梯子1 天前
具身智能爆发前夜的“数据饥渴”:2026机器人数据采集产业链选型解析
大数据·人工智能·机器人