(三)函数 —— 一起学python系列

前言

上一篇我们讲了一段简单代码的一部分,今天我们继续讲。 另,后续我会开一个新的公众号来专讲 python,将采用全新生动的模式来为小白零基础的同学们开启新世界的大门。欢迎关注!

变量

上节课我们讲了包的引入和类的概念。今天我们继续之前的代码往下讲。

1
    age = 10

首先我们要注意一点,这句话和后面的一大堆都是带有缩进的。也就是在 class 那句话的后面。缩进代表有缩进的部分都是上一行里面的部分,也就是这一大块都是类的内容。我们可以用空格或者 tab 来进行缩进但是一定不能混用。一般我们用 2 或 4 个空格来表示缩进。一般情况下一个 tab 等于 4 个空格。 来我们看一下这一行代码。age是一个属性,也是一个类变量。变量就是一个单词可以代表一个值的东西。类变量就是能表示类属性,在类中直接定义的变量。在 python 中是不需要定义类型的。python 只有字符串,整数和小数三种基本类型。数字和小数直接写就好,字符串要加双引号。这个之后会说。像 age 就是一个数字属性的变量。是类Hello的一个属性。我们在以后会用到这个变量。

函数

1
2
    def say_hello(self, name):
        print('hello ' + name + '!')

这段呢是一个函数,我们也可以称之为方法。数学中的函数呢是有自变量,有因变量。那么括号里的可以看作是自变量,函数如果最后有return就是会返回一个因变量。函数嘛就是来实现功能的,标准格式就是前方空一行,开头 def 加空格,然后是函数名,后面的括号里就是参数也就是自变量列表,然后跟一个冒号。下面缩进一格写函数内容,也叫函数体。在里面就是具体的实现方法啦。这里没有写很复杂的方法,就是输出了个 Hello +传入的参数 name。 这里的 print 将内容输出到屏幕上。字符串之间是可以通过加号连接的。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11

    def how_old_are_you(self, your_age):
        your_age = int(your_age)
        if your_age>self.age:
            print('你比我大哦')
        elif your_age == self.age:
            date = datetime.date.today()
            year = date.year
            print('我们一样大,都是' + str(year - self.age) + "年出生的哦")
        else:
            print("我比你大,叫哥哥!")

这个方法也是一个输出方法,但是里面涉及的内容比较多。明天我们主要讲这个方法,今天有点晚了可能讲不完,就先不讲啦,下一章我们通过这个方法认识条件语句,也叫流程控制语句。

运行程序

1
2
name = input("请输入你的姓名:")
age = input("请输入你的年龄:")

各位请看好,这两句话没有缩进哦。说明从这里开始已经不是 Hello 类中的内容啦。那么当我们运行一个 python 脚本时,就是按顺序执行的。类中的内容属于预先定义的内容,你不调用它不执行,而是从这种独立的语句开始执行的。 input 方法用于接收用户输入,并返回给等号前面的变量。这个方法是我们暂时和计算机程序交互的一个方法。通过执行了这两句话,计算机就可以收到我们输入的内容啦!

1
2
3
hello = Hello()
hello.say_hello(name)
hello.how_old_are_you(age)

在接收到我们的内容的同时,nameage两个值也就存起来了。python 把它们放到内存的某个区域中。接下来,hello = Hello()这句话就是我们上面所说的,将Hello这个类实例化,产生了hello这个对象。这里我们要注意,两个单词的大小写不同,所代表的含义也不同哦。他俩在这里是类和对象的关系,在其他地方可能没什么联系,这是人为定义的。所以大家一定要注意,在编程中大小写的要求是很严格的,千万不要混淆哦。 在实例化了Hello类生成了hello对象后,就可以通过hello这个对象来调用类中定义的方法啦。有的同学可能会问:为什么不能直接用类来调用方法呢?答案是可以。但是只是一些其中的方法。接着猫猫狗狗的例子,你可能对你家的狗狗喊道:“欢欢,过来!”它会开开心心地朝你跑过来。这里接收指令执行动作的是欢欢,也就是狗的实例,而不是狗这个分类。所以,大部分情况下,调用类方法必须先将方法实例化。

最后看一下这个程序的演示:

第一行和最后一行是系统输出不用管。中间则是我们定义好的函数和输入输出的方法。系统先让我们输入了姓名和年龄,然后实例化了Hello类,最终执行了其中的say_hellohow_old_are_you方法,输出了这两句话!

演示