Python print 函数用法总结

news2024/11/17 13:36:17

Python3 print 函数用法总结

一、print()函数概述

print() 方法用于打印输出,是python中最常见的一个函数。

print([*objects][,seq=' '][,end='\n'][,file=sys.stdout])

参数的具体含义如下:

objects --表示输出的对象。输出多个对象时,需要用 , (逗号)分隔。

sep -- 用来间隔多个对象。

end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符。

file -- 要写入的文件对象。

print(1)  #数值类型可以直接输出

运行结果如下

1

print("Hello World")  #字符串类型可以直接输出

运行结果如下:

Hello World

a=1

b="Hello World"

print(a, b)  #可以一次输出多个对象,对象之间用逗号分隔

运行结果如下:

1 Hello World

#如果直接输出字符串,而不是用对象表示的话,可以不使用逗号

print("Duan""Yixuan")

print("Duan","Yixuan")

运行结果如下:

DuanYixuan

Duan Yixuan

不添加逗号分隔符,字符串之间没有间隔

print("www", "snh48", "com", sep=".")  # 设置间隔符

运行结果如下:

www.snh48.com

二、变量的输出

无论什么类型的数据,包括但不局限于:数值型,布尔型,列表变量,字典变量...都可以直接输出。

#例如:

num = 19

print(num)    #19  输出数值型变量

str = 'Duan Yixuan'

print(str)  #Duan Yixuan  输出字符串变量

list = [1,2,'a']

print(list)   #[1, 2, 'a']  输出列表变量

tuple = (1,2,'a')

print(tuple)    #(1, 2, 'a') 输出元组变量

dict = {'a':1, 'b':2}

print(dict)   # {'a': 1, 'b': 2} 输出字典变量

三、数据的格式化输出

在C语言中,我们可以使用printf("%-.4f",a)之类的形式,实现数据的的格式化输出。

在python中,我们同样可以实现数据的格式化输出。我们可以先看一个简单的例子:

s='Duan Yixuan'

x=len(s)

print('The length of %s is %d' %(s,x))

'The length of %s is %d' 这部分叫做:格式控制符

(s,x) 这部分叫做:转换说明符

% 字符,表示标记转换说明符的开始

输出如下:

The length of Duan Yixuan is 11

和C语言的区别在于,Python中格式控制符和转换说明符用%分隔,C语言中用逗号。

3.1格式字符归纳

格式字符    说明         

%s    字符串采用str()的显示

%r    字符串(repr())的显示

%c    单个字符

%b   二进制整数

%d   十进制整数

%i    十进制整数

%o   八进制整数

%x   十六进制整数

%e   指数(基底写e)

%E    指数(基底写E)

%f,%F   浮点数

 %g    指数(e)或浮点数(根据显示 长度)

%G    指数(E)或浮点数(根据显示长度)

 %%    字符%

3.2 最小字段宽度和精度

最小字段宽度:转换后的字符串至少应该具有该值指定的宽度。如果是*(星号),则宽度会从值元组中读出。

点(.)后跟精度值:如果需要输出实数,精度值表示出现在小数点后的位数。如果需要输出字符串,那么该数字就表示最大字段宽度。如果是*,那么精度将从元组中读出。

注:字段宽度中,小数点也占一位。

PI = 3.141592653

print('%10.3f'%PI)  #字段宽10,精度3

#     3.142

#精度为3,所以只显示142,指定宽度为10,所以在左边需要补充5个空格,以达到10位的宽度

PI=3.1415926

print("PI=%.*f"%(3,PI))

#用*从后面的元组中读取字段宽度或精度,可以读取出来精度是3位

#PI=3.142

#没有指定宽度,所以不需要缩进

print("PI=%*.3f"%(10,PI))   #精度为3,总长为10.

# PI=     3.142

#* 所处的位置不同,读取的内容也不同

name = LiG

print ('That is %10.2s' %(name)) # 整个输出为10列,变量从开始起截取的长度为2,默认右对齐,左边用8(10-2)个空格填充。

#That is         Li

3.3 转换标志

转换标志:-表示左对齐;+表示在数值前要加上正负号;" "(空白字符)表示正数之前保留空格();0表示转换值若位数不够则用0填充。

具体的我们可以看一下例子:

PI=3.1415926

print('%-10.3f' %PI)  #左对齐,还是10个字符,但空格显示在右边。

#3.142

PI=3.1415926

print('%+f' % PI)  #显示正负号  #+3.141593

# 类型f的默认精度为6位小数。

PI=3.1415926

print('%010.3f'%PI) #字段宽度为10,精度为3,不足处用0填充空白

#000003.142   0表示转换值若位数不够则用0填充

3.4 format函数(适用于Python3)

print (format_string.format(arguments_to_convert))

e.g. print('There are {0:d} punctuation marks.'.format(count) )

                  - {参数的序号:格式说明符}

参数的序号从0开始编号,可以不按顺序;若不声明(不写),则按照format函数第012...个参数的默认顺序。

