文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

有趣的Python用法有哪些

2023-06-02 05:35

关注

这篇文章主要讲解了“有趣的Python用法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有趣的Python用法有哪些”吧!

有趣的用法

for-else用法

循环正常结束则执行else语句。一般用于循环找符合条件的元素,如果找到则break调出循环,不会触发else;如果没有找到(完整运行循环)则print not found

《Effictive Python》一书中对for-else用法提出了质疑,主要观点是可以通过封装成函数来取代这一用法,而封装成函数是更加通用易懂的做法,所以一般不会使用for-else用法。

try-else用法

如果没有触发异常就执行else

解包用法

类似这样a,b,c = ['a', 'b', 'c']

单行if-else

a = 1b = 3 if a == 1 else 2print('it is one' if a == 1 else 'no')

迭代器传入函数中不用加括号

# 一般是这样a = (i for i in range(10))sum(a)# 我们可以这样sum((i for i in range(10)))# 但我们还可以这样sum(i for i in range(10))# 类似的有' '.join(str(i) for i in range(10))

or的用法

python中x or y表示如果x为真就是x的值,否则为y的值

我们会经常看到类似这样的用法(比如函数的一个value参数没有设置默认值,这样使用就允许它不赋值)

value = value or {}# 相当于value = value if value else {}

and的用法

python中x and y表示如果x是假,结果就是x的值,否则就是y的值

x and y and z多个and连接时,如果全是真结果就是最后一个的值;如果中间有假的值,结果就是第一个假的值

举一个例子

def not_empty(a):    return a and a.strip()not_empty(' a ')# 值为 'a'not_empty(None)# 不会报错(如果 return a.strip() 就会报错)# 在处理None的问题上相当于def not_empty(a):    if a is None:        return None    else:        return a.strip()

细细品味and和or的差别,他们逻辑类似,但是实现的功能是不可以相互替代的

if value:

# 要用if value:# 不要用if value == True:

这里总结一下这种情况下什么时候是True,什么时候是False

False: 0 0.0 '' [] {} () set() None False

True:

另外要注意一点,我们用if判断一个对象是不是None的时候,要if a is None而不要直接if a,因为如果是后者,有非常多不是None的情况也会判定为False,比如空字符串、空列表等,为了精确指定None还是要用前者,这也是一种规范。

下划线的特殊使用

python中下划线是一种特殊的变量和符号,有一些特殊的用途

文档字符串

python有一种独一无二的注释方式,在包、模块、函数、类中第一句,使用'''doc'''这样三引号注释,就可以在对象中用__doc__的方式提取

比较规范的写法是这样的(这里参考grequests模块的写法)

def myfun(a, b):    '''add two numbers    :param a: one number    :param b: another number    :returns: a number    '''    print(a + b)print(myfun.__doc__)# 结果为add two numbers    :param a: one number    :param b: another number    :returns: a number

其实参数还有其他的写法,如numpy库的写法,可以看这里

除此之外,函数注释还有另一种方式,函数名可以直接调用某个参数的注释

有用的函数

sum的本质

本质:sum(iterable, start=0)将可迭代对象使用+连接

所以sum([[1,2],[3,4]], [])返回结果为[1, 2, 3, 4]

range(start, stop[, step])

可以直接用for i in range(10, 0, -1)降序循环

enumerate循环索引

for index, item in enumerate(['a', 'b', 'c']):    print(index, item)输出:0 a1 b2 c

管道操作

func1(func2(func3(a)))写成类似a %>% func3 %>% func2 %>% func1,清晰展示函数执行的顺序,增强可读性

python本身不带有这样的用法,只是一些库提供了这样的用法,比如pandas和syntax_suga

感谢各位的阅读,以上就是“有趣的Python用法有哪些”的内容了,经过本文的学习后,相信大家对有趣的Python用法有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