Python练习:函数


题目1

如下,

def testfunc(arg1,arg2): 
    return (arg1 + arg2)

我们这样定义一个函数后,下面哪些调用方法是错误的

testfunc(1)

testfunc(1,2)

testfunc(arg1=1,arg2=2)

testfunc(arg2=2,arg1=1)

testfunc(arg1=1,2)    

testfunc(1,arg2=2)

print(testfunc(1,arg2=2))

print(testfunc(1,arg2=2)*8)

答案与解析


答案视频讲解


请大家点击此处链接,观看讲解视频

题目2

请描述一下,下面两个函数定义

def func1(num1,num2):
    return num1**2 + num2**2

def func2(num1,num2):
    print(num1**2 + num2**2)

有什么不同?

答案与解析


答案视频讲解


请大家点击此处链接,观看讲解视频


题目3

下面这段代码有什么问题?

func1(1,2)

def func1(num1,num2):
    return num1**2 + num2**2

答案与解析


答案视频讲解


请大家点击此处链接,观看讲解视频


题目4

请开发一个函数,该函数 接受两个字符串参数,

第1个参数格式如下,

他的名字是:小王

第2个参数格式如下,

他的年龄是:18

规定参数字符串中的 人名 和 年龄 都是 两个字符

我们的函数需要 获取参数中的人名和年龄,并以这样的格式 小王:18返回。

实现该函数后,请调用 该函数,依次传入下面的参数。

他的名字是:关羽
他的年龄是:28
他的名字是:赵云
他的年龄是:24

调用函数传参数时,分别使用 指定参数名调用不指定参数名调用 的方式。

最后,将调用返回结果的返回值打印出来

答案与解析


答案视频讲解


请大家点击此处链接,观看讲解视频


扫码分享给朋友,一起学更有动力哦
























题目1-答案

如下,

def testfunc(arg1,arg2): 
    return (arg1 + arg2)

我们这样定义一个函数后,下面哪些调用方法是错误的

testfunc(1)     
# 错,必填参数arg2 缺少

testfunc(1,2)   
# 对

testfunc(arg1=1,arg2=2) 
# 对,可以指定参数名传值

testfunc(arg2=2,arg1=1) 
# 对,指定参数名时,次序可以颠倒

testfunc(arg1=1,2) 
# 错,一旦指定参数名,后面的参数都要指定参数名

testfunc(1,arg2=2) 
# 对

print(testfunc(1,arg2=2))   
# 对, 函数调用的返回值可以不用赋值给变量,
# 直接为作为另一个函数的参数

print(testfunc(1,arg2=2)*8)
# 对, 函数调用的返回值可以不用赋值给变量,
# 直接用在表达式中


题目2-答案

请描述一下,下面两个函数定义

def func1(num1,num2):
    return num1**2 + num2**2

def func2(num1,num2):
    print(num1**2 + num2**2)

有什么不同?

答: 前者是 计算结果作为返回值返回, 后者 只是打印出计算结果,返回值为None


题目3-答案

答: 函数必须先定义再调用, 不能先调用再定义。


题目4-答案

函数定义如下

# 有两个参数
def getNameAge(str1, str2):
    # 用切片获取第1个参数的人名
    name = str1[-2:]

    # 用切片获取第2个参数的 年龄
    age = str2[-2:]

    # 将人名和 年龄连起来,中间是冒号

    ret = name + ':' + age

    # 别忘了, 最后一定要使用return 返回结果
    return ret

# 不指定参数名的调用
name_age1 = getNameAge('他的名字是:关羽','他的年龄是:28')
# 打印出返回结果
print(name_age1)


# 指定参数名的调用
name_age2 = getNameAge(str1='他的名字是:赵云',str2='他的年龄是:24')
# 打印出返回结果
print(name_age2)