Я пытаюсь написать функцию sum_of_squares (xs), которая вычисляет сумму квадратов чисел в списке xs. Например, sum_of_squares ([2, 3, 4]) должен возвращать 4 + 9 + 16, который 29:Функция, которая вычисляет сумму квадратов чисел в списке
Вот что я пробовал:
import random
xs = []
#create three random numbers between 0 and 50
for i in range(3):
xs.append(random.randint(0,50))
def sum_of_squares(xs):
#square the numbers in the list
squared = i ** i
#add together the squared numbers
sum_of_squares = squared + squared + squared
return sum_of_squares
print (sum_of_squares(xs))
Сейчас это всегда печатает
12
Потому что он принимает i как число целых чисел в списке, а не целое число. Как я могу сказать «умножить значение на целое число» на столько целых чисел в списке, чтобы получить квадрат значений?
Задавать этот вопрос привел меня попробовать это:
import random
xs = []
#create three random numbers between 0 and 50
for i in range(3):
xs.append(random.randint(0,50))
def sum_of_squares(xs):
#square the numbers in the list
for i in (xs):
squared = i ** i
#add together the squared numbers
sum_of_squares = squared + squared + squared
return sum_of_squares
print (sum_of_squares(xs))
Но это, кажется, не быть возведения в квадрат значения целых чисел правильно - я не уверен, что он делает. Смотрите этот скриншот профайла Visualize Python.
'квадрат = я ** i' неправильно. Вы либо имеете в виду 'i * i', либо' i ** 2'. --- И 'i' даже должен быть видимым изнутри этой функции? Это глобальное целое число. – byxor