定义vigenere的python vigenere问题

定义vigenere的python vigenere问题,python,python-3.x,Python,Python 3.x,我必须定义要在上面的程序中实现的函数vigenere,但有错误 TypeError:-:“str”和“int”的操作数类型不受支持 在我看来,变量k是一个字符串。老实说,我认为错误信息非常清楚。k的确切用途是什么?也许ord(k)或chr(k)会起作用?或者k必须是一个整数。定义此函数vigenere的目的是在程序中使用上述函数来实现vigenere。但是当我使用ord(k)时,错误是“TypeError:ord()需要一个字符,但找到了长度为2的字符串”,而chr(k)给出了“TypeErro

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

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


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

定义此函数vigenere的目的是在程序中使用上述函数来实现vigenere。但是当我使用ord(k)时,错误是“TypeError:ord()需要一个字符,但找到了长度为2的字符串”,而chr(k)给出了“TypeError:AnInteger是必需的(Get type str)”,我的目的是它应该迭代用户输入的整个键
#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)