30岁学编程python_30天看了250集python教程,我发现40岁学编程并不晚

今天是十一哥学python的第30天。

时间过得挺快,感觉第一篇学习心得写了还没多久,这就已经不知不觉写30篇了。

从第1集开始,看视频教程、记笔记、截图、写代码,然后写文章、配图、发帖、回复网友留言,以及在学习交流群里跟朋友们一起扯淡,已成为每天生活的一部分。

现在,终于到了250集了。

这真是个里程碑的数字,真的好记,让我感到了生活对我深深的恶意。

80cb39dbb6fd526686fbd185ed00ff2dd5073669.jpeg?token=d20c73acf48e92d5c90a67b5471be3fc

一个月学下来,我有一个最大的体会就是,好像python这东东,也没有想象的那么难嘛。

当然,有朋友也跟我说过,我现在看的都是皮毛而已,后面的沟沟坎坎还多了去了。

5d6034a85edf8db197b4da664e3bb552564e743c.jpeg?token=812db4140839e9183217e8fe590ffe88

不过对我来说,python的学习之旅是愉快的、乐在其中,而不是每天要咬紧牙关、需要打鸡血、靠意志力来学习,这就挺好的。

希望可以一直保持这种良好心态。

学习的过程中,我也不断在修正自己的学习方法。

比如,刚开始会跟自己死磕,碰到过不去的,死活要找到原因、非弄明白不可。

后来逐渐看开了。

很多时候,在当时看来百思不得其解的问题,也许没两天就讲到了,轻松加愉快的迎刃而解了。

嗯,看过我第7、8天学习经历的人,都明白我在说什么。

0ade3b64827a176b657c84328a96b36a.gif

最近的学习也是这样,之前的名片管理系统听的稀里糊涂,自己虽然又练了一遍,依然不是特别清楚。

昨天和今天学函数的内容,随着对局部变量、全局变量、返回值等概念的理解,一下子让我对名片管理系统的体会,提升了一大块。

e4dde71190ef76c6c313b650da0e95fcae5167a2.jpeg?token=9456786540a287705509da6a31d8d9ea

下面是今天的学习内容。

243集,函数参数和返回值的作用

在我们开发时,如果想把一段功能独立的代码进行封装,就可以定义一个函数。

在定义函数的时候,当函数内部需要处理外部的数据时,就可以把外部的数据,以参数的形式传递给函数,这就是参数的作用。

当函数的代码执行完成后,希望向外界汇报函数的执行结果时,就可以给函数增加一个返回值,这就是返回值的作用。

9213b07eca8065383240edfad1c5c942ac34824b.jpeg?token=76d6db35a6713429942d6d440b7f2b11

定义函数时,是否接收参数,或者是否返回结果,是根据 实际的功能需求 来决定的!

1、如果函数 内部处理的数据不确定,就可以将外界的数据以参数传递到函数内部。

2、如果希望一个函数 执行完成后,向外界汇报执行结果,就可以增加函数的返回值。

函数的返回值

244集,利用元组返回多个值

一个函数执行后返回多个结果可以利用元组。

元组可以包含多个数据,因此可以使用元组让函数一次返回多个值。

如果函数返回的类型是元组,小括号可以省略。

6c224f4a20a44623fae9096edf3a1a080cf3d7be.jpeg?token=0e67d952c1197a947dfd2855b24129d8

245集,接收返回元组函数的方式

接收返回元组,需要单独的处理处理元组中的值,可以使用元组索引,但这种方式比较不方便。

如果希望单独的处理元祖中的元素,可以使用多个变量,一次接收函数的返回结果,而不需要记住哪个索引对应哪个数据。

6d81800a19d8bc3e716a0d4ac593ce18a9d345ea.jpeg?token=d7cd59b90c028737a1f97cebfc783e4e

注意:使用多个变量接收结果时,变量的个数应该和元祖中元素的个数保持一致。

246集,交换两个变量的值

一道经典的面试题:交换两个数字。

解法1:使用其他变量,这个很好理解,没啥可说的。

c8177f3e6709c93d225f85a5d92590dad00054d5.jpeg?token=20f8f5a01f7a414bd4523a123e4cd33e

解法2:不使用其他变量

这个办法略显牛逼,明显玩的是数学,感觉属于逻辑范畴吧。

