Python

Om att köpa dator, lösa datorproblem och tipsa om dataspel.

Moderator: Moderator 1

Post Reply
User avatar
Nobel
Germaniummedlem
Posts: 3376
Joined: 10 May 2021, 19:48

Re: Python

Post by Nobel »

else-del.En sak som skiljer Python från andra vanliga programmeringsspråk är att while-satser och for-satser kan ha en else-del. Här är ett exempel.

Code: Select all

# Gissa talet
import random
största = int(input('Det största möjliga talet? '))
försök = int(input('Hur många försök får man? '))
tal = random.randint(1, största)
for i in range(försök):
    gissning = int(input('Gissa talet? '))
    if gissning < tal:
        print('För litet')
    elif gissning > tal:
        print('För stort')
    else:
        print('Rätt gissat')
        break
else:
    print('Inga fler försök')
    print('Talet var', tal)
1. Importera modulen random vilken innehåller funktioner relaterade till slumpning.
2. Användaren för ange hur stort det största talet ska vara och hur många gissningar användaren får.
3. tal blir ett slumpmässigt tal mellan 1 och det största talet.
4. För i i intervallet försök, alltså så många försök som användaren angivit:
5. Gör en gissning, det ska vara ett heltal och gissningen lagras i variabeln gissning som ett heltal.
6. Om gissningen är mindre än rätta talet, skriv ut att gissningen är för liten.
7. Om gissningen är större än det rätta talet, skriv ut att gissningen är för stort.
8. Annars har användaren gissat rätt. Bryt då for-loopen.
9. Om for-loopen bryts på "naturlig" väg, alltså att antalet försök är lika många som variabeln försök. Gå till sista else-satsen och skriv ut Inga fler försöks Talet var, tal.
'cause the freak inside controls my mind
User avatar
Nobel
Germaniummedlem
Posts: 3376
Joined: 10 May 2021, 19:48

Re: Python

Post by Nobel »

Brottas för tillfället med en övning.

Skriv ett program som läser in ett godtyckligt antal positiva tal. När användaren skriver in ett negativt tal ska programmet skriva ut det största och det minsta av de positiva talen.
'cause the freak inside controls my mind
User avatar
Nobel
Germaniummedlem
Posts: 3376
Joined: 10 May 2021, 19:48

Re: Python

Post by Nobel »

Vill ha in logik i form av en if-sats, men vet inte hur jag ska skriva den. Detta är vad jag kommit fram till hittills.

Code: Select all

n = int(input('Ange hur många tal du vill skriva in: '))
minsta = 0 
största = 0
for i in range(n):
    tal = int(input('Ange ett tal '))
print(minsta, största)
'cause the freak inside controls my mind
User avatar
Nobel
Germaniummedlem
Posts: 3376
Joined: 10 May 2021, 19:48

Re: Python

Post by Nobel »

Det gick bättre med nästa uppgift. Skriv ett program som skriver ut en tabell för talen 1 till 12. På varje rad i tabellen ska talet visas liksom talet i kvadrat och talet i kubik.

Code: Select all

for i in range(1, 13):
    x = i
    x2 = i**2
    x3 = i**3
    print(f'{x:3}{x2:6}{x3:6}')
1. För i i intervallet 1-12
2. Ge x värdet i, ge x2 värdet i*2, ge x3 värdet i^3
3. Upprepa 11 gånger

Utskriften blir:

Code: Select all

  1     1     1
  2     4     8
  3     9    27
  4    16    64
  5    25   125
  6    36   216
  7    49   343
  8    64   512
  9    81   729
 10   100  1000
 11   121  1331
 12   144  1728
Last edited by Nobel on 06 Jan 2022, 15:55, edited 1 time in total.
'cause the freak inside controls my mind
Klankedinken
Guldmedlem
Posts: 10305
Joined: 19 Jul 2021, 18:04

Re: Python

Post by Klankedinken »

Kan ni flytta den här tråden till hobby och intressen?!
User avatar
Nobel
Germaniummedlem
Posts: 3376
Joined: 10 May 2021, 19:48

Re: Python

Post by Nobel »

Övning. På en mycket farlig arbetsplats erbjuds man följande lön: första dagen är lönen 1 öre, sedan fördubblas lönen varje dag. Skriv ett program som räknar ut hur länge man behöver arbeta för att tjäna ihop 10 000 000 kr.

Code: Select all

förstalön = 0.01
sistalön = 10_000_000
dagar = 0
while förstalön <= sistalön:
    förstalön *= 2
    dagar += 1
print(dagar)
1. förstalön är 0.01 kr när beräkningen börjar
2. sistalön är 10 000 000 kr
3. dagar är 0 när beräkningen börjar
4. Medan förstalön <= sistalön fortsätt loopen
5. förstalön fördubblas
6. dagar räknas
7. När förstalön >= sistalön så bryts loopen
8. Antal dagar det tog skrivs ut.

Svar:

Code: Select all

30
'cause the freak inside controls my mind
User avatar
Nobel
Germaniummedlem
Posts: 3376
Joined: 10 May 2021, 19:48

Re: Python

Post by Nobel »

Övning. Skriv ett program som visar en multiplikationstabell enligt följande modell. Programmet ska utformas så att man läser in antal rader som ska skrivas ut. Tips: använd nästlade for-satser.

Såhär ska utskriften se ut:

Code: Select all

     1     2     3     4     5     6     7     8     9
     2     4     6     8    10    12    14    16    18
     3     6     9    12    15    18    21    24    27
     4     8    12    16    20    24    28    32    36
     5    10    15    20    25    30    35    40    45
     6    12    18    24    30    36    42    48    54
     7    14    21    28    35    42    49    56    63
     8    16    24    32    40    48    56    64    72
     9    18    27    36    45    54    63    72    81
Kod:

Code: Select all

for i in range(1, 10):
    print()
    for j in range(1, 10):
        n1 = i * j
        print(f'{n1:6}', end='')
1. Skapa en for-loop som repeteras 9 gånger.
2. Kör en print() för att göra ett radbyte.
3. Skapa en till for loop som repeteras 9 gånger.
4. Varje gång for j in range(1, 10) körs, tilldela variabeln n1 i * j.
5. Skriv ut n1 och avsluta utskriften utan att byta rad.
'cause the freak inside controls my mind
User avatar
Nobel
Germaniummedlem
Posts: 3376
Joined: 10 May 2021, 19:48

Re: Python

Post by Nobel »

Klankedinken wrote: 06 Jan 2022, 15:54 Kan ni flytta den här tråden till hobby och intressen?!
Jag kan inte flytta trådar.
'cause the freak inside controls my mind
Klankedinken
Guldmedlem
Posts: 10305
Joined: 19 Jul 2021, 18:04

Re: Python

Post by Klankedinken »

Men du kan koda? Skicka ett meddelande till Richard! Jag kan göra det så flyttar han den!
User avatar
Richard
Administratör
Posts: 8224
Joined: 10 May 2021, 13:45
Location: Ängelholm
Contact:

Re: Python

Post by Richard »

Ja, jag försöker flytta den till IT-forumet.
Blogg, dagbok och hemsida: https://www.richardhandl.com/
User avatar
Nobel
Germaniummedlem
Posts: 3376
Joined: 10 May 2021, 19:48

Re: Python

Post by Nobel »

Schysst!
'cause the freak inside controls my mind
Klankedinken
Guldmedlem
Posts: 10305
Joined: 19 Jul 2021, 18:04

Re: Python

Post by Klankedinken »

Tack!
Post Reply