【问题标题】:python vigenere problem with defining vigenere定义vigenere的python vigenere问题
【发布时间】:2019-09-02 10:33:19
【问题描述】:

我必须在上面的程序中定义函数vigenere来实现但是错误

TypeError: -: 'str' 和 'int' 的操作数类型不受支持

#checking for upper case and lower case by applying formula for chr and ord and implementing function vigenere

def vigenere(c, k):

     if c.isupper():
         return chr(((ord(c)-65 +ord(k) for x in k-65)%26)+65)
     else:
         return chr(((ord(c)-97 +ord(k) for x in k-97)%26)+97)

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    在我看来,您的变量 k 是一个字符串。老实说,我认为错误信息很清楚。 k 的确切用途是什么?也许ord(k)chr(k) 会起作用?要么,要么k 必须是整数。

    【讨论】:

    • 定义这个函数vigenere的目的是为了在程序中使用上面的来实现vigenere。但是当我使用 ord(k) 时,错误是“TypeError: ord() 期望一个字符,但找到长度为 2 的字符串”
    • 而 chr(k) 给出“TypeError: an integer is required (got type str)” 我的目的是它应该遍历用户输入的整个键
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多