These are chat archives for dbwebb-se/python

6th
Sep 2017
Henrik Hildebrand
@Gunke23_twitter
Sep 06 2017 06:59
Jag är lite osäker på om alla mina filer publiceras när jag publicerar kurskatalogen. När jag tittar på http://www.student.bth.se/~hehi17/dbwebb-kurser/htmlphp/me så kan jag inte se mina python-filer. Ska det vara så? Jag får inga felmeddelanden när jag publicerar.
Anders Nygren
@litemerafrukt
Sep 06 2017 07:25
@Gunke23_twitter Pythonfilerna syns inte på nätet. Får du inga fel när du publicerar fungerar det förmodligen finfint.
Henrik Hildebrand
@Gunke23_twitter
Sep 06 2017 07:50
@litemerafrukt Alright, Tack Anders!
Jonatan Lindblom
@jornatan
Sep 06 2017 07:57
hittade på denna lösningen för att se om en variabel är en int:
"if "int" in str(type(str_or_int)):"
tänkte bara kolla om det inte finns något smidigare sätt. google hjälpte mig inte.
Allinrep
@pejg12
Sep 06 2017 08:01
använd funktionen isinstance()
jag sökte på "python type is int" och hittade Check if a number is int or float @jornatan
Jonatan Lindblom
@jornatan
Sep 06 2017 08:04
se där! tackar
rickardkron
@rickardkron
Sep 06 2017 08:06

Hej! Jag håller på och göra uppgifterna i lab2 men får ett felmeddelande jag inte riktigt lyckas tyda och som jag därför skulle be om hjälp om:

"Traceback (most recent call last):
File "answer.py", line 56, in <module>
dbwebb.assert_equal("1.1", ANSWER, False)
File "/...//dbwebb-kurser/python/me/kmom02/lab2/dbwebb.py", line 96, in assert_equal
self.points += self.answers["points"][question]
KeyError: 'points' "

Detta dyker alltså upp i terminalen när jag kör "python3 answer.py"
Allinrep
@pejg12
Sep 06 2017 08:12
@rickardkron vad har du för version av dbwebb? kör dbwebb --version
limy17
@limy17
Sep 06 2017 08:18
Hej! Jag undrar om någon kan se vad som är fel med mitt Python-program för uppgift 2.2 i kmom02?
Terminalen kör det inte, inget händer över huvud taget
Allinrep
@pejg12
Sep 06 2017 08:20
mellan rad 12 och 13, lägg in print(b) så att du ser vad som händer.
limy17
@limy17
Sep 06 2017 08:25
Händer fortfarande inget
Allinrep
@pejg12
Sep 06 2017 08:25
det är konstigt, något borde ju hända
på rad 11 då, före loopen, print(summer_word)
den variabeln kanske inte innehåller några bokstäver?
vill du ha hjälp i https://dbwebb.se/hangout0 eller här?
limy17
@limy17
Sep 06 2017 08:27
ett "r" skrivs ut i terminalen, inget mer
Det är ju en bra början, men "resort" består ju av fler konsonanter än r :)
Allinrep
@pejg12
Sep 06 2017 08:29
så summer_word innehåller bara bokstaven r? vad borde den innehålla?
limy17
@limy17
Sep 06 2017 08:29
resort
minus vokalerna e och o
Det är iaf vad jag ville med mitt program
Allinrep
@pejg12
Sep 06 2017 08:30
lägg till summer_word = "resort" före loopen då
limy17
@limy17
Sep 06 2017 08:30
det är deklarerat en gång i uppgiften innan
men jag kan testa ändå.
Allinrep
@pejg12
Sep 06 2017 08:31
först skrev du att inget händer och sen skrev du att du får ut ett "r". det är ganska stor skillnad på ett "r" och ingenting :)
limy17
@limy17
Sep 06 2017 08:31
Eller hur!
Allinrep
@pejg12
Sep 06 2017 08:32
jag ser ett misstag i din andra loop, men det vill jag inte nämna förrän vi är säkra på att koden har gått in i den första loopen
limy17
@limy17
Sep 06 2017 08:33
Jag får bara r, allt stannar av, den går inte tillbaka till start-läge som skulle vara Lindas-MacBook-Pro:
Inga felmeddelanden heller

Lindas-MacBook-Pro:lab2 linda$ python3 answer.py

Ready to begin.
1.1 CORRECT. Well done!
1.2 CORRECT. Well done!
1.3 CORRECT. Well done!
1.4 CORRECT. Well done!
2.1 CORRECT. Well done!
r

