Python字符串格式化与数字处理指南

在Python中,字符串的格式化非常重要,尤其是在生成动态内容时。格式化可以通过多种方式实现,其中最常用的方法是使用 ​​str.format()​​​、f-strings(格式化字符串字面量)以及旧式的 ​​%​​ 格式化。以下是对这些方法的详细介绍,包括数字的格式化操作。

1. 使用 ​​str.format()​​ 方法

​str.format()​​ 方法提供了一种灵活的方式来格式化字符串。可以通过大括号 ​​{}​​ 来指定占位符,并在其后使用 ​​format()​​ 方法传入参数。支持多种类型的格式化,包括数字格式。

示例代码

# 使用 str.format() 进行字符串格式化
name = "Alice"
age = 30
height = 5.5# 基本格式化
formatted_string = "Name: {}, Age: {}, Height: {}".format(name, age, height)
print(formatted_string)# 数字格式化:设置宽度和小数位
number = 123.456789
formatted_number = "Formatted number: {:.2f}".format(number)  # 保留2位小数
print(formatted_number)# 数字带千位分隔符
large_number = 1234567890
formatted_large_number = "Large number: {:,.2f}".format(large_number)  # 每千位用逗号分隔,保留两位小数
print(formatted_large_number)

输出结果

Name: Alice, Age: 30, Height: 5.5
Formatted number: 123.46
Large number: 1,234,567,890.00

2. 使用 f-strings(Python 3.6+)

f-strings 是 Python 3.6 及以上版本引入的一种更简洁的格式化方法。通过在字符串前加上 ​​f​​,可以直接在大括号中插入变量,同时支持格式化操作。

示例代码

# 使用 f-strings 进行字符串格式化
name = "Bob"
age = 25
height = 6.1# 基本格式化
formatted_string = f"Name: {name}, Age: {age}, Height: {height}"
print(formatted_string)# 数字格式化
number = 987.654321
formatted_number = f"Formatted number: {number:.3f}"  # 保留3位小数
print(formatted_number)# 数字带千位分隔符
large_number = 9876543210
formatted_large_number = f"Large number: {large_number:,}"  # 每千位用逗号分隔
print(formatted_large_number)

输出结果

Name: Bob, Age: 25, Height: 6.1
Formatted number: 987.654
Large number: 9,876,543,210

3. 使用 ​​%​​ 格式化(旧式)

虽然不推荐使用,但 ​​%​​ 格式化仍然在一些老旧代码中常见。使用 ​​%​​ 来指定格式,后面跟上一个元组。

示例代码

# 使用 % 进行字符串格式化
name = "Charlie"
age = 28
height = 5.9# 基本格式化
formatted_string = "Name: %s, Age: %d, Height: %.1f" % (name, age, height)
print(formatted_string)# 数字格式化
number = 456.789012
formatted_number = "Formatted number: %.4f" % number  # 保留4位小数
print(formatted_number)# 数字带千位分隔符(Python 3.6+)
large_number = 4567890123
formatted_large_number = "Large number: {:,}".format(large_number)  # 旧式方法不支持千位分隔符,使用format代替
print(f"Large number: {large_number:,}")

输出结果

Name: Charlie, Age: 28, Height: 5.9
Formatted number: 456.7890
Large number: 4,567,890,123

4. 数字格式化操作总结

在Python中,数字格式化的主要操作包括:

  • 保留小数位:使用 ​​:.nf​​,其中 ​​n​​ 是小数位数。
  • 千位分隔符:使用 ​​:,​​,可以与小数位同时使用,如 ​​{:,.2f}​​。
  • 补零:使用 ​​:0n​​,其中 ​​n​​ 是总长度(包括小数点)。
  • 百分比格式:使用 ​​:.2%​​ 可以将数字转换为百分比格式。

示例代码

# 数字格式化操作示例
number1 = 0.12345
number2 = 1000# 百分比格式化
percent_format = f"Percentage: {number1:.2%}"  # 转为百分比,保留两位小数
print(percent_format)# 补零格式化
zero_filled = f"Zero filled: {number2:05d}"  # 总长度为5,前面补零
print(zero_filled)

输出结果

Percentage: 12.35%
Zero filled: 01000

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

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

相关文章

[论文笔记]An LLM Compiler for Parallel Function Calling

引言 今天带来一篇优化函数调用的论文笔记——An LLM Compiler for Parallel Function Calling。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 当前的函数(工具)调用方法通常需要对每个函数进行顺序推理和操作&…

基于JAVA的资源检索系统(源码+定制+开发)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

展望:多模态融合与marker推断

技术进步使得利用高维、高通量、多尺度的生物医学数据从多个角度研究患者和疾病成为可能。在肿瘤学中,正在生成大量数据,从分子、组织病理学到临床记录。深度学习的引入极大地促进了生物医学数据的分析。然而,大多数方法都侧重于单一模态&…

AI在电商平台中的创新应用:提升销售效率与用户体验的数字化转型

1. 引言 AI技术在电商平台的应用已不仅仅停留在基础的数据分析和自动化推荐上。随着人工智能的迅速发展,越来越多的电商平台开始将AI技术深度融合到用户体验、定价策略、供应链优化、客户服务等核心业务中,从而显著提升运营效率和用户满意度。在这篇文章…

