下面是我写的一个功能,它完全按照我想要的方式工作。用户创建一个列表,然后最终吐出他们创建的没有负数的列表。我遇到的问题是删除我的“人口无效,请输入一个高于0的值”后执行我的(-1退出)。我希望用户能够输入-1,然后用其他任何东西吐出列表。那么有没有人对我的功能有任何提示?
def getData():
import math
pop = []
while True:
user = raw_input("Please enter a population number (-1 to quit): ")
pop.append(user)
if user <= '0':
print "Population not valid, please input a value higher then 0"
if user == '-1':
break
new_pop = map(int, pop)
pop2 = filter(lambda x:x >=1, new_pop)
print "Your population list is: ", pop2
getData()
答案 0 :(得分:1)
只需颠倒2 ifs的顺序
def getData():
import math
pop = []
while True:
user = raw_input("Please enter a population number (-1 to quit): ")
pop.append(user)
if user == '-1':
break
if user <= '0':
print "Population not valid, please input a value higher then 0"
new_pop = map(int, pop)
pop2 = filter(lambda x:x >=1, new_pop)
print "Your population list is: ", pop2
getData()
答案 1 :(得分:0)
您可以颠倒两个if
语句的顺序:
if user == '-1':
break
elif user <= '0':
print "Population not valid, please input a value higher then 0"
答案 2 :(得分:-1)
你的问题是这个if语句:
if user <= '0':
更改为
if user <= '0' and user != '-1':
这样,-1是0以下唯一会被忽略的其他输入。
或者如上所述,颠倒if语句的顺序。