2015-12-10 77 views
-2

您好我想檢查用戶輸入的字符串中是否有兩個重複的字符/字母旁邊的eachother ..我有一個簡單的代碼來檢查是否第一個字母和第二個字符串中的字母是相同的。檢查字符串中的重複字符/字母

def two_same(): 
    d = [] 
    while len(d) <= 1: 
     d = input("enter the same letter twice:") 
    if d[0] == d[1]: 
     return print(d[0]) 
two_same() 

但如何將我檢查的字符串,並從用戶輸入重複字母的所有字符。

+1

使用'for'循環。 – Blender

+0

所有你需要做的就是跟蹤最後一個字符並將其與當前循環進行比較,'return print(d [0])'也是無效的 –

回答

1

前面已經提到的意見,你應該使用一個循環:

def two_same(string) 
    for i in range(len(string)-1): 
     if string[i] == string[i+1]: 
     return True 
    return False 

result = "" 
while not two_same(result): 
    result = input("enter the same letter twice:") 
print(result) 
+0

是的,但我需要用戶輸入,所以我需要重複用戶輸入,直到他們給我一個字符串有兩個字符重複 – Sinoda

+0

編輯:我編輯了答案,以功能輸入。 – Randrian

+0

但這個函數接受一個字符串作爲參數,並且不要求用戶輸入 – Sinoda

0

的作品是使用重複字符語法檢​​查一個字符串包含相同字符的另一種方法。下面是一個PyUnit測試的代碼片段,它演示瞭如何使用幾個不同的字符串來實現,它們都包含一些逗號。

# simple test 
    test_string = "," 

    self.assertTrue(test_string.strip() == "," * len(test_string.strip()), 
        "Simple test failed") 

    # Slightly more complex test by adding spaces before and after 
    test_string = " ,,,,, " 

    self.assertTrue(test_string.strip() == "," * len(test_string.strip()), 
        "Slightly more complex test failed") 

    # Add a different character other than the character we're checking for 
    test_string = " ,,,,,,,,,a " 

    self.assertFalse(test_string.strip() == "," * len(test_string.strip()), 
        "Test failed, expected comparison to be false") 

    # Add a space in the middle 
    test_string = " ,,,,, ,,,, " 

    self.assertFalse(test_string.strip() == "," * len(test_string.strip()), 
        "Test failed, expected embedded spaces comparison to be false") 

    # To address embedded spaces, we could fix the test_string 
    # and remove all spaces and then run the comparison again 
    fixed_test_string = "".join(test_string.split()) 
    print("Fixed string contents: {}".format(fixed_test_string)) 
    self.assertTrue(fixed_test_string.strip() == "," * len(fixed_test_string.strip()), 
        "Test failed, expected fixed_test_string comparison to be True")