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

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施:

webm怎么转换成mp4?这几种方法超多人在用!

webm怎么转换成mp4?WebM作为一种新兴的视频编码格式,近年来逐渐进入大众视野,其背后承载着诸多优势,但同时也伴随着不容忽视的局限性,首要挑战在于其兼容性边界,尽管WebM已广泛适应于众多网站与软件平台,但在特定应用环境或老旧设备上,其兼容难题依旧凸显,为用户体验带来不便,再者,WebM格式的非普适性也体现在编辑流程上,由于它并非行业内的通用标准,编辑过程中可能会遭遇格式不兼容的障碍,导致操

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的