Python输出的方法与格式详细总结(print与stdout)

2023-10-10 23:59

本文主要是介绍Python输出的方法与格式详细总结(print与stdout),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

相信许多刷编程题的小伙伴在刷题过程中已经感受到编程题的输出要求是多种多样的,有些输出格式看着就已经头皮发麻了,比如下面这个...

 面对这些较为复杂的输出情况,我们就需要掌握各种各样的输出方法与输出格式了,下面就对常用的输出方式与方法做一些总结。

1.print()普通用法与格式化输出

(1).直接输出(适用于无特殊输出要求的情况)

print(1)
#输出:1
print('very good!')
#输出:very good!
print('A')
#输出:A
print([1,2,3,4,5])
#输出:[1,2,3,4,5]
print({1:'a',2:'b',3:'c'})
#输出:{1:'a',2:'b',3:'c'}

(2).加星号拆包(更加适用于一行打印出数组元素)

x = [1,2,3,4,5]
print(*x)
#输出:1 2 3 4 5
y = {1:'a',2:'b',3:'c',4:'d'}
print(*y)
#输出:1 2 3 4

(3).加入%进行格式化控制(适用于保留几位小数、进制、对齐、科学计数法等较为复杂的情况)

首先我们先了解一下格式符号

以下为标准格式化格式符

格式符表示
%s字符串
%d十进制整数
%f浮点型
%c字符型
%u无符号十进制整数
%o八进制
%x十六进制
%e科学计数法

还有一些常用的格式符

格式符表示
%.2f保留两位小数
%04d输出前面4个字符空间补零
%4d右对齐前面留出4个字符空间
%-4d左对齐并占用4个字符空间

介绍一些常见输出场景

x = 123
print('%d'%x)
#输出:123
print('这有一个整数%d'%666)
#输出:这有一个整数666
print('%.2f'%3.141592)
#输出:3.14
print('%e'%14332231433223)
#输出:1.433223e+13
print('%04d'%99)
#输出:000099
print('%9s'%'hahaha')
#输出:   hahaha(注意左侧有多个空格)

2.print()+format()格式化输出(格式化输出推荐用法)

format进制格式化字符

格式符表示
{:s}字符串
{:d}十进制整数
{:f}浮点型
{:c}字符型
{:u}无符号十进制整数
{:o}八进制
{:x}十六进制
{:e}科学计数法

以下是format常用格式化字符

格式符表示
{:.2f}保留两位小数
{:+.2f}保留两位小数并携带正负号
{:0>2d}左侧补零,整体占两个字符
{:0<2d}右侧补零,整体占两个字符
{:*<4d}右侧补星号,整体占4个字符
{:5d}右对齐,整体占5个字符
{:<5d}左对齐,整体占5个字符
{:^5d}居中对齐,整体占5个字符
{:.2e}科学计数法并保留两位小数
{:,}以逗号分割的数字

介绍一下format常见输出场景:

x = 123
print('{}'.format(x))
#输出:123
print('hello!{}'.format('World'))
#输出:hello!World
print('{}'.format(['1','2','3','4','5']))
#输出:['1','2','3','4','5']
print('{}->{}->{}'.format(1,2,3))
#输出:1->2->3
print('{2}->{0}->{1}'.format(1,2,3))
#输出:3->1->2
print('The Number is {}'.format(666))
#输出:The Number is 666
print('{:.2f}'.format(3.245))
#输出:3.25
print('{:0>4d}'.format(12))
#输出:0012
print('{:>8s}'.format('abc'))
#输出:     abc(注意abc前面有空格)
print('{:<8d}'.format(999))
#输出:999     (注意999后面有空格)
print('{:.2e}'.format(1234554321))
#输出:1.23e+09

另外,print()+format()的搭配还可以这样写

x = 123
print(f'The Number is {x:d}')
#输出:The Number is 123
y = 3.1415
print(f'PI is {y:.2f} ...')
#输出:3.14
z = [1,3,5,7,9]
print(f'{z[0]:d} {z}')
#输出:1 [1, 3, 5, 7, 9]

3.print()其他常用搭配以及复杂型输出示例(数组、矩阵、不规则输出等)

(1).打印一行数组

x = [1,2,3,4,5,6,7]
print(' '.join(map(str,x)))
#输出:1 2 3 4 5 6 7

(2).打印一行以任意字符分割的数组

x = [1,2,3,4,5,6,7]
print('*'.join(map(str,x)))
#输出:1*2*3*4*5*6*7

(3).打印多行数组/二维数组-两种方法

x = [[1,2,3],[4,5,6],[7,8,9]]
for i in x:print(*i)
#输出:
1 2 3
4 5 6
7 8 9

或者

x = [[1,2,3],[4,5,6],[7,8,9]]
for i in x:print(' '.join(map(str,i)))
#输出:
1 2 3
4 5 6
7 8 9

(4).打印一行且不换行

print("no enter",end="")

(5).将两个不同行列的二维数组并排打印

