Python基本数据类型
Python基本数据类型
1、 数字
Python中数字包括几种类型,类型分别如下:
整数;长整数;浮点数;复数
整数和长整数在表示方法上的不同之处在于长整数需要用后缀L表示为长整数,所表示的含义为long,长整数表示的数字为无限大小,在整数达到一定长度之后会自动转换为长整数。
整数还可以分为八进制表示,前缀用0开头;十六进制表示,前缀用0x开头。
浮点数的意义为小数点的位置是可以发生变化的,从而称之为浮点数,浮点数是包含有小数点的。
复数的虚部用j结尾。
部分例子如下:
>>> a = 12 >>> b = 13.0 >>> a + b 25.0 >>> a = 1+2j >>> b = 2+3j >>> a + b (3+5j) >>> a = 1.3 >>> b = 1 >>> a - b 0.30000000000000004 >>> b = 1.0 >>> a - b 0.30000000000000004 |
在进行浮点数运算的时候,注意小数点的位数,如果是整形和浮点数进行运算,那么在计算的时候,和实际计算的值是有区别的,主要是由于浮点数的精度所导致
1.1 算术运算符
运算符包括加减乘除,乘方,取余等运算符,在计算的时候,如果有浮点数,那么会将整数自动转换为浮点数进行运算,在优先级中,乘方的优先级最高,可以使用括号来进行修改其优先级。符号分别为:+,-,*,/,%,浮点除法为//
1.2 比较运算符
比较运算符根据表达式的值为真假,从而返回布尔值True或者False,如下:
< |
> |
<= |
>= |
== |
!= |
1.3 逻辑运算符
逻辑运算符包括三种,如下所示:
And |
Or |
not |
使用逻辑运算符可以将任意表达式连接在一起,并得到一个布尔值。
如下例子是可以使用的:
>>> 3<4<5 True >>> 6>=5>=4 True |
可以使用这种形式来表示and的条件。在进行求值得时候,从左到右的顺序执行。
在进行条件的判断的时候,注意适当的使用括号来增加代码的可读性。
1.4 对象的比较
在进行对象的比较的时候,一般比较都是比较对象的值,但是也可以比较对象的身份,如下所示:
>>> a = 1000 >>> b = 1000 >>> a is b False >>> a is not b True |
在进行对象比较的时候,由于字符串和整数是不可变类型,所以python会很高效的缓存它们,从而在表面上没有创建新建对象的假象,如下和上面的结果就完全不同:
>>> a = 1 >>> b = 1 >>> id(a) 56537896 >>> id(b) 56537896 >>> a is b True >>> a = "kel" >>> b = "kel" >>> a is b True |
Python仅缓存简单的整数,大概范围在-1-100之间。缓存的字符串如果没有引用,那么会自动被销毁。
Python中is 和not 都是python的关键字
1.5 标准类型函数
Cmp(),str(),type()内建函数,分别为比较两个数字的大小,将数字转换为字符串,返回数字对象的类型,如下所示:
>>> cmp(1,2) -1 >>> cmp(-1,2) -1 >>> cmp(1,1) 0 >>> str(1) '1' >>> type(1) <type 'int'> >>> type(98L) <type 'long'> |
1.6 转换工厂函数
转换工厂函数主要为:int(),float(),long(),complex()
>>> int(4.22) 4 >>> long(42) 42L >>> float(4) 4.0 |
1.7 模块函数介绍
常用函数如下:
函数 |
功能 |
Abs(num) |
返回num的绝对值 |
Coerce(num1,num2) |
将num1和num2转换为同一类型,然后以元祖形式返回 |
Divmod(num1,num2) |
除法,取余运算结合,返回一个元祖(num1/num2,num1%num2) |
Pow(num1,num2,mod=1) |
取num1的num2次方,如果提供mod参数,则计算结果对mod进行取余 |
Round(flt,ndig=0) |
接受一个浮点数flt对其结果四舍五入,保存ndig位小数,默认小数点后0位--仅用于浮点数 |
模块random():
2、 字符串
字符串是由一系列的字符组成,字符串可以包含字母,数字和一些控制字符组成,由单引号或者双引号,或者三引号组成,在输出的时候,可以使用三引号来整理要输出的格式,在进行换行时,可以使用换行符或者是三引号来进行换行,利用引号或者括号来进行换行是不可以的。
>>> print "kel File "<stdin>", line 1 print "kel ^ SyntaxError: EOL while scanning single-quoted string >>> print ("krl File "<stdin>", line 1 print ("krl ^ SyntaxError: EOL while scanning single-quoted string |
在上面的例子中,表示使用双引号或者是括号来进行换行都是会出错的。
2.1 字符串中的转义
字符串中的转义字符为\,在其中包含的转义字符如下:
转义字符 |
含义 |
\t |
制表符 |
\n |
换行符 |
\r |
回车符 |
\\ |
反斜杠 |
\” |
双引号,非字符串结束 |
\‘ |
单引号,非字符串结束 |
2.2 字符串的索引和切片
在字符串中,字符串是不可变序列的列表,也就是无论对字符串如何操作,都是不能改变原来字符串的,只能创建一个新的字符串,如下:
#字符串是不可变的 >>> str = "kel" >>> str.join("--") '-kel-' >>> str 'kel' >>> str.split("e") ['k', 'l'] >>> str 'kel' #字符串切片和索引 >>> str 'kel' >>> str[0] 'k' >>> str[1:2] 'e' >>> str[1:100] 'el' >>> str[:] 'kel' >>> str[:1] 'k' >>> str[1:] 'el' #索引可以使用复数,表示从后面开始 >>> str[-1] 'l' >>> str[-3:-1] 'ke' |
2.3 格式化字符串
在进行变量替换的时候,需要使用到格式化字符串,如下所示:
>>> print "your name:%s" % (str) ,"this is append" your name:kel this is append >>> print "your name:%s ,your age: %s " %(str,29) your name:kel ,your age: 29 |
在进行格式化其他类型的时候,只是%s使用不同,例如使用%d表示格式化为十进制进行输
2.4 原始字符串
原始字符串表示在字符串中不需要转义字符\即可使用,但是在使用windows的路径的时候,如果以\结尾,那么会报错。
在使用原始字符串的时候,只要在字符串前面加上r即可,在原始字符串中,反斜杠\将不再是表示为转义。如下
>>> path = r"c:\home\kel\" File "<stdin>", line 1 path = r"c:\home\kel\" ^ SyntaxError: EOL while scanning single-quoted string >>> path = r"c:\home\kel" >>> print path c:\home\kel |
2.5 字符串常用方法
主要的方法:
Join()和split()方法:
>>> str ="kel is the good man!" >>> " ".join(x.capitalize() for x in str.split(" "))# 将split返回的list中的值首字母大写,然后用空格分开 'Kel Is The Good Man!' 下面是string.py的注释 join(words, sep=' ') join(list [,sep]) -> string
Return a string composed of the words in list, with intervening occurrences of sep. The default separator is a single space.
(joinfields and join are synonymous) |
下面是常用的方法:
字符串操作 |
描述 |
String.capitalize() |
将字符串的第一个字母大写 |
String.count() |
获得字符串中某一字符串的数目 |
String.find() |
获得字符串中某一字符串的起始位置 |
String.isalnum() |
检测字符串是否仅包含0-9 |
String.isalpha() |
检测字符串是否仅包含A-Za-z |
String.isdigit() |
检测字符串是否仅仅包含数字 |
String.islower() |
检测字符串是否均为小写 |
String.isspace() |
检测字符串是否均为空白字符 |
String.istitle() |
检测字符串是否为首字母大写 |
String.isupper() |
检测字符串是否均为大写 |
String.join() |
连接字符串 |
String.lower() |
将字符串全部转换为小写 |
String.split() |
分割字符串 |
String.swapcese() |
将字符串中大小写进行转换 |
String.title() |
将字符串中的首字母大写 |
String.upper() |
将字符串中的字母全部大写 |
Len(string) |
获取字符串长度 |