小智1998 发表于 2021-1-16 20:19:54

关于打印三位数水仙花数的课后作业,如果想改成用元组来表示

想实现的效果是:所有水仙花数为:
请问这段程序该如何改呢?
def shui():
    value = 100
    temp = []
    while99 < value <1000:
      a = value//100
      b = (value - a*100)//10
      c = value - a*100 - b*10
      if value == a**3 + b**3 + c**3:
            temp.append(value)
            print('所有水仙花数为:',temp)
      value += 1

昨非 发表于 2021-1-16 20:41:27

本帖最后由 昨非 于 2021-1-16 20:51 编辑

def shui():
    value = 100
    temp = []
    whilevalue <1000:#因为value初值100且递增,所以99的条件去掉,而且你的写法不规范,要写成value>99 and value<1000:
      a = value//100
      b = (value - a*100)//10
      c = value - a*100 - b*10
      if value == a**3 + b**3 + c**3:
            temp.append(value)
      value += 1
    print('所有水仙花数为:',temp)#打印放在循环外,避免随循环重复打印
shui()


测试结果:
所有水仙花数为:

jackz007 发表于 2021-1-16 20:46:00

本帖最后由 jackz007 于 2021-1-16 20:52 编辑

def shui():
    value = 100
    temp = []
    while value < 1000:
      a = value // 100
      b = (value % 100) // 10
      c = value % 10
      if value == a**3 + b**3 + c**3:
            temp . append(value)
      value += 1
    print('所有水仙花数为:',temp)

shui()

小智1998 发表于 2021-1-16 21:05:18

昨非 发表于 2021-1-16 20:41
测试结果:

好的,以后会慢慢开始注意代码规范的,谢谢您!

昨非 发表于 2021-1-16 21:09:55

小智1998 发表于 2021-1-16 21:05
好的,以后会慢慢开始注意代码规范的,谢谢您!

这个写法在python里不算错,但是再c语言里就不对了
所以还是建议分开写哈
问题解决了记得设置最佳答案哈
页: [1]
查看完整版本: 关于打印三位数水仙花数的课后作业,如果想改成用元组来表示