Поиск квадратов каждого числа в списке ввода пользователя. (Python 3.x) - PullRequest
0 голосов
/ 06 марта 2019

В настоящее время я работаю над заданием для курса, в котором я должен принять список чисел от пользователя, а затем взять этот список, найти сумму всех объединенных чисел (никаких проблем) и, наконец, найти квадраты каждого отдельного значения в этом списке. У меня проблемы с разработкой функции, которую я называю "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 Ответ

1 голос
/ 06 марта 2019

Проблема в том, что вы используете тип объекта <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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...