Python 3, hjælp
Jeg har lavet et lille program;
import math
i1=float(input())
i2=float(input())
result=math.sqrt(i1 * i2)
print(result)
Det gør hvad det skal, men synes det her input er noget mærkeligt noget, skal der laves var for hver input linje?
- Log in to post comments
Kommentarer4
Ja, det vil jeg mene :)
Ja, det vil jeg mene :) Måske hvis der var flere input-linjerne, kunne man lave en liste med værdier, og så lave et for-loop igennem dem alle :)
Nå det kommer jeg nok til i
Nå det kommer jeg nok til i mit trænings program :)
Prøv
Prøv med:
i1,i2=float(input()),float(input())
Alternativer til at lave
Alternativer til at lave variabler til hver input linje kan være en while-True lignende struktur hvori man enten smider input linjerne i en container type eller udregner mellemresultatet undervejs.
Eksempel med list:
#!/usr/bin/env python3
from math import sqrt
inputdata = []
reading_input = True
while reading_input:
inputline = input("Enter value (float or 'result'): ")
if inputline=="result":
if inputdata: #if not empty
val = inputdata.pop() # alternative: val = functools.reduce(mul,inputdata)
while inputdata: #while not empty
val = val*inputdata.pop()
res = sqrt(val)
print(res)
else:
print("No data to perform sqrt on.")
reading_input = False #exit loop
else:
try:
inputdata.append(float(inputline))
except ValueError as e:
print(e)
Eksempel med mellemregning:
#!/usr/bin/env python3
from math import sqrt
val = None
reading_input = True
while reading_input:
inputline = input("Enter value (float or 'result'): ")
if inputline=="result":
if val != None: #if initialized
res = sqrt(val)
print(res)
else:
print("No data to perform sqrt on.")
reading_input = False #exit loop
else:
try:
if val == None: #initialize
val = float(inputline)
else:
val = val*float(inputline)
except ValueError as e:
print(e)