首页 > 编程语言 >Python编程基础:f-字符串格式

Python编程基础:f-字符串格式

时间:2024-06-18 17:45:04浏览次数:15  
标签:查看 Python 代码 编程 print 点击 num 字符串

本文探讨使用Python f-字符串格式,也称为“格式化字符串文字”。f-string是格式化字符串的一种很好且简单的方法,适用于Python v3.6+。如果你仍然使用.format()方法,必须了解f-字符串。
使用字符串格式的优势之一是能够“插入”并格式化字符串数据中的变量。
Python字符串format()方法 VS. F-字符串
字符串格式的旧方法是使用.format()方法。如下所示,可以将变量插入到字符串类型数据中:
花括号用作变量的占位符。
这些花括号内的名称(例如“a”、“b”)可以是任何内容,它们不一定是a和b,将它们更改为x和y也会起作用。它们的作用类似于关键字参数,因此可以选择将变量插入字符串的位置。

点击查看代码
num='10'
var='apples'
s='I have {a} {b}'.format(a=num,b=var)
print(s)
I have 10 apples

随着Python v3.6的发布,f-字符串变得可用。这种新方法比旧的format()方法更强大、更直观。为了使用f字符串,需要:
1.使用f开始字符串数据,后跟实际字符串。
2.与旧的.format()方法类似,使用花括号{}作为变量的占位符。
3.可以直接在花括号中插入变量。

点击查看代码
s=f'I have {num} {var}'
print(s)
I have 10 apples

数字格式
可以使用f-字符串来操作不同的数字格式,例如控制小数位数、百分比、千位分隔符等。
有时,我们可能需要格式化一个数字,比如保留两位小数:

点击查看代码
pi=3.1415926
s=f'the value of pi is {pi:.2f}'
print(s)

the value of pi is 3.14

也可以将数字格式化为百分比,而不需要先将小数乘以100。

点击查看代码
a=0.1234567
s=f'the percentage is {a:.3%}'
print(s)

the percentage is 12.346% 此外,还可以为数字格式数据包含千位分隔符。注意,不局限于逗号符号--除了额数符号之外,任何东西都可以使用。
点击查看代码
this_num=69420
print(f'this number is {this_num:,}')
print(f'this number is {this_num:_}')

this number is 69,420
this number is 69,420

可以同时使用千位分隔符和小数点。

print(f"this number is {this_num:,.4f}")

要用科学计数法格式化数字,只需要再字符串格式中添加:e(或:E)。要控制小数位,只需要在e或E前面加一个点和一个数字。

点击查看代码
num=1234567890
print(f'{num:e}')
print(f'{num:E}')
print(f'{num:.2e}')

1.234568e+09
1.234568E+09
1.23e+09

格式化datetime对象的字符串表示也很容易。

点击查看代码
import datetime as dt
today=dt.datetime.today()
print(today)
2024-06-18 16:40:51.463672

print(f'today is {today:%Y/%m/%d}')
today is 2024/06/18
将Python f-字符串与原始字符串(r字符串)组合
还可以组合f-字符串和r-字符串。这项计数对于引用计算机上的文件非常有用。
例如,可以将文件路径分解为不同的部分,并使用变量表示路径:

点击查看代码
parent_dir=rf'D:/完美Excel/Python'
subfolder='MyFiles'
file_path='file01.xlsx'
print(rf'{parent_dir}/{subfolder}/{file_path}')
D:/完美Excel/Python/MyFiles/file01.xlsx

文本对齐
可以通过在字符串数据的两侧插入空格来对齐文本
1.要在字符串左侧插入空格,使用:>n
2.要在字符串右侧插入空格,使用:<n
3.右侧插入的另一种可能方式是:n
4.对于中间对齐,使用:^n
空格的数量将取决于选择的n值和字符串的长度。如果n小于字符串的长度,则此格式将无效。

点击查看代码
txt='python'
print(f'{txt:>10}')
print(f'{txt:<10}')
print(f'{txt:10}')
print(f'{txt:^10}')
结果:
点击查看代码
    python
python    
python    
  python  
使用f-字符串调试python代码 如果打印用于调试的代码,f-字符串也可以通过减少我们需要键入的代码来帮助你
点击查看代码
x=100
print(f'{x=}')

x=100

在python f-字符串里使用条件
还可以在f-字符串插入简单的if/else条件。考虑下面的示例:

点击查看代码
pass_mark=50
mark_1=60
mark_2=49
print(f"student 1{' pass' if mark_1>pass_mark else ' fail'}")
print(f"student 2{' pass' if mark_2>pass_mark else ' fail'}")
结果
点击查看代码
student 1 pass
student 2 fail

