Python·.·.print()函数格式化输出


print()函数格式为:

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

文章目录

  • Python·.·.print()函数格式化输出
  • 1 简易输出
    • 1.1 sep间隔
    • 1.2 end结尾
    • 1.3 写入file
  • 2 %方式
    • 2.1 打印浮点数
    • 2.2 打印浮点数(指定保留小数点位数)
    • 2.3 指定占位符宽度
    • 2.4 指定占位符宽度(左对齐、右对齐)
    • 2.5 指定占位符
    • 2.6 用词典来传递真实值
  • 3 format函数
    • 3.1 带数字编号-关键字
    • 3.2 内嵌式
    • 3.3 对齐控制
    • 3.4 进制转化
    • 3.5 千位分隔符
  • 4 eval()函数
  • 5 lambda匿名函数
    • 5.1 定义加法函数
    • 5.2 使用if判断奇偶性
    • 5.3 无参数表达式
    • 5.4 列表排序
  • 6 round()函数(不推荐使用)
  • 7 decimal模块


1 简易输出

1.1 sep间隔

sep为对象的间隔,默认为一个空格

print(1,2,3)
#1 2 3print(1,2,3,sep = 't')
#1t2t3

1.2 end结尾

end为结尾,默认为\n换行字符

print(1,2,3,end = '2')
#1 2 32

1.3 写入file

file = 后为要写入文件的文件名

fp = open('D:/hello.txt','a+')
#a+的意思是如果d盘没有这个文件就创建这个文件,如果有就在文件内容后追加
print(1,2,3,file = fp)   #fp是一个变量
fp.close()            #关闭这个文件

向helloxd.txt文本文件,写入“1 2 3”。



2 %方式

格式符为真实值预留位置,并控制显示的格式。格式符可以包含有一个类型码,用以控制显示的类型。

