为什么我的Caesar Cipher程序没有显示我的加密消息?分辨率也关闭了吗?

时间:2016-03-03 02:47:04

标签: python user-interface

我在Python中为类创建了一个Caesar Cipher程序,当我点击加密按钮时我遇到了错误。按钮的大小也完全没有了,我无法弄清楚如何改变它。我是Python的新手,所以请用最简单的术语表达。

这是我遇到的错误之一

<tr ng-repeat="item in items | filter:{name:nameSearch,job.title:jobSearch}">
    <td>{{item.name}}</td>
    <td>{{item.job.title}}</td>
</tr> 

但是注意到的任何其他错误也会有所帮助。

谢谢!

Traceback (most recent call last):
  File "/Users/Chandler/Desktop/caesar/CSCI220-Assign2-CaesarEncode-CTL.py", line 67, in <module>
    main()
  File "/Users/Chandler/Desktop/caesar/CSCI220-Assign2-CaesarEncode-CTL.py", line 44, in main
    while not contains(buttonPoint1, win.getMouse()):
TypeError: contains() missing 1 required positional argument: 'ptIn'

1 个答案:

答案 0 :(得分:0)

即使用三个参数定义,您也使用2个参数调用contains。

    while not contains(buttonPoint1, win.getMouse()):
        None
    win.close()

def contains(pt1, pt2, ptIn):
    return pt1.getX() < ptIn.getX() and ptIn.getX() < pt2.getX()
    pt1.getY() < ptIn.getY() and ptIn.getY() < pt2.getY()

File "/Users/Chandler/Desktop/caesar/CSCI220-Assign2-CaesarEncode-CTL.py", line 44, in main
while not contains(buttonPoint1, win.getMouse()):

您在contains()的定义中缺少。如果您希望contains()的定义返回完整的真假值,则应为

def contains(pt1, pt2, ptIn):
    return pt1.getX() < ptIn.getX() and ptIn.getX() < pt2.getX() and
    pt1.getY() < ptIn.getY() and ptIn.getY() < pt2.getY()

如你所知,它将返回第一行的值并忽略第二行。

另一个可能的错误可能是

for char in text:

我没有看到文本已初始化并传递到encrypt(message, key)的位置。您不使用输入参数message。你可能想要使用另一个使用另一个的地方。