Allinrep
@pejg12
Sep 06 2017 08:34
okej, nästa problem då
while b != "a" or "e" or "i" or "o" or "u" or "y": gör nog inte det du hade tänkt att det skulle göra
om jag skriver ut de osynliga parenteserna så förstår du kanske vad som händer
while (b != "a") or ("e") or ("i") or ("o") or ("u") or ("y"):
limy17
@limy17
Sep 06 2017 08:36
kollar den om hela ordet är en vokal? Dehöver jag skriva ngt som "in" eller så?
Allinrep
@pejg12
Sep 06 2017 08:36
så länge bokstaven är e, eller i, eller o, eller u, eller y, eller INTE a, gör:
in kanske fungerar ja
aha, nu förstår jag det verkliga problemet! testade koden i pythoninterpretatorn.
din while är en evighetsloop!
bokstäverna förändras ju aldrig, så så länge bokstaven är likadan som den alltid har varit kommer while-loopen stanna vid den första bokstaven och kolla om den bokstaven fortfarande är vad den alltid har varit
if är nog bättre, du vill bara kolla varje bokstav en gång :)
limy17
@limy17
Sep 06 2017 08:39
Var hittar jag den?
Allinrep
@pejg12
Sep 06 2017 08:39
ja, om det enda jag ändrar i din kod är att byta ut while till if så får du bättre resultat
limy17
@limy17
Sep 06 2017 08:39
nice
Allinrep
@pejg12
Sep 06 2017 08:39
pythoninterpretatorn startar man genom att köra python3 utan något filnamn i terminalen
limy17
@limy17
Sep 06 2017 08:40
ok, done
rickardkron
@rickardkron
Sep 06 2017 08:41
@pejg12 Som svar på din fråga ovan, har version 2.0.7
Allinrep
@pejg12
Sep 06 2017 08:42
@rickardkron aha, version 2.0.9 har en buggfix som troligtvis hjälper dig. dbwebb selfupdate och sen dbwebb recreate lab2
rickardkron
@rickardkron
Sep 06 2017 08:42
ah okej, tack så mycket!!
Allinrep
@pejg12
Sep 06 2017 08:43
@limy17 hur ser det ut i terminalen när du kör med if istället?
limy17
@limy17
Sep 06 2017 08:43
Hur kör jag filen?
Allinrep
@pejg12
Sep 06 2017 08:44
på samma sätt som du gjorde när du fick ett "r" förut
exit() för att lämna interpretatorn
limy17
@limy17
Sep 06 2017 08:45
Den skriver ut hela ordet resort
Allinrep
@pejg12
Sep 06 2017 08:46
bra, då kan du fila på koden för att få bort vokalerna bara :)
limy17
@limy17
Sep 06 2017 08:46
Men bokstäverna hamnar inte efter varandra, utan under
Allinrep
@pejg12
Sep 06 2017 08:46
ja, det är för att print lägger till radbrytningar, du kan ta bort print nu om du vill
limy17
@limy17
Sep 06 2017 08:47
Det blir så ändå
Nä, nu gick det att få en rad!
Allinrep
@pejg12
Sep 06 2017 08:48
vilket kmom jobbar du med?
limy17
@limy17
Sep 06 2017 08:48
Ok, kan jag få ett tips ang vokalerna? :)
Allinrep
@pejg12
Sep 06 2017 08:50
varje or avgränsar helt skilda uttryck
letter != "a" or "e" blir därför letter != "a" och "e"
letter != "a" or letter != "e" är mer vad du hade i åtanke
limy17
@limy17
Sep 06 2017 08:52
ok, tack
rickardkron
@rickardkron
Sep 06 2017 08:54
Kan man med säkerhet ta bort alla filer i mappen lab2 och sen köra create igen?
Allinrep
@pejg12
Sep 06 2017 08:55
ja
rickardkron
@rickardkron
Sep 06 2017 08:55
Okej tack!
limy17
@limy17
Sep 06 2017 08:56
Finns det inget liknande exempel i kursmaterialet?
Celeste Hoffman
@CelesteGanga
Sep 06 2017 08:56

Hej, Har problem med övning 3.1, lab2 Kmom02. Får >>> 3.1 FAIL.

You said:
"40," <class 'str'>
Hint:
7,10,13,16,19,22,25,28,31,34,37, <class 'str'>

