Одной петли достаточно:
fruits = []
while True:
fruit = input('Input fruit name: ')
weight = input('Input weight (pounds): ')
fruits.append('{}, {} lbs'.format(fruit, weight))
action = input('Do you want to add another fruit [y/n]? ').lower()
if action == 'n':
break
print('The fruit list: ')
for fruit in sorted(fruits):
print(fruit)
Вывод:
Input fruit name: Banana
Input weight (pounds): 11
Do you want to add another fruit [y/n]? y
Input fruit name: Apple
Input weight (pounds): 6
Do you want to add another fruit [y/n]? n
The fruit list:
Apple, 6 lbs
Banana, 11 lbs
Ответ на меня, но мне удалось найти прекрасный библиотека для OLE/COM, звонящего в компиляторы не-Microsoft: disphelper.
(это доступно от sourceforge.net в соответствии с разрешающей лицензией BSD).
Это работает и в C и в C++ (и таким образом любой другой язык с привязкой C также). Это использует синтаксис printf/scanf-like строки формата .
(Вы передаете то, что Вы хотите, пока Вы указываете его в строке формата, в отличие от этого XYDispDriver, который требует, чтобы аргументы точно соответствовали тому независимо от того, что указано в библиотеке типов).
я изменил его немного для получения его, также компилируют в соответствии с Linux с WineGCC (для создания собственного эльфа Linux из кода Win32), и обработать "касательно" вызовов автоматически (запас disthelper требует, чтобы программист установил его собственный ВАРИАНТ).
Моя исправленная версия и патчи доступны как ветвление на GitHub:
И вот мои патчи:
Проблема со Средством просмотра Объекта Ole/Com, упакованным с Visual Studio и Windows SDKs, состоит в том, что это производит поврежденный.IDL из.DLL, который не может далее быть скомпилирован MIDL в.H/.CPP пару.
собственное переопределение Вина OleViewer в настоящее время нестабильно и отказывает при попытке пользоваться теми библиотеками.
Я думаю, что необходимо смочь использовать бесплатный инструмент Средство просмотра Объекта Ole/Com для создания заголовочных файлов.