版权声明:转载请注明作者(独孤尚良dugushangliang)出处: https://blog.csdn.net/dugushangliang/article/details/90075521
之前一直没注意到input()函数的那么多坑,可能是因为自己输入输出都比较规范,也没想到别的非法输入的问题。无意间发现了input()函数的一个坑。
a=input("输入:")
print(a=='')
上面的代码执行后没有输入任何内容直接回车的结果如下:
这说明我们完成了输入,但输入的是空字符串,而socket并没有执行下面这行代码,结果导致了错误,意即socket不会发送空字符串。
c.send(a.encode('utf-8'))
鄙人先前未预料到这个问题,结果入坑了。后来想到了解决办法:
a=input("输入:")
while a=='':
a=input("输入:")
c.send(a.encode('utf-8'))
此即,我们获得输入后,让它进入一个while循环,只要你始终输入的是空字符串,你就继续输入吧,等你输入的不是空字符串了,即你不是直接回车了,我就放过你。
独孤尚良dugushangliang——著