python中的输入输出总结

一、python的输出

1.python的直接输出----print()

在python中我们通常使用print( )方法进行输出。

1.1 语 法

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) 

1.2 参 数
objects:复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
sep:用来间隔多个对象,默认值是一个空格。
end :用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
file :要写入的文件对象。
flush : 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。

1.3 返 回 值 —> None[ 无 ]。

简单使用

使用 print( ) 方法来进行输出,它会将我们需要输出的数据打印输出到屏幕上。在python中,不论是任何一种数据类型,都可以通过print()方法来输出,包括常用的数值型、字符型、布尔类型、列表、元组、字典等。

实例

list_1 = [1,2,3,4,5]
tuple_1 = {6,7,8,9,10}
doc_1 = { "test" : 100}
print(5)
print(5.1)
print(5e3)
print(list_1)
print(tuple_1)
print(doc_1)

结果

5
5.1
5000.0
[1, 2, 3, 4, 5]
{6, 7, 8, 9, 10}
{'test': 100}

print()方法基础使用中,只需要将需要输出的数据作为它的参数,然后直接使用 print()方法。
但是现实中,我们常常需要以一定的格式来输出我们所需要的数据,这个时候,我们便可以使用格式化输出来满足我们的需求。

2.python的格式化输出

常用的格式化方法主要有 % 用法和 format 用法。相对基本格式化输出采用‘%’的方法,format()功能更强大,该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号‘{}’作为特殊字符代替‘%’

2.1 语 法

% [ flags] [width] . [precision] typecode
format()  基本语法是通过 {} 和 : 来代替以前的 %  可以接受不限个参数,位置可以不按顺序。

2.2 参 数
flags:可以有 + , - , ’ ’ 或 0。其中:
(1)+ 表示右对齐
(2)- 表示左对齐。
(3)’ ’ 为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。
(4)0 表示使用0填充。
width:表示显示宽度
precision:表示小数点后精度
typecode :表示格式化符号

除了直接格式化输出外,我们还可以补全参数,对格式进行进一步的控制,比如控制对其方式,保留的位数等…

使用 % 格式化实例

num1,num2=20,50
# 关于整数的格式化输出
print("八进制输出:0o%o,0o%o"%(num1,num2))
print("十六进制输出:0x%x,0x%x"%(num1,num2))
print("十进制输出:%d,%d"%(num1,num2))
print("100的二进制输出:",bin(num1),"50的二进制输出为:",bin(num2))

num01=123456.891011
# 浮点数输出
# %f 保留小数点后面六位有效数字
print("标准的模式:%f"%num01) 
# %.numf 保留num位小数
print("保留两位有效数字:%.2f"%num01)
# %e 保留小数点后面六位有效数字,指数形式输出
print("e的标准模式:%e"%num01) 
# %.nume 保留num位小数位,使用科学计数法
print("e的留两位有效数字:%.2e"%num01) 
# %g 保留六位有效数字的前提下,使用小数方式,否则用科学计数法
# 如果是大于6位保留不了就用科学计数法表示
print("g的标准模式:%g"%num01) 
# %numg保留num位有效数字,使用小数或科学计数法
print("g的留两位有效数字:%.2g"%num01)

str_1="www.iLync.cn"
# 字符串的格式化输出
# %s 标准输出
print("s标准输出:%s"%str_1)
# %10s 右对齐,占位符10位
print("s的固定空间输出:%20s"%str_1)#右对齐
# %10s 左对齐,占位符10位
print("s的固定空间输出:%-20s"%str_1)#左对齐
# %.2s 截取3位字符串
print("s截取:%.3s"%str_1)
# %10.3s 10位占位符,截取3位字符串
print("s截取:%10.3s"%str_1)#右对齐
print("s截取:%-10.3s"%str_1)#左对齐

结果

八进制输出:0o24,0o62
十六进制输出:0x14,0x32
十进制输出:20,50
100的二进制输出: 0b10100 50的二进制输出为: 0b110010
标准的模式:123456.891011
保留两位有效数字:123456.89
e的标准模式:1.234569e+05
e的留两位有效数字:1.23e+05
g的标准模式:123457
g的留两位有效数字:1.2e+05
s标准输出:www.iLync.cn
s的固定空间输出:        www.iLync.cn
s的固定空间输出:www.iLync.cn        
s截取:www
s截取:       www
s截取:www 

以下是常用的格式化符号及其含义:

符 号说 明
%c格式化字符及其ASCII码
%s格式化字符串
%d格式化整数
%u格式化无符号整型
%o格式化无符号八进制数
%x格式化无符号十六进制数
%X格式化无符号十六进制数(大写)
%f格式化浮点数字,可指定小数点后的精度
%e用科学计数法格式化浮点数
%E作用同%e,用科学计数法格式化浮点数
%g根据值的大小决定使用%f活%e
%G作用同%g,根据值的大小决定使用%f活%e
%p用十六进制数格式化变量的地址

format用法
相对基本格式化输出采用‘%’的方法,format()功能更强大,该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号‘{}’作为特殊字符代替‘%’
一:位置匹配
  (1)不带编号,即“{}”
  (2)带数字编号,可调换顺序,即“{1}”、“{2}”
  (3)带关键字,即“{a}”、“{tom}”
  (4)通过下标或key匹配参数
使用 format()控制实例

coord = (1, 2)
print('{} {}'.format('hello','world'))  # 不带字段
print('{0} {1}'.format('hello','world'))  # 带数字编号
print('{0} {1} {0}'.format('hello','world'))  # 打乱顺序
print('{a} {b} {a}'.format(b='hello',a='world'))  # 带关键字
# 注意: 0[下标]与0[下标] 中的第一个0必须有
print('X: {0[0]};  Y: {0[1]}'.format(coord)) #带下标

