Python学习,Day2

    技术2022-07-10  94

    ### Number ( int float bool complex)

    #int 整型 (正整数 0 负整数) intvar = 123

    #type 获取值的类型 res = type(intvar)

    #id 获取一个值的地址 res = id(intvar)

    #二进制整型 intvar = 0b1111

    #八进制整型 intvar = 0o125

    #十六进制整型 intvar = 0x1010

    ### Number (int float bool complex)

    #(1) float 浮点型 小数 #表达方式1 floatvar = 4.88 print(floatvar) print( type(floatvar) )

    #表达方式2 科学计数法 floatvar = 6.7e4 print(floatvar) print( type(floatvar) )

    #(2) bool 布尔型 True 真的 False 假的 只有两个值 boolvar = True boolvar = False print( boolvar ) print( type(boolvar) )

    #(3) complex 复数 “”" complex 实数 + 虚数 3+4j 3: 实数 4j: 虚数 j: 如果有一个数,他的平方等于-1,那么这个数就是j,表达的是高精度的类型;(科学家认为有) “”" #表达方式一 complexvar = 56-3j complexvar = -3j print( complexvar ) print( type(complexvar) )

    #表达方式二 #语法 : complex(实数,虚数) complexvar = complex(56,-3) print( complexvar ) print( type(complexvar) )

    ### 字符串 str

    “”" 用引号引起来的就是字符串 “”"

    “”" #转义字符 : \ + 某个字符 (1) 将有意义的字符变得无意义 (2) 将无意义的字符变得有意义

    \n , \r\n : 换行 \t : tab缩进(水平制表符)[一般来说,一个锁进是4个空格的距离 \r : 将后面的字符直接拉到当前行行首 “”"

    #(1) 单引号引起来的字符串 strvar = ‘今天是开课的第二天’ print(strvar) print( type(strvar) )

    #(2) 双引号引起来的字符串 #将无意义的字符变得有意义 strvar = “文哥是这个世界上,\n我认为最帅的男人” strvar = “文哥是这个世界上,\r\n我认为最帅的男人” strvar = “文哥是这个世界上,我认\t为最 帅的男人” strvar = “文哥是这个世界上,\r我认为最帅的男人” strvar = “文哥是这个世界上,\n我认为\r最帅的男人” #将有意义的字符变得无意义 strvar = “文哥是这个世界上,浑身冒"金光"的男人” print(strvar) print( type(strvar) )

    #(3) 三引号引起来的字符串 ‘’’ “”"(支持跨行的效果) strvar = ‘’’ 我感觉我走错了房间, 貌似python31的同学是’祖安’服务器请来的"救兵" ‘’’ print(strvar) print( type(strvar) )

    #(4) 元字符串 r"字符串" 不转义字符,原型化输出字符串 strvar = r"E:\nython31\tay2" print(strvar)

    (5) 格式化字符串 “”" 语法 : “字符串” % (值1,值2,值3) %d 整型占位符 %f 浮点型占位符 %s 字符串占位符 “”"

    #%d 整型占位符 strvar = “王金刚学习容易走神,买了%d个风油精,提神醒脑” % (5) print(strvar)

    #- 占两位 原字符串默认居右 strvar = “白星今天%d岁” % (3) print(strvar) strvar = “白星今天-岁” % (3) print(strvar)

    #%-2d 占两位 原字符串默认居左 strvar = “白星今天%-2d岁” % (30000) print(strvar)

    #%f 浮点型占位符 strvar = “马春陪一个月开了%f工资” % (9.9) print(strvar)

    #%.2f 小数点保留2位 strvar = “马春陪一个月开了%.2f工资” % (9.9) print(strvar)

    #%f 存在四舍五入的情况 strvar = “马春陪一个月开了%.1f工资” % (9.876542342) print(strvar)

    #%s 字符串占位符 strvar = “%s” % (“python31的同学们都有祖安人民的特质”) print(strvar)

    #综合案例 strvar = “%s看好了一辆车,特斯拉model x,买了%d辆,花了%.1f元” % (“徐彦伟”,10,9.9) #strvar = “%s看好了一辆车,特斯拉model x,买了%d辆,花了%.1f元” % (“徐彦伟”,10,9.9) print(strvar)

    #可以全部使用%s占位符进行取代 strvar = “%s看好了一辆车,特斯拉model x,买了%s辆,花了%s元” % (“徐彦伟”,10,9.912345) print(strvar)

    ### 容器类型数据( str list tuple set dict )

    list 列表

    “”“特点: 可获取,可修改,有序”"" #定义一个空列表 listvar = [] print(listvar , type(listvar) )

    #定义一个普通列表 #正向下标索引 0 1 2 3 4 listvar = [100,19.123,True,1+12j,“马生平”] #逆向下标索引 -5 -4 -3 -2 -1 print(listvar)

    #1.获取列表当中的值 res = listvar[2] res = listvar[-3] print(res)

    #获取列表当中最后一个元素 #python 特有 print(listvar[-1])

    #通用写法 “”" len 获取容器类型数据的长度(元素的总个数) “”" res = len(listvar) print(res) # 5

    res = listvar[res - 1] print(res)

    #简写 print(listvar[len(listvar) - 1])

    #2.修改列表里面的元素 listvar[-3] = False print(listvar)

    ### tuple 元组

    “”“特点: 可获取,不可修改,有序”"" #定义一个空元组 tuplevar = () print(tuplevar , type(tuplevar))

    #定义一个普通元组 #正向下标索引 0 1 2 3 tuplevar = (“明浩”,“徐艳伟”,“李志辉”,“马春陪”) #逆向下标索引 -4 -3 -2 -1

    #1.获取元组当中的元素 res = tuplevar[1] res = tuplevar[-1] print(res)

    #2.可以修改元组当中的值? 不行! #tuplevar[0] = “王金刚” error

    #3.判定元组的类型 “”“逗号才是区分是否是元组的标识符”"" tuplevar = (123,) tuplevar = 123, print(tuplevar , type(tuplevar))

    ### str 字符串

    “”" 特征: 可获取,不可修改,有序 “”" #0 1 234 5 6 7 8 strvar = “我爱你,亲爱的菇凉” #-9-8-7-6-5-4-3-2-1

    #1.可以通过下标获取字符串当中的元素 res = strvar[1] res = strvar[-8] print(res)

    #2.可以修改字符串当中的元素么? 不行! #strvar[1] = “恨” error

    ### 集合 set (作用:集合之间的交差并补)

    “”" 特点: 无序,自动去重""" #定义一个集合 setvar = {“金城武”,“王俊凯”,“喻文波”,“王文”} print(setvar , type(setvar))

    #1.集合无序 #获取集合中的元素可以么? 不可以! #res = setvar[3] error #修改集合中的元素可以么? 不可以! #setvar[0] = “123” error

    #2.自动去重 setvar = {“金城武”,“王俊凯”,“喻文波”,“王文”,“王文”,“王文”,“王文”} print(setvar)

    #3.定义一个空集合 #setvar = {} setvar = set() print(setvar , type(setvar))

    ### 字典 dict

    “”" 特点: 键值对存储的数据,表面上有序,实际上无序 语法: { 键1:值1 , 键2:值2 … } “”"

    #1.定义一个空字典 dictvar = {} print(dictvar , type(dictvar))

    #2.定义一个空字典 dictvar = {“智多星”:“吴用”,“花和尚”:“鲁智深”,“浪里白条”:“张顺”,“母夜叉”:“孙二娘”,“回手掏”:“大司马”}

    #3.获取字典中的值 res = dictvar[“回手掏”] print(res)

    #4.修改字典当中的值 dictvar[“回手掏”] = “宋云杰” print(dictvar)

    字典的键 和 集合中的值 对数据类型有要求

    dictvar = {333:“aaa”,False:“bbb”,9+3j:“ccc”,3.14:“ddd”,(1,2,3,4):“fff”,“中文”:“123”,“top”:“王文”} print(dictvar)

    “”" 字典的键 和 集合中的值 数据类型的要求必须是如下几种: 如下类型可以: 不可变数据(可哈希的数据类型) Number(int , float , bool ,complex) , str , tuple

    不允许的类型: 可变数据(不可哈希的数据类型) list , set , dict

    但凡提到哈希算法(hash),都是典型的无序特征 目的: 为了更加均匀的把数据分配到内存里,底层用的算法类似于取模.

    python3.6版本之后,对字典做了优化,存储数据的时候用哈希算法 但是在拿出数据的时候,重新按照定义字典时的顺序进行重新排序 所以看起来有序,实际上无序 “”"

    #dic = {{“a”,“b”}:55} #setvar = {{“a”:1,“b”:2},45}

    Processed: 0.045, SQL: 9