Python to jeden z najbardziej popularnych i przyjaznych języków programowania na świecie. W tym przewodniku omówimy kilka prostych fragmentów kodu Python, które pomogą zrozumieć jego podstawy.
1. Konwersja tekstu na wielkie litery
before = input("Before: ")
print("After: ", end="")
for c in before:
print(c.upper(), end="")
print()
Powyższy kod pyta użytkownika o wejściowy tekst, a następnie konwertuje każdą literę na wielką literę i wyświetla go na ekranie. Jest to prosty sposób na zmianę wielkości liter w tekście.
Optymalizacja:
before = input("Before: ")
after = before.upper()
print(f"After: {after}")
2. Hello World
from sys import argv
if len(argv) == 2:
print(f"hello, {argv[1]}")
else:
print("hello, world")
Ten program przyjmuje jeden argument wiersza poleceń i wita użytkownika. Jeśli nie ma argumentu, wita „świat”. To proste wprowadzenie do obsługi argumentów wiersza poleceń w Python.
Optymalizacja:
import sys
if len(sys.argv) != 2:
print("Missing command-line argument")
sys.exit(1)
print(f"Hello, {sys.argv[1]}")
sys.exit(0)
3. Sprawdzanie czy element jest w liście
from sys import argv
names = ["Bill", "Charlie", "Fred", "George", "Ginny"]
name = input("Name: ")
if name in names:
print("Found")
sys.exit(0)
print("Not found")
sys.exit(1)
Ten kod sprawdza, czy wprowadzone imię znajduje się na liście imion. Jeśli tak, wyświetla „Znaleziono”, w przeciwnym razie „Nie znaleziono”.
4. Wyszukiwanie numeru telefonu
people = {
"Carter": "+1 615-872-231",
"Monika": "+48 525-845-233"
}
name = input("Name: ")
if name in people:
print(f"Number: {people[name]}")
Ten fragment kodu pyta użytkownika o imię, a następnie sprawdza, czy imię jest w słowniku. Jeśli tak, wyświetla odpowiadający numer telefonu.
5. Zapisywanie danych do pliku CSV
import csv
file = open("phonebook.csv", "a")
name = input("Name: ")
number = input("Number: ")
writer = csv.writer(file)
writer.writerow([name, number])
file.close()
Ten kod umożliwia użytkownikowi dodawanie nowych wpisów do książki telefonicznej przechowywanej w pliku CSV. Pyta użytkownika o imię i numer telefonu, a następnie dodaje je do pliku CSV.
Funkcja DictWriter
Funkcja DictWriter
jest częścią modułu csv
w języku Python, który umożliwia zapisywanie danych do plików CSV za pomocą słowników. Jest to narzędzie wygodne w użyciu, które pozwala programiście pracować ze strukturą danych bardziej przypominającą słowniki, co może być czytelniejsze i bardziej intuicyjne niż korzystanie z list czy krotek.
Główne cechy funkcji DictWriter
to:
- Zapisywanie danych z użyciem słowników:
DictWriter
pozwala zapisywać dane do pliku CSV, używając słowników jako rekordów danych. Każdy klucz w słowniku odpowiada nazwie kolumny w pliku CSV. - Automatyczne tworzenie nagłówków kolumn:
DictWriter
automatycznie tworzy nagłówki kolumn w pliku CSV na podstawie kluczy użytych w słownikach, co eliminuje potrzebę ręcznego dodawania nagłówków. - Elastyczność w zarządzaniu danymi: Dzięki użyciu słowników,
DictWriter
zapewnia elastyczność w zarządzaniu danymi, ponieważ można łatwo dodawać, usuwać i modyfikować pola danych w pliku CSV. - Zarządzanie strumieniem danych:
DictWriter
jest często używany z kontekstemwith
, który automatycznie zarządza otwieraniem i zamykaniem pliku, co pomaga uniknąć problemów związanych z niezamknięciem pliku po jego użyciu.
Dzięki tym cechom DictWriter
ułatwia pracę z danymi w plikach CSV, zwłaszcza gdy dane są reprezentowane w formie słowników.
Zmodyfikowany kod z zastosowaniem funkcji DictWriter
z modułu csv
:
import csv
# Otwórz plik CSV w trybie dołączania (append)
with open("phonebook.csv", "a", newline='') as file:
# Określ nazwy kolumn
fieldnames = ['Name', 'Number']
# Utwórz obiekt DictWriter
writer = csv.DictWriter(file, fieldnames=fieldnames)
# Jeśli plik jest pusty, dodaj nagłówki kolumn
if file.tell() == 0:
writer.writeheader()
# Zapytaj użytkownika o imię i numer telefonu
name = input("Name: ")
number = input("Number: ")
# Zapisz dane do pliku CSV
writer.writerow({'Name': name, 'Number': number})
W powyższym kodzie DictWriter
pozwala nam zapisać dane do pliku CSV używając słowników, co jest bardziej czytelne i elastyczne niż zwykłe listy. Funkcja writeheader()
dodaje nagłówki kolumn do pliku tylko wtedy, gdy plik jest pusty, co zapewnia czytelność danych. Dodatkowo, używamy kontekstu with
, który automatycznie zamyka plik po zakończeniu jego używania, co zapobiega potencjalnym problemom związanych z zapomnieniem o zamknięciu pliku.