Python hogyan kell nyomtatni 0, ha nincs negatív számok a lista?

szavazat
0

Azt kell nyomtatni az első negatív számot a listán, de ha nincsenek negatív számok azt kell visszaadni, mint 0. nem tudom az élet nekem kiderítjük, úgy érzem, nagyon buta.

def find_negative(list_numbers):
    for list_number in list_numbers:
        if list_number < 0:
            return list_number

Jelenleg működik, ha vannak negatív számok, de ha nincs, akkor majd vissza semmit. Nem úgy tűnik, hogy ez így visszatér 0 helyett semmi

A kérdést 29/03/2017 09:57
felhasználó
Más nyelveken...                            


4 válasz

szavazat
0

Add return 0kívül a forhurok. A program megérkezik ott csak akkor, ha nem talált semmilyen negatív szám.

def find_negative(list_numbers):
    for list_number in list_numbers:
        if list_number < 0:
            return list_number
    return 0
Válaszolt 29/03/2017 09:59
a forrás felhasználó

szavazat
0

próbáld ezt:

def find_negative(list_numbers):
    first_index = 0
    for list_number in list_numbers:
        if list_number < 0:
            first_index = list_number
            break
    return first_index
Válaszolt 29/03/2017 09:59
a forrás felhasználó

szavazat
1

Akkor használja ezt egysoros:

num = next((x for x in numbers if x < 0), 0)

Van egy kis csomagot PyPI biztosító first()funkció, amely kényelmesebb lehet akkor:

from first import first    
num = first(numbers, key=lambda x: x < 0, default=0)
Válaszolt 29/03/2017 10:01
a forrás felhasználó

szavazat
0

A kód működik, ha ezt, hogy visszatérjen az első negatív számot a listán, de ez nem említ semmilyen más dolog, ha a feltétel nem teljesül, azaz ha nincsenek negatív számok. így használhatja másik tényező, amely lehet nulla kezdetben és azonossá válik list_number ha van egy negatív szám, és továbbra is nulla, ha nincs negatív számok a listán.

def find_negative (list_numbers): száma = 0 list_number in list_numbers: ha list_number <0: száma = list_number szünetet visszatérő száma

A fenti kód, a hurok megtöri egyszer találkozik egy negatív számot, és visszaadja az index azt a számot, és ha ez nem jön át egy negatív szám, akkor vissza a nullára.

Válaszolt 24/05/2017 05:22
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more