我无法直接运行python脚本的原因是什么?

问题描述 投票:0回答:2

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

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

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)
python linux terminal
2个回答
2
投票

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


2
投票
# Luhn Check in python
#!/usr/bin/python

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

© www.soinside.com 2019 - 2024. All rights reserved.