Python3,f-string隐藏技巧,然而99%的撸码人却不知道.....

简介: Python3,f-string隐藏技巧,然而99%的撸码人却不知道.....

1、引言


f-string,想必很多python的码农都很熟悉…

小屌丝:鱼哥,如果我没记错,这是python3.6版本以后引入的

小鱼:对的,没错,你的头发虽然不多,但是你的记忆力却没减~ ~

小屌丝:你是夺笋!!! 专攻人家软肋…

小鱼:我这都是嘴下留情了…不然你那点事,我都给抖出来!!


小屌丝:… 为了不让我们友谊的小船倾斜,能不能share点硬货??

小鱼:多硬? 螺丝钉硬还是砖头硬??

小屌丝:鱼哥,我发现你是真狗啊…如果不是为了小妹,我就不回答你的问题了…

小鱼:难怪难怪… 好吧,为了能让你的小迷妹对你更加认可,我今天就分享一点99%的撸码人不知道的f-string隐藏技巧;

小屌丝:唉我去~~ 鱼哥,我发现你对我是真爱!!!

小鱼:有多远走多远, 别扯没用的,我们开始今天的分享。


2、f-string


2.1 基础用法介绍


基础用法很简单,一句话:


前缀f的字符串中向{}内直接填入要嵌入的值、变量或计算表达式。

举例:


实例一

f'1 + 1 = {2}'


结果

'1 + 1 = 2'


实例二

a = 1 + 1
f'1 + 1 = {a}'


结果

'1 + 1 = 2'


实例三

f'1 + 1 = {1 + 1}'


结果

'1 + 1 = 2'


2.2 控制浮点数精度


我们可以按照以下方式灵活的控制浮点数的小数位数:

举例


# -*- coding:utf-8 -*-
# @Time   : 2021-08-01
# @Author : carl_DJ
import math
#获取π
pi = math.pi
#输出π
print(f'输出π:{pi}')
#截取π的小数点后2位并输出
print(f'输出π小数点后2位:{pi:.2f}')
#截取π的小数点后9位并输出
print(f'输出π小数点后9位:{pi:.9f}')


输出π:3.141592653589793
输出π小数点后2位:3.142
输出π小数点后9位:3.141592654


2.3 设置科学计算法格式


也是很简单,直接上例子,我们来瞅瞅:

# -*- coding:utf-8 -*-
# @Time   : 2021-08-01
# @Author : carl_DJ
import math
#获取π
pi = math.pi
#pix100后以科学计算法输出
print(f'输出πx100后科学计算法显示:{pi*100:.10e}')


结果

输出πx100后科学计算法显示:3.1415926536e+02


2.4 自记录表达式


从python3.8开始,f-string就引入了自记录表达式,

好处:快速的输出计算表达式。

举例:


# -*- coding:utf-8 -*-
# @Time   : 2021-08-01
# @Author : carl_DJ
import math
a = 8
#输出math.log(a)的值
print(f'math.log(a) = {math.log(a)}')


结果

math.log(a) = 2.0794415416798357


2.5 多行 f-string


f-string不仅仅只能编写单行代码,多行的也一样可行。


举例


# -*- coding:utf-8 -*-
# @Time   : 2021-08-01
# @Author : carl_DJ
a = 1
b = 2
c = 3
#f-string 编写多行,需要使用()
result = (f'a = {a } \n'
          f'b = {b} \n'
          f'c = {c} \n'
          )
print(f'result输出结果是:\n{result}')


结果


result输出结果是:
a = 1 
b = 2 
c = 3


2.6 在f-string格式化日期


针对日期类型的变量,同样可以在f-string中快速的进行格式化。


举例

# -*- coding:utf-8 -*-
# @Time   : 2021-08-02
# @Author : carl_DJ
import datetime
#设定当前日期时间
now = datetime.datetime.now()
#输出日期时间
print(f'当前输出日期时间是:{now:%Y-%m-%d %H:%M:%S}'))


结果:

当前输出日期时间是:2021-08-02 12:24:36


2.7 控制有效数字位数


在实际项目中,我们只想显示有效的数字位数,那怎么做呢,我们来看下:

实例一


我们想显示从左往右第一个不为0的12位数字:

a = 123.4567890123456
print(f'从左往右剔除第一个为0的12个数字 :{a:.12g}')


结果

从左往右刨除第一个为0的10个数字 :123.456789012


实例二


同样显示10个数字,当位数小于整数部分时,自动变成科学计数法

a = 12345678.90123456
print(f'从左往右刨除第一个为0的5个数字 :{a:.5g}')


结果

从左往右刨除第一个为0的5个数字 :1.2346e+07


2.8 修改为左对齐


f-string默认为右对齐,但是有的大佬就不走寻常路(有可能喜欢喝勇闯天涯),必须要左对齐,那也是可以实现的。


