1.1. Att Kommentera
Programmeringsteknik
Teori | Att kommentera | Att namnge | Övningar |
Innehåll |
Kommentarer
print("Charles is") # Skriver ut Charles ålder age = 2012-1987 print(age, "years old")
På den första raden i det här programmet, finns det en kommentar inlagd till höger om koden. Kommentaren börjar med #-tecknet. Kommentaren påverkar inte vad som händer när man kör programmet utan är enbart avsedd som information för den som läser programmet. I Python räknas allt från och med #-tecknet till radslut som en kommentar.
Kommentarer kan kanske verka överflödiga men är i själva verket mycket viktiga för att man ska kunna förstå och överblicka sina program.
Doc-String
def funktionens_namn(param1, param2): '''<Kort kommentar/förklaring om vad funktionen gör> param param1: <förklara inparametern> param param2: <förklara inparametern> returns: <returvärden> '''
Exempel funktion
def calculate_c_and_f(degree, choice): """Converts temperatures between Celsius and Fahrenheit. param degree: temperature in either C or F. param choice: key to convert from C to F ('F') or F to C ('C'). returns: temperature according to param choice. """ convert = {'F' : degree * 9/5 + 32, 'C' : degree * 5/9 - 32} return convert[choice]
from datetime import date def days_remaining(asked_date): """Calculates number of days to an specific date. param asked_date: the specific date, format as yyyy-mm-dd returns: number of days to asked_date """ today = date.today() asked_date = [int(x) for x in asked_date.split('-')] asked_date = date(asked_date[0], asked_date[1], asked_date[2]) return (asked_date - today).days
Exempel klass med metod
import random class NonPlayerCharacter(): """Template for an ordinary villager. """ def __init__(self, param1, param2, param3 = "cap): """Example of docstring on the __init__ method. Args: param1 (dict of list of str): A set of standard lines to randomize. param2 (int): Total health as in life points. param3 (str): Type of hat villager carries, defaults to cap. """ self.standard_lines = param1 self.health = param2 self.hat = param3 def speaking_to_hero(self, situation): """Randomizes a response according to situation. Args: situation (str): Category for what response to use. Returns: A randomized response according to situation. """ response = random.randint(0, len(self.standard_lines[situation]-1)) return response