大家好,本文将围绕一段简单的python代码展开说明,简单的python程序代码是一个很多人都想弄明白的事情,想搞清楚python一些简单的代码需要先了解以下几个事情。
Python入门之经典函数实例
第1关:递归函数 - 汉诺塔的魅力
·任务描述
在Python函数内部,我们可以去调用其他函数。所以如果一个函数在内部调用自身,这个函数我们就称为递归函数python打印皮卡丘代码。本关我们将以汉诺塔的例子来感受递归函数的方法与应用。
·编程要求
本关的编程任务是补全src/step1/recursive.py文件的代码,实现相应的功能。具体要求如下:
定义一个函数fact(n),实现的功能是对输入的正整数n进行n!运算;
调用函数fact(n),对输入的正整数n进行阶乘运算,并输出计算结果。
·测试说明
本关的测试文件是src/step1/recursive.py,测试过程如下:
平台自动编译生成recursive.exe;
平台运行recursive.exe,并以标准输入方式提供测试输入;
平台获取recursive.exe输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。
以下是平台对src/step1/recursive.py的样例测试集:
测试输入:
5
预期输出:
120
测试输入:
6
预期输出:
720
测试输入:
7
预期输出:
5040
测试输入:
8
预期输出:
40320
# coding=utf-8
# 输入正整数n
n = int(input())
'''定义一个函数fact(n),实现的功能是对输入的正整数n进行n!运算;
调用函数fact(n),对输入的正整数n进行阶乘运算,并输出计算结果。'''
List1=list(range(1,n+1))
s=1
for i in List1:
s=i*s
print(s)
第2关:内置模块中的内置函数
·任务描述
在Python编程中我们除了可以用def语句来定义函数之外,还可以使用lambda来定义。我们用def语句来定义函数时需要指定函数名字,而使用lambda来定义函数时则不需要。
·编程要求
本关的编程任务是补全src/step2/lambda.py文件的代码,实现相应的功能。具体要求如下:
使用lambda来创建匿名函数,然后判断输入的两个数值的大小,并分别输出较大的值和较小的值。
·测试说明
本关的测试文件是src/step2/lambda.py,测试过程如下:
平台自动编译生成lambda.exe;
平台运行lambda.exe,并以标准输入方式提供测试输入;
平台获取lambda.exe输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。
以下是平台对src/step2/lambda.py的样例测试集:
测试输入:
5
12
预期输出:
较大的值是:12
较小的值是:5
测试输入:
7
3
预期输出:
较大的值是:7
较小的值是:3
测试输入:
120
89
预期输出:
较大的值是:120
较小的值是:89
测试输入:
13
110
预期输出:
较大的值是:110
较小的值是:13
#coding=utf-8
# 使用lambda来创建匿名函数,能够判断输入的两个数值的大小
#********** Begin *********#
MAXIMUM = lambda x, y: max(x, y)
MINIMUM = lambda x, y: min(x, y)
#输入两个正整数
a = int(input())
b = int(input())
#输出较大的值和较小的值
print('较大的值是:%d' % MAXIMUM(a, b))
print('较小的值是:%d' % MINIMUM(a, b))
第3关:Map-Reduce - 映射与归约的思想
·任务描述
Python中有两个非常常见的内置函数:map()和reduce()函数。这两个函数都是应用于序列的处理函数,map()用于映射,reduce()用于归并。
·编程要求
本关的编程任务是补全src/step3/map-reduce.py文件的代码,实现相应的功能。具体要求如下:
将输入的一个正整数分解质因数,并将结果输出。例如:输入90,打印出90=2 × 3 × 3 × 5。
·测试说明
本关的测试文件是src/step3/map-reduce.py,测试过程如下:
平台自动编译生成map-reduce.exe;
平台运行map-reduce.exe,并以标准输入方式提供测试输入;
平台获取map-reduce.exe输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。
以下是平台对src/step3/map-reduce.py的样例测试集:
测试输入:
80
预期输出:
80 = 22225
测试输入:
79
预期输出:
79 = 79
测试输入:
225
预期输出:
225 = 335*5
测试输入:
123456
预期输出:
123456 = 2222223*643
# coding=utf-8
# 输入一个正整数
x = int(input())
# 将输入的一个正整数分解质因数
def isPrime(n):
flag = True
for i in range(2,n):
if n % i == 0:
flag = False
else:
flag = True
return flag
def PrimeFator(n):
ls = []
while n != 1:
for i in range(2,n+1):
if isPrime(i) and n % i == 0:
ls.append(i)
n = int(n/i)
break
return ls
result = PrimeFator(x)
# 输出结果,利用map()函数将结果按照规定字符串格式输出
print(x,'=','*'.join(map(str,result)))
······通关成功······
如有问题,敬请斧正。