03、day03_基础数据类型总览,int、bool、字符串常用操作,for循环

基础数据类型总览

  • 1232, 234, -123 int + - * /等等

  • '今天吃了吗','123123aaa', str 存储少量的数据:+ * 切片,其它操作方法

  • True,False, bool 判断真假

  • [12, True, 'murphy', [1,2,3]] list (列表) 存储大量的数据

  • ([12, True, 'murphy', [1,2,3]]) tuple (元组) 存储大量数据,但是元组里的数据一旦填入就不能修改里面的元素

  • {'name':'张三'} dict 存储大量的关联型的数据,查询速度非常快

  • set 交集,并集,差集。。。。

int

  • 主要用于计算 + - * /

  • 不同的进制之间的转换。十进制,二进制(据说python有专门的转换函数,这里主要为了理解进制转换)

    • 二进制转换成十进制

      # 0001 1010    ----------->   ?
      # 从左到右依次为,2的0次方,2的1次方,2的2次方...2的7次方
      # 2的2次方为:2**2
      
      b = 0*2**7 + 0*2**6 + 0*2**5 + 1*2**4 + 1*2**3 + 0*2**2 + 1*2**1 + 0 * 2**0
      print(b)# 0001 1010    ----------->   26
      
    • 十进制转换成二进制

      42 --------------------> ?

      每次对2取余

      42 / 2 ------0

      24 / 2 ------1

      10 / 2 ------0

      5 / 2 ------1

      2 / 2 ------0

      1 / 2 ------1

      跟进结果从下往上读数: 101010---------补全:0010 1010

字符串str

字符串的切片索引

  • 按索引:s1[index]

  • 按切片:s1[start_index: end_index + 1]

  • 按切片步长:s1[start_index: end_index + 1: 2]

  • 反向按切片步长:s1[start_index: end_index + 后延一位: 2]

    s1 = 'python全栈学习'
    # 字符串从左至右有顺序,有下标、索引的
    # 对字符串进行索引,切片出来的数据都是字符串类型
    '''
    p y t h o n 全 栈 学 习
    0 1 2 3 4 5 6  7  8  9
    '''
    # 按照索引取值
    s2 = s1[0]  # s2使用的是一个新的内存空间,他和s1没有任何关系(尽管p是从s1索引过来的)
    print(s2, type(s2))
    
    s3 = s1[2]
    print(s3)
    
    s4 = s1[-1]
    print(s4)
    
    s5 = s1[-2]
    print(s5)
    
    # 按照切片取值
    # 顾头不顾腚,比如要取0-5的值,索引要写0:6往后顺延一位
    # 如果从头开始取则不用写前面的0也可以
    s6 = s1[0:6]
    print(s6)
    
    # 如果取到最后,则不用写最后一位
    s7 = s1[6:]
    print(s7)
    
    # 切片 步长
    s8 = s1[:5:2]  # 我这脑子这得备注一下: s1[0:5:2]中 0:开头首位可以省略,5:想要取的长度,2:步长,代表隔一位取一个值
    print(s8)
    
    # 倒序:只要是倒序就必须加一个反向步长
    s9 = s1[-1:-5:-1]
    print(s9)
    
    # 全取
    print(s1[:])
    
    # 倒序全取
    print(s1[-1::-1])
    
    

字符串常用操作

对字符串的任何操作,都是生成一个新的字符串

  • upper lower

  • s = 'Murphy'
    s1 = s.upper()
    print(s1)
    s2 = s.lower()
    print(s2)
    
  • # 应用示例:输入验证码时不区分大小写
    username = input('用户名:')
    password = input('密码:')
    code = 'Qwer'
    your_code = input('验证码:')
    if your_code.upper() == code.upper():
        if username == 'Murphy' and password == '123':
            print('登陆成功')
    else:
        print('验证码错误')
    
  • startswith endswith

    判断以什么为开头/结尾

    s = 'Murphy'
    print(s.startswith('M', 0, 4))
    print(s.endswith('y'))
    
  • replace:替换

    msg = 'Mikie是一个python初学者,Mikie是一个超级老帅哥,Mikie不想再迷茫了'
    msg1 = msg.replace('Mikie', 'Murphy')
    print(msg1)
    
  • strip:去除空白

    在Python中字符串处理函数里有三个去空格(包括'\n', '\r', '\t', ' ')的函数:

    strip 同时去掉左右两边的空格
    lstrip 去掉左边的空格
    rstrip 去掉右边的空格

  • split 【非常重要】

    分割,切割。默认按照空格分割 返回一个列表

    s = 'Murphy 海哥 岚妹'
    l = s.split()
    print(l)
    

    返回为:['Murphy', '海哥', '岚妹']

  • join 【非常好用】

    s1 = 'Murphy'
    s2 = '+'.join(s1)
    print(s2)  # M+u+r+p+h+y
    li = ['Murphy', '海哥', '岚妹']
    s = ':'.join(li)
    print(s)  # Murphy:海哥:岚妹
    
  • count 【数出字符串某个字符出现的次数】

    s1 = 'sdfkjlaskjfwijfadslkjfalioef'
    n = s1.count('f')
    print(n, type(n))
    
  • format 【格式化输出】

    # 第一种用法
    msg = '我叫{},今年{},性别{}'.format('Murphy', '24', '老哥哥')
    print(msg)
    
    # 第二种用法
    msg = '我叫{0},今年{1},性别{2},我还是{0}'.format('Murphy', '24', '老哥哥')
    print(msg)
    
    # 第三种用法
    a = 100
    msg = '我叫{name},今年{age},性别{sex}'.format(age=a, sex='老哥哥', name='Murphy')
    print(msg)
    
  • is系列 【判断用】

    # is系列
    # 判断用
    name = 'Murphy123'
    isdigit():  # 判断字符串是否只由数字组成
    print(name.isalnum())  # 字符串由字母或数字组成
    print(name.isalpha())  # 字符串只由字母组成
    print(name.isdecimal())  # 字符串只由十进制组成
    
    s1 = input('请输入金额:')
    if s1.isdecimal():
        print(int(s1))
    else:
        print('输入有误')
    
    s1 = '我用python'
    print('我' in s1)  # True
    print('我用' in s1)  # True
    print('我python' in s1)  # False
    print('我python' not in s1)  # True
    

for循环

  • 首先用while循环做一做下题

    s = '人生苦短,我用python'
    '''
    将字符串逐字换行打印出来:
    人   s[0]
    生   s[1]
    苦   s[2]
    短   s[3]
    ......
    '''
    
    # while
    n = 0
    while n < len(s):  # len()可以获取可迭代对象的元素个数,而字符串索引是从0开始,所以索引的最后一位是 len() - 1
        print(s[n])
        n += 1
    
  • 接下来用for循环做一次

    for 循环的基本格式:【有限循环】

    for 变量 in iterable:

    pass

  • s = '人生苦短,我用python'
    for i in s:
        print(i)
    
  • 可以break,continue

  • for else: 和 while else:用法一样

posted @ 2020-03-23 21:21  Murphy_Yang  阅读(163)  评论(0)    收藏  举报