#python-3.x #sockets
#python-3.x #сокеты
Вопрос:
Я создал клиент в python3, где я могу получать данные с сервера, и выходные данные отображаются в виде столбца чисел, но тип данных — строка. Итак, пока я делаю это, мне нужно будет преобразовать столбец чисел, который является строкой, в целое число, чтобы выполнить какие-либо вычисления. Однако вот последний код, который я выполнил, и ошибки, которые я получил, показали, что индекс находится вне диапазона.
import socket
import re
SERVER_HOST = "<name of server>"
SERVER_PORT = <port number>
BUFFER_SIZE = 1024
host = socket.gethostbyname(SERVER_HOST)
port = SERVER_PORT
server = socket.socket()
server.connect((host, port))
while True:
data = server.recv(1024)
print(data)
res = [int(i) for i in data.split() if i.isdigit()]
print(str(res))
multiply_data = int(res[0]) * int(res[1])
print(multiply_data)
divide_data = multiply_data / int(res[2])
print(divide_data)
server.sendall(str(divide_data))
server.close()
Я вижу вывод чисел, и строки превратились в массив чисел, и вычисление выполняется, но оно вернуло ошибку в строке, где я умножаю первые два индекса, и ошибка гласит «индекс списка вне диапазона».
Комментарии:
1. Можете ли вы также опубликовать вывод и обратную трассировку ошибки?
2. Он просто говорит: Трассировка (последний последний вызов): Файл «server.py «, строка 20, в <module> multiply_data = int(res[0]) * int (res[1]) Ошибка индекса: список индексов вне диапазона
3. Пожалуйста, обновите выходные данные (включая все отпечатки), строку, полученную в разделе «данные», и обратную трассировку, о которой идет речь. чтобы другим было полезно помочь вам.