Rep 1.1
#Summan av två kastade tärningar
import random
t1=random.randint(1,6)
t2=random.randint(1,6)
print("Ögonsumman blir " + str(t1+t2))
Rep 1.2
#Medlet av inmatade tal
summa=0
antal=0
while True :
    try:
        n=float(input("n="))
        if (n == -1) : break
        summa=summa+n
        antal=antal+1
        print("Medlet=" + str(summa/antal))
    except ValueError:
        print("Felaktig inmatning")
print("Slut")
Rep 1.3
#Största av inskrivna positiva tal
storst=-1
while True :
    try:
        n=float(input("n="))
        if (n == -1) : break
        if storst < n : storst=n
        print("Medlet=" + str(summa/antal))
    except ValueError:
        print("Felaktig inmatning")
print("Största talet var: " + str(storst))
Rep 1.4
(x > 100 or x < 50) and x != 20
Rep 1.5
#Skriver ut talet, kvadraten och kuben för 1-20 i kolumner
for x in range(1, 21) :
    print("{:4d}{:6d}{:6d}".format(x, x*x, x*x*x))
Rep 1.6
#Skriver ut positionssiffrorna för ett heltal
tal = input("Skriv ett heltal: ")
nollor=len(tal)-1
#Går igenom tecken för tecken. Lägger till nollor enligt
#position från slutet för att skriva ut vilken plats siffran står på.
for s in tal :
    print("1"+"0"*nollor+"-talssiffran är "+str(s))
    nollor=nollor-1
Rep 1.7
Uttrycket not (not a and not b) ger samma resultat som a or b
Rep 1.8
#Kontrollerar om ett heltal är ett primtal
import math
a=int(input("Skriv ett positivt heltal: "))
rot=int(math.sqrt(a)) + 1
primtal=True
#Testar att dividera med alla tal upp till roten ur det
#inskrivna talet. Sätter primtal till falskt och hoppar ur om delbart.
for i in range(2, rot) :
    if a % i == 0 :
        primtal = False
        break
#Om primtal fortfarande är sant så har inget tal varit delare.
if primtal : print( str(a) + " är ett primtal")
else : print( str(a) + " är inte ett primtal")
Rep 1.9
#Simulerar sönderfall genom kast av många tärningar.
import random
n = 1000
k = 0
print("Kast  Antal")
#Loopar tills tärningarna är slut
while n > 0 :
    print("{:3d}{:8d}".format(k, n))
    #Kastar alla tärningar som är kvar efter förra omgången
    #Tar bort de som slår 6.
    for i in range(n) :
        if random.randint(1, 6) == 6 :
            n=n-1
    k = k +1
Rep 1.10
XOR kan skrivas som tex:
(a or b) and not (a and b)
men det snyggaste sättet är:
a != b
Rep 1.11
#Hästkapplöpning med tärningskast. Först till 100
#Version med sammansatta logiska-satser
import random
hast1_position = 0
hast2_position = 0
vinnare=0
#Spelaren väljer häst
while True :
    try :
        val=int(input("Satsa på häst 1 eller 2: "))
        break
    except ValueError :
        print("Välj 1 eller 2 ")
#Här springer hästarna
print("Tryck enter för nytt tärningskast")
while hast1_position < 100 and hast2_position < 100 :
    print("Häst 1 har nått: " + str(hast1_position))
    print("Häst 2 har nått: " + str(hast2_position))
    hast1_position=hast1_position+random.randint(1,6)
    hast2_position=hast2_position+random.randint(1,6)
    input() #Tryck enter för varje "tärningskast"
#Vilken häst vann?
if hast1_position < 100 :
    vinnare=2
    print("Häst 2 vann")
elif hast2_position < 100 :
    vinnare=1
    print("Häst 1 vann")
else :
    print("Lika!")
#Vann spelaren?    
if (val == vinnare) :
    print("Du vann!")
else :
    print("Du förlorade")
 
Inga kommentarer:
Skicka en kommentar