鱼C论坛

 找回密码
 立即注册
查看: 2017|回复: 2

[已解决]零基础入门第9课作业疑难,求讲解

[复制链接]
发表于 2020-10-12 12:11:21 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 9360744 于 2020-10-12 12:19 编辑

如图,后面这两题看都看不懂,是不是白学这么多天了。

疑问:
第一题的sum函数是干啥的,在那当中有啥作用。

while循环  条件是不是永远为真,他又是如何跳到下面print语句的。


第二题应该是我自己还没搞懂for循环,求讲解。

最佳答案
2020-10-12 12:28:55
本帖最后由 kylin121380 于 2020-10-12 12:33 编辑
  1. for i in range(100, 1000):
  2.     sum = 0  # 用来记录每个数个十百三位的三次方的和
  3.     temp = i  # temp赋值i
  4.     while temp:  # 当temp不等于0时,进行循环
  5.         sum = sum + (temp%10) ** 3  # temp为三位数,此时sum的值为个位的三次方
  6.         temp //= 10         # temp地板除,消除个位变成两位数,三次之后temp为0,跳出while循环
  7.     if sum == i:  # 为水仙花数,print
  8.         print(i)
复制代码
  1. print('red\tyellow\tgreen')
  2. # 红黄各3,绿6,从中取8个球,绿球最少为2个,因为红黄都取也只有6个,因此确定范围,红球可以是0-3,黄球0-3,绿球2-6
  3. for red in range(0, 4):  # for循环,红球从0个开始,直至3
  4.     for yellow in range(0, 4):  # for循环,黄球从0个开始,直至3
  5.         for green in range(2, 7):  # for循环,绿球从2个开始,直至6
  6.             if red + yellow + green == 8:  # 第一次循环,红0,黄0,绿2,!=8,没有输出,进入下一个循环——>红0,黄0,绿3,不符合,下一个,直至完成所有组合,将符合的结果输出
  7.                 # 注意,下边不是字符串拼接,因此不用“+”哦~
  8.                 print(red, '\t', yellow, '\t', green)
复制代码
QQ*
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-10-12 12:28:55 | 显示全部楼层    本楼为最佳答案   
本帖最后由 kylin121380 于 2020-10-12 12:33 编辑
  1. for i in range(100, 1000):
  2.     sum = 0  # 用来记录每个数个十百三位的三次方的和
  3.     temp = i  # temp赋值i
  4.     while temp:  # 当temp不等于0时,进行循环
  5.         sum = sum + (temp%10) ** 3  # temp为三位数,此时sum的值为个位的三次方
  6.         temp //= 10         # temp地板除,消除个位变成两位数,三次之后temp为0,跳出while循环
  7.     if sum == i:  # 为水仙花数,print
  8.         print(i)
复制代码
  1. print('red\tyellow\tgreen')
  2. # 红黄各3,绿6,从中取8个球,绿球最少为2个,因为红黄都取也只有6个,因此确定范围,红球可以是0-3,黄球0-3,绿球2-6
  3. for red in range(0, 4):  # for循环,红球从0个开始,直至3
  4.     for yellow in range(0, 4):  # for循环,黄球从0个开始,直至3
  5.         for green in range(2, 7):  # for循环,绿球从2个开始,直至6
  6.             if red + yellow + green == 8:  # 第一次循环,红0,黄0,绿2,!=8,没有输出,进入下一个循环——>红0,黄0,绿3,不符合,下一个,直至完成所有组合,将符合的结果输出
  7.                 # 注意,下边不是字符串拼接,因此不用“+”哦~
  8.                 print(red, '\t', yellow, '\t', green)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-12 12:30:06 | 显示全部楼层
  1. for i in range(100, 1000):#遍历100到1000所有整数
  2.    sum = 0  #定义求和变量,初值为0
  3.    temp = i
  4.    while temp:#当i得值不等于0时,一直循环
  5.        sum = sum + (temp%10) ** 3 #temp取余10得到最后一位的数值,sum等于temp各位数之和
  6.        temp //= 10         # 注意这里要使用地板除哦~   这里得到temp的前两位
  7.    if sum == i: #判断i是否等于其各位数的三次方之和
  8.        print(i)#打印满足情况的i得值
复制代码



评分

参与人数 1鱼币 +5 收起 理由
9360744 + 5

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-28 11:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表