编程看不懂,为啥要减一
为啥 s = len(s) 要减1 本帖最后由 jackz007 于 2021-3-14 13:53 编辑因为一个长度为 20 字符串的索引范围是 0 ~ 19,其中,第一个字符索引是 0,最后一个索引是 19,如果用 20 进行索引,就会下标越界。
反转字符串还能更简单
print(input('请输入一段文本:')[::-1]) 字符串的下标(或叫索引 index)和 列表一样,都是从 0 开始的。故下标最大为 len(s) - 1
可以把 字符串,看做是 一个个字符的列表。
故 获取/截取字符的方法,也和列表基本一样的。。^_ 因为len()函数是从1开始计算长度的,而我们后面调用i时需要调用至0,也就是s,如果直接调用i=len(s),那么是无法完全调用列表中的元素,在这里也就是输入的字符,所以i需要进行减一处理。 len(s)是获取字符串的长度,因为python里字符串下标是从0开始计算,所以最后一个字符的位置下标就是‘字符串长度-1’ 列表的第一个原始是0号,从零开始 字符串是以'\0'结尾。举个例子,insert的存取方式为'i','n','s','e','r','t','\0' 可以将字符串理解为列表,列表的index都是从0开始的 这个问题不复杂。就是字符串,是一个一个字符像烤串一样穿起来的组合。字符串内的每个字符,都是有坐标index的
这个len,就是计算字符串长度的函数,意思就是输入10个字符,长度就是10
之所以要-1,是因为字符坐标是从0开始的,也就是一段字符串,最后的那个字符的坐标index应该是len(s)-1
还是上门的长度问题,因为是从0开始计算下标,所以,一段10个字符的字符串,下标应该是从0到9一共10个数字。字符串的最后一个字符的坐标就出来了
while循环,循环输出s,i的数值已经在前面两行有一个数字结果。第一个输出的,就是字符串的最后一个字符,然后循环i-1
{:5_100:} {:5_93:} 因为字符串(列表)的index从0开始,假设 a = '1435'
index 0 1 2 3
len(a)等于4,但是a的index中没有4,最大的是3,比4小1。所以要减一。 因为字符串(列表)的index从0开始,假设 a = '1435'
index 0 1 2 3
len(a)等于4,但是a的index中没有4,最大的是3,比4小1。所以要减一 名字只有七个字 发表于 2021-3-28 15:19
因为字符串(列表)的index从0开始,假设 a = '1435'
...
sorry,多发了一遍 列表是从0开始的,列表的实际长度比列表显示的长度大一
页:
[1]