English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base Python

Controllo di flusso Python

Funzione in Python

Tipi di dati in Python

Operazioni di file Python

Oggetti e classi Python

Data e ora Python

Conoscenze avanzate Python

Manuale di riferimento Python

Ciclo for in Python

Il ciclo for in Python può iterare sugli elementi di qualsiasi sequenza, come una lista o una stringa.

Cos'è il ciclo for in Python?

Il ciclo for in Python viene utilizzato per iterare sugli elementi di una sequenza (elenco,tupla,stringa) o qualsiasi altro oggetto iterabile. L'iterazione su una sequenza si chiama scansione.

Sintassi del ciclo for

for val in sequence:
	Corpo del for

In questo caso, val è la variabile che ottiene il valore dell'elemento interno alla sequenza in ogni iterazione.

Il ciclo continua fino a raggiungere l'ultimo elemento della sequenza. Utilizzare l'indentazione per separare il corpo del ciclo dal resto del codice.

Diagramma di flusso del ciclo for

Diagramma di flusso del ciclo for in Python

Esempio: ciclo for Python

# Il programma trova la somma di tutti i numeri memorizzati nella lista
# elenco numerico
numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11]
# variabile per memorizzare la somma
sum = 0
# esplora la lista
for val in numbers:
    sum = sum + val
print("La somma è", sum)

Quando esegui il programma, l'output sarà:

La somma è 48

funzione range()

Possiamo generare una sequenza di numeri usando la funzione range(). range(10) produce i numeri da 0 a 9 (10 numeri).

Possiamo definire anche l'inizio, la fine e lo step come range(start, stop, step_size). Se non fornito, step_size è predefinito a 1.

L'oggetto range è in qualche modo 'paziente', poiché non genera tutti i numeri 'contenuti' al momento della sua creazione. Ma non è un iteratore, supporta le operazioni in, len e getitem.

Questa funzione non memorizza tutti i valori in memoria; sarebbe inefficiente. Pertanto, ricorda l'inizio, la fine e lo step, generando il numero successivo durante l'esecuzione.

Per forzare questa funzione a stampare tutti gli elementi, utilizzare la funzione list().

Esempio che dimostra questo punto.

print(range(10))
print(list(range(10)))
print(list(range(2, 8)))
print(list(range(2, 20, 3)))

输出结果

range(0, 10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 3, 4, 5, 6, 7]
[2, 5, 8, 11, 14, 17]

我们可以在for循环中使用 range() 函数来迭代数字序列。它可以与len()函数结合使用索引来遍历序列。这是一个示例。

# 使用索引遍历列表的程序
genre = ['pop', 'rock', 'jazz']
# 使用索引遍历列表
for i in range(len(genre)):
    print("I like", genre[i])

运行该程序时,输出为:

I like pop
I like rock
I like jazz

带有else的循环

for循环也可以有一个可选的else块。

如果for循环中使用的序列中的项耗尽,则执行else部分。

break关键字可用于停止for循环。在这种情况下,else部分将被忽略。

因此,如果没有发生中断,则运行for循环的else部分。

这是一个示例来说明这一点。

digits = [0, 1, 5]
for i in digits:
    print(i)
else:
    print("没有剩余的项目.")

运行该程序时,输出为:

0
1
5
没有剩余的项目.

在这里,for循环将打印列表中的项目,直到循环用尽。当for循环用尽时,它执行else代码块并输出 "没有剩余的项目"。

for...else语句可与break关键字一起使用,以便仅在未执行break关键字时运行else块。让我们举个示例:

# 显示记录中学生成绩的程序
student_name = 'Soyuj'
marks = {'James': 90, 'Jules': 55, 'Arthur': 77}
for student in marks:
    if student == student_name:
        print(marks[student])
        break
else:
    print('未找到该名称的条目.')

输出结果

未找到该名称的条目。