Lumos学习python第三课:函数的理解与使用

一、翠花,先上道题

题目:最后一个单词的长度

给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。

单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。

示例 1:

输入:s = "Hello World"
输出:5
解释:最后一个单词是“World”,长度为5。

示例 2:

输入:s = "   fly me   to   the moon  "
输出:4
解释:最后一个单词是“moon”,长度为4。

示例 3:

输入:s = "luffy is still joyboy"
输出:6
解释:最后一个单词是长度为6的“joyboy”。

提示:

  • 1 <= s.length <= 104
  • s 仅有英文字母和空格 ' ' 组成
  • s 中至少存在一个单词
class Solution:
    def lengthOfLastWord(self, s: str) -> int: #类成员函数
        s = s.split()  #split() 通过指定分隔符对字符串进行切片,不指定次数即默认切割所有
        n = len(s)     #切割后数组的长度
        return len(s[n-1])  #返回最后一个单词的长度

为了让入门者可读性强一些,所以拆解了好几行代码,其实一行就ok。最主要发挥作用的是函数split()。

重点介绍下split()函数:

split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串。它是按指定的分隔符,把一个字符串分隔成指定数目的子字符串,然后把它们放入一个列表中,其中每个单词都是一个列表项。

string.split(str, max)

split()有两个参数,第一个参数是分隔符,如果不指定,则默认以空格、换行、制表符为分隔符,第二个参数为分隔次数,如果不指定,则根据字符串中有多少个分隔符,就分隔多少次。

p.s.关于题解的第一、二行为什么这样写后续也会给出解释,大家莫着急哈~

二、函数的定义及调用

1.定义

通俗讲是一种实现方法。函数是一种在程序中封装一段特定功能代码的方式,可以重复使用,提高了代码的可读性和重用性。在Python编程中,函数调用是一种重要的操作,它允许我们在程序中执行特定的功能,并在需要时多次调用,提高代码的重用性和可读性。

2.结构
def function_name(parameters):  #function_name是函数的名称,parameters是函数的参数
function boy 				 #函数功能主体
return value  				#表示函数返回的值
3.参数的传递方式
  • 位置参数:按照参数的位置依次传递参数值
  • 关键字参数:根据参数的名称来传递参数值,可以自由组合顺序。
4.函数的调用

函数名()必备参数

三、成员函数和构造函数

1.成员函数

接下来解答题解中的那个函数,怎么长得和我们刚刚讲述的函数不太一样?首先呢,我用的刷题网站是力扣,他们将每道题的判题方式都标准化了,可以理解是他们自己做的一个函数模板,测试的时候会方便些;然后我们讲一下成员函数

Python中的成员函数是在类中定义的函数,它可以访问和操作类的成员变量和其他成员函数。成员函数通常用于实现类的行为和功能。在Python中,成员函数的定义使用关键字def,并且第一个参数通常是self,表示对象自身,自己人。通过这个参数,成员函数可以访问类的属性和方法。通俗点说,成员函数可以自己调用自己的,有种层层嵌套的感觉。

举个栗子:


class MyClass:
    def __init__(self,value): #此为构造函数,后续介绍
        self.value = value
    def display(self):
        print(self.value)
    def printf(self):
        print(self.multiply(5))      
    def multiply(self,num):
        result = self.value * num
        return result
obj = MyClass(2)
obj.display()
obj.printf()

上述代码定义了一个名为MyClass 的类,其中包含了四个成员函数 。在printf()中,我们调用了multiply()函数 。在display()中,我们使用self.value引用类的属性value。前者属于调用函数,后者属于调用变量。

2.构造函数

在上面的例子,大家又会发现一个特殊函数__init__,what is 构造函数?

构造函数实际上就是程序的初始化方法。比如一开始我们创建一个类,这个类下面有一些函数,函数对对象做了一系列的操作,有些操作是必要并且重复的,这些东西就可以写进构造函数中。

构造函数命名为__init__,不同于普通方法的地方在于:在对象创建后自动调用它们。所以在上述例子中我们可以发现,主函数和普通函数都没有调用__init__,但都可以使用其中的变量value,这就是自动调用,减少代码冗余。

四、体会与感悟

以前在学校做报告的时候,一直觉得体会与感悟这part没什么太大意义,就是鬼扯几句,应付下差事而已......但随着年纪的增长,发现体会与感悟不仅仅是每次学习的复盘,也是潜移默化成长的体现(文笔的成熟,价值的飙升哈哈)。

这节课可以让大家浅浅体会下Python函数的强大,封装一个函数,你就可以在程序中多次调用这个函数,换句话说,可以不必重复编写好几次这个函数。这样做不仅可以减少代码量,还可以提高代码的可维护性和可读性。我们训练量慢慢增,希望我们对待学习不要囫囵吞枣,而且应勤加思考而不是一味地追求答案,培养自己解决问题的能力比解决问题本身更重要!共勉~

  • 17
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值