2017-05-21 61 views
0

我試圖迭代字符串並返回已在函數中聲明的字符串長度。遍歷字符串並在字符串中返回「x」個字符

它會收到兩個參數,x和字符。該函數將返回一個字符串,該字符串由從索引0到索引x-1的字符中的值組成。

我想收到的回報是

print rangeLoopStringParam1("bobsyouruncle", 5) 
# -> "bobsy" 
print rangeLoopStringParam1("supercalifragilisticexpialidoshus", 8) 
# -> "supercal" 

這是我到目前爲止的代碼,但我覺得我不是真的很遠。任何人都可以指導我解決這個問題?

def rangeLoopStringParam1(chars, x): 
    for i in range(0, x, len(chars)): 
     chars += chars 
    return chars 
+2

爲什麼不Ĵ ''bobsyouruncle'[0:5]'? –

回答

3

list slicing怎麼了?

def stringRange(chars, x): 
    return chars[:x] 

怎麼回事這裏是我們治療的字符串作爲字符的列表,我們告訴蟒蛇給我們列表的第一x元素(字符串的第一x字符)。請記住,列表切片遵循語法list[start:end](在我們的示例中,start隱含爲0)。這意味着,由於列表從0開始,列表切片確實返回索引從0(含)到x(不含)的所有元素的列表。

有關更好的更詳細的解釋,請參閱thisGreg Hewgill有關列表切片工作方式的很好回答。

1

Python有一些非常強大的內置功能。其中一個(切片)完全符合你的要求。其中n是你想要的長度:

new_string =字符串[:N]

def rangeLoopStringParam1(chars, x): 
    return chars[:x] 
0

您可以直接使用你的字符串分割。

2

請注意,您可以執行lambda函數。

yourFunction = lambda string, num: string[:num] 

print(yourFunction("bobsyouruncle", 5)) 

回報

bobsy

供參考:

Python3 Docs

Python course Doc