输入 输出

会有这种情况,你的程序必须与用户进行交互。例如,你想获取来自用户的输入,然后打印一些返回的结果。我们可以分别使用input()和print()函数来实现。

对于输出,我们还可以使用str(字符串)类的各种方法。例如,您可以使用rjust方法来获取一个指定宽度的字符串。更多细节,见 help(str)。

另一个常见的输入/输出类型是处理文件。创建、读和写文件是许多程序至关重要的,我们将在本章探讨这方面。

用户输入

将这个程序保存为 user_input.py:

def reverse(text):

return text[::-1]

def is_palindrome(text):

return text == reverse(text)

something = input('输入文本: ')

if (is_palindrome(something)):

print("是的,这是回文")

else:

print("不,这不是回文")

输出:

输入文本: 蜜蜂

不,这不是回文

输入文本: 人上人

是的,这是回文

它是如何工作的:

我们使用切片特性来颠倒文本。我们已经看到使用seq[a:b]代码获取从a到b来自序列的切片。我们还可以提供一个第三个确定步长的参数,切片默认的步长是 1,它返回一个连续文本的一部分。给一个负的步长,即 -1 ,将以反向返回文本。

input()函数将一个字符串作为参数,并显示给用户。然后等待用户输入和按回车键。一旦用户输入和按下回车键,input()函数将返回用户输入的文本。

我们获取文本并颠倒它。如果原始文本和颠倒的文本是相等的,那么那个文本是一个回文。

家庭作业

检查一个文本是否是一个回文应该忽略标点符号、空格和案例。例如,"Rise to vote, sir." 也是一个回文,但我们当前的程序并没有说它是。你能改善上述程序来识别这个回文吗?

下面的提示(不要读)

