zoukankan      html  css  js  c++  java
  • 【2020Python修炼记8】Python语法入门—基本数据类型_字符串

    基本数据类型——字符串类型str

    1、定义

    name = 'Tony'
    
    address = ''上海市浦东新区''
    
    sex = '''男
               喜欢面条'''

     单引号、双引号、多引号,都可以定义字符串,本质上是没有区别的,不过需要注意:

    #1、需要考虑引号嵌套的配对问题
    msg = "My name is Tony , I'm 18 years old!" 
    #内层有单引号,外层就需要用双引号
    
    #2、多引号可以写多行字符串
    msg = '''
            天下只有两种人。
    比如一串葡萄到手,一种人挑最好的先吃,另一种人把最好的留到最后吃。
            照例第一种人应该乐观,因为他每吃一颗都是吃剩的葡萄里最好的;
    第二种人应该悲观,因为他每吃一颗都是吃剩的葡萄里最坏的。
            不过事实却适得其反,缘故是第二种人还有希望,第一种人只有回忆。
          '''

    2、作用

      用来记录人的名字,家庭住址,性别等描述性质的状态

    3、类型转换

    # str可以把任意其他类型都转成字符串
    >>> 
    >>> res=str({'a':1})
    >>> print(res,type(res))
    {'a': 1} <class 'str'>
    >>> 

     4、使用:

    4.1 数学运算

    数字可以进行加减乘除等运算,字符串呢?也可以,但只能进行"相加"和"相乘"运算。
    >>> name = 'tony'
    >>> age = '18'
    >>> name + age #相加其实就是简单的字符串拼接
    'tony18' 
    >>> name * 5 #相乘就相当于将字符串相加了5次
    'tonytonytonytonytony'

    4.2 内置方法

    4.2.1、按索引取值——(正向取+反向取) :只能取

    >>> msg='hello world'
    >>> #正向取
    >>> print(msg[0])
    h
    >>> print(msg[5])
     
    >>> #反向取
    >>> print(msg[-1])
    d
    >>> #只能取,不能改写
    >>> msg[0]='H'
    Traceback (most recent call last):
      File "<pyshell#86>", line 1, in <module>
        msg[0]='H'
    TypeError: 'str' object does not support item assignment
    >>> 

    4.2.2、切片——索引的拓展应用,从一个大字符串中拷贝出一个子字符串

    >>> # 顾头不顾尾 # [x:y],--指的是 [x,y)左闭右开的区间 # x--开始的索引号,
    # y--在索引号[y-1]结束,取到索引号[y-1] 所指的字符就结束
     [0:5],意为 从第一个索引[0]所指的字符开始,取到索引[4],即5个字符
    
    >>> 
    >>> msg='hello world'
    >>> res=msg[0:5]
    >>> print(res)
    hello
    >>> print(msg)
    hello world
    >>> 
    
    >>> #步长
    # 依次读取索引 0 2 4 所对应的字符 
    # [x:y:z],
    # x--开始的索引号,
    # y--在索引号[y-1]结束,即取到索引号[y-1] 所指的字符就结束,
    # z--间隔的索引个数,即从索引[x]开始,每隔z个间隔,依次读取,直到索引号[y-1]结束
     [0:5:2],意为 从第一个索引[0]所指的字符开始,每隔2个间隔,读取一个字符,直到取到索引[4],即3个字符
    
    >>> res=msg[0:5:2] 
    >>> print(res)
    hlo
    >>>  
    >>> #反向步长(了解)
    >>> msg='hello world'
    >>> res=msg[5:0:-1]
    >>> print(res)
     olle
    >>> 
    
    >>> msg='hello world'
    >>> res=msg[:]    # [:]不输入,默认为 res=msg[0:11]
    >>> print(res)
    hello world
    >>> res=msg[::-1]  # 把字符串倒过来读取
    >>> print(res)
    dlrow olleh
    >>> 

    4.2.3、长度 len()

    >>> 
    >>> msg='hello world'
    >>> print(len(msg))
    11
    >>> 

    4.2.4、成员运算in和not in

    >>> 
    >>> #判断一个子字符串是否存在于一个大字符串中
    >>> print("alex" in "alex is sb")
    True
    >>> print("alex" not in "alex is sb")
    False
    >>> print(not "alex" in "alex is sb") # 不推荐使用,语法没错,只是不符合一般逻辑思维习惯
    False
    >>> 

    4.2.5、移除字符串左右两侧的符号strip(‘字符’)

               #注意,字符要用引号括起来

    >>> 
    >>> # 默认去掉的空格
    >>> msg='      egon      '
    >>> res=msg.strip()
    >>> print(msg) # 不会改变原值
          egon      
    >>> print(res) # 去除了空格,是产生了新值
    egon
    >>> 
    >>> #去掉其他符号
    >>> msg='*******egon****'
    >>> print(msg.strip('*'))
    egon
    >>> msg='@@@egon@@*'
    >>> print(msg.strip('*'))
    @@@egon@@
    >>> print(msg.strip('*@'))
    egon
    >>> 
    >>> msg='@@@egon@ @ *'
    >>> print(msg.strip('*@ '))
    egon
    >>> 
    >>> # 了解:strip只去除两边,不去中间
    >>> msg='*******eg*****on****'
    >>> print(msg.strip('*'))
    eg*****on
    >>> msg='**/*=-**egon**-=()**'
    >>> print(msg.strip('*/-=()'))
    egon
    >>> 
    >>> # 应用_自动清除用户手抖输入的多余空格  >>> in_name= input('please input your name:').strip()
    please input yuor name:' cc'     # 为何failed login,原因是这里输入的结果为字符串 ' cc',而不 字符串 cc,后面的条件判断是字符串 cc >>> in_code= input('please input your code:').strip()
    please input yuor code:' 123'    # 为何failed login,原因是这里输入的结果为字符串 ' 123',而不是 字符串 123,后面的条件判断是字符串 123
    >>> if in_name == 'cc'and in_code == '123':
        print('login successfully')
    else:
        print('failed login')
    failed login
    >>> in_name= input('please input yuor name:').strip()
    please input yuor name:cc
    >>> in_code= input('please input yuor code:').strip()
    please input yuor code:123
    >>> if in_name == 'cc' and in_code == '123':
        print('login successfully')
    else:
        print('failed login')
    
        
    login successfully
    ——————————————————————————
    >>> in_name= input('please input yuor name:').strip() please input yuor name:cc >>> in_code= input('please input yuor code:').strip() please input yuor code: 123  #末尾有输入一个空格 >>> if in_name == 'cc'and in_code == '123':     print('login successfully') else:     print('failed login')
        login successfully ——————————————————————————— >>> in_name= input('please input yuor name:').strip() please input yuor name:'cc' # 为何failed login,原因是这里输入的结果为字符串 ' cc',而不 字符串 cc,后面的条件判断是字符串 cc >>> in_code= input('please input yuor code:').strip() please input yuor code:123 >>> >>> if in_name == 'cc'and in_code == '123': print('login successfully') else: print('failed login') failed login ————————————————————————————— >>> in_name= input('please input yuor name:').strip() please input yuor name:cc >>> in_code= input('please input yuor code:').strip() please input yuor code:123 >>> if in_name == 'cc' and in_code == 123: #将123的引号去掉,则为整型。但是用户输入的是字符串类型,所以后面判断结果为假 print('login successfully') else: print('failed login') failed login —————————— >>> in_name= input('please input yuor name:').strip() please input yuor name:cc >>> in_code= input('please input yuor code:').strip() please input yuor code:123 >>> in_code=int(in_code) #用户输入的密码,是字符串类型,将其强制转换为整型,再进行条件判断,则结果为真 >>> if in_name == 'cc'and in_code == 123: print('login successfully') else: print('failed login') login successfully >>>

    4.2.6、切分split:把一个字符串按照某种分隔符进行切分,得到一个列表           # # 默认分隔符是空格

    >>> # 默认分隔符是空格
    >>> info='cat love mili'
    >>> res=info.split()
    >>> print(res)
    ['cat', 'love', 'mili']
    
    >>> # 指定分隔符
    >>> info='cat:love:mili'
    >>> res=info.split(':')
    >>> print(res)
    ['cat', 'love', 'mili']
    
    >>> # 指定分隔次数(了解)
    >>> info='cat:love:mili'
    >>> res=info.split(':',1)
    >>> print(res)
    ['cat', 'love:mili']
    >>> 

    4.2.7、循环

    >>> 循环输出,即一直循环输出,逐字输出,直到输出完毕
    >>> info='cat love mili'
    >>> for x in info:
        print(x)
    
        
    c
    a
    t
     
    l
    o
    v
    e
     
    m
    i
    l
    i
    >>> 

    4.3 需要掌握的其他应用

    4.3.1、strip,lstrip,rstrip

    >>> msg='*******egon****'
    >>> print(msg.strip('*'))
    egon
    >>> print(msg.lstrip('*')) #去除left左侧
    egon****
    >>> print(msg.rstrip('*')) #去除right右侧
    *******egon

    4.3.2、lower,upper

    >>>
    >>> msg='AAAAAegondddASSss'
    >>> print(msg.lower()) #全部转换成小写
    aaaaaegondddassss
    
    >>> print(msg.upper())#全部转换成大写
    AAAAAEGONDDDASSSS
    >>> 

    4.3.3、startswith,endswith——判断字符串的开头或结尾的子字符

    >>> 
    >>> print('cat love mili'.startswith('cat'))
    True
    >>> print('cat love mili'.startswith('mili'))
    False
    >>> print('cat love mili'.endswith('mili'))
    True
    >>> print('cat love mili'.endswith('cat'))
    False
    >>> 

    4.3.4、format——赋值

    >>> #逐一将format后面的值赋给{}
    >>> res='{} {} {}'.format('cc','18','mili')
    >>> print(res)
    cc 18 mili
    
    >>> #按照 format后面的值的索引,赋值给对应索引号的{}
    >>> res='{1} {0} {1}'.format('cc','18','mili')
    >>> print(res)
    18 cc 18
    >>> res='{0} {2} {1}'.format('cc','18','mili')
    >>> print(res)
    cc mili 18
    
    >>> #按照 format后面的变量名称,赋值给对应变量名称的{}
    >>> res='{name} {age} {lover}'.format(lover='mili',name='cc',age='18')
    >>> print(res)
    cc 18 mili
    >>> 

    4.3.5、split,rsplit:将字符串切成列表

    >>> info='cat:love:mili'
    >>> print(info.split(':',1))
    ['cat', 'love:mili']
    >>> print(info.rsplit(':',1))#从右侧开始切片
    ['cat:love', 'mili']
    >>> 

    4.3.6、join: 把列表拼接成字符串

    >>>连接字符串的三种方式:
    
    >>> l=['cat','love','mili']
    >>> res=l[0]+":"+l[1]+":"+l[2]
    >>> print(res)
    cat:love:mili
    
    >>> res=':'.join(l)# 按照某个分隔符号,把元素全为字符串的列表拼接成一个大字符串
    >>> print(res)
    cat:love:mili
    
    >>> ':'.join(l)
    'cat:love:mili'
    >>> 

    4.3.7、replace

    >>> info='cat love mili love cat'
    >>> print(info.replace('cat','CC')) #未指定个数,默认将全部'cat'替换为'CC'
    CC love mili love CC
    
    >>> info='cat love mili love cat'
    >>> print(info.replace('cat','CC',)) #未输入替换个数,默认将全部'cat'替换为'CC'
    CC love mili love CC
    
    >>> info='cat love mili love cat'
    >>> print(info.replace('cat','CC',1)) #输入替换个数为1,将第一个'cat'替换为'CC'
    CC love mili love cat
    
    >>> info='cat love mili love cat'
    >>> print(info.replace('cat','CC',2)) #输入替换个数为‘cat’的总数,将全部'cat'替换为'CC'
    CC love mili love CC
    
    >>> info='cat love mili love cat'
    >>> print(info.replace('cat','CC',3)) #输入替换个数超过‘cat’的总数,将全部'cat'替换为'CC'
    CC love mili love CC

    4.3.8、isdigit

    >>> 
    >>> # 判断字符串是否由纯数字组成
    >>> print('123'.isdigit())
    True
    >>> print('12.3'.isdigit())
    False
    >>> 
    >>>
    >>> age=input('请输入你的年龄:').strip()
    请输入你的年龄:19
    >>> if age.isdigit():
        age=int(age)
        if age > 18:
            print('猜大了')
        elif age < 18:
            print('猜小了')
        else:
            print('猜对了')
    else:
        print('请输入数字')
    
        
    猜大了
    >>> 

    4.4 其他应用的了解

    4.4.1、find,rfind,index,rindex,count

    # msg='hello egon hahaha'
    # 找到返回起始索引
    # print(msg.find('e')) # 返回要查找的字符串在大字符串中的起始索引
    # print(msg.find('egon'))
    # print(msg.index('e'))
    # print(msg.index('egon'))
    # 找不到
    # print(msg.find('xxx')) # 返回-1,代表找不到
    # print(msg.index('xxx')) # 抛出异常
    
    # msg='hello egon hahaha egon、 egon'
    # print(msg.count('egon'))

    4.4.2、center,ljust,rjust,zfill

    # print('egon'.center(50,'*'))
    # print('egon'.ljust(50,'*'))
    # print('egon'.rjust(50,'*'))
    # print('egon'.zfill(10))

    4.4.3、expandtabs

    # msg='hello	world'
    # print(msg.expandtabs(2)) # 设置制表符代表的空格数为2

    4.4.4、captalize,swapcase,title

    # print("hello world egon".capitalize())
    # print("Hello WorLd EGon".swapcase())
    # print("hello world egon".title())

    4.4.5、is数字系列

    4.4.6、is其他

    # print('abc'.islower())
    # print('ABC'.isupper())
    # print('Hello World'.istitle())
    # print('123123aadsf'.isalnum()) # 字符串由字母或数字组成结果为True
    # print('ad'.isalpha()) # 字符串由由字母组成结果为True
    # print('     '.isspace()) # 字符串由空格组成结果为True
    # print('print'.isidentifier())
    # print('age_of_egon'.isidentifier())
    # print('1age_of_egon'.isidentifier())
    
    
    num1=b'4' #bytes
    num2=u'4' #unicode,python3中无需加u就是unicode
    num3='' #中文数字
    num4='' #罗马数字
    
    # isdigit只能识别:num1、num2
    # print(num1.isdigit()) # True
    # print(num2.isdigit()) # True
    # print(num3.isdigit()) # False
    # print(num4.isdigit()) # False
    
    
    
    # isnumberic可以识别:num2、num3、num4
    # print(num2.isnumeric()) # True
    # print(num3.isnumeric()) # True
    # print(num4.isnumeric()) # True
    
    # isdecimal只能识别:num2
    print(num2.isdecimal()) # True
    print(num3.isdecimal()) # False
    print(num4.isdecimal()) # False

    5、格式化字符串的四种方法

    https://zhuanlan.zhihu.com/p/110406030

  • 相关阅读:
    TSQL语句 创建表
    数据库设计
    WampServer
    表单验证之相等验证
    表单验证之非空验证
    遗忘的知识点
    JavaScript函数
    JS之数组
    JS的分支与循环语句
    JavaScript基础语法要点总结
  • 原文地址:https://www.cnblogs.com/bigorangecc/p/12461576.html
Copyright © 2011-2022 走看看