栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

excel基本函数操作(函数基本运用教程)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

excel基本函数操作(函数基本运用教程)

函数的基本操作

1 > 函数的定义与调用

1.1 > 函数的定义1.2 > 函数的调用 2 >函数的返回值

2.1 > 返回值的操作 3 >函数的参数

3.1 > 形参与实参3.2 > 位置参数3.2 > 关键字参数3.3 > 默认参数3.4 > 不定长参数

3.4.1 > *args3.4.1 > **kwargs 3.5 > 可变长参数

1 > 函数的定义与调用 1.1 > 函数的定义

  Python安装包、标准库中自带的函数统称为内置函数,用户自己变现的函数称之为自定义函数,不管是哪种函数,其定义和调用的方式都是一样的。其中有几点需要注意:

 1.函数一定要遵循先定义后调用的原则。就是说定义函数的代码一定要比调用函数的代码先执行。
 
 2.函数在定义阶段只检测语法,并不会执行代码体的内容。
 
 3.函数体代码只有在调用函数的时候才会执行
 
 4.函数名其实相当于是变量名指向的是内存中函数体代码所在位置

  定义函数格式:

	def func():
		print('hollo world')
	func()     # 这里的意识就是调用这个func() 函数,如果括号内有参数就会传递参数
1.2 > 函数的调用

  函数的调用格式如下:

	函数名([参数列表])

  定义好的函数直到被程序调用时才会执行。例如,调用下列的weather()函数,代码如下:

	def weather():
		print("*" * 13)
		print("日期:3月15日")
		print("温度:14~28度")
		print("空气状况:良")
		print("*" * 13)
	weather()

  上述程序运行到weather()时才会进入函数,按顺序执行函数体中的代码。程序运行结果如下:

*************
日期:3月15日
温度:14~28度
空气状况:良
*************

  调用带有参数的函数时需要传入参数,传入的参数称为实际参数,实际参数是程序执行过程中真正会使用的参数。例如调用一下modify_weather()函数,代码如下:

	def modify_weather(today, temp, air_quality):
	      # 这当中()内today, temp, air_quality 叫做形式参数
		print("*" * 13)
		print(f"日期:{today}")
		print(f"温度:{temp}")
		print(f"空气状况:{air_quality}")
		print("*" * 13)
	modify_weather('3月16日', '12~27度', '优')
		 # 这当中()内today, temp, air_quality 叫做实际参数

  上述程序运行到weather()时为其传入了三个参数,这些参数在函数体被执行时代替了形式参数。程序运行结果如下:

*************
日期:3月16日
温度:12~27度
空气状况:优
*************

2 >函数的返回值

  函数的返回值其实就是在调用函数之后返回的一个结果,如何获取函数的返回值呢?我们可以定义一个变量将返回值赋值给这个变量,代码格式如下:

变量名 = 函数调用

2.1 > 返回值的操作

  当函数体代码没有return关键字的时候,返回值是None。例如:

	def index():
    	print('春困秋乏夏打盹儿')
    	res = index()
  	print(res)  # None

  当函数体代码写了return但是没有跟任何值得时候 返回值也是None。例如:

	def index():
    	print('春困秋乏夏打盹儿')
    	return
    	res = index()
  	print(res)  # None

  当函数体代码写了return并且跟了数据 那么写什么就返回什么。如果写的是值那么直接返回值(任意数据类型),如果写的是变量名那么返回变量名指向的值,例如:

	def index():
    	print('春困秋乏夏打盹儿')
    	name = 'jason'
    	return name
    res = index()
    print(res)  # jason

  return后面还可以跟多个值 逗号隔开 会自动组织成元组返回出去。例如:

	def index():
    	print('春困秋乏夏打盹儿')
    	return 111,'jason',222
    res = index()
    print(res)  # (111,'jason',222)

  return 类似于循环体当中的break,当函数体代码遇到return时就会立刻结束函数的运行。

3 >函数的参数 3.1 > 形参与实参

  函数在定义阶段括号内写的参数,,我们称之为’形式参数’ 简称为>>>:形参。函数在调用阶段括号内写的参数,我们称之为’实际参数’ 简称为>>>:实参。

  形参类似于就是变量名、实参类似于是变量的值。在调用函数的时候传入实参,会与形参临时绑定,在函数运行结束之后自动解除绑定。例如:

	def index(a, b):  # 这里的就是indea函数的形参
		print(a, b)
	index(1, 2)    # 1,2是就是indea函数的实参
	#  打印  1, 2
	'''
	
		这里1会临时绑定给形参a,2会临时绑定给形参b
			函数体代码运行期间 可以通过形参直接使用到实参
			函数体代码运行完毕之后 解除绑定 
			形参ab处于没有绑定值得状态 等待下一次函数调用传入实参进行绑定

	'''
