English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Il ciclo for in Python può iterare sugli elementi di qualsiasi sequenza, come una lista o una stringa.
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.
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.
# 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
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
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('未找到该名称的条目.')
输出结果
未找到该名称的条目。