python学习——格式化字符串

在Python中,格式化字符串是一种将变量插入到字符串中的方法,使得字符串的构建更为灵活和方便。以下是一些常见的格式化字符串的方法:
在这里插入图片描述

文章目录

      • 1. 使用百分号 `%` 格式化
      • 2. 使用 `str.format()` 方法
      • 3. 使用 f-string (格式化字符串字面量)
      • 格式说明符
      • 实操
      • 字符串format方法格式控制
      • 实操

1. 使用百分号 % 格式化

这是最传统的方法,类似于C语言中的printf。

name = "Alice"
age = 30
print("My name is %s and I am %d years old." % (name, age))

这里的 %s 是一个占位符,用于插入字符串,而 %d 用于插入整数。

2. 使用 str.format() 方法

Python 2.6+ 引入了 str.format() 方法,它提供了一种更灵活的格式化字符串的方式。

name = "Bob"
age = 25
print("My name is {} and I am {} years old.".format(name, age))

你还可以使用索引来指定参数的顺序:

print("My name is {1} and I am {0} years old.".format(age, name))

或者使用关键字参数:

print("My name is {name} and I am {age} years old.".format(name="Charlie", age=35))

3. 使用 f-string (格式化字符串字面量)

Python 3.6+ 引入了 f-string,它提供了一种更简洁、更直观的方式来格式化字符串。

name = "David"
age = 40
print(f"My name is {name} and I am {age} years old.")

在 f-string 中,你可以直接在 {} 中放入表达式,甚至是函数调用:

print(f"My name is {name.upper()} and next year I will be {age + 1}.")

格式说明符

在以上所有方法中,你都可以使用格式说明符来进一步定义格式化输出的方式:

  • <填充><对齐><宽度><,><.精度><类型>
    例如:
  • {:.2f}:保留两位小数的浮点数
  • {:^20}:居中对齐,宽度为20的字符串
  • {:0>10}:右对齐,宽度为10,左边用0填充的字符串
  • {:,}:数字使用逗号作为千位分隔符
number = 1234567.8910
print(f"The number is {number:.2f}")
print(f"The number is {number:20,.2f}")
print(f"The string is {name:^20}")
print(f"The string is {name:0>10}")

以上就是Python中格式化字符串的几种方法,每种方法都有其适用的场景,你可以根据需要选择最适合的一种。在最新的Python代码中,f-string由于其简洁和直观性,通常是首选的格式化方法。

实操

# (1)使用占位符进行格式化
name = '马冬梅'
age = 18
score = 98.5
print('姓名:%s,%d年龄:,成绩:%.1f' % (name, age, score))# (2)f-string
print(f'姓名:{name},年龄:{age},成绩:{score}')# (3)使用字符串的format方法
print('姓名:{0},年龄:{1},成绩:{2}'.format(name, age, score))
print('姓名:{2},年龄:{0},成绩:{1}'.format(age, score,name))

字符串format方法格式控制

在这里插入图片描述

实操

s = 'helloworld'
print('{0:*<20}'.format(s))  # 字符串的显示宽度为20,左对齐,空白不凡使用*号填充
print('{0:*>20}'.format(s))  # 字符串的显示宽度为20,右对齐,空白不凡使用*号填充
print('{0:*^20}'.format(s))  # 字符串的显示宽度为20,居中对齐,空白不凡使用*号填充# 法2的居中对齐
print(s.center(20, '*'))# 千位分隔符(仅适用于整数和浮点数)
print('{0:,}'.format(987654321))
print('{0:,}'.format(987654321.98765))# 浮点数小数部分的精度
print('{0:.2f}'.format(3.1415926535))
# 如果是字符串类型则是最大的显示长度
print('{0:.5}'.format(s))# 整数类型,进制转换
a = 425
print('二进制:{0:b},十进制:{0:d},八进制:{0:o},十六进制:{0:x}'.format(a))# 浮点类型
b = 3.1415926535
print('{0:.2f},{0:.2E},{0:.2e},{0:.2%}'.format(b))

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

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

相关文章

