Day 03 基础数据类型总览:int: bool: str: for 循环

Day03 课程大纲

一.今日内容大纲

1. 基础数据类型总览

2. int

3. bool

4. str

  • 索引,切片

  • 常用操作方法

5. for 循环

二.昨日内容以及作业讲解

  1. Pycharm 简单使用

    ctrl + d ,ctrl + ?continue :代表底部并返回判断条件

  2. while 循环

1.结构

2.pass

  1. 格式化输出:str:让字符串的某些位置变成动态可变的,可传入的。

​1. % , s(str) ,d(digit),i(int)

​2.单纯表示百分号: %%

  1. 编码的初识:

    1. 编码: 密码本: 二进制与文字的对应关系
      • ASCII:最早的密码本:二进制 与 英文字符,数字,特殊字符的对应关系

        ​ 01100001 a

        ​ 01100010 b

      'abc':01100001 01100010 01100101:三个字节

      • GBK国标:
        • 英文字符,数字,特殊字符,完全沿用ASCII
        • 中文自己编写的,一个中文占2个字节

      'ab太白':6个字节

      • Unicode:万国码。兼容性高,与任何密码本都有映射关系

        01100001 01100001 01100001 01100001 a

        01100001 01100001 01100001 01100001 中

      • UTF-8:

        01100001 a 使用的ASCII

        01100001 01100001 欧洲 葡萄牙文等(2个字节)

        01100001 01100001 01100001 中文(3个字节)

      'ab太白':8个字节

