Ich möchte ein Python-Skript erstellen, das Fußnoten erstellt. Die Idee ist, alle Zeichenfolgen der Art "Some body text.{^}{Some footnote text.}"
zu finden und sie durch "Some body text.^#"
zu ersetzen, wobei "^#"
die richtige Fußnotennummer ist. (. Ein anderer Teil meines Skript beschäftigt sich mit den Ausdruck tatsächlich die Fußnoten am Ende der Datei) Der aktuelle Code, den ich dafür bin mit ist:Wie ich mit re() in Python richtig iterieren kann
pattern = r"\{\^\}\{(.*?)\}"
i = 0
def create_footnote_numbers(match):
global i
i += 1
return "<sup>"+str(i)+"</sup>"
new_body_text = re.sub(pattern, create_footnote_numbers, text)
Dies funktioniert gut, aber es scheint seltsam zu haben eine Variable (i
) außerhalb der create_footnote_numbers
-Funktion deklarieren und dann innerhalb dieser Funktion aufrufen müssen. Ich hätte gedacht, dass es etwas in re
geben würde, das die Nummer des Spiels zurückgeben würde.
Interessant, danke. Warum hast du 'start =' in deinem 'def __init __()'? Warum nicht einfach das weglassen und dann 'self.count = 1 'in dem' __init __() 'machen? Entschuldigung, wenn das eine dumme Frage ist --- Ich versuche immer noch herauszufinden, wie Klassen in Python funktionieren. – Alan
@Alan: Jetzt können Sie 'FußnotenNummern (10)' tun und Ihre erste Fußnote wird diese Nummer erhalten. Es ist ein nettes Extra an Flexibilität; Sie können das weglassen, wenn Sie möchten. –
Oh, sehr nett. Vielen Dank. – Alan