|
|
|
|
移动端

Python能做的5件有趣的事情,你做过几个?

现在Python越来越受程序员欢迎了,程序员用Python可以做哪些有趣的事情呢?下面作者就给小伙伴们介绍一下Python编程的5件趣事。

作者:W3Cschool来源:今日头条|2018-05-07 15:32

【新品产上线啦】51CTO播客,随时随地,碎片化学习

现在Python越来越受程序员欢迎了,程序员用Python可以做哪些有趣的事情呢?

下面w3cschool就给小伙伴们介绍一下Python编程的5件趣事:

0.for-else用法

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

Python能做的5件有趣的事情,你做过几个?

1.or的用法

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

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

  1. value = value or {}  
  2. # 相当于  
  3. value = value if value else {} 

Python能做的5件有趣的事情,你做过几个?

2.and的用法

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

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

举一个例子

  1. def not_empty(a):  
  2. return a and a.strip()  
  3. not_empty(' a ' 
  4. # 值为 'a'  
  5. not_empty(None)  
  6. # 不会报错(如果 return a.strip() 就会报错)  
  7. # 在处理None的问题上相当于  
  8. def not_empty(a):  
  9. if a is None:  
  10. return None  
  11. else 
  12. return a.strip()  

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

or 是结果如果不满意有个善后工作

and是要做一件事之前先检验一下,不能做就不让它做。

Python能做的5件有趣的事情,你做过几个?

3.单行if-else 

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

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

  1. # 一般是这样  
  2. a = (i for i in range(10))  
  3. sum(a)  
  4. # 我们可以这样  
  5. sum((i for i in range(10)))  
  6. # 但我们还可以这样  
  7. sum(i for i in range(10))  
  8. # 类似的有  
  9. ' '.join(str(i) for i in range(10))  

python有趣的解包用法

python中的解包可以这样理解:一个list是一个整体,想把list中每个元素当成一个个个体剥离出来,这个过程就是解包,我们来看下面这些例子。

1.将list中每个元素赋值给一个变量

  1. >>> name, age, date = ['Bob', 20, '2018-1-1' 
  2. >>> name  
  3. 'Bob'  
  4. >>> age  
  5. 20  
  6. >>> date  
  7. '2018-1-1'  

2.可迭代对象都可以这样做

  1. # 列表  
  2. >>> a,b,c = ['a''b''c' 
  3. >>> a  
  4. 'a'  
  5. >>> a,b,c = enumerate(['a''b''c'])  
  6. >>> a  
  7. (0, 'a' 
  8. # 元组  
  9. >>> a,b,c = ('a''b''c' 
  10. >>> a  
  11. 'a'  
  12. # 字典  
  13. >>> a,b,c = {'a':1, 'b':2, 'c':3}  
  14. >>> a  
  15. 'a'  
  16. >>> a,b,c = {'a':1, 'b':2, 'c':3}.items()  
  17. >>> a  
  18. ('a', 1)  
  19. # 字符串  
  20. >>> a,b,c = 'abc'  
  21. >>> a  
  22. 'a'  
  23. # 生成器  
  24. >>> a,b,c = (x + 1 for x in range(3))  
  25. >>> a  
  26.  

如果可迭代对象包含的元素和前面待赋值变量数量不一致,则会报错。但是可以通过*来表示多个元素

Python能做的5件有趣的事情,你做过几个?

3.星号的使用

比如我们要计算平均分,去除最高分和最低分,除了用切片,还可以用解包的方式获得中间的数值

  1. >>> first, *new, last = [94, 85, 73, 46]  
  2. >>> new  
  3. [85, 73]  

用*来表示多个数值

你用python做过什么有趣的事情?

【编辑推荐】

  1. 谷歌开源 Swift for TensorFlow:我们是不是终于可以放下Python了?
  2. Golang VS Python:谁更优秀
  3. TIOBE 5 月编程语言榜: C 语言再度暴涨,Scala 成功上位
  4. R 和 Python 大神携手:让使用不同语言的人更轻松协作
  5. 用Python写一个小白也能懂的分布式知乎爬虫
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Linux命令、编辑器与Shell编程

本书是目前所能找到的最实用、最全面的Linux指南和参考手册,也是唯一一本提供以下全部内容的书籍: 更好更实用的示例覆盖了实际工作中需...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