These are chat archives for dbwebb-se/python

27th
Sep 2017
Anders Nygren
@litemerafrukt
Sep 27 2017 07:03
@erab17 ser ut som det är fel i skriptet. Men jag har för mig att pip är inkluderat i python-distributionerna nuförtiden. Har du testat pip --version eller pip3 --version?
Mikael Roos
@mosbth
Sep 27 2017 07:11
Det ser ut som du laddat ned filerna flera gånger och sista gången sparas det som get-pip.py.1. Kanske blev det fel första gången och du kör det felaktiga skriptet. Pröva radera samtliga filer som heter get-pi.py*, dubbelkolla att det inte ligger en sån fil i katalogen du står och kör om processen från början.
liacost2003
@liacost2003
Sep 27 2017 09:00
när jag inspekterar Kmom04 får jag en varning: Directory blabla me/kmom04/marvin2 not readable. Varför marvin2? Mappen heter marvin3.
AndreasArne
@AndreasArne
Sep 27 2017 09:10
@liacost2003 testa göra dbwebb update i python mappen
det var ett fel med inspect som ska vara fixat
liacost2003
@liacost2003
Sep 27 2017 09:12
@AndreasArne strålande!
tack!
Allinrep
@pejg12
Sep 27 2017 09:21
@limy17 Det finns en tråd om simplifiable-is-statement i FAQ-tråden. https://dbwebb.se/t/2479
@liacost2003 skicka med choice[9:] som ett argument till funktionen. minfunktion(choice[9:])
@qara17 jag tänker att vi måste kolla att din in_range() och multiplication() fungerar innan du kan ge dig på squares_in_range(). kan du inkludera alla funktionerna i din codeshare nästa gång?
liacost2003
@liacost2003
Sep 27 2017 09:22
@pejg12 tack :)
Allinrep
@pejg12
Sep 27 2017 09:24
@Daggerby du kan läsa mer om len-as-condition här: https://stackoverflow.com/a/43476778/2148504
limy17
@limy17
Sep 27 2017 09:24
@pejg12 Hej! Har analyserat min main.py lite nu. Det räcker att det står import quotes för att main ska börja köra det programmet. Hur kan det vara så? Och hur fixar jag det? https://codeshare.io/alkDdj
Allinrep
@pejg12
Sep 27 2017 09:25
det beror ju på vad du har i quotes då. ligger all kod inne i funktioner eller har du kod utanför funktioner?
tanken är att allt som finns i en modul ska vara inkapslat i funktioner, då körs ingenting automatiskt
limy17
@limy17
Sep 27 2017 09:26
Ska kolla ...
Allinrep
@pejg12
Sep 27 2017 09:28
@Daleke den textbaserade grafiken ska tillföra någonting till upplevelsen, men med förståelse för att det här är en programmeringsutbildning och inte en grafikerutbildning.
limy17
@limy17
Sep 27 2017 09:28
Det låg faktiskt kvar ett anrop till funktionen i quotes, efter funktionen. Testar att ta bort det...
lewenhagen
@lewenhagen
Sep 27 2017 09:31
@Edugolr Tanken är att allt sköts från main.py. cli-parser ska bara styra upp eventuella kommandon/options/argument som skickats in.
limy17
@limy17
Sep 27 2017 09:31
Det fungerade. Men quotes öppnas inte efteråt (uppdaterad kod: main) https://codeshare.io/alkDdj
Jag avslutar Marvin med detta kommando, om användaren väljer 9: quit: https://codeshare.io/aYbrzE
Allinrep
@pejg12
Sep 27 2017 09:32
@limy17 du ska lägga in all kod i funktioner, den enda som får köras direkt är det som startar menyn. allt om PlayGame ska läggas i funktioner som anropas av menyn.
limy17
@limy17
Sep 27 2017 09:33
Det i quotes får inte vara ett meny-val, enligt anvisningarna.
Därför ligger inte det i menyn.
Allinrep
@pejg12
Sep 27 2017 09:33
helt rätt, det ska inte anropas med bara en siffra
men det kan fortfarande hanteras på samma ställe där du tar emot input
limy17
@limy17
Sep 27 2017 09:34
Hur då?
Jag avslutar Marvin med detta kommando, om användaren väljer 9: quit: https://codeshare.io/aYbrzE Kan jag använda något annat istället, som inte avslutar main? Choise Q är jag på nu.
Allinrep
@pejg12
Sep 27 2017 09:36
elif "citat" in choice:
quit ska avsluta hela programmet
limy17
@limy17
Sep 27 2017 09:37
Ok :)
Det funkar nog om jag gör som du säger, och lägger in quotes i menyn.
Men jag förstår inte riktigt hur jag ska lyckas med det, utan att lägga till fler meny-val?
liacost2003
@liacost2003
Sep 27 2017 09:40
om användaren matar in "citat" så reagerar marvin på det och exekverar koden
limy17
@limy17
Sep 27 2017 09:41
Hur ska användaren veta att hen ska göra det?
Om det inte får stå som ett meny-val, menar jag ...
Allinrep
@pejg12
Sep 27 2017 09:41
det handlar om att man ska kunna skriva "jag vill ha ett citat" och då ska det fungera lika väl som "citat är bra" och bara "citat". det går inte att göra om man hanterar det som ett vanligt menyval med ==
limy17
@limy17
Sep 27 2017 09:41
Jo, det är ju vad programmet går ut på.
Allinrep
@pejg12
Sep 27 2017 09:42
under din meny kan du skriva "Man kan även skriva kommandon som citat, blabla och haha"
limy17
@limy17
Sep 27 2017 09:42
Ok, så sålänge jag inte har med == siffra, så kan jag skriva vad jag vill i menyn?
Allinrep
@pejg12
Sep 27 2017 09:42
så har jag tolkat det, ja
limy17
@limy17
Sep 27 2017 09:42
Då kör jag på det :)
Tack för hjälpen!
Allinrep
@pejg12
Sep 27 2017 09:43
skriv i redovisningen hur du tänkte kring det här, så rättaren vet att du gjort ett medvetet val
limy17
@limy17
Sep 27 2017 09:43
Yes
Allinrep
@pejg12
Sep 27 2017 09:44
jag ska iväg en stund, kommer tillbaka lite senare idag
limy17
@limy17
Sep 27 2017 09:44
Ok
limy17
@limy17
Sep 27 2017 10:18
Jag försöker göra uppg. 2 i kmom05, men får detta svaret av terminalen:
Lindas-MacBook-Pro:me linda$ cd kmom05
Lindas-MacBook-Pro:kmom05 linda$ ls
analyzer argparse lab5 marvin4 warehouse
Lindas-MacBook-Pro:kmom05 linda$ cp -ri argparse/.py analyzer/
cp: argparse/
.py: No such file or directory
Vad göra?
Bartek
@Aquerr
Sep 27 2017 10:20
Hej på er alla! Tänker bara snabb fråga. Skall man räkna mellanslag, punkter osv. i Kmom5 "Analysera-text-och-ord" Uppgift 6 ? "Analysera även ord- och bokstavsfrekvensen och skriv ut de sju mest förekommande orden och bokstäverna. Ange frekvensen i % av totala mängden ord eller bokstäver. Använd kommandona word_frequency och letter_frequency." Eller skall man räkna bokstäver från A till Z bara?
@limy17 Glömde du skriva en stjärna efter "/"? cp -ri argparse/*.py analyzer/
limy17
@limy17
Sep 27 2017 10:23
Jag bara kopierade från instruktionssidan. *-symbolen verkar försvinna här i chatten bara, av ngn. anledning.
Bartek
@Aquerr
Sep 27 2017 10:25
Okey
Har du gjort övningen "Modulen argparse"?
Där kör man ett kommando också som är cp -ri example/argparse/* me/kmom05/argparse/
Jag kommer ihåg att jag behövde köra detta kommandot också för att jag hade samma problem som du
limy17
@limy17
Sep 27 2017 10:33
Jag har läst igenom den bara, inte gjort den.
Den hittar tyvärr inte det heller.
Tack ändå.
Bartek
@Aquerr
Sep 27 2017 10:35
Får du samma fel när du kör cp -ri example/argparse/* me/kmom05/argparse/ ? (Kom ihåg att du måste ställa dig i kurskatalogen)
limy17
@limy17
Sep 27 2017 10:52
Jag står i python kmom05 när jag gör det
Bartek
@Aquerr
Sep 27 2017 10:53
ställ dig i python katalogen och kör cp -ri example/argparse/* me/kmom05/argparse/
limy17
@limy17
Sep 27 2017 10:54
Tack, nu funkade det.
Bartek
@Aquerr
Sep 27 2017 10:54
Och nu kan du gå in i kmom5 och köra det första kommandot
cp -ri argparse/*.py analyzer/
limy17
@limy17
Sep 27 2017 13:36
Ang. uppg. 2, kmom05: Finns det inget exempel där man hanterar en textfil, på det sätt som efterfrågas i instruktionen till uppgiften? (Förutom den korta videon i slutet av övningen)
Och denna rad från övningen hjälper inte mig så mkt. heller: $ python3 main.py --output=humans.txt get https://dbwebb.se/blogg/grillcon-2017-var-i-utokad-version
I exempelvideon anges ju inte textfilens namn ngn stans.
Var i koden kan man ange filen som argument? Det borde ju vara dest, men inte enligt videon.
limy17
@limy17
Sep 27 2017 14:17
(kmom05, uppg. 2) Jag försöker göra detta: phil.txt = args.phil.txt men det går inte. Hur gör man? https://codeshare.io/G7xXLr
Daniel Mattsson
@daniel-mmm
Sep 27 2017 14:28
@limy17 Jag gav lite tips i codeshare:n, hoppas det hjälper :)
limy17
@limy17
Sep 27 2017 14:54
@daniel-mmm Tack!
Daniel Mattsson
@daniel-mmm
Sep 27 2017 14:56
@limy17 Varsågod :)
limy17
@limy17
Sep 27 2017 15:03
@daniel-mmm Hur vet den att det är just phil.txt som ska öppnas?
Daniel Mattsson
@daniel-mmm
Sep 27 2017 15:04
När du kör programmet får du skriva python3 program_fil.py -f=phil.txt för att öppna phil.txt
limy17
@limy17
Sep 27 2017 15:05
Ok
@daniel-mmm program_file.py väl?
Daniel Mattsson
@daniel-mmm
Sep 27 2017 15:07
program_fil får du byta till vad det nu är din fil heter, jag skrev det bara som exempel :)
limy17
@limy17
Sep 27 2017 15:08
Heter filen som detta ligger i analyze.py, blir det alltså: python3 analyze.py -f=phil.txt
Daniel Mattsson
@daniel-mmm
Sep 27 2017 15:08
Ja, skulle tro det
limy17
@limy17
Sep 27 2017 15:08
Tack för hjälpen Daniel!
Daniel Mattsson
@daniel-mmm
Sep 27 2017 15:09
Inga problem :)
Jonatan Lindblom
@jornatan
Sep 27 2017 16:35
När man sparar ping-history till en fil, ska det sparas olika information om man har gjort ping -s, ping -v eller bara ping? E
Som jag gjort nu så sparar jag url och status code oavsett. Är det så det är tänkt eller?
  • tid
Mikael Roos
@mosbth
Sep 27 2017 17:06
Så hade jag också gjort
Jonatan Lindblom
@jornatan
Sep 27 2017 17:38
:+1:
pip3000
@pip3000
Sep 27 2017 17:43
Kmom05 del2: Jag skriver "Python3 analyzer.py -f=phil.txt --read" och får upp det här Traceback (most recent call last):
File "analyzer.py", line 53, in <module>
unknown_args = list(map(int, unknown_args))
ValueError: invalid literal for int() with base 10: '--read'
Jag copy pasteade extended.py och fortsatte koda på den, var det ett smart drag?
Daniel Mattsson
@daniel-mmm
Sep 27 2017 17:48
--read verkar inte vara uppsatt som ett "optional argument" eller vad det kallas. Så du får strängen "--read" i unknown_args, och sen försöker du göra den till en int i map-funktionen, vilket inte går och därav krashen
pip3000
@pip3000
Sep 27 2017 17:54
Thanks, bytte ut den till str i stället. Dock hamnar --read i unknown strings även om jag har "subparsers.add_parser("--read", help="[String] read the whole .txt file")" och en "elif args.command == "--read" and unknown_args:
print(readFile.read())" nedanför
Daniel Mattsson
@daniel-mmm
Sep 27 2017 17:57
--read är inget kommando utan ett option, och borde väl specas på samma sätt som -f. Har inte gjort uppgiften själv än så har inte stenkoll
Daniel Mattsson
@daniel-mmm
Sep 27 2017 19:08
@pip3000 Om du fortfarande har problemet så beror det på att du skapar ett kommando som börjar med prefix-tecknet. Det innebär att när argparse går igenom de olika argument som du skickar in kommer den att se "--read börjar på prefix-teckent, det måste vara ett option" sen kollar den bland de argument som finns uppsatta. Eftersom --read är uppsatt som ett kommando och inget argument så hittar inte argparse det, och lägger det därför bland unknown_args.
Ieva Sargautyte
@tyte
Sep 27 2017 20:00
Hej! Går det att ladda ner filer från sin me/marvin-sida? Jag lyckades klanta mig och spara fel version lokalt. När jag testar dbwebb download kan jag inte se att filerna laddas ner.
Ieva Sargautyte
@tyte
Sep 27 2017 20:13
Ja nu hittade jag vad problemet var :). Om lokala filer är nyare än de som är på kursservern överskrivs de inte.
Mikael Roos
@mosbth
Sep 27 2017 20:13
Yepp. OM man inte kör flaggan --force för då skrivs även de nya filerna över
Ieva Sargautyte
@tyte
Sep 27 2017 20:14
@mosbth Tack, testar --force
Mikael Roos
@mosbth
Sep 27 2017 20:15
Vill man vara försiktig så tar man en lokal kopia av sitt nuvarande repo. För att undvika att något går sönder-
Ieva Sargautyte
@tyte
Sep 27 2017 20:17
Ja det är klokt :)!
Robert Larsson
@Gutzcode
Sep 27 2017 20:36

I genomgången av dictionaries på dbwebb så har ni ett exempel:

for key in sorted(warehouse.keys()):
    print(key, warehouse[key])

Detta skriver ut både nyckeln och värdet. Är inte helt med på varför den skriver ut värdet? För det är väl key och warehouse[key] man efterfrågar att skriva ut? Borde det inte nånstans där vara value? Och om inte, varför inte?

chrisaugustsson
@chrisaugustsson
Sep 27 2017 20:39
warehouse[key] returnerar värdet för den nyckeln.
Jonatan Lindblom
@jornatan
Sep 27 2017 20:41
dict = {"key": "value"}
print(dict["key"])
value
Robert Larsson
@Gutzcode
Sep 27 2017 20:45
Jag hänger med på att den gör det. Undrar mer varför den gör det. När man kollar på koden så är iaf min instinktiva tanke att den borde printa key och inte value :P
chrisaugustsson
@chrisaugustsson
Sep 27 2017 20:49
for loopen itererar igenom en dict som kallas warehouse, för varje nyckel i warehose sparas namnet i variabeln "key". I printen används variabeln key i warehouse[key]. Så om en nyckel kallades tex "katt" med värdet 4, är det samma sak som att du skriver ut warehouse["katt"]. Exakt samma sätt som du anropar ett index i en lista.
Robert Larsson
@Gutzcode
Sep 27 2017 21:02
Ok, så key i detta fallet "matchar" mot keyn i dictionaryn vilket är motsvarande indexet om det hade varit en lista och skriver ut värdet? Tror jag hänger med. Tack :)
chrisaugustsson
@chrisaugustsson
Sep 27 2017 21:03
Precis så!