最近我开始尝试重新编程。在尝试运行以前制作的脚本(将跟随)时,为了看看我是否将其保持在工作状态,经过几秒钟的处理后我遇到了两个错误。检查代码似乎是正确的,但再次尝试会导致与预期相同的结果。我通过python调试器(python -m pdb
)运行它运行完美。继续我的想法,我尝试再次通过python解释器运行它作为python luhn.py
,完美无瑕。
这个特殊的盒子是Linux Sabayon 64bit(Python版本2.7.5),它与脚本最初编写的系统相似,也是sabayon 64bit。可能是什么原因?我尝试重置终端(使用stty sane
和reset
)无济于事。
l u还能.朋友
# Luhn Check in python
#!/usr/bin/python
import random
def generate():
card = []
for i in range(0,16):
card.append(random.randrange(0,9))
return card
def compress(number):
result = 0
strNum = str(number)
if len(strNum) >= 2:
result = compress(int(strNum[0]) + int(strNum[1]))
else:
result = number
return result
def addition(card):
total = 0
for i in range(0,16,2):
total += compress( card[i]*2 )
for i in range(1,16,2):
total += int(card[i])
return total
cardNumber = generate()
print cardNumber
checksum = addition(cardNumber)%10
if (cardNumber[15]+(10-checksum)) in range(0,9):
cardNumber[15] += (10-checksum)
elif (cardNumber[15]-checksum) in range(0,9):
cardNumber[15] -= checksum
print cardNumber, addition(cardNumber)
#!/usr/bin/python
应该在第一线。操作系统查看前两个字节(#!
)以确定您要求它执行的文件是什么。
# Luhn Check in python
#!/usr/bin/python
交换这些。 #!/usr/bin/python
必须是第一线上的第一件事。