d0c8a786c9177f3e57cc17ed36d753c19e3d5670.jpeg?token=d7134547595d9c4e9c3fc660b3524d97

解法3:Python专有解法

这是隆重推荐的办法。

一行代码搞定,这个真是太秀了、太简洁了,简直爱死Python了。

尤其一开始 a,b = (b,a) 就已经很毁我三观了,然后再把 小括号也去掉,彻底服气了,简直是无言以对。

838ba61ea8d3fd1f2abb0d5b76564d1995ca5f3b.jpeg?token=b8880279da8377907a0d3c349c74bcee

提示:等号右边是一个元组,只是把 小括号 省略了。

函数的参数

247集,在函数内部针对参数赋值不会影响外部实参

在函数内部,针对参数使用赋值语句,不会修改到外部的实参变量。

关于标题这句话,不知道可不可以这样理解:外部实参可以当做全局变量,而函数内部的形参实际上是局部变量。

faedab64034f78f077cf67f03f296253b2191c8f.jpeg?token=6e39d934a9fdaad13fc99401a97d7868

29381f30e924b8990c6e8403291e75930a7bf65e.jpeg?token=b9f10d6658cc4c979e6a7e7a323fa927

上面两个图,一个传递的参数是 不可变 的数字,以及 可变 的列表,均不会影响外部实参。

只要 针对参数 使用 赋值语句,会在 函数内部 修改 局部变量的引用,不会影响到 外部变量的引用。

248集,在函数内部使用方法修改可变参数会影响外部实参

如果传递的参数是 可变类型(列表、字典),在函数内部,使用 方法 修改了数据的内容,同样会影响到外部的数据。

实质上,使用 方法 的效果就是,列表的引用没有变,但是列表中的数据变化了。

8694a4c27d1ed21b96559697eb76b5c250da3fc6.jpeg?token=f5b7ae6bb136dbf270c4897a5f21b753

249集,列表使用+=本质上是调用extend方法

又一道面试题: += 。

针对数字和字符串,+= 就是先相加、再赋值。

但是,在 Python 中, 列表变量调用 += ,本质上是在执行列表变量的 extend 方法,可以把另外一个列表的内容整合到当前列表,不会修改变量的引用。

1c950a7b02087bf48bac96b4b4cb3f2a10dfcfce.jpeg?token=69aa814d53b7ce671f725f34d7b5b7ab

个人感觉,这个 += 挺鸡肋的,对于数字和字符串来说完全是多此一举,对于列表来说,又很容易和赋值语句混淆。

缺省参数

250集,回顾列表的排序方法明确缺省参数的概念及作用

定义函数时,可以给 某个函数 指定一个默认值,具有默认值的参数就叫做缺省参数。

调用函数时,如果没有传入 缺省参数 的值,则在函数内部使用定义函数时指定的 参数默认值。

列表如果不传递排序,默认按照升序排序。

如果需要降序排序,需要执行reverse参数。

而实际使用中,升序排序要更多的。

5882b2b7d0a20cf4c7eb06c330112330acaf9956.jpeg?token=179618350599d54499c3ace80ff9c710

函数的缺省参数,将常见的值设置为参数的缺省值,从而 简化函数的调用。

上图的排序中,实际上reverse = False 为默认值,就是缺省参数。

251集,指定函数缺省参数的默认值

在参数后使用赋值语句,可以指定参数的缺省值。

也就是,在小括号内部,参数名后面,跟上一个等号,然后把默认值跟在等号后面即可。

b8014a90f603738d73064424f403d857f819ec03.jpeg?token=ec97b10b1666b601f27e2f80c929a355

提示:在指定缺省参数的默认值时,应该使用最常见的值作为默认值。如果一个参数的值 不能确定,则不应该设置默认值,具体的数值在调用函数时,由外界传递。

252集,缺省参数的注意事项

缺省参数的定义位置:必须保证 带有默认值的缺省参数 在参数列表末尾,而没有默认值的参数应该放在缺省参数的前面。

如下面的例子就是错误的:

def print_info(name,gender=True,title):

把title放到第二个位置就是正确的了。

调用带有多个缺省参数的函数:在 调用函数时,如果有 多个缺省参数,需要制定参数名,这样解释器才能够知道参数的对应关系。

9cd22bf8c3db5104b372f2ea2b30b693.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值