我有考试,我不知道我的答案有什么问题



编写一个Python代码片段,使用"if-elif"流控制和"while"循环,该循环将:

  1. 指示用户输入大于0且小于或等于10的数字,并将输入作为浮点值存储在变量中
  2. 如果输入数字大于0并且小于或等于10
  3. 使用"while"循环将数字本身相加,直到总和超过值100
  4. 总和超过值100后,使用print语句输出总和
  5. 否则,输出消息"您没有输入0到10之间的值">

我的答案:

inval = float(input('Input a number greater than zero and less than or equal to 10: '))
if inval > 0 and inval <= 10:
while inval < 100:
inval += inval
continue
else:
print(inval)
elif inval <= 0 or inval > 10:
print('You did not enter a value between 0 and 10')

您的答案不可接受的原因是,对于6.25这样的输入,代码应该返回100.0。但是,由于while条件的原因,您的代码返回200.0。你可以加一个等号(=(来解决这个问题。此外,我从您的代码中删除了不必要的部分。

inval = float(input('Input a number greater than zero and less than or equal to 10: '))
if inval > 0 and inval <= 10:
while inval <= 100:
inval += inval
print(inval)
else:
print('You did not enter a value between 0 and 10')

我认为唯一可能出错的是While循环的条件(u应该把它放为inval <= 100(。然而,问题可能出在循环内部的其他方面;因为它不是";"高效";,在inval值大于100之后,即使else不存在,它也会打印该值。参见:

inval = float(input('Input a number greater than zero and less than or equal to 10: '))
if inval > 0 and inval <= 10:
while inval <= 100:
inval += inval
print(inval)
elif inval <= 0 or inval > 10:
print('You did not enter a value between 0 and 10')

我看不出你的代码中有其他问题:(

最新更新