3 回答

TA貢獻1856條經(jīng)驗 獲得超17個贊
問題是 userQuestion 沒有重置為空字符串,因此userQuestion not in faq
在您第一次調(diào)用 Add_faq() 后將為 false,因此程序?qū)⒂肋h不會在第一次迭代后進入 while 循環(huán)。

TA貢獻1785條經(jīng)驗 獲得超8個贊
這真是一個好項目!您已經(jīng)正確地發(fā)現(xiàn)了導致問題的模塊,這很好。在 add_faq() 中,您將錯誤的變量設(shè)置為全局變量,此處已修復:
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 faq
while True:
userQuestion = input('\nPlease enter a question for the FAQs: ')
userAnswer = input('\nPlease enter the answer: ')
if userQuestion not in faq:
faq[userQuestion] = userAnswer
print('\nEntry has been added to the FAQs.')
break
else:
print(str(userQuestion) + ' already exists in FAQs, please rephrase.\n')
###############################################
# Function that checks user input against FAQ and deletes entries
def Del_Faq():
global faq
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

TA貢獻1827條經(jīng)驗 獲得超4個贊
所以我覺得自己很愚蠢,但我在發(fā)布后大約 20 分鐘發(fā)現(xiàn)了我的錯誤。感謝 Viggy 的回復。在閱讀和編碼 3 個多小時后,我有點精疲力盡,所有東西都模糊不清,我感到很沮喪,哈哈。
添加回答
舉報