在f字符串里使用引号
如前一个示例所示,可以在f-字符串中使用引号。唯一的规则是匹配相同类型的开始和结束引号,
即单个开始引号需要有一个匹配的结束引号。与双引号相同,这也意味着我们不能在同一个f-字符串中使用引号两次。
print(f"same quotes won't work:{["item"]}")
结果
SyntaxError: f-string: unmatched '['

计算 &函数/方法
如果将函数放入f-字符串中,则会对其进行求值,这意味着可以使用f-字符串直接显示函数结果。
将其与之前的调试技术相结合

点击查看代码
def add_two(x):
    return x+2
print(f'{add_two(1)=}')

add_two(1)=3

多行f字符串
如果字符串太长,可以使用三个引号""""""而不是单引号将其分成多行。

点击查看代码
txt='this works'
print(f"""this is a long sentence 
           with multiple lines.We
           are using three quotes
        and {txt}""")
结果:
点击查看代码
this is a long sentence
           with multiple lines.We
           are using three quotes
        and this works

标签:查看,Python,代码,编程,print,点击,num,字符串
From: https://www.cnblogs.com/SunshineWeather/p/18254792

相关文章

  • python调用智能合约代码,BadFunctionCallOutput 怎么解决
    目录桌面应用使用QT5开发的,可以看看我的QT5文章BadFunctionCallOutput 怎么解决我的原因是智能合约地址填写错误python智能合约基础应用如何使用remix编写solidity智能合约并部署上链在哪进行合约部署,合约部署步骤Remix怎么复制abi和address​编辑这个ABI对应最简......
  • 【python】pandas:DataFrame详解
    DataFrame是Pandas库中的一个核心数据结构,用于处理和分析表格型数据。以下是关于DataFrame的详细介绍:1.定义DataFrame是一个二维的表格型数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值等)。DataFrame可以被视为一个电子表格或SQL表,或是由多个Seri......
  • 【暑假Python上岸计划】最新20+Python实战案例,全程干货,30天看完即可接单就业!(基础+进阶
    前言今天给大家分享20+个基于python的实战案例,主要包含:数据分析、可视化、机器学习/深度学习、时序预测等,案例的主要特点:*提供源码:代码都是基于jupyternotebook,附带一定的注释,运行即可*数据齐全:大部分案例都有提供数据,部分案例使用内置数据集学习资料已打包,需要......
  • 【Python】python实现双向链表
    一、定义与结构双向链表(DoublyLinkedList)是一种链式数据结构,每个节点(Node)包含三个部分:一个数据域(data),一个指向前驱节点的指针(prev),以及一个指向后继节点的指针(next)。双向链表的每个节点都链接到前一个节点和后一个节点,从而允许在两个方向上进行遍历。双向链表的结构+---......
  • 自动化之python读取目录结构转换为element-plus tree结构
    defget_project_tree(start_path:str,original_path:str,tree_data:list):child_files=os.listdir(start_path)forchild_fileinchild_files:ifchild_filein['.gitignore','.idea','venv','__pycache__......
  • Python - Arrays and Numpy Arrays
    Mostprogramminglanguagesprovideadatastructurecalledarrays.InPython,arrayisapackageanditisdifferentfrom“core”pythonlists.    Thesyntaxforcreatinganarray. DifferencesbetweenNumpyArraysandArrays PythonPredefi......
  • k8s的python客户端库--kubernetes
    简介Kubernetes是什么Kubernetes是一个全新的基于容器技术的分布式架构解决方案,是Google开源的一个容器集群管理系统,Kubernetes简称K8S。Kubernetes是一个一站式的完备的分布式系统开发和支撑平台,更是一个开放平台,对现有的编程语言、编程框架、中间件没有任何侵入性。K......
  • python简单账表(包括联查)
    import clrclr.AddReference("System")clr.AddReference("Kingdee.BOS")clr.AddReference("Kingdee.BOS.Core")clr.AddReference("Kingdee.BOS.DataEntity")clr.AddReference("Kingdee.BOS.App")clr.AddReference(&q......
  • 关于几种语言(c#,php,python,javascript)字符串的gzip压缩与解压的整理
    背景介绍因为一直在处理restfulAPI,给移动端提供的数据需要考虑流量问题,优先考虑就是压缩现有的字符串,然后再考虑业务逻辑方面的减少流量。鉴于找这些资料也花了不少时间,所以整理了这篇文章,留作纪念。参考网址PHP与C#的压缩与解压http://www.oschina.net/question/2265205_181......
  • python函数声明(参数/返回值注释)和三个双引号用法
     1#python的"""三个双引号两种用法:(1)多行注释(2)定义多行字符串2deff1(ham:42,eggs:int='spam')->"Nothingtoseehere":3print("函数注释",f1.__annotations__)#函数注释{'ham':42,'eggs':<cl......