按照Python官网上的计划,Python3.6正式版期望在2016-12-16号发布,也就是这周五。从去年的5月份开始,Python3.6版本就已经动手开发了,期间也断断续续的发布了4个Alpha版,4个Beta版,以及一个Candidate版本。

新的语法特性

1、格式化字符串(Formatted string literals)

即在普通字符串前添加 f 或 F 前缀,其效果类似于str.format()。比如name = "Fred"

print(f"He said his name is {name}.") # 'He said his name is Fred.'

其效果相当于:print("He said his name is {name}.".format(**locals()))

此外,此特性还支持嵌套字段,比如:width = 10

precision = 4

value = decimal.Decimal("12.34567")

print(f"result: {value:{width}.{precision}}") #'result: 12.35'

2、变量声明语法(variable annotations)

即从Python3.5开始就有的Typehints。在Python3.5中,是这么使用的:from typing import List

def test(a: List[int], b: int) -> int:

return a[0] + b

print(test([3, 1], 2))

这里的语法检查只在编辑器(比如Pycharm)中产生,在实际的使用中,并不进行严格检查。

在Python3.6中,引入了新的语法:from typing import List, Dict

primes: List[int] = []

captain: str # 此时没有初始值

class Starship:

stats: Dict[str, int] = {}

3、数字的下划线写法(Underscores in Numeric Literals)

即允许在数字中使用下划线,以提高多位数字的可读性。a = 1_000_000_000_000_000 # 1000000000000000

b = 0x_FF_FF_FF_FF # 4294967295

除此之外,“字符串格式化”也支持“_”选项,以打印出更易读的数字字符串:'{:_}'.format(1000000) # '1_000_000'

'{:_x}'.format(0xFFFFFFFF) # 'ffff_ffff'

4、异步生成器(Asynchronous Generators)

在Python3.5中,引入了新的语法 async 和 await 来实现协同程序。但是有个限制,不能在同一个函数体内同时使用 yield 和 await,在Python3.6中,这个限制被放开了,Python3.6中允许定义异步生成器:async def ticker(delay, to):

"""Yield numbers from 0 to *to* every *delay* seconds."""

for i in range(to):

yield i

await asyncio.sleep(delay)

5、异步解析器(Asynchronous Comprehensions)

即允许在列表list、集合set 和字典dict 解析器中使用 async for 或 await 语法。result = [i async for i in aiter() if i % 2]

result = [await fun() for fun in funcs if await condition()]

新增加模块

Python标准库(The Standard Library)中增加了一个新的模块:secrets。该模块用来生成一些安全性更高的随机数,以用来管理数据,比如passwords, account authentication, security tokens, 以及related secrets等。具体用法可参考官方文档:secrets

其他新特性

1、新的 PYTHONMALLOC 环境变量允许开发者设置内存分配器,以及注册debug钩子等。

2、asyncio模块更加稳定、高效,并且不再是临时模块,其中的API也都是稳定版的了。

3、typing模块也有了一定改进,并且不再是临时模块。

4、datetime.strftime 和 date.strftime 开始支持ISO 8601的时间标识符%G, %u, %V。

5、hashlib 和 ssl 模块开始支持OpenSSL1.1.0。

6、hashlib模块开始支持新的hash算法,比如BLAKE2, SHA-3 和 SHAKE。

7、Windows上的 filesystem 和 console 默认编码改为UTF-8。

8、json模块中的 json.load() 和 json.loads() 函数开始支持 binary 类型输入。

