Höchsten Zahlenwert bei Python finden?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Möglichkeit 1:

Geh nacheinander jedes Land durch, und wenn der Score höher ist als der bisherige Highscore, überschreibe den Highscore und speichere das Land.

best_country = ""
highscore = 0

if d > highscore:
  best_country = "Deutschland"
  highscore = d
if s > highscore:
  best_country = "Spanien"
  highscore = s
if i > highscore:
  best_country = "Italien"
  highscore = i
…

print("Du solltest nach " + best_country + " reisen.")

Dadurch hast du am Schluss die größte Zahl in highscore gespeichert und das zugehörige Land in best_country.

Möglichkeit 2:

Verwende ein Dictionary für die Länder.

countries = {
 "Deutschland": 0,
 "Spanien": 0,
 "Italien": 0,
 …
}

…

best_country = max(countries, key=countries.get)

print("Du solltest nach " + best_country + " reisen.")

Diese Methode ist etwas professioneller und auch kürzer. Dafür müsstest du aber deinen bestehenden Code ändern. Den Wert von Deutschland müsstest du dann beispielsweise so erhöhen:

countries["Deutschland"]+=1
Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf

Du bist vermutlich Anfänger, daher erspare ich mir mal Kommentare über den Code im Allgemeinen.

Ein einfacher und bequemer Ansatz wäre das Ranking der Länder in einem Dictionary zu organisieren. Dadurch ersparst Du Dir die Einzelvariablen.

Das würde auch den Code lesbarer machen:

countries={'de':0, 'it':0, ...}
countries['de']+=1 #anstatt d+=1

Kannst dem Dictionary auch nen kürzeren Namen geben, wenn Du magst.

Dann kannst Du das Maximum bestimmen::

max(countries,key=countries.get)

Auch ein Ranking wäre ähnlich leicht machbar.


MrAmazing2  20.04.2023, 22:54

Wobei er dann das "de" auch noch zu "Deutschland" mappen müsste, wenn er es im Text ausgeben will.

"Du solltest nach de reisen" klingt ja etwas blöd, selbst wenn man das „DE“ großschreibt.

Ich würde einfach direkt "Deutschland" als Key nehmen.

0