дополните приведенный код так чтобы он вывел сумму квадратов элементов списка numbers
Change the code to get the sum of squares of the list items recursively
We have a function that returns sum of list elements using recursion. So now, we have change the code to output the sum of the squares of all the list items.. Имеется функция, возвращающая сумму элементов списка рекурсивным способом. Теперь нужно переделать код, чтобы получить сумму квадратов элементов списка. def calc(list): if len(list)==0: return 0 else: return list[0] + calc(list[1:]) list = [1, 3, 4, 2, 5] x = calc(list) print(x) I tried adding loop for to iterate over the elements of the list and create a new list, where I will add new elements. The question is how to do this recursively correctly. Я попробовал добавить цикл for чтобы перебрать элементы списка и создать новый список, куда добавлю новые элементы. Вопрос в том, как правильно выполнить это рекурсивно. newList[] for i in list: n = i**2 newList.append(n)
Plateau Born Here’s a one-liner: calc = lambda x: x[0] ** 2 + calc(x[1:]) if x else 0 # Hope this helps
Plateau Born list[0] will take 1st value from list and after each iteration list[1:] will change like [3, 4, 2, 5] [4, 2, 5] [2, 5] [5] And finally []
Thanks! now it comes, the whole trick is that the function calls itself
Abhay, but how does it work. I can’t understand correctly, list[0] takes the values of the list in order.
Решение урока 9.1 из курса «Поколение Python» на питоне
Полные решения на питоне с пояснениями к модулю 9.1 из «Поколение Python: курс для начинающих» с сайта stepik.org.
Что покажет приведенный ниже фрагмент кода?
s = ‘abcdefg’
print(s[0] + s[2] + s[4] + s[6])
Что покажет приведенный ниже фрагмент кода?
s = ‘abcdefg’
print(s[0]3 + s[-1]3 + s[3]2 + s[3]2)
Что покажет приведенный ниже фрагмент кода?
s = ‘01234567891011121314151617’
for i in range(0, len(s), 5):
print(s[i], end=»)
Дополните приведенный код, используя индексатор, так чтобы он вывел символ запятой.
В столбик 2
На вход программе подается одна строка. Напишите программу, которая выводит в столбик элементы строки в обратном порядке.
Формат входных данных
На вход программе подается одна строка.
Формат выходных данных
Программа должна вывести в столбик элементы строки в обратном порядке.
ФИО
На вход программе подаются три строки: имя, фамилия и отчество. Напишите программу, которая выводит инициалы человека.
Формат входных данных
На вход программе подаются три строки, каждая на отдельной строке.
Формат выходных данных
Программа должна вывести ФИО человека.
Примечание. Гарантируется, что имя, фамилия и отчество начинаются с заглавной буквы.
Цифра 1
На вход программе подается одна строка состоящая из цифр. Напишите программу, которая считает сумму цифр данной строки.
Формат входных данных
На вход программе подается одна строка состоящая из цифр.
Формат выходных данных
Программа должна вывести сумму цифр данной строки.
Цифра 2
На вход программе подается одна строка. Напишите программу, которая выводит сообщение «Цифра» (без кавычек), если строка содержит цифру. В противном случае вывести сообщение «Цифр нет» (без кавычек).
Формат входных данных
На вход программе подается одна строка.
Формат выходных данных
Программа должна вывести текст в соответствии с условием задачи.
Одинаковые соседи
На вход программе подается одна строка. Напишите программу, которая определяет сколько в ней одинаковых соседних символов.
Формат входных данных
На вход программе подается одна строка.
Формат выходных данных
Программа должна вывести количество одинаковых соседних символов.
Гласные и согласные
На вход программе подается одна строка с буквами русского языка. Напишите программу, которая определяет количество гласных и согласных букв.
Формат входных данных
На вход программе подается одна строка.
Формат выходных данных
Программа должна вывести количество гласных и согласных букв.
Примечание. В русском языке 10 гласных букв (а, у, о, ы, и, э, я, ю, ё, е) и 21 согласная буква (б, в, г, д, ж, з, й, к, л, м, н, п, р, с, т, ф, х, ц, ч, ш, щ).
Decimal to Binary
На вход программе подается натуральное число, записанное в десятичной системе счисления. Напишите программу, которая переводит данное число в двоичную систему счисления.
Формат входных данных
На вход программе подается одно натуральное число.
Формат выходных данных
Программа должна вывести число записанное в двоичной системе счисления.
Решение модуля 7.3 из курса «Поколение python: курс для начинающих»
Полное решение модуля (урока) 7.3 из курса «Пколение python: курс для начинающих» с сайта stepik.org на питоне.
Что покажет приведенный ниже фрагмент кода?
num1 = 4
num2 = 6
num1 += num2
num1 *= num1
print(num1)
Что покажет приведенный ниже фрагмент кода?
total = 0
for i in range(1, 6):
total += i
print(total)
Что покажет приведенный ниже фрагмент кода?
total = 0
for i in range(1, 6):
total += i
print(total, end=»)
На вход программе подаются два целых числа aa и bb (a \le b)(a≤b). Напишите программу, которая подсчитывает количество чисел в диапазоне от aa до bb включительно, куб которых оканчивается на 44 или 99.
Формат входных данных
На вход программе подаются два целых числа aa и bb (a \le b)(a≤b).
Формат выходных данных
Программа должна вывести одно целое число в соответствии с условием программы.
Примечание. Куб числа aa – это его третья степень a^3a3.
На вход программе подается натуральное число nn, а затем nn целых чисел, каждое на отдельной строке. Напишите программу, которая подсчитывает сумму введенных чисел.
Формат входных данных
На вход программе подаются натуральное число nn, а затем nn целых чисел, каждое на отдельной строке.
Формат выходных данных
Программа должна вывести сумму данных чисел.
Асимптотическое приближение
На вход программе подается натуральное число nn. Напишите программу, которая вычисляет значение выражения\left(1+\dfrac12 + \dfrac13 + \ldots + \dfrac<1>
На вход программе подается натуральное число nn. Напишите программу, которая подсчитывает сумму тех чисел от 11 до nn (включительно) квадрат которых оканчивается на 2, \, 52,5 или 88.
Формат входных данных
На вход программе подается натуральное число nn.
Формат выходных данных
Программа должна вывести единственное число в соответствии с условием задачи.
Примечание. Если таких чисел нет в указанном диапазоне, то следует вывести 00.
На вход программе подается натуральное число nn. Напишите программу, которая вычисляет n!n!.
Входные данные
На вход программе подается натуральное число n, \, (n \le 12)n,(n≤12).
Выходные данные
Программа должна вывести единственное число в соответствии с условием задачи.
Примечание. Факториалом натурального числа nn, называется произведение всех натуральных чисел от 11 до nn, то естьn!=1\cdot2\cdot3\cdot…\cdot nn!=1⋅2⋅3⋅…⋅n
Напишите программу, которая считывает 10 чисел и выводит произведение отличных от нуля чисел.
Формат входных данных
На вход программе подаются 10 целых чисел, каждое на отдельной строке.
Формат выходных данных
Программа должна вывести произведение отличных от нуля чисел.
Примечание. Гарантируется, что хотя бы одно из 10 чисел является ненулевым.
На вход программе подается натуральное число nn. Напишите программу, которая вычисляет сумму всех его делителей.
Входные данные
На вход программе подается натуральное число nn.
Выходные данные
Программа должна вывести единственное число в соответствии с условием задачи.
Примечание. Функция подсчета суммы всех делителей числа является очень важной в теории чисел.
Знакочередующаяся сумма
На вход программе подается натуральное число nn. Напишите программу вычисления знакочередующей суммы 1-2+3-4+5-6 + \ldots + (-1)^
Входные данные
На вход программе подается натуральное число nn.
Выходные данные
Программа должна вывести единственное число в соответствии с условием задачи.
На вход программе подается натуральное число nn, а затем nn различных натуральных чисел, каждое на отдельной строке. Напишите программу, которая выводит наибольшее и второе наибольшее число последовательности.
Формат входных данных
На вход программе подаются натуральное число n \ge 2n≥2, а затем nn различных натуральных чисел, каждое на отдельной строке.
Формат выходных данных
Программа должна вывести два наибольших числа, каждое на отдельной строке.
Напишите программу, которая считывает последовательность из 10 целых чисел и определяет является ли каждое из них четным или нет.
Формат входных данных
На вход программе подаются 10 целых чисел, каждое на отдельной строке.
Формат выходных данных
Программа должна вывести строку «YES», если все числа четные и «NO» в ином случае.
Последовательность Фибоначчи 🌶️
Напишите программу, которая считывает натуральное число nn и выводит первые nn чисел последовательности Фибоначчи.
Формат входных данных
На вход программе подается одно число n\, (n \le 100)n (n≤100) – количество членов последовательности.
Формат выходных данных
Программа должна вывести члены последовательности Фибоначчи, отделенные символом пробела.
Примечание. Последовательность Фибоначчи – это последовательность натуральных чисел, где каждое последующее число является суммой двух предыдущих:1, \, 1, \, 2, \, 3, \, 5, \, 8, \, 13, \, 21, \, 34, \, 55, \, 89, \ldots1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,…
Решение модуля 9.2 из курса «Поколение Python»
Ответы на вопросы и решения задач на питоне из урока (модуля) 9.2 курса «Поколение Python: курс для начинающих» с сайта stepik.org.
Что покажет приведенный ниже фрагмент кода?
s = ‘abcdefg’
print(s[2:5])
Что покажет приведенный ниже фрагмент кода?
s = ‘abcdefg’
print(s[3:])
Что покажет приведенный ниже фрагмент кода?
s = ‘abcdefg’
print(s[:3])
Что покажет приведенный ниже фрагмент кода?
s = ‘abcdefg’
print(s[:])
Что покажет приведенный ниже фрагмент кода?
s = ‘abcdefg’
print(s[::-3])
Дополните приведенный код, используя срезы, так чтобы он вывел каждый 7 символ строки s начиная от начала строки.
Дополните приведенный код, используя срезы, так чтобы он вывел строку s в обратном порядке.
Палиндром
На вход программе подается одно слово, записанное в нижнем регистре. Напишите программу, которая определяет является ли оно палиндромом.
Формат входных данных
На вход программе подается одно слово в нижнем регистре.
Формат выходных данных
Программа должна вывести «YES», если слово является палиндромом и «NO» в противном случае.
Примечание. Палиндром читается одинаково в обоих направлениях, например слово «потоп».
Делаем срезы 1
На вход программе подается одна строка. Напишите программу, которая выводит:
общее количество символов в строке;
исходную строку повторенную 3 раза;
первый символ строки;
первые три символа строки;
последние три символа строки;
строку в обратном порядке;
строку с удаленным первым и последним символом.
Формат входных данных
На вход программе подается одна строка, длина которой больше 3 символов.
Формат выходных данных
Программа должна вывести данные в соответствии с условием. Каждое значение выводится на отдельной строке.
Делаем срезы 2
На вход программе подается одна строка. Напишите программу, которая выводит:
третий символ этой строки;
предпоследний символ этой строки;
первые пять символов этой строки;
всю строку, кроме последних двух символов;
все символы с четными индексами;
все символы с нечетными индексами;
все символы в обратном порядке;
все символы строки через один в обратном порядке, начиная с последнего.
Формат входных данных
На вход программе подается одна строка, длина которой больше 5 символов.
Формат выходных данных
Программа должна вывести данные в соответствии с условием. Каждое значение выводится на отдельной строке.
Две половинки
На вход программе подается строка текста. Напишите программу, которая разрежет ее на две равные части, переставит их местами и выведет на экран.
Формат входных данных
На вход программе подается строка текста.
Формат выходных данных
Программа должна вывести текст в соответствии с условием задачи.
Примечание. Если длина строки нечетная, то длина первой части должна быть на один символ больше.
Функции в Python
Функция позволяет использовать в программе один и тот же фрагмент кода несколько раз.
Oбъявление функции в Python выглядит так:
# Объявление функции
def hello (name):
print ( ‘Hello, ‘ + name)
# Вызовы функции
hello ( ‘Max’ )
hello ( ‘Ivan’ )
hello ( ‘Alex’ )
hello ( ‘Kate’ )
# Вывод
>> Hello, Max
>> Hello, Ivan
>> Hello, Alex
>> Hello, Kate
Оператор return возвращает значение из функции.
Представьте себе обычный калькулятор. Вы вводите первое число, операцию и второе число. Калькулятор возвращает нам результат операции над этими числами. Всё просто, не так ли? Функции точно так же умеют возвращать значение с помощью специального оператора return.
print ( f ‘s1 =
print ( f ‘s2 =
print ( f ‘s3 =
>> s1 = 12
>> s2 = 208
>> s3 = 4
print ( f ‘m1 =
print ( f ‘m2 =
print ( f ‘m3 =
>> m1 = 20
>> m2 = 10800
>> m3 = 3
Для параметров функции можно указывать значения по умолчанию. Это дает возможность вызывать функцию с меньшим числом параметров.
# Аргумент name по умолчанию равен ‘world’
def hello ( name = ‘world’ ):
print ( ‘Hello, ‘ + name)
hello ()
hello ( ‘Ivan’ )
>> Hello, world
>> Hello, Ivan
Примеры
# Написать функцию square(), вычисляющую квадрат числа.
def square ( number ):
return number * number # Возвращаем результат работы функции обратно в программу
a = square ( 2 )
print (a)
print ( isEven ( 10 ))
print ( isEven ( 11 ))
# Напишите функцию amountList, которая возвращает сумму всех элементов списка.
def amountList ( lst ):
amount = 0
f or x in lst:
amount += x
return amount
print ( f ‘Сумма списка ‘ )
print ( fib ( 2 ))
print ( fib ( 3 ))
print ( fib ( 4 ))
print ( fib ( 5 ))
print ( fib ( 10 ))
print ( fact ( 2 ))
print ( fact ( 3 ))
print ( fact ( 4 ))
print ( fact ( 5 ))
Решение задач
Напишите функцию, которая получает в качестве аргумента радиус круга и находит его площадь.
# Не забудьте написать функцию circle.
print ( circle ( 4 ))
print ( circle ( 1 ))
# Не забудьте написать функцию three.
print ( three ( 4 ))
print ( three ( 3 ))
3. Максимум в списке
Напишите функцию, которая возвращает максимальный элемент из переданного в нее списка.
Напишите функцию, которая возвращает количество четных элементов в списке.
Напишите функцию, которая возвращает список с уникальными (неповторяющихся) элементам.