Python基础3Unicode编码+整数浮点数+布尔类型+list列表集合
2016-11-11 02:03
585 查看
1 Python中Unicode字符串
1.1 ASCII编码
因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),0
- 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母
A 的编码是65,小写字母
z 的编码是122。
1.2 Unicode编码来源
对于ASCII编码,如果要表示中文,显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。
类似的,日文和韩文等其他语言也有这个问题。为了统一所有文字的编码,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。
Unicode通常用两个字节(16比特)表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。
1.3 Python对Unicode编码的支持
因为Python的诞生比Unicode标准发布的时间还要早,所以最早的Python只支持ASCII编码,普通的字符串'ABC'在Python内部都是ASCII编码的,其中utf-8是unicode编码方式的一种实现方式。
Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,比如输出:中文
print u'中文'
注意: 不加
u ,中文就不能正常显示。
Unicode字符串除了多了一个 u
之外,与普通字符串没啥区别,转义字符和多行表示法仍然有效:
print (u'中文\n日文\n韩文')
输出:
中文
日文
韩文
例一:
输出:
静夜思
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。
2 Python中整数和浮点数
1)Python支持对整数和浮点数直接进行四则混合运算,运算规则和数学上的四则运算规则完全一致
2)使用括号可以提升优先级,这和数学运算完全一致,注意只能使用小括号,但是括号可以嵌套很多层
3)和数学运算不同的地方是,Python的整数运算结果仍然是整数,浮点数运算结果仍然是浮点数
Python2版本中Python的整数除法,即使除不尽,结果仍然是整数,余数直接被扔掉。比如11 / 4 #
==> 2 需要在11后面加上.0使其变成浮点数,但是Python3很好解决了这个问题print
(11 / 4)==> 2.75
3 Python的布尔类型
我们已经了解了Python支持布尔类型的数据,布尔类型只有True和False两种值,但是布尔类型有以下几种运算:
1)与运算:只有两个布尔值都为 True
时,计算结果才为 True。
True and True # ==> True
True and False # ==> False
False and True # ==> False
False and False # ==> False
2)或运算:只要有一个布尔值为 True,计算结果就是
True。
True or True # ==> True
True or False # ==> True
False or True # ==> True
False or False # ==> False
3)非运算:把True变为False,或者把False变为True:
not True # ==> False
not False # ==> True
布尔运算在计算机中用来做条件判断,根据计算结果为True或者False,计算机可以自动执行不同的后续代码。
在Python中,布尔类型还可以与其他数据类型做
and、or和not运算,例如:
a = True
print (a and 'a=T' or 'a=F')
因为Python把0、空字符串''和None看成
False,其他数值和非空字符串都看成
True。
true and x;结果返回x,若x为true,x
and y返回x。
4)短路运算:
1. 在计算 a and b
时,如果 a
是 False,则根据与运算法则,整个结果必定为
False,因此返回
a;如果
a 是
True,则整个计算结果必定取决与
b,因此返回
b。
2. 在计算 a or b
时,如果 a
是 True,则根据或运算法则,整个计算结果必定为
True,因此返回
a;如果
a 是
False,则整个计算结果必定取决于
b,因此返回
b。
所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。
例如:
4 Python之list
4.1 创建list
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。
比如,列出班里所有同学的名字,就可以用一个list表示:
['Michael', 'Bob', 'Tracy']
['Michael', 'Bob', 'Tracy']
list是数学意义上的有序集合,也就是说,list中的元素是按照顺序排列的。
构造list非常简单,按照上面的代码,直接用
[ ] 把list的所有元素都括起来,就是一个list对象。通常,我们会把list赋值给一个变量,这样,就可以通过变量来引用list:
4.2 Python按照索引访问list
由于list是一个有序集合,所以,我们可以用一个list按分数从高到低表示出班里的3个同学,那我们如何从list中获取指定第
N 名的同学呢?方法是通过索引来获取list中的指定元素。
需要特别注意的是,索引从 0
开始,也就是说,第一个元素的索引是0,第二个元素的索引是1,以此类推。因此,要打印第一名同学的名字,用
L[0]:
当超出索引范围时会报错:print (L[6])
IndexError: list index out of range
4.3 Python之倒序访问list
我们还是用一个list按分数从高到低表示出班里的3个同学:
L = ['Adam', 'Lisa', 'Bart']
这时,老师说,请分数最低的同学站出来。
要写代码完成这个任务,我们可以先数一数这个 list,发现它包含3个元素,因此,最后一个元素的索引是2:
print (L[2])
Bart
有没有更简单的方法?
有!
Bart同学是最后一名,俗称倒数第一,所以,我们可以用 -1
这个索引来表示最后一个元素:
print (L[-1])
Bart
Bart同学表示躺枪。
类似的,倒数第二用 -2
表示,倒数第三用 -3 表示,倒数第四用
-4 表示:
print (L[-2])
Lisa
print (L[-3])
Adam
print (L[-4])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
L[-4] 报错了,因为倒数第四不存在,一共只有3个元素。
例如:
所以使用倒序索引时,也要注意不要越界。
1.1 ASCII编码
因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),0
- 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母
A 的编码是65,小写字母
z 的编码是122。
1.2 Unicode编码来源
对于ASCII编码,如果要表示中文,显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。
类似的,日文和韩文等其他语言也有这个问题。为了统一所有文字的编码,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。
Unicode通常用两个字节(16比特)表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。
1.3 Python对Unicode编码的支持
因为Python的诞生比Unicode标准发布的时间还要早,所以最早的Python只支持ASCII编码,普通的字符串'ABC'在Python内部都是ASCII编码的,其中utf-8是unicode编码方式的一种实现方式。
Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,比如输出:中文
print u'中文'
注意: 不加
u ,中文就不能正常显示。
Unicode字符串除了多了一个 u
之外,与普通字符串没啥区别,转义字符和多行表示法仍然有效:
print (u'中文\n日文\n韩文')
输出:
中文
日文
韩文
例一:
print (r'''静夜思 床前明月光, 疑是地上霜。 举头望明月, 低头思故乡。''')
输出:
静夜思
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。
2 Python中整数和浮点数
1)Python支持对整数和浮点数直接进行四则混合运算,运算规则和数学上的四则运算规则完全一致
print (7.5 / 8 + 2.1)#3.0375
2)使用括号可以提升优先级,这和数学运算完全一致,注意只能使用小括号,但是括号可以嵌套很多层
3)和数学运算不同的地方是,Python的整数运算结果仍然是整数,浮点数运算结果仍然是浮点数
Python2版本中Python的整数除法,即使除不尽,结果仍然是整数,余数直接被扔掉。比如11 / 4 #
==> 2 需要在11后面加上.0使其变成浮点数,但是Python3很好解决了这个问题print
(11 / 4)==> 2.75
3 Python的布尔类型
我们已经了解了Python支持布尔类型的数据,布尔类型只有True和False两种值,但是布尔类型有以下几种运算:
1)与运算:只有两个布尔值都为 True
时,计算结果才为 True。
True and True # ==> True
True and False # ==> False
False and True # ==> False
False and False # ==> False
2)或运算:只要有一个布尔值为 True,计算结果就是
True。
True or True # ==> True
True or False # ==> True
False or True # ==> True
False or False # ==> False
3)非运算:把True变为False,或者把False变为True:
not True # ==> False
not False # ==> True
布尔运算在计算机中用来做条件判断,根据计算结果为True或者False,计算机可以自动执行不同的后续代码。
在Python中,布尔类型还可以与其他数据类型做
and、or和not运算,例如:
a = True
print (a and 'a=T' or 'a=F')
因为Python把0、空字符串''和None看成
False,其他数值和非空字符串都看成
True。
true and x;结果返回x,若x为true,x
and y返回x。
4)短路运算:
1. 在计算 a and b
时,如果 a
是 False,则根据与运算法则,整个结果必定为
False,因此返回
a;如果
a 是
True,则整个计算结果必定取决与
b,因此返回
b。
2. 在计算 a or b
时,如果 a
是 True,则根据或运算法则,整个计算结果必定为
True,因此返回
a;如果
a 是
False,则整个计算结果必定取决于
b,因此返回
b。
所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。
例如:
#-*- coding:utf-8 -*- a = 'python' #true print ('hello,', a or 'world')#a为true,不再向后计算 b = '' #false print ('hello,', b or 'world')#b为false,返回给'world'
4 Python之list
4.1 创建list
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。
比如,列出班里所有同学的名字,就可以用一个list表示:
['Michael', 'Bob', 'Tracy']
['Michael', 'Bob', 'Tracy']
list是数学意义上的有序集合,也就是说,list中的元素是按照顺序排列的。
构造list非常简单,按照上面的代码,直接用
[ ] 把list的所有元素都括起来,就是一个list对象。通常,我们会把list赋值给一个变量,这样,就可以通过变量来引用list:
#-*- coding:utf-8 -*- a = ['dadaad','dadasdsa',123,'中国'] print (a)#['dadaad', 'dadasdsa', 123, '中国']
4.2 Python按照索引访问list
由于list是一个有序集合,所以,我们可以用一个list按分数从高到低表示出班里的3个同学,那我们如何从list中获取指定第
N 名的同学呢?方法是通过索引来获取list中的指定元素。
需要特别注意的是,索引从 0
开始,也就是说,第一个元素的索引是0,第二个元素的索引是1,以此类推。因此,要打印第一名同学的名字,用
L[0]:
#-*- coding:utf-8 -*- L = ['adam', 95.5, 'lisa', 85, 'bart', 59] print (L)#['adam', 95.5, 'lisa', 85, 'bart', 59] print (L[0])#adam print (L[1])#95.5
当超出索引范围时会报错:print (L[6])
IndexError: list index out of range
4.3 Python之倒序访问list
我们还是用一个list按分数从高到低表示出班里的3个同学:
L = ['Adam', 'Lisa', 'Bart']
这时,老师说,请分数最低的同学站出来。
要写代码完成这个任务,我们可以先数一数这个 list,发现它包含3个元素,因此,最后一个元素的索引是2:
print (L[2])
Bart
有没有更简单的方法?
有!
Bart同学是最后一名,俗称倒数第一,所以,我们可以用 -1
这个索引来表示最后一个元素:
print (L[-1])
Bart
Bart同学表示躺枪。
类似的,倒数第二用 -2
表示,倒数第三用 -3 表示,倒数第四用
-4 表示:
print (L[-2])
Lisa
print (L[-3])
Adam
print (L[-4])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
L[-4] 报错了,因为倒数第四不存在,一共只有3个元素。
例如:
#-*- coding:utf-8 -*- L = L = [95.5, 85, 59] print (L) print (L[-1]) print (L[-2]) print (L[-3]) print (L[-4]) 结果print (L[-4])打印错误 Traceback (most recent call last): File "D:\Java\workspace\Testpython\hello.py", line 7, in <module> print (L[-4]) IndexError: list index out of range [95.5, 85, 59] 59 85 95.5
所以使用倒序索引时,也要注意不要越界。
相关文章推荐
- python基础学习——列表(list), 元祖(tuple), 字典(dict), 字符串(string), 集合(set) 介绍及相互转换
- 【Python】基础学习——列表(list),元祖(tuple),字典(dict),字符串(string),集合(set)
- Python3基础 list []定义一个整数列表
- python基础数据结构——列表(list), 元祖(tuple), 字典(dict), 字符串(string), 集合(set) 介绍及相互转换
- Python基础数据类型-列表(list)和元组(tuple)和集合(set)
- python3基础: 元组tuple、 列表list、 字典dict、集合set。 迭代器、生成器
- python之列表(list),元组(tuple),集合(set),字典(dict)
- Python基础5:列表 元祖 字典 集合 Json
- python的列表(List),元组(Tuple),集合(Set),字典(Dict)
- Python基础-列表_元组_字典_集合
- [Python]整数和浮点数,布尔类型
- JAVA基础再回首(十四)——集合框架、Collection接口、迭代器Iterator、List接口、ListIterator列表迭代器
- Python3学习(一)-基础、数据类型、变量、字符串和编码、list&tuple、if、for、while、dict、set、函数与参数
- Python3基础(六) 深入list列表
- Python基础-List列表
- Python中的列表(list),元组(Tuple),字典(Dict)和集合(Set)
- Python基础学习篇—列表(list)
- python基础学习二 list和tuple(列表和元组)
- python 列表list 元组tuple 字典dict 集合set 介绍