簡體   English   中英

在while循環中刪除我的最后一條打印行

[英]Remove my last print line in a while loop

下面是我編寫的函數,該函數完全按照我想要的方式工作。 用戶創建一個列表,然后最終吐出他們創建的沒有負數的列表。 我遇到的問題是在他們執行我的(-1退出)后,刪除了“填充無效,請輸入一個大於0的值”。 我希望用戶能夠輸入-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()

只需顛倒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()

您可以反轉兩個if語句的順序:

    if user == '-1':
        break
    elif user <= '0':
        print "Population not valid, please input a value higher then 0"

您的問題是這個if語句:

if user <= '0':

換成這個

if user <= '0' and user != '-1':

這樣,-1是唯一低於0的其他輸入,將被忽略。

或如上所述,顛倒if語句的順序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM