zoukankan      html  css  js  c++  java
  • python之路day03--数据类型分析,转换,索引切片,str常用操作方法

    数据类型整体分析

    int :用于计算
    bool:True False 用户判断
    str:少量数据的存储

    list:列表 储存大量数据 上亿数据
    [1,2,3,'zzy',[aa]]

    元组:只读列表
    (1,23,'asdadas')

    dist:字典 键值对的形式储存,关系型
    {'name':'小王八','age':16}
    {'小王八':[12,3,'dsaa'],'二哥':[200,200]}

    集合:求交集等
    {1,2,33,'adsf'}

    int bool str 数据转换

    int:
    i =2
    print(bit_length(100)) #转成2进制的最小位数
    
    1 0000 0001         #1
    2 0000 0010         #2
    3 0000 0011         #2

    bool:True False
    int --->> str
    i =1
    print(str(i),type(i)) # 1 <class 'int'>

    str --->> int (只能是数字才能转换成int类型)
    s = '113'
    print(int(s))  #113
    int --> bool  (非零数字转换为bool,为T,0位False)
    i=1
    j=0
    print(bool(i)) #True
    print(bool(j)) #False
    
    # bool-->int (T为1,False为0)
    print(int(True))  #1
    print(int(False)) #0
    ps:
    while True:
    pass

    while 1: #效率高,最终要转为2进制
    pass

    str--->bool (非空字符串为True,空字符串为False)
    print(bool('')) #False
    print(bool('000')) #True
    
    print(type(str(True)))  #<class 'str'>
    print(type(str(False))) #<class 'str'>

     

    str索引及切片

    s = 'asdfghjkl'
    s1 = [0]   #s1和s没有任何关系,对原字符串进行切片(原字符串不变),是生成的新的字符串
    s[首:尾:加步长]
    索引从0开始,print(s[0]) 为a
    print(s[0:3]) -->asd  #切片顾头不顾尾
    
    print(s[0:6:2]) -->>adg
    print(s[0:]) -->>asdfghjkl  全部字符串
    print(s[:])  -->>asdfghjkl  全部字符串
    print(s[0::2]) -->>adgjl    #步长必须要是规律的 1,2,3

    #从后面取 步长-1
    print(s[4:0:-1])  #gfds
    print(s[::-2]) #ljgda

     

    字符串的操作放法及for循环

    s = 'alex Wusir'
    #
    s1 = s.capitalize()  #首字母大写
    print(s1) #Alex wusir
    
    s2 = s.upper()  #全部大写
    s21 = s.lower() #全部小写
    print(s2,s21) #ALEX WUSIR alex wusir
    
    s3 = s.swapcase() #大小写翻转
    print(s3) #ALEX wUSIR
    
    a = 'zhangyang zy yy'
    a1 = a.title() #每个隔开的(特殊字符和数字)单词首字母大写
    print(a1) #Zhangyang Zy Yy

    ps:

    s_str = 'acEQ'
    you_input = input('请输入验证码,不区分大写小:')
    if you_input.lower() == s_str.lower():
        print('登录成功')
    
    else:
        print('输入有误,请重试')

    居中,空白填充 20长度
    s = 'alex Wusir’
    s5 =s.center(20,'%')
    print(s5)# %%%%%alex Wusir%%%%%
    #	 补充到8位(包含alex)
    #	 补充到8位(包含alex,从alex向左数8位)
    s = 'alex	sir'
    s6 = s.expandtabs()
    print(s6) #alex    sir

    str常见的操作方法

        len

    s = 'alex Wusir'
    l = len(s)
    print(l)  #10 10个元素,代表10个字符

    判断字符串以什么开头
    s7 = s.startswith('alex')
    print(s7) #True
    
    s8 = s.startswith('e',2,5) #True 索引切片2-5
    print(s8)# True
    find 通过元素找索引,找到返回下标,找不到返回-1
    s = 'alex Wusir'
    s9 = s.find('a',0,4)
    print(s9) # 0
    
    s91 = s.find('l')
    print(s91) #1
    
    s92 = s.find('y')
    print(s92) #-1
    index 通过元素找索引,找不到返回报错
    s10 =s.index('a')
    print(s10) #0
    strip 默认删除前后空格,加上chars,从首尾同时开始删除,遇到阻碍就不在进行
    s = '  @a@lex%Wusir@ '
    s11= s.strip()
    print(s11) #@a@lex%Wusir@
    
    s12 =s.strip('%@ ')
    print(s12) #@alex%Wusir@
    s13=s.lstrip() #只删左边的
    print(s13)
    s14=s.rstrip() #只删右边的
    print(s14)#  @a@lex%Wusir@
    str = '  a@lex%Wusir@ '
    str1 =str.strip('%@ ')
    print(str1) #a@lex%Wusir
    count  计算字符出现了几次
    st = 'aa2234fdssf'
    st1 = st.count('a')
    print(st1) #2
    split 以符号分割文本,默认是空格分割 S.split(sep=None, maxsplit=-1) -> list of strings
    str -->> list
    s = 'alex wusir zy'
    l = s.split()
    print(l) #['alex', 'wusir', 'zy']
    
    s1 = 'alex:wusir:zy'
    l1 = s1.split(':')
    print(l1) #['alex', 'wusir', 'zy']
    #ps:一分为二
    s2 = ':alex:wusir:zy'
    l2 =s2.split(':')
    print(l2) #['', 'alex', 'wusir', 'zy']
    format的三种玩法  格式化输出 {}为占位
    s ='我叫{} 今年{} 喜欢{},再说一下我叫{}'.format('zy',18,'coding','zy')  #有几个占位符就要写几个,和%s占位差不多
    s ='我叫{0} 今年{1} 喜欢{2},再说一下我叫{0}'.format('zy',18,'coding','zy') #我叫zy 今年18 喜欢coding,再说一下我叫zy
    s ='我叫{name} 今年{age} 喜欢{hobby},再说一下我叫{name}'.format(name = 'zy',age = 18,hobby = 'coding') #我叫zy 今年18 喜欢coding,再说一下我叫zy
    print(s) #我叫zy 今年18 喜欢coding,再说一下我叫zy
     
    replce  # S.replace(old, new[, count]) -> str
    s = 'sadaafdslfkds'
    s1 = s.replace('a','b') #默认全部替换
    print(s1) #sbdbbfdslfkds
    s2 = s.replace('a','b',1)  #只替换一次
    print(s2) #sbdaafdslfkds
    is系列 判断
    s= 'sadg112'
    s1=s.isalnum() #字母或数字
    print(s1) #True
    s2=s.isalpha() #字母
    print(s2)#False
    for循环
    s = 'asdfggs'  #循环输出字符串里面的元素
    for i in s:
        print(i)
    
    if 'a' in s:
        print('您输出的词语有敏感词汇')
    
    
    for i in (18,11,22):
        print(i) #18 11 22

     相关练习题

    使用while或for循环打印出字符串的每个元素
    s = 'asdfer'
    
    index =0
    
    while 1:
        print(s[index])
        index += 1
        if index == len(s):
            break
    实现一个整数加法计算器
    如:content = input('请输入内容:') #如用户输入:5+9或5+ 9或者5 + 9,然受进行分割进行计算
    
    1)
    content = input('请输入内容:').strip()
    content1 = content.split('+')
    sum =0
    index=0
    for i in content1:
    
        con1=int(content1[index])
        sum = sum+con1
        index+=1
    print(sum)
    
    2)
    sum =0
    content = input('请输入内容:').strip()
    content1 = content.split('+')
    for i in content1:
    
        sum = sum+int(i)
    print(sum)
    任意输入一串数字+文字 统计出来数字的个数
    
    
    a= 'sdafg1123222'
    print(a.count('1'))
    
    1)
    num =0
    a = input('<<<')
    for i in a:
        if int(i) in [0,1,2,3,4,5,6,7,8,9]:
            print(i.count(i),type(i))
            num+=int(i.count(i))
    print(num)
    
    2) for 循环遍历每一个元素
    count =0
    a = '4451232assa'
    for i in a:
        if i.isdigit():
            count+=1
    print(count)


  • 相关阅读:
    mysql常用函数
    主程Ry访谈录
    mongodb spring anno 查询
    mongodb 查询少少优化
    jquery table thead drop
    ubuntu 配置java,eclipse ,flex,zend,php,TomCat环境
    mongodb shell
    TCP/IP Sockets in Java 源码
    java 断点下载
    直线生成 DDA
  • 原文地址:https://www.cnblogs.com/hanfe1/p/10202635.html
Copyright © 2011-2022 走看看