【上线文档】系统上线方案模板,计算机系统上线保障计划,系统运维信息系统运行保障方案,系统上线方案模板(Word原件)

一、项目背景和目标 二、项目需求分析 2.1 功能需求 2.2 非功能需求 三、系统设计 3.1 系统架构设计 3.2 数据库设计 3.3 接口设计 3.4 用户界面设计 四、系统开发 4.1 开发环境搭建 4.2 业务逻辑开发 4.3 数据库实现 4.4 接口实现 4.5 用户界面实现 五、系统测…

MySQL索引再认识

在最近的一次MySQL测试过程中&#xff0c;我的同事幺加明遇到了一些令人困惑的现象&#xff0c;这些现象超出了我们最初的预期。一直以来&#xff0c;我们在建立索引时&#xff0c;首要考虑的原则是在区分度大的字段上建立索引。然而&#xff0c;在实际测试中&#xff0c;我们发…

SQL靶场第一关

打开sql靶场 一.判断注入类型 在网址输入?id1&#xff0c;页面正常回显 我们在输入?id1,页面报错&#xff0c;说明存在sql注入 我们再输入?id1 and 11--&#xff0c;页面正常回显 我们在输入?id1 and 12--&#xff0c;页面没有回显 这里我们知道了是字符型注入 为什么是…

ollama运行qwen2.5-coder:7b

1.linux安装 curl -fsSL https://ollama.com/install.sh | sh ollama serve # 启动ollama ollama create # 从模型文件创建模型 ollama show # 显示模型信息 ollama run # 运行模型&#xff0c;会先自动下载模型 ollama pull # 从注册仓库中拉取模…

牛客——打印日期,日期累加(C++)

目录 1.日期累加 1.1题目描述 1.2思路 1.3 2.打印日期 2.1题目描述 2.2思路 2.3代码 1.日期累加 1.1题目描述 计算一个日期加上若干天后是什么日期。输入第一行表示样例个数m&#xff0c;接下来m行每行四个整数分别表示年月日和累加的天数。输出m行&#xff0c;每行按…

Stylus 浏览器扩展开发-Cursor AI辅助

项目起源 作为一个经常需要长时间盯着屏幕的开发者&#xff0c;我一直在寻找一个简单的方法来保护眼睛。最初的想法很简单&#xff1a;将网页背景色替换成护眼的豆沙绿。虽然市面上已经有类似的扩展&#xff0c;但我想要一个更加轻量且可定制的解决方案。 这个简单的需求逐渐…

AD20 原理图库和PCB库添加

一 点击右下角 二 点击Components 三 点击File-based Libraries Preferences 四 最后点击安装即可

微信小程序uni-app+vue3实现局部上下拉刷新和scroll-view动态高度计算

微信小程序uni-appvue3实现局部上下拉刷新和scroll-view动态高度计算 前言 在uni-appvue3项目开发中,经常需要实现列表的局部上下拉刷新功能。由于网上相关教程较少且比较零散,本文将详细介绍如何使用scroll-view组件实现这一功能,包括动态高度计算、下拉刷新、上拉加载等完整…

针对边缘计算优化LoRa的TinyML信道跳变管道

论文标题&#xff1a;Optimizing LoRa for Edge Computing with TinyML Pipeline for Channel Hopping&#xff08;针对边缘计算优化LoRa的TinyML信道跳变管道&#xff09; 作者信息&#xff1a;Marla Grunewald, Mounir Bensalem 和 Admela Jukan&#xff0c;来自德国布伦瑞克…

Linux-USB驱动实验

USB 是很常用的接口&#xff0c;目前大多数的设备都是 USB 接口的&#xff0c;比如鼠标、键盘、USB 摄像头等&#xff0c;我们在实际开发中也常常遇到 USB 接口的设备&#xff0c;本章我们就来学习一下如何使能 Linux内核自带的 USB 驱动。注意&#xff01;本章并不讲解具体的 …

操作系统文件管理相关习题2

