当前位置:首页 > 科技  > 软件

17个提升Python的编码技巧,从此键盘飞起

来源: 责编: 时间:2023-12-22 17:13:03 341观看
导读Python 是一种真正美妙的语言。当有人想出一个好主意时,大约需要 1 分钟和 5 行代码来编写几乎可以满足您要求的东西。然后只需要一个小时就可以将脚本扩展到 300 行,之后它仍然几乎可以满足您的需求。“Python 是一种

Python 是一种真正美妙的语言。当有人想出一个好主意时,大约需要 1 分钟和 5 行代码来编写几乎可以满足您要求的东西。然后只需要一个小时就可以将脚本扩展到 300 行,之后它仍然几乎可以满足您的需求。wkw28资讯网——每日最新资讯28at.com

wkw28资讯网——每日最新资讯28at.com

“Python 是一种真正美妙的语言。当有人想出一个好主意时,大约需要 1 分钟和 5 行代码来编写几乎可以满足您要求的东西。然后只需要一个小时就可以将脚本扩展到 300 行,之后它仍然几乎可以满足您的需求。” - 杰克詹森wkw28资讯网——每日最新资讯28at.com

1. 打印N次字符串

你可能使用循环来打印 N 次字符串。但我将向你展示了:在一小行代码中打印 N 次字符串的优美方法。wkw28资讯网——每日最新资讯28at.com

string = "Python "ntimes = string * 3print(ntimes) # Python Python Python

2. 函数多值返回

有时候函数需要返回多个值,我们可以用下面的方式来实现:wkw28资讯网——每日最新资讯28at.com

def MultiReturn():    return 1,2,3a, b, c = MultiReturn()print(a,b,c) # 1 2 3

3. 导入模块的文件路径

你知道我们可以在 Python 中获取任何导入模块的文件路径吗?当你需要知道模块的路径时,这是一个了不起的功能。查看以下代码示例:wkw28资讯网——每日最新资讯28at.com

import osimport jsonprint(os) # <module 'os' from '/usr/lib/python3.6/os.py'>print(json) # <module 'json' from '/usr/lib/python3.6/json/__init__.py'>

4. 快速反转字符串

要看懂下面代码,你可能要深入了解 Python 切片操作。wkw28资讯网——每日最新资讯28at.com

string = "Python"print(string[::-1]) # nohtyP

语法:string[start:end:stop]wkw28资讯网——每日最新资讯28at.com

  • start: 开始位置,默认为 0
  • end: 结束位置,默认为字符串长度
  • stop: 参数可以省略,默认为 1, 可以为负数,表示倒序。

5. 多变量赋值

许多其他语言 C++、Java、JavaScript 只允许对变量进行一次赋值。但是 Python 允许你执行多个分配,这在不同情况下非常有用。wkw28资讯网——每日最新资讯28at.com

a, b = 1, 2print(a,b) # 1 2

6. 去重

python 中,你不再需要循环来从列表中删除重复项,你可以使用内置函数以快速简便的方式完成此操作。看看下面的代码。wkw28资讯网——每日最新资讯28at.com

lst1 = [1, 3, 3, 4, 5, 1]lst2 = ["A", "A", "B", "C", "D", "D"]print(set(lst1)) # {1, 3, 4, 5}print(set(lst2)) # {'A', 'B', 'C', 'D'}

7. 格式化字符串

你通常使用 + 一元运算符来格式化字符串。简而言之,当想将变量与字符串附加在一起时,可以使用一元运算符 + 。但我将向你展示如何以简单快捷的方式进行这种格式化。wkw28资讯网——每日最新资讯28at.com

name = "John"age = 23# method 1print("My name is " + name + " and I am " + str(age)) # My name is John and I am 23# method 2print("My name is {0} and I am {1}".format(name, age)) # My name is John and I am 23# method 3print(f"My name is {name} and I am {age}") # My name is John and I am 23

8. 初始化变量

你可以在 Python 中初始化空容器。简而言之,可以在不分配值或填充它们的情况下声明数据结构。wkw28资讯网——每日最新资讯28at.com

lst = [] # 初始化一个空列表dct = {} # 初始化一个空字典tpl = () # 初始化一个空元组set = set() # 初始化一个空集合

9. 你的python对象占内存么?

你知道Python内置模块sys可以告诉你一个对象在python中消耗了多少内存吗?wkw28资讯网——每日最新资讯28at.com

import sysprint(sys.getsizeof(1)) # 28print(sys.getsizeof(1.0)) # 24print(sys.getsizeof(True)) # 1print(sys.getsizeof(None)) # 1print(sys.getsizeof("Hello")) # 56print(sys.getsizeof([])) # 40print(sys.getsizeof(())) # 40print(sys.getsizeof({})) # 40print(sys.getsizeof(set())) # 40

10. 反转列表

参照本文第4条,反转字符串。wkw28资讯网——每日最新资讯28at.com

lst = [1, 3, 3, 4, 5, 1]print(lst[::-1]) # [1, 5, 4, 3, 3, 1]

11. 反转字典

我将分享一个示例代码来反转字典。简而言之,键和值将交换它们的位置。wkw28资讯网——每日最新资讯28at.com

