С клавиатуры вводится 7-значное число. Если четных цифр в нем больше, чем нечетных, то найти сумму всех его цифр, если нечетных больше, то найти произведение 1 3 и 6 цифры. #a = [6,2,3,4,5,6,7] a = input("Введите 7-значное число через пробел: ") a.split(a) print (a.split()) b = 0 c = 0 f = 1 for i in a: if i%2 == 0: b+= 1 else: c+=1 if b>c: #f = sum(a) for i in a: f = f + i print(f) else: r = a[0]*a[2]*a[5] print(r) Не могу исправить ошибку
Ответы
Ответ:
В начале разберем метод split()
Его можно использовать так:
a = input('Введите число через пробел: ').split(), он сразу после ввода преобзарует строку в список.
потому что строка a.split() ничего не дает.
Используя мое предложение, можно будет выводить просто a и он будет уже как список.
Разберем ошибку TypeError
TypeError это ошибка типа данных, то есть мы не можем для цифр применять методы для строк.
В вашем случае он возникает, когда вы делаете цикл
for i in a:
и после проверку
if i % 2 == 0:
b += 1
Как раз-таки из-за того, что вы не правильно использовали метод split(), строка не превратилась в список
Также вы пытаетесь текст поделить на 2 и узнать остаток.
Ввод:
Ввод семизначного числа надо сделать так
a = [int(ii) for ii in input('Введите семизначное число через пробел: ').split()]
Он сразу будет преобразовывать все числа внутри списка.
Тогда мы избежим ошибку.
Также вы в циклах дважды используете i, лучше изменить название переменной, чтобы она не повторялась.
Все остальное верно, вам надо просто поменять название переменных и изменить ввод, на более грамотный
# 2 Создайте список песен, время звучаниях которых больше 5 минут
# 3 Создайте новый словарь тех песен, в название которых состоит из одного слова
violator_songs = {
'World in My Eyes': 4.76,
'Sweetest Perfection': 5.43,
'Personal Jesus': 4.56,
'Halo': 4.30,
'Waiting for the Night': 6.07,
'Enjoy the Silence': 4.6,
'Policy of Truth': 4.88,
'Blue Dress': 4.18,
'Clean': 5.68,
}
print(f'Название песни: {nam}, Время: {tame}')
#1 Выведите общее время звучания всех песен.
print('Общее время звучания всех песен {}'.format(sum(violator_songs.values())))
#print(sum(violator_songs.values()))
# 3 Создайте новый словарь тех песен, в название которых состоит из одного слова
d = {nam: violator_songs[nam] for nam in violator_songs.keys() if not ' ' in nam}
print('Название состоит из одного слова: ',d)
не могу понять как написать проверку на звучание больше 5 минут . Помогите пожалуйста.
Спасибо.