0

最近,我开始尝试重新开始编程。在尝试运行以前制作的脚本(将遵循)只是为了看看我是否让它处于工作状态时,经过几秒钟的处理,我遇到了两个错误。检查代码似乎是正确的,但再次尝试会导致与预期相同的结果。我通过 python 调试器 ( python -m pdb) 运行它,它运行完美。继续这一思路,我尝试python luhn.py再次通过 python 解释器运行它,完美无瑕。

这个特殊的盒子是 Linux Sabayon 64bit(Python 版本 2.7.5),它与最初编写脚本的系统类似,也是 sabayon 64bit。可能是什么原因?我尝试重置终端(使用stty sanereset)无济于事。

卢恩.py

# 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)
4

2 回答 2

2

#!/usr/bin/python应该在第一行。操作系统查看前两个字节 ( #!) 以确定您要求它执行的文件是什么。

于 2013-09-04T23:11:13.050 回答
2
# Luhn Check in python
#!/usr/bin/python

交换这些。#!/usr/bin/python必须是第一行的第一件事。

于 2013-09-04T23:12:02.980 回答