如何在python中的assert语句中使用小于等于

Noa*_*ark 2 python assert less

当我运行以下内容时:

growthRates = [3, 4, 5, 0, 3]
for each in growthRates:
    print each
    assert growthRates >= 0, 'Growth Rate is not between 0 and 100'
    assert growthRates <= 100, 'Growth Rate is not between 0 and 100'
Run Code Online (Sandbox Code Playgroud)

我明白了:

3
Traceback (most recent call last):
  File "ps4.py", line 132, in <module>
    testNestEggVariable()
  File "ps4.py", line 126, in testNestEggVariable
    savingsRecord = nestEggVariable(salary, save, growthRates)
  File "ps4.py", line 106, in nestEggVariable
    assert growthRates <= 100, 'Growth Rate is not between 0 and 100'
AssertionError: Growth Rate is not between 0 and 100
Run Code Online (Sandbox Code Playgroud)

这是为什么?

Kat*_*iel 10

做:

assert each >= 0, 'Growth Rate is not between 0 and 100'
Run Code Online (Sandbox Code Playgroud)

不:

assert growthRates >= 0, 'Growth Rate is not between 0 and 100'
Run Code Online (Sandbox Code Playgroud)

  • 更好的是,它可以是'断言0 <=每个<= 100`. (8认同)

Ton*_*nen 6

assert 0 <= each <= 100, 'Growth Rate %i is not between 0 and 100.' % each
Run Code Online (Sandbox Code Playgroud)

你的断言当然不会失败,但现在growRates> 100因为growthRates是list而0是整数而'list'>'integer'.

  • +1:这是迄今为止回答问题的唯一回答 - 这就是"为什么?" (2认同)