基于Java Springboot餐厅点餐系统(加入商家版)

一、作品包含 源码数据库设计文档万字全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA 数据库:MySQL5.7…

NeRF在农业领域的应用-------------(1)

一、Exploring Accurate 3D Phenotyping in Greenhouse through Neural Radiance Fields(通过神经辐射场探索温室中精确的三维表型分析) 1.摘要 在精准农业中,准确收集植物表型对于优化可持续农业实践至关重要。 在受控实验室环境中进行的传…

pico-sdk(零)

pico-sdk(零) 项目概述license相关文档 依赖三方库链接 项目概述 Raspberry Pi Pico SDK(以下简称 SDK)提供了为 RP 系列微控制器设备(如 Raspberry Pi Pico 或 Raspberry Pi Pico 2)编写 C、C 或汇编语言…

基于java+SpringBoot+Vue的视频网站系统设计与实现

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis Maven mysql5.7或8.0等等组成&#x…

vue注册全局组件,其他地方可以直接方便的调用

文章目录 问题注册全局组件完结 问题 本来我们想使用某个组件,需要在各个地方引入对应的参数,并配置好components内容,才可以使用 但是随着用的越来越多,这种方法变得重复且易出错 注册全局组件 修改main.js文件,放…

javaScript交互补充(元素的三大系列)

1、元素的三大系列 1.1、offset系列 1.1.1、offset初相识 使用offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等 获得元素距离带有定位祖先元素的位置获得元素自身的大小(宽度高度)注意:返回的数值都不…

基于SSM的特色美食推荐平台+LW示例参考

1.项目介绍 系统角色:管理员、普通用户功能模块:管理员(用户管理、店铺管理、美食类型、美食收录管理、论坛交流管理等)、普通用户(登录注册、论坛交流、信息查看、美食收藏、美食资讯等)技术栈&#xff1…

【javascript从零单排】变量let、var、const

🌈"It always seems impossible until it’s done." — Nelson Mandela 种一棵树最好是机会是十年前,其次是现在。 📗概念 在 JavaScript 中,变量是用于存储数据值的容器。可以使用变量来保存不同类型的数据&#xff0…

Marp for VScode插件 PPT无法预览的问题

优质好文:https://blog.csdn.net/lyuhaochina/article/details/141527208 这是因为很多人在VScode中安装markdown插件时都会安装插件Markdown Preview Enhanced,这个插件会和Marp插件的预览功能产生冲突,导致用Marp插件做的PPT无法预览 找到设置选项Markdown-previe…

响应时间指标的探索

响应时间指标的探索 最近又看到响应时间的一些讨论,就顺着这个响应时间的一些资料整理了如下内容 1968年 目前能够追溯的最早定义响应时间的文章应该是Rober B.Miller于1968年在AFIPS 68 (Fall, part I): Proceedings of the December 9-11, 1968, fall joint comp…

VRT: 关于视频修复的模型

🏡作者主页:点击! 🤖编程探索专栏:点击! ⏰️创作时间:2024年11月15日14点34分 神秘男子影, 秘而不宣藏。 泣意深不见, 男子自持重, 子夜独自沉。 论文链接 点击开启你的论文编程之旅…

从基础到进阶,Dockerfile 如何使用环境变量

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 什么是 Dockerfile 环境变量?🔖1. `ENV` 指令🔖2. `ARG` 指令🔖语法:🔖使用 `ARG` 的例子:📝 如何使用环境变量提高 Dockerfile 的灵活性🔖1. 动态配置环境🔖2. 配置不同的运行环境🔖3. 多…

使用AI制作视频的一些感受

浦饭幽助真人灵丸 大家好,我是阿赵。 最近我开始用各种AI软件来制作一些视频,比如上次介绍的3D打印的黑龙波飞影的视频,就用了AI生成语音,还有一些换脸的视频。然后再比如上面这个浦饭幽助从漫画变成真人,然后再做出发…

从0开始创建Django项目-基础篇

文章目录 1、安装Django2、创建项目3、默认项目的介绍4、APP5、快速上手5.1 写一个页面5.2 templates模板5.3 静态文件5.3.1 static目录5.3.2 引用静态文件 6、模板语法7、请求和响应8、数据库操作8.1 安装第三方模块8.2 ORM8.3 案例:用户管理 1、安装Django pip install djan…

网络设备 - 这个有点难!

Linux 内核中的网络设备是整个网络通信的核心,它将硬件接口与内核的网络栈连接起来。对于许多初、中级学者而言,理解 Linux 网络设备的概念和工作机制可能显得复杂,但一旦掌握了这些内容,就能更深入地理解内核中的网络操作原理。本…

电商行业财一体化实施案例:如何通过对接实现多组织结算

电商行业财一体化实施案例:如何通过对接实现多组织结算 项目概述: 一家电子商务有限公司,专注于整合线上线下销售渠道,主营业务涵盖化妆品、日用品、乳制品、保健食品等产品的批发与零售。 公司背景与特色 主营业务&#xff1a…