我不知道您是否需要使用array 库,但我看不到它的用处。你想用它来提高效率吗?如果是这种情况,请参阅 2 在 python 中,您可以将变量的值设置为空的list,因此您可以在代码中进一步使用它。例如:
l = []
for i in range(3):
l.append(i)
print(l) # prints [0, 1, 2]
所以在你的情况下你可以这样做:
1)
print("\t\t\tEnter Marks of the following subjects out of 100 :\n")
marks = []
for x in range(5):
marks.append(float(input("Enter marks of {0} subject : ".format(x+1))))
print("Calculating...")
sum = 0
for mark in marks:
sum += x # if x is a float in any of the loops then the sum will be a float.
print("Total Marks (Out Of 500) = ", sum)
或者如果您需要使用array 包:
2)
import array
marks = array.array("f")
for i in range(5):
marks.append(float(input("Enter marks of {0} subject : ".format(i+1))))
sum = 0
for mark in marks:
sum += mark
print("Total Marks (Out Of 500) =", float(sum)) # prints the float value of the sum
这似乎不需要那么高效,而且您可能不会通过使用array 库来更快地获取程序。使用timeit 模块查看哪个程序运行得更快。
import timeit
timeit.timeit(stmt="""import array
in_marks = [80, 80.2, 80, 80, 80]
marks = array.array("f")
for i in range(5):
marks.append(float(in_marks[i]))
sum = 0
for mark in marks:
sum += mark
# print("Total Marks (Out Of 500) =", float(sum)) # prints the float value of the sum""", number=1000000)
# This took 1.7964587999999821 seconds to run 1.000.000 times
# And 0.19057900000007066 to run 100.000 times
这是没有图书馆的:
import timeit
timeit.timeit(stmt="""
in_marks = [80, 80.2, 80, 80, 80]
marks = []
for i in range(5):
marks.append(float(in_marks[i]))
sum = 0
for mark in marks:
sum += mark
# print("Total Marks (Out Of 500) =", float(sum)) # prints the float value of the sum""", number=100000)
# This took 1.271052900000086 seconds to run 1.000.000 times
# And 0.12818579999998292 seconds to run 100.000 times
没有它,Python 似乎会更快,因为该程序不会进行任何繁重的计算,因此通过导入库您会浪费一些时间,并且从长远来看不会获得任何收益。
要删除代码中的结尾数字,您可以 round() 浮点数到小数点后 2 位,就像 @Laurent Brisiel 建议的那样。