Formatowanie ciągu znaków#

Wstęp#

Zalecanym sposobem formatowania tekstu i liczb w Pythonie jest użycie ciągów znaków f-string. Umożliwiają one osadzanie zmiennych, wyrażeń i wywołań funkcji bezpośrednio w {}.

Aby utworzyć ciąg f, dodaj f przed ciągiem i umieść dowolne wywołanie zmiennej, wyrażenia lub funkcji wewnątrz {}.

x = 1
y = 5

# Display the variables using an f-string
controller.screen.print(f"Position: ({x}, {y})")

# Display a calculation with an f-string
controller.screen.print(f"Sum: {5 + 3}")

# Display the robot's battery capacity with an f-string
controller.screen.print(f"Battery: {controller.get_battery_level()}%")

f-strings – Osadzanie zmiennych i wyrażeń bezpośrednio w tekście.

  • f”{value}” – Wyświetla zmienne, wyrażenia lub wywołania funkcji wewnątrz ciągu.

Formatowanie liczb w ciągach f – Kontroluj sposób wyświetlania wartości liczbowych.

  • :.xf – Ustawia liczbę miejsc dziesiętnych do wyświetlenia.

  • round – Zaokrągla liczbę do podanej liczby miejsc dziesiętnych.

  • :, – Dodaje przecinki jako separatory tysięcy.

  • :.x% – Konwertuje liczbę dziesiętną na wartość procentową z x miejscami dziesiętnymi.

  • :#x – Formatuje liczbę do postaci szesnastkowej.

  • :b – Formatuje liczbę jako binarną.

Kombinacja ciągów – łączenie tekstu i wartości.

  • f”{value}” – Połącz ciągi znaków i zmienne w jednym wyrażeniu.

  • operator+ – ręczne łączenie ciągów znaków z opcjonalną konwersją typu.

Metody String – zmiana wielkości liter tekstu.

  • upper – Zamienia wszystkie znaki na wielkie litery.

  • lower – Zamienia wszystkie znaki na małe litery.

Sprawdzanie podciągów – testowanie obecności i położenia tekstu.

  • in – Sprawdza, czy słowo istnieje w ciągu.

  • startswith – Sprawdza, czy ciąg zaczyna się od podanej wartości.

  • endswith – Sprawdza, czy ciąg kończy się podaną wartością.

Sekwencje wyjścia – formatowanie wyników przy użyciu znaków specjalnych.

  • \n – Dodaje podział wiersza (nowy wiersz).

  • \t – Dodaje spację tabulacji między elementami.

Formatowanie liczb w ciągach f#

Ciągi f umożliwiają precyzyjną kontrolę miejsc dziesiętnych, zaokrąglania, separatorów tysięcy i wielu innych funkcji przy użyciu następujących specyfikatorów formatu:

Fixed Decimal Places#

.xf kontroluje liczbę miejsc dziesiętnych wyświetlaną w danej liczbie.

Usage:
.xf

Parametry

Opis

x

Liczba miejsc dziesiętnych do wyświetlenia.

# Display pi with 2 decimal places
pi = 3.1415926535
controller.screen.print(f"Pi: {pi:.2f}")

# Output: Pi: 3.14

Rounding Numbers#

round rounds liczby znajdujące się poza ciągiem f lub wewnątrz {}.

Usage:
round(number, x)

Parametry

Opis

number

Liczba do zaokrąglenia.

x

Liczba miejsc dziesiętnych, do których należy zaokrąglić.

# Display a value rounded to only 2 decimal places
value = 5.6789
controller.screen.print(f"{round(value, 2)}")

# Output: 5.68

Thousands Separator#

, wstawia przecinki jako separatory tysięcy, dzięki czemu duże liczby stają się bardziej czytelne.

Usage:
,

Parametry

Opis

Ten specyfikator formatu nie ma żadnych parametrów.

# Display a large number separated with commas
number = 1234567
controller.screen.print(f"{number:,}")

# Output: 1,234,567

Percentage#

