1.引言
我们曾经讨论过,作为程序员(别怀疑你和我都是),我们不喜欢重复性的事情,我们喜欢遵循DRY原则,但是如果我们有几行代码需要多次使用呢
2.储存和重复使用
函数,是我们储存使用代码的重要载体,下面我将介绍def函数
def something():
print('hello')
print('world')
通过简简单单的三行代码,我们将hello和world储存进了someting当中,这便是def函数的作用,在下次使用时,我们不需要再打出这两行print代码,只需要调用它(invoke),或者更口语化的“叫”它(call),def函数方便之处在于它仅仅储存而不会自动运行,它会一直在那里,等待着你
def something():
print('hello')
print('world')
something()
print('separated')
something()
#hello
#world
#separated
#hello
#world
3.def的高阶应用
a.在之前的博客中,我们有学习if、elif、else,现在让我们尝试一下将if与def融合,建立一个多语言打招呼的程序
def greet(lan, name):
if lan == 'ch':
return f'nihao, {name}'
elif lan == 'en':
return f'Hello, {name}'
else:
return f'Bonjour, {name}'
language= input('Enter language: ')
name = input('Enter your name: ')
print(greet(language, name))
在这里,我们用greet同时创建了两个变量,lan语言以及name名字,接下来,我们遇到了一个陌生的东西:return f‘x,{}’,return表示当语言等于ch时,我们返回nihao,同时运用{name}插入我们的名字,这里的f‘...’就是一个格式化字符串,允许我们在其中插入变量,最终输出nihao, xxx
b.def的用途很多,你甚至可以用def进行运算
def add(a,b):
added = a + b
return added
x = add(3,5)
print(x) #8
好的,初步编码很成功,我们成功将3和5相加,但这未免有些太笨重了,我们已经学过了input函数,现在让我们来尝试一下更加灵活的输入数字进行相加吧
def add(a,b):
added = a + b
return added
x = input('first number: ')
y = input('second number: ')
z = add(x,y)
print(z)
emmm这结果貌似不对啊,让我们来检查一下,出错的原因在于计算机将你输入的数字当成了字符str而并不是数字int或者float,我们也学过类型之间的转换,现在请你先自己试一试
def add(a,b):
added = a + b
return added
x = float(input('first number: '))
y = float(input('second number: '))
z = add(x,y)
print(z)
这样一来,好多了