python3性能还低吗_Python3有性能上的提升么

展开全部

#xiaodeng

#python 3

#1、编码方式和性能

'''

1、py3运行2113效率更快

2、默5261认源文件编码ASCII变为UTF-8,以4102前文件前加入的coding=utf-8不再需要

3、针对unicode的处理有了明显的改善1653,效率明显提升

'''

#2、数据类型和基本运算

'''

1、int和long进行了统一,统一为int

2、True、False、None都是关键词

3、必须以b'...'表示二进制数据,可以使用u'..'表示字符串,不加u也表示字符串

4、移除<>不等号,使用“!=”表示不等号关系

1)2!=3

2)2<>3 #出现语法错误

5、调整除法符号‘/’的用法,只返回浮点数,要返回整数要使用“//”

6、py3运算对数据的类型要求更加的严格

'''

def foo(test=None):

if test is None:

print (test)

foo()

print (5/2) #浮点数

print (5//2) #整数

print (1/3)

#4、print和exec用法

'''

1、print是一个函数,不再是一个语句,其中不需要用空格,后面打印的内容需要有括号括起来

2、exec函数用法发生变化

'''

def foo():

_local=locals()

exec('a=4',globals(),_local)

a=_local['a']

print(a)

foo()

#5、input、bin、oct和for循环

'''

1、raw_input统一为input

在py2中用法为:

1)a=raw_input('请输入:')

print a

2)a=input('请输入:') #接收一个有效的表达式,如:2+3,而不能单独接收3

print a

2、for循环的变量不再泄露在全局变量中,此bug已修复

1)Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] on win32

Type "copyright", "credits" or "license()" for more information.

>>> i=8

>>> print [i for i in range(5)]

[0, 1, 2, 3, 4]

>>> print i

#按照道理来讲for循环中的i与最外面的i=8的i是不同的,但是这里。。。。。

>>>

2)

i=6

print([i for i in range(5)])#结果为[0, 1, 2, 3, 4]

print(i)#结果i=6

'''

#6、a=input('请输入:')#这里不再需要一个有效的表达式,他的用法和raw_input相同

#print(a)

#7、range和dict的变化

'''

1、在python2中,range火xrange会创建一个列表。常出现在for循环、字典、列表中,但是py3中xrange改名为range,在python3中使用

使用xrange会触发错误。同时range返回的是可迭代对象而不再是列表形式,要想使range的结果得到一个list数据必须要使用list(range(5))

2、字典内的dict.iterkeys(),dict.itervalues(),dict.iteritems()被keys() and values() and items()所替代

他们的返回结果类似于集的可迭代对象,而不是键值对的列表。从而在不进行键和值条目复制的情况下就能对其执行set操作

'''

a=range(6)

print(a)#result:range(0,6)对象,不是列表

print(list(a))#result:[0, 1, 2, 3, 4, 5]

for i in range(6):

print(i)

#print(xrange(5)) #报错:提示为name"xrange" is'not defined

#dict案例

d={'name':"iaodeng",'sex':28}

print(d.items())

print(type(d.items())) #

#返回结果 dict_items([('name', 'iaodeng'), ('sex', 28)])

#这里不再是列表形式

'''

Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] on win32

Type "copyright", "credits" or "license()" for more information.

>>> d={'name':"iaodeng",'sex':28}

>>> print d

{'name': 'iaodeng', 'sex': 28}

>>> print d.items()

[('name', 'iaodeng'), ('sex', 28)]

>>> print d.iteritems() #返回一个可迭代对象

>>> for i in d.iteritems():print i

('name', 'iaodeng')

('sex', 28)

>>>

'''

print('xiaodeng: d.keys():',d.keys()) #xiaodeng: d.keys(): dict_keys(['name', 'sex'])

print(type(d.keys()))#

#values()同理

print("既然是可迭代对象,那么还可以进行下面操作")

for i in d.items():

print(i)

for key in d.keys():

print(key)

print("values用法同理")

print('用list将可迭代对象转化为list数据')

print(list(d.values()))

#7、python3具有单一的str类型,其类型相当于python2的unicode,python3所有的字符串都是unicode

#新增bytes类型

a=b"china"

print(type(a)) #

#str和tytes对象都可以使用encode和decode来进行转化

s=a.decode()

print(s) #china 字符串类型

s=s.encode()

print(s) #b"china", tytes字节类型

#8、输入和输出

a=open('test.txt','w')

a.write("write in something")

a.close()

b=open("test.txt","r")

print(b.read()) #note:注意加括号

"""

1、如果要对文本执行任何I/O操作,python3会强制用户使用文本模式,打开文件,如果不想使用默认编码utf-8

通常需要指明所需的编码

2、如果对二进制数据进行I/O操作,必须使用二进制模式打开文件或进行读写操作

eg:

f=open("test1.txt","wb+") #二进制追加模式

f.write(b"w love fengmei") #必须加b,以bytes对象的形式进行写入

f.close()

file=open(filename,mode)

mode:

r:只读模式

w:只写,如果文件已存在则会进行覆盖操作,所以格外小心,如果文件不存在则创建新的文件

a:打开文件用于追加,只写如果文件不存在则创建

b:二进制,不能单独使用

经过演变会有很多形式

"""

#9、迭代器

"""

1、range在python3中返回颗迭代对象二不是列表,最大限度节约内存

2、zip(),map(),filter(),key(),value()返回的均是可迭代对象

"""

#10、异常错误处理

"""

1、必须使用关键词as,try 和except NameError as e语句

2、案例:

python 2

try:

something

except NameError,err:

print err

python3

try:

something

except NameError as err:

print(err)

3、raise触发语法用法的变化,python3只接受带括号的

1)raise IOError,"file error" #出现语法错误

2)raise IOError("file error")

"""

#11、面向对象

"""

1、需要单独深入学习

"""

#12、模块的变动

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值