gpt4 book ai didi

python - python中的hackerrank平均函数

转载 作者:行者123 更新时间:2023-12-01 23:48:24 27 4
gpt4 key购买 nike

大家好,我试过运行这段代码,它在大多数测试中一直失败,我不知道问题出在哪里!!

#!/bin/python

import math
import os
import random
import re
import sys


# write your code here
def avg(*num):
if len(num)==0:
return None
sum=0
for i in num:
sum=sum+i
moy=sum/len(num)
return(moy)



if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')

nums = map(int, raw_input().split())
res = avg(*nums)

fptr.write('%.2f' % res + '\n')

fptr.close()

最佳答案

您可以在编码时考虑一些更正:

  1. sum=0 - 您正在使用 sum这是 Python 的内置函数。使用预定义名称不是一种有效的编码方式。

  2. moy=sum/len(num) - 这行代码浪费了 Python 编译器的大量时间,因为您要求它从第一次迭代到最后一次迭代执行计算,其中只有计算所有数字的总和时的最后一次迭代才需要求平均值。

  3. moy=sum/len(num) - 标准除法符号 (/) 在应用于整数时在 Python 3 和 Python 2 中的运行方式不同。

    在 Python 3 中将一个整数除以另一个整数时,除法运算 x/y 表示真正的除法(使用 __truediv__ 方法)并产生浮点结果.同时,Python 2 中的相同操作代表了一个经典的除法,它将结果向下舍入到负无穷大(也称为取整)。

    意思是,5/2 在 Python2 中是 2.00 而在 Python3 中是 2.50

    类型转换更好:float() - 此函数用于将任何数据类型转换为 float 。

固定代码:

def avg(*num):
if len(num)==0:
return None
sum_num=0
for i in num:
sum_num += i
return(float(sum_num)/len(num))

关于python - python中的hackerrank平均函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63828381/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com