Allinrep
@pejg12
Sep 06 2017 08:57
@CeGa17 print() fyller ingen funktion, den meddelar bara människan vad som pågår.
rickardkron
@rickardkron
Sep 06 2017 08:57
Oj, ja det var helt annorlunda uppgifter i lab2 beroende på vilken dbwebb-version jag körde
Allinrep
@pejg12
Sep 06 2017 08:59
@CeGa17 res = str(number) + "," sparar det nuvarande numret i variabeln res, men det föregående numret försvinner. du måste lägga till föregående resultat också.
limy17
@limy17
Sep 06 2017 09:00
Haha, jag bara drog till med: if b in "qwrtpsfgjklxvbc":
och löste det :)
Alla konsonanter är med, hoppas jag
Tack för hjälpen!
Celeste Hoffman
@CelesteGanga
Sep 06 2017 09:42
tack för hjälpen @pejg12 .. efter lite funderade fick jag ihop lösningen...
Viktor Barrios
@vict0rbarrios_twitter
Sep 06 2017 09:59
hej Jag vet inte om jag förstått frågan rätt på
Din egen chattbot - Marvin - steg 2 (kmom03)
På punkt
4.Skapa en ny fil marvin.py och lägg alla menyvalsfunktioner i denna nya Pythonmodul. Importera marvin.py i main.py.
såhär har jag gjort i main filen
Är tanken att jag ska ha all kod i marvin.py och sen importera funktionen eller ska jag ha kvar menyvalen i main.py
?
lewenhagen
@lewenhagen
Sep 06 2017 10:10
@vict0rbarrios_twitter Du ska ha alla funktioner i marvin.py. Från din main.py ska du nå dem via tex: "marvin.calculate_age()" från menyn.
Viktor Barrios
@vict0rbarrios_twitter
Sep 06 2017 10:10
aha okej
tsck
nu ser min main.py ut såhär
Luoniev
@Luoniev
Sep 06 2017 10:18
Glöm inte att du ska ha menyn i din main också!
Viktor Barrios
@vict0rbarrios_twitter
Sep 06 2017 10:20
okej, för det var det jag undrade om
Luoniev
@Luoniev
Sep 06 2017 10:22
Jag gjorde ett exempel i din codeshare
Viktor Barrios
@vict0rbarrios_twitter
Sep 06 2017 10:23
okej det är så dom menar... man delar upp varje menyval i en egen funktion?
Luoniev
@Luoniev
Sep 06 2017 10:24
Som du senare hämtar från marvin, exakt
Viktor Barrios
@vict0rbarrios_twitter
Sep 06 2017 10:24
tack då förstår jag
limy17
@limy17
Sep 06 2017 11:10
Hej igen!
Behöver lite hjälp med 3.2 i kmom02 (Python):
Terminalen svarar inte, igen
Niklas Andersson
@AuroraBTH
Sep 06 2017 11:12
i är 22+5 hela tiden. Du kan gå ur loopen genom att Ctrl+C(CMD+C)
Om du testar att tilldela i värdet av i plus det innanför
limy17
@limy17
Sep 06 2017 11:12
Skriver jag in print(i) skriver terminalen bara nummer 27 massa gånger
Niklas Andersson
@AuroraBTH
Sep 06 2017 11:13
Du sparar inte över "i" med föregående "i" värde
limy17
@limy17
Sep 06 2017 11:13
Så här? while i < 55:
i = i + 22 + 5
s = s + i
Niklas Andersson
@AuroraBTH
Sep 06 2017 11:14
Du kan inleda i med 22 så slipper du ha den i loop:en
Glöm det
limy17
@limy17
Sep 06 2017 11:15

Nu skrev terminalen: >>> You said:
162 <class 'int'>

Hint:
297 <class 'int'>

Niklas Andersson
@AuroraBTH
Sep 06 2017 11:16
Till att börja med kan vi försöka fixa så loop:en körs 55 gånger, så fixar vi värdet efteråt
limy17
@limy17
Sep 06 2017 11:16
Ok
Startar jag den på i = 0, så blir det väl + ett varv då?
Niklas Andersson
@AuroraBTH
Sep 06 2017 11:19
Uppdaterade din Codeshare
limy17
@limy17
Sep 06 2017 11:19
KAn jag skriva i = i++ ?
Niklas Andersson
@AuroraBTH
Sep 06 2017 11:21
Nej, i++ finns tyvärr inte i Python (Motivering till varför här om du vill veta mer)
Niklas Andersson
@AuroraBTH
Sep 06 2017 11:29
Om det var något du inte förstod i lösningen så är det bara säga till så förklarar jag gärna
Luoniev
@Luoniev
Sep 06 2017 11:30
Om man vill ha i++ kan man skriva det såhär "i += 1" i python
limy17
@limy17
Sep 06 2017 11:40
@AuroraBTH Tack för hjälpen!
@Luoniev Ok, tack för tipset.
erab17
@erab17
Sep 06 2017 12:36
Jag får "Redefining name 'text' from outer scope (line 82) (redefined-outer-name)". På alla moment i kmom03. Fattar inte vad jag gjort för fel.
Luoniev
@Luoniev
Sep 06 2017 12:43
Kan du göra en codeshare på en av en av dina uppgifter så jag kan få se koden?
erab17
@erab17
Sep 06 2017 12:47
det verkar vara för att jag har använt samma variabel namn flera gånger
ska man verkligen behöva använda olika variabel namn i varje funktion?
Anders Nygren
@litemerafrukt
Sep 06 2017 12:52
inuti en funktion kan du använda samma namn som du använt i en annan funktion. Den variabeln "lever"/"finns" bara inuti den funktionen. Det felet du får upp handlar om att du har en variabel som inte ligger i en funktion, en global variabel, med ett namn som du har återanvänt i din funktion. Grejen är att den globala varabeln är tillgänglig i funktionen, den plockas in i funktionen från omgivningen kan man säga.
Så då blir det krock på namnen vilket kan leda till stor förvirring. Därför får du felet.
erab17
@erab17
Sep 06 2017 12:59
@litemerafrukt ok, tack för svar