文件管理的任务和功能文件管理 任务&#xff1a;对用户文件和系统文件进行组织管理&#xff0c;以方便用户使用&#xff0c;并保证文件的安全 功能&#xff1a;文件存储空间的管理&#xff0c;目录管理&#xff0c;文件读写管理和保护 目录管理 对目录管理的要求 实现按名存…

MYSQL - 索引详解

一 什么是索引&#xff1f; 实际上在上一篇介绍MYSQL的体系结构当中我们稍微提及了一点&#xff0c;在引擎层&#xff0c;我们提到不同的引擎对应的索引的实现方式&#xff0c;选择是不一样的。 简单理解&#xff0c;索引&#xff08;index&#xff09;其实就是一种帮助MYSQL高…

AI智能体Prompt预设词指令大全+GPTs应用使用

AI智能体使用指南 直接复制在AI工具助手中使用&#xff08;提问前&#xff09; 可前往SparkAi系统用户官网进行直接使用 SparkAI系统介绍文档&#xff1a;Docs 常见AI智能体GPTs应用大全在线使用 自定义添加制作AI智能体进行使用&#xff1a; 文章润色器 你是一位具有敏锐洞察…

el-tree树形结构拖拽层级错乱问题

背景: 项目中有个文件夹树形菜单,并且各级菜单中的子级元素是可以任意拖拽的,也就是树形结构拖拽修改分组。 问题分析&#xff1a; 出现拖拽层级错乱的问题&#xff0c;这通常意味着在进行节点拖拽操作后&#xff0c;树的层级关系没有正确地被维护。这可能是因为在更新节点位…

线程和进程(juc)

线程 一&#xff1a;概念辨析 1&#xff1a;线程与进程 进程&#xff1a; 1&#xff1a;程序由指令和数据组成&#xff0c;指令要执行&#xff0c;数据要读写&#xff0c;就需要将指令加载给cpu&#xff0c;把数据加载到内存&#xff0c;同时程序运行时还会使用磁盘&#x…

Java基础集合(Map)

存储特点 以键值对的形式存储, 一个元素由两个值组成 键(K-key): 无序, 无下标, 元素不可重复 值(V-value): 无序, 无下标, 元素可以重复 常用实现类 HashMap JDK1.2 底层哈希表实现 线程不安全, 效率高 LinkedHashMap JDK1.2 是HashMap的子类, 底层哈希表实现 线程不安全…

NEXT开发应用质量建议与测试指南

随着鸿蒙原生开发如火如荼的进展&#xff0c;NEXT对应用的质量提出了更高的要求。 NEXT的应用质量分为2个部分内容&#xff1a; ⚫ 体验质量&#xff1a; 功能数据完备、基础体验、HarmonyOS特征增强体验 ⚫ 内容合规&#xff1a; 资质、内容、广告、付费、开发者行为等 单元测…

java应用cpu占用过高故障排除

首先一定要清楚&#xff1a;java应用造成cpu过高的主要原因 1&#xff1a;一般是线程一直处于可运行&#xff08;Runnable&#xff09;状态&#xff0c;通常这些线程在执行无阻塞操作、循环、正则或纯粹的计算等任务 2&#xff1a;另一个可能造成CPU高的原因是频繁GC&#xff…

CPU是如何执行任务的?

你清楚下面这几个问题吗&#xff1f; 有了内存&#xff0c;为什么还需要 CPU Cache&#xff1f; CPU 是怎么读写数据的&#xff1f; 如何让 CPU 能读取数据更快一些&#xff1f; CPU 伪共享是如何发生的&#xff1f;又该如何避免&#xff1f; CPU 是如何调度任务的&#x…

最短路径算法(Dijkstra算法 + Bellman-Ford 算法 + Floyd-Warshall算法)

最短路径算法 完整版万字原文见史上最全详解图数据结构 1. Dijkstra算法&#xff08;单源最短路径&#xff09;&#xff08;无负权边图&#xff09; 算法原理 1. Dijkstra 算法通过 贪心策略 计算从一个源顶点到其他所有 顶点的最短路径。2. 时间复杂度为 O(V^2)&#xff08…