View Single Post
Kan jo også nevne at det er vanlig å få den slags input «utenfra», spesielt når det er snakk om så mange tilfeller.

Her er et annet eksempel, som viser hvordan alle parameterne ligger i tekstfilen 'parametere.txt', og leses inn av Python-programmet som holdes enkelt og pent, uansett hvor mange hundretusenmillioner parametere du planlegger å dra inn.


parametere.txt

Kode

1 2 2
4 6 5
3 4 4
1 2 3
4 2 5
3 4 3
script.py

Kode

def f(A, Z, m, k1, k2):
    return Z * k1 + (A - Z) * k2 + m * Z


k1, k2 = 3, 4
resultater = []

with open('parametere.txt') as file:
    for line in file.readlines():
        p = [int(n) for n in line.split()]
        resultater.append(f(*p, k1, k2))

print(resultater)
# >>> [6, 40, 24, 8, 24, 20]
Bare vær obs på rekkefølgen på parameterne. Her leses de inn i funksjonen i rekkefølgen A-Z-m (slik du også oppga funksjonen), mens du ser ut til å lage dicts med rekkefølgen Z-A-m. Bare en liten detalj som kan forårsake feil hvis tunga ikke holdes i rett munn.