valideringsfel lab6

  • Författare
  • Meddelande
Användarvisningsbild

knasenn

sql-guru

  • Inlägg: 100
  • Blev medlem: 06 sep 2018, 14:22

valideringsfel lab6

Inlägg28 okt 2018, 21:07

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
Användarvisningsbild

Zeldah

dbwebb

  • Inlägg: 491
  • Blev medlem: 02 mar 2016, 10:17

Re: valideringsfel lab6

Inlägg29 okt 2018, 08:57

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
Användarvisningsbild

knasenn

sql-guru

  • Inlägg: 100
  • Blev medlem: 06 sep 2018, 14:22

Re: valideringsfel lab6

Inlägg29 okt 2018, 12:21

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
Användarvisningsbild

Zeldah

dbwebb

  • Inlägg: 491
  • Blev medlem: 02 mar 2016, 10:17

Re: valideringsfel lab6

Inlägg29 okt 2018, 12:44

Kod: Markera allt
bool1 = 'Baggins' in dicta.keys()

ANSWER = bool1

Borde fungera.
Användarvisningsbild

knasenn

sql-guru

  • Inlägg: 100
  • Blev medlem: 06 sep 2018, 14:22

Re: valideringsfel lab6

Inlägg29 okt 2018, 13:37

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 :)

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 16 gäster