【根据廖雪峰官方网站Python教程整理】


一、数据类型

计算机:可以做数学计算的计算机器。能处理数值、文本、图像、音频、视频、网页等各种各样的数据,不同的数据需要定义不同的数据类型,在python中能够直接处理的数据类型主要有以下几种:

1、整数

Python可以处理任意大小的整数,包括负整数,在程序中的表示方法和数学上的写法是一样的,如1,-110等。

计算机使用二进制表示,有时用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,如0xff00等.

2、浮点数

小数,之所以成为浮点数是因为用科学计数法表示时,一个浮点数的小数点位置是可变的,如1.23*10^9和12.3*10^8是完全相等的。

浮点数可以用数学写法,如1.23,3.14等,但对于很大或者很小的浮点数,就必须用科学计数法,把10用e代替,1.23*10^9即用1.23e9.

整数和浮点数在计算机内部存储的方式是不同,整数运算永远是精确的,而浮点数运算则可能有会有四舍五入的误差。

3、字符串

是以单双引号括起来的任意文本,单双引号本身只是一种表达方式,不是字符串的一部分,因此’abc’只有3个字符。如果’本身也是一个字符,那就用“”括起来,比如”I’吗OK”,6个字符。

如果字符串内部既包含’又包含”怎么办?可以用转移字符\来表示,比如:

转义字符可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\,可以在python的交互命令行用print()打印字符串看看。

如果字符串里面有很多字符都要转义,就需要价很多的\,为了简化。Python还允许用r’’表示‘’内部的字符串默认不转义。表示这是一个 raw 字符串,里面的字符就不需要转义了。但是r'...'表示法不能表示多行字符串,也不能表示包含'和 "的字符串。



如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用’’’...’’’的格式表示多行内容:

'''Line 1

Line 2

Line 3'''

上面这个字符串的表示方法和下面的是完全一样的:

'Line 1\nLine 2\nLine 3'


还可以在多行字符串前面添加 r ,把这个多行字符串也变成一个raw字符串:

r'''Python is created by "Guido".

It is free and easy to learn.

Let's start learn Python in imooc!'''

4、布尔值

和布尔代数的表示为完全一致,一个布尔值只有True、False两种值,注意大小写,也可以通过布尔值计算出来:

布尔值可以用and、or和not运算

and运算是与运算,只有所有都为True,and运算结果才是True

or是或运算,只要其中一个为True,结果就是True

not非运算,单目运算符,把True变成False,False变成True

 

布尔值经常用在条件判断中,如

if age >= 18:
    print('adult')
else:
    print('teenager')

 

5、空值

用None,不能理解为0,因为0是有意义的,而None没有。

 

6、此外,python还提供了列表、字典等多种数据类型,还允许创建自定义数据类型。

 

二、变量

1、变量的概念基本上和代数的方程变量是一直的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数类型。

2、变量在程序中就是用一个变量名表示了, 变量名必须是大小写英文、数字和下划线的组合,且不能用数字开头,如:

a = 1,变量a是一个整数
t_007 = 'T007'变量t_007是一个字符串
Answer = True变量Answer是一个布尔值True

3、在python中等号=是赋值语句,可以把任意的数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,例如:

a = 123 # a是整数
print(a)
a = 'ABC' # a变为字符串
print(a)

这种变量本身类型不固定的语言成为动态语言,与之对应的是静态语言。静态语言在定义变量时必须制定变量的类型,如果赋值的时候类型不匹配,就会报错。java是静态语言。

动态语言更灵活。

 

三、常量

1、所谓的常量就是不能变的变量,比如数字常数。Python中通常用全部大写的变量名表示常量。如PI=3.1415。但事实上PI仍是一个变量,python没有任何机制保证PI不会被改变。

 

四、整数的除法为什么也是精确的?

Python中有两种除法

1、/除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数
>>> 9 / 3
3.0
2、//除法成为地板法,两个整数的除法仍为整数
>>> 10 // 3
3
3、因为//除法只取结果的整数部分,所以Python还提供一个余数的运算,可以得到两个整数相除的余数
>>> 10 % 3
1

无论整数做//还是取余数,结果永远是整数,所以,整数运算结果永远是精确的。