python - 如何在我的代码中修复 “ValueError: invalid literal for int() with base 10: ' ' ”

标签 python sockets

我实际上是使用python curses库实现经典的多人游戏。我已经制作了一个snake.py文件作为客户端,并为此制作了一个server.py文件。我尝试查看数据并确保我正确解析了接收到的数据并正确发送,以确保我没有发送空字符串,但仍然在snake.py上,我的服务器在开始时发送的位置是一个空字符串,函数解析无法转换,因为int()无法转换空字符串。

这是我的代码的链接,您只应打开server_multi.py和server.py。

https://github.com/hamza24farrukh/Netcen-cs-382/tree/master/assignment2/snake%20IO

这是指向我两个终端的图片的两个链接
https://imgur.com/b2Anuw5

https://imgur.com/dtybwtW

主要问题是如何修复我的代码,以便它开始在两个客户端之间发送和接收数据,这就是我打开snake_multi.py文件的两个实例时的情况。我已经实现了线程处理,而我的服务器无法以某种方式发送奇怪的数据,而客户端却无法对其进行解析。请指出我在实现过程中犯了一个错误。

最佳答案

>>>int('33')
33
>>>int('33.44')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '33.44'

因此,python可以识别整数字符串,但是如果它获得无效的字符串或浮点值,它将引发ValueError
>>> int('')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: ''

因此,这是您的代码中的错误。检查一下。
您也可以使用
try:
   int('') #or your code
except ValueError:
   pass      # or whatever

关于python - 如何在我的代码中修复 “ValueError: invalid literal for int() with base 10: ' ' ”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56141277/

相关文章:

python - pip install numpy 没有安装文件

c++ - 通过套接字多路复用数据

c++ - 当没有数据可读时,读取套接字会给出 errno EAGAIN,而且如果我断开网络连接

用于共享和关闭文件描述符的 linux 辅助数据

android - 使用 JNI 通过 UNIX 域套接字发送 Java FD

linux - connect() 可以使用非阻塞套接字返回 0 吗?

python - 为什么在 Python 中创建一个类比实例化一个类要慢得多?

python - 在未捕获的主线程异常上优雅地退出子线程

Python:根据 Excel 的值打印单元格

python - 在 Delphi XE 中从网站的 API 获取并显示 json 数据