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'