Seite 1 von 1

ersetzen von zeichen

Verfasst: Dienstag 12. Oktober 2021, 18:00
von genervternewbie
Hallo Leute
das habe ich gefunden

Code: Alles auswählen

ausgabetext = "1 1 2 2 3 3 4 4"
ausgabetext = ausgabetext.replace("1","eins").replace("2","zwei").replace("3","drei")
print("Nach dem Austauschen über replace():")
print(ausgabetext)
meine gedanken

Code: Alles auswählen

ausgabetext = "1 1 2 2 3 3 4 4"
ausgabetext = ausgabetext.replace("1","eins"),("2","zwei"),("3","drei")
print("Nach dem Austauschen über replace():")
print(ausgabetext)
ist das so auch möglich
oder gar

Code: Alles auswählen

umlaute = Array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/"); 
ersetze = Array("ä","ö","ü","Ä","Ö","Ü","ß");
ausgabetext = "1 1 2 2 3 3 4 4"
ausgabetext = ausgabetext.replace(umlaute, ersetze)
print("Nach dem Austauschen über replace():")
print(ausgabetext)
danke schon mal

Re: ersetzen von zeichen

Verfasst: Dienstag 12. Oktober 2021, 18:10
von sparrow
Die Frage kannst du dir doch einfach selbst beantworten, indem du den Code in Python ausführst.
Warum rätst du Programmcode?

Vielleicht möchtest du dich mit den Stichworten "str.translate" und "str.maketrans" beschäftigen.

Re: ersetzen von zeichen

Verfasst: Dienstag 12. Oktober 2021, 18:13
von pillmuncher
Hast du es schon mal ausprobiert?

Code: Alles auswählen

$ python3     
Python 3.9.7 (default, Sep  1 2021, 19:07:16) 
[GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> ausgabetext = "1 1 2 2 3 3 4 4"
>>> ausgabetext = ausgabetext.replace("1","eins"),("2","zwei"),("3","drei")
>>> print("Nach dem Austauschen über replace():")
Nach dem Austauschen über replace():
>>> print(ausgabetext)
('eins eins 2 2 3 3 4 4', ('2', 'zwei'), ('3', 'drei'))
Geht also so nicht. So geht es zwar, ist aber... naja...:

Code: Alles auswählen

from functools import reduce

input_text = '1 1 2 2 3 3 4 4'
replacements = ('1', 'eins'), ('2', 'zwei'), ('3', 'drei')

reduce(
    lambda acc, replacement: acc.replace(*replacement),
    replacements,
    input_text)
Ergebnis:

Code: Alles auswählen

'eins eins zwei zwei drei drei 4 4'

Re: ersetzen von zeichen

Verfasst: Dienstag 12. Oktober 2021, 18:21
von rogerb
@genervternewbie,

Zur ersten Frage:
ist das so auch möglich
Ja das geht, wird aber wahrscheinlich nicht das ausgeben, was du möchtest.

Zur zweiten Frage:
oder gar
Nein, das geht nicht

Re: ersetzen von zeichen

Verfasst: Mittwoch 13. Oktober 2021, 06:22
von genervternewbie
in python zu testen muß ich jedesmal in meinem PC die Festplatte wechseln
Variante3 kenne ich von PHP her (der code ist allerdings etwas anders) was auch gut klappt
der grund für meine frage kommt daher:
ich habe eine datenbank wo ich kunden pflege z.B. ( Jürgen Müllör )
vor dem speichern werden die zeichen in html umgewandelt ( hier unter php )
bei abfragen stellte sich heraus das die sonderzeichen normal angezeigt werden ( war ja auch so gewollt )
aber bei speicherung in einer anderen datenbank muß es wohl erneut umgwandelt werden ( diesmal ist das script unter python )
das wo ich eimal verstanden habe versuche ich zu übernehmen wenn möglich
wenn ich jetzt euch richtig verstanden habe
alles neu überdenken odwer alles mehrfach schreiben ( für jeder tausch einzell, ( mach bei 2 texte ( (ausgabetext), 2 mal 7 mal code schreiben für ersetzen ))

Re: ersetzen von zeichen

Verfasst: Mittwoch 13. Oktober 2021, 06:26
von sparrow
Du musst eine Festplatte wechseln um Python zu testen? Warum installierst du dir nicht einfach Python auf deinem PC? Stattdessen postest du Fantasy-Code und fragst dann, ob der geht? Das ist schon ein bisschen sehr seltsam.

Ich sehe überhaupt gar keinen Sinn darin, irgendwelche Namen vor dem Speichern in der Datenbank zu escapen. Weder in PHP noch in Python. Welchen Sinn soll das machen?

Das würde man bei Python aber sowieso nicht per Hand machen sondern einen Blick auf urllib.parse werfen.

Re: ersetzen von zeichen

Verfasst: Mittwoch 13. Oktober 2021, 06:38
von Sirius3
Die HTML-Kodierung ist für die Ausgabe in HTML gedacht. Intern arbeitet man mit den korrekten Zeichen. Wenn man das braucht, macht es das Template-System, das Du hoffentlich benutzt, automatisch. Und auch wenn Du aus irgendwelchen Gründen die Umwandlung so brauchst, dafür gibt es auch schon fertige Funktionen.
Zwischen Datenbanken musst Du nichts umwandeln, falls doch, hast Du einen Fehler irgendwo in der Verarbeitung.

Re: ersetzen von zeichen

Verfasst: Mittwoch 13. Oktober 2021, 08:13
von Dennis89
genervternewbie hat geschrieben: Mittwoch 13. Oktober 2021, 06:22 in python zu testen muß ich jedesmal in meinem PC die Festplatte wechseln
Was es heut zu Tage nicht alles gibt:
https://www.online-python.com/


Grüße
Dennis