26 svar
154 visningar
destiny99 behöver inte mer hjälp
destiny99 Online 8098
Postad: 28 okt 2022 21:48 Redigerad: 28 okt 2022 21:49

error vid print matrix,end

Sen har jag även märkt att välkommen till chomp spelet ej printas ut ,tips på hur jag får ut den?

Fermatrix 7841 – Fd. Medlem
Postad: 28 okt 2022 21:52 Redigerad: 28 okt 2022 21:54

Du har skrivit print ="Välkommen till Chom-Spelet!" men du menar nog:

print("...")


Du skapar en variabel som heter print och tilldelar den en sträng "Välkommen till Chom-Spelet".

Roligt nog så behöver du printa print för att det ska synas. Men konstigt att python låter dig nämna en variabel till print. Visserligen är ena en variabel och den andra en funktion men i andra språk så är inte ens detta tillåtet.

destiny99 Online 8098
Postad: 28 okt 2022 21:57 Redigerad: 28 okt 2022 21:58
Dracaena skrev:

Du har skrivit print ="Välkommen till Chom-Spelet!" men du menar nog:

print("...")


Du skapar en variabel som heter print och tilldelar den en sträng "Välkommen till Chom-Spelet".

Roligt nog så behöver du printa print för att det ska synas. Men konstigt att python låter dig nämna en variabel till print. Visserligen är ena en variabel och den andra en funktion men i andra språk så är inte ens detta tillåtet.

Nu blev det såhär istället.  Det ska nog bli rätt nu med print välkommen. Sen har jag gjort ändringar ,men det blir error vid print matrix end

Laguna Online 30720
Postad: 28 okt 2022 21:59

Du använder kanske Python 2. Det där med end kom i Python 3.

Laguna Online 30720
Postad: 28 okt 2022 22:02
Dracaena skrev:

Du har skrivit print ="Välkommen till Chom-Spelet!" men du menar nog:

print("...")


Du skapar en variabel som heter print och tilldelar den en sträng "Välkommen till Chom-Spelet".

Roligt nog så behöver du printa print för att det ska synas. Men konstigt att python låter dig nämna en variabel till print. Visserligen är ena en variabel och den andra en funktion men i andra språk så är inte ens detta tillåtet.

Så konstigt är det inte. Frågar du efter värdet på print innan man har haft sönder den så får du en funktion. Inte källkoden, men ett objekt som representerar funktionen. Funktionspekare, om man så vill.

Scheme fungerar också så, men inte så många språk, det är sant.

destiny99 Online 8098
Postad: 28 okt 2022 22:05 Redigerad: 28 okt 2022 22:08
Laguna skrev:

Du använder kanske Python 2. Det där med end kom i Python 3.

Kanske det ,men nu har jag ändrat till print(matrix) istället och då kom dessa konstiga siffror. Tanken är att det ska komma ut såna här siffror

Laguna Online 30720
Postad: 28 okt 2022 22:13

for i in r 

gör inte riktigt vad du tror. r är strängen "6", så i kommer att få varje tecken i den strängen som värde i tur och ordning. Det finns bara ett tecken där, nämligen '6', så loopen körs en gång med värdet '6' på i.

(Jag skiljer på strängar och tecken här, men i Python är det samma sak. '6' är samma sak som "6".)

destiny99 Online 8098
Postad: 28 okt 2022 22:16 Redigerad: 28 okt 2022 22:18
Laguna skrev:

for i in r 

gör inte riktigt vad du tror. r är strängen "6", så i kommer att få varje tecken i den strängen som värde i tur och ordning. Det finns bara ett tecken där, nämligen '6', så loopen körs en gång med värdet '6' på i.

(Jag skiljer på strängar och tecken här, men i Python är det samma sak. '6' är samma sak som "6".)

Jaha okej. Har ni tips på vad jag kan göra för att få som bilden med siffrorna som det ser ut ? Känns som att jag borde specificera siffror på r och c 

Fermatrix 7841 – Fd. Medlem
Postad: 28 okt 2022 22:20 Redigerad: 28 okt 2022 22:20

Du kan casta inputen till en int så kan du loop över range(0, r) osv.

destiny99 Online 8098
Postad: 28 okt 2022 22:21 Redigerad: 28 okt 2022 22:22
Dracaena skrev:

Du kan casta inputen till en int så kan du loop över range(0, r) osv.

Antar att du menar så?

Fermatrix 7841 – Fd. Medlem
Postad: 28 okt 2022 22:23

