9 svar
85 visningar
lund 264
Postad: 11 nov 2020 Redigerad: 11 nov 2020

poly_to_string

Hej,

Jag ska i Python programmera om så att en lista endast innehållande nollor som element skrivs ut som endast noll med användandet av poly_to_string. Det vill säga exempelvis att [0,0,0] skrivs ut som "0". Har ni tips på hur jag kan gå tillväga då?

Jag har redan omvandlat så att termer med koefficient 1 skrivs utan koefficient enligt följande kod: 

if coeff == 1: # För att ta bort ettan
coeff = ''

Och omvandlat så att den tomma listan skrivs ut som "0" enligt följande kod:

if p_list == []:
terms.append("0")

Laguna Online 11626
Postad: 11 nov 2020

Det verkar handla om representation av polynom.

Hur vill du skriva ut [2, 0, 3]?

Jag menar, det är förmodligen inte bara listor med enbart nollor som behöver hanteras. 

Men för att kolla om en lista innehåller enbart nollor kan du skriva en liten funktion som går igenom listan och returnerar False när den träffar på ett element som inte är noll. Har den gått igenom hela listan returnerar den True. 

lund 264
Postad: 11 nov 2020 Redigerad: 11 nov 2020

Hej Laguna,

[2,0,3] ska skrivas ut som 2+3x2 och så långt har jag lyckats. Det är bara den sista biten där en lista med nollor ska skrivas som "0" som jag inte får till.

lund 264
Postad: 11 nov 2020

Tänkte att det kanske är enklare att hjälpa mig på traven om jag bifogar min kodning hittills:

Laguna Online 11626
Postad: 12 nov 2020

Om alla koefficienter är noll så är 'terms' fortfarande [] när du är klar, så du kan testa på det.

När du slår ihop termerna med "+", hur blir det då om en koefficient är negativ?

lund 264
Postad: 13 nov 2020 Redigerad: 13 nov 2020
Laguna skrev:

Om alla koefficienter är noll så är 'terms' fortfarande [] när du är klar, så du kan testa på det.

När du slår ihop termerna med "+", hur blir det då om en koefficient är negativ?

Ber om ursäkt, men förstår inte riktigt vad du menar? Kan tillägga att jag är väldigt ny på Python.

Laguna Online 11626
Postad: 13 nov 2020

Hur skriver du ut [2, -1]?

lund 264
Postad: 13 nov 2020 Redigerad: 13 nov 2020

Tack, [2,-1] skriver jag ut som 2-x.

Det finns flera sätt att kontrollera om listan är tom eller om alla värden i listan är noll, här är ett exempel:

if not p_list or p_list[0] == 0 and p_list.count(p_list[0]) == len(p_list):
    terms.append("0")
Laguna Online 11626
Postad: 13 nov 2020
lund skrev:

Tack, [2,-1] skriver jag ut som 2-x.

Blir det så? Du sätter + mellan alla termer, ser det ut som. 

Svara Avbryt
Close