• 这几日英文大汇


    1. int ==> 整数. 主要⽤用来进⾏行行数学运算

    2. str ==> 字符串串, 可以保存少量量数据并进⾏行行相应的操作

    3. bool==>判断真假, True, False

    4. list==> 存储⼤大量量数据.⽤用[ ]表⽰示

    5. tuple=> 元组, 不可以发⽣生改变 ⽤用( )表⽰示

    6. dict==>字典,保存键值对,⼀一样可以保存⼤大量量数据

    7. set==> 集合, 保存⼤大量量数据. 不可以重复. 其实就是不保存value的dict

    三. 布尔值(bool)
    取值只有True, False. bool值没有操作.

    转换问题: str => int int => str

    int => bool bool=>int

    str => bool bool => str

    int(str) str(int)

    bool(int). 0是False 非0是True int(bool) True是1, False是0

    bool(str) 空字符串串是False, 不空是True str(bool) 把bool值转换成相应的"值"

    四. 字符串串(str)
    把字符连成串串. 在python中⽤用', ", ''', """引起来的内容被称为字符串串.

        行了噩梦开始了

    4.1 切片和索引
    1. 索引.索引就是下标.切记,下标从0开始

    s1 = "python最⽜牛B"

    print(s1[0])
    print(s1[1])

    print(s1[-1])

    print(s1[-2])

    2. 切片,我们可以使⽤用下标来截取部分字符串串的内容 语法: str[start: end]

    规则: 顾头不顾腚, 从start开始截取. 截取到end位置. 但不包括end

    print(s2[0:3]) 从0到3不包括3  

    print(s2[4:])如果想直接最后直接最后

    print(s2[-1:-5])从负一到负五 默认都是往从左往右所以怎么也不能这么数 一会可以有什么步数什么的 

    print(s2[1:5:2])     从1到5隔两个一取,3就是3个一取,负2就反着走从右往左走也隔两个一取,正负决定取向方向,数决定几个一取

    4.2 字符串串的相关操作⽅方法                      字符串特别牛逼,永不可变,任何对字符串的操作都没卵用,都要再打一个字符串

    s1=“我才是真正的彭于晏”

    s1.capitalize ()  这样的话什么卵用没有, capitalize 这是大小写转换  这老师不靠谱是真不行啊,妈的实践验证,这是首字母小写变成大写   大写不变,后面的所有大写变小写 小写不变  这个猜测是针对人名的吧

    ret=s1.lower()我仅有的一点英语知识,所有字母小写

    ret=s1.upper()所有字幕大写

    ret=s1.sawpcase()这个是真正的大小写转换

    ret = s1.casefold() 这个和lower 是一样的 就是这个牛逼一点说是什么东欧字母都支持 但是是不长用的

    s3 = "alex eggon,taibai*yinwang_麻花藤

    ret=s3。title()             

    Alex Eggon,Taibai*Yinwang_麻花藤                            所有被特殊字符隔开的首字母都大写

    s4 = "alex⽼老老男孩wusir "                             # Alex⽼老老男孩Wusir          

    print(s4.title())            这个中文也算特殊字符

    2 切来切去

    s5 = "周杰伦"
    ret = s5.center(10, "*")     拉长10个字符吧原字符改到里面  算原字符10个字符

    print(ret)

    改变tab字符长度那个不管了

    s7 = " alex wusi r”  

    ret = s7.strip(   )              这个是去掉左右两端的括号

    print(ret)

    lstrip   左边的空格        rstrip     右边的空格

    s7 = "abcdefgabc"

    print(s7.strip("abc"))         没有内容默认去空格  有内容去内容

    s8 = "sylar_alex_taibai_wusir_eggon"
    ret = s8.replace('alex', '⾦金金⻆角⼤大王')             这个是替换  一定要记得元字符串不可改

     ret = s8.replace('i', 'SB', 2 )           老套路 步长把i换成sb换2次

    s9 = "alex,wusir,sylar,taibai,eggon"

    lst = s9.split(",")         字符串切割根据,切,括号里是啥根据啥切
    print(lst)
    

    s12 = "我叫%s, 今年年%d岁了了, 我喜欢%s" % ('sylar', 18, '周杰伦') # 之前的写法print(s12)
    s12 = "我叫{}, 今年年{}岁了了, 我喜欢{}".format("周杰伦", 28, "周润发") # 按位置格式化print(s12)
    s12 = "我叫{0}, 今年年{2}岁了了, 我喜欢{1}".format("周杰伦", "周润发", 28) # 指定位置print(s12)
    s12 = "我叫{name}, 今年年{age}岁了了, 我喜欢{singer}".format(name="周杰伦", singer="周润 发", age=28)

                 格式化输出plus 终于有点用了

    s13 = "我叫sylar, 我喜欢python, java, c等编程语⾔言."

    ret1 = s13.startswith("sylar")

    print(ret1)                         这是判断是不是括号内的开头          endwith 是否以括号内结尾

    ret7 = s13.count("a")
    print(ret7)             count 是查找括号里的 出现的 次数
    
    ret5 = s13.find("sylar")
    print(ret5)            find 是查找括号里的东西所在位置
    ret6 = s13.find("tory")
    print(ret6)            find   查找    找不到返回-1

    ret7 = s13.find("a", 8, 22) # 切⽚片找

    print(ret7)                   查找8到22  查找a在哪

    ret8 = s13.index("sylar")                                    #  求索引位置. 注意. 如果找不不到索引. 程序会报错

    print(ret8)                     解释的很明白了,索引是0开始的  和后面的len不一样

    s14 = "123.16"
    s15 = "abc"
    s16 = "_abc!@"

    print(s14.isalnum())
    print(s15.isalnum())
    print(s16.isalnum())                                是否由字母和数字组成的

    print(s14.isalpha())
    print(s15.isalpha())
    print(s16.isalpha())                                是否由字母组成

    print(s14.isdigit())
    print(s14.isdecimal())
    print(s14.isnumeric()) # 这个⽐比较⽜牛B. 中⽂文都识别.print(s15.isdigit())

    print(s16.isdigit())                                是否由数字组成,不包括小数点

    6. 计算字符串串的⻓长度

    s18 = "我是你的眼, 我也是a"
    ret = len(s18) # 计算字符串串的⻓长度print(ret)

    注意: len()是python的内置函数. 所以访问⽅方式也不⼀一样. 你就记着len()和print()⼀一样就⾏行行 了了

      这尼玛哪一样了?   也不也是print打印出来吗?          就记得len是求长度就完了  也好使,而且不是从0开始数的

    7. 迭代

    我们可以使⽤用for循环来便便利利(获取)字符串串中的每⼀一个字符 语法:

    for 变量量 in 可迭代对象:

    pass
    可迭代对象: 可以一个⼀个往外取值的对象                           就是固定公式你肿么破,至于这个可迭代对象,我还搞不清楚 现在学的 字符串 数字元组啊,什么的都是 可迭代吧。

    in有两种⽤用法:
    1. 在for中. 是把每⼀一个元素获取到赋值给前⾯面的变量量. 2. 不不在for中. 判断xxx是否出现在str中.

     自己试了一下第二个In感觉用处不大

    # 练习, 计算在字符串串"I am sylar, I'm 14 years old, I have 2 dogs!"s20 = "I am sylar, I'm 14 years old, I have 2 dogs!"
    count = 0
    for c in s20:

        if c.isdigit():
            count = count + 1
    
    print(count)       第17个是数字,一直打0到第17开始是1一直都是1     就是查找数字在s20里出现的次数      
    这样的话第三天的完了,let's,go

    第四天的也没什么特难的,都是英语难

    ⼀一. 列列表
    1.1 列列表的介绍

    列列表是python的基础数据类型之⼀一 ,其他编程语⾔言也有类似的数据类型. 比如JS中的数 组, java中的数组等等. 它是以[ ]括起来, 每个元素⽤用' , '隔开⽽而且可以存放各种数据类型:

    lst = [1, '哈哈', "吼吼", [1,8,0,"百度"], ("我","叫", "元", "组"), "abc", {"我 叫":"dict字典"},{"我叫集合","集合"}]

    
    

    列列表相比于字符串串. 不仅可以存放不同的数据类型. ⽽而且可以存放⼤大量量的数据. 32位python可以存放: 536870912个元素, 64位可以存放: 1152921504606846975个元素.⽽而且列列 表是有序的(按照你保存的顺序),有索引, 可以切⽚片⽅方便便取值.

    
    

    2.2 列列表的索引和切片 列列表和字符串串⼀一样也拥有索引:

    lst = ["麻花藤", "王剑林林", "⻢马芸", "周鸿医", "向华强"]

    print(lst[0]) # 获取第⼀一个元素
    print(lst[1])
    print(lst[2])

    lst[3] = "流动强" # 注意. 列列表是可以发⽣生改变的. 这⾥里里和字符串串不不⼀一样

    print(lst) # ['麻花藤', '王剑林林', '⻢马芸', '流动强', '向华强']                这个修改比较简单

    s0 = "向华强"
    s0[1] = "美" # TypeError: 'str' object does not support item assignment 不不 允许改变
    print(s0)                                            这边的话是个坑,这个的话 s0是字符串,字符串不可改


    lst = ["麻花藤", "王剑林林", "⻢马芸", "周鸿医", "向华强"]

    print(lst[0:3]) # ['麻花藤', '王剑林林', '⻢马芸']

    print(lst[:3]) # ['麻花藤', '王剑林林', '⻢马芸']


    print(lst[1::2])
    print(lst[2::-1])
    
    print(lst[-1:-3:-2])
    

    # ['王剑林林', '周鸿医'] 也有步⻓长
    # ['⻢马芸', '王剑林林', '麻花藤'] 也可以倒着取

    # 倒着带步⻓长                        这个和昨天的序列一样,简单 序列加步长

    ⼆二. 列列表的增删改查
    1. 增, 注意, list和str是不⼀一样的. lst可以发⽣生改变. 所以直接就在原来的对象上进⾏行行了了操作

    lst = ["麻花藤", "林林俊杰", "周润发", "周芷若"]print(lst)
    lst.append("wusir")
    print(lst)            append在这组序列的最后面加一个

    lst = ["麻花藤", "张德忠", "孔德福"]
    lst.insert(1, "刘德华")                   # 在1的位置插⼊入刘德华. 原来的元素向后移动⼀位   可选序列       和上边的比应该是一个可以选序列一个不可选,

    print(lst)             

    lst = ["王志⽂文", "张⼀一⼭山", "苦海海⽆无涯"]

    lst.extend(["麻花藤", "麻花不不疼"])

    print(lst)                                   迭代添加就是智能添,把里面的元素一个个添加,而append就是无脑在后面加一个

    2. 删除
    pop, remove, clear, del       只有这几种  后文一点一点讲解用法


    lst = ["麻花藤", "王剑林林", "李李嘉诚", "王富贵"]

    print(lst)
    deleted = lst.pop() # 删除最后⼀一个           不选数默认最后一个

    print("被删除的", deleted)                       这个pop括号里选的啥(序列)就删除哪个元素,              

    print(lst)                          

    el = lst.pop(2) # 删除2号元素

    print(el)            
    print(lst)

    lst.remove("麻花藤")                   # 删除指定元素        只能指定元素不能写序列

    lst.remove("哈哈")                      # 删除不不存在的元素会报错

    print(lst)

    lst.clear()                 清空lst    全没

    del lst[1:3]               del lst【1】  只删除一个也行

    print(lst)        删除序列1到2 3 顾头不顾尾

    3. 修改 索引切片修改

    lst = ["太⽩白", "太⿊黑", "五⾊色", "银王", "⽇日天"]

    lst[1] = "太污" # 把1号元素修改成太污

    print(lst)

    lst[1:4:2] = ["麻花藤", "哇靠"] # 切片修改也OK. 如果步⻓不是1, 要注意. 元素的个 数    这个也和之前的一样  

    rint(lst)

    lst[1:4] = ["李李嘉诚个⻳龟⼉儿⼦子"] # 如果切⽚没有步长或者步长是1. 则不⽤关心个数   就是吧1到3所有的都换一遍

    print(lst)

    4. 查询,列列表是⼀一个可迭代对象,所以可以进⾏行行for循环

    只有这一种查询方式

    for el in lst:
        print(el)      只有这一种查询方式  使用方法 把想查询的东西 在下面再写一行
    for el in lst:
      if el== “想查询的”
    然后这行再写打印它啊 加减啊 首字母大小写啊 判断是不是什么开头啊 这一般不用了 你都知道你要输入的,也可能用户输入的

    5. 其他操作

    lst = ["太⽩白", "太⿊黑", "五⾊色", "银王", "⽇日天", "太⽩白"]

    c = lst.count("太⽩白") # 查询太⽩白出现的次数          这个查询也没什么改变

    print(c)

    lst = [1, 11, 22, 2]
    lst.sort() # 排序. 默认升序

    print(lst)
    lst.sort(reverse=True) # 降序

     print(lst)              升序降序都要打的reverse   默认是f的  你要想倒序就要改成t

    lst = ["太⽩白", "太⿊黑", "五⾊色", "银王", "⽇日天", "太⽩白"]

    print(lst)
    lst.reverse()           180 度 倒序
    print(lst)

    l = len(lst) # 列列表的⻓长度print(l)           这个排序永远没有0的 就是1正常不反人类数的

    三. 列列表的嵌套 采⽤用降维操作.

    ⼀一层⼀一层的看就好.

    lst = [1, "太⽩白", "wusir", ["⻢马⻁虎疼", ["可⼝口可乐"], "王剑林林"]]# 找到wusir

    print(lst[2])
    # 找到太⽩白和wusir

    print(lst[1:3])# 找到太⽩白的⽩白字

    print(lst[1][1])
    

    # 将wusir拿到. 然后⾸首字⺟母⼤大写. 再扔回去

    s = lst[2]
    s = s.capitalize()             这都没什么难的,就是把之前的记住这都好用
    lst[2] = s

    print(lst)
    # 简写
    lst[2] = lst[2].capitalize()print(lst)       序列可以直接更改  所以简单点

    # 把太⽩白换成太⿊黑
    lst[1] = lst[1].replace("⽩白", "⿊黑")   替换单词一样  

    print(lst)

    # 把⻢马⻁虎疼换成⻢马化疼
    lst[3][0] = lst[3][0].replace("⻁虎", "化")     当替换列表中的东西时这么用 多维吗  将为操作      

    print(lst[3][0])

    lst[3][1].append("雪碧")print(lst)     这条有点多余了

    四. 元组和元组嵌套
    元组: 俗称不可变的列列表.⼜又被成为只读列列表, 元组也是python的基本数据类型之⼀一, ⽤用⼩小括

    号括起来, ⾥里里⾯面可以放任何数据类型的数据, 查询可以. 循环也可以. 切片也可以. 但就是不能 改.

    tu = (1, "太⽩白", "李李⽩白", "太⿊黑", "怎么⿊黑")

    print(tu)

    print(tu[0])
    print(tu[2])
    print(tu[2:5]) # 切⽚片之后还是元组

    # for循环遍历元组

    for el in tu:

    print(el)            自从学了for循环用的太多了这个早记得了

    # 尝试修改元组
    # tu[1] = "⻢马⻁虎疼" # 报错 'tuple' object does not support item assignment

    tu = (1, "哈哈", [], "呵呵")
    # tu[2] = ["fdsaf"] # 这么改不不⾏行行

    tu[2].append("麻花藤") # 可以改了了. 没报错

    tu[2].append("王剑林林")
    print(tu)                       元素不可变这里指的是元组里的元素不可变,再里面的子元素可变 例如列表    子元素如果是元素还是不可变,再循环下去没试

    元组中如果只有⼀一个元素. ⼀一定要添加⼀一个逗号, 否则就不是元组

    tu = (1,)
    print(type(tu))

    元组也有count(), index(), len()等⽅方法. 可以⾃自⼰己测试使⽤用  

    五. range
    range可以帮我们获取到⼀一组数据. 通过for循环能够获取到这些数据.

    for num in range(10):
        print(num)
    
    for num in range(1, 10, 2):
        print(num)
    
    for num in range(10, 1, -2):
        print(num)# 反着来, 和切⽚片⼀一样     这个range 和普通的for  变量 in  迭代对象,最大的区别就是 r一般对应数字假如1,2,3 打印出的是每一行一个数 1 2  3  而第二个for 是每一次都把123打出来了

    ⼀一. 字典的简单介绍
    字典(dict)是python中唯⼀一的⼀一个映射类型.他是以{ }括起来的键值对组成. 在dict中key是

    唯⼀一的. 在保存的时候, 根据key来计算出⼀一个内存地址. 然后将key-value保存在这个地址中.这种算法被称为hash算法, 所以, 切记, 在dict中存储的key-value中的key'必须是可hash的,如果你搞不懂什什么是可哈希, 暂时可以这样记, 可以改变的都是不可哈希的,那么可哈希就意味着不可变. 这个是为了了能准确的计算内存地址⽽而规定的.

    已知的可哈希(不可变)的数据类型: int, str, tuple, bool不可哈希(可变)的数据类型: list, dict, set

    语法 :
    {key1: value1, key2: value2....}

    注意: key必须是不可变(可哈希)的. value没有要求.可以保存任意类型的数据

    dic = {123: 456, True: 999, "id": 1, "name": 'sylar', "age": 18, "stu": ['帅 哥', '美⼥女女'], (1, 2, 3): '麻花藤'}
    print(dic[123])
    print(dic[True])
    print(dic['id'])
    print(dic['stu'])
    print(dic[(1, 2, 3)])
    # 不不合法
    # dic = {[1, 2, 3]: '周杰伦'}
    # dic = {{1: 2}: "哈哈哈"}
    dic = {{1, 2, 3}: '呵呵呵'}

    # list是可变的. 不不能作为key # dict是可变的. 不不能作为key # set是可变的, 不不能作为key

    dict保存的数据不是按照我们添加进去的顺序保存的。是按照hash表的顺序保存的。而hash表不是连续的,所以不能进行切片工作,它只能通过key来获取dict中的数据

    二. 字典的增删改查和其他相关操作

    1. 增加

    dic = {}
    dic['name'] = '周润发' # 如果dict中没有出现这个key, 就会新增⼀一个key-value的组 合进dict
    dic['age'] = 18                       强行添加没啥说的 刚才翻了一下上边那么多 没研究明白  记得之前也有强行添加类的啊
    print(dic)

    # 如果dict中没有出现过这个key-value. 可以通过setdefault设置默认值

    dic.setdefault('李李嘉诚') # 也可以往⾥里里⾯面设置值.     后面没设置值显示值为None
    dic.setdefault("李李嘉诚", "房地产") # 如果dict中已经存在了了. 那么setdefault将不不会 起作⽤用 

    print(dic)

    2. 删除

    ret = dic.pop("jay")           pop和前文一样bj4
    print(ret)
    
    del dic["jay"]                del同上
    print(dic)
    

    # 随机删除.
    ret = dic.popitem()                          pycharm也不知道该说是修复了,还是说优化了,还是说bug   只删除最后一个了  不是随机删除了

    # 清空字典中的所有内容dic.clear()            这个clear  这很干净

    3. 修改

    dic = {"id": 123, "name": 'sylar', "age": 18}
    dic1 = {"id": 456, "name": "麻花藤", "ok": "wtf"}
    dic.update(dic1) # 把dic1中的内容更更新到dic中. 如果key重名. 则修改替换. 如果不不存 在key, 则新增.
    print(dic)
    print(dic1)                      dic打印出来的是全的,dic1就是个弟弟 端茶倒水的

    4. 查询 查询⼀一般⽤用key来查找具体的数据.

    print(dic['name'])               
    # print(dic['sylar']) # 报错          如果有这个key直接打出来了  没有这个key就报错

    prit(dic.get("ok"))

    print(dic.get("sylar")) # None                     这个最大的优点就是 如果没有这个不会报错会出None

    print(dic.get("sylar", "⽜牛B")) # ⽜牛B           这个就是如果没有就输出自己打的value2值

    5. 其他相关操作

    dic = {"id": 123, "name": 'sylar', "age": 18, "ok": "科⽐比"}

    print(dic.keys()) # dict_keys(['id', 'name', 'age', 'ok']) 不不⽤用管它是什什么.当 成list来⽤用就⾏行行
    for key in dic.keys():   就是list 了  无脑背吧

    print(key)

    print(dic.values()) # dict_values([123, 'sylar', 18, '科⽐比']) ⼀一样. 也当list来⽤用
    for value in dic.values():    同上

        print(value)
    

    print(dic.items()) # dict_items([('id', 123), ('name', 'sylar'), ('age', 18), ('ok', '科⽐比')]) 这个东⻄西也是list. 只不不过list中装的是tuple   把list里面全变成tuple了
    for key, value in dic.items(): # ?? 这个是解构                

        print(key, value)
    

    # 解构
    a, b = 1, 2print(a, b)

    (c, d) = 3, 4
    print(c, d)
    
    e, f = [1, 2, 3]
    print(e, f)
    

    # 解构的时候注意数量量必须匹配

    1. is 和 == 的区别

             #小数据池

                # 数字小数据池的范围  -5 ~ 256

                # 字符串中如果有特殊字符他们的内存地址就不一样

                # 字符串中单个*20以内他们的内存地址一样,单个*21以上内存地址不一致

               # 黑框框 == 终端

                # a = 'alex@'

                # a1 = 'alex@'

                # print(a is a1)    # Fales

                # n = 5//2

                # n1 = 2

                # print(n is n1)    #True

                # a = 'a'*21

                # b = 'a'*21

                # print(a is b)        False

               # a = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'

                # b = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'

                # print(a is b)          Ture

               # n = -6

                # n1 = -6

                # print(n is n1)  #False

                # n = -5

                # n1 = -5

                # print(n is n1)    #True

                # n = 257

                # n1 = 257

                # print(n is n1)     #True

                #总结:

                    # == 比较   比较的俩边的值

                    # is   比较   比较的是内存地址   id()

    2. 编码和解码

             ascii 码:

                   不支持  中文

                   支持    英文  数字  符号

                   8位      一个字节

             gbk码  国标:

                   支持  中文,英文,数字,符号

                   英文  16位   二个字节

                   中文  16位   二个字节

             unicode  万国码

                    支持  中文,英文,数字,符号

                    英文  32 位  四个字节

                    中文  32位   四个字节

             utf-8   长度可变的万国码 最少用8位

                    英文   8位    一个字节

                    中文   24位   三个字节

             Python3中 程序运行阶段 使用的是unicode   显示所有的内容

             bytes类型

                传输和存储都是使用bytes

             pycharm 存储的时候默认是使用utf-8

    总结:

        is 和 == 区别

            is  比较内存地址

                    id()   ---- 获取内存地址

                    小数据池:

                        数字的小数据池范围是 -5 ~ 256

                        字符串:

                            字符串中不能包含特殊符号   + - * / @ 等等

                            字符串单个字符*20以内内存地址都是一样的,单个字符*21以上内存地址不一致

            注意: pycharm是个坑, 一个py文件中所有相同的字符串 一般都是使用一样的内存地址

            ==  比较俩边的值

        编码和解码

            encode(编码方式)     ---- 拿到明文编码后对应的字节

            decode(编码方式)     -----将编码后的字节解码成对应的明文

        注意: 用什么进行编码就要什么进行解码  不然后会懵逼!

     
     
     
  • 相关阅读:
    jxl将list导入到Excel中供下载
    秒转为时分秒格式js
    秒转为时分秒格式
    加载样式js
    myeclipse:web项目不能显示Web App Libraries
    myeclipse出现src作为报名一部分src.com.*
    top命令
    Linux编写一个C程序HelloWorld
    前端jsp页面script引入url项目名使用${appName}
    流量监控iftop安装-CentOS7
  • 原文地址:https://www.cnblogs.com/Mrszhao/p/9410520.html
Copyright © 2020-2023  润新知