2017-05-21 19 views
0

文字列を反復処理し、関数内で宣言されている文字列長を返します。文字列を反復し、文字列の "x"個の文字を返す

xとcharの2つのパラメータを受け取ります。この関数は、インデックス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

なぜJ ust ''bobsyouruncle' [0:5]'? –

答えて

3

list slicingでどうなりますか?ここで起こっていただきました

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

たちは文字のリストとして文字列を処理している、と私たちは私たちのリスト(文字列の最初の文字x)の最初のxの要素を与えることのpythonを指示しています。リストのスライスは、構文list[start:end]に従います(この場合、startは0になります)。これは、リストが0から始まるので、リストのスライスは実際にはインデックスが0(包括的)からx(非包含)までのすべての要素のリストを返します。

さらに詳しい説明は、this素晴らしい回答Greg Hewgillのリストスライスの仕組みを参照してください。

1

Pythonにはかなり強力な機能が組み込まれています。そのうちの1人(スライス)はあなたが求めているものとまったく同じです。

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

あなたは直接使用して、あなたの文字列を分割することができ、nはあなたが望む長さに:

new_string =文字列[n]を。

2

ラムダ機能を追加することができます。

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

print(yourFunction("bobsyouruncle", 5)) 

戻って参照するために

bobsy

Python3 Docs

Python course Doc

関連する問題