m0_66394588 2024-04-28 11:41 采纳率: 91.5%
浏览 9

这么输出的原理是什么

print(print(1),print(2))
1
2
None None

  • 写回答

6条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-28 11:41
    关注

    引自免费微信小程序:皆我百晓生

    在Python中,print()函数用于打印输出内容,并返回None。当你在一个表达式中调用多个print()函数时,每个print()都会执行并返回None,然后整个表达式的值就是所有这些返回值的组合。

    这里是一个详细的解释:

    1. 当你执行print(print(1))时,首先会执行内部的print(1),这会打印出数字1并在控制台显示。由于print()函数返回None,所以这个表达式的值是None
    2. 然后你会执行第二个print(),即print(print(2))。同样的,它先执行内部的print(2), 打印出数字2。接着,外部的print()接收这个内部print()返回的None,并将其打印出来。

    因此,最终的输出是:

    1
    2
    None
    None
    

    这是因为每个print()函数都在独立地执行并打印它们的结果,而print()函数本身返回的是None,所以在整个表达式结束后,你看到了两个None的输出。

    如果你想要理解这段代码的运行过程,可以看下面的伪代码表示:

    # 第一行代码
    result_1 = print(1)  # 输出1, result_1为None
    print(result_1)  # 输出None
    
    # 第二行代码
    result_2 = print(2)  # 输出2, result_2为None
    print(result_2)  # 输出None
    

    这就是为什么你会看到这样的输出结果。如果你只是想在一行内打印1和2,你应该只使用一个print()函数,如下所示:

    print(1, 2)
    

    这样就会得到输出:

    1 2
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月28日

悬赏问题

  • ¥15 mac系统控制台运行npm run serve没问题但是配置文件不识别serve脚本
  • ¥66 换电脑后应用程序报错
  • ¥50 array数据同步问题
  • ¥15 pic16F877a单片机的外部触发中断程序仿真失效
  • ¥15 Matlab插值拟合差分微分规划图论
  • ¥15 keil5 target not created
  • ¥15 C/C++数据与算法请教
  • ¥15 怎么找志同道合的伙伴
  • ¥20 如何让程序ab.eXe自已删除干净硬盘里的本文件自己的ab.eXe文件
  • ¥50 爬虫预算充足,跪巨佬