• Python 基础数据类型 I (str等)


    一.今日内容

    • 基础数据类型总览
    • int
    • bool
    • str
      • 索引,切片
      • 常用的操作方法
    • for循环

    二.复习

    • while 循环

      • 结构
      • break,continue,pass
    • 格式化输出:str:让字符串的某些位置变成动态可变的,可传入的

      • % s -->str ;d -->digit; i -->int;
      • %%
    • 编码的初始:

      • 编码:密码本:二进制与文字的对应关系

        • ASCII:最早期的密码本,二进制与字母,数字,特殊字符的对应关系

          0000 0101

          ‘abc’:00011010 00000101 00000010 3个字节

        • GBK国标:英文 1个字节,中文2个字节

          • 英文字母,数字,特殊字符 ASCII
          • 中文自己编写的
        • Unicode:万国码,(兼容性高,他与任何的密码本都有映射关系)

          任意字符都用 4个字节表示

        • utf-8:

          中文用 3 个字节表示

          欧洲用 2 个字节表示

          字母用 1 个字节表示

    三.具体内容

    1.基础数据类型总览

    • 123456 456 --- int
    • 'sdfghji家' --- str 存储少量的数据
    • Ture False --- bool 判断真假
    • ['asdf','wer',[wer]] --- list 存储大量的数据,
    • (12,'sd',true) --- **tuple ** 存储大量的数据,不可改变里面的元素
    • {'nam':'chen'} --- dict 存储大量的数据,查询速度非常快
    • set 交集,并集,差集

    2.int

    • 十进制转二进制

    • '''
      0000 1010
      '''
      b = 2**1+2**3
      
      
    • bit_length 十进制转化成二进制的有效长度

    • i = 4
      print(i.bit_length()) #3
      i =10
      print(i.bit_length()) #4
      

    3.bool

    • bool str int三者之间的转换

    • #  str <---> int  ***
      s1 =10  int(s1)  #必须是数字组成
      i= 100   str(i)
      
      #非空即为True;空为False
      
      
      #bool <---> int
      True  1;False 0
      #非零即True; 0是False
      
      
      
    • 应用

      s = input('输入内容')
      if s:
          print('有内容')
      else:
          print('没有输入任何内容')
      

    4.str

    • 索引切片步长

      • 对字符串进行索引,切片出来的数据都是字符串类型
      • 按照索引取值
      • 从左至右有顺序,下标,索引
      • 顾头不顾尾
      s1 = '上有天堂,下有苏杭'
      s2 = s1[0]
      print(s2,type(s2))
      s3 = s1[-1]
      
      s4 = s1[0:6]
      s4 = s1[:6]
      s5 = s1[6:]
      
      s6 = s1[:5:2]
      s7 = s1[:]
      s8 = s1[-1:-6:-1]
      
      #按索引:s[index]
      #按照切片:s[start_index:end_index+1]
      #按照切片步长:s[start_index:end_index+1:2]
      #反向按照切片步长:s[start_index:end_index后延一位:-2]
      #思考题:倒序全部取出来?
      s9 = s1[::-1]
      
    • 字符串的常用操作方法

      • upper lower

        #不会对原字符串进行任何操作,都是产生一个新的字符串
        s = 'taiASDhj'
        s1 = s.upper()  #全部大写
        s2 = s.lower()  #全部小写
        
        #应用:
        username = input('用户名:')
        password = input('密码:')
        code = 'AedD'
        yourcode = input('验证码: 不区分大小写')
        if yourcode.upper()  == code.upper():
            if(username == 'alex' and password == '123'):
                print('登录成功')
            else:
                print('用户名或密码错误')
        else:
            print('验证码输入错误')
        
      • startswith endswith 判断以什么开头或结尾

        print(s.startswith('t'))#True
        print(s.startswith('taia'))#False
        #了解
        print(s.startswith('A',3,5))#判断A是从索引3开始到索引5结束的字符串
        
      • replace 替换

        msg = 'alex很nb,alex是老男孩教育的创始人之一,alex很帅'
        msg1 = msg.replace('alex','chenchen')  #默认全部替换
        msg2 = msg.replace('alex','chenchen',2)#替换前两个
        
      • strip 去掉空白

        s = '   
         er	'
        s1 = s.strip()#er
        #了解
        #可以去掉指定的字符
        s2 = '123asdf432'
        s3 = s2.strip('123432')#前后同时去判断,遇到非,就停止
        print(s3)#asd
        
      • split 分割

        • 默认按照空格分割,返回一个列表
        • 可以指定分隔符
        #str--->list
        s = '太白 alex 辰辰'
        s1 = s.split()#['太白','alex','辰辰']
        
        s2 = '太白:alex:辰辰'
        s3 = s2.split(':')#['太白','alex','辰辰']
        #了解
        s4 = ':barry:nvshen:wu'
        s5 = s4.split(':',2)#只按前两个:分割
        
      • join

        • 将字符串或列表有序的加入某个字符,此时列表里面的元素必须全部是字符串
        s = 'alex'
        s1 = '+'.join(s)#a+l+e+x
        s2 = ['太白','金星','辰辰']
        s3 = ','.join(s2)#太白,金星,辰辰
        
      • count 找出字符串中某字符出现的个数

        s = 'sdfghjhgfdsdfghgf'
        s1 = s.count('s')
        
      • format 格式化输出

        #第一种用法
        msg = '我叫{}今年{}性别{}'.format('大壮','18','男')#我叫大壮今年18性别男
        #第二种用法 + 索引
        msg1 = '我叫{0}今年{1}性别{2},我还叫{0}'.format('大壮','18','男')#我叫大壮今年18性别男,我还叫大壮
        #第三种用法
        msg2 = '我叫{name}今年{age}性别{sex}',format(name = '大壮',age = '18',sex = '男')#我叫大壮今年18性别男
        
      • is 系列

        name = 'asdf233'
        print(name.isalnum())#判断字符串是否由字母,数字,中文组成
        print(name.isalpha())#判断字符串是否只由字母,中文组成
        print(name.isdecimal())#判断字符串是否只有十进制组成
        #应用
        num = input('请输入金额')
        if num.isdecimal:
            print(int(num))
        else:
            print('输入有误')
        
      • in, not in

        s = '天气之子tian'
        print('天' in s)#True
        print('天t' in s)#False
        print('天t' not in s)#True
        

      for循环

      • len() 字符串的长度

        s1 = '高晓松的晓说带你穿越古今,游历世界'
        index = 0
        while index < len(s1):
            print(s1[index])
            index += 1
            
        #for 循环
        for i in s1:
            print(i)
            
        for i in s1:
            if i == '今':
                break
            print(i)
        else:
            print(666)
        #break continue
        #for else 与while else 用法一致
        
  • 相关阅读:
    指针
    const
    指针数组和指向数组的指针
    extjs初探之由浅入深目录
    ie6字体设置13px引发的问题
    在IAR下通过Jlink将程序直接下载到Flash指定地址
    提高C语言程序运行稳定性的方法
    C/C++编程习惯
    释放QQ占用的C盘空间
    非阻塞算法思想在关系数据库应用程序开发中的使用
  • 原文地址:https://www.cnblogs.com/xiaohei-chen/p/11853195.html
Copyright © 2020-2023  润新知