【问题标题】:How do I create the expected output in this Arithmetic Operators problem on HackerRank?如何在 HackerRank 上的算术运算符问题中创建预期输出?
【发布时间】:2020-06-01 17:26:48
【问题描述】:

我是 Python 3 的初学者,我正在尝试通过解决 HackerRank 问题来练习更多的 Python 3 技能,但我有点卡在这个问题上。我已经编写了一些代码,但无法获得预期的输出。有人可以帮忙吗?

说明:

从 STDIN 读取两个整数并打印三行,其中:

第一行包含两个数字的总和。 第二行包含两个数字的差异(第一 - 第二)。 第三行包含两个数字的乘积。

输出格式

如上所述打印三行。

示例输入

3
2

样本输出

5
1
6 

这是我的代码,我创建了三个函数来对输入的数字进行加减乘乘,但我需要知道如何编写一些代码来遍历列表并使输出的数字垂直移动:

def addition(a, b):
    print (a + b)

#Main 
a = int(input())
b = int(input())
addition(a, b)

def subtraction (a, b):
    print (a - b)

#Main 
a = int(input())
b = int(input())
subtraction(a, b)

def multiplication(a, b):
    print (a * b)

#Main 
a = int(input())
b = int(input())
multiplication(a, b)

【问题讨论】:

  • 指令是读取两个输入值,然后输出三个结果。您的代码正在做一些不同的事情。它读取两个输入,输出一个结果,然后再读取两个输入,输出一个结果,然后再读取两个输入,输出一个结果。
  • 你知道一种方法可以让我的代码在一条垂直线上输出输入值的总和、差值和乘积吗?
  • 当然可以,但我希望您能自己找出答案。在我的描述中,很明显你做得太多了。消除代码不应该做的事情,使其符合预期的行为。问问自己:我应该阅读多少次输入;我做了多少次?我该如何对齐?

标签: python function loops iteration


【解决方案1】:

您甚至不需要为这些简单的内置任务使用函数。

a = int(input())
b = int(input())
print(a+b)
print(a-b)
print(a*b)

这也行。

希望这会有所帮助:)

【讨论】:

  • 非常感谢!我不知道为什么我没有想到! :)
【解决方案2】:

您不应多次读取输入。只读一次,然后执行操作

def addition(a, b):
    print (a + b)

#Main 
a = int(input())
b = int(input())
addition(a, b)

def subtraction (a, b):
    print (a - b)

subtraction(a, b)

def multiplication(a, b):
    print (a * b)

multiplication(a, b)

【讨论】:

    【解决方案3】:

    我认为您不需要遍历数字列表。评估器将多次运行代码并为您执行垂直格式设置。以下应该足够了。

    您不需要多次输入。只需存储一次,然后调用您编写的三个函数即可。

    def addition(a, b):
        print (a + b)
    
    def subtraction (a, b):
        print (a - b)
    
    def multiplication(a, b):
        print (a * b)
    
    #Main 
    a = int(input())
    b = int(input())
    ## Note this
    addition(a, b)
    subtraction (a, b)
    multiplication(a, b)
    

    python 中的 print 函数默认打印在不同的行中,代码的最后三行确保它是这样打印的。 但是,对于您自己的测试(这样您就不必过多地移动代码),您可以尝试以下方法:

    def addition(a, b):
        print (a + b)
    
    def subtraction (a, b):
        print (a - b)
    
    def multiplication(a, b):
        print (a * b)
    
    def getOutput(a,b):
        #a = int(input())
        #b = int(input())
        addition(a, b)
        subtraction (a, b)
        multiplication(a, b)
    
    listA=[1,2,3,45,9]
    listB=[2,3,4,70,1]
    for i in range(len(listA)):
       getOutput(listA[i],listB[i])
    

    但是,您必须以第一个代码的格式提交代码。

    【讨论】:

      【解决方案4】:

      你可以这样做:

      def addition(a, b):
          print (a + b)
      
      def subtraction (a, b):
          print (a - b)
      
      def multiplication(a, b):
          print (a * b)
      
      
      a = int(input())
      b = int(input())
      addition(a, b)
      subtraction(a, b)
      multiplication(a, b)
      

      输入:

      3
      2
      

      输出:

      5
      1
      6
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-17
        • 2022-01-25
        • 1970-01-01
        • 1970-01-01
        • 2022-08-18
        • 2018-12-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多