num_val = 42
print(f’{num_val} {str_val}') # 42 apples
### ❀变量名
除了获取变量的值之外,您还可以在值旁边获取它的名称。这在调试时特别有用,并且可以通过`=`在大括号内的变量名称后添加等号 `( )`来轻松实现。
请记住,花括号内的空格已被考虑在内,因此在等号周围添加空格可以使结果更具可读性。
str_val = ‘apples’
num_val = 42
print(f’{str_val=}, {num_val = }') # str_val=‘apples’, num_val = 42
### ❀数学运算
在语法上与变量名称不同,您还可以在 f 字符串中执行数学运算。您可以将数学表达式放在花括号内,如果添加等号,您将获得表达式及其结果。
num_val = 42
print(f’{num_val % 2 = }') # num_val % 2 = 0
### ❀可打印的表示
除了纯字符串插值外,您可能还想获得一个值的可打印表示。这已经很容易使用该`repr()`功能完成了。`f` 字符串通过`!r`在大括号内附加 a来提供更短的语法。
str_val = ‘apples’
print(f’{str_val!r}') # ‘apples’
### ❀数字格式
此外,f 字符串也可用于格式化 - 因此名称中的f。要为值添加格式,您可以添加一个冒号 `( :)`,后跟一个格式说明符。这也可以与之前的 `equals` 结合使用,您是否也想打印变量的名称。
数字是一个很好的候选者。例如,如果要将数值修剪为小数点后两位,则可以使用`.2f`格式说明符。
price_val = 6.12658
print(f’{price_val:.2f}') # 6.13
### ❀日期格式
最后,日期也可以使用格式说明符以与数字相同的方式进行格式化。像往常一样,`%Y`表示全年,`%m`是月份,是月份`%d`中的日期。
from datetime import datetime;
date_val = datetime.utcnow()
print(f’{date_val=:%Y-%m-%d}') # date_val=2021-07-09
## 四、在 Python 中格式化字符串的 2 种方法
### ʕ ᵔᴥᵔ ʔ 字符串
格式化字符串文字,通常称为 `f` 字符串,是以`'f'` 或为前缀的字符串`'F'`。这些字符串可以包含用大括号 `( {})`括起来的替换字段。
name = ‘John’
age = 32
print(f’{name} is {age} years old’) # ‘John is 32 years old’
### ʕ ᵔᴥᵔ ʔ str.format()
该`str.format()`方法的工作方式与 `f-strings` 非常相似,主要区别在于替换字段作为参数提供,而不是作为字符串的一部分提供。
name = ‘John’
age = 32
print(‘{0} is {1} years old’.format(name, age)) # ‘John is 32 years old’
## 五、理解 Python 的切片赋值
### 5.1理解 Python 的切片符号
#### ʕ•̫͡• ʔ 基本语法
Python 的切片符号用于返回列表或列表的一部分。基本语法如下:
[start_at:stop_before:step]
其中`start_at`是要返回的第一个项目的索引(包括),`stop_before`是停止之前的元素的索引(不包括),`step`是任何两个项目之间的步幅。
所有三个参数都是可选的,这意味着您可以省略其中任何一个。例如:
nums = [1, 2, 3, 4, 5]
nums[1:4] # [2, 3, 4] (start at 0, stop before 4)
nums[2:] # [3, 4, 5] (start at 0, stop at end of list)
nums[:3] # [1, 2, 3] (start at 0, stop before 3)
nums[1:4:2] # [2, 4] (start at 1, stop before 4, every 2nd element)
nums[2::2] # [3, 5] (start at 2, stop at end of list, every 2nd element)
nums[:3:2] # [1, 3] (start at 0, stop before 3, every 2nd element)
nums[::2] # [1, 3, 5] (start at 0, stop at end of list, every 2nd element)
nums[::] # [1, 2, 3, 4, 5] (start at 0, stop at end of list)
从上面的示例中您可能可以看出,默认值为`start_at = 0`、`stop_before = len(nums)`、`step = 1`。
浅克隆列表的惯用方法是使用`[:]`(例如`nums_clone = nums[:]`)。
#### ʕ•̫͡• ʔ 负值
所有三个参数也接受负值。对于`start_at`and `stop_before`,负值意味着从列表的末尾开始计数,而不是从开始计数。例如`-1`将代表最后一个元素,`-2`倒数第二个元素等。例如:
nums = [1, 2, 3, 4, 5]
nums[1:-2] # [2, 3] (start at 1, stop before 2nd to last)
nums[-3:-1] # [3, 4] (start at 3rd to last, stop before last)
负数`step`意味着列表被反向切片(从结尾到开头)。这也意味着`start_at`应该大于`stop_before`并且`stop_before`在反向步幅的上下文中更像是`stop_after`如果您正在查看非反向列表。例如:
nums = [1, 2, 3, 4, 5]
nums[::-1] # [5, 4, 3, 2, 1] (reversed)
nums[4:1:-1] # [5, 4, 3] (reversed, start at 4, stop after 1)
nums[-1:1:-2] # [5, 3] (reversed, start at last, stop after 1, every 2nd)
#### ʕ•̫͡• ʔ 空切片
请记住,切片表示法非常宽容,因此如果参数的值超出列表的范围,您将得到一个空列表。例如:
nums = [1, 2, 3, 4, 5]
nums[6:8] # []
nums[:-10] # []
### 5.2理解 Python 的切片赋值
#### ಡ ಡ基本语法
为了理解 Python 的切片分配,您至少应该对切片的工作原理有一个很好的了解。这是一个快速回顾:
[start_at:stop_before:step]
切片赋值与切片列表的语法相同,唯一的例外是它用在表达式的左侧而不是右侧。由于切片返回一个列表,切片赋值需要一个列表(或其他可迭代的)。而且,顾名思义,右侧应该是分配给表达式左侧切片的值。例如:
nums = [1, 2, 3, 4, 5]
nums[:1] = [6] # [6, 2, 3, 4, 5] (replace elements 0 through 1)
nums[1:3] = [7, 8] # [6, 7, 8, 4, 5] (replace elements 1 through 3)
nums[-2:] = [9, 0] # [6, 7, 8, 9, 0] (replace the last 2 elements)
#### ಡ ಡ改变长度
表达式左侧切片返回的列表部分是将通过切片赋值更改的列表部分。这意味着您可以使用切片分配将列表的一部分替换为长度也与返回切片不同的不同列表。例如:
nums = [1, 2, 3, 4, 5]
现在能在网上找到很多很多的学习资源,有免费的也有收费的,当我拿到1套比较全的学习资源之前,我并没着急去看第1节,我而是去审视这套资源是否值得学习,有时候也会去问一些学长的意见,如果可以之后,我会对这套学习资源做1个学习计划,我的学习计划主要包括规划图和学习进度表。
分享给大家这份我薅到的免费视频资料,质量还不错,大家可以跟着学习
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!