注册 登录
编程论坛 Python论坛

【菜鸟报道】请教各位,我是循环不对还是input不对?

Nelly1006 发布于 2020-06-02 23:35, 3132 次点击
import time
while True:
    magic=input('请在以下选项【厄里斯魔镜;时间转换器;飞天扫帚;隐形斗篷】中,选择出你最想拥有的魔法物品:')
    if magic!='厄里斯魔镜'or'时间转换器'or '飞天扫帚'or '隐形斗篷':
        print('请做正确的选择')
        time.sleep(1)
    else:
        print('{}是我最想拥有的魔法物品!'.format(magic))

终端:
只有本站会员才能查看附件,请 登录


为什么终端无论回答什么结果都只执行if的语句,执行不了else的语句?

6 回复
#2
fall_bernana2020-06-03 09:22
以下是引用Nelly1006在2020-6-2 23:35:28的发言:

import time
while True:
    magic=input('请在以下选项【厄里斯魔镜;时间转换器;飞天扫帚;隐形斗篷】中,选择出你最想拥有的魔法物品:')
    if magic!='厄里斯魔镜'or'时间转换器'or '飞天扫帚'or '隐形斗篷':
        print('请做正确的选择')
        time.sleep(1)
    else:
        print('{}是我最想拥有的魔法物品!'.format(magic))

终端:


为什么终端无论回答什么结果都只执行if的语句,执行不了else的语句?


if magic!='厄里斯魔镜'or'时间转换器'or '飞天扫帚'or '隐形斗篷': 你这个判断条件指的是不符合其中任意一个,你输入飞天扫帚不等于厄里斯魔镜 也符合这种情况.这里你应该用and
if magic!='厄里斯魔镜' and magic!='时间转换器' and magic!='飞天扫帚' and magic!='隐形斗篷':

[此贴子已经被作者于2020-6-4 10:19编辑过]

#3
浅湾2020-06-04 08:24
if magic!=='厄里斯魔镜'or'时间转换器'or '飞天扫帚'or '隐形斗篷':
#4
古1232020-06-04 17:40
这样?

if magic not in ['厄里斯魔镜','时间转换器','飞天扫帚','隐形斗篷']:
#5
Nelly10062020-06-05 00:22
以下是引用浅湾在2020-6-4 08:24:20的发言:

if magic!=='厄里斯魔镜'or'时间转换器'or '飞天扫帚'or '隐形斗篷':


没有这个!==啦
#6
Nelly10062020-06-05 00:25
以下是引用古123在2020-6-4 17:40:56的发言:

这样?

if magic not in ['厄里斯魔镜','时间转换器','飞天扫帚','隐形斗篷']:

这个🉑!!谢谢!!
#7
水果冰点2020-06-06 10:21
回复 2楼 fall_bernana
在条件语句if中,执行语句要使用等号“==”,赋值号与等号不要混淆
1