Python从入门到入土的90行代码之基础晋级

Python   2023-03-10 07:16   622   0  

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


博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。
闲言碎语
可能改变你人生走向的十个人事:1.一个无法选择的家庭出身;2.儿时陪伴在你身边最长的人;3.读书时你敬重的老师;4.高考后选择的学校和专业;5.工作时留在的城市;6.离开最喜欢或最不喜欢的工作;7.刻骨铭心的一段恋爱;8.所选择的人生伴侣;9.无法选择的子女;10.偶然遇到的贵人或恶人。
赞赏支持

如果觉得博客文章对您有帮助,异或土豪有钱任性,可以通过以下扫码向我捐助。也可以动动手指,帮我分享和传播。您的肯定,是我不懈努力的动力!感谢各位亲~