#python
Вопрос:
Я должен написать программу на python для решения следующей проблемы
Напишите полную и синтаксически правильную программу на Python для решения следующей проблемы: Напишите программу для владельца местной кофейни, который хочет иметь возможность контролировать свой инвентарь. Программа должна быть написана в соответствии со следующими спецификациями:
- Запишите следующие данные во внешний файл, назовите файл coffeeInventory.txt Описание Фунты Светлого Жаркого 15 Среднего Жаркого 21 Ароматизированное Жаркое 10 Темное Жаркое 12 Коста-Рика Тарразу 18
- Вам не нужно писать таблицу, только данные
- Прочтите в записях, которые вы только что написали coffeeInventory.txt и выведите их на экран и подсчитайте общее количество фунтов кофе
- Добавьте эти записи в файл Гватемала Антигуа 22 Смесь для дома 25 Смесь для дома без кофеина 16
- Измените файл, разрешив владельцу удалить данные из файла: a. Попросите владельца ввести описание для удаления b. Если описание существует, удалите название кофе и количество. Если описание не найдено, отобразите сообщение: Этот элемент не был найден в файле.
- Измените файл, разрешив владельцу удалить данные из файла: a. Попросите владельца ввести описание для удаления b. Если описание существует, удалите название кофе и количество c. Замените название и количество кофе, удаленные на шаге b, попросив пользователя ввести новое название кофе и количество d. Если описание не найдено, отобразите сообщение: Этот элемент не был найден в файле.
это то, что у меня есть до сих пор
cof= open('coffeeInventory.txt', 'w')
cof.write('Blonde Roast: 15 poundsn')
cof.write('Medium Roast: 21 poundsn')
cof.write('Flavored Roast: 10 poundsn')
cof.write('Dark Roast: 12 poundsn')
cof.write('Costa Rica Tarrazu: 18 poundsn')
cof.close()
cof=open('coffeeInventory.txt', 'r')
cof_read=cof.read()
cof.close()
sum_lb=15 21 10 12 18
cof=open('coffeeInventory.txt', 'a')
cof.write('Guatemala Antigua: 22 poundsn')
cof.write('House Blend: 25 poundsn')
cof.write('Decaf House Blend: 16 poundsn')
cof.close()
sum_lb=sum_lb 22 25 16
cof=open('coffeeInventory.txt', 'r')
cof_read=cof.read()
cof.close()
print(cof_read)
print('Sum of pounds of coffee: ', sum_lb)
delete=input('Enter a coffee description to delete it: ')
cof=open('coffeeInventory.txt', 'r')
cof_read=cof.readlines()
cof.close()
new_cof=open('coffeeInventory.txt', 'w')
for line in cof_read:
if delete.lower().replace(' ','') not in line.lower().replace(' ',''):
new_cof.write(line)
else:
print("That coffee does not exist")
cof.close()
new_description=input("Enter a new coffee description and its weight in pounds.")
new_cof=open('coffeeInventory.txt', 'a')
new_cof.write(new_description)
new_cof.close()
new_cof=open('coffeeInventory.txt', 'r')
print(new_cof.read())
new_cof.close()
Проблема, с которой я сталкиваюсь, заключается в том, что строка That coffee does not exist
выводится для каждой повторенной строки, а не только один раз. Как мне сделать так, чтобы он распечатывался только после того, как весь файл будет повторен?
Комментарии:
1. Вы распечатали
delete.lower().replace(' ','')
и проверили, то же ли это
Ответ №1:
Все, что вам нужно, — это флажок, чтобы сохранить, был ли найден кофе.
found = False
for line in cof_read:
if delete.lower().replace(' ','') not in line.lower().replace(' ',''):
new_cof.write(line)
else:
found = True
if not found:
print("That coffee does not exist")
Более оптимизированный способ заключается в следующем. Это предполагает, что в файле нет дублирующего описания кофе.
key = delete.lower().replace(' ','')
for line in cof_read:
if found or (key not in line.lower().replace(' ','')):
Комментарии:
1. Большое Вам спасибо!