使用来"<"修改显示模式为左对齐。

# -*- coding:utf-8 -*-
# @Time   : 2021-08-02
# @Author : carl_DJ
#写一个循环
for j in range(1,11):
  #修改显示模式为左对齐
    print(f'{j:<2}|{j**3:<4}|{j**6:<7}')
    #默认显示为右对齐
    print(f'{j:2}|{j**3:4}|{j**6:7}')


结果

①左对齐

1 |1   |1      
2 |8   |64     
3 |27  |729    
4 |64  |4096   
5 |125 |15625  
6 |216 |46656  
7 |343 |117649 
8 |512 |262144 
9 |729 |531441 
10|1000|1000000


②右对齐

1|   1|     1
 2|   8|    32
 3|  27|   243
 4|  64|  1024
 5| 125|  3125
 6| 216|  7776
 7| 343| 16807
 8| 512| 32768
 9| 729| 59049
10|1000|100000


2.9 标准化显示宽度


上面的实例,满足了左对齐,右对齐,显示数字截取,那么

我们能不能对输出的结果中显示的宽度做调整呢?

当然也是可以的。

同样用上面的左对齐的例子,


# -*- coding:utf-8 -*-
# @Time   : 2021-08-02
# @Author : carl_DJ
#写一个循环
for j in range(1,11):
    #第一列都占两个字符
    print(f'{j:02}|{j**3:4}|{j**5:6}')
    #第二列都占用4个字符,第三列都占用6个字符
    print(f'{j:02}|{j**3:0004}|{j**5:00006}')


结果

第一列占用2个字符

01|   1|     1
02|   8|    32
03|  27|   243
04|  64|  1024
05| 125|  3125
06| 216|  7776
07| 343| 16807
08| 512| 32768
09| 729| 59049
10|1000|100000


第一列占用2个,第二列4个,第三列6个


01|0001|000001
02|0008|000032
03|0027|000243
04|0064|001024
05|0125|003125
06|0216|007776
07|0343|016807
08|0512|032768
09|0729|059049
10|1000|100000


3、总结


看到这里,今天的分享内容,似乎又到一段落了。

总的来说,这些隐藏的技巧,只是大家平时没有太多的关注,

其实只要稍稍的多花费一点点时间,可能小鱼也不能说99%的人不知道呢。


小屌丝:看到这里,我又可以跟我的小学妹嘚瑟一番了。

小鱼:哎~~ 你嘚瑟你的,我吃我的饭去了。

目录
相关文章
|
1月前
|
存储 Java 索引
Python String详解!
本文详细介绍了Python中的字符串数据类型,包括其创建、访问、切片、反转及格式化等操作。文章涵盖字符串的基本概念、各种操作方法以及常用内置函数。通过多个示例代码展示了如何使用单引号、双引号和三重引号创建字符串,如何通过索引和切片访问与修改字符串内容,以及如何利用格式化方法处理字符串。此外,还介绍了字符串的不可变性及其在实际应用中的重要性。通过本文的学习,读者可以全面掌握Python字符串的使用技巧。
45 4
|
1月前
|
Go C++ Python
Python Tricks: String Conversion(Every Class Needs a ___repr__)
Python Tricks: String Conversion(Every Class Needs a ___repr__)
|
1月前
|
安全 JavaScript 前端开发
Python Tricks: A Shocking Truth About String Formatting(二)
Python Tricks: A Shocking Truth About String Formatting(二)
|
1月前
|
Python
Python Tricks: A Shocking Truth About String Formatting(一)
Python Tricks: A Shocking Truth About String Formatting(一)
|
3月前
|
SQL JSON 测试技术
Python中的f-string
Python中的f-string
|
3月前
|
存储 Serverless 数据处理
Python - len(string)函数
通过上述介绍和示例,我们可以清楚地看到,在Python中,`len()`函数是处理字符串以及其他可迭代对象长度的重要工具。它简单、易用,但在实际应用中却非常强大,无论是在基础编程还是在复杂的数据处理中,`len()`函数都扮演着不可或缺的角色。
67 10
|
4月前
|
Java 开发者 Python
Python中,字符串(String)是一种不可变的数据类型
Python中,字符串(String)是一种不可变的数据类型
|
4月前
|
SQL 数据库 数据安全/隐私保护
【Python】已解决:(SqlServer报错)SQL错误(208):对象名‘string_split’无效
【Python】已解决:(SqlServer报错)SQL错误(208):对象名‘string_split’无效
172 2
|
6月前
|
Python
python中split_string和substring区别
python中split_string和substring区别
83 1
|
5月前
|
Python
通过f-string编写简洁高效的Python格式化输出代码
Python 3.6中引入的f-string是Python中最常用的特征之一,它可以让我们编写更干净、更高效和更易于维护的代码,我们今天就由浅入深来详细介绍使用它的一些技巧。
463 4