Python:volgorde wijzigen en cijfers vervangen door letters.

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • +3 Henk 'm!

  • PieterChr
  • Registratie: Oktober 2020
  • Laatst online: 08-10-2020
Vorige week met veel plezier begonnen met Python.
Ben nu 84 jaar en had natuurlijk veel eerder moeten beginnen.

Mijn vraag
Via 2 inputs van respectievelijk 2 en 3 cijfers heb ik bijv
a = 25
b = 513
a en b worden samengevoegd tot
c = 25513

Vraag 1: hoe krijg ik cijfers van c in de volgorde van laag naar hoog, dus naar
d = 12355

Vraag 2: hoe vervang ik deze cijfers door letters (1 door A, 2 door K, 3 door Q, 4 door J en 5 door T)?
e = AKQTT

Relevante software en hardware die ik gebruik
Python..

Wat ik al gevonden of geprobeerd heb
Door niet met het commando int() te werken kreeg ik c via a+b.

Heel veel dank en vr gr
PieterChr.

Alle reacties


Acties:
  • +2 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Je zult moeten zorgen dat c een string of lijst van characters is. Die kun je dan sorteren door middel van Sort ( https://docs.python.org/3/howto/sorting.html )

Het vervangen van de cijfers door letters kun je met Map doen ( https://docs.python.org/3/library/functions.html#map ) of eventueel wat geavanceerder kan het ook met list comprehensions

[ Voor 10% gewijzigd door Woy op 07-10-2020 21:38 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • PieterChr
  • Registratie: Oktober 2020
  • Laatst online: 08-10-2020
Hartelijk dank.
Maar hoe kan ik de beide inputs in een string krijgen?

# a bestaat uit 2 cijfers; 1 <= a <= 5
a = input("a is ")
# b bestaat uit 3 cijfers; 1<= b <= 5
b = input("b is ")
# in c staan de 5 cijfers achter elkaar
c = a + b
print (c)

Resultaat tot dusver:
a is 41
b is 534
41534
>>>
>>>
>>> Bedoeling via 13445 komen tot AQJJT

Acties:
  • +2 Henk 'm!

  • Saiboth
  • Registratie: November 2014
  • Niet online
De functie input() geeft een waarde van het datatype string terug. Met print(type(a)) zul je zien dat het datatype string is.

Zoals je gemerkt hebt plakt de operator '+' de strings achter elkaar, terwijl bijvoorbeeld integers opgeteld zouden worden.

Zoals Woy aangeeft kun je bijvoorbeeld de sorted() functie op een string gebruiken om de waarden oplopend te sorteren. Let op: je krijgt vanuit sorted() een list terug!

[ Voor 10% gewijzigd door Saiboth op 07-10-2020 22:15 ]


Acties:
  • +2 Henk 'm!

  • PieterChr
  • Registratie: Oktober 2020
  • Laatst online: 08-10-2020
Dank Devschuur en Saiboth. Gelukt mede dankzij jullie suggesties.