zoukankan      html  css  js  c++  java
  • 数据类型之字符串(string)

    一、字符串特有
    1.upper() / .lower() 将字符串转化为大小写,得到结果是字符串
     
     
    示例:将输入字符串进行小写比较
    方式1:
    check_code = 'AF1k'
    new_check_code = check_code.lower()
    print(new_check_code)
    code = 'af1K'
    mag = '请输入你的验证码%s:' % (code,)
    code1 = input(mag)
    new_code = code1.lower()
    if new_code == new_check_code:
        print('验证成功')
    else:
         print('验证失败')

    #方式2:

    check_code = 'AF1k'
    code1 = input('请输入你的验证码%s:' % (check_code,))
    if code1.lower() == check_code.lower():
        print('验证成功')
    else:
         print('验证失败')



        
     
    2.isdigit() 判断字符串是否转换为数字,得到结果是布尔类型True/False
    示例:判断输入字符串是否为数字
    while True:
       num = input('请输入数字:')
       flag = num.isdigit()
       if flag:
          print(num)
          print('输入成功')
          break
       else:
          print('请继续输入数字:')
      
    结果 :  
    请输入数字:d
    请继续输入数字:
    请输入数字:f
    请继续输入数字:
    请输入数字:1
    1
    输入成功 
     
    3.strip() 去掉两边空格/ .lstrip()去掉左边空格 / .rstrip()去掉右边空格
    示例:去掉空格
    方式1:
    name = ' sundy '
    name1 = name.rstrip()
    name2 = name1.lstrip()
    name3 = name2.upper()
    print('-->',name3,'<--')
    结果:
    --> SUNDY <--
    方式2:
    name = ' sundy '
    name1 = name.strip()
    print('-->',name1,'<--')
    结果:
    --> sundy <--
     
     
     
    4.replace("被替换的字符/子序列","要替换为的内容") / .replace("被替换的字符/子序列","要替换为的内容", 1) 从左到右替代总共1个指定被替代内容
     
     
    示例:替代指定关键字
    name = input('请输入你姓名:')
    name1 = name.replace("国",'*')
    name2 = name.replace("国",'*',2)
    print('-->',name1,'<--')
    print('-->',name2,'<--')
    结果:
    请输入你姓名:国庆国家国际美国
    --> *庆*家*际美* <--
    --> *庆*家国际美国 <--

     5.split('根据什么东西进行分割') / .split('根据什么东西进行分割', 1 )从左到右第一个开始切割总共切割1个 / rsplit从右到左 ,结果是列表形式
    示例:分割指定字符
    name = '你是谁,你来自哪里,你要到哪里,哈哈'
    name1 = name.split(",")
    name2 = name.split(",",2)
    name3 = name.rsplit(",",2)
    print('-->',name1,'<--')
    print('-->',name2,'<--')
    print('-->',name3,'<--')
    结果:
    --> ['你是谁', '你来自哪里', '你要到哪里', '哈哈'] <--
    --> ['你是谁', '你来自哪里', '你要到哪里,哈哈'] <--
    --> ['你是谁,你来自哪里', '你要到哪里', '哈哈'] <--
     
    二、其他类型公共
    1.len ,计算长度。 (字符串->计算字符串中的字符个数)
    用法:
    num = len(value)
    print(num)
     
    2.索引取值(0作为开始)
     
    v = "oldboy" v1 = v[0]  # 0 1 2 3 ... 从前向后 v[0]代表第一个元素
    v2 = v[-1] # -1 -2 -3 ...从后向前
    v = "oldboy"

    3.切片(0作为开始)

    # v1 = v[2:4]
    #   2 =< 索引位置 <3 (开区间)
    # v2 = v[3:6]
    # v2 = v[3:-1]
    # v2 = v[3:] 从第三个位置取到最后一个
    # v2 = v[:-1] 从最后一个位置取到最前面,但不包含最后一个
    示例:
    v = 'sundy'
    v1 = v[1:3]
    v2 = v[1:-1]
    v3 = v[0:]
    v4 = v[:-1]
    print(v1)
    print(v2)
    print(v3)
    print(v4)
     
     
    结果:
    D:python3.6python3.6.exe D:/python_code/day01/day03.py
    un
    und
    sundy
    sund
     

    示例: 取后两个字符
    # data = input('请输入:')
     方式一
    # v = data[-2:]
    # print(v)
    方式二
    # total_len = len(data)
    # v = data[total_len-2:total_len]
    # print(v)
     

    4.步长:
    示例:
    name = 'alex2dfghhsffg'
    val1 = name[0:-1:2]
    val2 = name[1:-1:2]
    val3 = name[1::2]
    val4 = name[::2]
    val5 = name[-1:0:-2]
    print(val1)
    print(val2)
    print(val3)
    print(val4)
    print(val5)
     
    结果:
    D:python3.6python3.6.exe D:/python_code/day01/day04.py
    ae2fhsf
    lxdghf
    lxdghfg
    ae2fhsf
    gfhgdxl

    # 笔试题:请将字符串反转。
    name = 'alex'
    val = name[::-1]
    print(val)
    结果:
    D:python3.6python3.6.exe D:/python_code/day01/day04.py
    xela
     
     
     练习题:
    ########################需求:让用户输入任意字符串,获取字符串之后计算其中有多少数字####################################
    text = input('请输入字符串:')
    len_text = len(text)
    index = 0
    tol =0
    while index < len_text:
        value = text[index]
        fag = value.isdigit()
        if  fag:
            tol +=1
        index +=1
    print(tol)
     
     
    补充:
    1.startswith 判斷是否以什么开头/ endswith判斷是否以什么结尾
    示例:
    ####补充: startswith / endswith##########
    #!/usr/bin/env python # -*- coding:utf-8 -*
    """
    "# 方式一:
    name = 'alex'# 判断是否已al开头
    flag = name.startswith('al')
    print(flag)

    """
    # 方式二:
    name = 'alex'# 判断是否已al开头
    val = name[0:2]
    if val == 'al':
         print('是以al开头')
    else:
        print('不是')
     
     
    2.format格式化占位符
    示例:
    name = "我叫{0},年龄:{1}".format('sundy',23)
    print(name)
    结果:
    D:python3.6python3.6.exe D:/python_code/day01/day04.py
    我叫sundy,年龄:23
    3.encode字符串转化为指定字符
    name = '李杰' # 解释器读取到内存后,按照unicode编码存储:8个字节。
    v1 = name.encode('utf-8') #将unicode编码存储转化为utf-8
    print(v1)
    v2 = name.encode('gbk')#将unicode编码存储转化为gbk
    print(v2)
    结果:
    D:python3.6python3.6.exe D:/python_code/day01/day04.py
    b'xe6x9dx8exe6x9dxb0'
    b'xc0xeexbdxdc'
    4.join # 循环每个元素,并在元素和元素之间加入连接符。
    示例
    name = 'alex'
    result = "**".join(name)   ##name必须为字符串类型
    print(result)
    结果:
    D:python3.6python3.6.exe D:/python_code/day01/day04.py
    a**l**e**x
     
  • 相关阅读:
    Java8 新特性
    Less语法
    【手动开栈】【dfs序】【树状数组】【Tarjan】bzoj2819 Nim
    【dfs序】【树状数组】bzoj1103 [POI2007]大都市meg
    【树链剖分】【树状数组】【最近公共祖先】【块状树】bzoj3631 [JLOI2014]松鼠的新家
    【块状树】【树链剖分】【线段树】bzoj3531 [Sdoi2014]旅行
    【树链剖分】【分块】【最近公共祖先】【块状树】bzoj1984 月下“毛景树”
    【树链剖分】【函数式权值分块】bzoj1146 [CTSC2008]网络管理Network
    【单调队列】bzoj1047 [HAOI2007]理想的正方形
    【单调队列】bzoj2096 [Poi2010]Pilots
  • 原文地址:https://www.cnblogs.com/sundy08/p/11791434.html
Copyright © 2011-2022 走看看