三.具体内容

  1. 基础数据类型总览:

    • 123 1234 3348 int 加减乘除
    • '今天吃了没' str 存储少量数据 加,乘数字(遍数) 切片,其他操作方法
    • True False bool 判断真假
    • [12,True,'alex',[1,2,3]] list 存储大量的数据
    • (12,True,'alex',[1,2,3]) tuple ** 存储大量**的数据 不可改变里面的变量
    • {'name':'太白金星'} dict 存储大量的关联型数据,查询速度非常快。
    • set 交集,并集差集
  2. int

    • 主要用于运算 加减乘除

    • 不同进制的转换,十进制,二进制

      • 二进制转换成十进制 (从后往前,2的0次方到2的7次方)

        0001 1010------->26
        b=0*2^0+1*2^1+0*2^3+1*2^4+1*2^5
        print(b)=26
        
      • 十进制转换成二进制(除以2的余数,逆序排列)

        42-------->0010 1010
        
    • i.bit_length():二进制的有效长度

      i = 4
      print(i.bit_lenfth())   #3
      
  3. bool : 非0即True,0是False

  4. str

    1. str ----> int

      s1 = 10   int(s1)#必须是数字
      i = 100   str(i)
      
    2. str- ----> bool

      s1 = ' '  #空格
      print(bool(s1))  #True
      
      s1 = ''  #空字符串
      print(bool(s1)) #False
      
      s = input('请输入内容')  #字符串可以转换成bool值,可以充当if条件
      if s:
          print('有内容')
      else:
          print('没有输入任何内容')
      
    3. str 取值
      s1 = 'Python全栈22期'
      #     01234567891011
      #对字符串进行索引,切片出来的数据都是字符串类型。
      #按照索引取值
      #从左至右有顺序,下标,索引,012345
      # s2 = s1[0]
      # print(s2,type(s2))
      # s4 = s1[-1]
      # print(s4)
      
      • 按照切片取值

        #按照切片取值
        #顾头不顾腚
        # s5 = s1[0:5]
        # print(s5)  #pytho
        
        # s5 = s1[0:6]
        # print(s5)  #python
        
        # s6 = s1[6:-1]
        # print(s6)  #全栈22
        # s6 = s1[6:]
        # print(s6)   #全栈22
        
      • 切片步长

        s7 = s1[:5:2]   #步长2
        print(s7)
        
      • 倒叙

        #倒序:
        s8 = s1[-1:-5]
        print(s8)   #不报错 但 取不出
        
        s8 = s1[-1:-6:-1]  #往左加1位,不是-5 是-6
        print(s8)
        #按索引:s1[index]
        #按照切片:s1[start_index;end_index+1]
        #按照切片步长:s1[start_index;end_index+1:2]
        #反向按照切片步长:s1[start_index;end_index后延一位:2]
        
      • 思考题:能否倒序全部取出???

      • 练习题:

        1.有字符串s = "123a4b5c"
        
        通过对s切片形成新的字符串s1,s1 = "123"
        通过对s切片形成新的字符串s2,s2 = "a4b"
        通过对s切片形成新的字符串s3,s3 = "1345"
        通过对s切片形成字符串s4,s4 = "2ab"
        通过对s切片形成字符串s5,s5 = "c"
        通过对s切片形成字符串s6,s6 = "ba2"
        能否倒序全部取出???
        
    4. 字符串的常用操作方法
      1. upper lower:
      • s = 'taiBai中国'
        #字符串的常用操作方法
        #upper lower
        #s1与原字符串无关,不会对原字符串产生任何操作,都是产生一个新的字符串
        s1 = s.upper()
        print(s1)
        s1 = s.lower()
        print(s1,type(s1))
        

    • 应用

      username = input('用户名:')
      password = input('密码:')
      code = 'QWer'
      your_code = input('请输入验证码,不区分大小写')
      
      if your_code.upper() == code.upper():    #统一大小写
          if username == '353913575' and password == 'daaipengge123':
              print('登陆成功')
          else:
              print('用户名或密码错误')
      
      else:
          print('验证码错误')
      
    1. startswith endswith:

      s = 'taiBai'
      print(s.startswith('t')) ***
      print(s.startswith('taiBai'))***
      了解
      print(s.startswith('B',3,6))   # 3--6是否以B为开头
      
      replace
      msg = 'alex 很nb,alex是老男孩教育的创始人之一,alex长得很帅'
      msg1 = msg.replace('alex','太白',2) # 从左至右替换2个alex
      print(msg)  #alex 很nb,alex是老男孩教育的创始人之一,alex长得很帅
      print(msg1)  #太白 很nb,太白是老男孩教育的创始人之一,alex长得很帅
      
    2. strip: 空白:空格,\t(tab制表符) ,\n(换行)

      s4 = '     \n太白\t'
      print(s4)
      
      s5 = s4.strip()  # 去除换行符制表符
      print(s5)
      
      • 了解

        #可以去除指定的字符
        s4 = 'rre太rr白qsd'
        s5 = s4.strip('qsdre')   #不需要去除
        print(s5)   #太rr白
        

    3. split 非常重要********

      • 默认按照空格分隔,返回一个列表

      • 指定分隔符

      • str ------> list

        s6 = '太白 女神 吴超'
        l = s6.split()
        print(l)    #['太白', '女神', '吴超']
        
        s6 = '太白:女神:吴超'  #指定 ':' 为分隔符
        l = s6.split(':')
        print(l)    #['太白', '女神', '吴超']
        了解:
        s6 = ':barry:nvshen:吴超'
        print(s6.split(':'))    #['', 'barry', 'nvshen', '吴超'] 第一个 空字符串
        print(s6.split(':',2)) #['', 'barry', 'nvshen:吴超']   #按前两个分割
        

    4. join 非常好用(字符串类型)

      s1 = ['太白', '女神', '吴超']
      s2 = '+'.join(s1)    #iterable 可迭代字符,由多个元素组成
      print(s2,type(s2))    # 太白+女神+吴超 <class 'str'>
      
      s3 = ':'.join(s1)    # 太白:女神:吴超
      print(s3)
      
    5. count 计数

      s8 = 'djhasgdjasjhghfgklakajasdjfagh'
      print(s8.count('a'))
      
    6. format 格式化输出

      第一种方法:
      msg = '我叫{}今年{}性别{}'.format('大壮','25','男')  #  {}代表%,无空格
      print(msg)
      第二种方法:
      msg = '我叫{0}今年{1}性别{2}我依然叫{0}'.format('大壮','25','男')   #带索引
      print(msg)
      第三种方法:
      msg = '我叫{name}今年{age}性别{sex}'.format(name = '大壮',age = '25',sex = '男')  #不要求顺序
      
    7. is 系列

    name = 'taibai123'
    name1 = '100'
    print(name.isalnum())   #字符串由字母或数字组成
    print(name.isalpha())   # #字符串只由字母组成
    print(name.isdecimal())  # #字符串只由十进制数字组成
    
    s1 = input('请输入您的金额:')
    if s1.isdecimal():
        print(int(s1))
    else:
        print('输入有误')
    
  5. for 循环:

    1. in

      s1 = '老男孩edu'
      print('老'in s1)    #True
      print('老男' in s1)   #True
      print('老ed' in s1)   #False   整体
      print('老ed' not in s1)  #True
      
    2. len

      # len: 获取可迭代对象的元素总个数
      
      s1 = '老男孩教育最qweqwdasdasd好的讲师:太白'#12
      '''
      老 s1[0]
      男 s1[1]
      孩 s1[2]
      教 s1[3]
      育 s1[4]
      最 s1[5]
      .....
      '''
      #0~12
      print(len(s1))
      index = 0
      while index < len(s1):
          print(s1[index])
          index += 1
      
    3. for 循环

      '''
      有限循环
      for 变量 in iterable:  #iterable可以是字符串 可以是列表.....
          pass
      '''
      s1 = '老男孩教育最好的讲师:太白'
      # for i in s1:
      #     print(i)
      
      # 到'讲'为止
      for i in s1:
          print(i)
          if i == '讲':
              break
      
      # break continue
      # for else == while else
      
      • break continue
      • for else == while else(中断就不else)
posted @ 2020-07-02 21:55  Redbean1231  阅读(113)  评论(0编辑  收藏  举报