2012-04-23 162 views
0

我遇到了问题。下面的程序在运行时发出嘟嘟声,而我没有编入程序。我在笔记本电脑上运行Windows 7,并想知道为什么会发生这种情况。Python程序运行时发出哔声?

我的代码基本上是一个简单的小加密器。它还不能处理ASCII范围之外的事情,但这超出了这个问题的范围。

最后,我想知道,它为什么会发出哔声? (注:这是从一个类这就是为什么包括个体经营)

def encrypt(self,message,private_key): 
    import random 
    self.message=str(message) 
    self.private_key=int(private_key) 
    self.public_key="" 
    self.final_message="" 
    self.errors=[] 
    for letter in str(self.message): 
     y=random.randrange(0,ord(letter)) 
     a=y+self.private_key 
     x=ord(str(letter))^a 
     if x in range(0,256): 
      z=chr(x) 
      self.final_message=self.final_message+str(z) 
      self.public_key=self.public_key+str(chr(y)) 
     else: 
      char="Letter: "+str(letter)+", ASCII value unabled to be processed: "+str(x)+" using keys: "+"Private key: "+str(self.private_key)+" Random Key: "+str(y) 
      self.errors.append(char) 
    print "Message: "+str(self.message) 
    print 
    print "Length of Message: "+"["+str(len(str(self.message)))+"]" 
    print 
    print "Final Message: "+"["+str(self.final_message)+"] "+"length of message: "+str(len(str(self.final_message))) 
    print 
    print "Public Key: "+"["+str(self.public_key)+"] "+"length of key: "+str(len(str(self.public_key))) 
    print 
    print "Private Key:"+"["+str(self.private_key)+"]" 
    if len(self.errors)!=0: 
     print "errors: " 
     print 
     for error in self.errors: 
      print error 
      print 
+1

什么是关键的'print'报表的格式?可能性是,有一个字节在那里终端正在解释为嘟嘟声字符 – tMC 2012-04-23 16:27:14

+0

@ tMC他们是ASCII字符。 – 2012-04-23 16:28:00

+1

但是它们中的任何一个是ASCII码7?您可以使用中的“if'\ x07':print'bell'”进行快速检查。 – DNS 2012-04-23 16:31:27

回答

0

如果您随时打印ASCII码7,则可能会使控制台/终端发出哔声。

试试:

>>> print chr(7)