python输入与输出

python输出值的方式有两种:

  • 表达式语句

  • print()函数

str.format()函数用来格式化输出值,可以让输出的形式多样化;

repr()和str()函数可以将输出值改为字符串。

一. print()函数

print()函数输出不同元素的格式:

 print("python")         # 输出字符串
 
 print(20) # 输出数字
 
 str = "我是变量输出"
 print(str) # 输出变量
 
 L = [10,"abc",'hello']
 print(L) # 输出列表
 
 tup = (15,'def',"main")
 print(tup) # 输出元组
 
 dict = {3.1,415926,'gfh'}
 print(dict) # 输出字典
 

Pycharm中运行结果:

 "D:\Program Files\Python310\python.exe" D:/Project/Ubuntu_Projects/text.py
 python
 20
 我是变量输出
 [10, 'abc', 'hello']
 (15, 'def', 'main')
 {3.1, 'gfh', 415926}
 
 Process finished with exit code 0
 

1.1输出格式化整数

在python中支持格式化输出,但往往会涉及到一些字符串格式化符号,如下表所示:

符号 描述

%c 格式化字符及其ASCII码 %s 格式化字符串 %d 格式化整型 %u 格式化无符号整型 %o 格式化无符号八进制 %x 格式化无符号十六进制 %X 格式化无符号十六进制(大写) %f 格式化浮点数字,.数字f可以指定精度值 %e 用科学计数法格式化浮点数 %g %f和%e的简写 %p 指针(用十六进制数格式化变量的地址)

%n 存储输出字符的数量放进参数列表的下一个变量中

整数既可以使用%s当占位符也可以使用%d当占位符

\textcolor{red}{下面是一些占位的案例:}

==> %d

 age = 48
 print("my age is %d" %age)
 print("我的年龄是%d岁" %age) # 后面的 %之前空格就行,不能用逗号或分隔符

Pycharm中运行结果:

 my age is 48
 我的年龄是48岁

==>%f

 print("%4.1f" %1.65)    # 输出浮点数长度为4位(不够用空格补全),小数点后保留1位
 print("%f" %1.6) # 默认小数点后保留6位

Pycharm中运行结果:

  1.6
 1.600000

==>%s

 name = "宽哥"
 print("大家都叫我%s" %name)

Pycharm中运行结果:

 大家都叫我宽哥

\textcolor{blue}{辅助的格式化操作指令:}

  • 定义宽度或者精度 *

  • 常用左对齐 -

  • 在正数前面显示加号 +

  • 在正数前面显示空格 <sp>

  • 映射变量 (var)

  • 在八进制里显示“0“ ;在十六进制里显示 ”0X" #

  • 数字前面填充0而不是默认的空格 0

  • ‘%%’ 输出一个单一的‘%’ %

  • m是显示最小总宽度;n是小数点后的位数 m.n.

类型转换(float):

在python中,类型的转换可以将整形转换成浮点型。

 pi = 3.1415926
 print('%8.4f' %pi) # 字段宽8,精度4
 
 print("pi = %.*f" %(2,pi)) # 输出小数点后的位数为2
 
 pi = 3.142
 print("%010.3f" %pi) # 用0替代默认的空格
 print("%-10.3f" %pi) # 左对齐 长度不够显示空格
 print("%+f" %pi) # 显示正号

Pycharm中运行结果:

   3.1416
 pi = 3.14
 000003.142
 3.142     # 长度不够,后面补有空格
 +3.142000

 

二 format()函数格式化输出

2.1 format()位置映射

print("{}:{}".format('3.1415', 926))

2.2 format()关键字映射

print("{server}{1}_{0}".format(926, '3.1415', server='pi:'))

2.3 填充对齐

print("{0}+{1}-{2:>2}".format(1,2,1+2))

在填充对齐中:

  • “^" 是居中对齐

  • "<" 是左对齐

  • ">" 是右对齐

例如下:

 print("{}:{}".format('3.1415', 926))
 print("{server}{1}_{0}".format(926, '3.1415', server='pi:'))
 print("{0}+{1}={2:>2}".format(1, 2, 1+2)) # :>2 是将结果右对齐两个单位

pycharm中运行结果:

 3.1415:926
 pi:3.1415_926
 1+2= 3

 

三.str()函数与repr()函数

str()函数与repr()函数在很多时候是相同的,除了字符串类型外,当需要直接用对象进行输出调用时用repe(),print()输出调用时用str()。

str()函数与repr()函数的区别在于:

  • str()函数:将值转化为适宜人阅读的字符串的形式,是面向用户的;

  • repr()函数:将值转化为解释器读取的字符串形式,是面向程序员的。

