2017-05-25 31 views
0

這裏是我的問題:返回一個特定的字符

我在使用EDX Python中的教程來的。練習要求我:

編寫函數稱爲third_index,它接受一個字符串作爲參數,並返回字符串的第三個字符。如果用戶輸入少於3個字符的字符串,則返回「太短」。

def third_index(myString): 
    if len(myString) >= 3: 
     for i in myString: 
      count = 0 
      while not count == 3: 
       count =+ 1 
      return i 
    else: 
     return "too short" # Write your function here! 

test1 = third_index("Hello World!") 
print(test1) 

當我嘗試運行此,我得到這樣的結果: ^ h

我的理論是,循環無法正常工作。它停在第一個循環。

感謝您的幫助,專家! :)

+0

嘗試將'my in myString:'更改爲'return myString [2]'。字符串有索引,從零開始。所以指數2指的是第三個位置(0,1,2)。你可以把索引稱爲'something [index]'。 – Mikael

+0

你的代碼是錯誤的...在for循環中,當處理第一個字符時,你只需返回。 while循環什麼都不做,只是將計數加到3. – Yang

+0

謝謝你們!幫助我成爲你們中的一員。希望能在未來趕上你。 – lloydyu24

回答

0

您可以在字符串中使用數組索引得到第三個字符。請記住,第一個字符的索引是零!

下面是一些示例代碼:

def third_index(myString): 
    if len(myString)<3: 
     print("Too short!") 
    else: 
     print(myString[2]) 

test1 = third_index("Hello World!") 

輸出:

l 

祝你好運,歡迎到Python的世界!

0

你的功能可以更簡單:

def third_index(myString): 
    if len(myString) < 3: 
     return "too short" 
    return myString[2] 
+0

myString [3]實際上會返回_4th_字符!注意這一點 - 字符串是零索引的,與任何數組類型相同 – DatHydroGuy

+0

@DatHydroGuy,實際上它的真正快速解決問題哈哈,謝謝! – Netwave

+0

太棒了。謝謝! – lloydyu24

0

錯誤處理:

def third_index(s): 
    try: 
     return s[2] 
    except: 
     return "too short" 

隨着條件:

def third_index(s): 
    if len(s) < 3: 
     return "too short" 
    else: 
     return s[2] 
+1

太棒了!謝謝Max! – lloydyu24

+1

再一次,在第一個例子中,請注意,'return s [3]'這一行實際上會返回_4th_字符! – DatHydroGuy

+0

已修復!不能相信我錯過了! – Max

相關問題