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

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

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

0.for-else用法

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


1.or的用法

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

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

value = value or {}

# 相当于

value = value if value else {}


在这里还是要推荐下我自己建的Python开发学习群:483546416,群里都是学Python开发的,如果你正在学习Python ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2018最新的Python进阶资料和高级开发教程,欢迎进阶中和进想深入Python的小伙伴

2.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的差别,他们逻辑类似,但是实现的功能是不可以相互替代的

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

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


3.单行if-else

a = 1

b = 3 if a == 1 else 2

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

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

# 一般是这样

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))

python有趣的解包用法

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

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

>>> name, age, date = ['Bob', 20, '2018-1-1']

>>> name

'Bob'

>>> age

20

>>> date

'2018-1-1'

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

# 列表

>>> a,b,c = ['a', 'b', 'c']

>>> a

'a'

>>> a,b,c = enumerate(['a', 'b', 'c'])

>>> a

(0, 'a')

# 元组

>>> a,b,c = ('a', 'b', 'c')

>>> a

'a'

# 字典

>>> a,b,c = {'a':1, 'b':2, 'c':3}

>>> a

'a'

>>> a,b,c = {'a':1, 'b':2, 'c':3}.items()

>>> a

('a', 1)

# 字符串

>>> a,b,c = 'abc'

>>> a

'a'

# 生成器

>>> a,b,c = (x + 1 for x in range(3))

>>> a

1

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


3.星号的使用

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

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

>>> new

[85, 73]

用*来表示多个数值

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

猜你喜欢

转载自blog.csdn.net/qq_41597912/article/details/80152986