记录一下
代码
def judgeIfISBN(s):
numList = []
ans = 0
for i in s:
if i != '-':
numList.append(i)
# print(len(numList))
for j in range(0,len(numList) - 1):
if(numList[j] != 'X'):
# print(numList[j])
ans += int(numList[j])*(j+1)
else:
ans +=10*(j+1)
res = ans%11
if s[-1] == 'X':
if res == 10:
print('Right')
return
else:
print(s[0:-1] + str(res))
else:
if res==int(s[-1]):
print('Right')
else:
if res == 10:
print(s[0:-1] + 'X')
else:
print(s[0:-1] + str(res))
anISBN = input()
judgeIfISBN(anISBN)
这题其实挺简单的,就是要注意一下:
- 输入的ISBN最后一位为X
- 输出(如果要的话)的ISBN最后一位为X
- int() 内的内容要是数字才行 // isdigit
犯的错误:
- 切片区间是左闭右开,又忘了以为是闭区间
- string 的子元素还是string,所以
for i in str: num = i - '0' # 错误的用法,不要和c混了
### 要用ord() 函数