• Python全栈学习_day003知识点


    今日大纲:

    1. 基础数据类型 总览
    2. int
    3. bool
    4. str
    5. for循环
    1. 基础数据类型 总览
       int: 用于计算,计数等
        str:'这些内容',用户少量数据的存储,便于操作
        bool:True, False,两种状态,机器反馈给用户的对/错
        list:[1, 'k', True, [], (), {}, ...] 大量的数据,各种数据类型,操作方便
        tuple:(1, 'k', True, [], (), {}, ...) 只读列表
        dict:字典. 大量的关联性数据
            {'name': 'alex', 'name_list': ['司徒', '李莲英', ...], '太白': {'name': '太白', 'sex': ''}}
        set:集合. {} 关系测试. 两种集合之间的并集是什么等等.

    2. int

    i = 4
    print(i.bit_length())   查询十进制转化成二进制占用的最小位数
    结果:
    3
    
    十进制             二进制
       1              0000 0001
       2              0000 0010
       3              0000 0011
       4              0000 0100

    3. bool

    数据类型之间的转化
    int <--> str     str(int); int(str)       ******
    int <--> bool    非0为True; 0为False     True --> 1; False --> 0
    str --> bool    ''(空字符串) --> False; 非空 --> True
        name = input('>>>')
        if name:
            print(666)
        else:
            print('无内容')
            
    bool --> str    没啥意义

    4. str

    
    
    对字符串的下面这两部分操作,形成的都是一个新的字符串,与原来的字符串没有关系
    
    
    
    
    第一部分:索引、切片、步长
    
    
    
    
    - 按照索引取值,取出来的都是一个字符形成的字符串
    s1 = 'Python1期_骑士计划'
    s2 = s1[0]
    print(s2)       P
    print(type(s2))     <class 'str'>
    
    s3 = s1[2]
    print(s3)       t
    
    s4 = s1[-1]
    print(s4)       划
    
    s5 = s1[-2]
    print(s5)       计
    
    
    
    - 按照切片取值, 顾头不顾尾
    s6 = s1[0:6]
    print(s6)       Python
    
    s61 = s1[:6]
    print(s61)      Python
    
    s7 = s1[1:7]
    print(s7)       ython1
    
    s8 = s1[6:-1]
    print(s8)       1期_骑士计
    
    s81 = s1[6:]
    print(s81)      1期_骑士计划
    
    
    
    - 按照切片+步长
    s1 = 'Python1期_骑士计划'
    
    s9 = s1[:5:2]
    print(s9)       Pto
    
    s91 = s1[1::2]
    print(s91)      yhn期骑计
    如果想倒序取值,加一个反向步长(负号)
    s10 = s1[-1:-5:-1]
    print(s10)      划计士骑
    
    s11 = s1[-1:-6:-2]
    print(s11)      划士_
    
    
    
    第二部分:字符串的常用方法
    name = 'old boy'
    
    print(name.capitalize())    Old boy;首字母大写    ***
    
    print(name.title())         Old Boy
    s1 = 'alex wusir*taibai6nvshen'
    print(s1.title())   非字母隔开的每个部分的首字母大写    **
    center: 字符串居中,前后填充自定义的字符  **
    print(name.center(20, '*'))     ******old boy*******
    upper(全部大写); lower(全部小写)        ******
    print(name.upper())     OLD BOY
    print(name.lower())     old boy
    应用举例:
    username = input('请输入用户名:')
    code = 'ADfeR'.lower()
    your_code = input('请输入验证码:').lower()
    if username == 'alex' and code == your_code:
        print('登录成功')
    
    name = 'old boy'

    startswith: 判断以什么为开头    *****
    print(name.startswith('ol'))     True
    判断第5个位置之后的字符串以什么为开头
    print(name.startswith('b', 4))  True
    判断第2个位置到第5个位置的字符串以什么为开头
    print(name.startswith('ld', 1, 5))      True
    
    
    endswith: 判断以什么为结尾      *****
    与startswith用法一致
    print(name.endswith('o'))       False
    
    
    swapcase: 大小写转换     **
    name = 'oLd boY'
    print(name.swapcase())      OlD BOy
    
    
    
    find(*****): 通过元素找索引, 找到第一个元素就返回其索引值,没有此元素则返回-1   *****
    print(name.find('d'))       2
    print(name.find('Ld'))      1
    print(name.find('w'))       -1
    print(name.find('o', 1, -1))    5; find也可以设置字符串的开始和结束位置
    
    
    index(*****): 通过元素找索引, 找到第一个元素就返回其索引值,没有此元素则报错
    print(name.index('w'))      报错
    
    
    
    strip(*****): 默认去除字符串前后的空格,换行符(
    ),制表符(	)
    name = '	old boy '
    print(name.strip())
    结果:
    old boy

    strip:指定去除的字符
    name1 = '*alex**'
    print(name1.strip('*'))      alex
    
    name2 = 'weralexqwe'
    print(name2.strip('erw'))       alexq
    应用举例:
    username = input('请输入用户名:').strip()
    if username == 'alex':
        print('登录成功')
    lstrip: 去除前面的空格
    rstrip: 去除后面的空格
    
    
    split: 将字符串分割成列表(str --> list); 默认按照空格分割
    s1 = 'alex wusir taibai'
    l1 = s1.split()
    print(l1)       ['alex', 'wusir', 'taibai']
    
    s2 = 'alex,wusir taibai'
    l2 = s2.split(',')
    print(l2)       ['alex', 'wusir taibai']
    注意这三个的区别
    s3 = ' alex wusir taibai'
    print(s3.split())       ['alex', 'wusir', 'taibai']
    
    s31 = ' alex wusir taibai'
    print(s31.split(' '))   ['', 'alex', 'wusir', 'taibai']
    
    s4 = ',alex,wusir,taibai'
    print(s4.split(','))    ['', 'alex', 'wusir', 'taibai']
    设置split的分割次数
    s5 = 'alexlwle'
    print(s5.split('l', 1))     ['a', 'exlwle']
    
    print(s5.rsplit('l'))
    
    
    
    join(**********): 自定制连接符,将可迭代对象中的元素连接起来
    str1 = 'alex'
    s2 = '*'.join(str1)
    print(s2)       a*l*e*x
    
    
    
    replace(*****): 替换
    str2 = 'alex 是创始人,alex很牛逼,alex...'
    s3 = str2.replace('alex', 'SB')
    print(s3)       SB 是创始人,SB很牛逼,SB...
    可以设置替换次数,但是只能从前往后开始替换
    str2 = 'alex 是创始人,alex很牛逼,alex...'
    s3 = str2.replace('alex', 'SB', 1)
    print(s3)       SB 是创始人,alex很牛逼,alex...

    格式化输出: format
    三种方式
    第一种:
    s1 = '我叫{}, 今年{}, 性别{}'.format('太白', '28', '')
    print(s1)       我叫太白, 今年28, 性别男
    第二种:
    s2 = '我叫{0}, 今年{1}, 性别{2}, 我还是叫{0}'.format('太白', '28', '')
    print(s2)       我叫太白, 今年28, 性别男, 我还是叫太白
    第三种:
    s3 = '我叫{name}, 今年{age}, 性别{sex}, 我还是叫{name}'.format(age = '28', name = '太白', sex = '')
    print(s3)       我叫太白, 今年28, 性别男, 我还是叫太白
    
    
    
    is 系列
    name = 'taibai123'
    print(name.isalnum())   True; 判断name是否以字母或者数字组成
    print(name.isdigit())   False; 判断name是否全部以数字组成
    print(name.isalpha())   False; 判断name是否全部以字母组成

    公共方法
    count: 计数,计算给定字符出现几次,可以进行切片
    name = 'alex'
    print(name.count('a'))      1
    
    len: 计算字符串有多长,就是元素的个数
    print(len(name))        4

    5. for循环

    先用while循环打印每个元素
    s1 = 'sdkjasgfjgsafkj'
    index = 0
    while index < len(s1):
        print(s1[index])
        index += 1
    如果对一个数据类型进行循环或者是一个有限循环的时候,往往要用到for循环
    for i in s1:    for 变量 in iterable(可迭代对象)
        print(i)
        
    for i in s1:    for 循环的次数是和可迭代对象的元素的个数有关
        print(s1)
  • 相关阅读:
    设计模式 ( 十七) 状态模式State(对象行为型)
    设计模式 ( 十六 ) 观察者模式Observer(对象行为型)
    设计模式 ( 十五 ) 中介者模式Mediator(对象行为型)
    设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型)
    设计模式 ( 十三 ) 命令模式Command(对象行为型)
    设计模式(十一)代理模式Proxy(结构型)
    设计模式(十)享元模式Flyweight(结构型)
    开源项目
    C#中的Marshal
    给枚举加上Description,必要时,可以直接获取枚举类型代表的中文
  • 原文地址:https://www.cnblogs.com/lpgit/p/9846247.html
Copyright © 2020-2023  润新知