最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中實(shí)現(xiàn)循環(huán)遍歷的完全指南

 更新時間:2026年02月02日 08:49:49   作者:xq9527  
循環(huán)是編程中最核心的概念之一,它允許我們重復(fù)執(zhí)行代碼塊,Python提供了兩種主要的循環(huán)結(jié)構(gòu),即for循環(huán)和while循環(huán),下面小編就和大家詳細(xì)介紹一下吧

概述

循環(huán)是編程中最核心的概念之一,它允許我們重復(fù)執(zhí)行代碼塊。Python提供了兩種主要的循環(huán)結(jié)構(gòu):for循環(huán)和while循環(huán)。掌握循環(huán)的使用對于解決各種編程問題至關(guān)重要。

for 循環(huán)

基本語法

for 變量 in 序列:
    # 循環(huán)體
    pass

基本使用示例

1. 遍歷數(shù)字范圍

# 遍歷 0 到 4
for i in range(5):
    print(i)
# 輸出: 0, 1, 2, 3, 4

# 遍歷 1 到 5
for i in range(1, 6):
    print(i)
# 輸出: 1, 2, 3, 4, 5

# 步長為2的遍歷
for i in range(0, 10, 2):
    print(i)
# 輸出: 0, 2, 4, 6, 8

2. 計算累加和

# 初始化變量
a = 0

# 循環(huán)計算并打印結(jié)果
for i in range(101):  # 0到100
    a += i

print(f"求和a的值為:{a}")
# 輸出: 求和a的值為:5050

多種求和方法對比

# 方法一:使用for循環(huán)累加
def sum_method1(n):
    total = 0
    for i in range(1, n + 1):
        total += i
    return total

# 方法二:等差數(shù)列公式(最高效)
def sum_method2(n):
    return n * (1 + n) // 2  # 使用整數(shù)除法

# 方法三:使用sum()和range()
def sum_method3(n):
    return sum(range(1, n + 1))

# 測試三種方法
n = 100
print(f"1到{n}的和為:{sum_method1(n)}")  # 輸出: 1到100的和為:5050
print(f"1到{n}的和為:{sum_method2(n)}")  # 輸出: 1到100的和為:5050
print(f"1到{n}的和為:{sum_method3(n)}")  # 輸出: 1到100的和為:5050

while 循環(huán)

基本語法

while 條件:
    # 循環(huán)體
    pass

基本使用示例

# 初始化變量
total_sum = 0
count = 0
upper_limit = 100  # 設(shè)置上限值,便于維護(hù)

# while 循環(huán)計算 1 到 100 的和
while count < upper_limit:
    count += 1
    total_sum += count

# 打印最終結(jié)果
print(f"1到{upper_limit}的和為:{total_sum}")
# 輸出: 1到100的和為:5050

while循環(huán)的實(shí)際應(yīng)用

# 用戶輸入驗(yàn)證
def get_valid_number():
    while True:
        try:
            user_input = input("請輸入一個正整數(shù): ")
            number = int(user_input)
            if number > 0:
                return number
            else:
                print("請輸入正整數(shù)!")
        except ValueError:
            print("請輸入有效的數(shù)字!")

# 密碼驗(yàn)證系統(tǒng)
def password_check():
    max_attempts = 3
    attempts = 0
    correct_password = "123456"
    
    while attempts < max_attempts:
        password = input("請輸入密碼: ")
        if password == correct_password:
            print("密碼正確!")
            return True
        else:
            attempts += 1
            remaining = max_attempts - attempts
            if remaining > 0:
                print(f"密碼錯誤!還有{remaining}次機(jī)會")
            else:
                print("密碼錯誤次數(shù)過多,程序退出")
    return False

range() 函數(shù)詳解

基本用法

# range(stop) - 從0到stop-1
print(list(range(5)))        # [0, 1, 2, 3, 4]

# range(start, stop) - 從start到stop-1
print(list(range(2, 8)))     # [2, 3, 4, 5, 6, 7]

# range(start, stop, step) - 步長為step
print(list(range(0, 10, 2))) # [0, 2, 4, 6, 8]
print(list(range(10, 0, -1))) # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

實(shí)用技巧

# 反向遍歷
for i in range(10, 0, -1):
    print(i, end=" ")
print()  # 輸出: 10 9 8 7 6 5 4 3 2 1

# 隔行處理
numbers = list(range(1, 21))
for i in range(0, len(numbers), 2):
    print(f"第{i}個元素: {numbers[i]}")

