2017-02-01 5 views
-1

だから、Pythonの文字列の最初の文字以外のすべてを返す方法を理解しています。私はそれを特定の方法でコーディングするのがなぜ機能しないのか知りたい。Pythonの文字列の最初の文字以外のすべてを返す

- :私の教授は

...それは次のようになり、文字列の最初の文字以外のすべてを返すために= '庭'

[1 LEN(A)1]を私に言いました

しかし、これをインタプリタで実行すると、私は

「arden」ではなく「arde」を取得します。

私は、len(a) - 1が5を返し、aの5番目のインデックスがnであることを知っています。私が言うのもあれば

のようなもの[1] + [2] + [3] + [4] + [5]

I戻っ...

'アーデン' 。

私は何が欠けていますか?私はこれがちょっとしたPythonのニュアンスなのだと感じています。私はこれをメモしておく必要があります。私は何か重要なものを見逃していないことを確認したかったのです。ありがとう!!

+0

Pythonでの配列の索引付けは、ゼロベースです – EngineerCamp

+0

スライスにはエンドポイントが含まれません。 – user2357112

+0

ありがとう2357112. – bastwendo

答えて

0

Pythonでの配列インデックスはゼロベースです。

試してみてください。 = '庭'

a[:-1] 

出力:あなたは開始インデックスを指定しない場合は、ゼロが想定されていることを

garde 

注意。

0

A Pythonのスライス[J:k]は位置からJ、ゼロベースのインデックスで、位置kを含むまでではなくなります。したがって、[1:5]は要素1、2、3、& 4 - 5(これは第6の要素です)が含まれていません。

欠落しているスライス値が「合理的な」終わりであると想定されるFOONは、すでに述べたように、これを行うための標準的な方法は、単に

a[1:] 

です通り:左側に0、-1(最後の要素)、間隔は1(通常は省略)です。したがって、文字列またはリスト全体をコピーする典型的な方法は、

new = old[:] 
0

です。すでにEnginnerCampによって回答されていますが、ここでは役立つイラストがあります。アレイはゼロから始まり

ので、文字列が

0 1 2 3 4 5 
g a r d e n 

として格納され、この文字列の長さは、であるが、我々はゼロからカウントを開始するので、最後の文字が場所であります文字列配列。

a[1:len(a) - 1]を実行すると、与える指示は次のとおりです。

take string a      'garden' 
start at position 1    'a' (because the 'g' is at position 0) 
find the length of a    6 
subtract 1       5 
end at the 5th item BUT start at 0 'e' 

だからあなたの出力文字列は、あなたのコードからである除いあなたはそれが、その後のように自然になって、で開始するあなたを失望されますa[1:]

を使用する必要があり、最初の文字をすべてを取得するにはarde

ですあなたは練習を得る。

関連する問題