码迷,mamicode.com
首页 > 其他好文 > 详细

变量和格式化输出

时间:2019-10-16 23:13:00      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:表达式   返回   *args   _for   格式化输出   字符   科学计数法   style   you   

Python采用基于值的内存管理模式。赋值语句的执行过程是:首先把等号右侧表达式的值计算出来,然后在内存中寻找一个位置把值放进去,最后创建变量并指向这个内存地址。Python中的变量并不直接存储值,而是存储了值的内存地址或者引用,这也是变量类型随时可以改变的原因。

变量用于引用在程序中可能会变化的值。

1,变量

In [2]: name1=apple

In [3]: name2=apple

In [4]: id(name1)
Out[4]: 1438115923984

In [5]: id(name2)
Out[5]: 1438115923984  name1和name2的内存地址一样的 这是Python的内存优化机制
In [6]: name1="i love you"

In [7]: name2="i love you"

In [8]: id(name1)
Out[8]: 1438129390000

In [9]: id(name2)
Out[9]: 1438129393456  此时name1与name2的内存地址就不同了 对长字符串没有内存优化机制
In [21]: name1=1000

In [22]: name2=1000

In [23]: id(name1)
Out[23]: 1438129513968

In [24]: id(name2)
Out[24]: 1438129513616  数字在[-5,257)之间才有内存优化(只开出一个地址空间来)

In [25]: name1=name2=1000

In [26]: id(name1)
Out[26]: 1438129512784

In [27]: id(name2)
Out[27]: 1438129512784  连续赋值时就是相当于两个相同的指针指向内存地址,我认为一个钥匙上挂了两个环

2,格式化输出 字符串格式化输出还是字符形式的

input()函数的输出默认是字符串格式的

def format(*args, **kwargs): # real signature unknown
"""
Return value.__format__(format_spec)

format_spec defaults to the empty string
"""
pass


format(item,format-specifier) item是数字或者字符串,而格式说明符(format-specifier)指定条目item的格式。此函数返回一个字符串。

例如10.2f  其中10指域宽度     .2指精度   f指转换码    整体就是一个格式符。

In [32]: format(12.1512345,10.2f)  
Out[32]:      12.15                         小数点是一位的,默认右对齐,四舍五入

In [33]: format(23.2456453,10.2f)
Out[33]:      23.25

In [34]: format(12.3,"10.2f")     位数不够补0
Out[34]:      12.30

In [35]: format(23.23456,.3f)   没有指定宽度根据内容来自动设置的 .n用来指定精度
Out[35]: 23.235

In [36]: format(12345678.901,10.1f)
Out[36]: 12345678.9

In [37]: format(12345678.901,10.2f)  超出了宽度,保证内容优先,增加了宽度
Out[37]: 12345678.90
In [39]: format(585.58558,10.3e)  科学计数法
Out[39]:  5.856e+02

In [40]: format(0.0585858,10.2%) 百分数
Out[40]:      5.86%

In [41]: format(0.5989898,.3%)
Out[41]: 59.899%

In [42]: format(0.0585858,<10.2%) <左对齐 在格式符的比较前的位置
Out[42]: 5.86%     
In [43]: format(12,d)  十进制  格式化整数
Out[43]: 12

In [44]: format(12,x)  十六进制
Out[44]: c

In [45]: format(12,o)   八进制
Out[45]: 14

In [47]: format(12,"b") 二进制
Out[47]: 1100
In [48]: format(we will regain the lost after we lost it,<45s)
Out[48]: we will regain the lost after we lost it                  指定45为宽度
           
In [49]: format(we will regain the lost after we lost it,45s) 数字默认右对齐,而字符串是默认的左对齐
Out[49]: we will regain the lost after we lost it     

In [50]: format(we will regain the lost after we lost it,>45s)
Out[50]:      we will regain the lost after we lost it

%

In [53]: from math import pi

In [54]: pi%i%pi  i和d都是十进制
Out[54]: pi3

In [55]: %.5f%pi
Out[55]: 3.14159


In [58]: %10.3f%pi
Out[58]:      3.142

 

变量和格式化输出

标签:表达式   返回   *args   _for   格式化输出   字符   科学计数法   style   you   

原文地址:https://www.cnblogs.com/bchy/p/11688915.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!