python作为一门编程语言,和我们之前学习过的c,oc,swift,c++,c#,swift,javascript等编程语言一样,也有它能够直接处理的数据类型。
整数:
python可以处理任意大小的整数,包括正整数和负整数,例如:1
,65535
,-1
等。当然,计算机是使用用二进制来处理数据的,所以有时候用八进制或十六进制表示整数比较方便,八进制表示整数:数字加前缀0
,表示是八进制,例如:01
,07
等。十六进制表示整数:数字加加前缀0x
,表示是十六进制,例如:0xff00
,0xaf23bb
等。
python中的整型用int
表示,和大多数编程语言一样。在Python 3里,只有一种整数类型int
,表示为长整型,没有 python2 中的 Long
。像大多数编程语言一样,数值类型的赋值和计算都是很直观的。内置的 type()
函数可以用来查询变量所指的对象类型。此外还可以用isinstance
来判断。但两者还是有区别的:
- type()不会认为子类是一种父类类型。
- isinstance()会认为子类是一种父类类型。
浮点数:
也就是数学中的小数,我们在学数学时学过用科学计数法来表示一个小数,比如:0.0000018
可以用科学计数法表示成:1.8x10-6
,在计算机中则可以表示成1.8e-6
或18e-7
,正如你所见,对于同一个小数,小数点位置在科学计数法中是可以改变的,所以称也称小数为浮点数。
整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法也是精确的),而浮点数运算则可能会有四舍五入的误差。
在Python中,有两种除法,一种除法是
/
:
>>> 10 / 3
3.3333333333333335```
`/`除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数:
9 / 3
3.0```
还有一种除法是//
,称为地板除
,两个整数的除法仍然是整数:
>>> 10 // 3
3```
因为`//`除法只取结果的整数部分,所以Python还提供一个余数运算,可以得到两个整数相除的余数:
10 % 3
1```
无论整数做//
除法还是取余数,结果永远是整数,所以,整数运算结果永远是精确的。
字符串:
Python中的字符串用单引号'
或双引号"
括起来,同时使用反斜杠 \ 转义特殊字符。比如字符串内部既包含'
又包含"
:
'I\'m \"fine\"!'```
表示的字符串内容是:
I'm "fine"!```
Python还允许用r''
表示''
内部的字符串默认不转义,例如:
>>> print(r'\\\t\\')
\\\t\\
如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容:
print('''
----------info of Jeff ----------
Name:Jeff
Age:27
Job:developer
''')
----------info of Jeff ----------
Name:Jeff
Age:27
Job:developer```
字符串的截取的语法格式如下:
变量[头下标:尾下标]```
索引值以 0 为开始值,-1 为从末尾的开始位置。
加号 +
是字符串的连接符, 星号 *
表示复制当前字符串,紧跟的数字为复制的次数。例如:
#Author:Jeff
str = 'hello,Jeff'
print(str) #输出字符串
print(str[0:-1]) #输出第一个到倒数第二个的所有字符
print(str[0]) #输出字符串第一个字符
print(str[2:6]) #输出从第三个开始到第六个的字符
print(str[2:]) #输出从第三个开始的后的所有字符
print(str * 2) #输出字符串两次
print(str + "good morning!") #连接字符串
打印的结果:
与 C 字符串不同的是,Python 字符串不能被改变。向一个索引位置赋值,比如str[0] = 't'
会导致错误。
布尔值
布尔值有True
、False
两种值,布尔值可以用and
、or
和not
运算。
and
运算是与
运算,只有所有都为True
,and
运算结果才是True
。
or
运算是或
运算,只要其中有一个为True
,or
运算结果就是True
。
not
运算是非
运算,它是一个单目运算符,把True
变成False
,False
变成True
。
空值
空值是Python里一个特殊的值,用None
表示。None
不能理解为0
,因为0
是有意义的,而None
是一个特殊的空值。
变量
变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。
和swift一样,Python 中的变量赋值不需要类型声明。每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
当写下代码:
var = 'Jeff'```
时,Python解释器干了两件事情:
* 在内存中创建了一个'Jeff'的字符串;
* 在内存中创建了一个名为`var` 的变量,并把它指向'Jeff'。
也可以把一个变量`var`赋值给另一个变量`var1`,这个操作实际上是把变量`var1`指向变量`var`所指向的数据,例如:
var = 'Jeff'
var1 = var
var= 'Jhon'
print(var1)```
打印结果: 'Jeff'
常量
所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量:
PI = 3.14159265359```
但事实上PI仍然是一个变量,Python根本没有任何机制保证PI不会被改变,只是约定的编程习惯,告诉你不应该改罢了。