函数的定义

Posted startingpoint-fly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数的定义相关的知识,希望对你有一定的参考价值。

一、简单函数的结构

def greet_user():

  ‘‘‘问候用户‘‘‘

  print(Hello,John!")

greet_user()

执行结果:

技术图片

 

二、向函数传递信息

def greet_user(username):

  ‘‘‘问候用户‘‘‘

  print(‘’Hello!"+username)

greet_user(‘jack‘)

 执行结果:

技术图片

三、多种参数的情况

1、位置实参:基于实参的顺序

eg :

def greet_user(username,city):
‘‘‘问候用户‘‘‘
print("Hello "+username)
print("He lived in "+city)

greet_user(‘jack‘,‘shanxi‘)
执行结果:
技术图片

2、关键字实参

def greet_user(username,city):
‘‘‘问候用户‘‘‘
print("Hello "+username)
print("He lived in "+city)

greet_user(city=‘shanxi‘,username=‘zhangsan‘)
执行结果:
技术图片
3、默认值
def greet_user(username,city=‘shanghai‘):
‘‘‘问候用户‘‘‘
print("Hello "+username)
print("He lived in "+city)

greet_user(‘zhangsan‘)
执行结果:
技术图片

四、函数返回值

def greet_user(first_name,last_name):
‘‘‘问候用户‘‘‘
full_name = first_name+‘ ‘+last_name
return full_name
username = greet_user(‘zhang‘,‘san‘)
print(username)
注:调用返回值函数时,需要提供一个变量来存储返回的值。
执行结果:

技术图片

五、让实参变成可选
def greet_user(first_name,last_name,middle_name=‘‘):
‘‘‘问候用户‘‘‘
if middle_name:
full_name = first_name + ‘ ‘+ middle_name +‘ ‘+ last_name
else:
full_name = first_name +‘ ‘ + last_name
return full_name
username = greet_user(‘zhang‘,‘san‘)
print(username)
username = greet_user(‘li‘,‘pang‘,‘san‘)
print(username)
注:实参可选时可以给它一个默认空值-空字符串,放在末尾。
执行结果:

技术图片

六、返回一个字典
def greet_user(first_name,last_name):
‘‘‘返回用户信息‘‘‘
person = {‘first‘:first_name,‘last‘:last_name}
return person
person_message = greet_user(‘zhang‘,‘san‘)
print(person_message)
执行结果:

技术图片

 七、返回的字典接受可选值

def greet_user(first_name,last_name,age=‘‘):
‘‘‘返回用户信息‘‘‘
person = {‘first‘:first_name,‘last‘:last_name}
if age:
person[‘age‘] = age
return person
person_message = greet_user(‘zhang‘,‘san‘,26)
print(person_message)

执行结果:
技术图片

 

八、while循环和函数相结合

def greet_user(first_name,last_name):
‘‘‘返回用户信息‘‘‘
full_name = first_name + last_name
return full_name
while True:
f_name = input("请输入姓氏:按‘q’退出:")
if f_name == ‘q‘:
break
l_name = input("请输入名字:按‘q‘退出:")
if l_name == ‘q‘:
break
person_message = greet_user(f_name,l_name)
print("Hello, "+person_message)

执行结果:

技术图片

九、向函数传递列表

def greet_user(username):
‘‘‘循环问候存在列表中的每一位用户‘‘‘
for user in username:
msg = "Hello,"+ user.title()
print(msg)
user_name = [‘zhangsan‘,‘lili‘,‘lucy‘]
greet_user(user_name)

执行结果:

技术图片

 

十、在函数中修改列表

def show_magicians(names):
"""显示魔术师列表信息"""
for magician in magicians:
print(magician)


def make_great(names):
"""修改魔术师列表,在每个名字前加The great """
length = len(magicians)
for i in range(1,length+1):
magicians[i-1]=‘the great ‘+magicians[i-1]
magicians = [‘liuqian‘,‘zhangsan‘,‘lisi‘]
make_great(magicians)
show_magicians(magicians)
执行结果:

技术图片

十一、传递任意数量的实参。函数名(括号里的形参加*

def sandwich_toppings(*toppings):
"""显示顾客点的三明治的食材"""
print("Your sandwich with :")
for topping in toppings:
print(topping)
sandwich_toppings(‘hot dog‘)
sandwich_toppings(‘vegetable‘,‘fish‘,‘meal‘)
sandwich_toppings(‘onions‘,‘pepper chili‘)

执行结果:

技术图片

 

十二、结合使用位置实参和任意数量实参(要让函数接受不同类型的实参,必须在函数定义中将接纳任意数量实参的形参放在最后。Python先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个形参中)

 

def sandwich_toppings(size,*toppings):
"""显示顾客点的三明治的食材"""
print("Your " + str(size) + "-sandwich with :")
for topping in toppings:
print(topping)
sandwich_toppings(7,‘hot dog‘)
sandwich_toppings(5,‘vegetable‘,‘fish‘,‘meal‘)
sandwich_toppings(8,‘onions‘,‘pepper chili‘)

 执行结果:

技术图片

十三、使用任意数量的关键字实参。(函数名括号里跟两个*号,将参数以键-值对的形式封装到字典中


def build_profile(first_name,last_name,**info):
"""显示用户的一切信息"""
profile = {}
profile[‘first_name‘] = first_name
profile[‘last_name‘] = last_name
for key,value in info.items():
profile[key] = value
return profile
user_info = build_profile(‘jiang‘,‘yun‘,city=‘xian‘,sex=‘girl‘)
print(user_info)
执行结果:

技术图片

十四、导入模块

1、导入整个模块

import  modle_name

调用函数:modle_name.function_name()

2、调用特定的函数,多个函数时用逗号分隔

from modle_name import function_name1,function_name2

调用函数时无需使用句点加上模块名称:fuction_name()

3、使用as给函数指定别名

from modle_name import function_name  as  别名

调用函数:别名()

4、使用as给模块指定别名

import modle_name as 别名

调用函数:别名.fuction_name()

5、导入模块中所有的函数

from modle_name import *

十五、函数的实参和形参编写规则

如果有默认值或关键字形参,注意等号两边不要有空格。 




 











以上是关于函数的定义的主要内容,如果未能解决你的问题,请参考以下文章

php 一个自定义的try..catch包装器代码片段,用于执行模型函数,使其成为一个单行函数调用

2C++ 的升级

inline内联函数

nodejs常用代码片段

仅在一个片段中隐藏状态栏并在其他片段中显示

VSCode自定义代码片段——CSS选择器