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

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

0.for-else用法

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

python有趣小 有趣的python程序_解包

1.or的用法

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

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

1. value = value or {}

2. # 相当于

3. value = value if value else {}

python有趣小 有趣的python程序_赋值_02

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有趣小 有趣的python程序_python有趣小_03

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

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

python有趣小 有趣的python程序_python有趣小_04

3.星号的使用

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

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

2. >>> new

3. [85, 73]

用*来表示多个数值

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