'''
二维数组A:  二维数组B:
1 2 3 4    1 3 5 
5 6 7 8    2 4 6
6 7 8 9    7 8 93 2 1
'''
#定义两个二维数组
a = [[1,2,3,4],[5,6,7,8],[6,7,8,9]]
b = [[1,3,5],[2,4,6],[7,8,9],[3,2,1]]
#定义组合输出所需列表
out_list = []
sum_len = len(a[0])+len(b[0])+1
while a!=[] or b!=[]:if a!=[]:        #取数组a一行out_list+=a.pop(0)+[' ']if b!=[]:        #取数组b一行out_list+=b.pop(0)if len(out_list)<sum_len and a == []:  #取剩下的数组一行out_list = list(' '*(sum_len-len(out_list)))+out_listprint(*out_list)    #输出两个二维数组一行的合并内容out_list = []'''
输出:
1 2 3 4    1 3 5 
5 6 7 8    2 4 6
6 7 8 9    7 8 93 2 1
'''

像上面这种情况需要较多数据处理的过程的输出还有很多,比如打印乘法口诀表、打印沙漏等等

面对这些情况,解决问题的关键就在于输出数据的预处理了,而不是输出方法与方式的选择

比如在文章开头提到的这个题,题目来自PAT乙级1109

题目链接: PAT乙级1109

 Python题解:

import sys
alpha_dict = {}
out_list = []
start = 'abcdefghijklmnopqrstuvwxyz'
str_1 = ''
if_has_pt = False
def printLine(in_str,dict_in,num):  '''打印整行字母矩阵,矩阵的1行等于输出7行'''out_line = []for i in range(0,7):for j in in_str:try:out_line.append(dict_in[j][i])except:continueif num==1 and i==6:print(" ".join(out_line),end="")else:print(" ".join(out_line))out_line = []
for x in range(0,26):      '''这个循环负责读入题目给出的输入'''alpha_dict[start[x]] = [sys.stdin.readline().replace('\n','') for x in range(7)]
in_2 = sys.stdin.readline().replace('\n','')
for y in range(0,len(in_2)):   '''这个循环用于根据输出条件判断是否要输出'''if in_2[y].isupper():str_1 = str_1 + in_2[y]if_has_pt = Falseif ((in_2[y].isupper()==False and if_has_pt==False and str_1!='') or (y+1==len(in_2) and str_1!='')):str_1 = str_1.lower()out_list.append(str_1) '''满足条件的输出行存入列表中'''str_1 = ''if_has_pt = True
for z in range(0,len(out_list)): '''迭代打印整行字母矩阵块'''if z+1==len(out_list):printLine(out_list[z],alpha_dict,1)else:printLine(out_list[z],alpha_dict,0)print()

4.stdout.write()标准化输出

这个输出方法是python的标准化输出,需要我们导入sys模块才能使用

import sys
x = '123123'
sys.stdout.write(x)
#输出:123123

stdout.write与print的不同是,print打印时默认换行,而stdout.write不换行

还有一点就是stdout.write只支持字符串类型的输出,所以感觉还是print好用

这篇关于Python输出的方法与格式详细总结(print与stdout)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/184041

相关文章

使用Python绘制蛇年春节祝福艺术图

《使用Python绘制蛇年春节祝福艺术图》:本文主要介绍如何使用Python的Matplotlib库绘制一幅富有创意的“蛇年有福”艺术图,这幅图结合了数字,蛇形,花朵等装饰,需要的可以参考下... 目录1. 绘图的基本概念2. 准备工作3. 实现代码解析3.1 设置绘图画布3.2 绘制数字“2025”3.3

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

最新版IDEA配置 Tomcat的详细过程

《最新版IDEA配置Tomcat的详细过程》本文介绍如何在IDEA中配置Tomcat服务器,并创建Web项目,首先检查Tomcat是否安装完成,然后在IDEA中创建Web项目并添加Web结构,接着,... 目录配置tomcat第一步,先给项目添加Web结构查看端口号配置tomcat    先检查自己的to

python 字典d[k]中key不存在的解决方案

《python字典d[k]中key不存在的解决方案》本文主要介绍了在Python中处理字典键不存在时获取默认值的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录defaultdict:处理找不到的键的一个选择特殊方法__missing__有时候为了方便起见,

Apache Tomcat服务器版本号隐藏的几种方法

《ApacheTomcat服务器版本号隐藏的几种方法》本文主要介绍了ApacheTomcat服务器版本号隐藏的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1. 隐藏HTTP响应头中的Server信息编辑 server.XML 文件2. 修China编程改错误

使用Nginx来共享文件的详细教程

《使用Nginx来共享文件的详细教程》有时我们想共享电脑上的某些文件,一个比较方便的做法是,开一个HTTP服务,指向文件所在的目录,这次我们用nginx来实现这个需求,本文将通过代码示例一步步教你使用... 在本教程中,我们将向您展示如何使用开源 Web 服务器 Nginx 设置文件共享服务器步骤 0 —

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者