python:函数,传参,调用

本文详细探讨了Python编程中的函数定义、参数传递机制和函数调用方式。通过实例解析了位置参数、关键字参数、默认值参数、可变参数、*args 和 **kwargs 的用法,以及如何在函数调用中灵活运用这些特性。此外,还介绍了函数作为对象的特性,包括高阶函数和闭包的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# # 简单函数介绍: 定义  形参 实参 传参的4中方式  调用  return
# #1.函数定义 .  python中函数必须先定义,再使用. 写一个函数前要空两行,写完后再空两行.pycharm书写
# # def 函数名(参数):
# #     代码1
# #     代码2
#
# #2.函数调用
# # 函数名(参数)
#
# #举例:使用函数完成 1+2
# #定义函数
# def add():
#     result = 1 + 2
#     print(result)
#
# #函数调用.
# add()
#
#
#3. 传参. 例子需要函数接收用户指定的数字.
# 函数调用的时候指定的数字+ 定义
#函数时接收的数字就是函数的参数.在定义函数时,定义接收用户输入的形式上的参数, 形参.在调用函数时,传入真实的数据给形参. 真实数据就是实参

#举例: 完成用户指定的两个数的和.
#定义函数.有形参
def add1(a, b):
    #函数内部完成的操作
    res = a + b
    print(res)


#函数调用,并且传入实参
add1(12, 56)

#3.1 传参方式一: 位置参数.顺序传入


def student(name, age, sex, hobby,):  #形参
    print("名字:", name, "年龄:", age, "性别:", sex, "爱好:", hobby)  #print函数中 sep默认空格,开分割多个对象
student("张三", 18, "男", "打球")  #实参


#3.2关键字参数.  (1)关键字参数不需要关心传入参数的顺序   (2)位置参数和关键字参数同时有,位置参数必须写在前面
##书写:  选择其中一种,最好不要混写.


def student2(name, age, sex, hobby,):  #形参
    print("名字:", name, "年龄:", age, "
### 函数传参教程 #### Vue.js 中的自定义指令函数传参 在Vue.js版本2.6.6中,当处理绑定函数并传递多个动态变化的参数时,可以采用一种有效的方法——通过`binding.value`来传递对象。这种方式允许开发者封装需要传递给事件处理器的所有数据到单个对象内,从而简化了参数管理[^1]。 ```javascript // HTML部分展示如何使用v-mydirective指令 <el-button v-mydirective="{ fn: myFn, args: x }" type="text" size="small">测试</el-button> const mydirective = { inserted: function(el, binding) { const {args, fn} = binding.value; el.onclick = () => fn(args); } } export default mydirective; ``` 此方法不仅提高了代码的可读性和维护性,还使得参数的数量和型更加灵活多变。 #### Python中的函数传参机制解析 Python语言中,所有的参数都是按引用传递的对象。这意味着当你把一个列表这样的可变对象作为参数传递给函数时,在函数体内对该对象所做的任何更改都会反映回原始调用者处的变量上[^2]。 ```python def modify_list(lst): lst.append(1) my_list = [] modify_list(my_list) print(my_list) # 输出将是 [1] ``` 上述例子展示了即使是在局部作用域内的操作也会影响到全局范围内的相同名称变量的内容。 #### C语言里的二级指针用于函数间通信 C编程环境下利用二级指针(`int **p`)可以在不同层次间接访问内存位置上的值。这种特性特别适用于那些需要改变原址存储数值的情况,比如链表节点的操作或是动态分配空间等场景下非常有用[^3]。 ```c void change_value(int **ptr){ *ptr = malloc(sizeof(int)); **ptr = 10; } int main(){ int *value_ptr = NULL; change_value(&value_ptr); printf("%d\n", *value_ptr); // 打印结果应为10 free(value_ptr); return 0; } ``` 这段代码片段说明了怎样借助双重解引用来实现对外部指针所指向内容的有效更新。 #### Shell脚本编写技巧之函数与数组应用实例 Shell脚本支持创建带有参数接收能力的小型子程序(即函数),以及能够容纳一系列元素的一维线性结构体(即数组)。下面是一个简单的冒泡排序算法实现案例,它接受用户输入的一组整数,并按照升序排列这些数字[^4]。 ```bash #!/bin/bash read -p "请输入一组由空格分隔开来的整数:" numbers arr=($numbers) echo "您提供的初始序列是:${arr[@]}" for (( i=0; i<${#arr[@]}; ++i )); do for (( j=$((i+1)); j<${#arr[@]}; ++j )); do if [[ ${arr[$i]} -gt ${arr[$j]} ]]; then tmp=${arr[$i]} arr[$i]=${arr[$j]} arr[$j]=$tmp fi done done echo "经过排序后的最终结果为:${arr[@]}" ``` 这个示例很好地体现了shell脚本的强大功能及其简洁易懂的特点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值