-
Notifications
You must be signed in to change notification settings - Fork 33
Description
Under arbetet med kmom02 kändes mina lösningar till vissa av uppgifterna forcerade och lite onaturliga. Även om lösningarna funkar och jag inte får några valideringsfel känns det som det går att förbättra dem. Jag hamnar lite i att "släcka bränder" ibland känns det som. Det här rör främst menyvalen i marvin och framför allt menyval a5.
Koden finns uppladdad här: https://umbridge.arnesson.dev/results/inspect/565038/BYYLmHb3PvUxfdFP6hYtIz0XY2tEzCFKM35x3VRt
Menyval A5 (förklaring följer nedan):
point_string = input('Input a string: ') # "a2b4A5s3B1"
final_str = ""
used_letters = ""
length = len(point_string)
lowercase = point_string.lower()
for letter in lowercase:
result = 0
if letter in used_letters or letter.isdigit():
continue
used_letters += letter
if letter.isalpha():
for i, char in enumerate(point_string):
if char == letter and i < (length - 1):
if point_string[i+1].isdigit():
point = int(point_string[i+1])
result += point
elif char == letter.upper() and i < (length -1 ):
if point_string[i+1].isdigit():
point = int(point_string[i+1])
result -= point
final_str += letter + " " + str(result) + ", "
print(final_str[:-2])Koden ovan funkar och passerar alla tester, men det känns definitivt som att den kan förbättras ordentligt, framför allt när det kommer till poängräknandet. De två if-statementsen som kollar om point_string[i+1] har ett numeriskt värde känns inte naturliga, men jag får ValueErrors om jag inte kör dem. Jag har också funderingar på ifall variabeln used_letters är bästa sättet att hålla koll på vilka bokstäver som inte ska räknas med fortsättningsvis - det känns inte som det. Provade flera andra lösningar men detta var den som funkade utan några problem.
Uppskattar all feedback möjlig på denna uppgift. Jag satt rätt länge med den så jag skulle vilja se vart jag tänkt fel och vad jag kunnat göra annorlunda. Nojjar lite över att komma in i ett "släcka bränder"-tänk där jag lägger till mer kod för att lösa problem jag skapat av att skriva dålig kod från början.