在此先向前辈们和同学们道个歉,一是没有认真地专研前辈们的精文,二是对一些读者造成了一定程度上的困扰,为此鄙人深感抱歉,现在对"问题_001_Vivian"中不严谨的地方进行修改:

  1. s = s[:-1]这个地方没有摸到字符串一些操作的本质 ===》这个应该是Python里面特有的一个“运算符的重载”(C++中的说法),这里就先要说一下这个[]的作用的什么。

  在众多语言中都有数组这一概念,那么字符串也就被语言解释器看成是由字符组成的数组了,所以就可以同过“[]” + “下标或者说叫索引”的方式来访问或更改相应位置上的元素。如果我们想要获取某一段字符串应该怎么办呢?每次都写一个循环然后当索引达到end后再break?那岂不是很麻烦,有悖于Python的面向对象的思想?所以Python为我们提供了一个新的“[]”的用法:string[i:j] ===》获取string字符串中从索引为i,到索引为j的子字符串,范围是[i, j),i和j的默认值分别是0和end。这里面还有一个特殊的用法:负数,一般用于j,其绝对值表示从右往左数的索引。eg:

 # str类的string[i:j]的用法
my_string = ""
# i和j的默认值分别是0和end
print(my_string[:]) # 输出的结果为:0123456789
# 当j为负数的时候
print(my_string[1:-2]) # 输出的结果为:1234567

  本来打算讲到这里就截止的,但是有同学私信说还是不够完善,确实是这样,因为这里还有第三个变量k来表示步长,所以完整的表达为string[i:j:k] ===》在范围为:[i, j)中,每k个字符输出一个字符。

  所谓步长k就是:每k个字符输出一个,也就是每次输出都要跳过(k - 1)个字符,默认值为1,eg:

 string = ""
print(string[0:len(string):1]) # 输出:0123456789
print(string[0:len(string):2]) # 输出:02468

  

最新文章

  1. css块级元素,内联元素,内联块状元素
  2. springmvc和struts2的差别
  3. 图像分类之特征学习ECCV-2010 Tutorial: Feature Learning for Image Classification
  4. [转] MATLAB快捷键
  5. ECC校验优化之路
  6. 各种乱码,编码问题设置方法整理(UTF-8)
  7. mysql多实例的配置(转)
  8. Nginx负载均衡反向代理 后端Nginx获取客户端真实IP
  9. 【转】你必须了解的Session的本质
  10. DOM基础(三)
  11. lambda高级进阶--组合函数
  12. 1.1 Python是一种什么样的语言
  13. 1.4 PCI总线的中断机制
  14. C#判断某个类是否派生某个类或是否实现了某个接口
  15. Guava新增集合类型-Bimap
  16. Docker(4):Docker集中化web界面管理平台—Shipyard部署
  17. js-dot.js
  18. Canvas锯齿问题
  19. JavaScript中this 详解
  20. Python 函数(一)

热门文章

  1. MongoDB学习(三)
  2. SAAS 何以“免费”实现盈利
  3. 背英语单词很困难,不妨学习一下词根词缀吧(每天10个词根、词缀)Part 3
  4. USACO Training Section 1.2 双重回文数 Dual Palindrom
  5. POJ 2136 Vertical Histogram(当时写的比较恶心,优化一下)
  6. java的Timer定时器任务
  7. xml出现Exception in thread "main" java.lang.NullPointerException
  8. F - Watching Fireworks is Fun
  9. SpringBoot:模板引擎 thymeleaf、ContentNegotiatingViewResolver、格式化转换器
  10. 【HBase】协处理器是什么?又能干什么?怎么用?