21 、a = 1,2,3
逗号分隔的变量会默认组成元组,元组会根据等号左边变量的个数来进行赋值。
>>> a = 1,2,3 >>> a (1, 2, 3)
22 、a,b = 1,2
元组可以通过元素对应的位置来进行一一赋值,由此而带来的便利就是可以更快速地交换两个变量的值。
>>> a,b = 1,2 >>> print(a,b) 1 2 >>> b,a = a,b >>> print(a,b) 2 1
23、 print(f"a={a}")
在python中,字符串前面可有四种前缀,其中f代表字符串格式化,即format,在f字符串中,大括号内部会自动转换为变量。
>>> print(f"a={a}") a=2
24 、a = False if a==2 else True
在Python中,False和True为bool型的两个值。
在python中,可通过if...else构成三元表达式,上式可等价为响应的C语言a = a==2 ? 0 : 1。
>>> a = False if a==2 else True >>> a False
25、 x = [i for i in range(10)]
在python中,可通过for循环来创建元组、列表以及字典。
>>> x = [i for i in range(10)] >>> x [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
26-30 、函数封装
def fac(n): if n == 0: return 1 else: return n*fac(n-1)
这是一个阶乘函数。在pyhton中,代码块以空格的形式存在。
31、 conda activate
anaconda内置了Python中许多科学计算模块,用了之后非常省心,而anaconda中默认提供了conda环境,通过conda activate可激活基础Python环境。
32、 conda create -n py311 python=3.11
此为conda创建python环境的语句,create -n表示创建一个新的环境,py311为新环境的名字,python=3.11表示新环境的python版本为3.11。
33、 jupyter notebook
这行代码用于开启jupyter notebook服务,jupyter notebook是一个交互式笔记本,可以像写文档一样敲代码。
34 、for i,x in enumerate(xs): print(i,x)
enumerate可以逐次返回由列表索引和元素构成的元组,效果如下
>>> xs = np.arange(5) >>> for i,x in enumerate(xs) : print(i,x) ... 0 0 1 1 2 2 3 3 4 4
35、 [*a,*b]
*可以取出列表中的元素,所以[*a,*b]可以起到合并列表的作用。
>>> a = [1,2,3] >>> b = [4,5,6] >>> [*a,*b] [1, 2, 3, 4, 5, 6]
但星号索引的用途不止于此,在函数传参时也有意想不到的后果
>>> addd = lambda a,b,c : a+b+c >>> addd(*a) 6
36、 {**a,**b}
双星号可以取出字典中的元素,实现字典合并的功能。
>>> a = {"b":1,"c":2} >>> b = {"d":3,"e":4} >>> {**a,**b} {'b': 1, 'c': 2, 'd': 3, 'e': 4}
同样,双星号索引的用途也不止于此
>>> addd(3,**a) 6
37 、s == s[::-1]
在python中,对列表或者字符串采用:进行索引,例如a:b指的是从a到b的数据;当采用双引号::时,引号间的值的意义就发生了变化,例如a:b:c表示从a到b,间隔为c的数据。
据此,可以得到::-1表示将字符串颠倒过来,据此可以判断一个字符串是否为回文结构。
38、 for i,j in zip(xs, ys): print(i,j)
zip可以像拉链一样将数组中对应的值缝合起来,根据这个特性,可以达到同步打印xs, ys中元素的效果
>>> xs = np.arange(5) >>> ys = np.arange(5,0,-1) >>> for i,j in zip(xs, ys): print(i,j) ... 0 5 1 4 2 3 3 2 4 1
39、 for i,j in product(xs, ys):print(i,j)
product是itertools中的迭代工具,可以实现xs和ys中元素的排列组合,上面这行代码的等价形式为
for i in xs: for j in ys: print(i,j)
效果为
>>> from itertools import product >>> for i,j in product(xs, ys):print(i,j) ... 0 5 0 4 0 3 0 2 0 1 # 太长就不粘贴了
40 、fac = lambda n : 1 if n==0 else n*fac(n-1)
这同样是一个阶乘算法,与26-30表示的是同一个函数。此即lambda表达式,可以更加方便地创建函数。
原文链接:https://blog.csdn.net/m0_37816922/article/details/128782298
如果觉得博客文章对您有帮助,异或土豪有钱任性,可以通过以下扫码向我捐助。也可以动动手指,帮我分享和传播。您的肯定,是我不懈努力的动力!感谢各位亲~