python通过socket结合input()函数发送消息在输入时直接回车但socket并未发送的坑

版权声明:转载请注明作者(独孤尚良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——著

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值