2017-06-18 13 views
0

以下のCODEとOUTPUTを参照してください。 3番目のprint文にはOUTPUTはありません。 print(long_word [3:7])のような変更されたprint文は出力(elin)を与えます。Jupiter Notebook、Python3印刷機能:出力なし、エラーなし

# [ ] print the first 4 letters of long_word 
# [ ] print the first 4 letters of long_word in reverse 
# [ ] print the last 4 letters of long_word in reverse 
# [ ] print the letters spanning indexes 3 to 6 of long_word in Reverse 
long_word = "timeline" 
print(long_word[:4]) 
print(long_word[3::-1]) 
print(long_word[3:7:-1]) 
print(long_word[-1:-5:-1]) 

与えるものOUTPUT

time 
emit 

enil 

?この質問の状況も以下のリンクで提起されています。現在は未解決です。

答えて

1

Pythonのスライス操作は[start:end:step]で、step=-1のときは逆方向の値を取得します。

したがって、print(long_word[3::-1])を使用する場合、逆方向フラグstep=-1によって決定されるのは実際にインデックス3からインデックス0までです。しかし、print(long_word[3:7:-1])を使用する場合、インデックス3からインデックス7までを表します。これは逆の順序ではなく、衝突です。

+0

これはprint(long_word [6:2:-1])にする必要があります。 1つは上記の衝突の場合のエラーを期待するでしょうか? – Pankaj113

+0

'print(long_word [2:15])'または 'print(long_word [3:1])'を使うことができるので、エラーではないと思います。合理的な範囲ではありません。 – danche

0

あなたは以下のコードしようとは逆に、最後の4つの文字を印刷する場合:

long_word = "Characteristics" 

print(long_word[14:10:-1])  

結果:scit

14が始まる文字列のインデックス
10が終わる文字列インデックス
であるが - 1を使用して文字列を1つずつ逆転させます。

関連する問題