2014-03-30 94 views
0
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」「a」「n」「d」「w」「h」,當輸入「sand」時應該返回「s」「a」「n」「d」。 感謝爲什麼這個字符串處理不工作?

回答

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]) 
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'] 
+1

如果字有重複的字符,如'potato'這將失敗。 – Doorknob

+0

@ Doorknob,但是OP是不是隻想要他們輸入的字母?像hang子手一樣,不管角色實際發生多少次都沒有關係。 – sshashank124

+0

@門把手,也許我沒有正確理解你。你能舉個例子說明你的意思嗎?謝謝 – sshashank124

相關問題