Python

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

Moderator: Moderator 1

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

Re: Python

Post by Nobel »

Vissa envisa användare av amerikanskt tangentbord brukade förr i tiden göra livet surt för sina vänner genom att inte skriva vanliga å, ä, ö i sina mejl. I stället skrev de konstiga bokstavskombinationer. Skriv ett program som läser in texten från ett sådant mejl som skriver ut texten så att den blir läslig. Alla förekomster av bokstavskombinationerna aa, ae, oe ska översättas till å, ä, respektive ö. Åkte fast på denna också.

Code: Select all

s = input('Skriv in texten: ')
s = s.lower()
r = ''
i = 0
while i < len(s):
    if s[i]=='a' and i+1<len(s) and s[i+1]=='a':
        r += 'å'
        i += 2
    elif s[i]=='a' and i+1<len(s) and s[i+1]=='e':
        r += 'ä'
        i += 2
    elif s[i]=='o' and i+1<len(s) and s[i+1]=='e':
        r += 'ö'
        i += 2
    else:
        r += s[i]
        i += 1
print(r)
1. Programmet tar in en text från användare.
2. Texten görs om till alla små bokstäver med funktionen .lower()
3. En tom sträng, r, skapas
4. En räknare i skapas
5. Medan i är mindre än längden på strängen ska while-loopen köras
6. Om bokstaven på position i är lika med a och längden på i +1 är mindre än strängens längd och indexposition av strängen +1 också är a:
7. Lägg till å till strängen r
8. Öka räknaren med 2
9. Eller om strängen på index i innehåller ett a och i+1 är mindre än strängens längd och strängens indexposition i+1 är e:
10. Lägg till ä till strängen r
11. Öka räknaren med 2
12. Eller om strängen på index i innehåller ett o och i+1 är mindre än längden på strängen och strängens indexposition i+1 innehåller ett e:
13. Öka strängen r med värdet ö
14. Öka räknaren med 2
15. Annars lägg till bokstaven på strängens indexvärde till strängen
16. Öka räknaren med 1
'cause the freak inside controls my mind
User avatar
Inwatto
Lutetiummedlem
Posts: 1714
Joined: 08 Jul 2021, 18:14
Location: Skåne

Re: Python

Post by Inwatto »

Nobel wrote: 09 Jan 2022, 18:42 Hur gjorde du när du hoppade över från BASIC till C? Fick du lära dig C från scratch?
Minns inte hur jag gjorde. Programmerade en del Pascal också innan C blev mitt huvudspråk. När jag var 20-22 år, var det enkelt att plöja genom en bok om programmering och lära sig ett nytt språk.
User avatar
Nobel
Germaniummedlem
Posts: 3376
Joined: 10 May 2021, 19:48

Re: Python

Post by Nobel »

Skriv ett program som läser in ett godtyckligt antal heltal. Programmet ska sedan undersöka hur många av de inlästa talen som är mindre än 0.

Code: Select all

s = input('Skriv in ett antal heltal: ')
la = s.split()
counter = 0
for element in la:
    if int(element) < 0:
        counter += 1
print(counter)
1. Skriv in heltal och separera dessa med mellanslag
2. Skapa en lista av strängen där varje element ska ha separerats med ett mellanslag
3. Skapa en variabel counter = 0, den ska användas som räknare för antal ord som är mindre än noll
4. För varje element i listan la:
5. om elementet i intform är mindre än 1
6. Öka counter med 1
7. Skriv ut hur många gånger negativa tal hittades

Facit:

Code: Select all

s = input('Skriv ett antal tal: ')
ls = s.split()
talen = [int(t) for t in ls]
negativa = [t for t in talen if t < 0]
print('Antal tal mindre än noll:', len(negativa))
1. Skriv in ett antal heltal
2. Skapa en lista med .split() funktionen, den separerar siffrorna där det finns ett mellanslag
3. Talen görs om till en lista från sträng till int form
4. Förstår inte riktigt. Men tror det betyder att kolla efter t i listan talen om t < 0, skapa sedan en ny lista med alla negativa tal
5. Skriv ut längden på listan med negativa 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 »

Skriv ett program som skapar en lista med 100 slumpmässiga heltal i intervallet 1-1000. PRogrammet ska sedan skriva ut det minsta och det största av talen samt beräkna och skriva ut slumptalens medelvärde.

Code: Select all

import random
la = []
for i in range(101):
    la += [random.randint(1, 1000)]
la.sort()
minsta = la[0]
största = la[100]
medel = sum(la)/len(la)
print(minsta)
print(största)
print(round(medel))
1. Importera modulen random
2. Skapa en tom lista
3. För talet i intervallet 0 till 100:
4. Lägg till ett element till listan la som är ett slumpmässigt heltal i intervallet 1 till 1000
5. Sortera listan så att det minsta talet hamnar först i listan och det största talet hamnar sist i listan
6. Skapa en skiva och tilldela variabeln minsta listans nollte element
7. Skapa en skiva och tilldela variabeln största listans hundrade element
8. Beräkna medelvärdet genom att summera alla tal i listan och dela med längden på listan. I detta fall kanske det hade varit bättre att hårdkoda listans längd till 100
9. Skriv ut resultaten

Facit:

Code: Select all

import random
t = list()
sum = 0
for i in range(0, 100):
    x = random.randint(1,1000)
    sum += x
    t.append(x)
print(f'Minsta tal: {min(t):d}')
print(f'Största tal: {max(t):d}')
print(f'Medelvärde: {sum/len(t):1.2f}')
1. Importare modulen random
2. Skapa en tom lista
3. Skapa en variabel som ska innehålla summan av alla slumpade talen
4. För talet i i intervallet 0 till 100:
5. Slumpa ett heltal mellan 1 till 1000 och spara det i variabeln x
6. Räkna ut summan av alla talen genom att genom att addera varje tal som slumpas fram
7. Lägg till värdet x i listan t
8. Skriv ut minsta talet
9. Skriv ut största talet
10. Skriv ut medelvärdet, avrunda till två decimaler
'cause the freak inside controls my mind
User avatar
Nobel
Germaniummedlem
Posts: 3376
Joined: 10 May 2021, 19:48

Re: Python

Post by Nobel »

Skriv ett program som läser in en lista med heltal. PRogrammet ska sedan ta bort alla element från listan som är lika med noll. Tips: Tänk på att det kan vara flera sådana element.

Code: Select all

s = input('Skriv en lista med heltal: ')
ls = s.split()
talen = list(map(int, ls))
for i in range(0, talen.count(0)):
    talen.remove(0)
print(talen)
Har ingen aning om hur koden fungerar. Boken har inte gått igenom map-funktionen som används i facit. Försökte skapa ett program som gör samma sak med en liknande approach, men när jag ville anropa .remove()-funktionen så fick jag felmeddelande. Confused. :?
'cause the freak inside controls my mind
Post Reply