一起学Python | 理论篇(5) 变量和函数

人生苦短,我用Pyton!

  大家好,今天我们来学习理论篇的最后一课——变量和函数,下一节课就开始步入基础了。

image

变量

  首先讲讲变量。变量就好比一个房子,里面住着一个值,这个值有很多类型,比如数字、字符串、列表、字典。

  与一些语言(比如C)不同,Python是弱类型语言。强类型语言和弱类型语言的区别就在于:
  强类型语言的变量类型是在变量定义之初就确定了的,不可更改了,而弱类型语言的变量类型可以修改。举几个栗子:

C:
int a = 1;
a = "1"; // 报错

JAVA:
int a = 1;
a = "1"; // 报错

JAVASCRIPT:
var a = 1;
a = "1"; // 正常

PYTHON:
a = 1
a = "1" // 正常

  还有,Python的变量定义只需要使用name = value的格式就可以定义,不需要指定类型,也不需要加一个“var”。另一种定义方式是比如a = str('HelloWorld'),此时打印a就会获得一个HelloWorld,其它类型一样。

函数

  接下来讲讲函数。首先,函数就相当于几行的代码,你调用这个函数,就会执行这些代码。在Python中函数的定义为:

def function(arg):
    # Do something
    return

  我们来分析一下这些代码:
  首先,我们使用def关键字定义了一个函数function,这个函数接受一个参数arg,定义完函数后用一个半角的冒号结束这行。
  下一行用四个空格(不是一个tab)开始,第一行是一个注释,Python的注释用#开头,井号后面的内容将会被编译器忽略,不执行,可以注释这行代码的作用。
  最后一行是一个return关键字,表示返回一个值,这里是返回一个空(None)如果用变量接收,将会是一个None。如果不写这行代码,编译将会报错,因为这个函数里什么也没有(注释不算),如果你不想写return,你可以用pass来代替,也表示结束,但是不返回一个值(接收的话还是None)。

  接下来我们具体讲一下函数:
  首先,函数的调用可以是function(arg, kwarg=value),其中,function是这个函数的名字,也就是定义时def后面(前面的那个名字,arg是一个变量,在函数外叫实参,而在函数内叫形参。kwarg是一个关键字参数,也就是具体指定某一个参数为什么值。如果这个函数有return返回值,你可以用一个变量接收它,例如a = function()

  最后,我们来一个小小的测试:

'''
Test 1
(我是一个多行注释(其实就是一个多行字符串))
''' 
def test1(): # 定义一个函数test1,不接受任何参数
    return 'HelloWorld' # 返回一个字符串'HelloWorld'

>>> test1('HelloWorld')
Traceback (most recent call last):
  File "", line 1, in 
TypeError: test1() takes 0 positional arguments but 1 was given
(类型错误:test1()只需要0个参数但是给了1个)

>>> test1()
'HelloWorld'
(这里输出了返回值,因为这是在PythonShell中,如果在代码中则不会有任何输出)

>>> 1 = test1()
  File "", line 1
SyntaxError: can't assign to literal
(变量不能以数字开头!)'

>>> a = test1()
>>> print(a)
HelloWorld
(没有引号)
>>> a
'HelloWorld'
(有引号)


# Test 2
def test2(arg1, arg2, arg3=1, arg4=2): # arg3的默认值为1,arg4的默认值为2
    # arg1 = 10
    # 上面那行和这行都不会执行
    return arg1 + arg2 + arg3 + arg4

>>> test2()
Traceback (most recent call last):
  File "", line 1, in 
TypeError: test2() missing 2 required positional arguments: 'arg1'
(类型错误:test2()缺少2个需要的参数:'arg1')
(arg3和arg4有默认值,可以不填,但是arg1和arg2必填)

>>> test2(1, 1, 1, 1)
4

>>> test2(1, 1, arg4=3)
6
(指定了arg4为3,arg3则为默认值1)
(关键字参数必须放在普通参数的后面,普通的参数则会按照顺序排列填入)

'''
Python的函数是不限定返回值的
你可以在一个函数里,用几个if语句,一个返回字符串,一个返回数字,这些都是可以的。
'''

  好了,本期教程到这里就结束。。。等等,还有一件事要交代:
  我们在写代码的时候一定要遵守一个规范,也要写一些注释,这样方便自己以后查看,也方便别人查看。如果是一个团队,互相之间约定好用什么格式,如果是个人,可以用PEP8规范,但是PEP8里也有一些不太适用的,比如单行的长度。总之,规范还是要有点的。

  好了,这回真的结束了!!!

本文作者:寒枫岭
转载请注明原作者!

你可能感兴趣的:(一起学Python | 理论篇(5) 变量和函数)