零基础入门第9课作业疑难,求讲解
本帖最后由 9360744 于 2020-10-12 12:19 编辑如图,后面这两题看都看不懂,是不是白学这么多天了。
疑问:
第一题的sum函数是干啥的,在那当中有啥作用。
while循环条件是不是永远为真,他又是如何跳到下面print语句的。
第二题应该是我自己还没搞懂for循环,求讲解。
本帖最后由 kylin121380 于 2020-10-12 12:33 编辑
for i in range(100, 1000):
sum = 0# 用来记录每个数个十百三位的三次方的和
temp = i# temp赋值i
while temp:# 当temp不等于0时,进行循环
sum = sum + (temp%10) ** 3# temp为三位数,此时sum的值为个位的三次方
temp //= 10 # temp地板除,消除个位变成两位数,三次之后temp为0,跳出while循环
if sum == i:# 为水仙花数,print
print(i)
print('red\tyellow\tgreen')
# 红黄各3,绿6,从中取8个球,绿球最少为2个,因为红黄都取也只有6个,因此确定范围,红球可以是0-3,黄球0-3,绿球2-6
for red in range(0, 4):# for循环,红球从0个开始,直至3
for yellow in range(0, 4):# for循环,黄球从0个开始,直至3
for green in range(2, 7):# for循环,绿球从2个开始,直至6
if red + yellow + green == 8:# 第一次循环,红0,黄0,绿2,!=8,没有输出,进入下一个循环——>红0,黄0,绿3,不符合,下一个,直至完成所有组合,将符合的结果输出
# 注意,下边不是字符串拼接,因此不用“+”哦~
print(red, '\t', yellow, '\t', green) for i in range(100, 1000):#遍历100到1000所有整数
sum = 0#定义求和变量,初值为0
temp = i
while temp:#当i得值不等于0时,一直循环
sum = sum + (temp%10) ** 3 #temp取余10得到最后一位的数值,sum等于temp各位数之和
temp //= 10 # 注意这里要使用地板除哦~ 这里得到temp的前两位
if sum == i: #判断i是否等于其各位数的三次方之和
print(i)#打印满足情况的i得值
页:
[1]