JYTHON / PYTHON - raw_input丢失字符串的第一个字符

时间:2014-05-30 06:10:45

标签: python string character jython raw-input

我正在读一个名字,你将在下面看到,但无论你输入什么,它都会失去第一个角色,例如,鲍勃'将成为' 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.")

1 个答案:

答案 0 :(得分:1)

您的代码存在一些问题。

首先,你不应该使用全局变量。将地址簿传递给您的函数会更有意义。别担心,只会提交参考资料,所以价格便宜。

其次,函数名(和除类之外的其他变量名)应该是小写的。

第三,无需在已经返回字符串的str()上调用raw_input()

第四,使用.format()字符串语法而不是%字符串格式。

第五,x似乎是来自AddressBookAll的字符串(这是一个猜测,因为您正在将PersonToFind与它进行比较)。我们希望AddressBookAll是一本字典,否则AddressBookAll[x]将失败。

第六,如果一个角色被丢弃在任何地方,它必须在printNow()中,而你却没有向我们展示。您的代码中没有其他地方可能会发生类似的事情。

第七,案件很重要。 Truetrue不同。 Successsuccess都没有。

第八,Python不是Java。例如,if不需要括号。