Hur gör ni för att testa python kod medans ni skriver

Trädvy Permalänk
Medlem
Registrerad
Okt 2011

Hur gör ni för att testa python kod medans ni skriver

Så jag försöker att lära mig python kod, tredje gången nu. Och nu vill jag ge upp igen, varför? För att pyton inte har multiline comments. ''' är inte kommentarer, det är en text sträng vilket jag får

python test.py File "test.py", line 22 ''' SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 63-64: truncated \UXXXXXXXX escape

från koden under.

import pyautogui import time import sys pyautogui.screenshot(getpixel((100, 200))) sys.exit() ''' while(a==1) try: x, y = pyautogui.locateCenterOnScreen(r'eng.bmp', grayscale=True) pyautogui.click(x, y) a=0 except TypeError: time.sleep(5) '''

det är

x, y = pyautogui.locateCenterOnScreen(r'C:\Users\Fredrik\Desktop\image\eng.bmp', grayscale=True)

vilket ger felet, men det är ju en text sträng så det ska ju inte spela roll.

Förvisso så är det en liten kod, men vad gör man när koden blir längre? Flyttar koden i delar i olika filer för att testat? Eller hur gör ni för att testa koden medans ni skriver den, och vet att visa delar inte fungerar.

Trädvy Permalänk
Entusiast
Testpilot
Plats
Chalmers
Registrerad
Aug 2011

Jag brukar markera den kod jag vill kommentera och trycka Ctrl + ', så kommenterar Atom alla markerade rader med # åt mig.

Skrivet med hjälp av Better SweClockers

Trädvy Permalänk
Medlem
Registrerad
Okt 2011
Skrivet av Alling:

Jag brukar markera den kod jag vill kommentera och trycka Ctrl + ', så kommenterar Atom alla markerade rader med # åt mig.

Kör med notepad++, tänkte pröva atom, men det verkar vara mycket tyngre.

Jag vet inte varför python envisas med att inte ha flera linjer kommentarer.

Trädvy Permalänk
Medlem
Plats
42
Registrerad
Maj 2004

@Frejoh466: Ska finnas stöd för att editera flera rader samtidigt i notepad++ också, har för mig det var någon inställning man fick slå igång. Sen kan man markera alla rader och infoga en kommentar som vanligt.

Men kan rekommendera en IDE även om det är lite tyngre. PyCharm är riktigt bra imho.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Aug 2011

De flesta (alla?) IDE:er för python stödjer block comments. Skulle rekommendera en IDE precis som föregående skribent då det går klart snabbare att arbeta med de hjälpmedel som finns i dessa. Jag har främst använt eclipse men detta är väldigt tungt jämfört med enklare ide:er. PyCharm ser trevlig ut men har ingen erfarenhet av denna. Sedan finns pythonwin som i och för sig är rätt kass att skriva kod i men har vissa bra egenskaper om man vill exekvera kod och interagera med denna via consolen.

Core i5 4670S, Asus B85M-G, 16GB Crucial Ballistix, Geforce GTX 960, Intel 335 240GB, Bitfenix Prodigy M, Corsair RM550X, Dell U2713HM.
Dell Latitude 7280
IPad air 2 64GB
IPhone 7

Trädvy Permalänk
Medlem
Registrerad
Feb 2016

Jag gillade pycharm, tyckte det var rätt skönt att bara trycka en tangentkombination så kördes mitt program... men jag är ju van vid interaktiv användning av Rstudio också där hela grejen är att man kör kodrad för kodrad och tittar vad som händer med data så jag kanske inte har den mest normala av utgångslägen.
Finns även något som heter Rodeo som är Rstudio fast med Python som språk och alltså också bygger på interaktiv användning i nån omfattning, men det har jag inte provat.

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Nov 2011

Jag delar upp min kod i funktioner och unit-testar varje funktion för sig. Om några rader kod kan "kommenteras ut" hör de nog hemma i en annan funktion. (?)

Skickades från m.sweclockers.com

Linux: the operating system with a CLUE; Command Line User Environment.

GNU/Linux

Trädvy Permalänk
Medlem
Plats
PITEÅ
Registrerad
Apr 2018

Jag gör som @GLaDER och delar upp koden i små funktioner som jag unit-testar var för sig. Python's inbyggda modul unittest funkar bra för detta och är enkel att använda.

Du bör inte kommentera bort kod under testning och absolut inte lämna kvar kommenterad kod efter testning.

Behöver du verkligen skriva många rader med kommentarer så finns det ett bättre sätt: skriv om koden så att den går att förstå och ta bort kommentarerna.

Min åsikt: idealt finns inga kommentarer utan endast docstrings.

// Lars Lindehaven

Trädvy Permalänk
Medlem
Plats
Finland
Registrerad
Maj 2004

Enda felet jag får med din kod är för att jag inte har pyautogui installerat. Kommenterar jag bort den raden får jag inga fel.

'''

ska nog fungera för en multi-line kommentar.

Trädvy Permalänk
Medlem
Registrerad
Okt 2011
Skrivet av Lindehaven:

Jag gör som @GLaDER och delar upp koden i små funktioner som jag unit-testar var för sig. Python's inbyggda modul unittest funkar bra för detta och är enkel att använda.

Du bör inte kommentera bort kod under testning och absolut inte lämna kvar kommenterad kod efter testning.

Behöver du verkligen skriva många rader med kommentarer så finns det ett bättre sätt: skriv om koden så att den går att förstå och ta bort kommentarerna.

Min åsikt: idealt finns inga kommentarer utan endast docstrings.

Men jag kommenterar ut delar som inte fungerar. eg jag vill inte ha 30 olika filer med alla kod delar som jag klistrar in i olika dokument. Sedan så antar jag väl att inte alla vill kommentera sin kod, dock så vill väl jag veta vad den delen gör för något. Samt om någon annan vill kolla koden.

Skrivet av Tazavoo:

Enda felet jag får med din kod är för att jag inte har pyautogui installerat. Kommenterar jag bort den raden får jag inga fel.

'''

ska nog fungera för en multi-line kommentar.

'''

är inte kommentar, det är en "docstring" så den ska inte användas för kommentarer.

Samt så hittade jag att alt + q i notepad++ kommenterar ut saker.

Trädvy Permalänk
Medlem
Plats
PITEÅ
Registrerad
Apr 2018

Jag tror att jag inte riktigt förstår hur du kodar och testar. Och inte heller varför du behöver kommentera bort koddelar "som inte fungerar".

Skriv tester i exvis unittest och kör dem på din kod. Om koddelar inte fungerar så behöver du skriva om dem så att de fungerar eller ta bort dem helt. Att lämna kvar bortkommenterad kod är helt onödigt.

// Lars Lindehaven