python 3.6.0新语法_详解Python3.6正式版新特性相关推荐

  1. python3.4和3.6的区别_详解Python3.6正式版新特性

    按照Python官网上的计划,Python3.6正式版期望在2016-12-16号发布,也就是这周五.从去年的5月份开始,Python3.6版本就已经动手开发了,期间也断断续续的发布了4个Alpha版 ...

  2. python格式化字符串语法_详解Python3 中的字符串格式化语法

    一.旧式的字符串格式化 % 操作符 参考以下示例: >>> name = "Eric" >>> "Hello, %s." % ...

  3. python爬关键词百度指数_详解python3百度指数抓取实例

    百度指数抓取,再用图像识别得到指数 前言: 土福曾说,百度指数很难抓,在淘宝上面是20块1个关键字: 哥那么叼的人怎么会被他吓到,于是乎花了零零碎碎加起来大约2天半搞定,在此鄙视一下土福 安装的库很多 ...

  4. python socket自动重连_详解python3中socket套接字的编码问题解决

    一.TCP 1.tcp服务器创建 #创建服务器 from socket import * from time import ctime #导入ctime HOST = '' #任意主机 PORT = ...

  5. python3 yield 大文件_详解Python3中yield生成器的用法

    任何使用yield的函数都称之为生成器,如: def count(n): while n > 0: yield n #生成值:n n -= 1 另外一种说法:生成器就是一个返回迭代器的函数,与普 ...

  6. python3中input输入浅谈_详解Python3中的 input() 函数

    详解Python3中的 input() 函数 一.知识介绍: 1.input() 函数,接收任意输入,将所有输入默认为字符串处理,并返回字符串类型: 2.可以用作文本输入,如用户名,密码框的值输入: ...

  7. python3中unicode怎么写_详解python3中ascii与Unicode使用

    这篇文章主要为大家详解python3中ascii与Unicode使用的相关资料,需要的朋友可以参考下# Auther: Aaron Fan ''' ASCII:不支持中文,1个英文占1个字节 Unic ...

  8. python3多行输入字符串_详解Python3 定义一个跨越多行的字符串的多种方法

    方法一:使用三引号 >>> str1 = '''Le vent se lève, il faut tenter de vivre. 起风了,唯有努力生存. (纵有疾风起,人生不言弃. ...

  9. python调用cmd命令释放端口_详解python调用cmd命令三种方法

    目前我使用到的python中执行cmd的方式有三种 使用os.system("cmd") 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码, ...

最新文章

  1. linux换源 最最简单
  2. php获取访问浏览器,php获取访问者浏览器
  3. 文献记录(part17)--VARCLUST: clustering variables using dimensionality reduction
  4. android 去掉标题栏、状态栏、横屏
  5. LeetCode 315. 计算右侧小于当前元素的个数(二叉查找树二分查找归并排序逆序数总结)
  6. m3u:直播流的html接近下载
  7. Java爬取网页源代码解析
  8. Java 实现--时间片轮转 RR 进程调度算法
  9. Atitit 机器学习算法分类 五大分类v5 t56.docx Atitit 机器学习算法分类 目录 1. 传统的机器学习算法 vs 深度学习 1 1.1. 传统的机器学习算法包括决策树、聚类、贝
  10. 解除百度文库复制限制
  11. 前端-回到顶部效果总结
  12. 微信支付-----扫码支付,统一下单
  13. Error parsing INI config file: the argument ('true??') for option 'logappend' is invalid.
  14. 01-Lambert 漫反射
  15. 利用Python制作动漫人物
  16. Python3 面向对象编程进阶
  17. Linux Windows 的Tensorflow 配置: Nvidia 老显卡运算能力低于3.0
  18. 计算2个拼音的相似度 PHP版本
  19. 生命中不仅仅只有代码
  20. JAVA听力源码,【VOA英语听力】Remembering 2001: A Space Odyssey 50 Years Later

热门文章

  1. PyTorch:MNIST数据集手写数字识别
  2. RASP技术攻防之基础篇
  3. 自动驾驶科普:一辆无人车到底是怎样工作的?
  4. 【案例分析】分布式系统的接口幂等性设计!
  5. 日跑几十万作业,唯品会HDFS是如何优化的
  6. java中join的使用
  7. java list 转数组_数组转List,一定要小心这个坑!
  8. C++易被忽略的知识点:移动语义 左值右值
  9. 人,人生,人类,思考
  10. AJAX实现图片文件上传