变量和格式化输出

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

变量和格式化输出的相关文章

python变量及用户交互,用户名格式化输出

变量 name = wwjun Name2 = "wwjun" print ("name,Name2") 用户交互 Username = input ("username:") Password = input ("password:") Print(username,password) 用户名格式化输出 name = input ("name:") age = input ("age:"

【iOS开发-44】通过案例谈iOS代码重构:合并、格式化输出、宏变量、利用数组字典存储数据,以及利用plist的终极知识

首先我们今天的案例就是如下5个页面通过上一张下一张来切换: (1)第一步,基本是以很傻很直接的方式来创建,这里用到的主要点有: --把对象变量设置为全局变量使得可以在其他方法中调用来设置它们的属性 --设置了一个全局变量index,默认是0,然后通过增加减少这个index值并结合switch来调用不同的数据. --利用先调用一次change方法初始化页面,使得页面定格在第一帧. --利用按钮的enabled属性来设置按钮是否可以被点击,然后结合index的值分别在第1张和第5张时分别把上一张和下

【iOS发展-44】通过案例谈iOS重构:合并、格式化输出、宏观变量、使用数组来存储数据字典,而且使用plist最终的知识

我们今天的情况下是第一个例子,下面的5一来通过切换页上一页下一页: (1)第一步,基本是以非常傻非常直接的方式来创建.这里用到的主要点有: --把对象变量设置为全局变量使得能够在其它方法中调用来设置它们的属性 --设置了一个全局变量index,默认是0.然后通过添加降低这个index值并结合switch来调用不同的数据. --利用先调用一次change方法初始化页面.使得页面定格在第一帧. --利用button的enabled属性来设置button能否够被点击,然后结合index的值分别在第1张

变量、交互&amp;注释、数字&amp;字符串&amp;布尔、格式化输出

变量 变量定义规范: 声明变量: name = "Neo Zheng"    # name为变量名(标识符),"Neo Zheng"是变量值. 变量定义规则: 1. 变量名只能是字母.数字或下划线的任意组合: 2. 变量名的第一个字符不能是数字: 3. 有些关键字不能声明为变量名.['and', 'as', 'print', ...... ] 因为这些关键词是Python的语法. 注:变量名中间不能有空格,但末尾可以有. 变量命名习惯: 1. 驼峰体: eg. Nu

变量/常量/格式化输出/运算

一. 变量: 解释:将程序运算的中间结果这哪是存储起来,以便后续程序调用. 1,  变量必须要有数字,字母,下划线,任意组合. 2, 变量不能数字开头. 3, 不能是python中的关键字. ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import',

python 3 用户输入和格式化输出

# -*- coding:utf-8 -*- #用户输入 && 格式化输出 #getpass 模块是内置的,可以将输入的内容隐藏 import getpass username = input("username:") password = input("password:") age = int (input("age:")) job = input("job:") #print(type(age),type

python开发基础:格式化输出

1 #format的三种玩法 2 res1 = '{},{},{}'.format('joker','male',18) 3 print(res1) #类似于占位符 4 res2 = '{1},{0},{1}'.format('joker','male',18) 5 print(res2) #类似于列表角标查找 6 res3 = '{name},{age},{sex}'.format(sex='male',name='joker',age='18') 7 print(res3) #指定参数 8

【转】java格式化输出 printf 例子

[转]java格式化输出 printf 例子 转自http://www.cnblogs.com/TankMa/archive/2011/08/20/2146913.html#undefined import java.util.Date; /** * 使用printf输出 */ /**关键技术点 * 使用java.io.PrintStream的printf方法实现C风格的输出 * printf 方法的第一个参数为输出的格式,第二个参数是可变长的,表示待输出的数据对象 */ public clas

python基础---格式化输出和运算符

格式化输出与运算符 1.格式化输出 name='egon'print('myname is '+name)print('myname is',name) 如果需要传多个变量,这种方法就不合适了 使用%s.%d来接受变量 %s:既可以接受数字,也可以接受字符串 %d:只能接受数字 name='egon'age='18'print('my name is: %s my age is %s' %(name,age)) 练习: 打印某用户的姓名.年龄.工作.爱好等信息 users=[{'username