Slicing
# ============================================================
# 1. Che cos’è lo slicing
# ============================================================
# Mostrare che lo slicing permette di estrarre una porzione di stringa:
# stringa[inizio:fine] → dal carattere "inizio" fino a (fine-1)
# Esempio:
word = "Strawberry"
print(word[0:5]) # 'Straw'
# ============================================================
# 2. Slicing senza indice di inizio
# ============================================================
# Se omettiamo l’indice iniziale, Python parte automaticamente da 0
# Esempio:
fruit = "Banana"
print(fruit[:3]) # 'Ban'
# ============================================================
# 3. Slicing senza indice di fine
# ============================================================
# Se omettiamo l’indice finale, Python continua fino alla fine
# Esempio:
name = "Carrot"
print(name[2:]) # 'rrot'
# ============================================================
# 4. Slicing completo
# ============================================================
# Permette di fare una copia della stringa
# Esempio:
text = "Python"
print(text[:]) # 'Python'
# ============================================================
# 5. Slicing con step
# ============================================================
# Sintassi: stringa[inizio:fine:step]
# Step controlla di quanto avanza l’indice ogni volta
# Esempio:
code = "ABCDEFG"
print(code[0:7:2]) # 'ACEG'
# ============================================================
# 6. Step negativo per invertire una stringa
# ============================================================
# Usare step -1 per invertire la stringa rapidamente
# Esempio:
word = "Pizza"
print(word[::-1]) # 'azziP'
# ============================================================
# 7. Slicing con indici negativi
# ============================================================
# Gli indici negativi permettono di partire dalla fine
# Esempio:
item = "Tomato"
print(item[-4:-1]) # 'mat'
# ============================================================
# 8. Usare len() insieme allo slicing
# ============================================================
# Estrarre le ultime N lettere usando len()
# Esempio:
product = "Watermelon"
last3 = product[len(product)-3:]
print(last3) # 'lon'
# ============================================================
# 9. Slicing errati che NON danno errori
# ============================================================
# Slicing fuori dai limiti restituisce una stringa vuota, NON un errore
# Esempio:
s = "Hi"
print(s[5:10]) # '' (stringa vuota)
# ============================================================
# 10. Concatenazione con l'operatore +
# ============================================================
# Unire due o più stringhe
# Esempio:
first = "Hello"
second = "World"
print(first + " " + second) # 'Hello World'
# ============================================================
# 11. Concatenazione con variabili
# ============================================================
# Esempio:
name = "Anna"
greeting = "Hi, " + name
print(greeting)
# ============================================================
# 12. Concatenare usando f-string (metodo migliore)
# ============================================================
# Esempio:
user = "Sam"
print(f"Welcome, {user}!")
# ============================================================
# 13. Usare la concatenazione insieme allo slicing
# ============================================================
# Esempio:
item = "Chocolate"
short = item[:5] + "..."
print(short) # 'Choco...'
# ============================================================
# 14. Ripetizione di stringhe con l’operatore *
# ============================================================
# Non è concatenazione, ma è utile mostrarlo qui
# Esempio:
print("na" * 3) # 'nanana'
# ============================================================
# 15. Unire parti di più stringhe per formare parole nuove
# ============================================================
# Esempio divertente:
a = "spaghetti"
b = "gelato"
new_word = a[:4] + b[-3:]
print(new_word) # 'spato'