• 你可能从未使用过的13个Python特性


    大多数程序员不知道的令人难以置信的功能列表。

    Python是顶级编程语言之一,它具有许多程序员从未使用过的许多隐藏功能。在这篇文章中,我将分享你可能从未使用过的13个Python特性。

    1.列表Stepping

    这是一个 step 参数,可以通过采取几个步骤来分割你的列表。此外,你可以使用 step 参数来反转整数。看看下面的代码示例:

    1. # 列表Stepping
    2. data = [10, 20, 30, 40, 50]
    3. print(data[::2]) # [10, 30, 50]
    4. print(data[::3]) # [10, 40]
    5. # 使用 stepping 翻转列表
    6. print(data[::-1]) # [50, 40, 30, 20, 10]

    2.find() 方法

    find() 方法是一个很棒的功能,可以查找字符串中任何字符的任何起始索引号:

    1. # 查找方法
    2. x = "Python"
    3. y = "Hello From Python"
    4. print(x.find("Python")) # 0
    5. print(y.find("From")) # 6
    6. print(y.find("From Python")) #6

    3.iter()函数

    iter() 方法对于没有任何循环帮助的迭代列表很有用。这是一个内置方法,因此你不需要任何模块:

    1. # Iter()
    2. values = [1, 3, 4, 6]
    3. values = iter(values)
    4. print(next(values)) # 1
    5. print(next(values)) # 3
    6. print(next(values)) # 4
    7. print(next(values)) # 6

    4.Python 中的文档测试

    Doctest 功能将让你测试你的功能并显示你的测试报告。如果你检查下面的示例,你需要在三引号中编写一个测试参数,如下所示:

    1. # Doctest
    2. from doctest import testmod
    3. def Mul(x, y) -> int:
    4. """
    5. 这个函数返回 x 和 y 参数的 mul
    6. 调用函数,然后是预期的输出:
    7. >>> Mul(4, 5)
    8. 20
    9. >> > Mul(19, 20)
    10. 39
    11. """
    12. return x * y
    13. # 调用 testmod 函数
    14. testmod(name='Mul', verbose=True)

    输出:

    1. Trying:
    2. Mul(4, 5)
    3. Expecting:
    4. 20
    5. ok
    6. Trying:
    7. Mul(19, 20)
    8. Expecting:
    9. 39
    10. **********************************************************************
    11. File "__main__", line 10, in Mul.Mul
    12. Failed example:
    13. Mul(19, 20)
    14. Expected:
    15. 39
    16. Got:
    17. 380
    18. 1 items had no tests:
    19. Mul
    20. **********************************************************************
    21. 1 items had failures:
    22. 1 of 2 in Mul.Mul
    23. 2 tests in 2 items.
    24. 1 passed and 1 failed.
    25. ***Test Failed*** 1 failures.

    5.Yield声明

    Yield 语句是 Python 的另一个令人惊叹的特性,它的工作方式类似于 return 语句,但它不是终止函数并返回,而是返回到它返回给调用者的点:

    1. # Yield声明
    2. def func():
    3. print(1)
    4. yield 1
    5. print(2)
    6. yield 2
    7. print(3)
    8. yield 3
    9. for call in func():
    10. pass# 输出
    11. # 1
    12. # 2
    13. # 3

    6.处理字典缺失键

    有时我们正在访问的键不存在于字典中,这会导致键错误。为了处理丢失的键,我们可以使用get() 方法而不是括号方法:

    1. # 处理字典中的缺失值
    2. dict_1 = {1"x"2"y"}
    3. # 不要使用get
    4. print(dict_1[3]) # key error
    5. # 使用get
    6. print(dict_1.get(3)) # None

    7.For/Else 和 While/Else

    你知道 Python 还支持带有 For 和 While 循环的 Else 吗?当你的循环完成其迭代而没有任何中断时,将执行此 else 语句。

    下面的 For 循环示例 else 将执行,但在 While 循环中,我添加了一个不会触发 else 语句的 break 语句:

    1. # 为/否则
    2. for x in range(5):
    3. print(x)
    4. else:
    5. print("Loop Completed") # 执行# While / Else
    6. i = 0
    7. while i < 5:
    8. break
    9. else:
    10. print("Loop Completed") # 未执行

    8.命名字符串格式化

    此功能将替换字符串占位符中的值。当你需要在字符串的不同占位符中添加值时,这会派上用场:

    1. # 命名格式化字符串
    2. a = "Python"
    3. b = "工作"# Way 1
    4. string = "I looking for a {} Programming {}".format(a, b)
    5. print(string) # I looking for a Python Programming Job
    6. #Way 2
    7. string = f"I looking for a {a} Programming {b}"
    8. print(string) # I looking for a Python Programming Job

    9.设置递归限制

    这是 Python 的另一个很棒的特性,它可以让你设置 Python 程序的递归限制。请查看以下代码示例以更好地理解:

    1. # 设置递归限制
    2. import sys
    3. sys.setrecursionlimit = 2000
    4. print(sys.getrecursionlimit) # 2000

    10.条件参数

    条件赋值功能使用三元运算符,可以根据特定条件在变量中赋值。看看下面的代码示例:

    1. # 条件参数
    2. x = 5 if 2 > 4 else 2
    3. print(x) # 2
    4. y = 10 if 32 > 41 else 24
    5. print(y) # 24

    11.参数拆包

    你可以解压缩函数中的任何可迭代数据参数。看看下面的代码示例:

    1. # 参数解包
    2. def func(x, y):
    3. print(x, y)
    4. list_1 = [100, 200]
    5. dict_1 = {'x':300, 'y':400}
    6. func(*list_1)
    7. func(**dict_1)
    8. # 输出
    9. # 100 200
    10. # 300 400

    12.Hello World!

    如果你键入以下代码并运行它,这是一个有趣的功能。Python 会用两个著名的词来迎接你。试试看。

    import __hello__

    13.多行字符串

    此功能将向你展示如何编写不带三引号的多行字符串。看看下面的代码示例:

    1. # 多行字符串
    2. str1= "你是否正在寻找免费的Python学习材料" \
    3. "欢迎来到 " \
    4. "公众号 Python专栏"
    5. print(str1)

    好了,以上这13个python特性,你用过几个呢?有什么疑问,欢迎在评论中留言。

    【python学习】
    学Python的伙伴,欢迎加入新的交流【君羊】:157862539
    一起探讨编程知识,成为大神,群里还有软件安装包,实战案例、学习资料

  • 相关阅读:
    电脑没电关机,wsl和docker又挂了,附解决过程
    #力扣:2894. 分类求和并作差@FDDLC
    web:[极客大挑战 2019]Knife
    C的魅力在于指针
    .NET分布式Orleans - 6 - 事件溯源
    微信小程序引入地图
    通过这些API,开发者可以在自己的应用程序中嵌入电商功能,为用户提供便捷的购物体验
    考过HCIP入职心仪公司,分享华为认证学习经历及心得
    向日葵无法连接服务器(无法登录)
    微信小程序自动化测试之路
  • 原文地址:https://blog.csdn.net/m0_72091242/article/details/128129728