Crossin的编程教室

标题: 【求助】while语句时有逻辑问题 [打印本页]

作者: 拥有玫瑰的星空    时间: 2018-8-1 11:02
标题: 【求助】while语句时有逻辑问题
     我是想让用户重复输入包含‘聪明‘或’傻‘字的语句,输入其他内容时则提示错误,输入’聪明‘之前可以不断输入。
     现在的问题是:在用户输入’聪明‘后,程序会把“输入其他内容时的提示”也一起打印出来。
     代码如下,请求大佬指正:a = False
print('你觉得我是个什么样的人?')

while a == False:
    answer = input()

    if'傻' in answer:
       print('你才傻')

    if '聪明' in answer:
       print('嘿嘿,还好啦')
       a = True

    else:
       print('听不懂')

    运行结果:
你觉得我是个什么样的人?
456
听不懂
傻子
你才傻
听不懂
聪明人
嘿嘿,还好啦


作者: crossin先生    时间: 2018-8-1 14:35
因为你第二个用的是 if 而不是 elif,所以你这里有两个独立判断逻辑
作者: 伤感的小龙虾    时间: 2018-8-1 17:11
a = False
print('你觉得我是个什么样的人?')

while a == False:
    answer = input()

    if'傻' in answer:
       print('你才傻')

    elif '聪明' in answer:
       print('嘿嘿,还好啦')
       a = True

    else:
       print('听不懂')
作者: 拥有玫瑰的星空    时间: 2018-8-7 08:52
伤感的小龙虾 发表于 2018-8-1 17:11
a = False
print('你觉得我是个什么样的人?')

原来是这样,试了试,果然。
多谢龙虾兄出手相助





欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5