没有合适的资源?快使用搜索试试~ 我知道了~
Python核心技术与实战 06-Python“黑箱”:输入与输出.pdf
需积分: 14 1 下载量 127 浏览量
2019-08-28
09:54:32
上传
评论
收藏 330KB PDF 举报
温馨提示
Python核心技术与实战 06-Python“黑箱”:输入与输出.pdf
资源推荐
资源详情
资源评论
06-Python“黑箱”:输入与输出06-Python“黑箱”:输入与输出
你好,我是景霄。
世纪之交的论坛上曾有一句流行语:在互联网上,没人知道你是一条狗。互联网刚刚兴起时,一根网线链接
到你家,信息通过这条高速线缆直达你的屏幕,你通过键盘飞速回应朋友的消息,信息再次通过网线飞入错
综复杂的虚拟世界,再进入朋友家。抽象来看,一台台的电脑就是一个个黑箱,黑箱有了输入和输出,就拥
有了图灵机运作的必要条件。
Python程序也是一个黑箱:通过输入流将数据送达,通过输出流将处理后的数据送出,可能Python解释
器后面藏了一个人,还是一个史莱哲林?Noonecares。
好了废话不多说,今天我们就由浅及深讲讲Python的输入和输出。
输入输出基础输入输出基础
最简单直接的输入来自键盘操作,比如下面这个例子。
input()函数暂停程序运行,同时等待键盘输入;直到回车被按下,函数的参数即为提示语,输入的类型永
远是字符串型(str)。注意,初学者在这里很容易犯错,下面的例子我会讲到。print()函数则接受字符
串、数字、字典、列表甚至一些自定义类的输出。
我们再来看下面这个例子。
name=input('yourname:')
gender=input('youareaboy?(y/n)')
######输⼊######
yourname:Jack
youareaboy?
welcome_str='Welcometothematrix{prefix}{name}.'
welcome_dic={
'prefix':'Mr.'ifgender=='y'else'Mrs',
'name':name
}
print('authorizing...')
print(welcome_str.format(**welcome_dic))
##########输出##########
authorizing...
WelcometothematrixMr.Jack.
a=input()
1
b=input()
2
print('a+b={}'.format(a+b))
##########输出##############
这里注意,把str强制转换为int请用int(),转为浮点数请用float()。而在生产环境中使用强制转换时,请
记得加上tryexcept(即错误和异常处理,专栏后面文章会讲到)。
Python对int类型没有最大限制(相比之下,C++的int最大为2147483647,超过这个数字会产生溢
出),但是对float类型依然有精度限制。这些特点,除了在一些算法竞赛中要注意,在生产环境中也要时
刻提防,避免因为对边界条件判断不清而造成bug甚至0day(危重安全漏洞)。
我们回望一下币圈。2018年4月23日中午11点30分左右,BEC代币智能合约被黑客攻击。黑客利用数据溢
出的漏洞,攻击与美图合作的公司美链BEC的智能合约,成功地向两个地址转出了天量级别的BEC代币,
导致市场上的海量BEC被抛售,该数字货币的价值也几近归零,给BEC市场交易带来了毁灭性的打击。
由此可见,虽然输入输出和类型处理事情简单,但我们一定要慎之又慎。毕竟相当比例的安全漏洞,都来自
随意的I/O处理。
文件输入输出文件输入输出
命令行的输入输出,只是Python交互的最基本方式,适用一些简单小程序的交互。而生产级别的Python
代码,大部分I/O则来自于文件、网络、其他进程的消息等等。
接下来,我们来详细分析一个文本文件读写。假设我们有一个文本文件in.txt,内容如下:
好,让我们来做一个简单的NLP(自然语言处理)任务。如果你对此不太了解也没有影响,我会带你一步步
完成这个任务。
首先,我们要清楚NLP任务的基本步骤,也就是下面的四步:
1. 读取文件;
2. 去除所有标点符号和换行符,并把所有大写变成小写;
3. 合并相同的词,统计每个词出现的频率,并按照词频从大到小排序;
a+b=12
print('typeofais{},typeofbis{}'.format(type(a),type(b)))
##########输出##############
typeofais<class'str'>,typeofbis<class'str'>
print('a+b={}'.format(int(a)+int(b)))
##########输出##############
a+b=3
Ihaveadreamthatmyfourlittlechildrenwillonedayliveinanationwheretheywillnotbejudgedbythecoloroftheirskinbutbythecontentoftheircharacter.Ihaveadreamtoday.
IhaveadreamthatonedaydowninAlabama,withitsviciousracists,...onedayrightthereinAlabamalittleblackboysandblackgirlswillbeabletojoinhandswithlittlewhiteboysandwhitegirlsassistersandbrothers.Ihaveadreamtoday.
Ihaveadreamthatonedayeveryvalleyshallbeexalted,everyhillandmountainshallbemadelow,theroughplaceswillbemadeplain,andthecrookedplaceswillbemadestraight,andthegloryoftheLordshallberevealed,andallfleshshallseeittogether.
Thisisourhope...Withthisfaithwewillbeabletohewoutofthemountainofdespairastoneofhope.Withthisfaithwewillbeabletotransformthejanglingdiscordsofournationintoabeautifulsymphonyofbrotherhood.Withthisfaithwewillbeabletoworktogether,topraytogether,tostruggletogether,togotojailtogether,tostandupforfreedomtogether,knowingthatwewillbefreeoneday....
Andwhenthishappens,andwhenweallowfreedomring,whenweletitringfromeveryvillageandeveryhamlet,fromeverystateandeverycity,wewillbeabletospeedupthatdaywhenallofGod'schildren,blackmenandwhitemen,JewsandGentiles,ProtestantsandCatholics,willbeabletojoinhandsandsinginthewordsoftheoldNegrospiritual:"Freeatlast!Freeatlast!ThankGodAlmighty,wearefreeatlast!"
剩余11页未读,继续阅读
资源评论
songhao8080
- 粉丝: 1235
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功