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 用法一致
      
原文地址:https://www.cnblogs.com/xiaohei-chen/p/11853195.html