Permalänk

Program python.

Tjenare! Jag behöver hjälp med ett litet program jag ska skapa, jag är ny inom programmering.. Hur ska jag göra?

Jag ska skapa ett program som begär in två numeriska värden. Exv 25 och 45. Jag ska lägga dem i varsina variabler.

Använd dessa värden för att stega igenom alla tal mellan 25 och 45 och räkna ut deras kvadrater.

ungefär så här:
Tal Kvadrat
25 625
26 676
27 729
28 784
29 841
30 900
31 961
32 1024
33 1089
34 1156
35 1225
36 1296
37 1369
38 1444
39 1521
40 1600
41 1681
42 1764
43 1849
44 1936
45 2025

Efter denna listning skall programmet fråga om du vill köra det igen. ("Vill du köra programmet igen? J/N)

Om J - kör programmet

Om N - avsluta.

Permalänk

Det finns ett Python-track på denna sida: http://www.codecademy.com

Märkligt att du har fått en uppgift utan förutsättningar att lösa den.

Visa signatur

i7-6700K | ASUS Z170 Pro Gaming | MSI GTX 1060 Gaming X 6GB | HyperX Fury 16GB | Sandisk Ultra II 960GB | BeQuiet Pure Rock | Fractal Design R5 | Corsair RM750x | Qpad Mk-50 | Qpad 8K | Dell 2412m

Permalänk
Skrivet av djlasseman:

Det finns ett Python-track på denna sida: http://www.codecademy.com

Märkligt att du har fått en uppgift utan förutsättningar att lösa den.

Jag förstår inte hur det där ska hjälpa mig göra programmet.

Permalänk
Medlem
Skrivet av dLiinkz:

Jag förstår inte hur det där ska hjälpa mig göra programmet.

Du lär dig Python och således kommer du kunna göra ett sådant program du efterfrågar.

Permalänk
Medlem

Fundera lite på vad du behöver använda för att kunna lösa problemet.

"begär in två numeriska värden" antyder att du behöver kunna läsa input till programmet, http://docs.python.org/2/library/functions.html#input kan vara en hjälp till detta.

"Använd dessa värden för att stega igenom alla tal mellan 25 och 45 och räkna ut deras kvadrater." antyder att någon form av iteration kan behövas. http://docs.python.org/2/reference/compound_stmts.html#for kan vara en hjälp till detta.

"Vill du köra programmet igen? J/N" antyder någon form av selektion, vilket du kan läsa om på ovanstående länk.

Hoppas det ger någon hjälp på traven, annars får du återkomma.

Permalänk

Du kan ju visa hur långt du har kommit hitills...

Visa signatur

Anything that can go wrong will go wrong.

Permalänk
Hedersmedlem

Har du inget kursmaterial som lär dig något om villkorssatser (if-satser), loopar och användarinput?

Codecademy är ett utmärkt sätt att lära sig, precis som någon rekommenderade.

På det är forumet hjälper vi dig gärna att lösa dina problem, men inte att lösa hela din uppgift åt dig.

Permalänk
Hedersmedlem
Skrivet av dLiinkz:

Tjenare! Jag behöver hjälp med ett litet program jag ska skapa, jag är ny inom programmering.. Hur ska jag göra?

[…]

För att instämma med ovanstående talare:

Skrivet av Skuttokova:

Du kan ju visa hur långt du har kommit hitills...

Visa helt enkelt vad du öht kan göra än så länge.

  1. Kan du göra ett program som skriver ut "Hej dLiinkz!"?

  2. Vet du hur man ger en variabel ett värde, och hur man sedan kan använda detta?

  3. Kan du skriva ett program som frågar "Vad heter du?", låter dig mata in t ex "dLiinkz" och sedan svarar "Hej, du heter dLiinkz!"?

  4. Vet du hur man multiplicerar två tal i Python?

  5. Kan du skriva ett program som frågar användaren om två tal och därefter skriver ut summan (eller produkten, eller något) av dessa?

  6. Kan du skriva ett program som gör ovanstående, men efter att ha skrivit ut svaret fortsätter fråga tills du väljer att avbryta (stänga ner fönstret)?

  7. Kan du skriva ett program som gör detsamma, men bara frågar just tre gånger innan det avslutar sig själv?

Det är alla exempel på små beståndsdelar av mer eller mindre ökande komplexitet som du behöver förstå innan du skriver ditt kvadratprogram. Om det är något av stegen som du känner att du fastnar på, så säg till. Alla de stegen måste vara fullständigt självklara för dig om du ska kunna börja bygga vidare på större lösningar. Du har troligen fått material som går igenom dessa steg, men återigen: det är bara att fråga om det är något som är oklart.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Skrivet av dLiinkz:

Jag förstår inte hur det där ska hjälpa mig göra programmet.

Codeacademy går igenom grunderna för programmeringsspråket och lär dig på ett i mina ögon pedagogiskt sätt. Det bör inte vara några som helst problem för dig att lösa din uppgift efter att ha gått igenom kursen. Det finns uppgifter i kursen som påminner om den du ska lösa.

Visa signatur

i7-6700K | ASUS Z170 Pro Gaming | MSI GTX 1060 Gaming X 6GB | HyperX Fury 16GB | Sandisk Ultra II 960GB | BeQuiet Pure Rock | Fractal Design R5 | Corsair RM750x | Qpad Mk-50 | Qpad 8K | Dell 2412m

Permalänk
Medlem

Du kommer behöva veta:
- Hur man matar in värden i Python
- Hur man matar ut värden i Python
- Hur du använder IF sats
- Hur du använder en loop
- Hur du deklarerar variabler

Alltså du kommer behöva en while loop som börjar på "numeriskt värde 1" (vi kallar den för ii) och hålla på loopa och addera med +1 varje loop tills den når "numeriskt värde 2" (vi kallar den för nn) om det är så att värdet för ii är mindre än nn.

Så du behöver först i programmet en ifsats som kontrollerar om numeriskt värde 1 är mindre eller lika med 2 och gå vidare, annars visa felmeddelande och börja om. Om det är så att den uppfyller kravet så går programmet vidare till loopen.

Loopens struktur är att den börjar på ett visst värde, i detta fall ii, och sedan har du kontrollpåståendet i loopen (är ii mindre eller lika med nn), sista delen av strukturen är att öka ii med 1 alltså ii = ii+1.

Innanför loopen (det som skall göras) behöver du en funktion (inbyggt i programmet) som skriver ut värdet på variabeln som en sträng. D.v.s du kan behöva casta om variabeln till en sträng. Du kan deklarera en ny variabel "svar" och skriva svar = ii * ii
Som ger dig kvadraten, och du använder print funktionen eller vad det nu är i python som gör så att användaren kan se svaret.

Hela alltet ovanför kan du skriva inne i en annan loop (t.ex. en do-while) vars "do" är allt programmet skall göra, medan "while" delen kollar om användaren vill fortsätta (d.v.s. python skall fråga om en input där om du skrivit J så loopar programmet, om du skriver N så avsultas det, om du skriver in något annat (else) så ska programmet fråga dig igen).

Nu vet jag inte exakt om det är så du vill ha det, du kommer förstås behöva köra programmet om och om igen tills du har fått rätt.
Läs python dokumentationen om ovanstående delar (det jag skrev i början) så skall du nog kunna klara det. Jag har inte skrivit lösningen, men gett tips på hur programmet ska vara utformat, själva skapandet/funktionerna får du hitta själv.

Permalänk
Skrivet av reinholdsson:

Fundera lite på vad du behöver använda för att kunna lösa problemet.

"begär in två numeriska värden" antyder att du behöver kunna läsa input till programmet, http://docs.python.org/2/library/functions.html#input kan vara en hjälp till detta.

"Använd dessa värden för att stega igenom alla tal mellan 25 och 45 och räkna ut deras kvadrater." antyder att någon form av iteration kan behövas. http://docs.python.org/2/reference/compound_stmts.html#for kan vara en hjälp till detta.

"Vill du köra programmet igen? J/N" antyder någon form av selektion, vilket du kan läsa om på ovanstående länk.

Hoppas det ger någon hjälp på traven, annars får du återkomma.

Skrivet av Harddrive:

Du kommer behöva veta:
- Hur man matar in värden i Python
- Hur man matar ut värden i Python
- Hur du använder IF sats
- Hur du använder en loop
- Hur du deklarerar variabler

Alltså du kommer behöva en while loop som börjar på "numeriskt värde 1" (vi kallar den för ii) och hålla på loopa och addera med +1 varje loop tills den når "numeriskt värde 2" (vi kallar den för nn) om det är så att värdet för ii är mindre än nn.

Så du behöver först i programmet en ifsats som kontrollerar om numeriskt värde 1 är mindre eller lika med 2 och gå vidare, annars visa felmeddelande och börja om. Om det är så att den uppfyller kravet så går programmet vidare till loopen.

Loopens struktur är att den börjar på ett visst värde, i detta fall ii, och sedan har du kontrollpåståendet i loopen (är ii mindre eller lika med nn), sista delen av strukturen är att öka ii med 1 alltså ii = ii+1.

Innanför loopen (det som skall göras) behöver du en funktion (inbyggt i programmet) som skriver ut värdet på variabeln som en sträng. D.v.s du kan behöva casta om variabeln till en sträng. Du kan deklarera en ny variabel "svar" och skriva svar = ii * ii
Som ger dig kvadraten, och du använder print funktionen eller vad det nu är i python som gör så att användaren kan se svaret.

Hela alltet ovanför kan du skriva inne i en annan loop (t.ex. en do-while) vars "do" är allt programmet skall göra, medan "while" delen kollar om användaren vill fortsätta (d.v.s. python skall fråga om en input där om du skrivit J så loopar programmet, om du skriver N så avsultas det, om du skriver in något annat (else) så ska programmet fråga dig igen).

Nu vet jag inte exakt om det är så du vill ha det, du kommer förstås behöva köra programmet om och om igen tills du har fått rätt.
Läs python dokumentationen om ovanstående delar (det jag skrev i början) så skall du nog kunna klara det. Jag har inte skrivit lösningen, men gett tips på hur programmet ska vara utformat, själva skapandet/funktionerna får du hitta själv.

Tack för tipsen! Jag testar när jag kommer hem.

Permalänk
Skrivet av phz:

För att instämma med ovanstående talare:

Visa helt enkelt vad du öht kan göra än så länge.

  1. Kan du göra ett program som skriver ut "Hej dLiinkz!"?

  2. Vet du hur man ger en variabel ett värde, och hur man sedan kan använda detta?

  3. Kan du skriva ett program som frågar "Vad heter du?", låter dig mata in t ex "dLiinkz" och sedan svarar "Hej, du heter dLiinkz!"?

  4. Vet du hur man multiplicerar två tal i Python?

  5. Kan du skriva ett program som frågar användaren om två tal och därefter skriver ut summan (eller produkten, eller något) av dessa?

  6. Kan du skriva ett program som gör ovanstående, men efter att ha skrivit ut svaret fortsätter fråga tills du väljer att avbryta (stänga ner fönstret)?

  7. Kan du skriva ett program som gör detsamma, men bara frågar just tre gånger innan det avslutar sig själv?

Det är alla exempel på små beståndsdelar av mer eller mindre ökande komplexitet som du behöver förstå innan du skriver ditt kvadratprogram. Om det är något av stegen som du känner att du fastnar på, så säg till. Alla de stegen måste vara fullständigt självklara för dig om du ska kunna börja bygga vidare på större lösningar. Du har troligen fått material som går igenom dessa steg, men återigen: det är bara att fråga om det är något som är oklart.

Jag kan inte göra något av de programmen du skrev, Men jag tror att några av de finns i läroboken. Det blev svårt eftersom jag varit borta 3 veckor. Så jag missade lektionerna, Därför försöker jag ta igen nu med hjälp av er

Edit: Jag kom fram till detta.

print("Multiplikation")
print("==============\n")
tal1 = int(input("Ange ett heltal: "))
tal2 = int(input("Och ett heltal till: "))
prod = tal1 * tal2
print("Produkten av", tal1, "och", tal2, "blir", prod)

och detta:

namn = input("Vad heter du? ")
print("Hej "+namn+", trevligt att råkas!")
input("\n\nTryck Enter för att avsluta")

Alltså så blev det bara 7an jag inte kunde

Permalänk
Medlem
Skrivet av dLiinkz:

Jag kan inte göra något av de programmen du skrev, Men jag tror att några av de finns i läroboken. Det blev svårt eftersom jag varit borta 3 veckor. Så jag missade lektionerna, Därför försöker jag ta igen nu med hjälp av er

Det absolut enda sättet att ta ikapp är att göra övningarna. Jag har själv försökt lära mig programmering genom att titta på kod, förstå kod, vilket jag kunde göra rätt så bra. Men inte hjälpte det.

När jag sen satt där och skulle knappa själv, då stod det likväl still. Man (tror inte jag är ensam) måste sitta och faktiskt knacka koden för att det ska fungera.
Bara ett tips.

Visa signatur

Speldator :[I] AMD 5600X - 16GB fläskigt ram - AMD 580RX - AOC 32" Wide
HTPC : i5 3450S - 8GB G.Skill - Streacom F8

Permalänk
Medlem
Skrivet av dLiinkz:

Jag kan inte göra något av de programmen du skrev, Men jag tror att några av de finns i läroboken. Det blev svårt eftersom jag varit borta 3 veckor. Så jag missade lektionerna, Därför försöker jag ta igen nu med hjälp av er

http://learnpythonthehardway.org/book/

kolla på den sidan och lägg ner kanske 1 timme på att läsa så tror jag du fixar det..

Visa signatur

Citera gärna om du vill att jag ska hitta tillbax.

Permalänk
Medlem
Skrivet av dLiinkz:

Jag kan inte göra något av de programmen du skrev, Men jag tror att några av de finns i läroboken. Det blev svårt eftersom jag varit borta 3 veckor. Så jag missade lektionerna, Därför försöker jag ta igen nu med hjälp av er

Dags att ta fram läroboken och börja läsa då istället för att hänga här, du kommer inte lära dig mer av att få färdig kod här.
Om du inte ens försöker själv varför ska någon ödsla sin egen tid på att hjälp dig?

Stäng ner browsern och läs läroboken.......

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Hedersmedlem
Skrivet av dLiinkz:

Alltså så blev det bara 7an jag inte kunde

6+7, men ja, då är det loopar du behöver titta på: `while` och `for` konstruktionerna. Det finns säkerligen i det läromaterial du har, eller i introduktioner till Python på nätet.

Tankeväckande modifikation av din namnfråga för att ge en liten introduktion till `while`:

while True: namn = input("Vad heter du? ") print("Hej "+namn+", trevligt att råkas!") print("Usch, jag är så glömsk, jag måste bara få fråga en sak:")

(Notera att du verkar använda Python 3, och att mycket som står på nätet berör Python 2, som fortfarande är mest utbrett. Det bör inte bli några egentliga problem, speciellt inte då du har läromaterial själv, och det är vanligen på sin höjd minimala skillnader, men det kan vara bra att ha i bakhuvudet.)

Fastnar du i lärobokens förklaringar så är det bara att fråga mer, men var medveten om att även om du inte förstår något som står i boken direkt första gången du läser det, så ger det med sig när du faktiskt övar. Det är det bästa/enda sättet att lära sig på, även om det må kännas frustrerande om man inte är van. Ju mer främmande och avancerade koncept du behöver ta in, oavsett område, desto större nytta kommer du ha av erfarenheten att ha lärt dig själv även när saker verkade komplicerade vid en första anblick. Du tränar inte bara på just Python, eller just programmering, utan på att öht ta in kunskap och lära dig nya saker.

En bra riktlinje är: när hjärnan säger att något är jobbigt, då vet du att du utvecklas .

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Skrivet av phz:

6+7, men ja, då är det loopar du behöver titta på: `while` och `for` konstruktionerna. Det finns säkerligen i det läromaterial du har, eller i introduktioner till Python på nätet.

Tankeväckande modifikation av din namnfråga för att ge en liten introduktion till `while`:

while True: namn = input("Vad heter du? ") print("Hej "+namn+", trevligt att råkas!") print("Usch, jag är så glömsk, jag måste bara få fråga en sak:")

(Notera att du verkar använda Python 3, och att mycket som står på nätet berör Python 2, som fortfarande är mest utbrett. Det bör inte bli några egentliga problem, speciellt inte då du har läromaterial själv, och det är vanligen på sin höjd minimala skillnader, men det kan vara bra att ha i bakhuvudet.)

Fastnar du i lärobokens förklaringar så är det bara att fråga mer, men var medveten om att även om du inte förstår något som står i boken direkt första gången du läser det, så ger det med sig när du faktiskt övar. Det är det bästa/enda sättet att lära sig på, även om det må kännas frustrerande om man inte är van. Ju mer främmande och avancerade koncept du behöver ta in, oavsett område, desto större nytta kommer du ha av erfarenheten att ha lärt dig själv även när saker verkade komplicerade vid en första anblick. Du tränar inte bara på just Python, eller just programmering, utan på att öht ta in kunskap och lära dig nya saker.

En bra riktlinje är: när hjärnan säger att något är jobbigt, då vet du att du utvecklas .

Okej tack för hjälpen!

Permalänk

Skrev ihop ett simpelt program för detta.:

1. Först tittar man så att input1 och 2 är siffror samt över 0.

2. Sen används en for-loop där den loopar igenom "rangen" för input1 och input2(+1), skriver ut det aktuella värdet och värdet*värdet varje loop.

3. Sen en enkel fråga om man vill köra igen, där svaret görs om till stor bokstav och tittas. Är det inte ett av värdena så skrivs det ut vad som behövs matas in för nej eller ja.

Låter bli att posta koden eftersom trådskaparen bör själv försöka att lösa det till en början

Visa signatur

Bal-Sagoth | Ensiferum | Windir | Finntroll | Wintersun | Amon Amarth | Moonsorrow | Nazgûl

Permalänk
Skrivet av metalbast:

Skrev ihop ett simpelt program för detta.:

1. Först tittar man så att input1 och 2 är siffror samt över 0.

2. Sen används en for-loop där den loopar igenom "rangen" för input1 och input2(+1), skriver ut det aktuella värdet och värdet*värdet varje loop.

3. Sen en enkel fråga om man vill köra igen, där svaret görs om till stor bokstav och tittas. Är det inte ett av värdena så skrivs det ut vad som behövs matas in för nej eller ja.

Låter bli att posta koden eftersom trådskaparen bör själv försöka att lösa det till en början

Har inte boken hemma nu , men jag tar en titt på det imorgon.

Permalänk
Skrivet av dLiinkz:

Har inte boken hemma nu , men jag tar en titt på det imorgon.

Säg till om du har frågor

Visa signatur

Bal-Sagoth | Ensiferum | Windir | Finntroll | Wintersun | Amon Amarth | Moonsorrow | Nazgûl

Permalänk
Skrivet av metalbast:

Säg till om du har frågor

Skrivet av phz:

6+7, men ja, då är det loopar du behöver titta på: `while` och `for` konstruktionerna. Det finns säkerligen i det läromaterial du har, eller i introduktioner till Python på nätet.

Tankeväckande modifikation av din namnfråga för att ge en liten introduktion till `while`:

while True: namn = input("Vad heter du? ") print("Hej "+namn+", trevligt att råkas!") print("Usch, jag är så glömsk, jag måste bara få fråga en sak:")

(Notera att du verkar använda Python 3, och att mycket som står på nätet berör Python 2, som fortfarande är mest utbrett. Det bör inte bli några egentliga problem, speciellt inte då du har läromaterial själv, och det är vanligen på sin höjd minimala skillnader, men det kan vara bra att ha i bakhuvudet.)

Fastnar du i lärobokens förklaringar så är det bara att fråga mer, men var medveten om att även om du inte förstår något som står i boken direkt första gången du läser det, så ger det med sig när du faktiskt övar. Det är det bästa/enda sättet att lära sig på, även om det må kännas frustrerande om man inte är van. Ju mer främmande och avancerade koncept du behöver ta in, oavsett område, desto större nytta kommer du ha av erfarenheten att ha lärt dig själv även när saker verkade komplicerade vid en första anblick. Du tränar inte bara på just Python, eller just programmering, utan på att öht ta in kunskap och lära dig nya saker.

En bra riktlinje är: när hjärnan säger att något är jobbigt, då vet du att du utvecklas .

Jag vet att jag måste göra koden själv, men skulle ni kunna förklara lite mer vad det är jag ska göra? Förstår inte riktigt.

Tillägg: Nu har jag börjat lite lätt men jag får invalid syntax, Ser ni nå fel? Fungerar inte \t i python? http://prntscr.com/1z67ae

Tillägg 2: Nu fungerar det första, dock så har jag inte lyckas med det sista, Tips uppskattas..

print('Kvadrattabell') print('=============') print('Tal\tKvadrat') i = 25 while i <= 45: print(i, ' \t', i*i) i += 1 while True: svar = input('Vill du köra programmet igen? (J/N) ') if svar == 'N' or svar == 'n': break

Använd [code]-taggar för kod; speciellt viktigt för Python, då indentering försvinner annars.
Permalänk

Byt ut input() mot raw_input() istället

Visa signatur

Anything that can go wrong will go wrong.

Permalänk
Skrivet av Skuttokova:

Byt ut input() mot raw_input() istället

Nu fick jag tillbaka samma problem igen... http://prntscr.com/1z6s6p

Tar jag bort \t blir det såhär: http://prntscr.com/1z6sm0 Då fungerar det iallafall. Men vill fortfarande ha tab mellan de...

Permalänk
Medlem

Du kan använda

print("{0}\t{1}".format(i,i*i))

Permalänk
Skrivet av dLiinkz:

Nu fick jag tillbaka samma problem igen... http://prntscr.com/1z6s6p

Tar jag bort \t blir det såhär: http://prntscr.com/1z6sm0 Då fungerar det iallafall. Men vill fortfarande ha tab mellan de...

Edit, raw_input fungerade. Vet inte om det fungerar i 3.3.2 pthon som jag har.

Permalänk
Skrivet av reinholdsson:

Du kan använda

print("{0}\t{1}".format(i,i*i))

Tack, Nu har jag fått så när det kommer om jag vill köra igen så om jag skriver N så stänger den av, Men hur får jag programmet att köra igen när jag skriver J?

Permalänk
Medlem

Jag tror du tänkt lite fel angående loopen.

while True: svar = input('Vill du köra programmet igen? (J/N) ') if svar == 'N' or svar == 'n': break

Det som är i while-blocket är det som kommer att upprepas. Fundera på var du vill att blocket skall börja om du vill att den även skall skriva ut alla talen igen.

Permalänk
Hedersmedlem
Skrivet av Skuttokova:

Byt ut input() mot raw_input() istället

Det ena är Python 2, det andra är Python 3. Se What's the difference between raw_input() and input() in python3.x? — SO

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Skrivet av reinholdsson:

Jag tror du tänkt lite fel angående loopen.

while True: svar = input('Vill du köra programmet igen? (J/N) ') if svar == 'N' or svar == 'n': break

Det som är i while-blocket är det som kommer att upprepas. Fundera på var du vill att blocket skall börja om du vill att den även skall skriva ut alla talen igen.

Jag har försökt, men lyckas inte. Det finns inte i boken heller. Kan du hjälpa mig?

Permalänk

Nu kör du fasta värden.
Är det inte meningen att du ska mata in två värden?

Använd dig av en for-loop istället för while. Fungerar bättre i detta fallet.

Visa signatur

Bal-Sagoth | Ensiferum | Windir | Finntroll | Wintersun | Amon Amarth | Moonsorrow | Nazgûl