2014-05-02 95 views
0

为什么这个字符串处理不工作?为什么这个python 3字符串处理不工作?

当您输入"hectare",完整答案时,应打印"+2"。当只有"hect"是正确的,并且接下来的3个字母不正确时,打印应该是"+1"

目前我没有得到一个打印时,只有"hect"正确。

answer = "hectare" 
answerlen = int(len(answer)/2) 

test = str(input("enter it")) 


if test == answer: 
print("+2") 
else: 
    if test == answer[0:answerlen]: 
     print("+1") 
+0

在我不此刻”获取打印时,只得到“hect”是正确的。 – user3287552

+1

由于公顷是奇数编号,因此'int(7/2)'将产生3,'answer [0:3]'将导致'hec'而不是'hect'。 – Lafexlos

+0

@Lafexlos true,并使用'//'不会改变这一点。 OP,你可以使用'math.ceil'来获得所需的行为。 – jonrsharpe

回答

3

您的整体test比较的answer开始。请改为:

if test[:answerlen] == answer[:answerlen]: 

请注意,0是片的默认启动。

此外,您还可以简化使用整数除法:

answerlen = len(answer) // 2 

elif

if test == answer: 
    print("+2") 
elif test[:answerlen] == answer[:answerlen]: 
    print("+1") 

startswith

elif answer.startswith(test[:answerlen]): 
+0

啊哈,工作,欢呼。 10分钟后打勾 – user3287552

+1

我宁愿第二次比较阅读:'elif answer.startswith(test [:answerlen]):'摆脱笨拙的第二次切片操作。 – guidot

+0

@guidot编辑;感谢您的建议 – jonrsharpe

相关问题