brianwang93 发表于 2020-4-9 11:27:40

求助十八讲动动手第一题水仙花

本帖最后由 brianwang93 于 2020-4-9 13:29 编辑

def Narcissus():
    for each in range(100, 1000):
      temp = each
      sum = 0
      while temp:
            sum = sum + (temp%10) ** 3
            temp = temp // 10# 注意这里用地板除

      if sum == each:
            print(each, end='\t')

print("所有的水仙花数分别是:", end='')

Narcissus()

不是很理解最后一个 print("所有的水仙花数分别是:", end='') 打印的内容是从哪里来的。上一行 print(each, end='\t') 不是已经打印过了吗?
为什么不是先调用函数,再打印 print("所有的水仙花数分别是:", end='')?

qiuyouzhi 发表于 2020-4-9 11:30:31

1,把代码发全,不然我也不知道打印的内容是哪里来的。
2,https://fishc.com.cn/thread-159045-1-1.html

dlnb526 发表于 2020-4-9 11:30:47

print默认换行,添加了第二个参数end用空字符取代了默认换行符

老八秘制 发表于 2020-4-9 11:36:57

应该是下面还有一行print,end=' '作用是把分割多个print语句的默认换行符换成空格

疾风怪盗 发表于 2020-4-9 12:08:53

print的end等于空,相当于取消了换行,下面代码执行了上面的函数,输出了结果,所以打印的内容就是函数的运行结果啊

liuzhengyuan 发表于 2020-4-9 12:28:22

上面的是函数
函数只有调用才能被执行

最后一行的
Narcissus()
是调用函数

wuqramy 发表于 2020-4-9 14:49:03

print(each, end='\t')是函数里面的打印,作用是打印找到的水仙花数,只有调用函数才会print

EveLee 发表于 2020-4-9 16:41:54

你这一整段代码是一个程序,点击程序运行后,先执行-->print("所有的水仙花数分别是:", end=''),此时就会打印出“所有的水仙花数分别是:”。然后执行-->Narcissus(),此时开始调用函数,陆续得出各个水仙花数并执行-->print(each, end='\t')将各个水仙花数依次打印出来(打印在“所有的水仙花数分别是:”这一句话后面)。

brianwang93 发表于 2020-4-10 12:06:43

EveLee 发表于 2020-4-9 16:41
你这一整段代码是一个程序,点击程序运行后,先执行-->print("所有的水仙花数分别是:", end=''),此时就会 ...

感谢大神解答
页: [1]
查看完整版本: 求助十八讲动动手第一题水仙花