Python

Программирование, 1 курс, питон

1) Напишите программу, которая выводит на экран все числа от 1 до 120, которые делятся на 4 и на 9.
2)Написать программу, которая находит второй максимальный элемент в списке.
3)Написать программу, которая находит количество пробелов в заданной строке.
4)Дан список слов, введенных с клавиатуры. Определить, сколько раз встречаются различные слова.
1) Нужно вывести числа, которые делятся на 36?
 print(*range(36, 121, 36)) 

2) Второй максимум:
 from functools import reduce
def maxtwo(t, n):
a, b = t
return (n, a) if n > a else (a, n) if n > b else t
def maxmin(a, b): return (max(a, b), min(a, b))

seq = map(int, input().split())
print(reduce(maxtwo, seq, maxmin(next(seq), next(seq)))[1])
Пример. Ввод:
 10 2 39 80 21 2 40 
Вывод:
 40 

3)
 print(input().count(' ')) 

4) Без учёта пунктуации (т.е. "а" и "а?" воспринимаются, как разные слова):
 print(len(set(input().split()))) 
С учётом пунктуации придётся подключить регулярки:
 from re import split
print(len(set(split(r"\W+", input())) - {''}))
Пример. Ввод:
 ну, я как бы написал типа текст, чтобы как бы его, ну это, использовать для того, чтобы типа скормить входные данные программе, типа, как бы... 
Первая программа выведет 20 ("ну" и "ну," - разные слова, "типа" и "типа,", "бы" и "бы..." - тоже), вторая выведет 17.
Dilshod Alimov
Dilshod Alimov
87 571
Лучший ответ
Azizbek Toxtamirzayev скорее всего да, остальные задания осилите?
Azizbek Toxtamirzayev спасибо вам огромное, вы меня просто спасли, вы отличный программист ! :)
 #2
a = [10, 2, 39, 80, 21, 2, 40]
print(sorted(seq)[-2] if len(seq) > 1 else "None")
"""
#1) Напишите программу, которая выводит на экран все числа от 1 до 120, которые делятся на 4 и на 9.

#№1

for i in range(100):
if i % 3 == 0 and i % 5 == 0:
print(i)

#2)Написать программу, которая находит второй максимальный элемент в списке.

#№2

first_max = int(input())
second_max = int(input())
if first_max < second_max:
first_max, second_max = second_max, first_max
element = int(input())
while element != 0:
if element > first_max:
second_max, first_max = first_max, element
elif element > second_max:
second_max = element
element = int(input())
print(second_max)

#3)Написать программу, которая находит количество пробелов в заданной строке.

#№3

def check_space(string):
count = 0
for i in range(0, len(string)):
if string[i] == " ":
count += 1
return count
string = "Welcome to geeksforgeeks"
print("number of spaces ",check_space(string))

#4)Дан список слов, введенных с клавиатуры. Определить, сколько раз встречаются различные слова.

#№4

можно использовать Counter из модуля collections:
from collections import Counter
names = ['имя1', 'имя2', 'имя1', 'имя3', 'имя2', 'имя4']
names_counter = Counter(names)
for name in names_counter:
print(name, names_counter[name])

а можно без Counter...
names = ['имя1', 'имя2', 'имя1', 'имя3', 'имя2', 'имя4']
dict_names = {}
for item in names:
dict_names[item] = dict_names.get(item, 0) + 1
out = {data: count for data, count in dict_names.items() if count > 1}
print(out)
"""