浙大版PTA python程序设计第六章题目及知识点分析

第六章  函数

-函数也是对象,下面程序可以正常运行吗?

def func():              #这里定义了一个名为 func 的函数,它         

 print("11",end=" ")       #在被调用时打印字符串 "11",并且在末尾不换行。

print(id(func),type(func),func)   #获取'func'的内存地址,类型,表现形式

(通常是内存地址和函数名)

分析:

会正常运行e.g.输出2352392832160 <class 'function'> <function func at 0x00000223B58A04A0>

 

函数本质上是对象,可以存储于数据结构(如列表字典)当中

函数对象,类型为 <class 'function'>

 

 

-形参和return语句都是可有可无的

分析:在Python中定义函数时,不可省略的↓

def 关键字:定义函数时必须使用 def 关键字。

函数名称:紧跟在 def 关键字之后的是函数的名称,这是必须的,用于标识函数。

参数列表:即使函数不需要参数,也必须有一对空括号 (),用于定义参数列表。

函数体:至少需要一个冒号 : 和一个缩进的代码块,即函数体,即使它是空的。

例如,一个最简单的函数定义如下:

def foo():

…

这里…是ellipsis object(省略号对象)

 

形参

在编程语言中,形参(Formal Parameter)是函数定义中用于接收传递给函数的值的变量。当函数被调用时,形参会被实际的参数(Argument)所替代,这些实际的参数是调用函数时提供的值。

 

例如,考虑以下Python函数定义:

def greet(name):

    print("Hello, " + name + "!")

在这个函数中,name 就是一个形参。当你调用这个函数并传递一个实际的参数时,比如 greet("Alice"),name 形参就会被 "Alice" 这个实际参数所替代,并且函数会输出 "Hello, Alice!"。

 


-在一个函数中如局部变量和全局变量同名,则局部变量屏蔽全局变量

例如

x = 10  # 全局变量

def my_function():
    x = 20  # 局部变量,屏蔽全局变量x
    print("Inside the function, x =", x)

my_function()  # 调用函数
print("Outside the function, x =", x)
#会输出↓
#Inside the function, x = 20
#Outside the function, x = 10

 

 

-area是tri模块中的一个函数,执行from tri import area 后,调用area函数应该使用____ 。

area()

分析:

当你使用 from tri import area 导入语句时,你直接将 area 函数从 tri 模块导入到当前的命名空间中。这意味着你可以直接使用 area() 来调用该函数,而不需要模块名称作为前缀。

 

如果我们用的是  import tri  那么调用area函数要用tri.area()例如

import tri

# 调用tri模块中的area函数

triangle_area = tri.area(base=10, height=5)

 

 

 

-函数可以改变哪种数据类型的实参?

int:整数 是不可变数据类型

string:字符串 是不可变数据类型

float:浮点数 是不可变数据类型

-list :列表是可变数据类型,函数内部可以改变原始的列表实参

 

 

-函数定义如下,程序输出是什么

def f1(a,b,c):

     print(a+b)

nums=(1,2,3)

f1(nums)

分析:

 f1 函数期望接收三个参数 a, b, c,但 f1(nums) 只传递了一个参数 nums;这里的nums相当于参数a。这会导致函数调用时参数数量不匹配(b和c没有)的错误

 

修正

def f1(a, b, c):

    print(a + b)

nums = (1, 2, 3)

f1(*nums)

会输出3

①函数参数数量匹配:函数调用时传递的参数数量必须与函数定义时的参数数量匹配。

②拆包操作:使用 * 操作符可以将一个可迭代对象解包为单独的元素并传递给函数,确保参数数量匹配。

 

 

 

-下面程序运行结果是

def fun(x1,x2,x3,**x4): 

    print(x1,x2,x3,x4)

  

fun(x1=1,x2=22,x3=333,x4=4444)

分析:在函数定义中,**x4 会将所有多余的关键字参数以字典的形式捕获到 x4 中。如果你传递一个与 x4 同名的参数,那么它会被视为一个普通参数,而不是被捕获到 **x4 中。例如:

def fun(x1, x2, x3, **kwargs):

    print(x1, x2, x3, kwargs)



fun(x1=1, x2=22, x3=333, extra=4444)

输出结果是

1 22 333 {'extra': 4444}

所以本题将输出

1 22 333 {'x4': 4444}

 

 

下列程序将输出什么

def scope():

     n=4

     m=5

     print(m,n,end=' ')

n=5

t=8

scope()

print(n,t)

分析:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值