1. Відкрийте середовище розробки програмного забезпечення IDLE та створіть новий файл Python. На вході маємо список з цілих чисел. Програма повинна створити новий з квадратів чисел введеного списку. Після цього користувач у новому рядку вводе елемент першого списку, а на виході маємо елемент другого, який йому відповідає.
2. Відкрийте середовище розробки програмного забезпечення IDLE та створіть новий файл Python. На вході маємо цілочисельну матрицю та ціле число. Задача програми знайти це число в матриці та вивести число, яке стоїть справа від даного. Примітка - якщо числа праворуч не має, вивести 0
Answers & Comments
Ответ:
1 задача:
# для получения корня
from math import sqrt
# создание списка
input_list = [int(x)**2 for x in input('введите числа через проблел: ').split(' ')]
print(input_list)
input_num = int(input('Введите число: '))
# поиск значения
for num in input_list:
if sqrt(num) == input_num: # что бы взять корень без библиотеки math => int(num ** 0.5)
print(num)
break
2 Задача:
# создание матрицы и ввод значения
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
input_num = int(input('Введите число: '))
# поиск совпадения и его вывод
for num in enumerate(matrix):
try:
if num[1].index(input_num) >= 0:
try:
print(f'Ряд: {num[0]}, положение: {num[1][int(num[1].index(input_num)) + 1]}')
except IndexError:
print('0')
break
except:
pass
Объяснение:
легко создаю список из возведенного в квадрат числа x, который является итерацией списка чисел введенных пользователем.
для первой задачи:
Для поиска совпадений прохожусь по списку квадратов и если квадратный корень элемента совпадает с введенным значением, то квадрат выводится на экран и функция прерывается.
для второй задачи:
Тут не очень сложно, сложнее было придумать. Прохожусь по списку с помощью enumerate(), который возвращает номер итерации и само значение. Далее во избежание краша обертываю следующий код в проверку. проверяю, если индекс удовлетворяет логику индексов у списка(индексы в списке могут быть только 0 и более), то я вывожу ряд(номер итерации) и положение в ряду(превращенный в число и увеличенный на 1(если угодно пододвигаю в право) индекс совпадающего элем.