结果

hello world
hello world
hello world hello
world hello world
X: 1;  Y: 2

二:格式转换 —> 与格式控制符相结合使用,进一步控制数据的格式

import datetime
#'b' - 二进制。将数字转化为二进制进行输出。
print('{0:b}'.format(10))
# 'c' - 字符。在打印之前将整数转换成对应的Unicode字符串。
print('{:c}'.format(90))
# 'd' - 十进制整数。将数字转化为十进制进行输出。
print('{:d}'.format(12))
# # 'o' - 八进制。将数字转化为八进制进行输出。
print('{:o}'.format(12))
# 'x' - 十六进制。将数字转化为十六进制进行输出,9以上的位数用小写字母。
print('{:x}'.format(12))
# 'e' - 幂符号。用科学计数法打印数字。用'e'表示幂。
print('{:e}'.format(12))
# 'g' - 一般格式。将数值以fixed-point格式输出。当数值特别大的时候,用幂形式打印。
print('{:g}'.format(12.34))
# 'f' - 十进制浮点数。将数字转化为十进制浮点数进行输出。
# 正负符号显示 %+f, %-f, 和 % f的用法
print('{:+f}'.format(+12.3456))#结合使用基础上,此处为 正
print('{:-f}'.format(-12.3456))#结合使用基础上,此处为 负
print('{:+f}; {:+f}'.format(1.23, -1.23)) # 总是显示符号
print('{: f}; {: f}'.format(1.23, -1.23)) # 不显示符号,但若是+数,则在前面留空格
print('{:-f}; {:-f}'.format(1.23, -1.23))  # -数时显示-,与'{:f}; {:f}'一致
print('{:+f}; {:-f}'.format(-1.23, +1.23))
print('{:f}'.format(12.3456))
print('{:.3f}'.format(12.3456)) #结合使用基础上,再控制输出的位数
# 'n' - 数字。
# 当值为整数时和'd'相同,值为浮点数时和'g'相同。不同的是它会根据区域设置插入数字分隔符。
print('{:n}'.format(12))
print('{:n}'.format(12.3456789))
# '%' - 百分数。输出数值的百分数。
print('{:.2%}'.format(0.12345))##结合使用基础上,再控制位数为2位小数
#格式化时间
d = datetime.datetime(2010, 7, 4, 12, 15, 58)
print('{:%Y-%m-%d %H:%M:%S}'.format(d))
# 逗号","分隔金钱,没以前进位
print('{:,}'.format(1234567890))

结果

1010
Z
12
14
c
1.200000e+01
12.34
+12.345600
-12.345600
+1.230000; -1.230000
 1.230000; -1.230000
1.230000; -1.230000
-1.230000; 1.230000
12.345600
12.346
12
12.3457
12.35%
2010-07-04 12:15:58
1,234,567,890

format( )方法除了可以使用上述的格式化符号外,还有一些自己独有的控制符号,具体如下:

符 号说 明
<(默认)左对齐
>右对齐
^中间对齐
=(只用于数字)在小数点后进行补齐
,逗号 – 分隔金钱,没以前进位
:m . n 符号取位数 如 { : 4 s }、{ : . 2 f } 、{ : 4 . 2 f }等
%’输出数值的百分数
+ 和 -正号和负号,用于输出正数或者负数

二、python的输入

1.python的输入----input( )

Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型。
但是如果我们需要的是其他类型的数据时,我们便需要通过强制转换来完成。

1.1 语 法

input( [ prompt ] )

Python2.x 中 input() 相等于 eval(raw_input(prompt)) ,用来获取控制台的输入。
raw_input() 将所有输入作为字符串看待,返回字符串类型。而 input() 在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float )。

注意:input() 和 raw_input() 这两个函数均能接收 字符串 ,但 raw_input() 直接读取控制台的输入(任何类型的输入它都可以接收)。而对于 input() ,它希望能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError 。
除非对 input() 有特别需要,否则一般情况下我们都是推荐使用 raw_input() 来与用户交互。
1.2 参 数
prompt:提示信息。

1.3 返 回 值 —> 默认为 str ,可以通过强制转换,更改返回值类型

实例

text1 = input()#无参数,默认返回字符串
#有参数,参数作为提示打印出来,text2接收输入的值,参数不造成影响
text2 = input("我是有参数的input()请输入你想输入的内容,我是以str类型的形式返回的:")
num1 = int(input("请输入你想输入的内容,我是以int类型的形式返回的:"))
num2 = float(input("请输入你想输入的内容,我是以float类型的形式返回的:"))
print("{0}---->数据类型:{1}".format(text1,type(text1)))
print("{0}---->数据类型:{1}".format(text2,type(text2)))
print("{0}---->数据类型:{1}".format(num1,type(num1)))
print("{0}---->数据类型:{1}".format(num2,type(num2)))

结果

text1
我是有参数的input()请输入你想输入的内容,我是以str类型的形式返回的:text2
请输入你想输入的内容,我是以int类型的形式返回的:12
请输入你想输入的内容,我是以float类型的形式返回的:13
text1---->数据类型:<class 'str'>
text2---->数据类型:<class 'str'>
12---->数据类型:<class 'int'>
13.0---->数据类型:<class 'float'>

**

附录:

**
本人第一次写此类文章,仅仅只作为个人笔记的形式存在,其他读者如有需要,可以借鉴参考。
作为一个新手,难免有错误,笔误等问题存在,若您发现了,请勿见怪,欢迎指正。
如需交流,欢迎您的留言。感谢!

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页