【问题标题】:Regarding the def and return function in python关于python中的def和return函数
【发布时间】:2021-02-09 07:59:40
【问题描述】:

我正在编写一个程序来编写用户给出的数字乘法表。 这是我的代码:

def mul_table(n):
    for i in range(1,11):
        print(n,"x",i,"=",(n * i))
        i = i + 1
    return(n)
        

x = int(input("Enter the number: "))
x1 = mul_table(x)
print(x1)

但是在输出中它最终也显示了用户输入的数字(我知道在“返回”之后写入了值,但是如果我将其留空则显示为无,那么我该如何摆脱这个?):

Enter the number: 5
5 x 1 = 5  
5 x 2 = 10 
5 x 3 = 15 
5 x 4 = 20 
5 x 5 = 25 
5 x 6 = 30 
5 x 7 = 35 
5 x 8 = 40 
5 x 9 = 45 
5 x 10 = 50
**5**

谁能告诉我程序如何在 PYTHON 3.9.1 中什么都不返回(绝对什么也不返回,甚至“无”文本或用户输入的数字)?

【问题讨论】:

  • 您不必打印mul_table的返回值,也不必将其存储在任何地方。你可以直接调用它。
  • 函数必须返回 something。如果你没有明确地return 一个值,那么None 是默认的返回值。您根本不需要print 函数的返回值。您的函数已经在打印。只需调用它mul_table(x) 甚至无需将结果保存到变量中
  • 1st) 不要打印函数调用的返回值... 2nd) 不要增加 i 你的 range 对象会在每次循环时给你一个递增的 i。

标签: python python-3.x printing


【解决方案1】:

您的mul_table 函数会自行处理打印。它不需要返回值,即使它存在也不应该打印它——你应该调用函数:

def mul_table(n):
    for i in range(1,11):
        print(n,"x",i,"=",(n * i))
        i = i + 1
    # return statement removed here        

x = int(input("Enter the number: "))
mul_table(x) # No need to capture the return value or print it

【讨论】:

    【解决方案2】:

    问题是mul_table 方法返回n,而您使用print(x1) 打印它。如果您不需要,请移除此对 print 的调用。

    【讨论】:

      【解决方案3】:

      有几个问题,这是一个工作版本

      def mul_table(n):
          for i in range(1,11):
              print(n,"x",i,"=",(n * i))
      
      x = int(input("Enter the number: "))
      mul_table(x)
      
      1. 您在函数内部进行打印,因此您无需在打印语句中调用 mul_table
      2. 您也不需要在函数中使用 return 语句(尽管如果您省略 return 语句或使用没有返回值的 return 语句,它会返回 None)
      3. i = i+1 函数内部是错误的,你正在使用 for 语句,其中 i 依次获取值 1、2、...、10。

      【讨论】:

        猜你喜欢
        • 2022-12-03
        • 1970-01-01
        • 1970-01-01
        • 2022-01-07
        • 1970-01-01
        • 1970-01-01
        • 2012-05-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多