意外的打印输出与简单的程序进行字符串比较

时间:2015-11-16 17:49:52

标签: python python-3.x

我正在制作一个程序,要求用户输入他们想知道列表中位置的单词。但是我遇到了一个问题。

当我运行我的程序提供单词“ask”作为输入时,它不会打印句子“你的号码在 num 'st位置!“的。我希望它能够被打印两次,因为单词在列表中的两个位置恰好是那些位置。

相反,输出是:

1
10
None

这是我的代码:

food = "ask not what your country can do for you ask what you can do for your country"
food2 = food.split()
print (food)

word = (input("Enter Word: "))

for (num, x) in enumerate(list(food2)):
    if word == x:
        print (num + 1)
        if num == "1" and "10" :
            print ("Your number is in the ",num,"st position!")

2 个答案:

答案 0 :(得分:3)

列表(food2)没有必要

如果num ==“1”和“10”:您正在检查带有整数的数字,然后查看“10”是否为真,这始终是真的,因为它始终存在。你为什么需要这个陈述?

food = "ask not what your country can do for you ask what you can do for your country"
food2 = food.split()
print(food)

word = input("Enter Word: ")

for (num, x) in enumerate(food2):
    if word == x:
        print ("Your word is in position ",num+1,"!")

答案 1 :(得分:-1)

使用raw_input代替input。此外,“10”在Python中总是如此,因此检查它是否毫无意义。