为什么这个字符串处理不起作用?

时间:2014-03-30 14:31:15

标签: python string python-3.x

inp = input("Enter word")
inplen = len(inp)

text = "sandwich"
textlen = len(text)

if inplen >= textlen:
    if inp[0] == text[0]:
        print("s")
if inplen >= textlen:
    if inp[1] == text[1]:
        print("a")
if inplen >= textlen:
    if inp[2] == text[2]:
        print("n")
if inplen >= textlen:
    if inp[3] == text[3]:
        print("d")
if inplen >= textlen:        
    if inp[4] == text[4]:
        print("w")
if inplen >= textlen:        
    if inp[5] == text[5]:
        print("i")
if inplen >= textlen:        
    if inp[6] == text[6]:
        print("c")
if inplen >= textlen:
    if inp[7] == text[7]:
        print("h")

当我没有输入完整的"三明治时,我没有得到输出。我试图做的是该程序应该打印所有输入的正确字母,以匹配" sandwhich"。所以当进入" sandwooh"他们的节目应该回归" s" "" " N" " d" " W" " H"当进入" sand"它应该回归" s" "" " N" " d&#34 ;. 感谢

2 个答案:

答案 0 :(得分:2)

这里的循环会容易得多:

text = "sandwich"
inp = input("Enter word")

# a range from zero to the length of the shortest string
# (if one string is longer than the other, we want the length of the shortest
#  one so that it doesn't try to check characters that don't exist)
for i in range(min(len(text), len(inp))):
    # print if corresponding characters match
    if inp[i] == text[i]:
        print(text[i])

答案 1 :(得分:0)

您可以按照以下方式执行此操作:

in_text = str(input("Enter word: "))
print(list(set(input) & set('sandwich')))

set(a) & set(b)会返回一个包含ab共有的元素的集合。 list()然后将它们转换为列表然后打印它们。这是一个例子:

>>> print(list(set('sandstorm') & set('sandwich')))
['s', 'a', 'n', 'd']