These are chat archives for dbwebb-se/python

5th
Oct 2016
naal16
@naal16
Oct 05 2016 10:23
Behöver lite hjälp med marvin3. Min meny och allt fungerade utmärkt, men måste ha gjort någon ändring för nu helt plötsligt fungerar inte menyn, snyft :( Och kan inte förstå vad. När jag kör programmet får jag mitt felmeddelande (else-alternativet) oavsett vilket menyval jag väljer. Detta är min kod i main.py: https://codeshare.io/N0IC2 Får detta som hint "File "main.py", line 74, in main
input("\nPress enter to continue...")
File "<string>", line 0
SyntaxError: unexpected EOF while parsing" Det verkar vara något tokigt med
if name == "main":
main()
emilyfranceskolar
@emilyfranceskolar
Oct 05 2016 11:06

tja gott folk! sitter med lab4 i kmom05, nästan klar men har en liten fråga
"""
Exercise 1.9
Convert the phonenumber to a string and add the prefix '+1-', representing
the language code, to each phone-number.
Answer with the resulting dictionary.
Write your code below and put the answer into the variable ANSWER.
"""
print(persons)
persons2 = {"Chandler": "+1-55523645", "Monica": "+1-55564452", "Ross": "+1-55545872"}

persons.update(persons2)
print(persons)
är det fusk att lösa problemet på detta sättet, med update?

svaret blir korrekt men känns ändå som fusk på ngt sätt... hur har ni löst det?
AndreasArne
@AndreasArne
Oct 05 2016 11:24
@naal16 Den tycker att du avslutar filen på fel sätt, den förväntar sig något annat än att filen tar slut. jag testade kopiera koden men lyckas inte återskapa det
kan du göra publish på det så kan jag testa ladda ner det och se om jag får samma fel
Emil Folino
@emilfolino
Oct 05 2016 11:24
@emilyfranceskolar En möjlig lösning är att loopa genom dicten
for name in persons:
och sen göra om telefon numret till en sträng och lägga till "+1"
naal16
@naal16
Oct 05 2016 11:28
Tack @AndreasArne , hoppas du kan komma åt den nu.. http://www.student.bth.se/~naal16/dbwebb-kurser/python/me/kmom04/marvin3
emilyfranceskolar
@emilyfranceskolar
Oct 05 2016 11:29

@emilfolino typ lite så här:
for name in persons :
into_string2 = "".join("+1{}".format(number))
print(into_string2)
number = into_string2

fast får fel, att number inte är definierat så lite lost..

Emil Folino
@emilfolino
Oct 05 2016 11:30
@emilyfranceskolar använd name som index i persons, ex persons[name] då får du ut number
emilyfranceskolar
@emilyfranceskolar
Oct 05 2016 11:30
ja just det, tack! @emilfolino
AndreasArne
@AndreasArne
Oct 05 2016 11:31
@naal16 får du felet direkt när du startar filen eller gör du något val också?
emilyfranceskolar
@emilyfranceskolar
Oct 05 2016 11:34

nu loopar jag, gör om det till en sträng men sätter i det med
persons[name] = into_strings
kode blir då:
for name in persons :
into_string2 = "".join("+1{}".format(persons[name]))
print(into_string2)
persons[name] = into_string2

va det lite mer så ni hade tänkt att vi skulle lösa det? att loopa helt enkelt @emilfolino

Emil Folino
@emilfolino
Oct 05 2016 11:36
ja, det andra sättet kräver ju att du fyller i alla telefonnummer, är inte så jobbigt i denna uppgiften med bara 3 nummer, men hade det varit en hel telefonbok hade man nog tröttnat snabbt ;) @emilyfranceskolar
naal16
@naal16
Oct 05 2016 11:36
@AndreasArne , det är först när jag gör ett val. Menyn kommer upp som den ska, den enda skillnaden nu som inte var förrut är att det står None efter menyn
emilyfranceskolar
@emilyfranceskolar
Oct 05 2016 11:37
ja jag förstår, kändes som sagt lite fel ;) @emilfolino
AndreasArne
@AndreasArne
Oct 05 2016 11:37
@naal16 jag lyckas göra menyval utan problem, men det står None för mig också
naal16
@naal16
Oct 05 2016 11:39
Så du får alltså fram de olika menyvalen? För mig blir det felmeddelande när jag väljer någon av alt 1-13, @AndreasArne
AndreasArne
@AndreasArne
Oct 05 2016 11:40
@naal16 ja det funkar för mig
naal16
@naal16
Oct 05 2016 11:40
konstigt, varför funkar det inte för mig då?
AndreasArne
@AndreasArne
Oct 05 2016 11:41
jadu, det kan man undra. Kör du det med python eller python3?
naal16
@naal16
Oct 05 2016 11:41
ah, that's it :)
nu funka det!
AndreasArne
@AndreasArne
Oct 05 2016 11:42
:D härligt
naal16
@naal16
Oct 05 2016 11:43
har en fråga om uppgiften i marvin 3, där vi ska anv json. Är det meningen att man ska skapa ett eget menyalternativ som jag gjort för citat, och först i det menyvalet be användaren be marvin om ett citat?
AndreasArne
@AndreasArne
Oct 05 2016 11:44
citat ska inte vara ett synligt menyval(inte kopplat till en siffra) utan om någon skriver "citat"
det ska även gå att skriva något som innehåller ordet citat t.ex. "jag vill ha ett citat"
så ska marvin se det och ge ett citat
naal16
@naal16
Oct 05 2016 11:51
tycker uppgiften är svår, hittar ingen litteratur heller som går igenom hur jag ska göra mer än länken till det här exemplet: https://github.com/mosbth/irc2phpbb/blob/v0.3.1/old/irc2phpbb.py#L358 och den förstår jag inte riktigt. Trodde man skulle göra en funktion som i de övriga menyvalen. Ska jag alltså anv mig av feedparser? Finns det några källor att läsa in sig på som förklarar?
Emil Folino
@emilfolino
Oct 05 2016 12:01
@naal16 du ska analysera innehållet i choice variablen som du får från användaren. istället för att jämföra med == "13" kan du använda funktioner som in och startswith för att kolla om citat finns i texten eller om choice börjar med inv.
naal16
@naal16
Oct 05 2016 12:21
tack @emilfolino nu förstår jag lite bättre !
emilyfranceskolar
@emilyfranceskolar
Oct 05 2016 12:51
"""
Exercise 1.8
Use a for-loop to walk through the dictionary and create a string
representing it. Each name and number should be on its own row, separated
by a space. The names must come in alphabetical order.
Answer with the resulting string.
Write your code below and put the answer into the variable ANSWER.
"""
tänkte göra om denna uppgift så jag har lite bättre koll på läget men behöver lite hjälp, eftersom alla namn ska vara i alfabetisk ordning så tänker att det kan var bra att göra om persons som är en dictionary just nu till en sorted(list) men finns det ngt smidigt sätt att sedan spara allt tillbaka i en dictionary?
Emil Folino
@emilfolino
Oct 05 2016 12:53
@emilyfranceskolar problemet är att när du gör tillbaka det från en sorterat lista finns ingen garanti att dicten är sorterad, då dictar per definition är o-sorterad
emilyfranceskolar
@emilyfranceskolar
Oct 05 2016 12:53
ja just det fan.. uhm
Emil Folino
@emilfolino
Oct 05 2016 12:55
@emilyfranceskolar jag kan se att jag själv använder for name in sorted(phonebook):
Och det verkar fungera, att den returnerar en sorterat dict på nycklarna
emilyfranceskolar
@emilyfranceskolar
Oct 05 2016 12:58
kan du förklara lite mer? vet inte riktigt om jag förstår hur jag ska få till det.. förstår idén men känner mig ändå osäker hur det funkar typ.
Emil Folino
@emilfolino
Oct 05 2016 12:59
sorted funktionen returnerar en ny dict, sort funktionen gör själva sorteringen på den ursprungliga dicten. Så sorted tar den ursprungliga phonebook-dicten, sorterar den på namnen (som är nycklar) och returnerar en kopia som används i for-loopen
När jag kollar i min kod och testar att skriva ut ser jag nu att sorted returnerar en sorterad list av nycklerna, och dessa nycklar kan man sedan använda för att hämta ut telefonnumrena...
emilyfranceskolar
@emilyfranceskolar
Oct 05 2016 13:03