# 創(chuàng)建等差數(shù)列
arithmetic_sequence = list(range(5, 50, 5))
print(f"等差數(shù)列: {arithmetic_sequence}")
# 輸出: 等差數(shù)列: [5, 10, 15, 20, 25, 30, 35, 40, 45]

循環(huán)控制語句

break 語句

# 提前退出循環(huán)
for i in range(10):
    if i == 5:
        break
    print(i, end=" ")
print()  # 輸出: 0 1 2 3 4

# 在while循環(huán)中使用break
count = 0
while True:
    count += 1
    if count > 5:
        break
    print(count, end=" ")
print()  # 輸出: 1 2 3 4 5

continue 語句

# 跳過當(dāng)前迭代
for i in range(10):
    if i % 2 == 0:  # 跳過偶數(shù)
        continue
    print(i, end=" ")
print()  # 輸出: 1 3 5 7 9

# 打印奇數(shù)的另一種方法
for i in range(1, 11):
    if i % 2 != 0:
        print(i, end=" ")
print()  # 輸出: 1 3 5 7 9

else 子句

# for循環(huán)的else(正常結(jié)束時執(zhí)行)
for i in range(5):
    print(i)
else:
    print("循環(huán)正常結(jié)束")

# while循環(huán)的else
count = 0
while count < 3:
    print(count)
    count += 1
else:
    print("while循環(huán)正常結(jié)束")

# break會跳過else
for i in range(5):
    if i == 3:
        break
    print(i)
else:
    print("這行不會執(zhí)行")  # 不會執(zhí)行

循環(huán)遍歷不同數(shù)據(jù)結(jié)構(gòu)

1. 遍歷列表

# 基本列表遍歷
fruits = ["蘋果", "香蕉", "橙子", "葡萄"]
for fruit in fruits:
    print(fruit)

# 帶索引的遍歷
for index, fruit in enumerate(fruits):
    print(f"索引{index}: {fruit}")

# 反向遍歷
for fruit in reversed(fruits):
    print(fruit)

# 列表切片遍歷
numbers = list(range(10))
for num in numbers[2:8]:  # 遍歷索引2到7的元素
    print(num)

2. 遍歷元組

# 基本元組遍歷
coordinates = (10, 20, 30)
for coord in coordinates:
    print(coord)

# 元組解包遍歷
points = [(1, 2), (3, 4), (5, 6)]
for x, y in points:
    print(f"x={x}, y={y}")

3. 遍歷字典

# 遍歷字典的鍵
student = {"姓名": "張三", "年齡": 20, "成績": 85}
for key in student:
    print(f"{key}: {student[key]}")

# 遍歷鍵值對
for key, value in student.items():
    print(f"{key} = {value}")

# 遍歷值
for value in student.values():
    print(value)

# 遍歷鍵
for key in student.keys():
    print(key)

4. 遍歷集合

# 集合遍歷(無序)
unique_numbers = {1, 2, 3, 4, 5}
for num in unique_numbers:
    print(num)

# 集合排序后遍歷
for num in sorted(unique_numbers):
    print(num)

5. 遍歷字符串

# 字符串遍歷
text = "Hello"
for char in text:
    print(char)

# 帶索引遍歷字符串
for index, char in enumerate(text):
    print(f"位置{index}: '{char}'")

# 反向遍歷字符串
for char in reversed(text):
    print(char, end="")
print()  # 輸出: olleH

嵌套循環(huán)

基本嵌套循環(huán)

# 打印乘法表
print("=== 九九乘法表 ===")
for i in range(1, 10):
    for j in range(1, i + 1):
        print(f"{j}×{i}={i*j}", end="\t")
    print()  # 換行

# 矩陣遍歷
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print("\n=== 矩陣遍歷 ===")
for row in matrix:
    for element in row:
        print(element, end=" ")
    print()

嵌套循環(huán)的實(shí)際應(yīng)用

# 尋找質(zhì)數(shù)
def find_primes(limit):
    primes = []
    for num in range(2, limit + 1):
        is_prime = True
        for i in range(2, int(num ** 0.5) + 1):
            if num % i == 0:
                is_prime = False
                break
        if is_prime:
            primes.append(num)
    return primes

# 找出1到50的所有質(zhì)數(shù)
prime_numbers = find_primes(50)
print(f"1到50的質(zhì)數(shù): {prime_numbers}")

# 圖案打印
def print_pattern(rows):
    print("\n=== 星號圖案 ===")
    for i in range(1, rows + 1):
        # 打印空格
        for j in range(rows - i):
            print(" ", end="")
        # 打印星號
        for k in range(2 * i - 1):
            print("*", end="")
        print()

