#xiaodeng
#python 3 #1、编码方式和性能
'''
1、py3运行效率更快
2、默认源文件编码ASCII变为UTF-8,以前文件前加入的coding=utf-8不再需要
3、针对unicode的处理有了明显的改善,效率明显提升
''' #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
4 #按照道理来讲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())) #<class 'dict_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() #返回一个可迭代对象
<dictionary-itemiterator object at 0x0275E930>
>>> 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()))#<class 'dict_items'> #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)) #<class 'bytes'>
#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、模块的变动

python3新特点的更多相关文章

  1. Python3新特性 类型注解 以及 点点点

    Python3新特性 类型注解 以及 点点点 ... Python3 的新特性 Python 是一种动态语言,变量以及函数的参数是 不区分类型 的 在 函数中使用类型注解 相当于 给 形参的 类型 设 ...

  2. python3新特性函数注释Function Annotations用法分析

    本文分析了python3新特性函数注释Function Annotations用法.分享给大家供大家参考,具体如下: Python 3.X新增加了一个特性(Feature),叫作函数注释 Functi ...

  3. python3 新特性

    1.格式化字符串f-string user = "Mike" log_message = f'User{user} has logged in' 2.路径管理库Pathlib 3. ...

  4. Python3中变量作用域nonlocal的总结

    最近,在工作中踩到了一个关于Python3中nonlocal语句指定的变量作用域的坑.今天趁周六休息总结记录一下. 众所周知,Python中最常见的作用域定义如下:   但是,为了更加方便地在闭包函数 ...

  5. open文件操作

    open()做文件操作的就是他1.打开文件#f=open("db","r")#只读#f-open("db","w")#只 ...

  6. Python【基础第一篇】

    一.Python3新特性 编码统一为unicode Python3不支持Twisted,暂时只支持73% 1/2=0.5 print "hello World" 变成 print ...

  7. Python学习笔记——基础篇【第一周】——变量与赋值、用户交互、条件判断、循环控制、数据类型、文本操作

    目录 Python第一周笔记 1.学习Python目的 2.Python简史介绍 3.Python3特性 4.Hello World程序 5.变量与赋值 6.用户交互 7.条件判断与缩进 8.循环控制 ...

  8. Python之文件与目录操作及压缩模块(os、shutil、zipfile、tarfile)

    Python中可以用于对文件和目录进行操作的内置模块包括: 模块/函数名称 功能描述 open()函数 文件读取或写入 os.path模块 文件路径操作 os模块 文件和目录简单操作 zipfile模 ...

  9. 流畅python学习笔记:第十七章:并发处理

    第十七章:并发处理 本章主要讨论Python3引入的concurrent.futures模块.在python2.7中需要用pip install futures来安装.concurrent.futur ...

随机推荐

  1. 在LaTeX中使用颜色 Using colours in LaTeX

    Using colours in LaTeX There are several elements in LATEX whose colour can be changed to improve th ...

  2. LaTeX技巧206:使用gather输入多行公式的技巧

    上文中提到了几个输入多行公式的环境,gather也是其中之一,gather输入的好处是每一行,他都会按照前文的编号计数器进行向下计数,这样保证了公式编号的连贯性.所以,当我们输入公式的每一行公式需要独 ...

  3. @Tomcat中的几种log

    日志是程序员居家旅行必备,哦不对,是定位问题,修复bug,甚至是验证应用是否正常的必备利器.甚至很多时候,我们做一次部署仅仅是为了加一行log.虽然现在有各种各样的问题诊断工具,但是在定位线上问题时, ...

  4. JavaScript:RegExp 对象

    ylbtech-JavaScript:RegExp 对象 1.返回顶部 RegExp 对象 RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具. 直接量语法 /pattern/att ...

  5. 哈,今天终于在电脑上吧oracle给装上了

    哈,今天终于在电脑上吧oracle给装上了

  6. Win7局域网打印机共享设置(详细图文流程)

    本文将向读者说明在Win7下如何实现同个局域网内共享打印机.经过测试,Win7之间和Win7与XP之间均可正常连接. 第一步:取消禁用Guest用户 1. 点击[开始]按钮,在[计算机]上右键,选择[ ...

  7. Javassist 字节码 语法 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  8. AS 功能 设置 SDK AVD 简介 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  9. LCX端口内网映射转发

    这几天在渗透一家奶茶店的时候, 使用溢出攻击获得了奶茶店shell, 截屏以后发现该电脑有安装sqlserver, 但是数据库无法远程连接, 所以我决定使用端口映射工具突破端口连接限制: 我的机器地址 ...

  10. Selenium2(WebDriver)总结(四)---基本元素操作

    WebDriver提供了常用的WEB控件的操作方法,比如:按钮.输入框.超链接等,废话不多说,直接上代码: import org.openqa.selenium.By; import org.open ...