Python 2.7 python中的文本到十六进制程序有问题

Python 2.7 python中的文本到十六进制程序有问题,python-2.7,Python 2.7,我对python编程相当陌生,但我正在尝试为一个学校项目编写自己的简单加密程序。经过大量的研究,我终于开始学习了,主要是关于不同python命令的语法。无论如何,我的代码的一部分涉及将两行文本(key和msg)转换为十六进制,以便执行我的简单加密算法。虽然一切看起来都是正确的,但我有时会得到十六进制字符串末尾带有大写字母L的输出。(下面的代码示例)任何建议都会很有帮助 例如,假设msg=“hello world”和key=“/abc” # define functions def functi

我对python编程相当陌生,但我正在尝试为一个学校项目编写自己的简单加密程序。经过大量的研究,我终于开始学习了,主要是关于不同python命令的语法。无论如何,我的代码的一部分涉及将两行文本(key和msg)转换为十六进制,以便执行我的简单加密算法。虽然一切看起来都是正确的,但我有时会得到十六进制字符串末尾带有大写字母L的输出。(下面的代码示例)任何建议都会很有帮助

例如,假设msg=“hello world”和key=“/abc”

# define functions

def function_hex(string, length):
  variable = "0x00"
  for i in xrange(0, length):
    n = ord(string[i])
    variable = hex(256 * int(variable, 16) + n)      #line 24
  return variable

# transform input / key to hex

msg_hex = function_hex(msg, msg_length)              #line 29
print msg_hex

key_hex = function_hex(key, key_length)
print key_hex
输出

message:  hello world
key:  /abc
encrypt or decrypt:  encrypt
Traceback (most recent call last):
  File "python", line 29, in <module>
  File "python", line 24, in function_hex
ValueError: invalid literal for int() with base 16: '0x68656c6c6f20776f72L'
消息:你好,世界
键:/abc
加密或解密:加密
回溯(最近一次呼叫最后一次):
文件“python”,第29行,在
函数_hex中的文件“python”,第24行
ValueError:基为16的int()的文本无效:“0x68656c6c6f20776f72L”
Sam, 我能推荐一个更好的方法吗

# define functions
msg = "hello world"
key = "/abc"

def function_hex(s):
    return "0x" + "".join("{:02x}".format(ord(c)) for c in s)

# transform input / key to hex

msg_hex = function_hex(msg)
print msg_hex

key_hex = function_hex(key)
print key_hex