简明Python3教程 14.输入输出

简介

一些情况下你不得不让程序与用户进行交互。例如,你需要从用户处得到输入然后输出计算结果。我们可以分别通过input()print()函数做到这些。

对于输出,我们还可以使用str(string)类的各种方法。例如rjust方法可以得到一个指定宽度的右对齐字符串。详见help(str)

另一种常见的输入/输出类型为文件处理。对于很多程序拥有创建,读写文件的能力是必不可少的,我们会在这节探究这些内容。

 

得到用户输入

#!/usr/bin/python

# user_input.py

def reverse(text):

    return text[::-1]

def is_palindrome(text):

    return text == reverse(text)

something = input('Enter text: ')

if (is_palindrome(something)):

    print("Yes, it is a palindrome")

else:

    print("No, it is not a palindrome")

输出:

    $ python user_input.py

    Enter text: sir

    No, it is not a palindrome

   

    $ python user_input.py

    Enter text: madam

    Yes, it is a palindrome

   

    $ python user_input.py

    Enter text: racecar

    Yes, it is a palindrome

范例如何工作:

范例中我们使用切片操作反转文本。之前我们已经学过如何通过seq[a:b](从a开始止于b)对序列切片。

对于切片操作我们还可以指定第三个参数步长,步长默认为1将返回文本的一个连续部分。而给定一个负步长-1将返回反转后的文本。

input()函数接收一个字符串实参并将其打印给用户,然后函数等待用户输入一些东西,一但用户按下回车键则输入结束,input函数将返回输入的文本。

