乐思 发表于 2023-3-13 21:51:09

死循环

passwd = input('请输入您的密码:')
length = len(passwd)
while (passwd.isspace() or length == 0):
    passwd = input('您输入的密码为空,请重新输入:')
为什么以上程序两次输入空后就进入了死循环,再次输入字符还是提示再次输入,无法跳出循环。

wyhpylc 发表于 2023-3-13 21:55:05

passwd = input('请输入您的密码:')
length = len(passwd)
while (length == 0):
    passwd = input('您输入的密码为空,请重新输入:')

wyhpylc 发表于 2023-3-13 21:56:44

wyhpylc 发表于 2023-3-13 21:55


这样改,因为如果输入不是空的时候,or左右两个规则都遵守,但是or是只有其中一个为真才为真,两个都为真或假就返回False

wyhpylc 发表于 2023-3-13 21:57:18


passwd = input('请输入您的密码:')
length = len(passwd)
while (passwd.isspace() and length == 0):
    passwd = input('您输入的密码为空,请重新输入:')
这样也行

Threebody1 发表于 2023-3-13 22:11:42

wyhpylc 发表于 2023-3-13 21:57
这样也行

是因为 length 只测试了一次啦
把 length 改成len(passwd)

不凡的害虫 发表于 2023-3-13 22:13:01

本帖最后由 不凡的害虫 于 2023-3-13 22:15 编辑

{:5_92:}

歌者文明清理员 发表于 2023-3-13 22:14:11

Threebody1 发表于 2023-3-13 22:11
是因为 length 只测试了一次啦
把 length 改成len(passwd)

不好意思用小号发了
最佳答案记得给大号

isdkz 发表于 2023-3-13 22:37:21

歌者文明清理员 发表于 2023-3-13 22:14
不好意思用小号发了
最佳答案记得给大号

暴露了{:10_334:}

奔跑的郭蛋蛋 发表于 2023-3-14 12:40:15

题主的这个编码设定个人觉着不应该使用while循环,而应该使用if/else语句

歌者文明清理员 发表于 2023-3-14 16:37:01

isdkz 发表于 2023-3-13 22:37
暴露了

暴露了啥

isdkz 发表于 2023-3-14 16:37:39

歌者文明清理员 发表于 2023-3-14 16:37
暴露了啥

暴露了你的小号{:10_256:}

歌者文明清理员 发表于 2023-3-14 16:40:47

isdkz 发表于 2023-3-14 16:37
暴露了你的小号

https://fishc.com.cn/thread-225182-1-1.html
https://fishc.com.cn/thread-225537-1-1.html

wyhpylc 发表于 2023-3-14 19:08:34

Threebody1 发表于 2023-3-13 22:11
是因为 length 只测试了一次啦
把 length 改成len(passwd)

草(三声)没注意看{:10_245:}
页: [1]
查看完整版本: 死循环