%s 字符串 (采用str()的显示)
%r 字符串 (采用repr()的显示)
%c 单个字符
%b 二进制整数
%d 十进制整数
%i 十进制整数
%o 八进制整数
%x 十六进制整数%% 字符”%”`%e 用科学计数法格式化浮点数
%E 作用同%e,用科学计数法格式化浮点数%g, %f和%e的简写%G %f 和 %E 的简写%p 用十六进制数格式化变量的地址%f ——保留小数点后面六位有效数字%.3f,保留3位小数位%e ——保留小数点后面六位有效数字,指数形式输出%.3e,保留3位小数位,使用科学计数法%g ——在保证六位有效数字的前提下,使用小数方式,否则使用科学计数法%.3g,保留3位有效数字,使用小数或科学计数法

可以用如下的方式,对格式进行进一步的控制:

%[(name)][flags][width].[precision]typecode
(name)为命名flags可以有+,-,’ ‘或0。
+表示右对齐。
-表示左对齐。
’ ‘为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。
0表示使用0填充。
width表示显示宽度, precision表示小数点后精度

示例:

a=14
b="LOVE"
print('今年是%d岁,喜欢%s学校'%(a,b))<
#今年是14岁,喜欢LOVE学校
nHex = 0xABC
print("nHex = %x,nDec = %d,nOct = %o" %(nHex,nHex,nHex))
#nHex = abc,nDec = 2748,nOct = 5274

顺序位置:{} 占位符

2.1 打印浮点数

print ("His height is %f m"%(1.83))
#His height is 1.830000 m

2.2 打印浮点数(指定保留小数点位数)

print ("His height is %.2f m"%(1.83))
#His height is 1.83 m

2.3 指定占位符宽度

print ("Name:%10s Age:%8d Height:%8.2f"%("Aviad",25,1.83))
#Name:     Aviad Age:      25 Height:    1.83

2.4 指定占位符宽度(左对齐、右对齐)

print ("Name:%-10s Age:%-8d Height:%-8.2f"%("Aviad",25,1.83))
#Name:Aviad      Age:25       Height:1.83print("%+10x" % 10)
print("%04d" % 5)
print("%6.3f" % 2.3)
#        +a
#0005
# 2.300

2.5 指定占位符

print ("Name:%-10s Age:%08d Height:%08.2f"%("Aviad",25,1.83))
#Name:Aviad      Age:00000025 Height:00001.83

2.6 用词典来传递真实值

print ("I'm %(c)s. I have %(l)d yuan." % {'c':'hungry','l':22})
#I'm hungry. I have 22 yuan.


3 format函数

该方法亦会进行四舍五入

print('中国诗人{},他的称号{}'.format('李白','诗仙'))
#中国诗人李白,他的称号诗仙
print('中国诗人{0},他的称号{1}'.format('李白','诗仙'))
#中国诗人李白,他的称号诗仙

(1)不带编号,即“{}”
(2)带数字编号,可调换顺序,即“{1}”、“{2}”
(3)带关键字,即“{a}”、“{tom}”

3.1 带数字编号-关键字

>>> print('{} {}'.format('hello','world'))
#hello world
>>> print('{0} {1}'.format('hello','world'))
#hello world
>>> print('{0} {1} {0}'.format('hello','world'))
#hello world hello
>>> print('{1} {1} {0}'.format('hello','world'))
#world world hello
>>> print('{a} {tom} {a}'.format(tom='hello',a='world'))
#world hello world

3.2 内嵌式

time='2020-11-14'
age = 20
print(f'时间是:{time},年龄是:{age}')
#时间是:2020-11-14,年龄是:20
f = 2.3456789print('{:.2f}'.format(f))
#2.35
print('{:.3f}'.format(f))
#2.346
print('{:.4f}'.format(f))
#2.3457

3.3 对齐控制

填充和对齐^<>分别表示居中、左对齐、右对齐,后面带宽度

print('{关键字1}{关键字2}'.format(关键字1="x",关键字2=56))
#通过关键字
#x56
print('{0}在{1}'.format('某某人','写代码'))
#通过位置
#某某人在写代码print('{:^30}'.format("zhangsan"))
#居中对齐
#            zhangsan
print('{:>30}'.format("zhangsan"))
#右对齐
#                       zhangsan
print('{:<30}'.format("zhangsan"))
#zhangsan
#左对齐print('{:.2f}'.format(3.14159))
#保留两位小数,两位后四舍五入
#3.14
print('{:.5f}'.format(3.14))
#保留5位小数,不足补0.
#3.14000

3.4 进制转化

b o d x 分别表示二、八、十、十六进制

print('{:b}'.format(20))
#10100
print('{:o}'.format(20))
#24
print('{:d}'.format(20))
#20
print('{:x}'.format(20))
#14

3.5 千位分隔符

print('{:,}'.format(100000000)) #插入千分号分隔符
#100,000,000
print('{:,}'.format(123456.123456)) #插入千分号分隔符
#123,456.123456


4 eval()函数

将字符串当成有效表达式来求值并返回计算结果。

eval函数的作用是去掉字符串最外面的一对引号,然后把去掉最外侧引号的字符串通过python语句的方式进行操作

变量是为了获取去掉引号后的值,以便进行操作,可同input()函数一起使用,获得用户输入的数值,使用方式为变量=eval(input())

x = 7
y = eval('3 * x')
print(y)
#21
m = 3
n = 5
r = eval('m + n')
print(r)
#8


5 lambda匿名函数

lambda 匿名函数一般形式

lambda arguments: expression

写成函数形式

def <lambda>(arguments):return expression

lambda函数与 def 函数的区别:

  • lambda可以立刻传递(无需变量) ,自动返回结果;
  • lambda在内部只能包含一行代码 ;
  • lambda是一个为编写简单的函数而设计的,而 def 用来处理更大的任务;
  • lambda可以定义一个匿名函数,而 def 定义的函数必须有一个名字。

对于单行函数,使用 lambda表达式可以省去定义函数的过程,让代码更加简洁;
对于不需要多次复用的函数,使用lambda表达式可以在用完之后立即释放,提高程序执行的性能。这里是引用

5.1 定义加法函数

#def函数写法
def add(a, b):
return a + b
print(add(10, 20))
#30
#lambda函数写法
add_lambda = lambda a, b: a + b
print(add_lambda(10, 20))
#30

5.2 使用if判断奇偶性

# ef函数写法
def get_odd_even(x):
if x % 2 == 0:return "偶数"
else:return "奇数"
print(get_odd_even(10))
#偶数#lambda函数写法
get_odd_even1 = lambda x: "偶数" if x % 2 == 0 else "奇数"
print(get_odd_even1(10))
#偶数
print(get_odd_even1(9))
#奇数

5.3 无参数表达式

#def函数写法
def test1():return "Python YYDS!!!"
print(test1())
#Python YYDS!!!#lambda函数写法
test2 = lambda: "Python YYDS!!!"
print(test2())
#Python YYDS!!!

5.4 列表排序

map方法混搭(常用):(遍历序列,对序列中每个元素进行操作,最终获得新的序列)

dict = {'c': 1, 'b': 2, 'a': 3}
print(sorted(dict))
#['a', 'b', 'c']
print(sorted(dict, reverse=True))
#['c', 'b', 'a']
list = [[4, 2, 9], [1, 5, 6], [7, 8, 3]]
# 以列表中列表的第一个数排序
print(sorted(list, key=lambda k: k[0]))
# [[1, 5, 6], [4, 2, 9], [7, 8, 3]]
# 以列表中列表的第二个数排序
print(sorted(list, key=lambda k: k[1]))
# [[4, 2, 9], [1, 5, 6], [7, 8, 3]]
# 以列表中列表的第一个数排序,且降序
print(sorted(list, key=lambda k: k[0], reverse=True))
# [[7, 8, 3], [4, 2, 9], [1, 5, 6]]
dic = {'a': [1, 2, 3],'b': [2, 1, 3],'c': [3, 1, 2],
}
print(sorted(dic, key=lambda k: dic[k][0]))
# ['a', 'b', 'c']
print(sorted(dic, key=lambda k: dic[k][1]))
# ['b', 'c', 'a']
print(sorted(dic, key=lambda k: dic[k][2]))
# ['c', 'b', 'a']
print(sorted(dic, key=lambda k: dic[k][0], reverse=True))
# ['c', 'b', 'a']


6 round()函数(不推荐使用)

round函数的进位规则为“四舍六入五凑偶”。

round函数带有一点点的小坑,不推荐使用。

print(round(2.25,1))
#2.2
print(round(2.35,1))
#2.4
print(round(2.125,2))
#2.12
print(round(2.875,2))
#2.88

但更换数据,再看一下结果

print(round(2.335,2))
#2.33
print(round(2.325,2))
#2.23print(round(6.785,2))
#6.79

此时,与结论不一致,原因在于机器中浮点数不一定被精确的表达,在转换成01后可能为无限位,机器会进行截断处理,所以会和浮点数的精确值有一定的出入,从而无法达到预期目标。

如果对浮点数没有精度要求时,可以使用round函数。
如果对浮点数的精度要求较高,推荐使用decimal模块。



7 decimal模块

python原生数据类型在进行浮点运算时,可能会由于精度问题导致计算结果不准确,尤其是浮点数和较大的数据进行运算,所以如果对数据精度有要求,比如说金额,就需要使用decimal库。

decimal的精度默认是28位,可自定义。通过getcontext获取线程上下文,然后修改prec属性即可。

from decimal import Decimal, getcontext
print(getcontext().prec)  # 计算精度,默认是28
#28
getcontext().prec = 100  # 可修改

可以通过实例化Decimal对象时传入value参数,把其他的数据类型转换成Decimal类型。

注意,尽量传入整数和字符串,如果传入float,会导致结果不准确(float本身就存在精度问题)

a = Decimal("5632569878.6514126")
print(a)
# Decimal(5632569878.6514126)
b = Decimal("7")
print(b)
# Decimal(7)
c = Decimal(63)
print(c)
# Decimal(63)
d = Decimal.from_float(6.325)
print(d)
#Decimal(6.32500000000000017763568394002504646778106689453125), 28位不准确

Decimal类型也仿照python基本数据类型,进行加减乘除等运算。

a = Decimal("8.651")  # Decimal(8.651)
b = Decimal("7")  # Decimal(7)
print(type(a + b), a + b)
#<class 'decimal.Decimal'> 15.651
print(a - b, )
#Decimal(1.651)
print(a * b, )
#Decimal(60.557)
print(a / b, )
#Decimal(1.235857142857142857142857143)
print(a // b, )
#Decimal(1)
print(a ** 2, )
#Decimal(74.839801)

Python·.·.print()函数格式化输出-超详解相关推荐

  1. python语言格式化输出_Python format()格式化输出方法详解

    原标题:Python format()格式化输出方法详解 format() 方法的语法格式如下: str.format(args) 此方法中,str 用于指定字符串的显示样式:args 用于指定要进行 ...

  2. C语言的底层逻辑剖析函数篇(其二),0基础搞定函数,初识函数递归,超详解

    这里写目录标题 C语言的底层逻辑剖析函数篇(其二),0基础搞定函数,初识函数递归,超详解 开篇语 函数的调用(嵌套调用和链式访问) 1.嵌套调用 2.函数的链式访问 函数的声明和定义 函数声明和定义分 ...

  3. 2、python的print函数格式化输出

    1.格式化输出浮点数(float) pi = 3.141592653 print('%10.3f' % pi)  #字段宽10,精度3 ,结果 print('%010.3f' % pi)  #用0填充 ...

  4. Python基础之格式化输出函数format()详解

    但是呢,有时候我们需要用到多个%的时候,用这个就很不方便了,比如数错%数量或者一 一对应的时候... 这里补充一个字典方式的格式化输出字符的****办法 print("double abc ...

  5. java 打印详解_Java格式化输出printf()详解

    概要: 本文通过实例详细介绍Java格式化输出 System.out.printf() 方法的使用.参数的含义.格式转换符使用时的注意事项. System.out.printf() 是 Java 5 ...

  6. Python return函数返回值(详解)

    文章目录 Python return函数返回值 Python return函数返回值 到目前为止,我们创建的函数都只是对传入的数据进行了处理,处理完了就结束.但实际上,在某些场景中,我们还需函数将处理 ...

  7. python格式化输出 xz_Python——详解__str__, __repr__和__format__

    今天是Python专题的第10篇文章,我们来聊聊Python当中的类. 打印实例 我们先从类和对象当中最简单的打印输出开始讲起,打印一个实例是一个非常不起眼的应用,但是在实际的编程当中却非常重要.原因 ...

  8. Python弄懂基础点---print函数格式化输出的几种方式

    print用法 一.% 方式格式化 二..format()格式 三. %f 用法 总结 一.% 方式格式化 示例:print('我今年%d岁,是%d年级') a=14 b="LOVE&quo ...

  9. Python豆瓣电影爬虫实战(超详解)-----我的机器人女友《阿丽塔》

    写在前面 爬虫基础详见我另一篇博客:https://blog.csdn.net/weixin_43329700/article/details/86768422 我的机器人女友----<阿丽塔& ...

最新文章

  1. 淘宝服务端高并发分布式架构演进之路
  2. 七年磨一剑:Apache HBase 1.0正式发布
  3. 轻松构建复杂数据集,永洪自服务数据查询功能详解
  4. 后台无刷新修改字段js
  5. 《软件项目管理(第二版)》第 2 章——项目准备和启动 重点部分总结
  6. IDEA创建Mybatis逆向工程创建项目超详细代码
  7. nginx 根据目录指定root_nginx安全优化与性能优化
  8. cfree安装与使用
  9. python模拟鼠标点击脚本_python模拟鼠标点击和键盘输入的操作
  10. matlab电压模块,matlab simpowersystems电路仿真模块.doc
  11. 分享一款好用的英语词频统计软件
  12. 将Keras模型导出为SavedModel模型
  13. 什么是计算机网络AP,AP与AC的区别是什么,拓扑网络知识。
  14. Hibernate检索策略
  15. android 系统后台进程数限制
  16. 摩托罗拉Android 7寸,3.7寸屏600MHz处理器 摩托罗拉MT710评测
  17. 机器学习的安全及隐私保护研究
  18. 原厂PW4203降压型1-3节锂电池充电芯片
  19. 命运冠位指定服务器选择,命运冠位指定从者选择技巧 fgo从者哪个最好
  20. 计算机专业简历的自我介绍,计算机专业简历自我介绍范文 .docx

热门文章

  1. IAR STM32 函数和变量的绝对地址定位
  2. 四步把流量提升淘宝店铺流量
  3. SEO学习(九)——快速网站诊断(Google网管工具)
  4. 输入n个数,再输入n个整数,并且由大到小排列
  5. 5分钟理解令人叫绝的认知偏误
  6. 洛谷4140 奇数国
  7. 什么OKR,分明是中华田园KPI
  8. scilab系列---概述
  9. 2016年(第15届)中国软件业务收入前百家企业名单(zz)
  10. Spark on Yarn环境搭建