格式说明符又叫格式限定符。

{0<5d} - 0个参数,左对齐,以十进制整数的方式输出,输出共占5列(填不满默认右边填充空格)。。

{1: 5.2f} - 1个参数,默认右对齐,以浮点数的方式输出,保留2位小数位数,输出共占5列(填不满默认左边填充空格)。

四、换行与防止换行

在python中,输出函数总是默认换行,比如说:

for x in range(0,5):

    print(x)

0

1

2

3

4

而显然,这种输出太占“空间”,我们可以进行如下改造:

参考文本第一部分对end参数的描述:end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符。

for x in range(0, 5):

    print(x, end=' ')

#0 1 2 3 4

for x in range(0, 5):

    print(x, end=',')

#0,1,2,3,4,

但如果,我们同时运行上面两段代码,结果会如下所示,可知:我们需要在两次输出间,实现换行。

for x in range(0, 5):

    print(x, end=' ')

for x in range(0, 5):

    print(x, end=',')

#0 1 2 3 4 0,1,2,3,4,

我们比较以下几种方式

方式一:

for x in range(0, 5):

    print(x, end=' ')

print('\n') 

for x in range(0, 5):

    print(x, end=',')

'''

0 1 2 3 4

0,1,2,3,4,

'''

之所以出现上面这种情况,是因为print()本身就是默认换行的,再加上换行符,相当于换行两次。

方式二:

for x in range(0, 5):

    print(x, end=' ')

print()  #本身自带换行,完美输出

for x in range(0, 5):

    print(x, end=',')

'''

0 1 2 3 4

0,1,2,3,4,

'''

五、重定向输出流

 sys.stdout = open('log.txt','a')
print(x,y,z)

举例

import sys

temp = sys.stdout

sys.stdout = open('log.txt','a')

print('spam')

print(1,2,3)

sys.stdout.close()

sys.stdout = temp

print('back here')

print(open('log.txt').read())

输出:

back here

spam

1 2 3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1129825.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL---表的增查改删(CRUD基础)

文章目录 什么是CRUD&#xff1f;新增&#xff08;Create&#xff09;单行数据 全列插入多行数据 指定列插入 查询&#xff08;Retrieve&#xff09;全列查询指定列查询查询字段为表达式起别名查询去重查询排序查询条件查询分页查询 修改&#xff08;Update&#xff09;删除&…

新手如何备考学习PMP?

一、PMP学习7步走攻略 1、熟悉考试大纲&#xff1a; PMP考试大纲是备考的基础&#xff0c;考生需要详细熟悉考试大纲&#xff0c;了解各个知识领域的重点和难点。 2、制定学习计划&#xff1a; 根据考试大纲和个人情况&#xff0c;制定学习计划&#xff0c;合理分配学习时间…

stm32移植u8g2库内存不足解决办法

1.现象 跟着视频教程移植完u8g2库到stm32f103c8t6后&#xff0c;进行编译&#xff0c;报了100多个空间不足的问题&#xff0c;如下图。 ..\Output\Output.axf: Error: L6406E: No space in execution regions with .ANY selector matching u8g2_fonts.o(.constdata). ..\Outp…

蓝天远控2023(VIP会员版)

蓝天远控2023&#xff08;VIP会员版&#xff09;下载地址&#xff1a;https://user.qzone.qq.com/512526231/main

【逆向】导入表注入

练手的exe链接 链接&#xff1a;https://pan.baidu.com/s/1_87QNHaZYlfY_5uwIRePUQ?pwd6gds 提取码&#xff1a;6gds 原理&#xff1a; 在动态链接库一章提到DllMain&#xff0c;这里再回顾一次 当dll被加载进4GB空间时&#xff0c;会调用一次DllMain&#xff08;入口方法&…

在家制作电子相册一定需要的一款工具

​随着科技的发展&#xff0c;越来越多的人开始喜欢在家制作电子相册&#xff0c;记录自己的生活点滴。那么&#xff0c;如何在家制作电子相册呢&#xff1f; 一款好的工具是必不可少的。可以使用这款工具&#xff0c;轻松上手----FLBOOK在线制作电子杂志平台 1.打开FLBOOK在线…

手撕Vue-实现事件相关指令

经过上一篇文章的学习&#xff0c;实现了界面驱动数据更新&#xff0c;接下来实现一下其它相关的指令&#xff0c;比如事件相关的指令&#xff0c;v-on 这个指令的使用频率还是很高的&#xff0c;所以我们先来实现这个指令。 v-on 的作用是什么&#xff0c;是不是可以给某一个元…

SpringCloud复习:(3)LoadBalancerInterceptor

使用Ribbon时&#xff0c;execute方法会由RibbonLoadBalancerClient类来实现 它会调用重载的execute方法 getLoadBalancer默认会返回ZoneAwareLoadBalancer&#xff08;基类是BaseLoadBalancer).此处调用的getServer方法就会根据负载均衡策略选择适当的服务器来为下一步的htt…

