初学者应该知道的4个Python隐藏功能?

开发 后端
学无止境。没有任何一本书或网站能包含所有需要了解的Python内容,甚至官方文件也不能,Python的可能性可以说是无限的。

 学无止境。

[[316856]]

没有任何一本书或网站能包含所有需要了解的Python内容,甚至官方文件也不能,Python的可能性可以说是无限的。

Python的编程也永远也学不完,你可能会不断发现Python中有用的新功能,而且需要学习的内容太多了。

多年来我一直在用Python编写代码,也发现了一些有趣的、非常独特的Python功能,这些都是在其他编程语言中找不到的。

下面是Python初学者可能会觉得有用的4个隐藏Python功能。

一起来看看吧~

1. 比较运算符链接

要检查a中的值是否在0到100的范围内,需要进行两次比较,并使用and组合起来:0 <= a and a <= 100。这很容易。

但是可以以一种更易于阅读的直观的方式来将这些比较链接起来:0 <= a <= 100。解释器将它们分开,并读取比较操作,如0 <= a and a <= 100。

 

a = 25 
0 <= a <= 100       # True 
0 <= a and a <= 100 # True 
# The two expressions above are equivalent in Python 
  • 1.
  • 2.
  • 3.
  • 4.

 

链接还可以更长,比如0 < a < 10 < b < 100。

2. 值的交换

如何在Python中交换两个对象的值?简单!只需创建一个临时对象temp,就像在其他语言中所做的那样。

 

# Standard way to swap values oftwo objects in other languages 
temp = a 
a = b 
b = temp 
  • 1.
  • 2.
  • 3.
  • 4.

 

但这不是很易读,也不好看。实际上,使用Python中的一行代码就可以轻松地交换这些值。

 

# Standard Python way to swapvalues 
b, a = a, b 
  • 1.
  • 2.

 

为什么会这样?解释器首先计算右边的值,并在内存中创建一个元组(a,b),然后在左侧,将元组中的两个元素取出并分别赋给b和a。它实际上交换了分配给a和b的对象。

3. For-else循环

你熟悉Python中的条件语句吗?

while循环,ok了。

for循环也不难。

if else语句也学会了。

那for else语句呢?

 

deftest(nums): 
    for i  in  nums: 
        if i  ==0:  # if the condition is satisfied, it hits  break and the else block will not run 
            print('There is a 0.'
            break 
    else
        print('There are no 0s.'
test([1,2,3,0])  # There is a 0. 
test([1,2,3])   #  There are no 0s. 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

 

代码来自GitHub,viewrawfor-else.py

else块中的代码只有在for循环没有遇到break语句且正常退出时才会运行。

那么这个for-else循环有什么用呢?可能用户已经三次尝试在一个for _ in range(3)循环中输入正确的密码,只有正确的密码才会激活break语句。连续3次猜错密码的结果就进入else块,例如锁定系统。

4. 扩展切片

可以使用语法a[start:stop:step]对列表a切片,并使用一个可选的第三参数。读取从起始点开始,到结束点结束的部分序列,步长为step。步长必须是整数,也可以是负数。

 

a = list(range(10)) 
print(a[::2])   # [0, 2, 4, 6, 8] 
print(a[3::-1]) # [3, 2, 1, 0] 
  • 1.
  • 2.
  • 3.

 

通过将step参数设置为-1,可以简单地用[::-1]来反转列表。如果未指定step,则默认为1,这意味着没有元素跳过或列表反转。

掌握这4个隐藏Python功能,摆脱“菜鸟称号”吧。

责任编辑:华轩 来源: 今日头条
相关推荐

2009-06-15 13:17:37

Java初学者Java概念

2024-08-17 12:14:06

2010-11-12 10:07:42

2020-09-18 09:02:20

JavaScript

2011-06-17 14:54:31

Qt

2022-07-22 15:55:32

Python代码语言

2017-10-30 10:12:27

安卓开发初学者技巧

2020-07-29 08:26:40

Webpack前端模块

2024-03-11 18:17:18

Python字符串分隔符

2020-09-06 08:19:11

Python编程语言开发

2023-04-09 16:17:05

ChatGPT人工智能

2011-04-12 10:13:24

2014-01-03 14:09:57

Git学习

2011-09-16 09:38:19

Emacs

2022-04-24 15:21:01

MarkdownHTML

2010-03-10 17:09:26

Python语言

2024-05-08 12:41:29

Python编程语言

2014-03-12 10:11:57

Python设计模式

2010-08-16 09:57:49

SilverlightWPFVisual Stud

2021-03-07 00:56:05

区块链Python安全
点赞
收藏

51CTO技术栈公众号