python中msg函数_Python3中函数基础

函数是对功能或者动作的封装,它的主要目的是:最大化代码重用和最小化代码冗余,以及对复杂过程的分解。

1:函数的定义与调用

在Python中使用如下的语法进行定义一个函数:

def name(arg1,arg2,... argN): statements return value

def语句是一条可执行的语句,当它运行的时候,会创建一个新的函数对象。并将它赋值给一个变量名(也就是函数名)。

def add(a,b): # 代码执行到这里时,创建了一个函数对象,并把它赋值给add print('a=',a,' b=',b) return a+b # 函数调用:print(add(1,3))print(add('1','3'))print(add([1,2,3,4],['abc','ert']))

2:函数的返回值

在Python中每个函数都有一个返回值,如果自己没有显式返回,函数默认返回None,其中函数返回值可以是任意类型的单个值,可以是任意类型的多个值。

# 1:返回默认值 Nonedef print_msg(s): print(f'hello {s}') ret = print_msg(111)print(ret) # None # 2:返回单个值def add(a,b): # 代码执行到这里时,创建了一个函数对象,并把它赋值给add print('a=',a,' b=',b) return a+bret = add(1,3)print(ret) # 返回4 ret = add('hello','ixusy88')print(ret) # 返回 helloixusy88 # 3:返回多个值def add(a,b): # 代码执行到这里时,创建了一个函数对象,并把它赋值给add print('a=',a,' b=',b) return a,b,a+b # 返回元组;也可以返回列表等其他类型数据ret = add(1,3)print(ret) # 返回4 ret = add('hello','ixusy88')print(ret) # 返回 ('hello', 'ixusy88', 'helloixusy88') # 也可以 使用序列赋值:a,b,ret = add('hello','ixusy88')print(a,b,ret ) # 输出:hello ixusy88 helloixusy88

3:形参和实参

形参:在函数声明的位置。给出来的参数叫形参。形式上的一个参数. 用一个变量来表示;

形参的分类

1. 位置参数 按照位置来声明形参

2. 默认值参数, 当给参数传递值的时候,默认值不起作用;不给值,默认值起作用.;保证你至少有个值能用

顺序: 位置参数必须放在前面。默认值参数必须放在后面

实参:在函数调用的时候,把实参的值赋值给形参的过程叫传参;在函数调用的地方给出的具体的值叫实参. 实际参数;

实参的分类:

1. 位置参数.:按照位置, 给形参赋值;

2. 关键字参数:按照形参的名字给参数赋值;

3. 混合参数,:位置参数必须放在前面, 关键字参数放后面;

# 形参,定义函数的时候的参数:位置参数必须放在前面,默认值参数必须放在后面def show_msg(name,age,sex='男'): msg = f'name is {name}, age is {age},sex is {sex}. ' print(msg) # 实参:调用函数的时候,实际给函数传递的值。# 位置参数:按照定义的位置传递show_msg('ixusy88',18) # 关键字参数:使用默认值show_msg(name='hahha',age=38)# 关键字参数:不使用默认值show_msg(name='hahha',age=38,sex='女') # 混合参数:位置参数必须放在前面, 关键字参数放后面;show_msg('混合参数hahha',age=38,sex='女')

4:参数传递

在Python中参数的传递其实就是赋值操作,是变量名给变量名赋值(即通过对象引用),其结果就是两个变量指向了相同的对象:

# 不可变对象:def func(a): a = 200 # 这个的修改不会影响到外部 print('0-----:',id(a),a)s = 100 func(s)print('1-----:',id(s),s) """输出结果:0-----: 1775928288 2001-----: 1775925088 100"""print('*'*60) # 可变对象:def func_2(a): a[0] = 100 # 这里的修改会影响到外部的变量,因为两者都指向一个可变数据类型。 print('0-----:',id(a),a) lst = [1,2,3]print('1-----:',id(lst),lst)func_2(lst)print('2-----:',id(lst),lst) """1-----: 2036762659272 [1, 2, 3]0-----: 2036762659272 [100, 2, 3]2-----: 2036762659272 [100, 2, 3]"""

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vc++全版本组件大全 VC++运行时(Visual C++ Runtime)是VC++开发环境用于支持C和C++程序运行的基础库集合。这些库包含了执行C/C++程序所必需的基本函数和数据结构,例如内存管理、字符串操作、输入输出处理、异常处理等。VC++运行时库分为静态库和动态库两种形式,以适应不同类型的项目需求。 静态链接库 vs 动态链接库 静态链接库(Static Linking Libraries):在编译时,静态库的代码会被直接嵌入到最终生成的可执行文件。这意味着每个使用静态库的程序都会包含库代码的一个副本,导致最终程序的体积较大,但不需要外部库文件支持即可独立运行。在VC++,静态链接库的例子有LIBC.lib(用于单线程程序)和LIBCMT.lib(用于多线程程序)。 动态链接库(Dynamic Link Libraries):与静态链接相反,动态库的代码并不直接加入到应用程序,而是在程序运行时被加载。这使得多个程序可以共享同一份库代码,节省了系统资源。VC++的动态运行时库主要通过msvcrt.dll(或其变体,如MSVCRTD.dll用于调试版本)实现,与之配套的导入库(Import Library)如CRTDLL.lib用于链接阶段。 运行时库的版本 VC++运行时库随着Visual Studio版本的更新而发展,每个版本都可能引入新的特性和优化,同时保持向后兼容性。例如,有VC++ 2005、2008、2010直至2019等多个版本的运行时库,每个版本都对应着特定的开发环境和Windows操作系统。 重要性 VC++运行时对于确保程序正确运行至关重要。当程序在没有安装相应运行时库的计算机上执行时,可能会遇到因缺失DLL文件(如MSVCP*.dll, VCRUNTIME*.dll等)而导致的错误。因此,开发完成后,通常需要分发相应的VC++ Redistributable Packages给最终用户安装,以确保程序能够在目标系统上顺利运行。 安装与部署 安装VC++运行时库通常是通过Microsoft提供的Redistributable Packages完成的,这是一个简单的过程,用户只需运行安装程序即可自动安装所需组件。对于开发者而言,了解和管理不同版本的运行时库对于确保应用程序的广泛兼容性和可靠性是必要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值