Python TypeError:只能将元组(而不是“str”)连接到元组

Python TypeError:只能将元组(而不是“str”)连接到元组,python,encryption,tuples,Python,Encryption,Tuples,我知道还有其他几个问题也在问同样的问题,但当我跑步时: 导入命令 从pyDes进口* def encrypt(data, password,): k = des(password, CBC, "\0\0\0\0\0\0\0\0", pad=None, padmode=PAD_PKCS5,) d = k.encrypt(data,) return d def decrypt(data, password,): k = des(password, CBC, "\0\0

我知道还有其他几个问题也在问同样的问题,但当我跑步时: 导入命令 从pyDes进口*

def encrypt(data, password,):
    k = des(password, CBC, "\0\0\0\0\0\0\0\0", pad=None, padmode=PAD_PKCS5,)
    d = k.encrypt(data,)
    return d
def decrypt(data, password,):
    k = des(password, CBC, "\0\0\0\0\0\0\0\0", pad=None, padmode=PAD_PKCS5,)
    d = k.decrypt(data,)
    return d
command1 = commands.getstatusoutput('ifconfig',)
encrypted = encrypt(command1, '12345678',)
我明白了:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in encrypt
  File "build/bdist.macosx-10.6-universal/egg/pyDes.py", line 658, in encrypt
  File "build/bdist.macosx-10.6-universal/egg/pyDes.py", line 195, in _padData
TypeError: can only concatenate tuple (not "str") to tuple
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
加密中第3行的文件“”
文件“build/bdist.macosx-10.6-universal/egg/pyDes.py”,第658行,加密
文件“build/bdist.macosx-10.6-universal/egg/pyDes.py”,第195行,in_padData
TypeError:只能将元组(而不是“str”)连接到元组

我知道这已经被问了好几次了,但我似乎无法通过像其他问题一样将逗号放在正确的位置来实现这一点。

函数需要一个单元素元组作为参数。要在Python中明确指定一个单元素元组,需要使用括号:

tuple_containing_only_zero = (0,)   # note the comma!
>>> longer_tuple = 1, 2, 3, 4, 5
>>> longer_tuple
(1, 2, 3, 4, 5)
逗号是Python中元组的实际构造函数,因此可以指定更长的元组,而不需要括号:

tuple_containing_only_zero = (0,)   # note the comma!
>>> longer_tuple = 1, 2, 3, 4, 5
>>> longer_tuple
(1, 2, 3, 4, 5)
但是如果您正在调用一个函数:

f(x, y,)   # is y a 1-tuple or a SyntaxError?

一个没有paren的元组将是难看和不明确的。

我不知道这个特定的模块,但是试试这个:
encrypted=encrypt(command1,('12345678')
。如果有效的话,我会写一个答案,让你知道为什么。这很有效。谢谢@两位炼金术士答应了,一个有进一步解释的答案