zoukankan      html  css  js  c++  java
  • 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就可以了

  • 相关阅读:
    Docker 第二篇--安装Docker
    Docker 第一篇--初识docker
    VirtualBox 桥接上网方式的配置
    .NET服务器端按钮在客户端点击后禁用,服务端执行完事件后再次激活
    SignalR2.1部署IIS服务器无法推送消息
    SQL去掉某个字段重复记录
    动态生成WebService代理类
    openoffice启动服务并将office文件转换为pdf文件
    Hibernate 核心接口和工作机制
    linux下Mongodb集群搭建:分片+副本集
  • 原文地址:https://www.cnblogs.com/yanghr/p/14684531.html
Copyright © 2011-2022 走看看