Ja, precis.

destiny99 Online 8098
Postad: 28 okt 2022 22:31 Redigerad: 28 okt 2022 22:34
Dracaena skrev:

Ja, precis.

Jag fick en idé  genom range,alla nummer kom med men de sitter ej i kolumner och rader som det ska vara. Det kanske har att göra med att print ej ska vara inne i for loopen utan utanför?

Fermatrix 7841 – Fd. Medlem
Postad: 28 okt 2022 22:42

Du nollställer a{] efter varje iteration och appendar en lista av det nyaste elementet. 

här är två iterationer

a = [12]

appenda till matrix, matrix = [[12]]

iteration 2:

a = [] - här tömmer du a igen.

a = [13]

appenda till matrix, matrix = [[12],[13]]

osv.

destiny99 Online 8098
Postad: 28 okt 2022 22:50
Dracaena skrev:

Du nollställer a{] efter varje iteration och appendar en lista av det nyaste elementet. 

här är två iterationer

a = [12]

appenda till matrix, matrix = [[12]]

iteration 2:

a = [] - här tömmer du a igen.

a = [13]

appenda till matrix, matrix = [[12],[13]]

osv.

Jag tänker istället för att göra 12 ,13 osv. Kan man ej bara skriva a[12,17]? Och samma sak för b

Fermatrix 7841 – Fd. Medlem
Postad: 28 okt 2022 22:52 Redigerad: 28 okt 2022 22:52

Vad menar du att a[12,17] ska betyda eller göra?

destiny99 Online 8098
Postad: 28 okt 2022 22:53
Dracaena skrev:

Vad menar du att a[12,17] ska betyda eller göra?

Att den ska få fram alla rader som är siffror från bilden 

Fermatrix 7841 – Fd. Medlem
Postad: 28 okt 2022 22:55

Jag är inte helt med.

Menar du att du plockar ut 12-17 på något sätt genom att skriva exempelvis a[12, 17]?

destiny99 Online 8098
Postad: 28 okt 2022 22:55 Redigerad: 28 okt 2022 22:56
destiny99 skrev:
Laguna skrev:

Du använder kanske Python 2. Det där med end kom i Python 3.

Kanske det ,men nu har jag ändrat till print(matrix) istället och då kom dessa konstiga siffror. Tanken är att det ska komma ut såna här siffror

Tänker att det ska se ut såhär som den bilden , 12-17 ,21 osv

destiny99 Online 8098
Postad: 28 okt 2022 23:06
Dracaena skrev:

Du nollställer a{] efter varje iteration och appendar en lista av det nyaste elementet. 

här är två iterationer

a = [12]

appenda till matrix, matrix = [[12]]

iteration 2:

a = [] - här tömmer du a igen.

a = [13]

appenda till matrix, matrix = [[12],[13]]

osv.

Den verkar störa sig på [[12]]

Laguna Online 30720
Postad: 29 okt 2022 10:16

En funktion ska ha sina argument inuti parenteser.

destiny99 Online 8098
Postad: 29 okt 2022 11:13 Redigerad: 29 okt 2022 11:13
Laguna skrev:

En funktion ska ha sina argument inuti parenteser.

nu kommer denna ut istället 

Fermatrix 7841 – Fd. Medlem
Postad: 29 okt 2022 11:59 Redigerad: 29 okt 2022 12:03

Problemet du introducerat nu är lite jobbigt att förklara för en nybörjare men jag ger det ett försök men en aning förenkling.

Du har skapa en lista säg A, när du multiplicerar den med rows, gör du rows st kopior av exakt samma lista där alla element refererar till exakt samma minnesadress.

ex:

om vi låter rows och columns vara 2 så vi kan förenkla det lite:

Första gången skapar du följande lista:

[a0,a1][a_0, a_1], utan att gå igenom hur det egentligen fungerar (om du inte jobbat i C eller dylikt så kommer det nog bara vara förvirrande) kan du se a0a_0 och a1a_1 addressen till respektive element i dens index.

När du multiplicerar nu med rows, så skapar du fäöjande lista:

[[a0,a1],[a0,a1]][[a_0, a_1],[a_0, a_1]] dvs, de refererar till exakt samma "värde" i minnet. Så när du ändrar a0a_0 kommer du ändra a0a_0 i alla listor, eftersom det är exakt samma ställe i minnet. Detta vill vi inte ha, då det inte blir mökligt att skapa listan du ser i uppgiften.

