精华内容
下载资源
问答
  • 字符串的切片、取值

    千次阅读 2018-06-25 23:06:33
    字符串的索引方式:1.从左往右以0开始。2.从右往左以-1开始。例如:z=hello hello正序01234倒序-5-4-3-2-1字符串取值单个字符串取值方式--->字符串变量名[索引的位置]如取z中的o--->print(z[4])截...

    字符串的索引方式:

    1.从左往右以0开始。

    2.从右往左以-1开始。

    例如:z=hello

     hello
    正序01234
    倒序-5-4-3-2-1

    字符串取值

    单个字符串取值方式--->字符串变量名[索引的位置]

    如取z中的o--->print(z[4])

    截段取值方式--->字符字符串变量名[字符串索引开始的位置:字符串索引结束]的位置+1]

    如取z中的ll--->print(z[2:4])


    切片:取值取左不取右

    print(z[2:4])---->输入ll      #正序

    print(z[-3:-1])---->输入ll      #反序

    print(z[-2:])---->输入lo      #反序

    注意:

    • 1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
    • 2、字符串可以用+运算符连接在一起,用*运算符重复。
    • 3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
    • 4、Python中的字符串不能改变。

    展开全文
  • python教程_小白入门/2020/7/28 P58 for····else语句的使用 P59 使用假设成立法求质数 ... P63 字符串的表示方式 P64 字符串的下标和切片 P65 查找相关的方法 P66 字符串查找和替换 P67 字符串分割相关方法

    python教程_小白入门/2020/7/28

    学习目标
    在这里插入图片描述

    P58 for····else语句的使用

    进阶题:
    1.统计101-200中素数的个数,并且输出所有的素数(素数又叫质数,就是只能被它自己和1整除的数)
    for…else: 当循环里的break没有被执行的时候,就会执行else的语句,for else看作是一整个循环,break跳出的时候,for 和 else 都跳出,break不执行的时候,代码按照从上到下再执行else
    1既不是质数,也不是合数,2是质数,3是质数

    count = 0
    for i in range(101 , 201):
        for j in range(2 , int(i ** 0.5)):
            if i % j == 0:
                # print(i , '是合数')
                break # break 放在哪个循环里,结束的就是哪个循环
        else:
            # for  else 语句,当循环里的break没有被执行的时候,就会执行else
            count += 1
            print(i , '是质数')
    print('质数的个数为:' , count)
    

    P59 使用假设成立法求质数

    # 2 -101
    for i in range(2 , 101):
        flag = True  # 假设每次的 i 都是一个质数
        for j in range(2 , int(i ** 0.5) + 1):
            if i % j == 0:
                # 除尽了,表示是一个合数,那flag 的值就要发生改变
                flag = False
                break
        if flag:
            print(i)
    
    # 以i = 9为例子,j in range (2,3)是不包括3 的,也就是9只能除2,除不尽,就判断了9是质数
    

    P60 使用计数法求质数

    for i in range(2 , 101):
        count = 0   # 假设这个数能被0个数字整除
        for j in range(2 , i):
            if i % j == 0:
                # 除尽了,是合数
                count += 1
        if count == 0:
            print(i , '是一个质数')
        else:
            print(i , '是一个合数,它能被' , count , '个数整除')
    
    
    

    P61 求斐波那契数列

    斐波那契数列:1,1,2,3,5,8,13,21,34·····后边的数是前两个数的和
    求斐波那契数列中第n的数的值

    # 斐波那契数列
    num1 = 1
    num2 = 1
    n = int(input('请输入n的值(n > 2):'))
    print(num1)
    print(num2)
    for i in range(1 , n - 1):
        sum = num1 + num2
        num1 = num2
        num2 = sum
        print(num2)
    print('第' , n , '个斐波那契数的值为:' , sum)
    

    P62 挑战练习

    九九乘法表

    # 九九乘法表for版
    # for i in range(1 , 10):
    #     for j in range(1 , i + 1):
    #         print(j , '*' , i , '=' , i * j ,end='\t',sep=' ')
    #     print()
    # 九九乘法表while版
    # j = 1
    # while j < 10:
    #     i = 1
    #     while i <= j:
    #         sum = i * j
    #         print(str(i) + ' * ' + str(j) + ' = ' + str(sum) , end='\t')
    #         i += 1
    #     j += 1
    #     print('   ')
    

    马的问题

    # 马的问题
    # 大马3个货,中马2个货,两个小马1个货,用100马驮100货,问大中小马各有多少个
    # 大马x,中马y,小马100 - x - y
    for x in range(0 , 100 // 3 + 1):
        for y in range(0 , 100 // 2 + 1):
            if x * 3 + y * 2 + (100 - x - y) / 2 == 100:
                print(x , y , (100 - x - y))
    

    纸的对折问题

    # 一张纸的厚度为0.08毫米,对折多少次之后能够达到珠穆朗玛峰的高度8848.13米
    # 0.08/1000等于m
    height = 0.08/1000
    count  = 0
    while True:
        height *= 2
        count += 1
        if height >= 8848.13:
            break
    
    print(count)
    

    P63 字符串的表示方式

    在python里可以使用一对单引号,双引号,或者一对三个双引号,一对三个单引号
    a = ‘hello’
    b = “world”
    c = ‘’‘你好’’’
    d = “”“世界”""
    最常用的就是一对单引号
    单双引号的使用没有特殊要求,如果里边有单外边就用双,如果里边有双外边就用单

    a = 'hello'
    b = "world"
    c = '''你好'''
    d = """世界"""
    # 如果字符串里还有双引号,外面就可以使用单引号
    m = '     xiaoming said :"I am xiaoming"     '
    print(m)
    #n = "     xiaoming said :"I am xiaoming"     "##报错,python会将离得最近的一对相同的引号视作一对
    x = "I'm xiaoming"
    print(x)
    # 单双引号的使用没有特殊要求,如果里边有单外边就用双,如果里边有双外边就用单
    # 字符串里的转义字符  \,作用是对\后面的字符进行转义
    # \'显示一个普通的单引号
    # \“显示一个普通的双引号
    # \n 表示一个换行
    # \t 表示一个制表符=四个空格键
    o = 'I\'m xiaoming'
    z = 'hello  \n world'
    # hello
    # world
    print(z)
    x1 = 'good mor\\ning'	# good mor\ning
    # \\表示一个普通的反斜杠
    print(x1)
    # 在字符串前加  r  在python里表示的是原生字符串
    x2 = r'hello \teacher'
    print(x2)
    # hello \teacher
    

    P64 字符串的下标和切片

    下标和切片
    step表示步长,整数代表从左往右,复数代表从右往左
    不管是从右往左还是从左往右,切片的规则都是包含start而不包含end

    # 下标 我们又称之为索引,表示第几个数据
    # 可迭代对象;str list tuple dict set range  都可以遍历
    # str list tuple 可以通过下标来获取或者操作数据
    # 字符串:一个一个的字符串在一起
    word = 'zhangsan!'
    # 在计算机里,下标都是从0开始的
    # 可以通过下标来获取或者修改指定位置的数据
    print(word[4])
    # 字符串是不可变的数据类型
    # 对于字符串的任何操作,都不会改变原有的字符串!!!
    #-------------------------------------------------------------------
    
    # 切片就是从字符串里复制一段指定的内容,生成一个新的字符串
    m = 'abcdefghijklmnopqrstuvwxyz'
    print(m[5])    # m[index]-----获取指定下标上的数据
    
    # 切片语法: m[start:end:step]---包含开头start而不包含结尾end
    print(m[2:9])
    # 如果只设置了start而不设置end就会从start 一直截到结尾
    print(m[2:])
    # 如果只设置了end而没有设置start 就会从开始一直截取到end -1,不包含end
    m[:9]
    # step 指的是步长,理解为间隔,每隔step-1个取一次
    print(m[3:15:2])
    # step的默认值就是1,步长不能是0,不然的话会报错
    print(m[3:15:1])
    # 步长可以为负数,代表的是从start 往左边找,找不到数据就会是空的
    m[3:15:-1]      # 没有数据
    
    print(m[15:3:-1])   # 包含start 而不包含end
    
    print(m[::])        # 从头到尾全部复制
    
    print(m[::-1])      # 倒叙
    
    print(m[-5:-9:-1])     # start,end为负数表示从右边数第几个,step默认的依旧是从左往右
    print(m[-9:-5])
    

    P65 查找相关的方法

    字符串常见的操作
    如果要使用一个我们不熟悉的方法怎么办?举例:我们可以仅记住一个方法find,按住ctrl点find方法,进去buitlin.py文件,再点小瞄准镜
    00
    01
    再重新ctrl+ find()方法,就会显示出所有有关字符串操作的方法,红色的是方法
    02

    x = 'abcdefghijklmn'
    # 使用内置函数 len 可以获取字符串的长度
    print(len(x))
    
    # 查找内容相关的方法find / index / rfind  / rindex  可以获取指定元素字符的下标
    print(x.find('l'))  # 11
    print(x.index('l')) # 11
    
    print(x.find('p'))  # -1 如果字符在字符串中不存在,结果是-1
    #print(x.index('p')) # 报错,如果字符在字符串中不存在,结果会报错
    
    x1 = 'asdfllkajsdfasdflkjl'
    print(x1.rfind('l'))    # 寻找字符串中符合的字符的最大的下标
    print(x1.rindex('l'))   # 寻找字符串中符合的字符的最大的下标
    
    

    P66 字符串查找和替换

    # startswith() 方法用来判断是否以。。。为开头
    # endswith() 方法用来判断是否以...为结尾
    print('hello'.startswith('h'))      # True
    print('hello'.startswith('he'))     # True
    print('hello'.endswith('o'))        # True
    
    # is开头的方法是用来判断的
    print('hadfa'.isalpha())    # True 判断字符串里边是否全部为字母
    print('asdf5asdf4'.isalpha())   # False  判断字符串里是否全部为字母
    
    print('12354'.isdigit())   # True 用来判断字符串里是否全部为数字
    print('good'.isdigit())    # True  用来判断字符串里是否全部为数字
    print('3.14'.isdigit())    # False 有小数点也是False
    
    # 判断用户的输入来进行数据类型调整
    num = input('请输入一个数字:')
    if num.isdigit():
        num = int(num)
    else:
        print(num)
    
    print('adf2asdf5f4'.isalnum())     # True   用来判断是否由数字和字母组成
    print('561654'.isalnum())          # True
    print('hello'.isalnum())           # True
    print('4 - 1'.isalnum())           # False   可以有数字和字母,但是不能有符号
    
    print('      '.isspace())   # True      用来判断是否是空格
    
    # count()  用来计算字符的出现的次数
    
    # replace() 方法,用来替换字符串,字符串不可变数据类型
    # 原本的字符串的内容不会发生改变,replace()方法是会生成一个新的字符串来保存替换后的结果
    word = 'hello'
    m = word.replace('l' , 'x')       # replace 将字符串里的l替换为x
    print(word)
    print(m)
    

    P67 字符串分割相关方法

    # split  splitlines partition rpartition
    # 字符串类型的数据,将字符串进行切片
    x = 'zhangsan-lisi-wangwu-zhaoliu-qianqi-liuba'
    y1 = xsplit('-')    # ['zhangsan','lisi','wangwu','zhaoliu','qianqi','liuba']
    print(y1)    # 切割以后的结果是一个列表
    z1 = x.rsplit('-')   # ['zhangsan','lisi','wangwu','zhaoliu','qianqi','liuba']
    print(z1)
    
    # 最大切割数,切出来两个,剩下的不切了
    y2 = x.split('-' , 2)  # ['zhangsan','lisi','wangwu-zhaoliu-qianqi-liuba']
    print(y2)
    z2 = x.rsplit('-' , 2) # 这个r所代表的是right,是从右边切
    # ['zhangsan-lisi-wangwu-zhaoliu','qianqi','liuba']
    print(z2)
    
    # partition 指定一个字符作为分隔符,分为三部分,前面一部分,分隔符一部分,后面一部分
    print('afasdfadbdfb'.partition('dbd'))  # [afasdfa,dbd,fb]
    # 就算有两个相同的分隔符,一样也是切割为3部分
    print('afasdfasbdfb'.partition('as'))   # [af,as,dfasbdfb]
    print('afasdfasbdfb'.rpartition('as'))  # 同样的原理,这里的r所代表的是right,代表的是右边
    # [afasdf,as,bdfb]
    
    
    # 获取文件名和后缀名
    file_name = '不要打开.mp4'
    print(file_name.partition('.'))
    
    file_name1 = '2020.12.12.mp4'
    print(file_name1.rpartition('.'))
    
    
    
    
    展开全文
  • 编译优化字符串常量:即是不变量新内存:开辟新空间可以使用中括号和下标来获取单个字符,或截取字符串:即 切片mystr[1](获取单个字符)-------------切片字符串:mystr[1:5](截取1下标到4下标的字符串 ...
    字符串常量池
    只要不是变量传递方式。带有字符串运算的都是新内存。
    Python是解释执行。没有做内存优化,编译优化
    字符串常量:即是不变的量
    新内存:开辟新空间


    可以使用中括号和下标来获取单个字符,或截取字符串:即 切片
    mystr[1](获取单个字符)
    -------------
    切片字符串:
    mystr[1:5](截取1下标到4下标的字符串 不包括最后一位)
    mystr[:6](截取从0到5下标的字符串)
    mystr[:](打出所有字符)
    mystr[3:](显示从3开始到最后一个字符,即第一个冒号后面什么都不写,表示到一个自然的结果)
    mystr[-2:](截取从后数第二个开始,到最后一个字符结束)
    mystr[3:2](如果前面大于后面,则不输出)
    mystr[-1:0:-1](固定语法 显示时进行倒数并不包含第一位)
    mystr[-1:0:-1](倒数显示所有值)
    mystr[::-1](同上)
    使用如下
    s='abcdefg'
     print(s[s.__len__()-1]
     print(s[-(s,__lwn__())])
     print(s[-5:-2])
     print(s[::-1])
    --------------
    字符串的一些用法:
    in(判断是否在字符串中存在bool)
    not in:(判断是否不存在与此字符串)
    r/R:(使得\n\t变为字符)
    --------------
    字符串格式化
    %s(格式化字符串)
    %d(格式化整数)
    %f(浮点数)
    如果只有一个%?,括号可省略
    使用如下
    s='今年'
    age=23
    print('%s今晚 请%s 去%s 吃%s 喝%s 消费%d 元'
          %('张三','李四','饭店','涮肉','啤酒',52))
    print('%s 天气不错'%'今天')
    print('{}{}岁'.format(s,age))
    #可以写对应单词如
    print('{name}小明{age}岁'.format(name=s,age=age))
    #也可以直接写内容值如
    print('{name}小明{age}岁'.format(name='今年',age='23'))
    #也可以添加数字如
    print('{0}小明{1}岁'.format(s,age))
    展开全文
  • Go语言中,数组、字符串切片是密切相关数据结构。 简介 Go语言赋值和函数传参,除了闭包是引用的方式对外部变量访问外,其他赋值和函数传参都是 值传递的方式。 它们底层原始数据有相同内存结构。 数组是一...

    Go语言中,数组、字符串、切片是密切相关的数据结构。

    简介

    Go语言的赋值和函数传参,除了闭包是引用的方式对外部变量访问外,其他赋值和函数传参都是 值传递的方式。
    它们底层原始数据有相同的内存结构。

    • 数组是一种值类型,数组本身的赋值和函数传递都是以整体复制的方式处理的。
    • 字符串底层数据对应的是字节数组,但是有只读属性;字符串赋值只是复制了数据地址和对应的长度,不会导致底层数据的复制。
    • 切片的结构和字符串类似,但是解除了只读限制。
      切片的底层数据对应数据类型的数组,但是每个切片有独立的长度和容量信息;
      切片的赋值和函数传参是将切片头信息部分按值传递。切片头部包含底层数据的指针,它的赋值不会导致底层数据的复制。

    数组

    数组的长度是数组类型的组成部分。不同长度的数组因为类型不同无法直接赋值。因此Go语言中很少直接使用数组。
    一个数组变量就是整个数组,而不是指向第一个元素的指针,
    长度为零的数组,在内存中不占用空间。可以用来管道同步(但是更倾向于匿名结构体)。
    数组类型时切片和字符串等结构的基础。

    字符串

    字符串长度不是字符串类型的一部分。
    字符串其实是一个结构体,由底层字节数组+字符串的字节长度组成。地层结构在reflect.StringHeader结构体中定义,字符串的复制也是该结构体的复制。
    可以将字符串数组看成是结构体数组。
    字符串支持切片操作,但是是只读的。
    rune只是int32的别名,并不是重新定义的类型。

    切片

    切片结构:reflect.SliceHeader结构(Data Len Cap)
    在开头追加成员一般都会导致内存的重新分配,而且会导致已有元素全部复制一遍:a=append([]int{1,2,3},a…)
    可以用copy+append来防止中间插入时创建临时切片
    a=append(a,0)
    copy(a[i+1:],a[i:])//a[i:]后移一个单位
    a[i]=x//设置插入的位置

    展开全文
  • 一、'#' 截取,保留右边字符,删除...# : 运算符,匹配左边第一个匹配字符或字符串; #*// : ‘*’ 在左边表示从左边开始删除第一个 ‘//’ 及左边所有字符,* 在右侧是无效; 显示结果:www.163.com/i...
  • 字符串切片

    2020-10-28 07:47:25
    获取字符串的一部分(子串),这个时候采取切片方式获取,切片需要在中括号[]中填入两个数字,中间用冒号分开,表示子串的开始位置和结束位置,并且这是半闭半开区间,不包括最后的位置。 ab = s[0:2] # 取字符...
  • 详解Python字符串切片

    2021-01-01 04:44:38
    这个时候呢,我们可以通过切片方式来截取出我们定义的字符串的一部分。 使用切片的时候我们有两种方式: 1.没有步长的简单切片 语法格式是这样的: 1.首先定义一格字符串,比如叫 Hebe,然后给它赋值 2. 截取字符...
  • 切片截取是python中字符串常见一些操作,我们会在这篇文章里详细介绍,切片截取作用是获取子字符或子字符串。实际上,我们要做就是使用索引,用冒号分隔两个索引,形式为:变量[头下标:尾下标],冒号之前...
  • 字符串:由0个或多个字符组成有序序列sequence。 一、字符串表示方式:2类4种 由一对单引号或双引号表示,该方式仅用于表示单行字符串 由一对三单引号或三双引号,该方式可以表示多行字符串 如果希望在字符串中...
  • ​在上一篇《手把手陪您学Python》7——字符串的索引中,我们初步了解了字符串的位置索引方法。之所以把索引和切片分开两篇写,上一篇也说了,是为了把切片方式和规则能够讲的更清楚,有助于我们应对未来在不同的...
  • Python字符串切片的使用

    千次阅读 2019-02-19 15:53:41
    字符串是由独立字符组成,可以通过切片( [ ] 和 [ : ] )操作访问。 以字符串’abcd’为例子,下表里面分别列出了使用正索引和负索引来定位字符情况。 取字符串中第几个字符 print “adcd”[0] 表示输出字符...
  • Python字符串切片

    2020-03-20 21:42:11
    字符串的索引编号有两种表示方式 顺序索引,从起始元素到末尾元素,第一个起始元素索引为0,末尾元素索引为 字符串长度减1 逆序索引,从末尾元素到起始元素,末尾元素索引为 -1,每个元素索引编号-1,以此类推 ...
  • 切片截取是Python中字符串常见一些操作,我们会在这篇文章里详细介绍,切片截取作用是获取子字符或子字符串。实际上,我们要做就是使用索引,用冒号分隔两个索引,形式为:变量[头下标:尾下标],冒号之前...
  • golang中数组、字符串切片-数组

    千次阅读 2018-10-23 09:55:44
    数组统一概述数组数组定义语义说明数组迭代其他...  Go语言中数组、字符串切片三者是密切相关数据结构。这三种数据类型,在底层原始数据有着相同内存结构,在上层,因为语法限制而有着不同行为表现。 ...
  • Python中列表、元组、字典、字符串切片操作 我们引入一个新概念:数据结构 数据结构是通过某种方式组织在一起数据元素集合,这些数据元素可以是数字或字符,甚至可以是其他数据结构,在python中,最基本...
  • 这个时候呢,我们可以通过切片方式来截取出我们定义的字符串的一部分。使用切片的时候我们有两种方式: 1.没有步长的简单切片 语法格式是这样的: 1.首先定义一格字符串,比如叫s,然后给它赋值 2. 截取字符串中的...
  • Python之字符串切片

    2019-10-06 07:05:27
    通过切片操作(slice)的方式来截取出我们定义的字符串的一部分。 使用一对方括号、起始偏移量start、终止偏移量end 以及可选的步长step 来定义一个分片。 格式: [start:end:step] [ : ] 提取从开头(默认位置0...
  • 数组本身赋值和传参都是以整体复制的方式处理,所以为深拷贝,在函数内对数组进行操作,不会影响原数组。 package main import ( fmt ) func forRange(a [3]int){ for k,v := range a{ fmt.Printf(%d:%d\n,...
  • 字符串的索引 python中的字符串有两种方式索引: 从左到右,从0开始以次增长 从右到左,从-1开始依次减少 ...字符串的切片 python中用冒号分隔两个索引,形式为“变量[头下标:尾下标]”,截取范围是左闭...
  • 同时记录了字符串的常用操作。 ''' 字符串 / 列表 / 元组 的切片操作,方式都一样,本段以字符串为例子 基本语法: obj.[start:end:step] 取值范围为 [start - end),左闭右开,step为步长(默认大小为1,方向从...
  • 字符串对象和切片

    2019-09-16 19:36:16
    变量名=“要输入的字符串” 被引号引住内容叫做字符串(单引号、双引号、三引号) |-- 字符串对象常用方法 ['capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', '...
  • golang 字符串切片去重

    千次阅读 2019-03-02 15:38:31
    实现目的:实现字符串切片去重,只是两个字符完全相同时,去除一个。 实现方式:考虑两种,一种是常规双重循环去除,另一种是利用mapkey唯一性实现。 1 通过双重循环来过滤重复元素 方法1, 思路:利用for...
  • 数据结构是通过某种方式组织在一起数据元素集合,这些数据元素可以是数字或字符,甚至可以是其他数据结构,在python中,最基本数据结构是序列,序列中每个元素匾被分配一个序号——即元素位置,也称为索引...
  • “回文”是指正读反读都能读通句子,它是古今中外都有一种修辞方式和文字游戏,如“我为人人,人人为我”等。 在数学中也有这样一类数字有这样特征,成为回文数(palindrome number)。 设n是一任意自然数。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 664
精华内容 265
关键字:

字符串的切片方式