print 函数
Unicode
除法运算
异常的处理有所不同
xrange:在 Python 3 中,range() 是像 xrange() 那样实现以至于一个专门的 xrange() 函数都不再存在(在 Python 3 中 xrange() 会抛出命名异常)。
八进制字面量表示:八进制数必须写成0o777,原来的形式0777不能用了;二进制必须写成0b111。
去掉了repr表达式“,只允许使用repr函数
多个模块被改名(根据PEP8)
数据类型:
1)Py3.X去除了long类型,现在只有一种整型——int,但它的行为就像2.X版本的long
2)新增了bytes类型,对应于2.X版本的八位串3)dict的.keys()、.items 和.values()方法返回迭代器,而之前的iterkeys()等函数都被废弃。同时去掉的还有 dict.has_key(),用 in替代它吧 。
打开文件:
原:
file( ….. )
或
open(…..)
改为只能用
open(…..)
这句话仅仅在linux或unix系统下有作用,在windows下无论在代码里加什么都无法直接运行一个文件名后缀为.py的脚本,因为在windows下文件名对文件的打开方式起了决定性作用。
Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠()来实现多行语句
字符串
print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=”“:
Python允许你同时为多个变量赋值。例如:
a = b = c = 1
以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。
Python3 中有六个标准的数据类型:
- Number(数字)
int、float、bool、complex(复数)。没有double,long。
- String(字符串)
- List(列表)
- Tuple(元组)
- Sets(集合)
- Dictionary(字典)4
type()和instance()区别就是:
type()不会认为子类是一种父类类型。
isinstance()会认为子类是一种父类类型。
isinstance(B(), A) # returns True
type(B()) == A # returns False
Python 字符串不能被改变。向一个索引位置赋值,比如word[0] = ‘m’会导致错误。
list = [ 'abcd', 786 , 2.23, 'runoob', 70.2]
>>> tinylist = [123, 'runoob']
>>> print(list[0:2])
['abcd', 786]
list[a,b]其实输出的是[a,b)的内容。
与Python字符串不一样的是,列表中的元素是可以改变的
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号(())里,元素之间用逗号隔开。
元组中的元素类型也可以不相同:
Set(集合)
集合(set)是一个无序不重复元素的序列。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
Dictionary(字典)
字典(dictionary)是Python中另一个非常有用的内置数据类型。
列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用”{ }”标识,它是一个无序的键(key) : 值(value)对集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的。
函数 | 描述 |
---|---|
chr(x) | 将一个整数转换为一个字符 |
ord(x) | 将一个字符转换为它的整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
repr(x) | 将对象 x 转换为表达式字符串 |
eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
and or not
python成员运算符
in
not in
python身份运算符
is is not
注: id() 函数用于获取对象内存地址。
python 函数的变量其实只是一些指针对象试的,指向一个值的内存对象。所以
a=20
b=20
a is b #True
分别使用 bin,oct,hex 可输出数字的二进制,八进制,十六进制形式,例如:
>>> a=0b111100
>>> a=60
>>> bin(a)
'0b111100'
>>> oct(a)
'0o74'
>>> hex(a)
'0x3c'
在交互模式中,最后被输出的表达式结果被赋值给变量 _
cmp(x, y)
如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 Python 3 已废弃 。使用 使用 (x>y)-(x
random模块。
函数 | 描述 | 实例 |
---|---|---|
choice(seq) | 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。 | |
randrange ([start,] stop [,step]) | 从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1 | |
random() | 随机生成下一个实数,它在[0,1)范围内。 | |
seed([x]) | 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。 | |
shuffle(lst) | 将序列的所有元素随机排序 | |
uniform(x, y) | 随机生成下一个实数,它在[x,y]范围内。 | |
random.randint(x,y) | 随机生一个整数int类型,可以指定这个整数的范围 | >>> random.randint(1000,9999)8449 |
random.sample(sequence,length) | 可以从指定的序列中,随机的截取指定长度的片断,不修改原序列。 |
>>> lst = random.sample('abcd1234',4)
>>> strs = ''.join(lst)
>>> strs'a432'
文中对于 _ 提到,它代表了上一次的输出结果,”用户应该将其视为只读变量”,实际情况是你也可以对于_ 赋值,=10 是没有毛病的,但这样的结果会导致你在之后调用 的时候全部变成了10,除非你 del _。
对于round:
>>> round(10.5)
10
>>> round(11.5)
12
>>>
Python 所谓的奇进偶弃,因为浮点数的表示在计算机中并不准确,用的时候可能要注意一下。
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
基本语法是通过 {} 和 : 来代替以前的 % 。
format 函数可以接受不限个参数,位置可以不按顺序。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))
# 通过字典设置参数
site = {"name": "菜鸟教程", "url": "www.runoob.com"}
print("网站名:{name}, 地址 {url}".format(**site))
# 通过列表索引设置参数
my_list = ['菜鸟教程', 'www.runoob.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的