【Python】 Python输入和输出

输出格式美化

Python两种输出值得方式:表达式语句和print()函数(第三种方式是使用文件对象的write()方法 标准输出文件可以用sys.stdout引用)

如果你希望输出对的形式更加多样,可以使用str.format()函数来格式化输出值

如果你希望将输出的值转成字符串,可以使用repr()或str()函数来实现。

str()函数返回一个用户易读的表达形式。

repr()产生一个解释器易读的表达形式。

s = ‘Hello,world.‘
str(s)
>>>‘Hello,world.‘
repr(s)
>>>"‘Hello,world.‘"
str(1/7)
>>>‘0.14285714285714285‘
x = 10*3.25
y  = 200*200
s = ‘The value of x is ‘ + repr(x) + ‘, and y is ‘ + repr(y) + ‘...‘
print(s)
The value of x is 32.5, and y is 40000...

hello = ‘hello,world\n‘
hellos = repr(hello)
print(hellos)
>>>‘hello,world‘

输出平方 立方表

#rjust()方法可以将字符串靠右,并在左边填充空格。
for i in range(1,11):
    print(repr(x).rjust(2),repr(x*x),rjust(3),end=‘ ‘)
    print(repr(x*x*x).rjust(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(‘{0:2d} {1:3d} {2:4d}‘.format(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 1000

str.format()用法:

{}及里面的字符会被format()中的参数替换。在括号中的数字用于指向传入对象在format()中的位置

>>> print(‘{0} and {1}‘.format(‘spam‘, ‘eggs‘))
spam and eggs
>>> print(‘{1} and {0}‘.format(‘spam‘, ‘eggs‘))
eggs and spam

如果在format()中使用了关键字函数,那么它们 的值会指向使用该名字的参数

>>> print(‘This {food} is {adjective}.‘.format(
...       food=‘spam‘, adjective=‘absolutely horrible‘))
This spam is absolutely horrible.

位置以及关键字参数可以任意的结合

>> print(‘The story of {0}, {1}, and {other}.‘.format(‘Bill‘, ‘Manfred‘,
                                                       other=‘Georg‘))
The story of Bill, Manfred, and Georg.

‘!a’ (使用 ascii()), ‘!s’ (使用 str()) 和 ‘!r’ (使用 repr()) 可以用于在格式化某个值之前对其进行转化:

>>> import math
>>> print(‘The value of PI is approximately {}.‘.format(math.pi))
The value of PI is approximately 3.14159265359.
>>> print(‘The value of PI is approximately {!r}.‘.format(math.pi))
The value of PI is approximately 3.141592653589793.

可选项”:”和格式标识符可以跟着字段名。这就允许对值进行更好的格式化。下面的例子将Pi保留到小数点后三位:

import math
print(‘{0:3f}‘.format(math.pi))
>>>3.142

在’:’后传入一个整数,可以保证该域至少有这么多的宽度,用于美化表格时很有用。

如果你有一个很长的格式化字符串, 而你不想将它们分开, 那么在格式化时通过变量名而非位置会是很好的事情。

最简单的就是传入一个字典, 然后使用方括号 ‘[]’ 来访问键值 :

>>> table = {‘Sjoerd‘: 4127, ‘Jack‘: 4098, ‘Dcab‘: 8637678}
>>> print(‘Jack: {0[Jack]:d}; Sjoerd: {0[Sjoerd]:d}; ‘
          ‘Dcab: {0[Dcab]:d}‘.format(table))
Jack: 4098; Sjoerd: 4127; Dcab: 8637678

也可以通过在 table 变量前使用 ‘**’ 来实现相同的功能:

>>> table = {‘Sjoerd‘: 4127, ‘Jack‘: 4098, ‘Dcab‘: 8637678}
>>> print(‘Jack: {Jack:d}; Sjoerd: {Sjoerd:d}; Dcab: {Dcab:d}‘.format(**table))
Jack: 4098; Sjoerd: 4127; Dcab: 8637678

旧式字符串格式化

>>> import math
>>> print(‘The value of PI is approximately %5.3f.‘ % math.pi)
The value of PI is approximately 3.142.

读和写文件

open()将会返回一个file对象,基本语法格式如下

open(filename,mode)

f = open(‘/tmp/workfile’,’w’)

第一个参数使要打开的文件名

第二个参数描述文件如何使用的字符。mode可以使’r’如果文件只读。’w’只用于写(如果存在同名文件则将被删除)。’a’用于追加文件内容。所写的任何数据都会被自动增加到末尾.’r+’同时用于读写.

mode参数是可选的,’r’是默认值

文件对象的方法

f.read()

为了读取一个文件的内容,调用f.read(size).

将读取一定数目的数据,然后作为字符串或字节对象返回.

size是一个可选的数字类型的参数.当size被忽略或者为负,那么该文件的所有内容都将被读取并且返回.


f.read()
>>>‘This is the entire file.\n‘

f.readline()

读取单独一行.如果返回空字符串说明已经读到最后一行

>>> f.readline()
‘This is the first line of the file.\n‘
>>> f.readline()
‘Second line of the file\n‘
>>> f.readline()
‘‘

f.readlines()

返回该文件中所有的行

>>> f.readlines()
[‘This is the first line of the file.\n‘, ‘Second line of the file\n‘]

另一种方式是迭代一个文件对象然后读取每行:

>>> for line in f:
...     print(line, end=‘‘)
...
This is the first line of the file.
Second line of the file

这个方法很简单, 但是并没有提供一个很好的控制。 因为两者的处理机制不同, 最好不要混用。

f.write()

f.write(string)将string写入到文件中,然后返回写入的字符数

f.write(‘This is a test\n‘)
>>>15

如果写入的不是字符串,需要先转换

>>> value = (‘the answer‘, 42)
>>> s = str(value)
>>> f.write(s)
18

f.close()

在处理完一个文件后,调用f.close()来关闭文件并释放系统的资源,如果尝试再调用该文件,则会抛出异常

也可以使用with语句.结束后会帮助你正确的关闭文件,写起来也比try finally简短

with open(‘/tmp/workfile‘,‘r‘) as f:
    read_data = f.read()
f.closed
>>>True

pickle 模块

python的pickle模块实现了基本的数据序列和反序列化。

通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储.

通过pickle模块的反序列化操作我们能够从文件中创建上一次程序保存的对象.

基本接口:

pickle.dump(obj,file,[,protocol])

有了pickle这个对象,就能对file以读取的形式打开:

x = pickle.load(file)
#从file中读取一个字符串,并将它重构为原来的python对象

file:类文件对象,有read()和readline()接口

实例1:

#使用pickle模块将数据对象保存到文件
import pickle

data1 = {‘a‘:[1,2.0,3,4+6j],
         ‘b‘:(‘string‘,u‘Unicode string‘)
         ‘c‘:None}

selfref_list = [1,2,3]
selfref_list.append(selfref_list)

output = open(‘data.pk1‘,‘wb‘)
pickle.dump(data1,output)
pickle.dump(selfref_list,output,-1)
output.close()

实例2:

import pprint,pickle
pkl_file = open(‘data.pk1‘,‘rb‘)

data1 = pickle.load(pk1_file)
pprint.pprint(data1)

data2 = pickle.load(pk1_file)
pprint.pprint(data2)

pkl_file.close()
时间: 2024-10-09 18:35:12

【Python】 Python输入和输出的相关文章

python之输入和输出(学习笔记一)

python之输入和输出(学习笔记一) 输出 用 print 加上字符串,就可以向屏幕上输出指定的文字.如下命令: print 'hello,world!' print 语句也可以跟上多个字符串,用逗号","隔开,就可以连成一串输出: print 'my name is wtf,','I am learning Python.' 在python中可以直接当做计算器来使用,举例如下: (1)基本的加减乘除余 (2)整数除法与精确除法区别: 注:因为整数除法只取结果的整数部分,要做精确的除

python 3 输入和输出

一.普遍的输入和输出 1.输入 在python3中,函数的输入格式为:input(),能够接受一个标准输入数据,返回string类型. input() 函数是从键盘作为字符串读取数据,不论是否使用引号("或""). Name=input("请输入你的名字:") print(Name) 也接受多个数据输入,使用eval()函数,间隔符必须是逗号 a,b,c=eval(input()) 2.输出 产生输出的最简单方法是使用print语句,可以通过用逗号分隔零个

【Python基础】python控制台输入、输出

python控制台输入.输出 1.输出 简单输出 print("我是简单的字符串输出") 控制台运行结果 我是简单的字符串输出 格式化输出 age=18 print("我今年%d岁"%age) age+=1 print("我今年%d岁"%age) age+=1 print("我今年%d岁"%age) 控制台打印结果: 我今年18岁 我今年19岁 我今年20岁 常用格式化符号: 格式符号 转换 %c 字符 %s 等同于str()

Python(输入、输出;简单运算符;流程控制)

一 输入输出 python3中统一都是input,python2中有raw_input等同于python3的input,另外python2中也有input 1.res=input("python3: ") 2.res=raw_input("python2: ") 3.res=raw_input("python2: ") 1,2无论接收何种输入,都被存为字符串赋值给res,而3的意思是,用户输入何种类型,就以何种类型赋值给res #!/usr/bi

Python学习——输入和输出

(转自:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431643484137e38b44e5925440ec8b1e4c70f800b4e2000) 输出 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字.比如输出'hello, world',用代码实现如下: >>> print('hello, world') print()函数也可以接受多个字

python文件输入和输出

1.1文件对象 文件只是连续的字节序列.数据的传输经常会用到字节流,无论字节流是由单个字节还是大块数据组成.1.2文件内建函数open()和file() 内建函数open()的基本语法是: file_object=open(file_name,access_mode='r',buffering=-1) file_name是包含要打开的文件名字的字符串,它可以是相对路径或者绝对路径. access_mode可选变量也是一个字符串,代表文件打开的模式. 'r'代表:读取: 'w'代表:写入: 'a'

Python(一).输入和输出

输入和输出是python的基本,毕竟,编写python程序不就是为了执行一个特定的任务吗? 输入,是为了告诉计算机所需信息:输出,是为了返回给客户相应结果. 就好比告诉QQ程序你的QQ账号密码,而QQ返回给你你的个人QQ操作界面. 1.输出(print) 为什么先说输出呢? 因为输出是python程序必要的,而输入却不是. 没有输出,程序就无法做出响应,而没有输入,在特定情况下,程序是可以做出反馈的. 输出的基本语法:print() print(' '),print(" "):在引号内

Python中输入和输出(打印)数据

一个程序要进行交互,就需要进行输入,进行输入→处理→输出的过程.所以就需要用到输入和输出功能.同样的,在Python中,怎么实现输入和输出? Python3中的输入方式: Python提供了 input() 内置函数从标准输入读入一行文本,默认的标准输入是键盘. 例如: n = input() print(n) >>>输入Python3 >>>Python3 其中输入的数据以字符串类型进行储存,如果输入数字的话,后续需要转换类型才能进行操作. n = input()pr

简谈-Python的输入、输出、运算符、数据类型转换

输出: 格式化输出: 看到了 % 这样的操作符,这就是Python中格式化输出. 换行输出: 在输出的时候,如果有 \n 那么,此时 \n 后的内容会在另外一行显示 输入: 在python2.7当中,使用:raw_input(),在python3中不能使用.Python3只有input() 在python2中的input()把用户输入的东西当成式子(字符)了.所以在python2中一般用raw_input() python3中的input与python2中的raw_input()功能一样 运算符

Python的输入和输出以及流程控制语句

1.通过raw_input()函数获取用户输入(可见) [[email protected] scripts]# cat input.py #!/usr/bin/env python #-*- coding:utf8 -*- raw_input("请输入用户名:") [[email protected] scripts]# python input.py 请输入用户名:alex [[email protected] scripts]# 2.将用户输入的内容复制给某个变量 [[email