01 数据类型
在 Python 中,能够直接处理的数据类型有以下几种:
整数
Python 可以直接处理任意大小的整数,包含负整数。 十进制表示整数和数学上一样;十六进制表示整数需要在前面加 0x , 后面用十六进制表示。
浮点数
浮点数即小数,之所以叫浮点数,是因为按照科学计数法表示时,一个浮点数的小数点位置是可变的。 整数和浮点数在计算机内部的储存方式是不同的,整数运算永远是精确的( 除法也是精确的!) ,而浮点数可能会有四舍五入的误差。
字符串
字符串是以 ' ' ," " , 括起来的任意文本。
布尔值
布尔值和布尔代数的表示完全一致,一个布尔值只有 True、False 两种值;Python 中可以直接使用 True、False 表示布尔值(注意大小写),也可以通过布尔运算计算出来,布尔值可以用 and (与) 、or (或)、not(非)运算 。
空值
空值是 Python 里一个特殊的值,用 None 表示。 None 不能理解为 0 ,因为 0 是有意义的,而 None 是一个特殊的空值。
此外, Python 还提供了列表、字典、等多种数据类型; 还允许创建自己定义的数据类型, 后面继续学习。
练习:
1.计算十进制整数和十六进制整数之和, 自己随便相加。 (Python 可以直接进行操作!)
2.用字符串表示一串字符。 例如: Learn Python in 2017.6
3.计算表达式的布尔值。例如: 99>100, 0xff == 255 。
使用 print 命令打印
02 print 语句
print语句可以向屏幕上输出指定的文字。比如输出'hello, world',用代码实现如下:
>>> print 'Hello,World'
- 在 Python 交互式环境下编写代码时, >>> 是 Python 解释器的提示符,而不是代码。
- 在自己写的时候不要加 >>> 。
print 语句也可以跟多个字符串, 用逗号隔开,就可以连成一串输出:
>>> print 'one', 'two', 'three'
print 会一次打印每个字符串,遇到逗号 '','' 会输出一个空格。 从而输出:
one two three
03 Python 的注释
Python 中使用 # 来注释代码。
04 Python 中什么是变量
Python 程序中的变量, 是用一个变量名表示,变量名必须是 大小写英文、数字和下划线(_)的组合,且不能用数字开头。
在 Python 中 = 号是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值, 而且可以是不同类型的变量。例如:
x = 100 # x 是整数
print x
x = 'learn python' # x 为字符串
print x
这种变量本身类型不固定的语言称为动态语言,与之对应的是静态语言;静态语言在定义变量时必须指定变量类型,否则在赋值的时候就会出错、像Java、C/C++ 这样的静态语言在赋值前都要指定变量类型。
练习:
等差数列可以定义为每一项与它的前一项的差等于一个常数,可以用变量 a1 表示等差数列的第一项, 用 d 表示公差,请计算数列 1 4 7 10 13 16 19 ...
前 100 项的和。
a1 = 1
d = 3
n = 100
an = a1 + (n-1) * d
s = n * a1 + n * (n-1) * d/2
print s
05 Python 中定义字符串
当然字符串都知道是怎么定义的了。 这里主要提及到 ' ' 和 '' '' 在某些时候互相包含,或者同时存在的情况。如果同时存在, 那么就要用转义字符 \ 来表示一个普通的字符,不代表字符串的起始。
'Jane said \" I\' m OK\"!'
其他转义字符:
\n 表示换行
\t 表示一个制表符
\\ 表示 \ 字符本身
等等......
06 Python 中 raw 字符串与多行字符串
为了避免一个字符串里包含了很多需要转义的字符, 对每一个都进行转义那么就很麻烦, Python 中, 可以在前面加一个 r , 表示这是一个 raw 字符串,里面需要转义的字符就不用转义了; 但是 r'...' 表示法不能表示多行字符串, 也不能表示包含 ' 和 '' 的字符串 !
如果要表示多行, 就用 '''......''' 来表示。( 也可以在多行字符串前面加 r , 把这个多行变成一个 raw 字符串。 )
07 Python 中的 Unicode 字符串
当然字符串还会涉及一个编码的问题。 一些关于 Unicode 的历史,这里就不说了。
在 Python 中后来添加了对 Unicode 的支持, 以 Unicode 表示的字符串用 u'...'
表示, 例如 :
print u'我的世界'
注意: 不加 u 中文就不能正常显示。 所以 Unicode 字符串除了多了一个 u
之外,与普通的字符串没什么区别。 转义字符和多行字符串表示法,raw + 多行 仍然有效。
如果中文字符串在 Python 环境下遇到 UnicodeDecodeError, 这是因为 .py 文件保存的格式有问题。可以在第一行添加注释。
# -*- coding: utf-8 -*-
这样的作用就是告诉 Python 解释器,用 UTF-8 编码读取的源代码,然后用 Notepad++ 或者其他 另存为...并选择 UTF-8 格式保存。
07 Python 中整数和浮点数
Python 中对整数和浮点数的运算跟数学中的四则运算规则完全一致, 但和数学运算不同的地方是, Python 的整数运算结果仍然是整数, 浮点数运算结果仍然是浮点数。但整数和浮点数的运算结果就变成了浮点数。
为什么要区分整数和浮点数?
计算机的无法表示无限循环小数。
小练习:
请计算 2.5 + 10 / 4 ,并解释计算结果为什么不是期望的 5.0 ?
请修复上述运算,使得计算结果是 5.0
print 2.5 + 10.0 / 4
08 Python 中的布尔类型
布尔值只有 2 种: True & False 。但是在布尔类型运算有以下几种:
与运算:
两个布尔值都为 True 时, 计算结果才为 True。
True and True # ==> True
True and False # ==> False
False and True # ==> False
False and False # ==> False
或运算:
一个布尔值为 True 时, 计算结果才为 True。
True or True # ==> True
True or False # ==> True
False or True # ==> True
False or False # ==> False
非运算:
把 True 变为 False, 或者把 False 变为 True。
not True # ==> False
not False # ==> True
在 Python 中把 0
、 空字符串''
和 None
看成是 False,其他数值和非空字符串都看成是 True。
Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果; 这涉及到 Python 中 and 和 or 运算的一条重要法则短路计算。