zoukankan      html  css  js  c++  java
  • python 文件交互 操作

    python2数据类型是有int和long区别的 type(2**32) int type(2**64) long
    python3里面是没有long的概念的,长整型

    大概理解
    小数就是浮点数
    科学计数法也是浮点数 E代表秘
    52.3E4 52.3 x 10**4


    布尔值
    真和假
    1和10

    数据运算
    and
    or
    not

    in
    not in

    身份运算
    is
    is not

    计算机中能表示的最小单位是一个二进制位
    计算机中能存储的最小单位是一个二进制位
    bit

    8bit= 1byte(字节)
    1024byte=1kbyte
    1024kbyte=1mbyte
    1024mbyte=1gbyte

    and or ^
    128 64 32 16 8 4 2 1
    0 0 1 1 1 1 0 0 = 60
    0 0 0 0 1 1 0 1 = 13
    and (都为真)
    ----------------------------------------
    0 0 0 0 1 1 0 0 = 12
    or(任意为真)
    ------------------------------------------
    0 0 1 1 1 1 0 1 = 61
    ^(同时为真,同时为假 均非)
    0 0 1 1 0 0 0 1 = 49

    ~(按位取反)
    128 64 32 16 8 4 2 1
    0 0 1 1 1 1 0 0 = 60
    1 1 0 0 0 0 1 1 = 195 (-61)
    结果是195-256 = -61 (按位取反结果就是这么算的)

    三元运算
    >>> a,b,c=1,3,5
    >>> d=a if a>b else c
    >>> d
    5
    如果a>b d=a 否则 d=c

    字符串转换 二进制
    encode str-->bytes
    encode(编码)

    >>> '€20'.encode('utf-8')
    b'xe2x82xac20'
    >>> b'xe2x82xac20'.decode('utf-8')
    '€20'

    20欧元,编码,指定字符集,变成二进制
    string - > byte
    二进制,解码,指定字符集,变成bytes
    byte - >string

    列表
    范围值 左闭又开 (顾头不顾尾)
    names = ["father","mother","xixi","hanhan"]
    print(names)
    print(names[0],names[3])
    print(names[1:3]) # 左闭又开,取最左边的数,到最右边的数,不取最后边的数)
    #也叫 切片


    增删改查

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    # Author:summer_han
    names = ["father","mother","xixi","hanhan"]
    print(names)
    print(names[0],names[3])
    print(names[1:3])
    print(names[3])
    print(names[-1]) #取最后一个值
    print(names[-2:]) #取最后二个值
    print(names[0:]) #取所有值
    print(names[1:]) #取第一个值向后所有值
    print(names[:2]) #取钱两个值

    names.append("yeye") #加到最后
    print(names[0:])

    names.insert(4,"nainai")
    print(names[0:])

    names.insert(3,"nainai") #第三个位置插入
    print(names)

    names[3]="didi" #修改
    print(names)

    #删除的方法
    names.remove("didi") #删除弟弟
    print(names)

    del names[-1] #删除最后一个
    print(names)

    names.pop() #默认删除最后一个,如果输入位置则删除相应位置
    names.pop(1)
    print(names)


    #大列表,删除某个人名字
    print(names.index("father")) #打印位置
    print(names[names.index("father")]) #既打印位置又打印名字,当有多个人物重名方便辨认

    #统计某个人名有多少个
    names.append("didi")
    names.insert(1,"gege")
    names.insert(2,"father")
    #names.clear() #清空列表
    names.reverse() #列表反转
    print(names)

    print(names.count("father"))
    names.sort() #列表排序 特殊符号在最前,然后数字,然后大写,然后小写,按照ascii顺序排序的

    names2=[1,2,3,4]
    names.extend(names2) #把names2表合并过阿里,names2还存在

    print(names,names2)

    del names2 #删除变量names2
    print(names,names2)


    浅 copy:::
    names=['didi', 'father', 'father', ['sister','brother'],'gege', 'hanhan', 'mother', 'xixi']

    names2=names.copy()
    print(names)
    print(names2)

    names[2]="爸爸"
    names[3][0]="姐姐" #浅copy 在copy第二层的时候,copy的只是一个内存地址,不是实际数据
    #所以当第二层数据改变的时候,内存地址的指向变了,copy的数据也就跟着变了
    #同理 改names2的第二层 ,names的也会跟着改变

    print(names)
    print(names2)

    names2[3][1]="哥哥"
    print(names)
    print(names2)


    #如果想硬拷贝,数据不会跟着变,需要导入copy模块
    import copy
    names=['didi', 'father', 'father', ['sister','brother'],'gege', 'hanhan', 'mother', 'xixi']

    names2=copy.copy(names) #依然是浅copy
    names2=copy.deepcopy(names) #深copy 完全独立的数据,不会再随着改变而改变
    names[2]="爸爸"
    names[3][0]="姐姐"

    print(names)
    print(names2)

    names2[3][1]="哥哥"
    print(names)
    print(names2)
    #
    一般都用浅copy,因为深copy当列表过大时会占用两份内存空间


    #循环和切片步长
    names=['didi', 'father', 'father', ['sister','brother'],'gege', 'hanhan', 'mother', 'xixi']
    print(names[0:-1:2]) #从头到尾,步长为2,显示姓名
    print(names[:-1:2]) #同上
    for i in names:
    print(i)


    浅copy三种实现方式:
    people=['name',[1,2,3,'b']]
    1、
    import copy
    p1=copy.copy(people)

    2、
    p2=people[:]

    3、工厂函数
    p3=list(person) ???p3=list(people[1:2])

    浅copy什么情况下非常有用:
    夫妻共有存款案例
    import copy
    person=['name',['deposit',200]]
    p1=person[:]
    p2=person[:]
    print(p1)
    print(p2)

    p1[0]="sujunfeng"
    p2[0]="xiezhili"
    print(p1)
    print(p2)

    p1[1][1]=50
    print(p1)
    print(p2)

  • 相关阅读:
    swarm集群搭建 及集群维护操作
    zabbix 告警说明
    yum 下载安装包
    mongdb常见操作
    cloudera5.16.1 离线安装
    centos7 安装hadoop-3.2.1
    rpcbind 启动报错
    ingress-nginx 安装
    Dubbo学习
    mybatis防止SQL注入
  • 原文地址:https://www.cnblogs.com/summer-han/p/7954498.html
Copyright © 2011-2022 走看看