Nyckelord: for-loop, while-loop

Loopar och slumptal
Skriv ett program som först genererar ett slumptal mellan 1 och 100. Programmet ska sedan be användaren att gissa talet. Om användaren gissar för högt, ska texten "För högt tal, försök igen!" skrivas ut. Om talet är för lågt ska programmet skriva ut "För lågt tal, försök igen". När användaren har gissat rätt tal ska programmet skriva ut "Rätt gissat. Du lyckades gissa rätt tal på försök: XX" och sedan stänga av programmet.
Ledtråd
Skapa en evighetsloop för att fortsätta fråga användaren flera gånger om en ny input. Bryt evighetsloopen med kommandot break. Du behöver även skapa en variabel som håller koll på hur många gånger loopen har körts.
Behöver du en upprepning i hur man skapar en input eller hur man skapar ett slumptal så kan du läsa mer på avsnitten: Input i Python och Generera ett slumptal i Python.
while(True):
print("Detta är en evighetsloop som körs för alltid tills man anropar break!")
Lösning
import random
# Genererar ett slumptal av typen int i intervallet 1 till 100
slumptal = random.randint(1, 100) # slumptal, ett heltal mellan 1 <= x <= 100
# Antal gissningar
i = 1
# Evighetsloop som kommer fortsätta fråga användaren till den gissar rätt tal
while (True):
# Ta en input från användaren och formatera inputen till ett heltal
guess = int(input("Gissa ett tal mellan 1 och 100: "))
# Kolla om gissningen är högre än slumptalet
if (guess > slumptal) :
print("För högt tal, försök igen!")
# Kolla om gissningen är lägre än slumptalet
elif(guess < slumptal) :
print("För lågt tal, försök igen!")
# I alla övriga fall är talet rätt!
else :
# Skriv ut antal gissningar och bryt loopen med break
print(f"Rätt gissat. Du lyckades gissa rätt tal på försök: {i}")
break
# Öka antal gissningar med 1
i = i + 1
Förklaring
Först importerar vi modulen random och slumpar ett heltal från 1 till och med 100. Sedan frågar while-loopen efter gissningar tills användaren svarar rätt.
Varje iteration av loopen frågar vi användaren om en gissning. Glöm inte bort att formatera inputen från en String till en int (heltal). Använd sedan if-satser för att avgöra om användaren gissade rätt. En loop kan man alltid bryta med kommandot break vilket vi gör om användaren gissade rätt.
Sedan skapar vi en evighetsloop som fortsätter att fråga användaren om input tills dess att användaren gissar rätt. Glöm inte öka antal gissningar varje iteration av loopen. Hur många gissningar behövde du för att gissa rätt?