Тестовое задание, дано:
def analyze_sales(input_strings):
'code'
lines = []
while True:
try:
line = input()
if line == "":
break
except EOFError:
break
lines.append(line)
for product in analyze_sales(lines):
print(product)
Нужно вывести список товаров, чья средняя цена превышает заданный порог.
Формат ввода:
apple,100,200,150
orange,80,90,85
70
70 это порог.
Формат вывода:
apple,150.0
orange,85.0
С первой частью кода понятно, можно так:
def analyze_sales(input_strings):
res_int = [int(i) for i in input_strings.split(',') if i.isdigit()]
average = sum(map(int, res_int)) / len(res_int)
res_str = ''
for i in input_strings:
if i.isalpha():
res_str = ''.join([res_str, i])
Можно более изящно, как подсказал Aragorn
Aragorn :
def analyze_sales(input_strings):
parts = input_strings.split(',')
name = parts[0]
prices = list(map(int, parts[1:]))
average_price = sum(prices) / len(prices)
Дальше нужно все-равно прописывать блок со списками и инпутом(в тесте он в конце кода).
Я дошел до :
def analyze_sales(input_strings):
parts = input_strings.split(',')
name = parts[0]
prices = list(map(int, parts[1:]))
average_price = sum(prices) / len(prices)
lines = []
while True:
line = input()
if line == '':
break
lines.append(line)
limit = int(lines[-1])
products = lines[:-1]
# results = []
# for product in products:
# result = analyze_sales(product)
# if result:
# results.append(result)
if average_price > limit:
return f'{name},{average_price}'
return None
То что закомментировано - не правильно. Нужно еще список results крутануть в цикле, чтобы вытащить элементы из products и как то выйти на на финал тестового кода.