为了账号安全,请及时绑定邮箱和手机立即绑定

python——VS2017开发python与python3.6更新特性

标签:
Python

VS2017详情   http://blog.csdn.net/sm9sun/article/details/68924321


作为50G吊炸天IDE,VS2017对于python的支持也是很给力。


新建项目中可以选择python工程

https://img1.sycdn.imooc.com//5b4ddf890001671c06390437.jpg


在工具选项文本编辑器里可以选择显示行号等常用开发选项

https://img1.sycdn.imooc.com//5b4de04900016ccb05660367.jpg


解决方案里可以选择相应的版本环境

https://img1.sycdn.imooc.com//5b4de0520001aab605000305.jpg

https://img1.sycdn.imooc.com//5b4de05900017ac406340303.jpg


同时IntelliSense支持的版本也较高,asyncio模块等都可以支持

https://img1.sycdn.imooc.com//5b4de0620001938505300271.jpg


有趣的是,debug后如遇到非法代码段进程不是崩溃而是在该处自动变为断点,这还是比较方便的。

https://img1.sycdn.imooc.com//5b4de0680001acff05670247.jpg

断点后按F5可以继续执行,然后会像正常运行脚本一样崩溃报错

https://img1.sycdn.imooc.com//5b4de06e0001de0106410199.jpg


在安装VS2017时如果选择安装python默认安装的是python3.6


下面介绍一下python3.6的几大特性


一、f-string格式化字符串字面量

PEP 498引入了 f-string,一种新型的字符串字面量。中文翻译为“格式化字符串字面量”。
这种字符串以 f 为前缀,类似 str.format() 方法所接受的字符串。其中的可替换字段用 {} 包裹起来,在运行时进行求值。


#python3.6—— f-string格式化字符串字面量width = 10precision = 4value = decimal.Decimal("12.34567")s=f"result: {value:{width}.{precision}}"print(s)


https://img1.sycdn.imooc.com//5b4de0760001ec2303930266.jpg



二、变量声明语法

此前,Python 已加入了对函数变量类型进行注释的标准,也就是 type hint。而 Python 3.6 中则根据PEP 526的提议,加入了对更多变量类型注释的功能,包括类变量和实例变量。


#python3.6——变量声明语法#3.5以前支持from typing import Listdef test(a: List[int], b: int) -> int:return a[0] + bprint(test([3, 1], 2))#3.6新增支持from typing import List, Dictprimes: List[int] = []captain: str  # 此时没有初始值class Starship:stats: Dict[str, int] = {}




三、数字字面量使用下划线

对于较大的数字来说,位数太多可能不好判断值到底有多大。现在新版本中将允许你在数字字面量中使用下划线,提高可读性。


#python3.6—— 数字字面量使用下划线a= 1_000_000_000_000_000print(a)b= 0x_FF_FF_FF_FFprint(b)




https://img1.sycdn.imooc.com//5b4de07c0001643503910144.jpg


IntelliSense还是会报错

https://img1.sycdn.imooc.com//5b4de0880001eab000650067.jpg


四、异步生成器


在上一个版本中,Python 引入了对原生协程的支持,并可使用 async 或 await 语法,但是有一个限制是没办法在同一个函数体中使用 await 和 yield 。这个限制在 3.6 版中取消了,因此以后将可以定义异步生成器。


#python3.6——异步生成器async def ticker(delay, to):for i in range(to):yield iawait asyncio.sleep(delay)




五、异步解析器

允许在列表list、集合set 和字典dict 解析器中使用 async for 或 await 语法。


#python3.6——异步解析器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 类型输入。


……


python3.6相关参考文档      http://www.jb51.net/article/100087.htm


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消