计算机二级python程序题|取模与精度
题目:请修改编辑器中的代码,让用户输入一个自然数 n,如果 n 为奇数,输出表达式 1+1/3+1/5+...+1/n 的值;如果 n 为偶数,输出表达式 1/2+1/4+1/6+...+1/n 的值。输出结果保留2位小数。
输入示例: 4
输出示例: 0.75
# 在____________上补充代码
#
def f(n):
___________(1)___________
if ___________(2)___________:
for i in range(1, n+1, 2):
s += 1/i
else:
for i in range(2, n+1, 2):
s += 1/i
return s
n = int(input())
print(___________(3)___________)
代码补全与解析
我们需要补全代码中的三个空缺部分,实现题目要求的功能:
def f(n):
s = 0 # (1) 初始化累加和为0
if n % 2 == 1: # (2) 判断n是否为奇数(取模运算)
for i in range(1, n+1, 2):
s += 1/i
else:
for i in range(2, n+1, 2):
s += 1/i
return s
n = int(input())
print("{0:.2f}".format(f(n))) # (3) 调用函数并格式化输出保留2位小数
#print(round(f(n),2)) #调用函数并通过四舍五入函数round取两位小数的精度。
关键补全说明
-
s = 0:用于初始化累加和变量,避免后续循环中s未定义报错。 -
n % 2 == 1:通过取模运算判断n是否为奇数,若结果为 1 则是奇数,否则为偶数。 -
"{0:.2f}".format(f(n)):调用函数f(n)计算结果,并使用字符串格式化保留 2 位小数,符合题目输出要求。
代码详解:
1. n = int(input())
这行代码的核心作用是从控制台获取用户输入的数字,并转换成整数类型,我们拆成3个部分来看:
|
代码部分 |
作用解释 |
举例说明 |
|---|---|---|
|
|
Python内置函数,功能是暂停程序运行,等待用户在控制台(终端/命令行)输入任意内容,按下回车后,会把用户输入的内容以字符串类型返回。 |
如果你在控制台输入 |
|
|
Python内置的类型转换函数,功能是把括号里的内容转换成整数类型。 |
|
|
|
赋值语句,把等号右边计算的结果,存储到名为 |
执行后,变量 |
完整执行流程:
程序运行到这行 → 控制台出现光标等待输入 → 你输入4并回车 → input()得到字符串"4" → int("4")转成整数4 → 把4赋值给变量n → 后续代码里的n就是整数4。
2. "{0:.2f}".format(f(n)) 详细解析
这行代码的核心作用是调用函数f(n)得到计算结果,再把结果格式化成保留2位小数的字符串,我们拆成3个核心部分:
第一步:先理解f(n)
f(n)是调用我们之前定义的函数f,并把变量n作为参数传递进去,函数会根据n是奇数/偶数计算对应的累加和,返回一个浮点数结果。
-
比如
n=3时,f(3)计算1 + 1/3 ≈ 1.333333...,返回这个浮点数; -
比如
n=4时,f(4)计算1/2 + 1/4 = 0.75,返回浮点数0.75。
第二步:理解字符串格式化"{0:.2f}".format(...)
这是Python的字符串格式化语法(也叫str.format()方法),用来把变量/计算结果按照指定格式拼接到字符串里,拆成两部分:
|
格式字符串部分 |
作用解释 |
|---|---|
|
|
格式模板,大括号 - - - |
|
|
把 |
具体示例:
-
当
f(n)=1.333333...时:
"{0:.2f}".format(1.333333...) → 按照四舍五入保留2位小数,结果是字符串"1.33";
-
当
f(n)=0.75时:
"{0:.2f}".format(0.75) → 刚好两位小数,结果是字符串"0.75";
-
当
f(n)=5时:
"{0:.2f}".format(5) → 会显示成"5.00"(补两位小数)。
第三步:print(...)(补充说明)
你之前的代码里这行应该是print("{0:.2f}".format(f(n))),print()的作用是把格式化后的字符串输出到控制台,让你能看到结果。
比如格式化后得到"1.33",print就会在控制台显示1.33。
额外补充(新手友好)
-
格式简写:
"{0:.2f}"可以简化成"{:.2f}",因为只有一个参数,0可以省略,效果完全一样,比如: -
print("{:.2f}".format(f(n))) # 和原代码效果相同,更常用 -
四舍五入规则:如果第三位小数≥5,会进一位,比如
1.335保留两位小数是1.34,1.334是1.33。 -
常见格式扩展:
-
{:.1f}:保留1位小数(比如1.333→1.3); -
{:.0f}:保留0位小数(只取整数,1.333→1,1.666→2)。
-
总结
-
n = int(input()):核心是获取用户输入的字符串并转成整数,存储到变量n中,为后续函数计算提供参数。 -
"{0:.2f}".format(f(n)):核心是将函数计算的浮点数结果,按“保留2位小数”的规则格式化,print则把格式化后的结果显示出来。 -
关键要点:
input()返回字符串,必须用int()转成整数才能参与数值计算;.2f是控制小数位数的核心格式符,会自动四舍五入。
更多推荐

所有评论(0)