新的Python遇到布尔逻辑问题

时间:2018-01-17 14:33:52

标签: python

这是我的作业 您将获得一个人的年龄,您需要确定该人员所在的学校水平。

If 6 to 11 output ‘primary school’
If 12 to 18 output ‘secondary school’
If neither, then output ‘NA’

这是我的代码

import sys
age= int(sys.argv[1])

if age >= 6.0 and age <=11:
  print ('primary school')
if age >=12 and age <=18:
  print ('secondary school')
if age < 6.0 and age >18: 
  print ('NA')

这是我的错误 节目输出

Program Failed for Input: 5
Expected Output: NA
Your Program Output: 

我做错了什么?

2 个答案:

答案 0 :(得分:3)

您需要or

if age < 6 or age > 18:

age同时不能小于6 大于18。此外,您可以通过使用if-elif-else结构并链接不等式来完全避免最后一个条件:

if 6 <= age <= 11:
    print('primary school')
elif 12 <= age <= 18:
    print ('secondary school')
else: 
    print ('NA')

答案 1 :(得分:0)

年龄值不能低于6且同时高于18

Object.withDefault = (defaultValue,o={}) => {
  return new Proxy(o, {
    get: (o, k) => (k in o) ? o[k] : defaultValue 
  });
}

o = Object.withDefault(42);
o.x  //=> 42

o.x = 10
o.x  //=> 10
o.xx //=> 42