首页 > 分享 > MOOC —— Python语言基础与应用 by 北京大学 第六章 计算和控制流(二)

MOOC —— Python语言基础与应用 by 北京大学 第六章 计算和控制流(二)

第六章 计算和控制流(二) 29、计算和控制流:代码组织:函数(def)30、计算和控制流:代码组织:函数参数31、上机练习32、计算和控制流:引用扩展模块测验题 29、计算和控制流:代码组织:函数(def)

了解一下封装:
容器是对数据 的封装
函数是对语句的封装
类是对方法和属性的封装

函数的用法,先定义,再调用

定义函数
def function(参数)
<缩进的代码段>
return <函数返回值>

调用函数
function(参数)
返回值赋值:v = function(参数)

变量的作用域
局部变量:函数内部有效
全局变量:整个代码段有效
global:声明全局变量,声明后可以对全局变量进行修改
如果没有定义局部变量,则使用外一层的变量

函数小技巧
map(func,list1,list2…)
lambda 有时函数只用一次,名称不重要,就用lambda

30、计算和控制流:代码组织:函数参数

形式参数:def f(a,b): a,b是形参
实际参数:调用f(c,d): c,d是实参

固定参数:固定了顺序和数量
def func(key1,key2,key3…):
调用时,就按位置顺序输入参数: func(a,b,c)
可变参数:
def func(*args): 输入多个参数被组装成一个元组
def func(**kwargs): 输入多个参数被组装成一个字典

如果调用的参数是关键字参数
func(key1=arg1,key2=arg2…),可以不按顺序输入参数
既有位置参数,又有关键字参数,传进参数时,位置参数必须在前,关键字参数必须在后

31、上机练习

一、创建一个函数,接受一个参数n(n>=100), 判断这个数是否为水仙花数
水仙花数:满足如果这个数为m位数,则每个位上的 数字的m次幂之和等于它本身
例如:1^3 + 5^3 + 3^3=153, 1^4 + 6^4 + 3^4 + 4^4=1634
结果返回True或者False

def sxh(x): a = str(x) s = 0 for i in range(len(a)): s += eval(a[i])**len(a) if s == x: return True else: return False 123456789

二、创建一个函数,接受一个参数max(max >= 1000),调用上题编写的判断函数,求 100到max之间的水仙花数

def s(max): s = [] for i in range(100, max + 1): sxh(i) if sxh(i) == True: s.append(i) print(s) 1234567

三、创建一个函数,接受两个字符串作为参数, 返回两个字符串字符集合的并集
例如:接受的两个字符串为"abc"和"bcd",返回 set([‘a’, ’b’, ’c’ , ’d’])

def f(a, b): c = list(set(a) | set(b)) print(sorted(c)) 123 32、计算和控制流:引用扩展模块

模块就是程序
每个扩展名为py的python程序都是一个独立的Module

组织模块
包package放在一个文件夹里的模块集合

引用方式
import module as 别名 调用时需要 别名.add()
from module import function 调用时直接用add()

下面介绍python的标准库,功能强大,实在是多。。这里给链接按需查找
英文版:https://docs.python.org/3/library/index.html
中文版:https://docs.pythontab.com/python/python3.5/stdlib.html#

扩展命名空间
表示标识符的可见范围
dir()
help()
先认识一下,,我是不怎么理解。。。

测验题

1.下列关于Python中函数的说法不正确的是()。

A.Python中定义函数的关键字是def。

B.函数内容以冒号起始,并且缩进。

C.结束函数时如果return语句不带表达式相当于无返回值。

D.在函数内部可以使用global来定义全局变量。

2.下列定义函数的方法,在Python中正确的是()。

A. class( arg1, arg2,…argN)

B. def ( arg1, arg2,…argN)

C. function (arg1,arg2,…argN)

D.def (arg1,arg2,…argN)

list(map(lambda x:len(x),['a','12','ab123'])) 1

上述代码的输出结果是____。

A. [1, 0, 2]

B. [0, 2, 3]

C. [1, 2, 5]

D. [1, 2, 3]

f1=lambda x:x*2 f2=lambda x:x**2 print(f1(f2(2))) 123

上述代码的输出结果是____。

A. 4
B. 6
C. 2
D. 8

counter=1 num=0 def tset(): global counter for i in (1,2,3): counter+=1 num=10 tset() print(counter,num) 123456789

上述代码的输出结果是____。

A. 4 0
B. 1 10
C. 4 10
D. 1 0

def Sum(a,b=3,c=5): return sum([a,b,c]) print(Sum(8,2)) 123

上述代码的输出结果是____。

7

d=lambda x:x*2 t=lambda x:x*3 a=2 a=d(a) a=t(a) a=d(a) print(a) 1234567

上述代码的输出结果是____。

答案
1、C
2、D
3、C
4、D
5、A
6、15
7、24

相关知识

Python语言基础与应用 北京大学 测试章节五
【Python】基础
《Python程序设计:人工智能案例实践》((美) 保罗·戴特尔(Paul Deitel))【简介
基于Python和PyTorch的小程序苹果病虫害识别教程
(开题)flask框架《花间故里》(程序+论文+python)
SKYNE/python
基于python的在线花店管理系统的设计与开发
森林有害生物控制(北京林业大学) 中国大学MOOC答案2024版100分完整版 – 中国大学MOOC答案
花了1个月时间,把Python库全部整理出来了,覆盖所有,建议收藏
卷积神经网络实现鸢尾花数据分类python代码实现

网址: MOOC —— Python语言基础与应用 by 北京大学 第六章 计算和控制流(二) https://m.huajiangbk.com/newsview501851.html

所属分类:花卉
上一篇: C语言:打印出所有的“水仙花数”
下一篇: C语言编写实现玫瑰花