我相信这对你来说是一个非常基本的问题,但我正在为我的计算课制作一个 ISBN 校验位计算器。我目前的代码是这样的:
isbn = []
results = []
print("Please input your ISBN 1 number at a time")
def isbn_input():
isbn.append(int(input("ISBN character 1: ")))
isbn.append(int(input("ISBN character 2: ")))
isbn.append(int(input("ISBN character 3: ")))
isbn.append(int(input("ISBN character 4: ")))
isbn.append(int(input("ISBN character 5: ")))
isbn.append(int(input("ISBN character 6: ")))
isbn.append(int(input("ISBN character 7: ")))
isbn.append(int(input("ISBN character 8: ")))
isbn.append(int(input("ISBN character 9: ")))
isbn.append(int(input("ISBN character 10: ")))
isbn_input()
results.append(isbn[0] * 11)
results.append(isbn[1] * 10)
results.append(isbn[2] * 9)
results.append(isbn[3] * 8)
results.append(isbn[4] * 7)
results.append(isbn[5] * 6)
results.append(isbn[6] * 5)
results.append(isbn[7] * 4)
results.append(isbn[8] * 3)
results.append(isbn[9] * 2)
results = sum(results)
results = results % 11
results = 11 - results
print("Your ISBN is'",
isbn[0],isbn[1],isbn[2],isbn[3],
isbn[4],isbn[5],isbn[6],isbn[7],
isbn[8],isbn[9],results,"'")
我知道这是一种非常低效的做法,你可能甚至看着它都在哭。
为了提高效率,我做的第一件事是使用 for 循环。所以,我改变了:
def isbn_input():
isbn.append(int(input("ISBN character 1: ")))
isbn.append(int(input("ISBN character 2: ")))
isbn.append(int(input("ISBN character 3: ")))
isbn.append(int(input("ISBN character 4: ")))
isbn.append(int(input("ISBN character 5: ")))
isbn.append(int(input("ISBN character 6: ")))
isbn.append(int(input("ISBN character 7: ")))
isbn.append(int(input("ISBN character 8: ")))
isbn.append(int(input("ISBN character 9: ")))
isbn.append(int(input("ISBN character 10: ")))
到一个 for 列表,但我还没有想出如何做到这一点。这是我需要帮助的一点(另外,我知道这个功能毫无意义。我们的老师要求我们有一个,但如果有人能找到更好的方法,那也太棒了)
非常感谢您的帮助。同样,如果您发现任何可以做得更好的东西,那么请这样做。(另外,这是 python 3。)