5 svar
232 visningar
Lukasoif 3 – Fd. Medlem
Postad: 1 dec 2020 18:33 Redigerad: 1 dec 2020 18:39

Behöver hjälp fattar ej felet!

Har två uppgift som jag ej fattar vad som jag har gjort fel på den ena har jag suttit med i ungefär 20 min och bara tittat in i och fattar inte vad som är felet! Den andra skulle jag gärna ta emot fler tips på hur man skulle kunna göra den enklare. Tips men även en hel lösning mottages gärna inga ledtrådar för gör mig inte ett dugg smartare!

 

uppgift 1

gör ett program som frågar vad du heter och hur gamma du är sedan som skriver ut hur många år det är kvar tills du fyller 65 

mitt försök som verkar vara fel:

a = input("Vad heter du?")
b = int(input("Hur gammal är du?"))
c = 65 - (b)
      print("Du heter{}," a ", och har{}," c ", år kvar till du fyller 65 år")

 

Uppgift 2: 

göra ett program som jag kan köra sten , sax, påse med och där datorn väljer ett random av dem. Försten till tre vinner! 

import random
r = random.randint(sten,sax,påse)
Total= 0
Poäng = Total +1

 

M = input("Sten,sax eller påse?")
if(M="sax" and R = "påse"):
     print(poäng)"Du angav sax och datorn angav påse")
elif(R=sax and M= påse):
      print(Poäng)"Du angav påse och datorn angav sax")
elif(M=sax and R = sten):
      print(Poäng)"Du angav sax och datorn angav sten")
elif(R=sax and M=sten):
      print(Poäng)" Du angav sten och datorn angav sax")
elif(M=sten and R = påse):
      print(poäng)"Du angav sten och datorn angav påse"
else:
     print(poäng)"Du angav påse och datorn angav sten "

while(total=3/0 or 3/1 or 3/2 or 0/3 or 1/3 or 2/3):
if(Poäng=3/0 or 3/1 or 3/2)
     print("Du vann! Grattis")
if(Poäng=0/3 or 1/3 or 2/3)
      print("Du förlorade tyvärr")

// Lukas 

Laguna Online 28593
Postad: 1 dec 2020 18:43

Du borde göra separata trådar för dem.

Vad går fel i det första?

Lukasoif 3 – Fd. Medlem
Postad: 1 dec 2020 18:48

ok, den första ser ut så här om det hjälper

Skaft 2373 – F.d. Moderator
Postad: 1 dec 2020 18:52

Den första: Föreslår en f-string till printraden. Den låter dig skriva allt som en enda sträng, så du slipper tänka på var kommatecken etc ska hamna. Variablerna sätts inom {måsvingar} så att python kan skilja på variabler och vanlig text:

print(f"Du heter {a} och har {c} år kvar till du fyller 65 år")

(notera f:et framför strängen)

Felmeddelandet handlar dock om att raden är inskjuten ("indented"), vilket den inte ska vara. Tumregeln är att om raden ovanför slutar med kolon, då måste raden under spejsas in några steg. Men här slutar inte raden ovanför, dvs. c = 65 - (b), med ett kolon och då blir python förvirrat av den plötsliga indenteringen.

Lukasoif 3 – Fd. Medlem
Postad: 1 dec 2020 19:01

Okej, Det fungerar ju men finns det något annat sätt att lösa det på än "F" grejen har nämligen inte lärt mig det än?

Skaft 2373 – F.d. Moderator
Postad: 1 dec 2020 19:13

Jadå, man kan också använda .format (är det bekant?) eller bara printa flera saker som man separerar med kommatecken, vilket såg ut som vad du försökte. Då blir det som 

print("Här står text och", "sen mer text", "och sen en variabel:", a)

Notera att kommatecknen är utanför strängarna. De är inte del av texten utan säger till print-funktionen att det är flera olika saker man vill printa. Variabeln a är inte text, så den får inga strängfnuttar.

På den andra uppgiften skulle jag föreslå att du tar "mindre steg" när du kodar. Det ser ut som att du kodat allt på en gång, och sen testkört - det är nämligen mer än ett par fel på en gång här. Istället, ta det från början och bygg ut programmet bit för bit, och testkör det regelbundet för att kolla att det funkar som det ska. Steg ett kan vara ett program som bara gör datorns val av sten/sax/påse, och printar ut det.

Svara Avbryt
Close