《Python 核心技术与实战》 学习笔记 Day06 Python “黑箱”:输入与输出

输入输出基础

  • input() 函数暂停程序运行,同时等待键盘输入;直到回车被按下,函数的参数即为提示语,输入的类型永远是字符串型(str)。
  • 把 str 强制转换为 int 请用 int(),转为浮点数请用 float()。而在生产环境中使用强制转换时,请记得加上 try except 。

文件输入输出

命令行的输入输出,只是 Python 交互的最基本方式,适用一些简单小程序的交互。而生产级别的 Python 代码,大部分 I/O 则来自于文件、网络、其他进程的消息等等。

所有 I/O 都应该进行错误处理。因为 I/O 操作可能会有各种各样的情况出现,而一个健壮(robust)的程序,需要能应对各种情况的发生,而不应该崩溃。

JSON 序列化与实战

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它的设计意图是把所有事情都用设计的字符串来表示,这样既方便在互联网上传递信息,也方便人进行阅读。

import json

params = {
    'symbol': '123456',
    'type': 'limit',
    'price': 123.4,
    'amount': 23
}

params_str = json.dumps(params)

print('after json serialization')
print('type of params_str = {}, params_str = {}'.format(type(params_str), params))

original_params = json.loads(params_str)

print('after json deserialization')
print('type of original_params = {}, original_params = {}'.format(type(original_params), original_params))

########## 输出 ##########

after json serialization
type of params_str = <class 'str'>, params_str = {'symbol': '123456', 'type': 'limit', 'price': 123.4, 'amount': 23}
after json deserialization
type of original_params = <class 'dict'>, original_params = {'symbol': '123456', 'type': 'limit', 'price': 123.4, 'amount': 23}

总结

  • I/O 操作需谨慎,一定要进行充分的错误处理,并细心编码,防止出现编码漏洞;
  • 编码时,对内存占用和磁盘占用要有充分的估计,这样在出错时可以更容易找到原因;
  • JSON 序列化是很方便的工具,要结合实战多多练习;
  • 代码尽量简洁、清晰,哪怕是初学阶段,也要有一颗当元帅的心。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 世纪之交的论坛上曾有一句流行语:在互联网上,没人知道你是一条狗。互联网刚刚兴起时,一根网线链接到你家,信息通过这条...
    Codewyf阅读 518评论 0 0
  • python学习笔记 声明:学习笔记主要是根据廖雪峰官方网站python学习学习的,另外根据自己平时的积累进行修正...
    renyangfar阅读 3,092评论 0 10
  • 03|列表和元组,到底用哪一个? 列表是动态的,长度大小不固定,可以随意地增加、删减或者改变元素(mutable)...
    成功在于实践阅读 588评论 0 5
  • 基本语法 输入输出 print / input 如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Py...
    bitzoo阅读 1,685评论 0 0
  • @[toc]  本章将进一步,让程序能够与更大的外部世界交互:文件和流 序:编码   gbk 汉字编码 还有个名...
    奋斗在阿尔卑斯的皮卡丘阅读 712评论 0 0