• 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 10 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 10 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 10 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 10 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

tst 0
Linux Fanpakke til LUG'er og foreninger 0
KDE Plasma 6.6 skrivebordsmiljø udgivet 0
GRUB 2.14 introducerer understøttelse af EROFS, forbedringer til Btrfs og LVM 0
KDE Plasma 6.6 tilføjer en funktion, som brugerne har spurgt efter i evigheder 0

Seneste aktivitet

USB problemer 2
Frankrig lancerer regeringsplan for skift til Linux desktops 4
Pepsi Challenge 18
Canonical planlægger Kontroversielle GRUB ændringer til Ubuntu 26.10 Secure Boot 1
Ubuntu MATE grundlægger Martin Wimpress træder tilbage efter 12 år 1
OpenShot 3.5 tager et spring fremad inden for ydeevne, AI og videoredigering 4
(U)hyggen breder sig 6
rsync og filsystem 7
Stor sejr for open source, da Tyskland støtter åbent dokumentformat 2
youtube-tui: Nyd YouTube fra terminalen som en professionel 5
Lukker og slukker 8
BigLinux 6
Det engang så elskede PCLinuxOS er tilbage - og det er stadig en fantastisk Windows erstatning 1
Mousam er en detaljeret desktop vejrapp til Linux 1
Hjælp til Handbrake - ingen dk-undertekster 1
luckyBackup 2
GIMP 30
Pinegrow på Debian 13 ? 4
Openmediavault 1
E-mail blues 9

© 2026 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !