Permalänk
Medlem

Python input() fråga!?

Tjenare,

Kan någon förklara hur jag kan tvinga in användaren att skriva MINST x antal ORD för att gå vidare i programmet?

tex
Mening = input("Skriv din mening: ")

När ovanstående kommer upp i fönstret ska det kräva minst x antal ord annars ge ifrån ett error och gå tillbaka och försöka igen.

Tackar!

Permalänk
Medlem

Du kan exempelvis räkna hur många mellanslag som meningen innehåller för räkna antalet ord. När du vet antalet ord som skrivits in så kan du enkelt kolla om det är ditt minsta antal x ord!

Permalänk
Medlem
Skrivet av Plams:

Du kan exempelvis räkna hur många mellanslag som meningen innehåller för räkna antalet ord. När du vet antalet ord som skrivits in så kan du enkelt kolla om det är ditt minsta antal x ord!

Provade och kom till slut fram till if len(mening[i].split()) < 5:

Tackar för hjälpen

Permalänk
Hedersmedlem
Skrivet av Jilixi:

Provade och kom till slut fram till if len(mening[i].split()) < 5:

Borde väl vara `if len(Mening.split()) > 5` för att du ska kolla att det är minst ett visst antal (här 5 + 1 = 6) ord i meningen som du lagrar i variabeln `Mening`.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem
Skrivet av phz:

Borde väl vara `if len(Mening.split()) > 5` för att du ska kolla att det är minst ett visst antal (här 5 + 1 = 6) ord i meningen som du lagrar i variabeln `Mening`.

Det blir inte rätt det du har skivit för du kollar om mening.split är större än 5, jag behövde att koden kollar om det är mindre än 5 och därefter skicka tillbaka användaren till input.

Permalänk
Hedersmedlem
Skrivet av Jilixi:

Det blir inte rätt det du har skivit för du kollar om mening.split är större än 5, jag behövde att koden kollar om det är mindre än 5 och därefter skicka tillbaka användaren till input.

All right, jag läste bara att du ville kolla att det var minst 5 ord. Det går ju att välja själv om man vill skriva typ:

while True: Mening = input('Ge mig en mening') if len(Mening.split()) >= 5: break print('Meningen måste bestå av minst 5 ord. Försök igen')

eller

while True: Mening = input('Ge mig en mening') if len(Mening.split()) < 5: print('Meningen måste bestå av minst 5 ord. Försök igen') else: break

Jag tycker det första är aningens mer rättfram, men båda fungerar ju på samma sätt.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.