Python

Программирование 8 класс

помогите решить задачи в питоне, пожалуйста. решить нужно с помощью списков и множеств
максимально простенько
AK
Andrei K
152
Здравствуйте, Дарья.
Вот решение 2-й задачи:
 # Ввожу в программу строку символов 
string = input()
signs = ".,;:!?"

# В этой переменной я хочу хранить
# знаки пунктуации, которые встретил
# в строке string. set() - это я так
# присвоил пустое множество.
string_signs = set()
# В count я хочу хранить количество
# знаков пунктуации. Для начала - обнуляю
# эту переменную.
count = 0
# Запускаю цикл, в котором char в каждой итерации
# цикла записываю очередной символ из строки string
for char in string:
# Если char содержится в sign, тогда...
if char in signs:
# Добавляю этот знак пунктуации в множество
string_signs.add(char)
# Увеличиваю количество встретившихся знаков
# пунктуации
count += 1
# Вывожу на экран результаты
print(string_signs)
print(count)

А вот решение 3-й задачи:
 # Задаю список с числами 
numbers = [1, 7, 1, 4, 3, 7, 1, 1, 7, 7, 7, 3]
print(numbers)

# Создаю вспомогательный словарь для
# хранения для каждого символа - количества
# повторений этого символа в numbers
counts = dict()
# Создаю переменную - результат работы
# программы. Тип её - множество
result = set()

# Запускаю цикл, в котором n присваиваю
# значения из numbers
for n in numbers:
# Если число n уже есть в результате,
if n in result:
# ...тогда вычисляю число, на сколько
# это n нужно умножить

# Если число n есть в counts, ...
if n in counts:
# ...тогда увеличиваю на 1 количество
# повторений для этого числа - в словаре
# counts
counts[n] = counts[n] + 1
# Получаю сколько нужно повторить в виде
# строки число n
c = counts[n]
# а вот если числа n нету в counts, ...
else:
# ...тогда записываю, что число n встречается
# уже во второй раз
counts[n] = 2
# И записываю, что число n нужно взять 2 раза
c = 2
# Добавляю в результат число n в виде
# строки, повторённое "c" раз
result.add(str(n)*c)
# Если числа n нету в результате, то...
else:
# ...добавляю число n в результат
result.add(n)
# Вывожу результат на экран
print(result)
Леонид Брунов
Леонид Брунов
11 615
Лучший ответ
С пересечением не уверен, вроде бы пересечение множеств делается через &...
Но там по моему и не должно быть никаких пересечений
 g,s = 'ауоыиэяюёе',0 
one,two,three = [],[],[]
def f(a):
global s
for i in a:
if i in g: s += 1
while s 20 and n.lower().startswith('а'): one += [n]
if ' ' in n: two += [n]
if len(n) < 8 and n.lower().startswith('п'): three += [n]
print('one', one)
print('two', two)
print('three', three)
print(set(one) & set(two) & set(three))
print(set(one) | set(two) | set(three))