print_pattern(5)

列表推導(dǎo)式

基本語法

# [表達(dá)式 for 變量 in 序列]
# [表達(dá)式 for 變量 in 序列 if 條件]

實(shí)用示例

# 創(chuàng)建平方數(shù)列表
squares = [x**2 for x in range(1, 11)]
print(f"平方數(shù): {squares}")
# 輸出: 平方數(shù): [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

# 篩選偶數(shù)
numbers = list(range(1, 21))
even_numbers = [x for x in numbers if x % 2 == 0]
print(f"偶數(shù): {even_numbers}")
# 輸出: 偶數(shù): [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

# 條件表達(dá)式
processed = [x if x % 2 == 0 else -x for x in range(1, 11)]
print(f"處理后的數(shù): {processed}")
# 輸出: 處理后的數(shù): [-1, 2, -3, 4, -5, 6, -7, 8, -9, 10]

# 嵌套列表推導(dǎo)式
matrix = [[i*j for j in range(1, 4)] for i in range(1, 4)]
print(f"乘法矩陣: {matrix}")
# 輸出: 乘法矩陣: [[1, 2, 3], [2, 4, 6], [3, 6, 9]]

# 字符串處理
words = ["hello", "world", "python"]
uppercase_words = [word.upper() for word in words]
word_lengths = [len(word) for word in words]
print(f"大寫: {uppercase_words}")
print(f"長度: {word_lengths}")

實(shí)用示例

1. 數(shù)學(xué)計算類

# 計算階乘
def factorial(n):
    result = 1
    for i in range(1, n + 1):
        result *= i
    return result

# 計算斐波那契數(shù)列
def fibonacci(n):
    fib_sequence = [0, 1]
    for i in range(2, n):
        fib_sequence.append(fib_sequence[i-1] + fib_sequence[i-2])
    return fib_sequence[:n]

# 測試
print(f"5的階乘: {factorial(5)}")        # 輸出: 5的階乘: 120
print(f"前10項(xiàng)斐波那契數(shù): {fibonacci(10)}")
# 輸出: 前10項(xiàng)斐波那契數(shù): [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

2. 數(shù)據(jù)處理類

# 學(xué)生成績統(tǒng)計
def analyze_grades(grades):
    total = 0
    count = 0
    max_grade = float('-inf')
    min_grade = float('inf')
    
    for grade in grades:
        total += grade
        count += 1
        if grade > max_grade:
            max_grade = grade
        if grade < min_grade:
            min_grade = grade
    
    average = total / count if count > 0 else 0
    
    return {
        '總分': total,
        '平均分': round(average, 2),
        '最高分': max_grade,
        '最低分': min_grade,
        '人數(shù)': count
    }

# 測試數(shù)據(jù)
student_grades = [85, 92, 78, 96, 88, 73, 91, 84]
result = analyze_grades(student_grades)
for key, value in result.items():
    print(f"{key}: {value}")

3. 搜索和過濾類

# 在列表中搜索元素
def search_element(lst, target):
    for index, element in enumerate(lst):
        if element == target:
            return index
    return -1  # 未找到

# 過濾滿足條件的元素
def filter_elements(lst, condition_func):
    result = []
    for element in lst:
        if condition_func(element):
            result.append(element)
    return result

# 測試
numbers = [1, 5, 8, 12, 15, 23, 8, 30]
print(f"數(shù)字8的位置: {search_element(numbers, 8)}")  # 輸出: 數(shù)字8的位置: 2

# 過濾大于10的數(shù)
greater_than_10 = filter_elements(numbers, lambda x: x > 10)
print(f"大于10的數(shù): {greater_than_10}")  # 輸出: 大于10的數(shù): [12, 15, 23, 30]

4. 游戲相關(guān)

# 猜數(shù)字游戲
import random

def guess_number_game():
    secret_number = random.randint(1, 100)
    attempts = 0
    max_attempts = 7
    
    print("=== 猜數(shù)字游戲 ===")
    print("我想了一個1到100之間的數(shù)字,你有7次機(jī)會猜中它!")
    
    while attempts < max_attempts:
        try:
            guess = int(input(f"第{attempts + 1}次猜測: "))
            attempts += 1
            
            if guess == secret_number:
                print(f"恭喜你!用了{(lán)attempts}次就猜中了!")
                return
            elif guess < secret_number:
                print("太小了!")
            else:
                print("太大了!")
                
            remaining = max_attempts - attempts
            if remaining > 0:
                print(f"還有{remaining}次機(jī)會")
                
        except ValueError:
            print("請輸入有效的數(shù)字!")
    
    print(f"游戲結(jié)束!正確答案是{secret_number}")

