• python学习笔记(四)- 常用的字符串的方法


    一、常用的字符串方法(一):(字符串是不能被修改的)

      1)a.strip()   #默认去掉字符串两边的空格和换行符

    a = '  字符串  
    
     '
    c = a.strip()
    a.lstrip()  #默认去掉字符串左边的空格和换行符
    a.rstrip()  #默认去掉字符串右边的空格和换行符

    #如果strip()方法指定一个开头或者结尾的值,那么去掉这两个值,前后有空格都不能去

    words = 'today is a wonderful    day'
    print(words.strip('day'))  #只能去掉开头的day或者结尾的day

       

      2)words.count('a')  #统计字符串出现的次数

    print(words.count('a'))  #统计字符串出现的次数

      3)words.index('ia')  #找某个字符串的下标,如果元素不存在会报错

    print(words.index('z'))  #找下标,如果元素找不到的话,会报错

      4)words.find('ia')  #找某个字符串的下标,如果元素不存返回-1

    print(words.find('z')) #找下标,如果元素找不到的话,返回-1

      5)replace()替换字符串(常用)

    print(words.replace('day','DAY'))  #替换字符串

       6)#isdigit()判断字符串是否全为纯数字,返回True/False

    print(words.isdigit()) #判断字符串是否为纯数字 0-9
    if number.isdigit() and int(number)!=0:   #判断一个数是否是正整数,这个方法包含0,所以生成的数量不能是0
        pass

     7)#isalpha()判断字符串是否全为汉字字母

    username = 'abcde11'
    print(username.isalpha())  #False

     8)#isalnum()判断字符串是否全是汉字或字母或数字只要没有特殊符号

    username = 'abcde11##'
    print(username.isalnum())  #有特殊符号,返回False

     

     9)#islower()判段如果字符串包含了字母这些字母都是小写字母(没有大写的)

    username = 'bbaaa#1'
    print(username.islower())  #有特殊符号,也返回Ture

     

     10)#isupper()判段如果字符串包含了字母这些字母全是大写字母(没有小写的)

    username = 'B#1'
    print(username.isupper())  #有特殊符号,也返回Ture

     

     11)#判断是否以某个字符串开头

    print(words.startswith('https'))

     

      12)#判断是否以某个字符串结尾

    print(words.endswith('.jpg'))   #是否以.jpg结尾

     

      13)#将字符串变成大写/小写

    print(words.upper())   #变成大写
    print(words.lower())   #变成小写

    14)将字符串里的字母大写变成小写,小写变成大写 

    print(a.swapcase())

    二、字符串的常用方法(二):

    #想要将list转换为str不要通过str()强制转换,因为转换后的第一个元素是中括号[

    lis = ['a','b','c']
    sl = str(lis)
    print(sl)   #相当于sl = " ['a','b','c'] "
    print(sl[0])  #转换后第一个元素是[

      >>>['a', 'b', 'c']
            [                 #转换后第一个元素是[

     

      1)res = ''.join(l)   

      ①把一个list变成了字符串

      ②通过引号中的某个字符串把list中的每个元素连接起来

      ③只要是可以循环list、字符串、元组等,join都能把里面的每个元素连接起来

    lista = ['zhang','liu','liang']
    res = ''.join(lista)   #默认空格连接
    
    res2 = 'N'.join(lista)  #用引号中的字符串连接起来
    print(res,res2)
    
    >>> zhangliuliang zhangNliuNliang

     join拼接字符串:只能是字符串,将多个字符串放在一个list里面

    name = 'zhangsan'
    pwd = '123456'
    c = '北京市' 
    all = ','.join([name,pwd,c])   #先要将字符串放进list中(因为jion只能有一个参数,相当于一个list['zhangsan','123456','北京市'])
    print(all)

     

      2)s. split() 分割字符串

          s. split(',')   #按照引号中的字符串或分隔符,分割字符串

          s. split()   #括号中没有传值的话,按照空格分割

    names = 'zhangsan,zili,caomi'
    name_list = names.split(',')  #以逗号分割字符串
    
    name_2 = names.split('a')   #以字符串中的‘a’来分割
    print(name_list)  #字符串分割后,返回一个list
    
    print(name_2)
    
    >>> ['zhangsan', 'zili', 'caomi']
    
    >>> ['zh', 'ngs', 'n,zili,c', 'omi']  #以a分割,a就没有了

    3)s.format 字符串格式化

    age = 18
    name = 'zhangsan'
    sex = 'male'
    sql = "insert into user VALUES ('{name}','{sex}',{age});"
    new_sql = sql.format(age=age,sex=sex,name=name)
    print(new_sql)
    
    >>> insert into user VALUES ('zhangsan','male',18);

    4)s.center(50,'*')  #

    print('欢迎登录'.center(50,'*')) #不够50个字符,两边以“*”补齐

     >>> ***********************欢迎登录***********************

    5)'xx'.zfill() 字符串的方法:补零

    print('3'.zfill(4))  #’3’字符串不足4位的在前面补零

    >>> 0003

    三、string模块的字符串方法:

    import string
    print(string.ascii_lowercase)  #所有的小写字母
    print(string.ascii_uppercase)  #所有的大写字母
    print(string.digits)           #所有的数字
    print(string.ascii_letters)    #所有的大写字母和小写字母
    print(string.punctuation)      #所有的特殊字符

    【例1】:

    # 校验密码里面是否包含
    # 数字、大写字母、小写字母、特殊符号
    import string
    nums_set = set(string.digits)
    upper_set = set(string.ascii_uppercase)
    lower_set = set(string.ascii_lowercase)
    pun = set(string.punctuation)
    for i in range(5):
        pwd=input('请输入密码:').strip()
        pwd_set = set(pwd)
        if pwd_set & nums_set and pwd_set & upper_set and pwd_set & lower_set and pwd_set & pun:
            print('密码是合法的',pwd)
        else:
            print('密码必须包含大写字母、小写字母、数字和特殊字符')

    【例2】:校验密码是否合法

    #校验密码是否合法的程序:
        #输入一个密码
        #1、长度5-10位
        #2、密码里面必须包含,大写字母、小写字母和数字
        #3、最多输入5次
    
    for i in range(5):
        passwd = input("请输入密码:").strip()   #去掉空格
        if passwd != '':
            if len(passwd)>4 and len(passwd)<11:
                num_count = 0
                lower_count = 0
                upper_count = 0
                for p in passwd:       #循环字符串
                    if p.isdigit():     #是否包含数字,是的话+1
                        num_count += 1
                    elif p.islower():   #是否包含小写字母
                        lower_count += 1
                    elif p.isupper():   #是否包含大写字母
                        upper_count += 1
                if num_count>0 and lower_count>0 and upper_count>0:
                    print("密码校验通过")
                    break
                else:
                    print("密码必须包含大写字母、小写字母和数字")
            else:
                print("密码长度为5-10位")
        else:
            print("密码不能为空")
    
    else:
        print("错误次数过多")

    【例3】:校验密码是否合法-集合方式

    #校验密码是否合法的程序:
        #输入一个密码
        #1、长度5-10位
        #2、密码里面必须包含,大写字母、小写字母和数字
        #3、最多输入5次
    import string
    digits_set = set(string.digits)  #所有数字的集合
    upper_set = set(string.ascii_uppercase)  #所有大写字母的集合
    lower_set = set(string.ascii_lowercase)  #所有小写字母的集合
    
    for i in range(5):
        passwd = input("请输入密码:").strip()  #去除两边的空格
        passwd_set = set(passwd)  #转换为集合
        if passwd=='':
            print("密码不能为空")
        elif len(passwd)>11 and len(passwd)<4:
            print("密码长度为5-10位")
        elif passwd_set & digits_set and passwd_set & upper_set and passwd_set & lower_set:  #取交集
            print("密码合法")
            break
        else:
            print("密码必须包含大写字母、小写字母和数字")
    else:
        print("错误次数过多")

     

     

     

  • 相关阅读:
    Eclipse workspace被锁定
    OpenWrt增加软件包
    多核cpu关闭、开启核心
    python基础-元组(tuple)及内置方法
    JS变量+作用域
    JS宣传页项目-综合实战
    JS实现轮播图特效(带二级导航)
    JS DOM属性+JS事件
    JS DOM操作(创建、遍历、获取、操作、删除节点)
    JS中BOM操作知识点
  • 原文地址:https://www.cnblogs.com/chenhongl/p/8808885.html
Copyright © 2020-2023  润新知