擅长:python、mysql、java
<p>对顶部块使用while循环可能是一个很好的起点。然后你可以在同一个步骤中求和并取模数。不知道你是否能把剩下的更简洁</p>
<pre><code>number7= input("Enter a 7 digit number: ")
listnum= list(number7)
newnum=list(number7)
count = 0
while count < 7:
listnum[0+count] = int(listnum[0+count])*(8-count)
count += 1
modnum= sum(listnum) % 11
if modnum== 10:
checkdigit=X
else:
checkdigit=11-modnum
newnum.append(str(checkdigit))
strnewnum = ''.join(newnum)
print('New number:', strnewnum)
</code></pre>
<hr/>
<p>编辑:</p>
<p>如果要以ISSN格式打印,请将If else语句后的代码更改为:</p>
<pre><code>newnum.append(str(checkdigit))
strnewnum = ''.join(newnum)
strnewnum = '-'.join([strnewnum[:4], strnewnum[4:]])
print('ISSN:', strnewnum)
</code></pre>