dict = {'x' : 1, 'y' : 2, 'z' : 3}new_dict = { value : key  for key , value in dict.items()}print(new_dict) # {1: 'x', 2: 'y', 3: 'z'}## 尝试下下面代码,有惊喜dict = {'x' : 1, 'y' : 2, 'z' : 2}new_dict = { value : key  for key , value in dict.items()}print(new_dict) # {1: 'x', 2: 'z'}

12. 更高级的多变量赋值

本文前面,我们已经学会了如何完成多变量复制。在这个技巧中,我们将学习多变量复制的高级方法。wkw28资讯网——每日最新资讯28at.com

a, *b, c, d = 3, 4, 5, 6, 7print(a) # 3print(b) # [4, 5]print(c) # 6print(d) # 7## ⚠️ 尝试下下面代码a, *b, c= 3, 4, 5, 6, 7print(a) # 3print(b) # [4, 5, 6]print(c) # 7

13. 连接列表中的字符串

您可能使用循环来迭代列表并将列表的每个项连接在一起。但是需要很多行代码才能完成。此时可用join()方法以快速简便的方式完成此操作。wkw28资讯网——每日最新资讯28at.com

lst = ['a', 'b', 'c']print(''.join(lst)) # abc

14. 合并字典

dict1 = {'a' : 1, 'b' : 2}dict2 = {'c' : 3, 'd' : 4}dict3 = {**dict1, **dict2}print(dict3) # {'a': 1, 'b': 2, 'c': 3, 'd': 4}

15. Python递归次数有限制么?

当使用递归函数时, Python其实已将默认将递归限制设置为1000,但可以通过如下代码修改其限制:wkw28资讯网——每日最新资讯28at.com

import syscurrent_recursion_limit = sys.getrecursionlimit()print(current_recursion_limit) # 1000set_limit = sys.setrecursionlimit(2000)print(set_limit) # 2000

16. 如何挑出后缀是 xls或者 xlsx 的文件?

你可能已经使用过 startwith 和 endwith 方法来搜索字符串中的前缀或者后缀。但是你不一定知道他们可以使用多个条件。wkw28资讯网——每日最新资讯28at.com

string1 = 'abc.xls'# method 1if string1.endswith('.xls') or string1.endswith('.xlsx'):    print('Yes')# method 2if string1.endswith(('.xls','.xlsx')):    print('Yes')

17. 学会用 in 代替多个 if 语句

a = [1, 2, 3]x = 1# method 1if a[0] == x or a[1] == x or a[2] == x:    print('Number X is present in the list')# method 2if x in a:    print('Number X is present in the list')

小节

上面分享的17个提供python的技巧,希望对你有所帮助!wkw28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-52166-0.html17个提升Python的编码技巧,从此键盘飞起

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 事半功倍的十个Python内置函数

下一篇: 十个提高Python水平的高级知识点

标签:
  • 热门焦点
  • K60 Pro官方停产 第三方瞬间涨价

    虽然没有官方宣布,但Redmi的一些高管也已经透露了,Redmi K60 Pro已经停产且不会补货,这一切都是为了即将到来的K60 Ultra铺路,属于厂家的正常操作。但有意思的是该机在停产之后
  • 5月安卓手机好评榜:魅族20 Pro夺冠

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年5月1日至5月31日,仅限国内市场。第一名:魅族20 Pro好评率:97.50%不得不感慨魅族老品牌还
  • 学习JavaScript的10个理由...

    作者 | Simplilearn编译 | 王瑞平当你决心学习一门语言的时候,很难选择到底应该学习哪一门,常用的语言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 一篇文章带你了解 CSS 属性选择器

    属性选择器对带有指定属性的 HTML 元素设置样式。可以为拥有指定属性的 HTML 元素设置样式,而不仅限于 class 和 id 属性。一、了解属性选择器CSS属性选择器提供了一种简单而
  • 得物宠物生意「狂飙」,发力“它经济”

    作者|花花小萌主近日,得物宣布正式上线宠物鉴别,通过得物App内的&ldquo;在线鉴别&rdquo;,可找到鉴别宠物的选项。通过上传自家宠物的部位细节,就能收获拥有专业资质认证的得物鉴
  • 网传小米汽车开始筛选交付中心 建筑面积不低于3000平方米

    7月7日消息,近日有微博网友@长三角行健者爆料称,据经销商集团反馈,小米汽车目前已经开始了交付中心的筛选工作,要求候选场地至少有120个车位,建筑不能低
  • 自研Exynos回归!三星Galaxy S24系列将提供Exynos和骁龙双版本

    年初,全新的三星Galaxy S23系列发布,包含Galaxy S23、Galaxy S23+和Galaxy S23 Ultra三个版本,全系搭载超频版骁龙8 Gen 2,虽同样采用台积电4nm工艺制
  • OPPO K11搭载长寿版100W超级闪充:26分钟充满100%

    据此前官方宣布,OPPO将于7月25日也就是今天下午14:30举办新品发布会,届时全新的OPPO K11将正式与大家见面,将主打旗舰影像,和同档位竞品相比,其最大的卖
  • 朋友圈可以修改可见范围了 苹果用户可率先体验

    近日,iOS用户迎来微信8.0.27正式版更新,除了可更换二维码背景外,还新增了多项实用功能。在新版微信中,朋友圈终于可以修改可见范围,简单来说就是已发布的朋友圈
Top