These are chat archives for dbwebb-se/python

3rd
Oct 2017
Daleke
@Daleke
Oct 03 2017 06:41
Hej, Är det någon som varit med om att elif statements körs även om villkoret inte uppfylls.
Daleke
@Daleke
Oct 03 2017 06:49
Jag har det bekymret just nu. "elif inp == ["a"] or "about" in inp:" körs även om inp = []. Hyggligt förvirrande faktiskt. Kommenterar jag bort elifen körs nästa elif utan att vilkoren uppfyllts. Ända till "else". Första if-satsen funkar normalt. Jag har testat att att printa inp. Den är [].
Är det så att man inte kan ha blankrader mellan if och elif som hör ihop?
Mikael Roos
@mosbth
Oct 03 2017 07:02
["a"] or "about" in inp sätt paranteser runt uttrycket för att visa hur du vill det skall exekveras. Fundera sedan på vilket som har högst presedens, or eller in, du kan se två olika sätt att tolka uttrycket om man är en dator.
Luoniev
@Luoniev
Oct 03 2017 07:11
Jag har lite problem med JSON, när jag skriver in information in i JSON-filen så skrivs det i terminalen med namn och value, men när jag ska senare läsa från filen så är namnen där men value är null. Jag förstår att kanske värdet inte sparas rätt men varför ser han det först och inte senare?
Daleke
@Daleke
Oct 03 2017 07:17
@mosbth Ok, jag ska testa med paranteserna. Jag har plöjt igenom artikeln, och förstår att mitt uttryck kan misstolkas som det är nu. Men hur i hela friden kan det köra om inp är []. Hur man än vänder på tolkningarna så måste ju åtminstone ett a in någonstans? Mitt huvud har hängt sig. Vilken vital del missar jag?
Daleke
@Daleke
Oct 03 2017 07:25
Nääh... Även om or har högre presendens än in borde den inte köra uttrycket på en tom input. Nu känner jag mig korkad.
Mikael Roos
@mosbth
Oct 03 2017 07:31
Har du sett det? Paranteser är en bra grej som får en att förstå hur saker kan tolkas.
# alt 1
(["a"] or "about") in inp

# alt 2
["a"] or ("about" in inp)
Daleke
@Daleke
Oct 03 2017 07:34
Yes, så långt är jag med. Jag vill bara förstå hur datorn tolkar min tidigare kod. Eftersom den kör koden i vilket fall som helst. Tar den or först och jämför alltså inp med inp? Eller hur får den uttrycket att bli True?
Vad betyder det i artikeln att "operators are binary"? Jag hängde inte riktigt med där.
Detta är intressant.
liacost2003
@liacost2003
Oct 03 2017 07:36
Jag kämpar nu med kmom05. Funktionerna i analyzer.py är klara och det går att anropa dem om jag kör samma metod som i Marvin (alltså om jag mattar in command ("lines", "words" etc.) så läses och analyseras phil.txt. Men jag har ingen aning hur jag kan få filnamnet att agera som argument. Var ska jag börja? Har sett Andreas exempel ett par gånger, men sitter fortfarande fast...
Mikael Roos
@mosbth
Oct 03 2017 07:36
När man inte vet vad som händer så bryter man ned saker i beståndsdelar.
>>> a = []
>>> a
[]
>>> 1 or a
1
>>> a or 1
1
>>> ["a"]
['a']
>>> ["a"] or 1
['a']
>>> 1 or ["a"] 
1
>>> ["a"] or 1 in a
['a']
>>> 1 or ["a"] in a
1
Daleke
@Daleke
Oct 03 2017 07:39
Ahh... Så uppenbart egentligen. Supertack. Detta får en prominent plats i mitt minne.
Mikael Roos
@mosbth
Oct 03 2017 07:44
@liacost2003 är det detta du sitter med? https://dbwebb.se/kunskap/argparse#korbart-program
@Luoniev låter som du vill avgränsa problemområdet, har du rätt data i minnet (print()), skriver du datan till fil (printa), uppdateras filen?
liacost2003
@liacost2003
Oct 03 2017 07:46
@mosbth ja, just nu fungerar mitt program utan att jag behöver mata in filnamnet, vilket är ett krav
Luoniev
@Luoniev
Oct 03 2017 07:50
Jag har fixat problemet, men nu har jag ett annat problem
Mikael Roos
@mosbth
Oct 03 2017 07:51
@liacost2003 lyckas du inte få ihop det så gör ett inlägg i forumet så får andreas/kenneth svara på det där.
Luoniev
@Luoniev
Oct 03 2017 07:51
När jag sparar min json kod men hjälp av --output så sparas namnen inom enkel fnuttar 'name', iställer för "name", vilket json tycker inte om
Allinrep
@pejg12
Oct 03 2017 09:38
@Luoniev om du matar python-strängar till modulen json så spelar det ingen roll vilka fnuttar du använder för dina strängar. det låter som att du försöker bygga upp json manuellt utan att använda modulen
@Prohopp använd dig av print() för att ta reda på hur en struktur ser ut. man ska inte testa sig fram i blindo, man printar ut variabler man vill använda sig av och tar reda på hur de ser ut inuti så att man kan nå rätt del.
Luoniev
@Luoniev
Oct 03 2017 09:43
Jag bygger upp json först, sparar det i en fil, som är temporärt där som set sedan printas från, men när jag ska spara så blir det enkel fnuttar, jag ska kolla på det sen, ska äta nu
Allinrep
@pejg12
Oct 03 2017 09:44
$ python3
>>> a = "hejsan"
>>> a
'hejsan'
vilken sorts fnutt man använder spelar ingen roll inom python. om du använder json-modulen borde det inte spela någon roll där heller.
Allinrep
@pejg12
Oct 03 2017 09:50
@liacost2003 börja med att leka runt med argparse-övningen. om du har förändrat den för mycket kan du ta en ny kopia från example-katalogen. prova att skicka ett låtsaskommando (exempelvis command1) och sedan lägga till filnamnet. var hamnar filnamnet efteråt? exempelprogrammet har bra prints som borde ge dig ledtrådar.
liacost2003
@liacost2003
Oct 03 2017 14:18
@pejg12 jag har förstått att mitt filnamn hamnar i unknown_args, men jag förstår inte hur man kan öppna filen därifrån
Jesper Grandien
@JGrandien_twitter
Oct 03 2017 14:26
Hej sitter med Kmom05 och försöker få argumentet som parameter i min funktion hur gör jag? Om jag till exempel vill få ut phil.txt ur "python3 main.py words phil.txt" till funktionen?
Tror vi har samma problem @liacost2003 ?
liacost2003
@liacost2003
Oct 03 2017 14:28
ja :(
Mikael Roos
@mosbth
Oct 03 2017 14:55
Om ni inte får ihop det, ställ frågan i forumet så kommer hjälpen där.
liacost2003
@liacost2003
Oct 03 2017 14:55
har precis gjort det :)
Mikael Roos
@mosbth
Oct 03 2017 14:55
:+1:
Edward Nilsson
@Enilsson9
Oct 03 2017 17:49
Angående kmom06: Ska det också fungera att köra "python3 all phil.txt" på min "analyzer2"? eller kan jag ta bort koden som analyserar filen och ändrar det för att kunna analysera webbsidor ist? eller måste det vara både och?