电脑缺失duilib.dll是什么情况,有什么办法可以解决duilib.dll缺失

在使用电脑时突然提示duilib.dll丢失&#xff0c;这是什么情况&#xff1f;有什么办法可以解决这个问题呢&#xff1f;今天就给大家分享几种解决duilib.dll丢失的办法&#xff0c;解决duilib.dll丢失的办法其实还是非常的简单的&#xff0c;来看看有什么办法可以解决duilib.dll…

使用Spring Boot限制在一分钟内某个IP只能访问10次

有些时候&#xff0c;为了防止我们上线的网站被攻击&#xff0c;或者被刷取流量&#xff0c;我们会对某一个ip进行限制处理&#xff0c;这篇文章&#xff0c;我们将通过Spring Boot编写一个小案例&#xff0c;来实现在一分钟内同一个IP只能访问10次&#xff0c;当然具体数值&am…

【Happy!1024】C++智能指针

&#x1f34e; 博客主页&#xff1a;&#x1f319;披星戴月的贾维斯 &#x1f34e; 欢迎关注&#xff1a;&#x1f44d;点赞&#x1f343;收藏&#x1f525;留言 &#x1f347;系列专栏&#xff1a;&#x1f319; C/C专栏 &#x1f319;请不要相信胜利就像山坡上的蒲公英一样唾…

【计算摄像学】博资考

TOC 本博客将覆盖的内容&#xff1a; 数字相机&#xff08;Digital Camera&#xff09; 小孔成像模型&#xff08;pinhole imaging model&#xff09; 如下图所示&#xff0c;物体反射的光线射向四面八方&#xff0c;直接使用传感器无法直接得到物体形貌。 小孔成像模型在传…

Spring中AOP详解

目录 一、AOP的概念 二、AOP的底层实现原理 2.1 JDK的动态代理 2.1.1 invocationhandler接口 2.1.2 代理对象和原始类实现相同的接口 interfaces 2.1.3 类加载器ClassLoador 2.1.4 编码实现 2.2 Cglib动态代理 2.2.1 Cglib动态代理编码实现 三、AOP如何通过原始对象的id获取到代…

PCL入门1之点云读取及可视化

0 引言 本文主要记录在Ubuntu系统的PCL点云库安装过程&#xff0c;以及PCL点云读取和可视化的c代码示例。 1 PCL安装 本文是安装了pcl1.8大版本&#xff0c;可先下载 下载pcl 1.8.1 版本&#xff08;点击Source code(zip&#xff09; 先安装pcl1.8.1所需的依赖库&#xff1…

【在英伟达nvidia的jetson-orin-nx和PC电脑ubuntu20.04上-装配ESP32开发调试环境-基础测试】

【在英伟达nvidia的jetson-orin-nx和PC电脑ubuntu20.04上-装配ESP32开发调试环境-基础测试】 1、概述2、实验环境3、 物品说明4、参考资料与自我总结5、实验过程1、创建目录2、克隆下载文件3、 拉取子目录安装和交叉编译工具链等其他工具4、添加环境变量6、将样例文件拷贝到桌面…

使用el-tree问题之清空勾数据不生效

一、问题场景描述 在做角色菜单按钮权限时&#xff0c;多数采用树结构勾选数据&#xff0c;这里使用了element中的el-tree。如下图&#xff1a; 1、我给角色1勾选了权限列表数据的前三行&#xff0c; 点击弹框的确定 2、紧接着点击角色2的权限按钮&#xff0c;给角色2分配修…

Lvs +keepalivede : 高可用集群

keepalived为Ivs应运而生的高可用服务。Ivs的调度器无法做高可用&#xff0c;于是keepalived这个软件。 实现的是调度器的高可用。 但是: keepalived不是专为Ivs集群服务的&#xff0c;也可以做其他代理服务器的高可用。 lvs的高可用集群&#xff1a;主调度器和备调度器&#…

[springboot源码分析]-Conditional

https://www.baeldung.com/spring-conditional-annotations Condition元数据 1 org.springframework.context.annotation.Conditional 1.1Conditional定义 Target({ElementType.TYPE, ElementType.METHOD}) Retention(RetentionPolicy.RUNTIME) Documented public interface…

区块链技术在现代商业中的应用:打造透明与信任的新经济体系

区块链技术以其独特的不可篡改和去中心化特点&#xff0c;在全球范围内受到了广泛的关注和讨论。从金融、供应链管理到版权保护和身份验证&#xff0c;区块链技术正在逐步改变着传统商业运营模式&#xff0c;为企业和消费者带来更加透明、安全和高效的商业环境。本文将深入探讨…

计算机网络第一章笔记

b站深入浅出计算机网络 微课视频 第一章 概述 因特网概述 区别&#xff1a; 若干节点和链路互连形成网络若干网络通过路由器互连形成互连网&#xff08;互联网&#xff09;因特网是当今世界上最大的互联网 发展的三个阶段&#xff1a; 1969年&#xff0c;第一个分组交换网…