3.2 > 位置参数

  调用函数时,编译器会将函数的实际参数位置顺序依此传递给形式参数,即将第1个实际参数传递给第1个形式参数,将第2个实际参数传递给第2个形式参数,依此类推。
  定义一个计算两数之商的函数division(),具体代码如下:

	def division(num_one, num_two):
		print(num_one / num_two)

  使用以下代码调用division()函数:

	division(6, 2)   # 位置参数传递


  上述代码调用division()函数时传入实际参数6和2,根据实际参数和形式参数的位置关系,6被传递给形式参数num_one,2被传递给形式参数num_two,如上图。

3.2 > 关键字参数

  使用位置参数传值时,如果函数中存在多个参数,记住每个参数的位置及其含义并不是一件容易的事,此时可以使用关键字参数进行传递。关键字参数传递通过"形式参数=实际参数"的格式将实际参数与形式参数相关联,根据形式参数的名称进行参数传递。
  假设当前有一个函数info(),该函数包含3个形式参数,具体代码如下:

	
	def info(name, age, address):
		print(f'姓名:{name}')
		print(f'年龄:{age}')
		print(f'地址:{address}')

  当调用info()函数时,通过关键字为不同的形式参数传值,具体代码如下:

	info(name = 'bob', age = 23, address = '上海')

  运行结果:

	姓名:bob
	年龄:23
	地址:上海
3.3 > 默认参数

  定义函数时可以指定形式参数的默认值,调用函数时,若没有给带有默认值的形式参数传值,则直接使用参数的默认值;若给带有默认值的形式参数传值,则实际参数的值会覆盖默认值。
  定义一个包含参数ip与port的函数conner(),为形式参数port指定默认值3306,代码如下:

	def conner(ip, prot=3306):
		print(f'连接地址为:{ip}')
		print(f'连接端口号为:{port}')
		print('连接成功')

  通过以下两种方式调用conner()函数:

	conner('127.0.0.1')                    # 第一种,形式参数使用默认值
-------------------------------------------------------------------------------
	conner(ip = '127.0.0.1', port = 8080)  #第二种,形式参数使用传入值

  程序运行结果

	连接地址:127.0.0.1
	连接端口号:3306
	连接成功
-------------------------------------------------------------------------------
	连接地址:127.0.0.1
	连接端口号:8080
	连接成功

  分析以上输出结果可知,使用第一种方式调用conner()函数时,参数port使用的默认值是3306;使用第二种方式调用conner()函数时,参数port使用实际参数的值8080。

  注意!!!
    若函数中包含默认参数,调用该函数时默认参数应在其他实参之后。

3.4 > 不定长参数

  若要传入函数中的参数个数不确定,可以使用不定长参数也称可变参数,此种参数接收参数的数量可以任意改变。包含可变参数的函数的语法格式如下:

	def 函数名([formal_args,] *args, **kwargs):
		["函数文档字符串"]
		函数体
		[return语句]

  以上语法格式中的参数 *args 和参数 **kwargs都是不定长参数,这两个参数可以搭配使用,亦可单独使用。下面分别介绍。

3.4.1 > *args

  不定长参数*args用于收不定数量的位置参数,调用函数时传入的所有参数被 args接收后以元组的形式保存。定义一个包含参数args的函数,代码如下:

	def test(*args):
		print(args)

  调用以上函数,传入任意个参数,代码如下:

	test(1, 2, 3, 'a', 'b', 'c')

  程序运行结果

	(1, 2, 3, 'a', 'b', 'c')
3.4.1 > **kwargs

  不定长参数 kwargs 用于接收不定数量的关键字参数,调用函数时传入的所有参数开挖如果是接收后以字典形式保存。定义一个包含参数**kwargs的函数,代码如下:

	def test(**kwargs):
		print(kwargs)

  调用以上函数,传入任意个关键字,代码如下:

	test(a = 1, b = 2, c = 3, d = 4)

  程序运行结果

	('c' : 3, 'b': 4, 'a':1, 'b': 2)
3.5 > 可变长参数

  定义函数的时候 如果不确定这个函数将来需要多个实参 那么可以采用下述的方法,例如永固接收用户信息的func()函数:

	def func(*a,**k):
    print(a,k)
	func()  # () {}
	func(1,2,3,4,name='jason',age=18)  # (1, 2, 3, 4) {'name': 'jason', 'age': 18}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/772378.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号