testar lite nu med detta, verkar sortera persons så det är bra men utskriften av to_string blir enbart sista nämnd dvs Ross 55545872..
for name in sorted(list(persons)):
to_string = "".join("{} {}").format(name, persons[name])

#to_string = "".join("{} {}".format(name, new_persons[name]))
print(to_string)

print(to_string)

va gör jag fel?
Emil Folino
@emilfolino
Oct 05 2016 13:04
du behöver inte göra om persons till en list innan du sorterar
emilyfranceskolar
@emilyfranceskolar
Oct 05 2016 13:05
trodde att det va det du menade.. fan känner mig lite korkad men hänger verkligen inte med här! känns som vanlig som jag gör det mer komplicerat hehe
Emil Folino
@emilfolino
Oct 05 2016 13:06
om du bara kör sorted(persons) och sen persons[name] ska det lira ;) så nästan där
emilyfranceskolar
@emilyfranceskolar
Oct 05 2016 13:09
aha så man kan köra sorted direkt på en dictionary? får nog läsa dina kommentarer ovanför igen.. men var menar du och sen persons[name]?
Emil Folino
@emilfolino
Oct 05 2016 13:10
där du kör new_persons[name]
emilyfranceskolar
@emilyfranceskolar
Oct 05 2016 13:11
aha ja men det har jag nu, haha. men är jag skriver ut print(to_string) utanför for loopen så är det enbart sista namnet. Jag vill ju loopa och lägga till alla namn i en sträng men det blir inte så.


