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?
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.
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
Du använder kanske Python 2. Det där med end kom i Python 3.
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.
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
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".)
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
Du kan casta inputen till en int så kan du loop över range(0, r) osv.
Dracaena skrev:Du kan casta inputen till en int så kan du loop över range(0, r) osv.
Antar att du menar så?
Ja, precis.
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?
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.
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
Vad menar du att a[12,17] ska betyda eller göra?
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
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 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
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]]
En funktion ska ha sina argument inuti parenteser.
Laguna skrev:En funktion ska ha sina argument inuti parenteser.
nu kommer denna ut istället
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:
, 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 och addressen till respektive element i dens index.
När du multiplicerar nu med rows, så skapar du fäöjande lista:
dvs, de refererar till exakt samma "värde" i minnet. Så när du ändrar kommer du ändra 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?
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:, 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 och addressen till respektive element i dens index.
När du multiplicerar nu med rows, så skapar du fäöjande lista:
dvs, de refererar till exakt samma "värde" i minnet. Så när du ändrar kommer du ändra 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
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? :)
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.
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. :)
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:)