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
Du borde göra separata trådar för dem.
Vad går fel i det första?
ok, den första ser ut så här om det hjälper
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.
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?
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.