python基础之数据类型

1、字符串(str)不可变对象

    str1=abc  str2=123 

(1) 字符串拼接以及格式化:

  • 第一种:直接使用加号相加  str1+str2  结果为abc123

  • 第二种:使用乘号  str1*3  结果为 abcabcabc  (字符串与数字之间、可以用 乘号、表示若干个字符串)

  • 第三种:int类型的6 想拼接到str1b,使用str()   如:str1+str(6) 结果->abc6

  • 第四种:使用format、{}作为占位符 如 :“{}{}”.format(str1,6) 结果为abc6 (格式化方法一)

  • 第五种:使用f加{}  如 f”{str1}6”  结果为 abc6  (格式化方法二)

  • 第六种:使用%,如 "%s%d%s%f" %("我今年",18,"岁",0.6)  结果为:我今年18岁0.600000  (格式化方法三)s是字符串 d是整数 f是浮点数(默认小数点后6位)

(2) 字符串的转义符:

  • 第一种:如 换行符、直接在前多加一个\,如:”abc\n

  • 第二种:用正斜杠替代反斜杠、如“abc/n”

  • 第三种:直接在字符串前面加r,它会把引号的内容全部当作普通字符 ,如 r”da cd ”

(3) 字符串的下标:str1=“好好学习,天天向上”

  • 第一种:正向(从左往右)是0到n 如str1[0] 是“好”

  • 第二种:反向(从右往左)是从-1开始 如 str1[-1] 是 “上”

(4) 字符串的切片:str1=“好好学习,天天向上”

  • 公式:str1=[起始站,终止值]  :左闭右开即包含左边不包含右边

  • 步长为正数时:起始值 < 终止值(即从左到右取)、如str1[2:4:1] 或者 str1[-7:-5:1]   结果都为“学习”

  • 步长为负数时:起始值 > 终止值(即从右到左取)、如str1[3:1:-1] 或者 str1[-6:-8:-1]   结果都为“习学”

  • 举例:str1[:]  表示正向全取

  • str1[::-1]:负向全取,结果为 “上向天天,习学好好”

2、列表(list)

  list1=[1,hello,{age:18},1.68] list2=[1,a]

(1) 列表的添加:

  • append():把元素添加到列表最后如 list2.append(6) 结果为list2=[1,“a”,6]

  • Insert(位置下标,值):把元素插入到列表的指定位置  如     list2.insert(0,“yhr”)结果为list2=[“yhr”,1,‘a’]

  • 位置下标为负数时、如 list2.insert(-1,“test”) -----结果为 list2=[1,“test”,‘a’] 总结:不管下标是正数还是负数、都是把原该下标的值往右边挤

  • extend():两个列表相拼接、这里是列表噢,如list2.extend([2,3])最后结果为list2 =[1,‘a’,2,3] ;还有一个特例就是参数是字符串时、会把这个字符串先拆成一个列表、再拼接、如 list2.extend(“hi”)结果为 list2=[1,‘a’,‘h’,‘i’]

(2) 列表的删除:list1=[1,2,3,4,2,3]

  • pop():括号内不填写参数时、表示删除列表的最后一个元素

  • 有参数时,参数是列表的下标 如 list1.pop(1) 结果为list1=[1,3,4,2,3]   

  • remove():删除列表的具体值、如果该值在列表中有多个、只删除找到的第一个如 list1.remove(2),结果为list1=[1,3,4,2,3]

  • del list[1]  删除列表中下标为1的元素

(4) 列表的修改:

  • 直接根据列表下标、重新赋值就可以了、如list1[1]=“yhr”结果为list1=[1,“yhr”,3,4,2,3]

(5) 列表的切片:格式  [起始值:终止值:步长]  左闭右开

  • 与字符串的切片一样

  • 切片生成的是新列表、哪怕切片全取、相当于浅拷贝

  • 列表的浅拷贝:只拷贝列表的第一层  copy模块的copy() 方法

  • 列表的深拷贝:拷贝列表的所有层、copy模块的deepcopy()方法

  • 普通的赋值:如

    list2=list1 既不是浅拷贝也不是深拷贝,相当于一个快捷方式、两个列表指向的是同一个内存地址【根据id()内置函数可查看内存地址、如id(list2)】

3、元组(tuple):不可变对象

  tuple1=(“a”,123,[1,2,3])

(1) 元组定义:

  • 元素放到小括号内、且必须要有一个逗号,一个元素时 (10,)

  • 如果元组中的元素是可变对象,那么我们可以修改它的值,如tuple1[2][0]=“yhr”结果为 tuple1=(“a”,123,[“yhr”,2,3])

4、布尔表达式(bool):

(1) 使用:

  • 布尔型:True、False (一般True表示1、False表示0)

  • =表示赋值,==表示判断恒等 如 1==2结果为False;    2**3==8结果为True

  • “aA”>“aA” 结果为True 、(字符串中先比较第一位、如果能得出结论就不再比较第二位了,如在这里a的阿斯克码为97 ,A的阿斯克码是65。97>65已得出结论、所以不会再比较第二个字符了)

  • 20 in [10,[20,30]] 结果为False 因为这里20是子列表的元素。记住一句话 “父亲的老婆不是你老婆”

  • and和or 逻辑运算符 and 所有条件都要满足结果为True, or 其中一个条件为真结果就为True

  • 优先级 not>and>or

  • isinstance(实例,类):一个内置函数、用来判断某个实例是否属于某个类  如isinstance(“abc”,str) 结果为True

5、字典(dict)

  dict1={name:张三,12:99,“age:[1,2,3]}

(1) 字典概念:

  • 字典永远以键值对的方式出现

  • 字典是无序的,每个键值对存放的前后顺序并不影响字典

  • 字典根据键来找到对应的值

  • 字典的键只能是不可变对象:字符串、数字、元组;不能存放可变对象(如:列表、字典)

  • 字典的值可以是任意类型的对象

(2) 字典的新增:

  • dict1[“sex”]=”男”结果为:dict1={“name”:“张三”,12:99,“age”:[1,2,3],“sex”:”男”}

(3) 字典的修改:

  • dict1[“name”]=”yhr”结果为:dict1={“name”:“yhr”,12:99,“age”:[1,2,3]}  其实跟新增的是一样写法、有键则是修改,没有则是新增

  • 使用update():如 dict1.update({“name”:“hh”,12:66})结果为dict1={“name”:“hh”,12:66,“age”:[1,2,3]}  该方法可以同时修改多个

(4) 字典的删除:

  • del dict1["name"],dict1[12]  结果为:dict1={"age":[1,2,3]}

  • 清空字典 dict1.clear() 字典还是原来的字典

  • dict1={} 相当于重新生成了一个字典、地址已经换了

(5) 字典的使用:

  • 判断某个值是否在字典中、是通过键进行判断的

  • 清空字典 dict1.clear() 字典还是原来的字典

  • 遍历字典中的键 for one in dict1.keys()

  • 遍历字典中的值for one in dict1.values()

  • 遍历字典中的键值对 for k,v in dict1.items()

  • 类列表 print(dict1.keys()) 结果为 dict_keys(["name",12,"age"]) 它不可以使用下标,如果想使用列表、就把它强转成list就可以了

原文地址:https://www.cnblogs.com/yanghr/p/14684531.html