使用一个元组(从这里(http://grammar.ccc.commnet.edu/grammar/marks/marks.htm)你可以找到所有标点符号的一个列表)来保存所有的禁止字符,然后使用会员测试,以确定是否应该删除一个字符,即forbidden = ('!', '?', '.', ...)。

文件

为了读写,你可以通过创建一个file类的对象,分别使用read、readline或 write方法来,打开和使用文件。能够读取或写入文件取决于文件打开时指定的模式。最后,当你完成对文件的操作时,你要调用close方法告诉Python,文件我们使用完了。

例子 (保存为 using_file.py):

poem = '''\

当工作完成时

编程是有趣的

如果想让你的工作有趣

使用Python!

'''

f = open('poem.txt', 'w') # 为'写w'打开文件

f.write(poem) # 文本写入文件

f.close() # 关闭文件

f = open('poem.txt') # 如果不指定打开模式,默认为'读'

while True:

line = f.readline()

if len(line) == 0: # 0长度表示文件结尾

break

print(line, end='')

f.close() # 关闭文件

输出:

D:> python using_file.py

当工作完成时

编程是有趣的

如果想让你的工作有趣

使用Python!

它是如何工作的:

首先,通过内置的函数open,指定文件名和我们要打开的模式,打开一个文件。模式可以是读模式('r'), 写模式('w')或追加模式('a')。我们也可以指定是否以文本格式('t') 或二进制格式('b')读,写或追加。实际上有更多可用的模式,help(open) 会给你更多的细节。默认情况下,open()认为是一个以读方式打开的文本格式的文件。

在我们的例子中,我们首先以写文本格式打开文件,使用文件对象的write方法写文件,然后,我们最后 close(关闭)文件。

接下来,为再次阅读,我们打开同一个文件。我们不需要指定一个模式,因为 '读文本文件' 是默认的模式。我们使用readline方法在一个循环中每次读文件的一行。该方法返回一个完整的行,包括换行符结束时的行。当返回一个空字符串时,这意味着我们已经到达文件的末尾,我们'打破'循环。

在默认情况下,print()函数在屏幕上自动换行打印文本。我们是通过指定end=''禁止产生新行,因为从文件读取的行在结尾已经包含一个换行符。然后,我们最终close文件。

现在,检查poem.txt的内容,确认程序确实写入和从那个文件读取。

拾取

Python提供了一个标准的模块称为pickle,使用它你可以在一个文件中存储任何的Python对象,然后把它弄回来后,这就是所谓的持续的存储对象。

例子 (保存为 pickling.py):

import pickle

# 我们将要存储对象的文件名

shoplistfile = 'shoplist.data'

# 购物清单

shoplist = ['苹果', '芒果', '胡萝卜']

# 定到文件

f = open(shoplistfile, 'wb')

pickle.dump(shoplist, f) # 把对象倒入一个文件

f.close()

del shoplist # 释放shoplist变量

# 从仓库读回

f = open(shoplistfile, 'rb')

storedlist = pickle.load(f) # 从文件载入对象

print(storedlist)

输出:

D:> python pickling.py

['苹果', '芒果', '胡萝卜']

它是如何工作的:

要在文件中存储一个对象,我们首先必须以'w'rite写'b'inary 二进制格式的方式open打开文件,然后调用pickle模块的dump函数,这个过程叫拾取。

接下来,我们使用pickle模块的load函数取回对象,这个过程叫做拆开。

小结

我们已经讨论了各种类型的输入/输出,文件处理和使用pickle模块。

接下来,我们将探讨索异常的概念。

继续阅读异常

python教程输入_输入/输出相关推荐

  1. 420集的python教程下载_微软官方发布了最新420集Python教程,这教程简直就是编程界福利...

    泰国清迈-2014 年 10 月 22 日: 微软主页 clos Austria, Tyrol, Axamer Lizum, hosting village of 近日,微软上线了一套 Python ...

  2. 420集的python教程视频_阿里达摩院推的420集的python教程高清版,据说懂中文就能入门...

    阿里达摩院推的400集的python教程高清版,据说懂中文就能入门 小编的内心是强大的,网友虐我千百遍,我待网友如初恋,因为今天又给大家带来了干货,Python入门教程完整版,完整版啊!完整版! 为了 ...

  3. Python基本语法_输入/输出语句详解

    目录 目录 前言 输入 raw_input input raw_input 和 input 的区别 输出 print print 基本格式化输出 print复杂格式化输出 flags标志位 width ...

  4. maya python教程下载_[转载]技术教程-MayaPython教程四之实战篇

    其实作为一个设置或者技术指导,学习到一定程度必须要接触编程,比如Mel.Python.C++ Api等程序语言,这些教程主要是转载胡泳滨的Maya Python学习教程,现在开始第一章-MayaPyt ...

  5. python美化输出模块_美化输出结果之Python模块PrettyTable介绍

    0x00 前言 这是在分析Cobra源码的时候看到的,作者使用PrettyTable模块将漏洞扫描结果以表格形式格式化的输出. 这个模块在写CLI形式的工具时,还是会经常用到的,可以使最终的输出结果更 ...

  6. input 时分秒输入_输入年月日时分秒

    编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒.如输入 2004 年 12 月 31 日 23 时 59 分 59 秒,则输出 2005 年 1 月 1 日 0 时 0 分 0 秒. ...

  7. python 列表维度_如何输出python中list的维度

    python中输出list的维度可以使用numpy来实现:import numpy as np a = [[1,2],[3,4]] print(np.array(a).shape) 扩展: resha ...

  8. 读芯术python教程答案_攻略Python的免费书单:走进编程,从这五本书开始

    全文共1245字,预计学习时长5分钟 图源:unsplash Python一向是数据科学家最青睐的编程语言,它的语法相对简单.易于学习.除了机器学习数据库之外,还有非常活跃的开发人员社区,维护着各种库 ...

  9. 420集的python教程下载_阿里达摩院推荐的420集的python教程,据说懂中文就能入门高清版...

    为了吸取教训,小编一定要分享一下攻略,"怎样获得小编分享的教程呢?",其实很简单,只需要私信我就可以了啦,具体步骤如下. 言归正传,小编该给大家介绍一下这套教程了,希望每个小伙伴都 ...

最新文章

  1. 百万级分组大报表开发与呈现
  2. BZOJ 4044 Luogu P4762 [CERC2014]Virus Synthesis (回文自动机、DP)
  3. linux笔记之 搭建本地yum源,网卡的基本操作
  4. Application对象 简单的聊天室
  5. 博士导师总结目标检测、卷积神经网络和OpenCV学习资料(教程/PPT/代码)
  6. 查找子串在母串中的位置、编写一个函数实现字符串拼接【数据结构实验报告算法详解】
  7. C#面向对象名词比较(三)
  8. 使用Xcode、Android Studio将项目链接到Git
  9. 一文了解caffe框架
  10. 张正友标定法代码解释
  11. 元气骑士怎么用电脑玩 元气骑士手游模拟器教程
  12. python3 用socket编写ftp
  13. cocos2d-x传智播客_Hanselminutes播客54-压缩持续集成
  14. APP地推效果监测精准方案
  15. 给我5个带”一“字的成语
  16. 无法上网dns转发_公共DNS服务114.114.114.114已恢复正常
  17. CDLinux U盘制作教程
  18. 2022-2028全球与中国消防无人机市场现状及未来发展趋势
  19. 计算机启动老是检测硬盘怎么解决,开机出现硬盘检测是怎么回事 硬盘检测的解决方法...
  20. 球半篮球分析,WNBA:风暴 vs 梦想

热门文章

  1. ajax struts 返回html,Struts2+ajax 异步请求,向前段返回字符串
  2. js 拉勾网效果_借助JShaman,建立自己的JS代码混淆平台
  3. android 编译faac,faac 移植到android
  4. Java基础01 1个和2个区别比较
  5. linux输出和错误信息文件,Log4j配置将错误信息输出到指定文件中[linux tomcat]
  6. shell命令删除昨日的日志_linux定时自动清理日志文件
  7. php 递归函数中静态变量,php递归,静态变量,匿名函数使用
  8. python语句分为什么_Python为什么使用缩进来分组语句?
  9. glusterfs java_GlusterFS分布式文件系统使用简介
  10. 华人微型计算机之父,计算机之父是谁?