目录
第1关:内置函数 - 让你偷懒的工具
第2关:函数正确调用 - 得到想要的结果
第3关:函数与函数调用 - 分清主次
如果对你有帮助的话,不妨点赞收藏评论一下吧,爱你么么哒????????
第1关:内置函数 - 让你偷懒的工具
任务描述
我们在编程过程中会用到很多函数,但我们不需要每个函数都自己去编写,因为 Python 内置了很多十分有用的函数,我们在编程过程中可以直接调用。本关目标是让学习者了解并掌握一些常用的 Python 内置函数的用法。
相关知识
数学运算
-
>>> abs(-4) -
4
-
>>> divmod(7,2) -
(3,1)
-
>>> max(2,6,1,7) -
7
-
>>> min(2,6,1,7) -
1
-
>>> sum((1,2,3,4)) -
10 -
>>> sum([1,2,3,4]) -
10 -
>>> sum((1,2,3,4),-10) -
0
类型转换
-
>>> bool() -
False -
>>> bool(1) -
True -
>>> bool(0) -
False -
>>> bool('str') -
True
-
>>> int('3') -
3 -
>>> int('3.6') -
3
-
>>> float() # 不提供参数的时候,返回0.0 -
0.0 -
>>> float(3) -
3.0 -
>>> float('3') -
3.0
-
>>> complex() # 当两个参数都不提供时,返回复数0j -
0j -
>>> complex('2+4j') -
(2+4j) -
>>> complex(1,2) -
(1+2j)
序列操作
-
>>> all([1,2,3]) # 列表中每个元素逻辑值均为True,返回True -
True -
>>> all([0,1,2]) # 列表中0的逻辑值为False,返回False -
False -
>>> all(()) # 空元组 -
True
-
>>> any([0,1,2]) # 列表元素有一个为True,则返回True -
True -
>>> any([0,0]) # 列表元素全部为False,则返回False -
False -
>>> any([]) # 空列表 -
False
-
>>> a = ['a','b','d','c','B','A'] -
>>> a -
['a', 'b', 'd', 'c', 'B', 'A'] -
>>> sorted(a) # 默认按字符ascii码排序 -
['A', 'B', 'a', 'b', 'c', 'd']
对象操作
交互操作
文件操作
-
# t为文本读写,b为二进制读写 -
>>> a = open('test.txt','rt') -
>>> a.read() -
some text -
>>> a.close()
编程要求
本关的编程任务是补全
-
定义一个函数,功能是判断一个数是否为素数;
-
调用函数,对输入的整数进行判断。如果是素数则输出为
True ,否则输出为False 。
本关涉及的代码文件
-
# coding=utf-8 -
# 输入一个整数n -
n = int(input()) -
# 请在此添加代码,对输入的整数进行判断,如果是素数则输出为True,否则输出为False -
########## Begin ########## -
########## End ########## -
print(prime(n))
测试说明
本关的测试文件是
-
平台自动编译生成
prime.exe ; -
平台运行
prime.exe ,并以标准输入方式提供测试输入; -
平台获取
prime.exe 输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。
以下是平台对
开始你的任务吧,祝你成功!
# coding=utf-8 # 输入一个整数n n = int(input()) # 请在此添加代码,对输入的整数进行判断,如果是素数则输出为True,不是素数则输出为False ########## Begin ########## def prime(n): if(n==1): return False for i in range(2,n): if(n%i==0): return False return True ########## End ########## print(prime(n))
第2关:函数正确调用 - 得到想要的结果
任务描述
函数被定义后,本身是不会自动执行的,只有在被调用后,函数才会被执行,得到相应的结果。本关的目标是让学习者了解并掌握函数调用的相关知识。
相关知识
定义函数与调用函数的顺序
在定义了函数之后,就可以调用该函数了。但是在 Python 中我们要注意一个关键点,就是
-
print plus(1,2) -
def plus(a,b): -
return a+b
运行结果为:
-
NameError: name 'plus' is not defined
从报错结果可以看出,名字为
正确使用参数
我们要在调用函数时,需要正确调用函数的名称和参数,例如我们定义了一个加法函数:
-
def plus(a,b): -
return a+b
我们在调用
-
# 定义plus函数,作用是求两个正整数之和 -
def plus(a,b): -
return a+b -
# 调用plus函数,参数类型为'1','2' -
print(plus('1','2'))
输出结果:
-
12
虽然上述例子的程序运行结果没有报错,但是结果却与我们的预期不符,因为我们的本意是调用
当我们传入正常类型的参数时,传入的参数个数不一致时,也会报
-
# 定义plus函数,作用是求两个正整数之和 -
def plus(a,b): -
return a+b -
# 调用plus函数,参数为1,2,3 -
print(plus(1,2,3))
报错:
-
TypeError: plus() takes 2 positional arguments but 3 were given
报错原因显示,因为
小结
函数的调用十分重要,只有学会正确调用函数,才会得到正确的函数运行结果。
编程要求
本关的编程任务是补全
-
定义一个函数,实现对输入的数值列表进行从小到大的顺序排序;
-
输出排序后的数值列表。
本关涉及的代码文件
-
# coding=utf-8 -
# 输入数字字符串,并转换为数值列表 -
a = input() -
num1 = eval(a) -
numbers = list(num1) -
# 请在此添加代码,对数值列表numbers实现从小到大排序 -
########## Begin ########## -
########## End ##########
测试说明
本关的测试文件是
-
平台自动编译生成
func_call.exe ; -
平台运行
func_call.exe ,并以标准输入方式提供测试输入; -
平台获取
func_call.exe 输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。
以下是平台对
测试输入:
-
103,47,21,34,11,2,5,88,13
预期输出:
-
[2, 5, 11, 13, 21, 34, 47, 88, 103]
测试输入:
-
12,31,0,23,25,109,77,3
预期输出:
-
[0, 3, 12, 23, 25, 31, 77, 109]
测试输入:
-
6,4,11,34,12,1,4
预期输出:
-
[1, 4, 4, 6, 11, 12, 34]
测试输入:
-
5,4,3,2,1
预期输出:
-
[1, 2, 3, 4, 5]
开始你的任务吧,祝你成功!
# coding=utf-8 # 输入数字字符串,并转换为数值列表 a = input() num1 = eval(a) numbers = list(num1) # 请在此添加代码,对数值列表numbers实现从小到大排序 ########## Begin ########## numbers.sort() print((numbers)) ########## End ##########
第3关:函数与函数调用 - 分清主次
任务描述
我们一般将字符串、列表等变量作为参数进行函数调用。但函数本身也是一个对象,所以我们也可以将函数作为参数传入另外一个函数中并进行调用。 本关的目标是让学习者了解并掌握函数作为参数传入另外一个函数中并进行调用的相关知识。
相关知识
我们要学习函数与函数之间的调用,就应该对函数调用的顺序与参数有清晰的认识,我们将会从五种情况让读者了解并掌握函数与函数之间的调用的基本关系和联系。
第一种情况
程序代码如下:
-
def x(f): -
def y(): -
print(1) -
return y -
def f(): -
print(2) -
x(f)
运行结果:
-
无结果
分析:因为第9行中的
第二种情况
程序代码如下:
-
def x(f): -
def y(): -
print(1) -
return y -
def f(): -
print(2) -
x(f())
运行结果:
-
2
分析:因为第9行中的
程序代码如下:
-
def x(f): -
def y(): -
print(1) -
return y() -
def f(): -
print(2) -
x(f)
运行结果:
-
1
分析:因为第9行中的
第四种情况
程序代码如下:
-
def x(f): -
def y(): -
print(1) -
return y() -
def f(): -
print(2) -
x(f())
运行结果:
-
2 -
1
分析:因为第9行中的
第五种情况
程序代码如下:
-
def x(f): -
def y(): -
print(1) -
print(f()) -
return y() -
def f(): -
#print(2) -
return 2 -
x(f)
运行结果:
-
1 -
2
分析:因为第9行中的
小结
以上是对函数与函数之间调用的五种情况的探讨与分析。函数作为参数传入另外一个函数中并进行调用的情况有很多,我们需要时刻注意函数调用的相关要求与细节,才能正确使用函数。
编程要求
本关的编程任务是补全
-
定义一个函数,要求实现圆的面积的计算;
-
根据输入的不同整数值的半径,调用函数计算,并输出圆的面积,结果保留两位小数。
本关涉及的代码文件
-
# coding=utf-8 -
from math import pi as PI -
n = int(input()) -
# 请在此添加代码,实现圆的面积计算,并输出面积结果 -
########## Begin ########## -
########## End ##########
测试说明
本关的测试文件是
-
平台自动编译生成
func_ref.exe ; -
平台运行
func_ref.exe ,并以标准输入方式提供测试输入; -
平台获取
func_ref.exe 输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。
以下是平台对
开始你的任务吧,祝你成功!
# coding=utf-8 from math import pi as PI n = int(input()) # 请在此添加代码,实现圆的面积计算,并输出面积结果 ########## Begin ########## def cricle(n): return 3.1415926*n*n; m=cricle(n) print("%.2f"%m) ########## End ##########