如何用Python单条if语句实现不同输入对应不同输出?
解决单条if语句实现输入对应数字输出的问题
你的代码存在的问题
- 语法错误:判断条件误用赋值运算符
=,应该用成员判断运算符in - 类型不匹配:
input()返回的是字符串类型,而你列表里写的是整数,两者无法匹配,导致if条件永远不会触发 - 逻辑错误:不管输入什么,你都在打印整个列表的内容,不是输出用户输入的对应值
正确的简洁实现
方法1(推荐,类型匹配更严谨)
x = int(input()) if x in {3, 15}: print(x)
- 用
int()把输入转成整数,和目标数字类型统一 - 用集合
{3,15}替代列表,集合的成员判断效率比列表更高 - 满足单条if语句的要求,输入3输出3,输入15输出15,其他输入无输出
方法2(无需类型转换)
x = input().strip() if x in {'3', '15'}: print(x)
- 直接对输入的字符串做判断,省去类型转换步骤,适合确定输入是纯数字字符串的场景
内容的提问来源于stack exchange,提问作者MONKE
相关产品推荐
相关产品推荐

