Fork me on GitHub

python 浅析格式化输出和深浅copy

一,格式化输出

         今天主要想记录一下关于格式化输出的例子,然后结合了自己的理解,分析如下:

          格式是 :百分号+占位符

  主要有三种使用形式:%s  (其中s表示string)表示字符串

            %d  (其中d表示digit)表示数字

            %f  (其中f表示float)表示浮点小数,也称小数 

其他的如下:%% 百分号标记 #就是输出一个%
%c 字符及其ASCII码
%d 有符号整数(十进制)
%u 无符号整数(十进制)
%o 无符号整数(八进制)
%x 无符号整数(十六进制)
%X 无符号整数(十六进制大写字符)
%e 浮点数字(科学计数法)
%E 浮点数字(科学计数法,用E代替e)
%f 浮点数字(用小数点符号)
%g 浮点数字(根据值的大小采用%e或%f)
%G 浮点数字(类似于%g)
%p 指针(用十六进制打印值的内存地址)
%n 存储输出字符的数量放进参数列表的下一个变量中

     Python支持将值格式化为字符串,虽然这可以包括非常复杂的表达式,但是最基本的用法是将值插入到%s 占位符的字符串中。

    %格式化符也可用于字典,可用%(name)引用字典中的元素进行格式化输出。

下面举例说明:

1,打印字符串

title = "hello  world!"
print( "%s" %title)
结果:hello  world!

注意:这里的 %s 被替换为后面 % 符号后窑传递给字符串的内容(他可以包括单个和多个字符串)

2,打印整数

number = 123
print("%d" %number)
结果:123

3,打印浮点数

number = 123
print("%f" %number)
结果:123.000000

python2.x  python3.x默认浮点数都保留6位小数

4,打印浮点数(指定保留位数)

number = 123
print("%2f" %number)
print("%4f" %number)
结果:123.00
结果:123.0000

  %f里指定保留小数位数时具有自动四舍五入的功能,比如b=3.14159  使用%.3f格式化之后输出的结果变成了b=3.142

5,指定占位符宽度

number = "ABCDE"
print( "%6s" %number)
print( "%06s" %number)
print( "%8s" %number)
结果: ABCDE
        0ABCDE
            ABCDE

指定输出d使用6个字符宽度,如果不够在前面补零,输出字符串时,默认右对齐,其实可以调整的

二,深浅copy

  复制,首先我们从切片技术说起。它应用于所有的序列,包括:列表,字符串,元祖。但是切片不能应用于字典,对于字典只能使用D.copy() 和 D.deepcopy()方法。

  下面具体说一下深浅copy,可以应用于序列,也可以应用于字典

import copy

a ={'a':1,'b':2}
x = copy.copy(a)          #浅拷贝:只拷贝顶级的对象,或者说父级对象
y = copy.deepcopy(a)    #深拷贝:拷贝所有的对象,顶级对象及其嵌套对象。或者说父级对象及其子对象

  所以说:深浅拷贝都是对源对象的复制,占用不同的内存空间

      如果源对象只有一级目录的话,源对象做任何改动,不影响深浅拷贝对象

      如果源对象不止一级目录的话,源对象做任何改动,都要影响浅拷贝,但不影响深拷贝

      序列对象的切片其实是浅拷贝,即只拷贝顶级的对象

 

posted @ 2017-08-26 20:28  战争热诚  阅读(1756)  评论(3编辑  收藏  举报