在用户输入列表中查找每个数字的平方。 (Python 3.x)

时间:2019-03-06 16:07:42

标签: python math user-input

我目前正在为一门课程做作业,我必须接受用户的数字列表,然后选择该列表,找到组合的数字总和(那里没有问题),最后找到该列表中每个值的平方。我在开发被称为“ squareEach”的函数时遇到了麻烦。我尝试了一些想法,但是在调用函数或错误时,最终在我的打印行中打印了“ none ”。我觉得我可能会遗漏某些东西,如果有人能为我指出正确的方向,以开发如何对输入列表中的每个值求平方的函数,我将不胜感激!

如果我需要进一步解决我的问题,我会这样做。下面是代码示例以及我想在何处放置代码。这是我的第一篇文章,如果布局有点草率,对不起。

#function "squareEach" here



def sumList(nums):
    total=0
    for n in nums:
        total=total+n
    return total

def main():
    print("This program finds the sum of a list of numbers and finds the")
    print("square of each number in the list.\n")
    nums=map(int,input("Enter the numbers separated by a space: ").split())

    print("The sum is", sumList(nums))

    #Line that prints what the squares are for each value e.g("The squares 
   for each value are... ")


main()

1 个答案:

答案 0 :(得分:1)

问题是您使用<map>对象类型。 nums变量是对象类型class <map>。不幸的是,在第一个函数for中,对象/类的内容将在其使用中更改。然后,用户必须将新数字重新输入到nums变量中。即使不使用math模块,用于计算平方根的函数也很简单,即: n**(1/2.0)

def squareEach(numbers):
    result = {}
    for n in numbers:
        result[n] = n ** (1 / 2.0)
    return result
    # result is dictionary data type, but you can change the function, if you need another data type as the result

def sumList(numbers):
    total = 0
    for n in numbers:
        total += n
    return total


nums = list(map(int, input("Enter the numbers separated by space: ").split()))
# nums variable is the <list> type variable with a <int> entries

print("The sum is", sumList(nums))
print("The suqare for each is", squareEach(nums))