Din föregående idé går att fixa. Istället för att appenda efter varje element kan du appenda när loopen är klar. Om du kikar på hur mycket det ändras horisontellt så ser du att det ändras med 1. skillnaden i vertikala ledet är 10.

Om vi har ett värdet: val=11 (jag räknar med att p=11 nu för att göra det enklare för dig) så kan vi loopar från 11 - 17, vilket är en range (0,6), dvs rows. Vidare efter varje iteration kan vi öka val med 10. Då får vi 21,22,23... sedan 31,32,33..... och vi gör detta columns gånger.

Kommer du vidare?

destiny99 Online 8098
Postad: 29 okt 2022 12:46 Redigerad: 29 okt 2022 12:46
Dracaena skrev:

Problemet du introducerat nu är lite jobbigt att förklara för en nybörjare men jag ger det ett försök men en aning förenkling.

Du har skapa en lista säg A, när du multiplicerar den med rows, gör du rows st kopior av exakt samma lista där alla element refererar till exakt samma minnesadress.

ex:

om vi låter rows och columns vara 2 så vi kan förenkla det lite:

Första gången skapar du följande lista:

[a0,a1][a_0, a_1], utan att gå igenom hur det egentligen fungerar (om du inte jobbat i C eller dylikt så kommer det nog bara vara förvirrande) kan du se a0a_0 och a1a_1 addressen till respektive element i dens index.

När du multiplicerar nu med rows, så skapar du fäöjande lista:

[[a0,a1],[a0,a1]][[a_0, a_1],[a_0, a_1]] dvs, de refererar till exakt samma "värde" i minnet. Så när du ändrar a0a_0 kommer du ändra a0a_0 i alla listor, eftersom det är exakt samma ställe i minnet. Detta vill vi inte ha, då det inte blir mökligt att skapa listan du ser i uppgiften.

Din föregående idé går att fixa. Istället för att appenda efter varje element kan du appenda när loopen är klar. Om du kikar på hur mycket det ändras horisontellt så ser du att det ändras med 1. skillnaden i vertikala ledet är 10.

Om vi har ett värdet: val=11 (jag räknar med att p=11 nu för att göra det enklare för dig) så kan vi loopar från 11 - 17, vilket är en range (0,6), dvs rows. Vidare efter varje iteration kan vi öka val med 10. Då får vi 21,22,23... sedan 31,32,33..... och vi gör detta columns gånger.

Kommer du vidare?

Såhär blev det nu när jag ändrade.Den spottar ut alla värden enligt uppifrån i form av matriser 

Fermatrix 7841 – Fd. Medlem
Postad: 29 okt 2022 12:53

Jag menade något mer i denna stilen:

game_view = []
a = 12
item = [a+j-1 for j in range(7)]
game_view.append(item)
print(game_view)

Vilket åstadkommer det du försökte göra tidigare.

Kommer du vidare nu? :)

destiny99 Online 8098
Postad: 29 okt 2022 13:13 Redigerad: 29 okt 2022 13:17
Dracaena skrev:

Jag menade något mer i denna stilen:

game_view = []
a = 12
item = [a+j-1 for j in range(7)]
game_view.append(item)
print(game_view)

Vilket åstadkommer det du försökte göra tidigare.

Kommer du vidare nu? :)

Jag gjorde på det sättet istället. 

Fermatrix 7841 – Fd. Medlem
Postad: 29 okt 2022 13:27 Redigerad: 29 okt 2022 13:28

Det beror ju helt på hur du vill ha det. Man kan lösa det på många sätt. Det du har nu verkar dock väldigt krångligt. Istället kan du göra en lista av dimension ett, och använda den.

Välj en metod och försök lösa uppgiften. Det går alltid att optimera koden i efterhand. Viktigaste är att du inte slösar för mycket tid för att göra denna biten på ett perfekt sätt och sedan har du ingen tid över för det andra. :)

destiny99 Online 8098
Postad: 29 okt 2022 13:32
Dracaena skrev:

Det beror ju helt på hur du vill ha det. Man kan lösa det på många sätt. Det du har nu verkar dock väldigt krångligt. Istället kan du göra en lista av dimension ett, och använda den.

Välj en metod och försök lösa uppgiften. Det går alltid att optimera koden i efterhand. Viktigaste är att du inte slösar för mycket tid för att göra denna biten på ett perfekt sätt och sedan har du ingen tid över för det andra. :)

Okej men jag kör på min metod då jag är ändå färdig. Tack för hjälpen:)

Svara
Close