Pröva själv att skriva ut tal och strängar. Pröva ocks. andra räknesätt än addition. Vad blir till exempel resultatet av följande?
print(5 - 3)
print(5 * 3)
print(5 / 3)
Många språk har på motsvarande sätt också en operator för att beräkna potens. I Python uttrycks den med **. Pröva själv och testa även egna exempel:
print(3 ** 2)
print(15 ** 5)
print(10 ** 10)
Pröva nu att utföra beräkningar med decimaltal.
print(5.2 - 2)
print(5.2 * 2)
print(5.2 / 2)
Förutom att addera strängar, kan vi i Python också multiplicera en sträng. Vad tror du att resultatet blir när vi kör följande program:
print(3 * "hej")
print(3 * ("hej" + "hopp"))
Skriv ett program som skriver ut ett tal följt av dess kvadrattal (talet upphöjt till 2) och dess kubiktal (talet upphöjt till tre). Du kan själv välja vilket tal du vill använda. Talet 5 skulle till exempel ge följande utskrift:
Tal: 5
Upphöjt till 2: 25
Upphöjt till 3: 125
Du ska inte själv räkna ut vad talet upphöjt till 2 och 3 blir, det ska Python göra. Du behöver alltså skriva kod så att programmet kan beräkna potenserna.
Skriv om programmet i uppgift 10 så att du lagrar det tal som du beräknar potensen av i en variabel.
Skapa två variabler och tilldela dem två heltalsvärden. Skriv sedan ett program som beräknar och skriver ut de två talens medeltal.
Vilka av följande utskrifter blir True och vilka blir False? Fundera först på egen hand, skriv sedan in koden på datorn och kör programmet.
print(4 < 10)
print(4 != 10)
print(4 + 10 == 10 + 4)
print(2 * 4 >= 10)
Vi kan också jämföra textsträngar med varandra, eftersom tecken är lagrade i datorn så att små bokstäver kommer före stora bokstäver. Vilka av följande print-satser blir True och vilka blir False?
print("sommar" < "vinter")
print("datorspel" < "datormus")
print("Java" < "Python")
print("Python" < "PYTHON")
Skriv ett program som avgör om en person får komma på en fest eller inte. Alla som är minst 13 år får komma in. Använd liksom i poäng- programmet ovanför en if-sats, som i det här fallet ger olika utskrifter beroende på hur gammal personen är (t.ex. "Välkommen in!" och "Tyvärr, du är ännu för ung!"). Välj en ålder som du vill testa och lagra den i en variabel som du kallar ålder.
Använd ditt festprogram från uppgift 15 och lägg till en elif-del som meddelar dem som är äldre än 15 år att de är för gamla (till exempel ”Tyvärr, du är för gammal för den här festen.”).
Ändra ditt festprogram från uppgift 15 så att användaren får mata in sin ålder.
Biljettpriset till en konsert beror på besökarens ålder. Barn under 12 år betalar 50 % av normalpriset och de som är mellan 12 och 15 betalar 75 %. Alla som är 16 år eller äldre betalar fullt pris. Skriv ett program som läser in användarens ålder och normalpriset, och sedan beräknar och skriver ut vad biljetten kostar för användaren.
Ändra programmet i exemplet nere på sidan 208 så att det skriver ut nians tabell med start från 0.
Exempel s.208
Vad blir utskriften för följande program?
for tal in range(11):
print(tal * 2)Svar: Programmet skriver ut tvåans tabell med start från 0 till och med 20, eftersom range(11) ger följden 0, 1, …, 10.
Ändra while-programmet i exemplet så att det skriver ut åttanstabell med start från 1 * 8.
Exempel:
Vad blir utskriften för följande program?
tal = 0
maxtal = int(input("Ange den övre gränsen: ")) while tal <= maxtal:
print(tal * 2) tal = tal + 1Svar: Det här programmet skriver också ut tvåans tabell, men vi vet inte på förhand hur många tal som skrivs ut eftersom det beror på det värde användaren matar in. Om användaren matar in 10 blir resultatet det- samma som i exemplet nere på sidan 208. Om användaren matar in 100 blir resultatet 0, 2, …, 198, 200.
Utgå från exemplet nere på sidan 208 och skriv ett program som använder en for-slinga för att skriva ut kubiktalen av alla tal i följden 2, …, 15. Använd range med två indatavärden för att skapa rätt följd.
Exempel s.208
Vad blir utskriften för följande program?
for tal in range(11):
print(tal * 2)Svar: Programmet skriver ut tvåans tabell med start från 0 till och med
20, eftersom range(11) ger följden 0, 1, …, 10.
Skriv ett nedräkningsprogram som låter användaren mata in ett heltal som övre gräns och sedan räknar ner till 0 genom att skriva ut ett tal i taget. Lyckas du skriva två versioner av programmet – en som använder for och while?
Skriv ett nedräkningsprogram som låter användaren mata in ett heltal som övre gräns och sedan räknar ner till 0 genom att skriva ut ett tal i taget. Lyckas du skriva två versioner av programmet – en som använder for och while?
Skriv ett program som läser in ditt förnamn och efternamn i olika variabler och därefter skriver ut en personlig hälsning på skärmen.
Är följande villkorsuttryck sanna eller falska om x = 100, y = 150 och z = 200? Fundera först och kolla därefter dina svar genom att köra programmet.
x < 200
y > 200
z != y y < z-x
x**10 < y*z
Skriv ett program som låter användaren mata in två tal och sedan skriver ut medeltalet av dem.
Man kan antingen köpa helårslicens till ett grafikprogram eller betala en avgift varje gång man använder det. Skriv ett program som läser in priset för en årslicens, engångsavgiften och antalet gånger man kommer att använda programmet under ett år samt lagrar de tre talen i olika variabler. Beräkna därefter vad kostnaden blir för ett år om man betalar engångsavgiften varje gång. Sedan kan programmet jämföra det priset med årslicensen och skriva ut om det lönar sig att köpa årslicens eller betala skilt för varje användning.
Utgå från programmet i exemplet på sidan 209 och ändra det så att det låter användaren ange vilken tabell som ska skrivas ut.
Exempel s.209
Vad blir utskriften för följande program?tal = 0
maxtal = int(input("Ange den övre gränsen: "))
while tal <= maxtal:
print(tal * 2)
tal = tal + 1Svar: Det här programmet skriver också ut tvåans tabell, men vi vet inte på förhand hur många tal som skrivs ut eftersom det beror på det värde användaren matar in. Om användaren matar in 10 blir resultatet det- samma som i exemplet nere på sidan 208. Om användaren matar in 100 blir resultatet 0, 2, …, 198, 200.
Utforska Pythons potensoperator **. Vad är resultatet om exponenten är 0 eller negativ? Vad händer om du har ett stort tal med en stor exponent?
Skriv ett program som skriver ut alla jämna tal mellan 1 och 100 med hjälp av en for-slinga.
Skriv ett program som skriver ut alla jämna tal mellan 1 och 100 med hjälp av en for-slinga.
Skriv ett program som ber om en tid i minuter och sedan skriver ut tiden i timmar och minuter.
Skriv ett program som beräknar vinkelsumman i en månghörning. Programmet ska be användaren mata in antalet hörn och skriver sedan ut vinkelsumman på skärmen.
Skriv ett program som läser in en sträcka i centimeter och omvandlar den till meter. Utskriften kan till exempel se ut så här:
522 centimeter är 5,22 meter.
Skriv ett program som beräknar omkretsen för en månghörning. Användaren får först mata in antalet sidor, varefter programmet ber användaren mata in längden på de olika sidorna, en i taget.
Därefter beräknar programmet omkretsen och skriver ut resultatet.
Skriv ett program som beräknar och skriver ut arean av a) en kvadrat, b) en rektangel och c) en triangel.
Vilken information behöver programmet be användaren mata in i de olika fallen?
Skriv ett program som beräknar och skriver ut arean av a) en kvadrat, b) en rektangel och c) en triangel.
Vilken information behöver programmet be användaren mata in i de olika fallen?
Skriv ett program som beräknar och skriver ut arean av a) en kvadrat, b) en rektangel och c) en triangel.
Vilken information behöver programmet be användaren mata in i de olika fallen?
Skriv ett program som beräknar och skriver ut volymen för a) en kub och b) ett rätblock.
Vilken information behöver programmet be användaren mata in i de olika fallen?
Skriv ett program som beräknar och skriver ut volymen för a) en kub och b) ett rätblock.
Vilken information behöver programmet be användaren mata in i de olika fallen?
** Skriv om programmet i repetitionsuppgift 26 så att det låter användaren mata in hur många positiva tal som helst. Programmet läser in tal ända tills användaren matar in ett negativt värde. Det negativa värdet ska inte räknas med utan anger endast att inläsningen ska avslutas, varpå programmet skriver ut medeltalet av alla inlästa tal på skärmen.
** Skriv ett program som läser in positiva heltal med hjälp av en while-slinga tills användaren matar in 0. Då ska programmet skriva ut det största heltalet som användaren matat in. För att åstadkomma det här behöver du två variabler: en för att lagra det största talet hittills och en annan för att lagra det nyligen inlästa talet. Vad behöver du göra om det inlästa talet är större än det största talet hittills?
** Ändra programmet i repetitionsuppgift 39 så att det skriver ut det största och det minsta heltalet av de tal som användaren matat in.
** Skriv ett program som läser in de tre vinkelstorlekarna i en triangel och utgående från den informationen avgör om triangeln är spetsvinklig, rätvinklig eller trubbvinklig. Innan programmet skriver ut resultatet ska det också kontrollera att det faktiskt är frågan om en triangel genom att kolla att summan av de inmatade vinklarna är 180 grader.
** Vad gör följande program? Fungerar det? Om inte, vad är fel och hur kan du korrigera det?
antal = int(input("Hur många heltal vill du kolla? "))
tal = 1
while tal < antal:
if tal % 2 == 0:
print(tal)
** Skriv ett program som låter användaren mata in två heltal och lagrar dem i skilda variabler. Programmet ska sedan skriva ut den största gemensamma faktorn för de två talen. Tips! Kolla upp Euklides algoritm på nätet.
** Skriv ett program som läser in ett tal och avgör om det är ett primtal eller inte. Tips: Du kan använda en slinga för att kolla om talet är delbart med något tal mellan 2 och talet självt.
** Skriv ett program som läser in ett tal och avgör om det är ett primtal eller inte. Tips: Du kan använda en slinga för att kolla om talet är delbart med något tal mellan 2 och talet självt.
** Skriv ett program som läser in ett tal och avgör om det är ett primtal eller inte. Tips: Du kan använda en slinga för att kolla om talet är delbart med något tal mellan 2 och talet självt.