【备战蓝桥杯】——循环结构

本文详细介绍了Python中sum函数的使用,包括求列表、元组和字典中元素的和,以及如何利用sum函数进行序列求和和循环控制,如跳出多重循环的技巧和辗转相除法求最大公约数。还通过实际问题(炊事员采购)展示了多重循环的应用和优化。
摘要由CSDN通过智能技术生成

](https://img-home.csdnimg.cn/images/20220524100510.png#pic_center)

🌈个人主页: Aileen_0v0
🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法
💫个人格言:“没有罗马,那就自己创造罗马~”

Stop struggling, life is stopped.

PYTHON中的sum函数
# 列表中的元素求和
my_list = [1, 2, 3, 4, 5]
result = sum(my_list)
print(result)  # 输出:15

# 元组中的元素求和
my_tuple = (10, 20, 30)
result = sum(my_tuple)
print(result)  # 输出:60

# 字典中的值求和
my_dict = {'a': 100, 'b': 200, 'c': 300}
result = sum(my_dict.values())
print(result)  # 输出:600

# 使用自定义初始值求和
my_list = [1, 2, 3, 4, 5]
result = sum(my_list, 10)  # 初始值为10
print(result)  # 输出:25
 
#利用sum函数,求1-n的所有奇数和,所有偶数和。
n = int(input("请输入一个整数: "))
print(sum(range(1,n+1,2)),sum(range(2,n+1,2)))
  • 注意:因为求和的时候n也要取到,所以才要写成n+1。

Python中的sum函数的应用


循环语句

  • s = 1+2+3+ … +n , 求 s > 1000时,n的最小值是多少?
s,n= 0,0
while s <= 1000:
    n += 1
    s += n
print(n)
#验算:
print('1-45的和为',sum(range(1,46)))
print('1-44的和为',sum(range(1,45)))
print('1-46的和为',sum(range(1,47)))

Exercises1


  • 利用辗转相除法求数字m和n的最大公约数
  • 原理:两个整数的最大公约数等于其中较小的数和两数相除余数的最大公约数

Exercises2

m = int(input())
n = int(input())
t = m % n #余数
while t != 0:
    m,n = n,t
    t = m % n
print(n)

在这里插入图片描述

  • 总结:抓住规律,拆出循环结束条件,循环内容。

PYTHON中的多重循环
  • tip:如何跳出多重循环
  • 可以设置一个跳出循环的标记
  • 如果需要一次跳出多重循环的时候,可以将这个标记标记为true,那么在下一层循环也判断一下是否要继续跳出循环。
stop = False
for i in range(5):
    for j in range(5):
        print("i = ",i,"j = ",j)
        if i == 3 and j == 3:
            stop = True
            break
    if stop:
        break

Python如何跳出多重循环

  • 一个炊事员上街采购,用500元钱买了90只鸡,其中母鸡一只15元,公鸡一只10元,小鸡一只5元,正好把钱买完。问母鸡公鸡,小鸡各买了多少只?
count = 0
for x in range (91):
    for y in range(91):
        for z in range(91):
            if x + y + z == 90 and (15 * x ) + (10 * y) + (5 * z) == 500:
                count += 1
                print(x,y,z)

优化版:

count = 0
for x in range (34):
    for y in range(51):
        z = 90 - x - y
        count += 1
        if x + y + z == 90 and (15 * x ) + (10 * y) + (5 * z) == 500:
            print(x,y,z)
#打印计算次数
print(count)

](https://img-home.csdnimg.cn/images/20220524100510.png#pic_center)

](https://img-home.csdnimg.cn/images/20220524100510.png#pic_center)

  • 38
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aileen_0v0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值