我是Python的新手,正在开发一个简单的项目,其中一部分应该搜索用户定义的变量,如果找到,则根据找到的行返回一个字符串。
我已经阅读了许多帖子,这些帖子将我引导到我拥有的代码,但是在运行时,虽然我没有收到错误,但代码会继续到下一部分。在这种情况下,我省略了以下部分,但如果单独运行,则在输入变量之后中断。
import csv #CSV File Handling
#Define variables for customer file reading and appending
custData = open('custData.csv', 'a+')
custFields = ['ContactLast','ContactFirst','Company','Credit','Phone','Address','City','State','Zip']
reader = csv.DictReader(custData, delimiter=',')
writer = csv.DictWriter(custData, fieldnames=custFields)
search = ''
#Open the file
with custData:
#Display the Welcome Message and Main Menu
mainmenugo = 'Y'
while (mainmenugo.upper() == 'Y'):
print ('-------------------- What would you like to do? ------------------\n'
'--- (1) Lookup Account (2) New Account (quit) Shutdown ---\n'
'------------------------------------------------------------------')
mainmenugo = 'n' #Stop the loop from itirating forever on start
mainmenuselect = input('Type your selection and press return : ')
if mainmenuselect == '1': ## Account Options Mode
search = input('Enter the contact last name to search : ')
for row in reader:
if search == row['ContactLast']:
print (row['Company'], 'has a balance of $', row['Credit'], '. What would you like to do?')
为清楚起见,省略了部分代码,但这就是为什么我按原样设置它,尽管我确信有更简单的方法可以解决它。我尝试了一些不同的东西,但我真的不知道从哪里开始,因为我得到的这个错误很少,但没有输出。谢谢!
答案 0 :(得分:0)
我认为您遇到了以下问题。 Python 3中的input()
将评估用户输入,有效地将用户输入1转换为整数1
,然后您尝试与字符串'1'
进行比较。
换句话说,这是正在发生的事情:
In [1]: search = input('Enter the contact last name to search : ')
Enter the contact last name to search : 1
In [2]: type(search)
Out[2]: int
In [3]: search == '1'
Out[3]: False
在您的情况下,如果用户输入1
,则if mainmenuselect == '1':
比较将是假的。