example06.py 938 B

12345678910111213141516171819202122232425
  1. # 一行代码实现求阶乘函数
  2. fac = lambda x: __import__('functools').reduce(int.__mul__, range(1, x + 1), 1)
  3. print(fac(5))
  4. # 一行代码实现求最大公约数函数
  5. gcd = lambda x, y: y % x and gcd(y % x, x) or x
  6. print(gcd(15, 27))
  7. # 一行代码实现判断素数的函数
  8. is_prime = lambda x: x > 1 and not [f for f in range(2, int(x ** 0.5) + 1) if x % f == 0]
  9. for num in range(2, 100):
  10. if is_prime(num):
  11. print(num, end=' ')
  12. print()
  13. # 一行代码实现快速排序
  14. quick_sort = lambda items: len(items) and quick_sort([x for x in items[1:] if x < items[0]]) \
  15. + [items[0]] + quick_sort([x for x in items[1:] if x > items[0]]) \
  16. or items
  17. items = [57, 12, 35, 68, 99, 81, 70, 22]
  18. print(quick_sort(items))
  19. # 生成FizzBuzz列表
  20. # 1 2 Fizz 4 Buzz 6 ... 14 ... FizzBuzz 16 ... 100
  21. print(['Fizz'[x % 3 * 4:] + 'Buzz'[x % 5 * 4:] or x for x in range(1, 101)])