==>str()的语法为:

str.strip([character])

strip是用来删除字符串头部以及尾部的指定字符或者字符序列

character 是需要美化的字符串

 str = "+-*/python 3+-*"
 print(str.strip('*,+,-,/'))     # 指定字符串 ”+ - * /“

pycharm中运行的结果:

 python 3

str()函数删除了中间的“python"以外的头尾指定的字符

str()函数与repr()函数的大致用法,案例如下:

 list1 = 3.1415926
 print(type(str(list1)))
 print(type(repr(list1)))
 print(repr(list1))
 print(str(list1))

pycharm中运行结果:

 <class 'str'>
 <class 'str'>
 3.1415926
 3.1415926

两者的结果是没有区别的,但是当我们将字符串传给str()函数时打印时不带引号,repr()函数打印时是带引号的

 print('3.1415926'.__repr__())
 print('3.1415926'.__str__())

pycharm中运行结果:

 '3.1415926'
 3.1415926

从以上结果来看出,当erpr()作用时,会在字符串外多加一层引号,而在eval()执行时会将字符串的引号去掉,因为这个字符串会被当作变量来处理。如果没有这层引号,那么就无法执行eval(),会生成 错误的文件

四.input()函数raw_input()函数

python()提供的读入函数input()函数,在执行函数时会读入一行文本

input()函数和raw input()函数都可以接受字符串,区别在于:

  • python 3.X 中没有了raw_input()函数

  • raw input()函数 直接读取控制台的输入,接受所有类型的输入方式

     

  • input()函数默认接受的是string类型,如果只是输入字符串的话必须将字符串用引号标记

  • input() 在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float )

  • input() 可接受合法的 python 表达式

     

     

    例如:

 str =input("python读入")
 print(str)

结果:

 python读入

五.读和写文件

5.1 打开文件

读和写文件open()的基本用法如下:

open(filename, mode=’r',encoding='utf-8',errors=None)

  • filename 是字符串的值

  • mode 是打开的模式

  • encoding参数:用来指定打开文件时的文件编码,默认是UTF-8编码,主要用于打开文本文件

  • errors参数:用来指定在文本文件发生编码错误时如何处理。推荐errors的取值为‘ignore’,表示碰到编码错误时忽略错误,继续执行

     

    \textcolor{blue}{**打开模式mode的参数表**}

字符串 说明

rt或r 以只读模式打开文本文件 wt或w 以只写模式打开文本文件 xt或x 以独占创建模式打开文本文件 at或a 以追加模式打开文本文件 rb 二进制文件模式,类似于rt wb 二进制文件模式,类似于wt xb 二进制文件模式,类似于xt ab 二进制文件模式,类似于at r+ 以读写模式打开文本文件,如果文件不存在,则抛出异常 w+ 以读写模式打开文本文件,如果文件不存在,则创建文件 a+ 以读追加模式打开文本文件,如果文件不存在,则创建文件 rb+ 二进制文件模式,类似于r+ wb+ 二进制文件模式,类似于w+ ab+ 二进制文件模式,类似于a+ ————————————————

5.2 关闭文件

使用close()方法关闭文件

with as提供了代码块,在as后面声明一个资源变量,在with as代码块结束之后自动释放资源

 f_name = 'abc.txt'
 with open(f_name) as f:
     content = f.read()

 

5.3 读写文本文件

  1. read(size=-1):从文件中读取字符串,size表示读取的字符数,size=-1表示读取字符数无限制

  2. readline(size=-1):在读取到换行符或者文件尾时返回单行字符串。如已到文件尾,则返回一个空字符串

  3. readlines():读取文件数据到一个字符串列表中,每一行数据都是列表的一个元素

  4. write(s):将字符串s写入文件中,并返回写入的字符串数

  5. writelines(lines):向文件中写入一个字符串列表。不添加行分隔符,因此通常为每一行末尾都提供行分隔符

  6. flush():刷新写缓冲区,在文件没有关闭的情况下将数据写入文件中

5.4 读写二进制文件

  1. read(size=-1):从文件中读取字节,size表示读取的字节数,size=-1表示读取全部字节

  2. readline(size=-1):从文件中读取并返回一行,size是限制读取的字节数

  3. readlines():读取文件数据到一个字节列表中,每一行数据都是列表的一个元素

  4. write(b):写入b字节,并返回写入的字节数

  5. writelines(lines):向文件中写入一个字节列表,不添加行分隔符,因此通常为每一行末尾都提供行分隔符

  6. flush():刷新写缓冲区,在文件没有关闭的情况下将数据写入文件中

\textcolor{red}{当比较字符串和数字的时候,数字永远小于字符串}