2 svar
92 visningar
m83_11 85
Postad: 27 aug 03:16

if-satser faktura

Hej!

Jag förstår inte varför jag får fel svar för print() när jag kör programmet.

Jag borde få "Fakturabetalning beviljad" som svar.

Hondel 1381
Postad: 27 aug 07:24

Jag tror inte ditt sista villkor, (kreditanmarkningar == ja or JA or Ja) gör vad du tror det gör. Ett sätt att få det att göra vad du vill att det ska göra är att skriva (kreditanmarkningar in [ja, JA, Ja]). Eller kanske ännu enklare (kreditanmarkningar.lower() == ja) för att konvertera texten till små bokstäver och slippa hantera alla olika fall 

Detta gäller även raden under i fallet med nej.

sictransit 1084 – Livehjälpare
Postad: 27 aug 10:06 Redigerad: 27 aug 10:07

 

Här har du problemet!

Om du testar en sträng med if i python så kommer alla som inte är tomma att returnera True. Under huven så körs strängen genom funktionen bool(), som returnerar True eller False.

print( bool('nej') )
print( bool('ja') )
print( bool('') )

True
True
False


** Process exited - Return Code: 0 **
Press Enter to exit terminal

Ditt test kortsluts alltså och ser i praktiken ut så här:

if ... or (kreditanmarkningar == 'ja' or True or True):

Det kommer förstås alltid att vara sant. 

Svara
Close