Академия Eduson

Кортежи. Основы работы. Часть 2

 Работа с кортежами. Продолжение

 Что будет выведено на экран в результате работы следующей программы?:

poets = [
    ("Есенин", 13),
    ("Тургенев", 14),
    ("Маяковский", 28),
    ("Лермонтов", 20),
    ("Фет", 15),
]

for i in range(len(poets)):
    for j in range(i + 1, len(poets)):
        if poets[i][1] > poets[j][1]:
            poets[i], poets[j] = poets[j], poets[i]

print(poets[0])
print(poets[-1])

 Ответ:  ('Есенин', 13);  ('Маяковский', 28)

 Что будет выведено на экран в результате работы следующей программы?:

poets = [
    ("Тургенев", 14),
    ("Есенин", 13),
    ("Маяковский", 28),
    ("Фет", 15),
    ("Лермонтов", 20),
]

for i in range(len(poets)):
    for j in range(i + 1, len(poets)):
        if poets[i] > poets[j]:
            poets[i], poets[j] = poets[j], poets[i]

print(poets[0])
print(poets[-1])

 Ответ:  ('Есенин', 13);  ('Фет', 15)

 Дополните приведенный код так, чтобы он вывел произведение элементов кортежа numbers.

numbers = (2, 3, 5, 7, -11, 13, 17, 19, 23, 29, 31, -6, 41, 43, 47, 53, 59, 61, -96, 71, 1000, -1)

c = 1

for x in numbers:
    c *= x

print(c)   

 Дополните приведенный код так, чтобы он преобразовал строку в кортеж символов строки и вывел результат.

data = 'Python для продвинутых!'

x = tuple(data)

print(x)

 Программист Тимур написал программу для работы с биографическими данными русских поэтов. Данные содержатся в кортежах вида (фамилия, год рождения, город рождения). В процессе работы программы в некотором кортеже poet_data обнаружилась ошибка: ('Пушкин', 1799, 'Санкт-Петербург'). Тут неверно указано место рождения, ведь Александр Пушкин родился в Москве. Дополните приведенный код так, чтобы в переменной poet_data находился правильный кортеж (с исправленным значением), а затем выведите его.

poet_data = ('Пушкин', 1799, 'Санкт-Петербург')

p_d = poet_data[:2] + ('Москва',)

print(p_d)

 Дополните приведенный код так, чтобы он вывел список, содержащий средние арифметические значения чисел каждого вложенного кортежа в заданном кортеже кортежей numbers.

numbers = ((10, 10, 10, 12), (30, 45, 56, 45), (81, 80, 39, 32), (1, 2, 3, 4), (90, 10))

l = []

for x in numbers:
    x = list(x)
    l.append(sum(x) / len(x))

print(l)    

 Уравнение параболы имеет вид y =ax**2+bx+c. Напишите программу, которая по введенным значениям a,b,c определяет и выводит вершину параболы.

a = int(input())
b = int(input())
c = int(input())

x = - b / (2 * (a))
y = (4 * a * c - b**2) / (4 * a)

s = (x, y)

print(s)

 Напишите программу, которая выводит список хорошистов и отличников в классе.
 На вход программе подается натуральное число n, далее следует n строк с фамилией школьника и его оценкой на каждой из них. Программа должна вывести сначала все введённые строки с фамилиями и оценками учеников в том же порядке. Затем следует пустая строка, а затем выводятся строки с фамилиями и оценками хорошистов и отличников (в том же порядке).

n = int(input())
l = [input().split() for _ in range(n)]

for x in l:
    print(*x)

print()

for i in range(n):
    if l[i][1] in '45':
        print(*l[i])

 Что выведет приведенный ниже код?:

a, b, c = 10, 20, 30
c, b, a = a + b, b*2, a + b + c

print(a, b, c)

 Ответ:  60 40 30

 Что выведет приведенный ниже код?:

points = [('матан', 100), ('линал', 98), ('ангем', 90)]

subject, value = points[1]

print(subject, value)

 Ответ:  линал 98

 Что выведет приведенный ниже код?:

notes = ('Do', 'Re', 'Mi', 'Fa', 'Sol', 'La', 'Si')

do, re, mi, *tail = notes

print(tail)

 Ответ:  ['Fa', 'Sol', 'La', 'Si']

 Что выведет приведенный ниже код?:

notes = ('Do', 'Re', 'Mi', 'Fa', 'Sol', 'La', 'Si')

do, re, *tail, si = notes

print(tail)

 Ответ:  ['Mi', 'Fa', 'Sol', 'La']

 Напишите программу, которая считывает натуральное число n и выводит первые n чисел последовательности Трибоначчи.

n = int(input())

t_1, t_2, t_3 = 1, 1, 1

for _ in range(n):
    print(t_1, end=' ')
    t_1, t_2, t_3 = t_2, t_3, t_1 + t_2 + t_3