Я работаю над проектом программирования, где мне нужно создать FAQ, который позволяет пользователю добавлять новые записи, а также удалять существующие записи. Пока все функции работают правильно, но у меня возникла проблема. После того, как пользователь выберет добавление новой записи, запись будет успешно добавлена. Однако, если они выбирают вариант добавления еще одной записи, программа просто зацикливается, как если бы она больше не вызывала функцию. Я прочитал свои учебники и поискал в Интернете, но не нашел решения. У меня также есть проблема с получением исключения для печати моего заявления, но это не критический фактор. Я не ищу прямого ответа, который можно просто скопировать в код, просто пример для go. Любая помощь приветствуется. Код ниже:
import pyinputplus as pyip
# Defines variables used in program
done = False #loop for input on menu
userQuestion = ''
userAnswer = ''
# Creates the menu for user interacion
menu = '''
===========================
Frequently Asked Quesstions
===========================
1: Exit
2: List FAQ's
3: Add FAQ
4: Delete FAQ
'''
###############################################
# Creates dictionary and sets default values for FAQ for functionality
faq = {
'North Korea': 'Is afraid of clowns',
'Climate change': 'It is a lie.',
'America': 'Is burning.'
}
###############################################
# Function that prints a list of the current FAQs
def display_Faq():
print('\nFrequently Asked Questions\n==========================')
for question in faq:
print('Question: ', question, '\nAnswer: ', faq[question], '\n')
print()
###############################################
# Function that adds to the FAQ based on user input
def Add_Faq():
global userQuestion
global userAnswer
while userQuestion not in faq:
try:
userQuestion = input('\nPlease enter a question for the FAQs: ')
userAnswer = input('\nPlease enter the answer: ')
faq[userQuestion] = userAnswer
print('\nEntry has been added to the FAQs.')
break
except:
print(str(userQuestion) + ' already exists in FAQs, please rephrase.\n')
###############################################
# Function that checks user input against FAQ and deletes entries
def Del_Faq():
global userQuestion
userQuestion = input('\nEnter an entry to delete: ')
if userQuestion in faq:
del faq[userQuestion]
print(str(userQuestion) + ' has been deleted from the FAQs')
else:
print(str(userQustion) + ' not exist in the FAQs, no changes have been made.')
###############################################
# Actual program that runs based off user input
while not done:
print(menu)
try:
selection = pyip.inputInt(prompt = '\nPlease enter menu item 1-4: ', min=1, max=4)
if selection == 1:
done = True
elif selection == 2:
display_Faq()
elif selection == 3:
Add_Faq()
elif selection == 4:
Del_Faq()
except pyip.PyInputPlusException:
print('Please check your input and try again')
continue