for name in sorted(persons):
to_string = "".join("{} {}").format(name, persons[name])
print(to_string) -> skriver ut det jag vill ha

print(to_string) -> enbart Ross är med
vad har jag glömt/missar?

Emil Folino
@emilfolino
Oct 05 2016 13:15
Spara din to_string i en result sträng och lägg till en
i slutet av to_strinh
n skulle det ståt
\ n
emilyfranceskolar
@emilyfranceskolar
Oct 05 2016 13:21
fick till det nu, tack! får repetera, sov lite lite i natt så min seghet beror nog på det. men tack för hjälpen! @emilfolino :clap:
emilyfranceskolar
@emilyfranceskolar
Oct 05 2016 14:41

förhoppningsvis en sista fråga angående lab4.
"""
Exercise 2.4

Create a tuple with

(snake, 89, 9.63, bookshelf, 1)
Convert it to a list and replace the second element with:
"cow"
Convert it back to a tuple and answer with the first three elements in a
comma-separated string.
Write your code below and put the answer into the variable ANSWER.
"""
har gjort en tuple, sedan en lista, byte ut andra elementet och gjort om det igen till en tuple men tänkte kolla om det är tänkt att vi ska ta första 3: elementen i den nya tuplen och gör om det till en sträng typ?

emilyfranceskolar
@emilyfranceskolar
Oct 05 2016 14:56
i så fall har jag nästan löst uppgiften men har nu en sträng
snakecow9.63bookshelf1 och har problem med formatera det på ett snyggt sätt..
eller nu ändrar jag lite här. från 2:a tupeln kör en slice och behöver bara göra om till en sträng men osäker om jag tänker rätt här.
emilyfranceskolar
@emilyfranceskolar
Oct 05 2016 15:12
löst sig men uppskattar alltid input :) krånglar ofta till det när jag kan /:
Allinrep
@pejg12
Oct 05 2016 18:55
jag tycker slice låter som en bra idé. för att konvertera det till en sträng använde jag join, men fick error eftersom det finns en float med i slicen. jag sökte på "python join float to string" och hittade den här lösningen: http://stackoverflow.com/a/6507456/2148504
" , ".join(map(str, theslice))
emilyfranceskolar
@emilyfranceskolar
Oct 05 2016 21:36
haha löste det på exakt samma sätt.