之后我们反转文本,如果反转后的文本与原文本相同,则代表它是一个回文(http://en.wiktionary.org/wiki/palindrome)。

 

练习题:

检测一个文本是否为回文应该忽略标点,空格和大小写。

例如”Rise to vote, sit.”同样是一个回文,但是我们当前的例子无法识别它。你能改善这个例子让它做都这点吗?

 

文件

通过创建file类对象,使用其read, readlinewrite方法你可以对文件进行读写。

具体读或写的方式依赖于你打开文件时指定的模式。

最后当你完成文件操作时调用close关闭文件。

范例:

#!/usr/bin/python

# Filename: using_file.py

 

poem = '''/

Programming is fun

When the work is done

if you wanna make your work also fun:

    use Python!

'''

 

f = open('poem.txt', 'w') # 写模式打开

f.write(poem) # 写文件

f.close() # 关闭文件

 

f = open('poem.txt') # 如果没有提供打开模式, 则默认假设为读模式

while True:

    line = f.readline()

    if len(line) == 0: # 长度为0代表EOF(注: end of file即文件尾)

        break

    print(line, end='')

f.close() # close the file

输出:

    $ python using_file.py

    Programming is fun

    When the work is done

    if you wanna make your work also fun:

            use Python!

范例如何工作:

首先,我们通过内建函数open打开一个文件,在函数中我们指定了被打开文件的文件名与希望使用的打开模式。

其中打开模式可以为读模式(‘r’),写模式(‘w’)或追加模式(‘a’)。另外我们也可以处理文件文件(‘t’)和二进制文件(‘b’)。

实际上还有很多模式可用,详见help(open)。默认的open将文件对待为文本文件’t’,并以读模式’r’打开。

在范例中,我们首先以写文本模式打开文件,使用文件对象的write方法写文件,并调用close将其关闭。

然后我们再次打开相同的文件用于读取。这里我们无需指定打开模式因为’读文本文件’是open的默认模式。

在循环中我们使用readline方法读取文件的每一行。这个方法返回一整行文本其中包括末尾的换行符。

当返回一个空字符串时,意味着我们已经来到文件尾,因此使用break跳出循环。

默认的,print()函数将自动打印一个换行。因为从文件读出的文本行末尾已经包含一个换行,所以我们指定参数end=’’抑制换行。

最后我们关闭文件。

现在,检查poem.txt文件内容以确定程序真的写入并读取了文件。

 

Pickle

python提供了一个名为pickle的标准模块用于将任意python对象存入文件或从文件中读出。这被称做永久性存储对象(persistently)。

范例:

#!/usr/bin/python

# Filename: pickling.py

 

import pickle

 

# the name of the file where we will store the object

shoplistfile = 'shoplist.data'

# the list of things to buy

shoplist = ['apple', 'mango', 'carrot']

 

# Write to the file

f = open(shoplistfile, 'wb')

pickle.dump(shoplist, f) # 转储对象到文件

f.close()

 

del shoplist # 销毁shoplist变量

 

# 从文件找回对象

f = open(shoplistfile, 'rb')

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

print(storedlist)

输出:

    $ python pickling.py

    ['apple', 'mango', 'carrot']

范例如何工作:

为了将对象存储到文件,我们必须首先’wb’写二进制文件模式打开文件然后调用pickle模块的dump函数。这个过程叫做封藏(pickling)对象。

接下来我们使用pickle的load函数重新找回对象。这个过程叫做解封(unpickling)对象。

 

小结

我们已经讨论了各种形式的输入/输出,和利用pickle模块进行文件处理。

接下来,我们将会学习异常处理。

 

 

 

--------------Python书籍推荐-----------------

Python基础教程-第2版.修订版 

购买地址1  购买地址2

 

 

PYTHON核心编程

购买地址1  购买地址2

 

 

零基础学Python

购买地址1  购买地址2

时间: 2024-08-03 01:10:47

简明Python3教程 14.输入输出的相关文章

简明Python3教程(A Byte of Python 3)

 关键字:[A Byte of Python v1.92(for Python 3.0)] [A Byte of Python3] 简明Python教程 Python教程 简明Python3教程    简明Python3教程<A Byte of Python3>是一本关于用Python3语言编程的书.可以作为初学这的入门教程.也可以供计算机相关人员参考. 本书可作为Python编程语言的指导或辅导.主要是针对新手的,当然,对于有经验的程序员也很有用.如果你所了解的计算机的知识就是如何保存文本文

简明Python3教程 5.第一步

介绍 我们现在来看看如何在Python中运行传统的"Hello world"程序.这会教你如何写.保存以及运行Python程序. 有两种办法来运行您的Python程序--使用交互式的解释器提示符或者源代码文件.我们现在来分别看一看这两种方法. 使用解释器提示符 在命令提示符中输入python来打开解释器. 那些在GNU/Linux与BSD上同时安装了Python 3.x与Python 2.x的用户可能需要输入python3. 而对于Windows用户而言,如果您在PATH环境变量里正确

简明Python3教程 6.基础

你肯定不满足于只打印"Hello World"吧? 你想要的更多 - 你希望得到一些输入,操纵它后再从中得到某些东西.我们可以使用python中的常量和变量实现这些功能.   字面常量(literal constant)字面常量的一个例子是数字诸如5, 1.23, 9.25e-3或字符串This is a string', "It's a string!".顾名思义,字面常量的重点在于"字面", 你直接以字面的意义使用它们.数字2永远是数字2绝不

简明Python3教程 4.安装

如果你已经安装了Python 2.x,你不需要在安装Python 3.0前卸载Python 2.x.这两者可以共存. GNU/Linux用户和BSD用户 如果你使用类似于Ubuntu.Fedora.OpenSUSE.Debian.CentOS或其他你选择的GNU/Linux发行版,或类似于FreeBSD的BSD系统,你的系统很可能已经了Python. 可通过开启shell程序(如konsole或gnome-terminal)并输入以下命令以检测Python是否安装在你的BSD或GNU/Linux

简明Python3教程 16.标准库

简介 python标准库作为python标准安装的一部分,其自身包含数量庞大的实用模块, 因此熟悉python标准库非常重要,因为很多问题都能利用python标准库快速解决. 下面我们将研究标准库中的一些常用模块.完整的标准库模块列表可以在安装python时附带的文档中的'Library Reference'一节找到. 现在就让我们来看看这些模块吧.   提示 如果你感觉本章内容对于你过于超前,那么可以跳过本章.但是当你熟悉python编程后我强烈建议你把这章补上.   sys模块 sys模块包

简明Python3教程 7.运算符和表达式

简介 你写的大多数逻辑行都包含表达式.表达式的一个简单例子是2 + 3.一个表达式可分为操作符和操作数两部分. 操作符的功能是执行一项任务:操作符可由一个符号或关键字代表,如+ .操作符需要数据以供执行其功能,这些数据名为操作数.在上面的例子中,2和3是操作数. 操作符 我们在这里简单地介绍操作符及其用途: 你可在Python解释器中交互验证下面给出的例子.例如,验证2 + 3,在Python解释器提示符中输入: >>> 2 + 3 5 >>> 3 * 5 15 >

简明Python3教程 9.函数

简介 函数是程序的可复用片段,允许你为语句块赋予名字之后在程序的任何地方运行它们任意次,这称做函数调用. 我们已经使用过一些内建函数,例如len和range等. 函数也许是任何有意义的软件中最重要的构件,所以我们将在本章探究函数的方方面面. 函数以关键字def定义,其后紧跟函数名,由一对小括号闭合的形参,最后以冒号结束定义行, 定义行下面的是函数体,它是一个语句块. 听着有点复杂,其实定义起来是很简单的,见下面的例子: 范例: #!/usr/bin/python # Filename: func

简明Python3教程 2.序言

Python也许是为数不多的既简单又强大的编程语言.这有利于新手甚至于专家,更重要的是用它编程所带来的乐趣. 这本书的目的是帮助您了解这种神奇的语言,展示如何快速而轻松地完成事情--事实上"编程问题的完美解决方案!" 本书的读者 本书可以作为Python编程语言的一本指南或者教程.它主要是为新手而设计,不过对于有经验的程序员来说,它同样有用. 其目的是,即使你对计算机的认识只是知道如何保存文件,你仍然可以从本书中学到的Python.如果你之前有过编程经验,你也可以从本书中学到的Pyth

简明Python3教程 15.异常

简介 当程序发生意外情况时则产生异常. 例如你需要读一个文件而这个文件并不存在会咋样?又或者是程序运行时你把它误删除了呢? 上述情形通过异常进行处理. 类似的,如果你的程序存在一些非法语句会发生什么呢?这时python会举手告诉你存在一个错误.   错误 考虑一个简单的print函数调用.如果我们把print错拼成Print(注意大小写),这时python将引发一个语法错误.     >>> Print('Hello World')     Traceback (most recent