繁体   English   中英

返回并打印在 Python 中给出不同的输出

[英]Return and print giving different outputs in Python

我正在尝试合并两个 arrays 并返回排序后的数组(leetcode 上的#88),这是我使用的代码:

class Solution:
    def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:
        if (m > 0 and n > 0):
            merged = nums1[0:m] + nums2[0:n]
            result = sorted(merged)
            print(result)
            return result

输入是

[1,2,3,0,0,0,0]
3
[2,5,6]
3

Output 是这样的—— 在此处输入图像描述

有人可以解释为什么 print 和 return 给出不同的输出吗?

转到问题并选择python3作为语言,我们会看到以下存根:

class Solution:
    def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:
        """
        Do not return anything, modify nums1 in-place instead.
        """

请注意注释 - 测试框架正在查看 nums1 的 state 而不是您返回的值 - 事实上,规范是不返回任何东西。

您正在打印返回变量,这实际上就是您返回的内容。 但是这个问题实际使用的变量并不是这个 function 的返回值。

阅读规范,无论以何种格式呈现,在编写任何内容之前始终是一个很好的第一步。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM