python可以做什么有意义的事情_Python能做的5件有趣的事情,你做过几个?

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

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

0.for-else用法

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

6c7d45861b12b07728f1f7af97785632.png

1.or的用法

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

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

1. value = value or {}

2. # 相当于

3. value = value if value else {}

73e93c9c569e67755e7e3c1f8618492e.png

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是要做一件事之前先检验一下,不能做就不让它做。

489e0971b4c15a9ef18591d6763eabac.png

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. 1

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

76de16e012d1a1ca9dcd147ab6572a46.png

3.星号的使用

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

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

2. >>> new

3. [85, 73]

用*来表示多个数值

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值