Решение модуля 2.5 из курса «Программирование на Python»

Показываю разборы с ответами и решениями урока 2.5 (Списки) для курса «Программирование на Python».
Предыдущий модуль 2.4 следующий модуль 2.6

Сколько элементов будет содержать список students после следующих операций?

students = [‘Ivan’, ‘Masha’, ‘Sasha’]
students += [‘Olga’]
students += ‘Olga’
students = ['Ivan', 'Masha', 'Sasha']
students += ['Olga']
students += 'Olga' #если ввести элемент без скобок то он будет расчленен на каждую букву
print(students) #результат ['Ivan', 'Masha', 'Sasha', 'Olga', 'O', 'l', 'g', 'a']

Ответ: 8

Имеется программа, код которой указан ниже.

Укажите, какие значения будут содержать списки в помеченных участках:

a = [1, 2, 3]
b = a
# значения списка b?
a[1] = 10
# значения списка b?
b[0] = 20
# значения списка a?
a = [5, 6]
# значения списка b?
a = [1, 2, 3]
b = a
print(a,b)
a[1] = 10
print(a,b)
b[0] = 20
print(a,b)
a = [5, 6]
print(a,b)

Ответ:1 2 3; 1 10 3; 20 10 3; 20 10 3

Напишите программу, на вход которой подается одна строка с целыми числами. Программа должна вывести сумму этих чисел.

Используйте метод split строки. 

a=str(input()).split() # Сплит благодаря сплит-это теперь список, он состоит из строк, разделенных пробедами а не из чисел
for i in range(len(a)): #получаем список из чисел
   a[i] = int(a[i])
print(sum(a))

Напишите программу, на вход которой подаётся список чисел одной строкой. Программа должна для каждого элемента этого списка вывести сумму двух его соседей. Для элементов списка, являющихся крайними, одним из соседей считается элемент, находящий на противоположном конце этого списка. Например, если на вход подаётся список «1 3 5 6 10», то на выход ожидается список «13 6 9 15 7» (без кавычек).

Если на вход пришло только одно число, надо вывести его же.

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

list1 = [int(i) for i in input().split()]

if len(list1) == 1:
    print(list1[0])

elif len(list1) == 2:
    print(list1[1]*2, list1[0]*2)

else:
    for i in range(len(list1)):
        if i < len(list1) - 1:
            print(list1[i-1] + list1[i+1], end=" " )
        else:
            print(list1[0] + list1[i-1])

Напишите программу, которая принимает на вход список чисел в одной строке и выводит на экран в одну строку значения, которые встречаются в нём более одного раза.

Для решения задачи может пригодиться метод sort списка.

Выводимые числа не должны повторяться, порядок их вывода может быть произвольным.

s = [ int(i) for i in input().split()]
t = []
s.sort()
l = len(s)-1
k = 100000
if len(s)!=1:
    for i in range(0,l):
        if s[i]==s[i+1] and s[i]!=k:
            t.append(s[i])
            k=s[i]
    for j in range(l,l+1):
        if s[-1]==s[-2] and s[j]!=k:
            t.append(s[j])
n = len(t)
for g in range(0,n):
    print(t[g],end=' ')

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Adblock
detector