函数

  函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。学习Python,离不开函数,我们学习了许多内置函数,比如:print,int,range等,可以直接使用它们,来实现对应功能。

  函数能提高应用的模块性,和代码的重复利用率。你也可以自己创建函数,来实现某些功能,在减少编码量和提高效率也是非常有用的。定义函数后,只需在不同的地方调用其名称,不用重复编写代码,一遍又一遍地执行它。

任务一:计算阶乘

  阶乘(factorial)是数学中的一个术语,用于表示从1乘以2乘以3乘以4一直乘到所要求的数,得到的积就是该数的阶乘。例如,所要求的数是4,则阶乘式是1×2×3×4,得到的积是24,24就是4的阶乘。

n=int(input())
s=
for i in range(      ,      ):
    s=
print(s)

创建自定义函数

你可以定义一个由自己想要功能的函数,以下是简单的规则:

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。

  • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。

  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

  • 函数内容以冒号 : 起始,并且缩进。

  • return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。

基本语法:

def 函数名(参数列表):
    函数体代码

样例1:定义一个没有参数,有返回值的函数

def hw():
	print("hello world")

样例2:定义一个有参数,没有返回值的函数

def hwn(n):
	for i in range(n):
		print("hello world")

样例3:定义一个有参数,有返回值的函数

def jiafa(a,b):			
	c = a + b
	return c			#有一个返回值

def jiajianfa(a,b):
	c = a + b
	d = a - b
	return c,d			#有两个返回值

注:有多个返回值时,返回的数组类型为元组

调用自定义函数

  完成函数定义之后,可以在之后的代码中调用这个函数以使用其功能。

样例4:调用没有参数的函数

def hw():
	print("hello world")
#调用2次hw函数
hw()
hw()

输出结果:

hello world

hello world

参数

  在调用函数时,主调函数和被调用函数之间有数据传递关系。函数参数的作用是传递数据给函数使用,函数利用接收的数据进行具体的操作。

样例5:调用函数时传递参数

def hwn(n):
	for i in range(n):
		print("hello world")

#调用hwn函数时传递参数
a=2
hwn(a)

输出结果:

hello world

hello world

返回值

  可以在函数体内使用 return 语句为函数指定返回值。函数的返回值可以是任意类型的,无论 return 语句出现在函数的什么位置,只要执行 return 语句就是结束函数的执行。没有或不带参数值的 return 语句返回 None。

样例6:返回值为空的函数调用

def hwn(n):
	for i in range(n):
		print("hello world")

#调用hwn函数时传递参数,接受函数的返回值
a=2
b=hwn(a)
print(b)

输出结果:

hello world

hello world

None

样例6:有返回值的函数调用

def jiafa(a,b):			
	c = a + b
	return c			#有一个返回值

m=2
n=5
he=jiafa(m,n)			#调用函数并存储返回值
print(he)

输出结果:

7

任务二:求组合数

  组合数公式是指从 n 个不同元素中,任取 m(m≤n) 个元素并成一组叫做一个组合,所有组合的个数,叫做 n 个不同元素中取出 m 个元素的组合数。用符号 C(n,m) 表示。公式为:

  

  1.将阶乘定义成函数,参数只有一个,需要计算阶乘的数:n,返回值只有一个,为计算结果:s。

  2.求c(10,5)的组合数。

  将代码提交给老师。

def factorial(n):
	#计算n的阶乘

	return s

模块

  Python 提供了一个办法,自定义的函数或功能存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件被称为模块。

  Python中模块分三大类:

1.内置模块

2.第三方模块

3.自定义模块

导入、使用模块

我们通过import(关键字)导入模块,语法如下:

import 模块名
模块名.函数名()

样例:

有模块文件part1.py

# Filename: part1.py
 
def hwn(n):
	for i in range(n):
		print("hello world")

在编程文件myapp.py中导入part1模块,此时part1.py和myapp.py文件应在同一目录下

# Filename: myapp.py

import part1
part1.hwn(3)

输出结果:

hello world

hello world

hello world

任务三

  尝试完善以下功能的函数定义。并封装到一个模块文件mymodule.py中。

求两个数的最大值

求两个数的和

求两个数的差

求两个数的乘积

求两个数的商

计算矩形周长

def max(a,b):

def add(a,b):

def minus(a,b):

def ride(a,b):

def divide(a,b):

def area(a,b):

拓展知识

内置函数

abs()

dict()

help()

min()

setattr()

all()

dir()

hex()

next()

slice()

any()

divmod()

id()

object()

sorted()

ascii()

enumerate()

input()

oct()

staticmethod()

bin()

eval()

int()

open()

str()

bool()

exec()

isinstance()

ord()

sum()

bytearray()

filter()

issubclass()

pow()

super()

bytes()

float()

iter()

print()

tuple()

callable()

format()

len()

property()

type()

chr()

frozenset()

list()

range()

vars()

classmethod()

getattr()

locals()

repr()

zip()

compile()

globals()

map()

reversed()

import()

complex()

hasattr()

max()

round()

reload()

delattr()

hash()

memoryview()

set()

 

内置模块(标准库)

9876832eedc4407f9263cf41bea4b33c.png

常用方法及说明

方法

说明

time.time()

获取当前时间戳

time.sleep(n)

当前线程停止运行n秒

random.random()

用于生成一个0~1的随机浮点数

random.uniform(a,b)

用于生成一个指定范围内的随机浮点数

random.randint(a,b)

用于生成一个指定范围内的整数

calendar.calendar(year)

返回某一年的年历

calendar.month(year,month)

返回月历

calendar.weekday(year,month,day)

返回传入的日期是星期几。

calendar.isleap(year)

返回传入的年是不是闰年,是返回True,否则为false。如2020年是闰年。

math.sqrt()

开根号

math.ceil()

向上取整

math.floor()

向下取整