这是我的代码,它接受一个文件中的ISBN号,然后使用两个部分和,检查它是否可以被11整除,以确保它是有效的。我的问题是我应该把我刚测试过的代码写进一个文件,然后写上它是有效的还是无效的。我不太懂文件,这就是为什么我请求帮助。写入文件的文本应该如下所示:
0-1315-2447-X有效
0-89237-010-9无效
def main():
in_file = open('isbn.txt','r')
for line in in_file:
print(line)
s1 = list(line)
in_file.close()
hyphen = '-'
for i in s1:
if i == hyphen:
s1.remove (hyphen)
print (s1)
partial_sums(s1)
def partial_sums(s1):
lst1 =[]
sum = 0
for i in range(len(s1)):
if i == (len(s1) -1) and s1[i] == "X":
sum = sum + 10
else:
sum = sum + int(s1[i])
lst1.append(sum)
print(lst1)
sum_of_s1(lst1)
def sum_of_s1(s2):
lst2 = []
sum = 0
for i in s2:
sum += i
lst2.append(sum)
print(lst2)
check(lst2[-1])
def check(value):
if value % 11 ==0:
print("valid")
else:
print("invalid")
main()
假设代码的逻辑是正确的,为了将输出写到一个文件中,您需要有从输入文件中读取的行,即
check
方法中可用的s1
。因为check
方法是您决定它是有效还是无效的。在所以在你的
check
方法中:为了让
check
方法访问s1
,必须将s1
作为第二个参数从函数partial_sums
传递给sum_of_s1
。从那里到check
。在其他注意事项:
建议不要使用
sum
作为变量名。sum
是库函数的名称。在
^{pr2}$main
函数中,可以替换代码:有:
打开文件,并将所有数字追加到列表中。然后看看这些合并后的整数值是否可以被11整除。如果是,则打印
'valid'
。否则,请打印'invalid'
。在相关问题 更多 >
编程相关推荐