得到的结果不是字符串啊!
你说得对,返回的是数字,不是字符串,如果严格要求返回的是字符串的话,加上引号就可以了,代码稍作修改如下:
def SeriesSum(n):
sum=0
for i in range(1,n+1):
sum=sum+1.0/((i-1)*3+1)
return sum
temp=input("请输入参数n:")
if(temp.isdigit()):
print('"'+'%.2f' % SeriesSum(int(temp))+'"')
else:
print("只能输入自然数,请稍后重试...")
参考 看看答案。 如果整数也保留小数点后2位
SeriesSum = lambda n: "%.2f"%sum(1/(i*3+1) for i in range(n))
如果整数要去小数点
def SeriesSum(n):
the_sum = sum(1/(i*3+1) for i in range(n))
return "%.2f"%the_sum if the_sum%1 else "%.0f"%the_sum def SeriesSum(n):
sum=0
for i in range(n):
sum+=1/(i*3+1)
return round(sum,2)
print(SeriesSum(1))
print(SeriesSum(2))
print(SeriesSum(5)) def SeriesSum(n):
if n == 0 or n == 1:
return n
else:
result = 0
fenmu = 1
for i in range(0,n):
result += 1/fenmu
fenmu += 3
return '%.2f' % result
print(SeriesSum(1))
print(SeriesSum(2))
print(SeriesSum(5)) 本帖最后由 咕咕鸡鸽鸽 于 2019-2-25 14:33 编辑
def fun73(num):
try:
if num > 0:
sum1 = 0
str1 = ""
for each in range(num):
sum1 += 1/(3*each+1)
str1 = str1 + "1/" + str(3*each+1) + " + "
str1 = str1[:-3] + " = " +str(round(sum1,2))
elif num == 0:
str1 = "0 = 0"
else:
str1 = "输入不符合规范"
except:
str1 = "输入不符合规范"
return str1
print(fun73(6)) 谢谢分享 1 看看答案
def fun73(x):
result = 0
denominator = 1
if x == 0:
return result
for i in range(x):
result += 1/denominator
denominator += 3
if int(result) == result:
return str(int(result))
return str(round(result,2))
if __name__ == '__main__':
print(fun73(1))
print(fun73(2))
print(fun73(5))
1
1.25
1.57
>>> SeriesSum=lambda x:str(sum())[:4]总是有误差…… 看看 def SeriesSum(n):
total = 0
base = 1
for each in range(1,n+1):
total += 1/base
base += 3
return '{:.2f}'.format(total)
print(SeriesSum(5))
def SeriesSum(num):
n = 1
res = 0
for i in range(num):
res += 1/n
n += 3
return '%.2f' %res def f_73(n):
return round(sum(), 2)
print(f_73(2)) 学习
def SeriesSum(num):
if num == 0:
return '0'
elif num == 1:
return '1'
elif num >1:
return '%.2f'%(sum())
num = int(input('请输入一个自然数:'))
print(SeriesSum(num)) 1
页:
1
[2]