Sida 1 av 1

valideringsfel lab6

InläggPostat: 28 okt 2018, 21:07
av knasenn
Hejsan,

Jag får följande valideringsfel som jag inte förstår hur jag fixar.

WARNING pylint failed: './me/kmom06/lab6/answer.py'
************* Module answer
C:123, 9: Consider iterating the dictionary directly instead of calling .keys() (consider-iterating-dictionary)
C:144, 9: Consider iterating the dictionary directly instead of calling .keys() (consider-iterating-dictionary)
R:162, 0: The if statement can be replaced with 'var = bool(test)' (simplifiable-if-statement)

Detta är koden för första varningen:
Kod: Markera allt
lista = []
for i in dicta.keys():
    lista.append(i)

lista.sort()

ANSWER = lista

Re: valideringsfel lab6

InläggPostat: 29 okt 2018, 08:57
av Zeldah
knasenn skrev:Hejsan,
C:123, 9: Consider iterating the dictionary directly instead of calling .keys() (consider-iterating-dictionary)

Om du bara vill använda nycklarna från dict:en när du itererar behöver du inte anropa dem med .keys() utan du kan itererara på dictionaryn direkt så får du nycklarna i for loopen.
Kod: Markera allt
for key in dicta:
     lista.append(key)


R:162, 0: The if statement can be replaced with 'var = bool(test)' (simplifiable-if-statement)

Validatorn tycker du har en onödig if-sats. Jag igssar att den ser ut typ som följer:
Kod: Markera allt
if 2 < 4:
    res = True
else:
    res = False

I detta fallaet kommer alltid uttrycket 2 < 4 att producera True eller False så då kan vi skippa if-satsen, för den tillför inget när det enda vi gör är att tilldela True/false till en annan variabel.
Så då kan vi istället skriva det som res = 2 < 4

Re: valideringsfel lab6

InläggPostat: 29 okt 2018, 12:21
av knasenn
Zeldah skrev:
knasenn skrev:Hejsan,
C:123, 9: Consider iterating the dictionary directly instead of calling .keys() (consider-iterating-dictionary)

Om du bara vill använda nycklarna från dict:en när du itererar behöver du inte anropa dem med .keys() utan du kan itererara på dictionaryn direkt så får du nycklarna i for loopen.
Kod: Markera allt
for key in dicta:
     lista.append(key)


R:162, 0: The if statement can be replaced with 'var = bool(test)' (simplifiable-if-statement)

Validatorn tycker du har en onödig if-sats. Jag igssar att den ser ut typ som följer:
Kod: Markera allt
if 2 < 4:
    res = True
else:
    res = False

I detta fallaet kommer alltid uttrycket 2 < 4 att producera True eller False så då kan vi skippa if-satsen, för den tillför inget när det enda vi gör är att tilldela True/false till en annan variabel.
Så då kan vi istället skriva det som res = 2 < 4


okej det såg mycket snyggare ut :)

Jag får dock inte bool grejen att funka. Jag hittar inte en ersättning för min lösning:
Kod: Markera allt
if 'Baggins' in dicta.keys():
    bool1 = True
else:
    bool1 = False


ANSWER = bool1

Re: valideringsfel lab6

InläggPostat: 29 okt 2018, 12:44
av Zeldah
Kod: Markera allt
bool1 = 'Baggins' in dicta.keys()

ANSWER = bool1

Borde fungera.

Re: valideringsfel lab6

InläggPostat: 29 okt 2018, 13:37
av knasenn
Zeldah skrev:
Kod: Markera allt
bool1 = 'Baggins' in dicta.keys()

ANSWER = bool1

Borde fungera.

Ja okej, tack! Tror dock att jag kommer göra "fel" några gånger till innan det sitter riktigt :)