Python :: Aufgabe #289
5 Lösungen
Differenz(en) von Eingabewerten
Fortgeschrittener - Python
von JKooP
- 04.10.2020 um 12:26 Uhr
Schreibe eine Methode/Funktion, die die maximale bzw. minimale Differenz von Eingabewerten ermittelt.
z.B. f(3, -2, 18, -1, 50)
Min: 1, da Absolut(-2 - -1) = 1
Max: 52, da Absolut(50 - -2) = 52
Viel Spaß
z.B. f(3, -2, 18, -1, 50)
Min: 1, da Absolut(-2 - -1) = 1
Max: 52, da Absolut(50 - -2) = 52
Viel Spaß
Lösungen:
liste = [3, -2, 18, -1, 50]
def min_max(liste):
_max = max(liste)
liste.remove(_max)
_min = min(liste)
liste.remove(_min)
_scnd_min = min(liste)
liste.remove(_scnd_min)
print("Min:", abs(_min - _scnd_min))
print("Max:", abs(_max - _min))
if __name__ == "__main__":
min_max(liste)
Habe mich mal an Python gewagt: Ich hoffe meine Lösung ist nicht allzu schrecklich. Immerhin funktioniert der Code...
Grüße Waldgeist
Python-Code
Grüße Waldgeist
def eingabe():
global meineListe
weiter = "ja"
while (weiter == "ja"):
print("Bitte geben Sie eine Zahl ein: ")
try:
zahl = int(input())
meineListe.append(zahl)
except:
weiter = "nein"
def verarbeiten():
global meineListe
global minimum
global maximum
meineListe.sort()
#lokalesminimum = int(meineListe[1]) - int(meineListe[0])
laenge = len(meineListe)
maximum = int(meineListe[laenge - 1]) - int(meineListe[0])
minimum=maximum
for i in range(laenge-1):
lokalesminimum = int(meineListe[i + 1]) - int(meineListe[i])
if lokalesminimum<minimum:
minimum=lokalesminimum
def ausgabe():
global meineListe
global minimum
global maximum
print(" ")
print("Minimum beträgt: ")
print(minimum)
print("Maximum beträgt: ")
print(maximum)
print("Dieses Programm ermittelt die minimale und maximale Differenz von eingegebenen Zahlen!")
minimum=0
maximum=0
meineListe =[]
eingabe()
verarbeiten()
ausgabe()
def min_max_abst(liste):
c=-1000000000
d=1000000000
min_abs=1000000000
for k in range(0, len(liste)): #Berechnung den minimalen Abstandes
for i in range(k, len(liste)):
a=liste[i]-liste[k]
if abs(a)<min_abs and i!=k:
min_abs=abs(a) #Ergebnis minimaler Abstand
print("Minimaler Abstand",abs(min_abs))
for m in range(0, len(liste)): #Berechnung des maximalen Abstandes
if liste[m]>c: #Bestimmung des größten Wertes c
c=liste[m]
for n in range(0, len(liste)):
if liste[n]<d: #Bestimmung des kleinsten Wertes d
d=liste[n]
max_abs=c-d #Ergebnis maximaler Abstand
print("Maximaler Abstand", max_abs)
def get_min_diff(values):
mindiff = abs(values[0] - values[1])
for i in range(len(values)):
for j in range(len(values)):
if i != j and values[i] >= values[j] and values[i] - values[j] <= mindiff:
mindiff = values[i] - values[j]
min_max = values[i]
min_min = values[j]
return mindiff, min_max, min_min
def test_289(values):
print("Min: %d, wegen %d - %d" % get_min_diff(values))
print("Max: %d, wegen %d - %d" % (max(values) - min(values), max(values), min(values)))
if __name__ == '__main__':
test_289([3, -2, 18, -1, 50])
data=[3, -2, 18, -1, 50]
cluster = {}
for value_1 in data:
for value_2 in data:
cluster[abs(value_1 - value_2)] = (value_1, value_2)
del cluster[0]
print(f'Liste: {data}')
print(f'Min: {min(cluster.keys())}: {cluster[min(cluster.keys())]}')
print(f'Max: {max(cluster.keys())}: {cluster[max(cluster.keys())]}')
