美文网首页
python之基本数据类型点滴

python之基本数据类型点滴

作者: Python野路子 | 来源:发表于2017-12-10 00:29 被阅读0次
    • 字符串的拼接
      例:a = '苦短', b = 'Python' ,输出'人生苦短,我用Python'
    1. 用“+” 连接
    a = '苦短'
    b = 'Python'
    print('人生'+a+',我用'+b) 
    
    1. 格式化字符串 %s
    a = '苦短'
    b = 'Python'
    print('人生%s,我用%s'%(a,b))
    
    1. ' '.join()方式,注意括号里是要连接的可以是字符串,列表,元组可迭代的,其中里面的元素,必须是字符,因为这个方法是字符拼接,前面' '里面是连接 后面各个字符串的字符,即用什么字符来连接;
    a = '苦短'
    b = 'Python'
    print(''.join(['人生',a,',','我用',b]))
    
    1. format方式
    a = '苦短'
    b = 'Python'
    print('人生{},我用{}'.format(a,b)) #当{}里面是空的时候,里面默认索引为0,1,2。。。其对应值按format后括号里的元素顺序依次填入;
    print('人生{0},我用{1}'.format(a,b)) 
    print('人生{1},我用{0}'.format(b,a))#利用{}索引时,按照{}中索引在format后找到对应索引值填入,其中format后的值索引依次为0,1,2.。。。
    print('人生{n2},我用{n1}'.format(n1=b,n2=a))#{}里面可以指定对象名称,通过对象名称去format后面取对应值,可以是无序的。
    # 可以这么理解{}中需要什么,直接从format后面对号入座,默认顺序是0,1,2.....,
    
    • 此处有坑:
    li1=['I','like']
    li2 = ['python','!']
    #前面索引指取后面哪个元素,后面[]指元素哪个值
    print('{0[0]} {0[1]} {1[0]}{1[1]}'.format(li1,li2))
    
    • 格式化输出
      1.字符串
    #如果值本身不够指定宽度,默认右对齐
    print('%10s'%'python') >>>    python  #左边4个空格,右边对齐
    print('%-10s'%'python') >>>python    #右边4个空格,-表示左对齐
    print('%-1s'%'python') >>>python    #遵循参数长度,即小于本身长度,显示本身;
    
    1. 整数
    print('%d'%2) >>>'2' #可以int('%d'%2)来转化为int型
    print( '%d'%2.6) >>>'2'   #格式化整数部分
    
    1. 小数
    print('%f'%2.2)  >>>'2.200000'  #默认6位小数
    print('%.3f'%2.2) >>>'2.200'    #小数点后面代表精度
    print('%10.3f'%2.2) >>>'     2.200'         #小数点前面的数代表整个长度
    print('%010.3f'%2.2) >>>'000002.200'    #前面可以用0填充
    print('%3.5f'%2.2) >>>'2.20000'  #冲突了(所给出的宽度小于给出的精度时)遵循后面的精度
    
    1. %o 格式化8进制
    print('%o'%8) >>>'10'
    print('%o'%7) >>>'7'
    
    1. %x 格式化16进制
    print('%x'%16) >>> '10'
    print('%x'%9) >>>'9'
    print('%x'%10) >>>'a'
    print('%x'%11) >>>'b'
    print('%x'%15) >>>'f'
    
    1. %e 格式化科学计数法
     '%e'%100   #'1.000000e+02'  相当于10的2次方
     '%e'%1.3   #'1.300000e+00'   相当于1.3的
    

    7.+ 显示他的正负

    '%+d'%2  #‘+2’
    '%+d'%-2  #'-2'   注意引号里面不要写-,因为这个代表左对齐
    %d'%-2  #'-2'
    
    • 举例:
    a=1.1,用3种格式,输出 a 的值: 字符串格式, 整型格式, (浮点型+带加号+靠右端)
    '%s'%a >>>'1.1'
    '%d'%a >>>'1' #格式化整数部分
    '%+10.1f'%a>>>'+0000001.1' #值本身不够指定长度,默认右对齐,前面可以用0填充
    

    重点

    • 深浅复制
      首先要理解python中的变量含义,对于python而言,python的一切变量都是对象,变量的存储的只是一个变量的值所在的内存地址,而不是这个变量的只本身。类似指针,采用了引用语义的方式

    Python中对象的赋值都是进行对象引用(内存地址)传递
    1)首先看个简单的例子:


    image.png image.png

    上面,首先a初始化得到1的内存地址,然后再复制给b,b也指向了1,当a重新初始化后,指向了2,但是b不变
    2)看个复杂的,列表:


    image.png image.png

    lis2指向同一个列表,而里面元素又指向各自内存,无论lis或lis2改变其中一个,则2个都变,因为他们指向同一个列表;

    image.png

    使用copy.copy(),可以进行对象的浅拷贝,它复制了对象,但对于对象中的元素,依然使用原始的引用.

    image.png

    如果需要复制一个容器对象,以及它里面的所有元素(包含元素的子元素),可以使用copy.deepcopy()进行深拷贝


    image.png

    浅复制 #复制第一层

    深复制 #复制所有层

    深浅复制 只存在于嵌套列表;

    可参考:https://www.cnblogs.com/huamingao/p/5809936.html

    在Python中不可变对象指:一旦创建就不可修改的对象,包括字符串,元祖,数字

    在Python中可变对象是指:可以修改的对象,包括:列表、字典

    相关文章

      网友评论

          本文标题:python之基本数据类型点滴

          本文链接:https://www.haomeiwen.com/subject/ktzpixtx.html