Sida 1 av 1

kmom02 lab1 valideringsfel för unused variable i loop

InläggPostat: 05 sep 2014, 12:16
av kitty
I uppgiften Marvin 1 #9:
Menyval: Slumpmässiga tal. Marvin ska fråga efter min och max och sedan skriva ut 10 slumpmässiga tal mellan min och max. Dessa ska skrivas ut kommaseparerat på samma rad.

jag kör en for-loop 10 gånger för att lösa det, men om man inte använder variabeln som tickar upp så klagar validatorn, så nu är min utskrift otydlig då jag skriver ut 0: 13,1: 8,2: 17,3: 7,4: 14,5: 19,6: 13,7: 18,8: 12,9: 13,

är det tänkt att använda någon annan iterationstyp eller finns det något fin lösning?

Re: kmom02

InläggPostat: 05 sep 2014, 12:22
av mos
Njae, vilken kod klagar pylint på?

Kanske ska vi uppfostra .pylintrc.

Re: kmom02

InläggPostat: 05 sep 2014, 12:41
av kitty
for x in range(0, 10):
rand = randint(int(mi), int(ma))
strl += str(rand) + ","

den klagar på att jag inte använder x

Re: kmom02

InläggPostat: 05 sep 2014, 13:08
av Sylvanas
kitty skrev:for x in range(0, 10):
rand = randint(int(mi), int(ma))
strl += str(rand) + ","

den klagar på att jag inte använder x


Du ska loopa något 10 gånger om jag har förstått det rätt. Om du använder for x in range så loppar du din range och placerar varje siffra i x. Så ja, den kommer klaga på att x inte används, för det gör den inte. Så det är ett tankefel i din kod. Behöver du x? Nej. Varför har du då skrivit den typen av loop? Finns det andra bättre loopar att använda? Hur gör du det i så fall?

Re: kmom02

InläggPostat: 05 sep 2014, 14:30
av mos
Kikade på det, övervägde att ignorera det felet i pylint men ville egentligen inte det. Kikade på alternativa loopar, men fann inget som tilltalade mig.

Däremot kan man använda ett underscore _ istället för en vanlig variabel som x. Det är ett vedertaget begrepp för "jag bryr mig inte om det värdet", vedertaget i Python-världen, det vill säga. Jag har (ännu) inte sett det i andra programmeringsspråk.

Min loop ser ut så här och går igenom pylint:

Kod: Markera allt
    for _ in range(0, 10):
        rand = random.randint(minVal, maxVal)
        str1 += str(rand) + ","


http://stackoverflow.com/questions/5893 ... -in-python
http://stackoverflow.com/questions/1739 ... -in-python
http://programmers.stackexchange.com/qu ... underscore

Däremot står det inget i manualen om detta, låt det då vara vedertagen praxis att använda _ för saker vi ignorerar (om det behövs).

The special identifier _ is used in the interactive interpreter to store the result of the last evaluation; it is stored in the builtins module. When not in interactive mode, _ has no special meaning and is not defined.

https://docs.python.org/3/reference/lex ... dentifiers

Re: kmom02

InläggPostat: 18 jan 2015, 16:52
av jonas81
mos skrev:Det är ett vedertaget begrepp för "jag bryr mig inte om det värdet", vedertaget i Python-världen, det vill säga. Jag har (ännu) inte sett det i andra programmeringsspråk.


Underscore används på samma sätt i Erlang :)