我正在读一个名字,你将在下面看到,但无论你输入什么,它都会失去第一个角色,例如,鲍勃'将成为' ob'。因此,我无法将用户的输入与他们搜索的内容进行比较,从而打破了整个程序。
def Find() :
global AddressBookAll
Success = false
PersonToFind = str(raw_input("\nEnter the nickname of the person you would like to find: "))
for x in AddressBookAll :
if(x == PersonToFind) :
success = true
printNow("\n%s" %(x))
for y in AddressBookAll[x] :
printNow("%s" %(y))
if(Success == false) :
printNow("\nNot Found.")
答案 0 :(得分:1)
您的代码存在一些问题。
首先,你不应该使用全局变量。将地址簿传递给您的函数会更有意义。别担心,只会提交参考资料,所以价格便宜。
其次,函数名(和除类之外的其他变量名)应该是小写的。
第三,无需在已经返回字符串的str()
上调用raw_input()
。
第四,使用.format()
字符串语法而不是%
字符串格式。
第五,x
似乎是来自AddressBookAll
的字符串(这是一个猜测,因为您正在将PersonToFind
与它进行比较)。我们希望AddressBookAll
是一本字典,否则AddressBookAll[x]
将失败。
第六,如果一个角色被丢弃在任何地方,它必须在printNow()
中,而你却没有向我们展示。您的代码中没有其他地方可能会发生类似的事情。
第七,案件很重要。 True
与true
不同。 Success
和success
都没有。
if
不需要括号。