Python:AttributeError:“int”对象没有属性“isalpha”

2024-10-06 08:43:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望使用客户机/服务器在python中创建一个Caesar的密码函数。客户端发送带有密钥的消息,服务器对其进行加密。 服务器代码:

import socket

def getCaesar(message, key):
    result=""
    for l in message:
        if l.isalpha():
            num = ord(l)
            num += key

            if l.isupper():
                if num > ord('Z'):
                    num -= 26
                elif num < ord('A'):
                    num += 26

            elif l.islower():
                if num > ord('z'):
                    num -= 26
                elif num < ord('a'):
                    num += 26

            result += chr(num)
        else:
            result += l
return result    

serverSock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host=socket.gethostname()
port=4000

serverSock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

serverSock.bind((host,port))
serverSock.listen(5)
print("Listenting for requests")
while True:
    s,addr=serverSock.accept()
    print("Got connection from ",addr)
    print("Receiving...")

    message=s.recv(1024)
    key=s.recv(1024)

    resp=getCaesar(message, key)
    print('Ciphertext: ')
    print(resp)

serverSock.close()

不断被调用的行是第6行:“if l isalpha():”并给出错误: AttributeError:“int”对象没有属性“isalpha”。 这个错误是什么意思?在

客户端程序:

^{pr2}$

Tags: key服务器hostmessageforifsocketresult
1条回答
网友
1楼 · 发布于 2024-10-06 08:43:23

在python3中,^{}返回一个不可变的序列^{}。每个元素都有类型int,并且在范围[0255]内。^{}str的方法,而不是{}的方法。在

如果希望将服务器响应视为字符串,可以对字节进行解码。在

string = response.decode('utf-8')

for c in string:
    if c.isalpha():
        [...]

相关问题 更多 >