Python Sprintf: Der formatierte String in Python

Zeeshan Afridi 21 Juni 2023
  1. Formatierter String in Python
  2. Verschiedene Methoden für formatierte Zeichenfolgen in Python
Python Sprintf: Der formatierte String in Python

Es gibt nicht genau die eingebaute sprintf-Funktion, um formatierte Strings zu drucken, aber dank Python gibt es zahlreiche Methoden, um formatierte Strings zu drucken.

In diesem Artikel werden wir vier sprintf-ähnliche Funktionen in Python behandeln, darunter den %-Operator, format(), f-string und eine benutzerdefinierte sprintf-Funktion, also lassen Sie uns tief in sie eintauchen Es.

Formatierter String in Python

Die Zeichenfolgenformatierung wird auch als Zeichenfolgeninterpolation bezeichnet, bei der wir einen benutzerdefinierten Wert, eine Zeichenfolge oder eine Variable in den vordefinierten Text einfügen können.

Es ist eine der bevorzugten und lesbaren Methoden zum Drucken von Zeichenfolgen, einschließlich einiger Werte oder Ergebnisse, was uns die sprintf-ähnliche Funktionalität in Python gibt.

Wir können auch mathematische Ausdrücke in den formatierten Zeichenfolgen verwenden. Nehmen wir zum Beispiel an, wir haben zwei Werte und möchten sie addieren, um ein Endergebnis zu drucken.

Codebeispiel:

x = 3
y = 4
print(f"The sum of {x} and {y} = {x+y}")  # formatted string
print("The sum of", x, "and", y, "=", (x + y))  # normal string

Ausgang:

The sum of 3 and 4 = 7
The sum of 3 and 4 = 7

Wie wir sehen können, ist das Ergebnis des Obigen das gleiche, aber die normale Zeichenfolge ist sehr unbrauchbar; Die formatierte Zeichenfolge ist jedoch besser lesbar, und es ist für Entwickler einfach, Code mit der formatierten Zeichenfolge zu schreiben.

Verschiedene Methoden für formatierte Zeichenfolgen in Python

Pythons ist eine Allzweck-Programmiersprache mit einer vielfältigen Open-Source-Community und kontinuierlichem Support, die Entwicklern Lösungen und Funktionalitäten bietet, um jede Aufgabe auf vielfältige Weise zu erfüllen, je nach Art der Aufgabe und dem jeweiligen Szenario.

Ähnlich wie bei der Verwendung formatierter Zeichenfolgen haben wir verschiedene Methoden, mit denen wir Formatierungszeichenfolgen drucken können, die wir in diesem Artikel einzeln besprechen werden.

Formatierter String mit dem Operator %

Es ist eine der alten Techniken für formatierte Strings in Python und anderen Programmiersprachen. In Python haben Strings eine eingebaute Operation, auf die mit dem Operator % zugegriffen werden kann, was es uns ermöglicht, Strings einfach zu formatieren, ähnlich wie springf in C und C++.

Codebeispiel:

name = "Zeeshan Afridi"
msg = "Hey! developers, it's %s." % name
print(msg)

Ausgang:

Hey! developers, it's Zeeshan Afridi.

Im obigen Code alarmiert %s den Compiler, dass ich am Ende einen String erwarte, und wie demonstriert, haben wir den String mit dem %-Operator als %name angegeben.

Es gibt verschiedene Formatbezeichner für verschiedene Datentypen in der Zeichenfolgenformatierung.

Formatbezeichner Datentyp Ausgang
%c verkohlen Es zeigt ein Unicode-Zeichen
%d ganze Zahl Ganze Zahl
%f Fließkomma Dezimalzahl
%o ganze Zahl (oktal) Oktalzahl
%s Schnur Es gibt eine Schnur
%t Datum (und Uhrzeit Daten und Zeit

Formatierter String mit der Funktion format() in Python

Das format() ist eine neue Methode zum Formatieren von Strings in Python und wird in Python 3 eingeführt.

Es ist ein neuer Stil zum Formatieren von Zeichenfolgen, bei dem wir uns die Formatbezeichner und ihre Reihenfolge in der Zeichenfolge nicht merken müssen. Stattdessen können wir das format() am Ende des Strings verwenden und die Argumente an den angegebenen Positionen bereitstellen.

Codebeispiel:

program = "BSSE"
cgpa = 3.2
student = "Hi! I am a student of {}, and my CGPA is {}".format(program, cgpa)
print(student)

Ausgang:

Hi! I am a student of BSSE, and my CGPA is 3.2

Im obigen Programm haben wir die Stellen, an denen wir einen Wert einfügen wollten, mit geschweiften Klammern {} angegeben und am Ende des Strings student die Funktion .format() verwendet und übergeben zwei Argumente entsprechend.

Formatiertes String-Literal f-string in Python

Formatted string literal ist auch bekannt als f-string und ist in Python 3.6 als neue String-Formatierungsmethode enthalten, deren Syntax besser lesbar und unkomplizierter ist.

f-string hat eine hervorragende und einzigartige Funktion, die den anderen Methoden entgangen ist, und wir können die Ausdrücke und Werte innerhalb der Zeichenfolge definieren.

Es ist nicht nötig, .format() am Ende des Strings zu verwenden. Sehen wir uns unten ein Beispiel für f-String in Python an.

Codebeispiel:

my_fav_lang = "Python"
experience = 2

zeeshan = f"I love to code in {my_fav_lang}, and I have {experience} year experience in Python programming."
print(zeeshan)

Ausgang:

I love to code in Python, and I have 2 years of experience in Python programming.

Wow! die f-saite ist super einfach und lesbar. Im Gegensatz zu den anderen beiden Methoden müssen wir keine andere Methode oder Kommas verwenden, sondern verwenden nur f als Präfix für den String, und wir können loslegen.

Verwendung von sprintf in Python

sprintf steht für Stringprint; Im Grunde ist es eine eingebaute Funktion in der Programmiersprache C und C++, um eine formatierte Zeichenfolge auszugeben, und sie speichert die Ausgabe in einem char-Puffer, der in sprintf() angegeben ist. Und es gibt verschiedene, aber ähnliche Wege in Python.

Das sprintf ist keine benutzerdefinierte Funktion in Python, aber wir können die StringIO-Instanz als Puffer verwenden. Und anders als bei sprintf müssen wir der buf.write und der Formatierungsmethode einen String übergeben. Das % wird in diesem Fall für die String-Formatierung verwendet.

Codebeispiel:

import io
from io import StringIO


def sprintf(buf, fmt, *args):
    buf.write(fmt % args)


age = 24
fav_color = "Blue"

buf = io.StringIO()
sprintf(buf, "I'm %d years old, and my favourite colour is %s!", age, fav_color)

print(buf.getvalue())

Ausgang:

I'm 24 years old, and my favourite colour is Blue!

Wenn Sie für dieses Programm einen ImportError erhalten, installieren Sie die erforderlichen Abhängigkeiten von Ihrer Befehlszeilenschnittstelle (CLI).

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

Verwandter Artikel - Python String