# 使用示例(取消注釋運(yùn)行)
# guess_number_game()

性能優(yōu)化建議

1. 選擇合適的循環(huán)方式

import time

# 性能測試函數(shù)
def performance_test():
    n = 1000000
    
    # 方法1: for循環(huán)
    start_time = time.time()
    total1 = 0
    for i in range(n):
        total1 += i
    time1 = time.time() - start_time
    
    # 方法2: 數(shù)學(xué)公式(最快)
    start_time = time.time()
    total2 = n * (n - 1) // 2
    time2 = time.time() - start_time
    
    # 方法3: sum函數(shù)
    start_time = time.time()
    total3 = sum(range(n))
    time3 = time.time() - start_time
    
    print(f"for循環(huán)耗時: {time1:.4f}秒")
    print(f"數(shù)學(xué)公式耗時: {time2:.4f}秒")
    print(f"sum函數(shù)耗時: {time3:.4f}秒")

# performance_test()  # 取消注釋運(yùn)行性能測試

2. 避免不必要的循環(huán)

# ? 不好的做法
numbers = list(range(1000))
result = []
for num in numbers:
    if num % 2 == 0:
        result.append(num * 2)

# ? 更好的做法(使用列表推導(dǎo)式)
result = [num * 2 for num in numbers if num % 2 == 0]

# ? 最佳做法(如果只是檢查存在性)
def has_even_square(numbers):
    # 使用any()避免完整遍歷
    return any(num % 2 == 0 for num in numbers)

3. 循環(huán)優(yōu)化技巧

# 緩存循環(huán)條件
items = list(range(10000))
length = len(items)  # 緩存長度

# ? 每次都調(diào)用len()
for i in range(len(items)):
    pass

# ? 使用緩存的長度
for i in range(length):
    pass

# 減少循環(huán)內(nèi)的計算
expensive_calc = lambda x: x ** 2 + x * 3 + 1

# ? 在循環(huán)內(nèi)重復(fù)計算
results = []
for i in range(1000):
    results.append(expensive_calc(i))

# ? 預(yù)計算或使用緩存
cache = {}
results = []
for i in range(1000):
    if i not in cache:
        cache[i] = expensive_calc(i)
    results.append(cache[i])

學(xué)習(xí)建議

  • 從簡單開始 - 先掌握基本的for和while循環(huán)
  • 多練習(xí) - 通過實(shí)際例子加深理解
  • 理解差異 - 明白for和while的適用場景
  • 注意效率 - 學(xué)會選擇最優(yōu)的循環(huán)方式
  • 善用工具 - 學(xué)會使用enumerate、zip等輔助函數(shù)

常見錯誤提醒

# ? 無限循環(huán)
# while True:
#     print("這會一直運(yùn)行下去")

# ? 正確的無限循環(huán)(有退出條件)
count = 0
while True:
    count += 1
    if count > 5:
        break
    print(count)

# ? 修改正在遍歷的列表
# lst = [1, 2, 3, 4, 5]
# for item in lst:
#     if item % 2 == 0:
#         lst.remove(item)  # 可能導(dǎo)致意外行為

# ? 正確做法:創(chuàng)建新列表
lst = [1, 2, 3, 4, 5]
new_lst = [item for item in lst if item % 2 != 0]
print(new_lst)  # [1, 3, 5]

本文檔基于你的實(shí)際代碼整理而成,包含了完整的語法說明和實(shí)用示例

以上就是Python中實(shí)現(xiàn)循環(huán)遍歷的完全指南的詳細(xì)內(nèi)容,更多關(guān)于Python循環(huán)遍歷的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

邮箱| 平利县| 疏勒县| 武鸣县| 晋宁县| 措勤县| 德阳市| 体育| 高青县| 天镇县| 泰宁县| 贡觉县| SHOW| 舞阳县| 江陵县| 华宁县| 富蕴县| 嘉峪关市| 新巴尔虎右旗| 儋州市| 宜良县| 开远市| 开江县| 翁源县| 临湘市| 扬中市| 卓资县| 喜德县| 普安县| 仙桃市| 新竹县| 泸西县| 巴彦县| 平谷区| 偃师市| 永平县| 盘锦市| 吉首市| 唐山市| 沂源县| 宜川县|