Funktiot ja kirjastot

Pythonissa on oletusarvoisesti vain joitakin funkioita. Esimerkiksi int-komento on funktio, sillä se palauttaa annetun arvon kokonaislukuna. Lisää matematiikka-aiheisia funktiota saa käyttöön tuomalla math-kirjaston ohjelman alussa.

Esimerkki 1.

import math #Tuodaan math-kirjasto käyttöön

pii = math.pi #Luvun pii likiarvo
print ("Luvun pii liki arvo on", pii)

print (math.fabs(-5)) #fabs-komento palauttaa luvun itseisarvon

[[$\vdots$]]

Luvun pii likiarvo on 3.141592653589794

5

Usein on tärkeää arpoa satunnaislukuja. Tämä onnistuu random-kirjaston avulla.

Esimerkki 2.

import random

satunnaisluku = random.randint (1, 10) #Arpoo satunnaisen kokonaisluvun luvuista 1-10.
print (satunnaisluku)

satunnaisreaaliluku = random.uniform (1, 10) #Arpoo satunnaisen desimaaliluvun lukujen 1 ja 10 väliltä.
print (satunnaisreaaliluku)

satunnainenmerkki = random.choice("abcdefgh") #Arpoo satunnaisen merkin merkkijonosta.
print (satunnainenmerkki)

satunnaisotos = random.sample([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 3) #Arpoo kolme satunnaista lukua listasta.
print (satunnaisotos)

[[$\vdots$]]

3

4.1437658593051319

f

[3, 1, 8]


Välitehtävä

Päivämäärää ja aikaa käsittelevät komennot saadaan käyttöön datetime-kirjaston avulla.

Esimerkki 3.

import datetime

tanaan = datetime.datetime.now() #Muuttuja tanaan sisältää tämän hetken ajan.

print (tanaan.year) #Tulostaa tämän hetken vuoden
print (tanaan.month) #Tulostaa tämän hetken kuukauden
print (tanaan.day) #Tulostaa tämän hetken päivän
print (tanaan.hour) #Tulostaa tämän hetken tunnin
print (tanaan.minute) #Tulostaa tämän hetken minuutin
print (tanaan.second) #Tulostaa tämän hetken sekunnin

[[$\vdots$]]

2017
12
15
11
7
3

Välitehtävä

Aikaa, etenkin ajan mittaamista, voidaan käsitellä myös time-kirjaston avulla.

Esimerkki 4.

import time

alkuaika = time.time() #Ajanmittaus alkaa
nimi = input("Kerro nimesi:")
loppuaika = time.time() #Ajanmittaus loppuu

print ("Nimesi on", nimi)
print ("Vastaaminen kesti", loppuaika - alkuaika, "sekuntia") #Kulunut aika saadaan mitattua miinustamalla alkuaika loppuajasta.
print ("Pyöristettynä", round(loppuaika - alkuaika, 2), "sekuntia") #Pyöristetään round-komennolla kahden desimaalin tarkkuuteen.

[[$\vdots$]]

Kerro nimesi: Samu
Vastaaminen kesti 3.456789231567408 sekuntia
Pyöristettynä 3.46 sekuntia


Välitehtävä

Omat funktiot

Omia funktioita voi määrittää def-komennon avulla.

Esimerkki 5.

def keskiarvo(luku1, luku2): #Funktion nimi on keskiarvo ja funktioon vaikuttavat parametrit ovat luku1 ja luku2.
[[$ \ \ \ \ \ $]] keskiarvo = float((luku1+luku2)/2)
[[$ \ \ \ \ \ $]] print("Lukujen", luku1, "ja", luku2, "keskiarvo on", keskiarvo) #Sisennyksiin tulee, mitä funktio tekee annetuille parametreille.

a = float( input ("Anna 1. luku:"))
b = float( input( "Anna 2. luku:"))
keskiarvo (a, b)

[[$\vdots$]]

Anna 1. luku: 3
Anna 2. luku: 4
Lukujen 3.0 ja 4.0 keskiarvo on 3.5