for i in range(0, number):
print(word)

Här får jag "Unused variable 'i' (unused-variable)"
Hur ska man göra detta på ett bra sätt?

Anders Nygren
@litemerafrukt
Sep 06 2017 13:01
ersätt i med _ (underscore)
erab17
@erab17
Sep 06 2017 13:02
Tack för svar, igen! . Mycket "python" grammatik man ska lära sig tydligen...
limy17
@limy17
Sep 06 2017 14:23
Hej! Jag skulle gärna vilja ha lite feedback på min kod, vet inte riktigt hur jag ska fortsätta. Det är Marvin jag håller på med, kursmoment 2 i Python: https://codeshare.io/5DP06O
Har kommit till meny-valet där ett visst antal siffror inom ett intervall ska skrivas ut, 10 siffror random (slumpmäsigt)
Niklas Andersson
@AuroraBTH
Sep 06 2017 14:31
@limy17 Här är en förklaring på hur du kan generera ett random värde mellan två värden (finns exempel längre ner). Där vill du rimligtvis skicka in dina min/max värden
limy17
@limy17
Sep 06 2017 14:34
tack, kan man importera funktionen random som jag gjort (se codeshare)?
Niklas Andersson
@AuroraBTH
Sep 06 2017 14:35
Yes, då importerar du hela random-biblioteket. randrange() är inkluderad där. För att köra den så skriver du random.randrange()
limy17
@limy17
Sep 06 2017 14:37
Vad tror du om random.randint()
?
Niklas Andersson
@AuroraBTH
Sep 06 2017 14:39
Kan du också använda
limy17
@limy17
Sep 06 2017 14:41
Ok, och nu? Har du lust att ta en titt på min kod?
Mikael Roos
@mosbth
Sep 06 2017 14:45
@limy17 om man är osäker på ett nytt koncept så kan man alltid göra ett enkelt testprogram i en egen fil. Det kan vara enklare att testköra och snabba upp ens utveckling. Dessutom blir det enkelt att testköra för den som vill hjälpa dig, de får all koden i ett stycke. Att göra import random gör du överst i filen, alla imports ligger överst i filen.
Det låter som uppgiften kan lösas med en loop och generera ett slumptal i loopen och skriva ut det?
Niklas Andersson
@AuroraBTH
Sep 06 2017 14:51
Jag tror det löste sig
limy17
@limy17
Sep 06 2017 14:51
Fick hjälp av Niklas, nu fick jag det att funka. Hade för mig att funktioner behövde läggas högst upp, men det verkar funka ändå, att lägga den efter: elif choice == "6":
Mikael Roos
@mosbth
Sep 06 2017 14:52
bara dubbelkolla att valideringen köper det också
limy17
@limy17
Sep 06 2017 14:52
Bra tips! :)
Flyttar nog upp den direkt istället tror jag...
@mosbth Är det så här det är tänkt att man ska lösa Marvin.py? (Obs! Är inte klar med sista meny-valet än) https://codeshare.io/5DP06O
Mikael Roos
@mosbth
Sep 06 2017 14:58
Jag har ett standardsvar på den typen av frågor som är i stil med "Dubbelkolla att du löser kravet som det står i specen, känner du att du har löst kravet så är det just nu av mindre betydelse exakt hur du skriver koden". Men din kod ser inte helt fel ut.
Dock skall nog importen vara under första kommentaren.
limy17
@limy17
Sep 06 2017 14:59
ok, tack
limy17
@limy17
Sep 06 2017 15:12
Jag skulle behöva lite hjälp med det sista meny-valet i Marvin (kmom02). Ngn tillgänglig?
Viktor Barrios
@vict0rbarrios_twitter
Sep 06 2017 15:41
yes
limy17
@limy17
Sep 06 2017 15:42
Ska lägga upp koden i codeshare bara...
Viktor Barrios
@vict0rbarrios_twitter
Sep 06 2017 15:42
ok
Cizzz
@Cizzz
Sep 06 2017 19:21
sitter med uppgift 4.2 i answer.py i kmom02. Kommer inte på något bra sätt att spara unika "värden" på kombinationer. känns som att jag krånglar till det. ska man testa om 001, 002 etc. är "okej" eller räkna ut variabel_3 givet variabel_1 och variabel_2 ? vad är enklast?