打开网易新闻 查看精彩图片

考点:

函数参数传参、求和、奇数、偶数、输入输出、range步长灵活使用【Python习题04】

题目:

编写一个函数,

输入n为偶数时,

调用函数求1/2+1/4+...+1/n,

当输入n为奇数时,

调用函数1/1+1/3+...+1/n

程序输入效果:

请输入一个数n:6

0.9166666666666666

请输入一个数n:6

处理偶数情况

0.9166666666666666

解题思路:

  1. 使用输入函数input为一个整数n赋值,这里注意要转换数据类型

  2. 单独为奇数和偶数情况写一个函数来求和,但实际上思路是差不多的。建议可以使用range步长特点就可以把规律做出来。

  3. 也可以自己通过循环方式把求和做出来,就如同本题第一种方法一样。这里注意的是变量定义的巧妙运用。

  4. python中的函数可以直接通过参数的形式传参,但是要在新的函数中定义一个传过来的参数要来处理成函数的形式一样去调用。例如本题第二种方法:fp(n)

本节源代码

# -*- coding: utf-8 -*-"""@File文件 : ljytest75@Time创建时间 : 2021/11/25@Author作者 : 刘金玉@Contact联系方式 : selidev@qq.com 编程创造城市 http://bcczcs.com注:作者信息请保留!否则必究法律责任!刘金玉编程,编程创造城市!作者微信号:selidev作者抖音号:selidev作者B站:刘金玉编程微信公众号:编程创造城市题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n"""# 第一种方法,这里建议可以按照题意去将奇偶数不同情况放到不同函数中def mycalc(n):fenmu = 2 if n % 2 == 0 else 1sum = 0
while fenmu <= n:sum += 1 / fenmufenmu += 2return sum
n = int(input("请输入一个数n:"))while n < 1:n = int(input("请输入一个数n:"))

print(mycalc(n))

# 第二种方法#奇数def fodd(n):print("处理奇数情况")s=0for i in range(1,n+1,2):s+=1/ireturn s#偶数def feven(n):print("处理偶数情况")s=0for i in range(2,n+1,2):s+=1/ireturn s
def fcall(fp,n):return fp(n)
if __name__ == '__main__':n=int(input("请输入一个数n:"))if n%2==0:print(fcall(feven,n))else:print(fcall(fodd,n))


总结:

这是一题函数映射方式的运用,range函数的巧妙运用。给我们带来的思考是在平时写代码时候,需要灵活使用已经学过的函数,了解已经用过的函数的功能,在写新的程序的时候考虑是否可以使用函数的某些方式来巧妙达到目标,这也是python语言精简的初衷。

更多Python基础操作知识,大家可以到B站/优酷/爱奇艺/好看视频/腾讯视频搜索“刘金玉”,可以找到《零基础Python教程》和《Python高级进阶教程》视频合集哦!全部免费亲情奉献!

联系作者:刘金玉

长按关注公众号

编程创造城市官网:https://bcczcs.com/