以下代码的输出是什么?如果为空字符串,请解释原因?

时间:2019-06-14 14:49:45

标签: python python-3.x

我声明了一个字符串变量,并希望在切片运算符的帮助下访问某些字符,但是它显示出空的str作为输出。 请解释为什么它显示为空。

我尝试使用不同的结束索引进行打印,该索引对所有其他索引都有效,但是当结束索引变为0时失败。

s='0123456789'
print(s[2:-1:-1])

3 个答案:

答案 0 :(得分:1)

在Python切片中,-1表示“最后一个元素”。因此,对于一个10个字符的字符串,它等效于9。然后,由于您的步骤是-1,所以您以错误的方式进行切片,因此结果为空。

如果您想使用'210',则可以选择s[2::-1],尽管当结束符是变量时有点不方便。但是,有多种解决方法,例如s[0:3][::-1]

答案 1 :(得分:0)

请参阅:

2019-06-09 18:18:51.410 [info] [PUT /manage/projects/7qDjSk/prompts/3tUrF9] params=%{"project_uuid" => "7qDjSk", "prompt" => %{"html" => "<div>Test question 3</div>"}, "prompt_uuid" => "3tUrF9"} user=1 (Topher Hunt) status=302 redirected_to=/manage/projects/7qDjSk duration=21ms

第一个语句不打印任何内容的原因是因为 start 已经小于 end -如果要继续执行{{1} },您将超出数组的范围。请记住,>>> s='0123456789' >>> print(s[2:-1:-1]) >>> print(s[-1:2:-1]) 9876543 解析为-1

或者,换句话说,如果我告诉您从数组的第二个索引开始并向前移动直到您到达数组的最后一个索引,那将是没有意义的。毕竟,如果您向前走,您将朝数组的 front 前进,而不是 back

同时,如果我切换这些命令-“从最后一个索引开始,然后向前移动,直到达到第二个索引”,这是很合理的。

答案 2 :(得分:0)

第一个参数表示start_index,第二个参数表示end_index(空表示直到结束迭代),第三个参数是step。

您的预期输出:210

counter

输出:

s='0123456789'
print(s[2::-1])