zoukankan      html  css  js  c++  java
  • 补充_001_问题_001_Vivian

      在此先向前辈们和同学们道个歉,一是没有认真地专研前辈们的精文,二是对一些读者造成了一定程度上的困扰,为此鄙人深感抱歉,现在对"问题_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:

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

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

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

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

     

      

  • 相关阅读:
    iOS Xcode制作模板类
    图片变形的抗锯齿处理方法
    iOS 9 分屏多任务:入门(中文版)
    iOS应用国际化教程(2014版)
    GitHub Top 100 简介
    iOS @synthesize var = _var 变量前置下划线解释
    @synthesize obj=_obj的意义详解 @property和@synthesize
    git 教程(14)--解决冲突
    git 教程(13)--创建与合并分支
    C++基础知识(3)---new 和 delete
  • 原文地址:https://www.cnblogs.com/SimbaWang/p/12271650.html
Copyright © 2011-2022 走看看