5 svar
80 visningar
SimSim är nöjd med hjälpen!
SimSim 4
Postad: 8 sep 2020

Tolka typer av variabler

Hej! Nybörjare i programmering här och är tacksam för alla svar.

Jag håller på med en uppgift som går ut på att skriva ett program som låter användaren ange hur många heltal som ska lagras i en lista och vilka, sedan skriva ut talen baklänges. Men programmet ska också kunna hantera om användaren skriver in något som inte tolkas som heltal (till exempel en sträng) och fråga om ett nytt tal.

Så här långt har jag kommit men jag kan inte få kläm på den sista biten utan får bara en massa felmeddelanden på allt jag försöker.

heltal = int(input("Hur många heltal? "))
heltal_lista = []
h = 1

while h <= heltal:
    tal = int(input("Mata in ett tal här: "))
    heltal_lista.insert(0, tal)
    h += 1

print(heltal_lista)

tomast80 3238
Postad: 9 sep 2020 Redigerad: 9 sep 2020

Tips här: https://careerkarma.com/blog/python-string-to-int/

Jag skulle nog läst in som en sträng först och sedan konverterat till heltal i nästa steg om det verkligen är på rätt format.

Laguna Online 11665
Postad: 9 sep 2020

Lång och pladdrig sida som ändå inte säger något om vad som händer om strängen inte kan konverteras.

Om ni har lärt er exceptions så kan ni använda det (men det brukar man inte lära sig tidigt).

Ett annat sätt är att undersöka om strängen består av enbart siffror, eventuellt med ett minustecken först. 

emilg 355
Postad: 9 sep 2020

Prova:

def isDigit(s):
  if s[0] == '-':
    return s[1:].isdigit()
  return s.isdigit()

Det är en funktion som kollar om det användaren skrivit in är ett heltal. 

Laguna Online 11665
Postad: 9 sep 2020

Akta om strängen är tomma strängen, bara.

Aerius 472
Postad: 9 sep 2020

Eftersom du vet hur många iterationer while-loopen ska göra är en for-loop bättre. Det är ingen större skillnad på while-loop och for-loop. Men en while-loop används vanligen när man inte vet hur många iterationer ska göras medan en for-loop används vanligen när man vet hur många iterationer som ska göras.

Det finns en inbyggd funktion i python som vänder på en lista baklänges, list.reverse(). Det är en god vana att göra en sak i taget. I det här fallet läsa in talen till listan i loopen (list.append() ), efter det ändra ordningen till baklänges i listan (list.reverse() ) sist skriva ut listan.

Svara Avbryt
Close