.x% formatuje wartości dziesiętne jako procenty.

Usage:
.x%

Parametry

Opis

x

Liczba miejsc dziesiętnych do wyświetlenia.

# Display a converted decimal to a percentage
value = 0.875

controller.screen.print(f"{value:.1%}")

# Output: 87.5%

Hexadecimal#

.#x konwertuje liczby na system szesnastkowy.

Usage:
.#x

Parametry

Opis

Ten specyfikator formatu nie ma żadnych parametrów.

# Convert 255 to hexadecimal
number = 255

controller.screen.print(f"{number:#x}")

# Output: 0xff

Binary#

b zamienia liczby na system binarny (podstawa 2).

Usage:
b

Parametry

Opis

Ten specyfikator formatu nie ma żadnych parametrów.

# Convert 3 to binary
controller.screen.print(f"Binary: {3:b}")

# Output: Binary: 11

Łączenie strun#

Można łączyć (lub konkatenować) ciągi znaków, stosując dwa podejścia:

Using f-strings#

Za pomocą f-stringów można osadzać zmienne bezpośrednio wewnątrz {}.

# Display an answer based on the given emotion
emotion = "good"

controller.screen.print(f"I'm {emotion}, you?")

+ Operator#

Możesz łączyć ciągi znaków ręcznie, korzystając z operatora +.

Uwaga: Elementy niebędące ciągami znaków muszą zostać najpierw przekonwertowane na ciągi znaków za pomocą str().

# Display the x and y values
x = 10
y = 20

controller.screen.print("X: " + str(x) + ", Y: " + str(y))

Metody ciągów#

Python udostępnia wbudowane metody modyfikacji i sprawdzania ciągów znaków.

upper#

upper zamienia wszystkie litery w ciągu na wielkie.

Usage:
upper()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

# Display a message in uppercase
message = "vexcode"

controller.screen.print(message.upper())

# Output: VEXCODE

lower#

lower zamienia wszystkie litery w ciągu na małe.

Usage:
lower()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

# Display a message in lowercase
message = "VEXCODE"

controller.screen.print(message.lower())

# Output: vexcode

Sprawdzanie podciągów#

in#

in to słowo kluczowe, które zwraca wartość logiczną wskazującą, czy w ciągu występuje podciąg (słowo lub fragment tekstu).

  • True – Słowo istnieje w ciągu.

  • False – Słowo nie istnieje w ciągu.

# Display a message if "Hey" is in the string
message = "Hey everyone!"

if "Hey" in message:
    controller.screen.print("Hello!")

startswith#

startswith zwraca wartość logiczną wskazującą, czy ciąg znaków zaczyna się od podanej wartości.

  • True – Słowo rozpoczyna ciąg.

  • False – Słowo nie rozpoczyna ciągu.

Usage:
startswith(substring)

Parametry

Opis

substring

Podciąg, który należy sprawdzić na początku ciągu.

# Display a message if the string starts with "AIR"
message = "AIR Drone"

if message.startswith("AIR"):
    controller.screen.print("AIR first!")

endswith#

endswith zwraca wartość logiczną wskazującą, czy ciąg znaków kończy się podaną wartością.

  • True – Słowo kończy ciąg.

  • False – Słowo nie kończy ciągu.

Usage:
endswith(substring)

Parametry

Opis

substring

Podciąg, który należy sprawdzić na końcu ciągu.

# Display a message if the string ends with "Drone"
message = "AIR Drone"

if message.endswith("Drone"):
    controller.screen.print("Drone last!")

Sekwencje ucieczki#

Sekwencje ucieczki to znaki specjalne używane w ciągach znaków do formatowania tekstu wyjściowego. Są one dostępne tylko do użycia z Konsolą.

New Line#

\n przenosi tekst do nowego wiersza podczas drukowania.

# Display text on two lines
print("First line\nSecond line")

Tab Spacing#

\t wstawia tabulator pomiędzy wyrazami lub liczbami.

# Display the quantity of barrels
quantity = 2
print("IDs:\t", quantity)