数字
int(整型)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483646
在64位机器上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(长整型)
跟c语言不通,python的长整数没有指定位宽,即:python没有限制场整数数值大小,但实际上由于机器内存有限,我门使用的长整型不可能无限大。
注意,自python2.2起,如果整数发生溢出,python自动将整数数据转换为长整数,所以如今不再长整型数据后面加L也不会导致严重后果。
float(浮点数)
complex(复数)暂时用不到
2.布尔值
真或假
1或0
3.字符串
字符串的内部原理&万恶的‘+’号
s = “hello alex”
python是c语言开发的。
#c语言,没有字符串:字符串使用字符组表现
hello —五个字符
字符数组 [’h’,’e’,…’o’]
所以python中如果对一个字符串进行修改,就是在内存中开辟了一块内存。
比如hello 改成helloaa
并不是将[’h’,’e’,’l’..,o]数组后面加上[a,a]
而是内存中开辟一个空间把前面的hello重写后加上[a,a]
即是:[’h’,’e’,’l’..,’o’,’a’,’a’]
那为什么不是添加,而是重新开辟空间呢?
因为内存的使用地址是连续的。假设你的字符串使用了1-n的内存地址块,从n+1是另一个地址块被其他字符串使用。你说你怎么加[a,a],内存地址n后面已经被使用了。所以内存的处理方法是新开辟了一块地址块将之前的重写在加上需要的内容。
结论:字符串的修改,其实是新开辟了一块内存。
所以编程中’hello’+’world’+’..’每有一个+号就会开辟一块新内存,消耗内存。效率低,那么解决方案呢。
字符串的格式化:
字符串的格式化有三种方式。
1,使用+拼接模式
2.使用占为符方式 %s 字符串占为符,%d数字占为符
3.使用字符串类的格式化方法,即 str.format()
优缺点:
1.此等方式开辟内存空间较大,不好,弃用
2.此等方式方便,可用
3.字符串格式化方法也挺好,可用。
总结:建议使用第二种,常用
举例:
#!/usr/bin/env python
#__*__encoding:utf-8__*__
name = raw_input(‘name:’).stirp()
age = raw_input("age:”).stirp()
job = raw_input("job:”).strip()
print("Information of []:" + name +"\nname :"+name +"\nage []:" + age + "\njob []:" +job)
print("Information of []:%s \n name[]:%s \n age []:%s \n job []:%s" %(name,name,age,job))
string = "Information of []:{0} \n name[]:{1} \n age []:{2} \n job []:{3}"
print string.format(name,name,age,job)
第二种可以美化下:
msg = ‘‘‘
Information of %s:
name : %s
age : %s
job : %s
‘‘‘ %(name,name,age,job)
print(msg)
第三种方法,可以美化下:
msg2 = ‘‘‘
Information of {0}:
name : {1}
age : {2}
job : {3}
‘‘‘
print(msg2.format(name,name,age,job))
使用三个’’’在表达式中制定好格式。