python3 学习笔记-day1

Python2.x与3.x版本区别

  • 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(…..)

  • 从键盘录入一个字符串
    原:
    raw_input( “提示信息” )
    改为:
    input( “提示信息” )

!/usr/bin/python 指定解释器的路径。

这句话仅仅在linux或unix系统下有作用,在windows下无论在代码里加什么都无法直接运行一个文件名后缀为.py的脚本,因为在windows下文件名对文件的打开方式起了决定性作用。

Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠()来实现多行语句

字符串

  • python中单引号和双引号使用完全相同。
    使用三引号(”’或”“”)可以指定一个多行字符串。
  • 转义符 ‘\’
  • 自然字符串, 通过在字符串前加r或R。 如 r”this is a line with \n” 则\n会显示,并不是换行。
  • python允许处理unicode字符串,加前缀u或U, 如 u”this is an unicode string”。
  • 字符串是不可变的。
  • 按字面意义级联字符串,如”this ” “is ” “string”会被自动转换为this is string。

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" 是必须的

你可能感兴趣的:(python3 学习笔记-day1)