使用 python 写出诗一样的代码 (二)

1、回文

回文是一个数字或字符串,当它被反转时看起来是一样的。

text = 'level'
ispalindrome = text == text[::-1]
ispalindrome

> True

2、用空格分隔的整数到一个列表

lis = list(map(int, input().split()))
print(lis)

> 1 2 3 4 5 6 7 8
[1, 2, 3, 4, 5, 6, 7, 8]

3、Lambda 函数

lambda 函数是一个小型匿名函数。lambda 函数可以接受任意数量的参数,但只能有一个表达式。

# Function that returns square of any number
sqr = lambda x: x * x
sqr(10)

> 100

4、检查列表中数字的存在

num = 5
if num in [1,2,3,4,5]:
     print('present')

> present  

5、打印图案

在 Python 中,我们只需要一行代码就可以绘制出令人惊叹的图案。

n = 5
print('\n'.join('😀' * i for i in range(1, n + 1)))

>
😀
😀😀
😀😀😀
😀😀😀😀
😀😀😀😀😀  

6、查找阶乘

阶乘是一个整数和它下面所有整数的乘积。

import math
n = 6
math.factorial(n)

> 720  

7、斐波纳契数列

一组数字,其中每个数字 (斐波那契数) 是前面两个数字的和。最简单的斐波那契数列 1,1,2,3,5,8,13 等等。可以使用列表推导式和 for 循环在一个范围内创建斐波那契数列。

fibo = [0,1]
[fibo.append(fibo[-2]+fibo[-1]) for i in range(5)]
fibo

> [0, 1, 1, 2, 3, 5, 8]  

8、质数

质数是一个只能被自身和 1 整除的数。例如:2、3、5、7 等。为了在一个范围内生成质数,我们可以使用带有 filter 和 lambda 的 list 函数来生成质数。

list(filter(lambda x:all(x % y != 0 for y in range(2, x)), range(2, 13)))

> [2, 3, 5, 7, 11]  

9、查找最大数值

findmax = lambda x,y: x if x > y else y 
findmax(5,14)

> 14

or 
max(5,14)  

在上面的代码中,我们使用 lambda 函数检查比较条件,并根据返回的最大值。

或者使用 max() 内置函数。

10、线性代数

有时候我们需要将列表中的元素缩放 2 到 5 倍。下面的代码解释了如何做到这一点。

def scale(lst, x):
    return [i*x for i in lst] 


scale([2,3,4], 2)

> [4,6,8]