Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  7 4626
Har laget en løkke som gjentas for alltid, helt til man skriver at man er mann. Men jeg ønsker også at løkken avsluttes, hvis man skriver kvinne.
Hvordan gjør jeg det?

Kode

kjønn = ""
while kjønn != "mann":
    print("Hva er ditt kjønn?")
    kjønn = input("mann, eller kvinne: ")
print("Takk for registreringen")
Sist endret av Myoxocephalus; 20. februar 2020 kl. 09:31. Grunn: Lesbarhetsfix
Du har svaret allerede:

"Men jeg ønsker også at løkken avsluttes, hvis man skriver kvinne." = "if kjønn = kvinne then break/return etc" (pseudo)

https://www.google.com/search?q=end+...le+loop+python
Takk Fikk det til
Bruk en and-operator.

Kode

kjønn = ""
while kjønn != "kvinne" and kjønn != "mann":
    print("Hva er ditt kjønn?")

    kjønn = input("mann, eller kvinne: ")

print("Takk for registreringen")
Sitat av Fiyah Vis innlegg
Bruk en and-operator.

Kode

kjønn = ""
while kjønn != "kvinne" and kjønn != "mann":
    print("Hva er ditt kjønn?")

    kjønn = input("mann, eller kvinne: ")

print("Takk for registreringen")
Vis hele sitatet...
Jeg syntes denne syntaksen er mer idiomatisk.

Kode

kjønn = ""
while kjønn not in ["kvinne", "mann"]:
    print("Hva er ditt kjønn?")
    kjønn = input("mann, eller kvinne: ")
 
print("Takk for registreringen")
Husk å gjøre rede for upper /lowercase.
Fordi:

= "mann" er False om input er "Mann" eller "MaNn" eller alt i mellom.
▼ ... over en uke senere ... ▼
while kjønn.lower() not in ["kvinne", "mann"]:
NOOOOOOOOOOOOOOOOOO-
robhol's Avatar
Husk at hvis man skal sammenlikne dette med noe etterpå, vil man kunne få problemer hvis man ikke er konsekvent med bruken av lower(). Med loopen vil du kunne entre "MaNn", som blir godkjent av loop-betingelsen, men som ikke er lik "mann" hvis du tilfeldigvis sjekker på det senere.

Forøvrig: når man har et tilfelle der en verdi kan være en av en rekke "lovlige" verdier som har semantisk betydning, er det et hint om å bruke enumerasjoner.