【根据廖雪峰官方网站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
无论整数做//还是取余数,结果永远是整数,所以,整数运算结果永远是精确的。