显示“Python之禅”
import this
打开漫画网站
import antigravity
说明:这个和上面那个
import this
应该算是Python中的彩蛋。
定义求阶乘的函数
fac = lambda x: __import__('functools').reduce(int.__mul__, range(1, x + 1), 1)
提示:归约函数reduce
在Python 2中是一个内置函数;Python 3将这个函数放在了functools
模块下,需要先导入再使用。如果希望一行内实现模块导入和函数调用,可以写成__import__('functools').reduce()
。
定义求最大公约数的函数
gcd = lambda x, y: y % x and gcd(y % x, x) or x
或
gcd = lambda x, y: gcd(y % x, x) if y % x else x
倒转一个字符串
s[::-1]
提示:划个重点,上面两段内容在Python面试中经常会被问到哟!
交换两个变量的值
a, b = b, a
定义判断素数的函数
is_prime = lambda x: x > 1 and all(map(lambda f: x % f, range(2, int(x ** 0.5) + 1)))
或者
is_prime = lambda x: x > 1 and not [f for f in range(2, int(x ** 0.5) + 1) if x % f == 0]
生成FizzBuzz列表
说明:所谓“FizzBuzz列表”是指一个列表中有1到100的数字,将3的倍数换成“Fizz”,5的倍数换成“Buzz”,15的倍数换成“FizzBuzz”。这个题目在面试中还经常出现哦,主要想考察生成式的应用。
['Fizz'[x % 3 * 4:] + 'Buzz'[x % 5 * 4:] or x for x in range(1, 101)]
输出乘法口诀表
print('n'.join(['t'.join([f'{x}*{y}={x*y}' for y in range(1, x + 1)]) for x in range(1, 10)]))
定义快速排序的函数
quick_sort = lambda items: items if not items else quick_sort([x for x in items[1:] if x < items[0]]) + [items[0]] + quick_sort([x for x in items[1:] if x > items[0]])
或者
quick_sort = lambda items: len(items) and quick_sort([x for x in items[1:] if x < items[0]]) + [items[0]] + quick_sort([x for x in items[1:] if x > items[0]]) or items
今天暂时就想到这么多,如果大家点赞支持,或许我会想到更多。