资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

如何讲解Python对象转换问题

如何讲解Python对象转换问题,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

成都创新互联专注于鄠邑企业网站建设,响应式网站,成都做商城网站。鄠邑网站建设公司,为鄠邑等地区提供建站服务。全流程按需策划设计,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务

Python对象的大多数格式与C用法相同,要求要输出的值的类型符合格式的需要,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们,这样不但可以避免错误的发生也大大的提高了工作效率。

把象‘123’这样的字符串转换为对应的整数值123。但是,当你想保存更复杂的数据类型如列表、字典或类实例时,读写就要复杂得多。Python的设计使程序员可以不必反复编写调试保存复杂数据类型的代码,它提供了一个叫做pickle的标准模块。

这个令人惊异的模块可以把几乎任何Python对象转换为字符串表示,这个过程叫做腌制,从对象的字符串表示恢复对象叫做恢复。在腌制和反腌制之间,对象的字符串表示可以保存在文件或数据中,甚至于通过网络连接传送到远程计算机上。

pickle是保存Python对象并被其它程序或同一程序以后再运行时调用的标准办法,这种做法的专用术语叫做“持久对象”。因为pickle使用广泛,许多Python扩展模块的作者都留意使新增加的数据类型如矩阵可以正确地腌制和恢复。

***自变量是一个包含了文件名的字符串,第二自变量是文件打开方式的字符串。模式‘r ’表示读取,‘w’表示只写(已有的同名文件被清除),‘a’表示打开文件在尾部添加。

‘r+’表示打开文件既可以读也可以写。打开方式参数可选,缺省为‘r’模式。在Windows和Macintosh中在模式中加入‘b’表示以二进制格式打开文件,如‘rb’、‘wb ’、‘r+b’。Windows对文本文件和二进制文件有不同的处理。

文本文件中的换行字符在读写时有变化。这种对文件数据的幕后的修改不影响ASCII文本文件,但是会破坏二进制数据如JPEG 或“.EXE”文件的数据。读写这样的文件一定要使用二进制格式。(Macintosh中文本模式的精确描述依赖于使用的C库)。

下面是两种写出平方、立方表的方法:

>>> import string  >>> for x in range(1, 11):  ...     print string.rjust(`x`, 2), string.rjust(`x*x`, 3),  ...     # 前一行的结尾逗号表示不换行  ...     print string.rjust(`x*x*x`, 4)  ...   1   1    1   2   4    8   3   9   27   4  16   64   5  25  125   6  36  216   7  49  343   8  64  512   9  81  729  10 100 1000  >>> for x in range(1,11):  ...     print'%2d %3d %4d' % (x, x*x, x*x*x)  ...    1   1    1   2   4    8   3   9   27   4  16   64   5  25  125   6  36  216   7  49  343   8  64  512   9  81  729  10 100 1000aspx

注意print输出的各项之间额外加了一个空格,这是print的规定,此例显示了函数string.rjust()的用法,此函数可以把一个字符串放进指定宽度右对齐,左边用空格填充。类似函数还有string.ljust()和string.center()。这些函数不向外输出,只是返回转换后的字符串。如果输入字符串太长也不会被截断而是被原样返回。

这样的处理可能会使你的列对齐失效,但这可能比截断要好一些,截断的结果是我们看到一个错误的值。(如果你确实需要截断的话总可以再加一层片断,如string.ljust(x,n)[0:n])。

看完上述内容,你们掌握如何讲解Python对象转换问题的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


网站名称:如何讲解Python对象转换问题
本文来源:http://cdkjz.cn/article/pjddso.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220