• Opret dig
  • Glemt adgangskode

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log ind
Hjem
LinuxIN.dk

Snak med

Opret dig!

Af dbuch | 04.06.2012 09:35

Python 3, hjælp

Programmering
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 ind eller opret dig for at tilføje kommentarer

Kommentarer4

# 1

13 år 4 måneder siden

Permalink

Indsendt af Kristho den 4. juni 2012 kl. 09:46

Permalink

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 :)
  • Log ind eller opret dig for at tilføje kommentarer

# 2

13 år 4 måneder siden

Permalink

Indsendt af dbuch den 4. juni 2012 kl. 09:54

Permalink

Nå det kommer jeg nok til i

Nå det kommer jeg nok til i mit trænings program :)
  • Log ind eller opret dig for at tilføje kommentarer

# 3

13 år 4 måneder siden

Permalink

Indsendt af batnas den 4. juni 2012 kl. 18:06

Permalink

Prøv

Prøv med:

i1,i2=float(input()),float(input())
  • Log ind eller opret dig for at tilføje kommentarer

# 4

13 år 4 måneder siden

Permalink

Indsendt af mh den 5. juni 2012 kl. 07:14

Permalink

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)
  • Log ind eller opret dig for at tilføje kommentarer

Svar søges

BigLinux 0
Amerikansk tastatur på dansk tastatur 0
FSF giver flere detaljer om sit nye Librephone projekt 0
Det eneste, der forhindrer dig i at skifte til Linux, er din tankegang 0
OpenZL. Et nyt open source-datakomprimeringsframework 0

Seneste aktivitet

Sådan konfigurerer du flatpaks' flathub til verified only 9
Brug carburetor til at forblive usynlig online 7
Plasma tapet-skifter 3
How to upgrade to LMDE 7 4
Virksomheder og enheder der kører på Linux 11
NordVPN har udgivet kildekoden til sin grafiske brugergrænseflade 2
Flere og flere bruger Brave browseren 1
LibreOffice og Collabora: Hvorfor er de ikke i skolerne i stedet for Word og Google Docs? 11
Firewall igen 5
Værdien ved open source 2
Sailfish på android telefon 1
Ladybird Browser 7
Satiriske ordspil 3
Kan ikke boote på installation 26
Tilføj signatur til Evolution mail 2
LUKS kryptering - Er der andre der bruger det 15
Dansk distro til software udviklere 2
Linux Debian 5
Brother printer installation 2
Den er go 6

© 2025 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !