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‘
原文地址:https://www.cnblogs.com/bchy/p/11688915.html
时间: 2024-10-11 02:33:11