ersetzen von zeichen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
genervternewbie
User
Beiträge: 25
Registriert: Samstag 17. November 2018, 18:42

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
Benutzeravatar
sparrow
User
Beiträge: 4540
Registriert: Freitag 17. April 2009, 10:28

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.
Benutzeravatar
pillmuncher
User
Beiträge: 1530
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

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'
In specifications, Murphy's Law supersedes Ohm's.
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

@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
genervternewbie
User
Beiträge: 25
Registriert: Samstag 17. November 2018, 18:42

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 ))
Benutzeravatar
sparrow
User
Beiträge: 4540
Registriert: Freitag 17. April 2009, 10:28

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.
Sirius3
User
Beiträge: 18276
Registriert: Sonntag 21. Oktober 2012, 17:20

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.
Benutzeravatar
Dennis89
User
Beiträge: 1560
Registriert: Freitag 11. Dezember 2020, 15:13

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
"When I got the music, I got a place to go" [Rancid, 1993]
Antworten