亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python循環(huán)結(jié)構(gòu)全面解析

 更新時間:2025年06月20日 14:35:15   作者:橘子編程  
循環(huán)中的代碼會執(zhí)行特定的次數(shù),或者是執(zhí)行到特定條件成立時結(jié)束循環(huán),或者是針對某一集合中的所有項目都執(zhí)行一次,這篇文章給大家介紹Python循環(huán)結(jié)構(gòu)解析,感興趣的朋友跟隨小編一起看看吧

循環(huán)是計算機科學(xué)運算領(lǐng)域的用語,也是一種常見的控制流程。循環(huán)是一段在程序中只出現(xiàn)一次,但可能會連續(xù)執(zhí)行多次的代碼。循環(huán)中的代碼會執(zhí)行特定的次數(shù),或者是執(zhí)行到特定條件成立時結(jié)束循環(huán),或者是針對某一集合中的所有項目都執(zhí)行一次。

Python提供了兩種主要的循環(huán)結(jié)構(gòu):for循環(huán)和while循環(huán)。

for-in循環(huán)

如果明確知道循環(huán)執(zhí)行的次數(shù),推薦使用for-in循環(huán)

for 變量 in 可迭代對象:
    # 循環(huán)體
    # 每次迭代執(zhí)行這里的代碼
# 遍歷列表
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)
# 遍歷字符串
for char in "Python":
    print(char)
# 使用range()函數(shù)
for i in range(5):  # 0到4
    print(i)
for i in range(2, 6):  # 2到5
    print(i)
for i in range(0, 10, 2):  # 0到9,步長為2
    print(i)

range函數(shù):

  • range(101):可以用來產(chǎn)生0到100范圍的整數(shù),需要注意的是取不到101。
  • range(1, 101):可以用來產(chǎn)生1到100范圍的整數(shù),相當于是左閉右開的設(shè)定,即[1, 101)。
  • range(1, 101, 2):可以用來產(chǎn)生1到100的奇數(shù),其中2是步長(跨度),即每次遞增的值,101取不到。
  • range(100, 0, -2):可以用來產(chǎn)生100到1的偶數(shù),其中-2是步長(跨度),即每次遞減的值,0取不到。
# 同時獲取索引和值
for index, value in enumerate(fruits):
    print(index, value)
# 遍歷字典
person = {"name": "Alice", "age": 25, "city": "New York"}
for key in person:  # 遍歷鍵
    print(key)
for value in person.values():  # 遍歷值
    print(value)
for key, value in person.items():  # 同時遍歷鍵和值
    print(key, value)
# 并行遍歷多個序列
names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]
for name, age in zip(names, ages):
    print(name, age)
# 循環(huán)變量命名為_
import time
for _ in range(36):
    print('hello, world')
    time.sleep(1)

while循環(huán)

如果要構(gòu)造循環(huán)結(jié)構(gòu)但是又不能確定循環(huán)重復(fù)的次數(shù),推薦使用while循環(huán)。

while 條件:
    # 循環(huán)體
    # 當條件為True時執(zhí)行這里的代碼
# 基本while循環(huán)
count = 0
while count < 5:
    print(count)
    count += 1
# 無限循環(huán)(通常配合break使用)
while True:
    user_input = input("輸入'quit'退出: ")
    if user_input == "quit":
        print(f"你輸入了:{user_input},退出")
        break
    print(f"你輸入了: {user_input}")

循環(huán)控制語句

break語句

break用于完全終止循環(huán),跳出循環(huán)體。

for i in range(10):
    if i == 5:
        break
    print(i)  # 只打印0-4

continue語句

continue跳過當前迭代,直接進入下一次循環(huán)。

for i in range(10):
    if i % 2 == 0:
        continue
    print(i)  # 只打印奇數(shù)

else子句

循環(huán)可以有一個可選的else塊,它在循環(huán)正常完成(即不是由break終止)時執(zhí)行。

for i in range(5):
    print(i)
else:
    print("循環(huán)正常完成")
# 如果循環(huán)被break終止,else不會執(zhí)行
for i in range(5):
    if i == 3:
        break
    print(i)
else:
    print("這不會被執(zhí)行")

嵌套的循環(huán)結(jié)構(gòu)

循環(huán)可以嵌套,即一個循環(huán)內(nèi)部包含另一個循環(huán)。

# 打印乘法表
for i in range(1, 10):
    for j in range(1, i+1):
        print(f"{j}×{i}={i*j}", end="\t")
    print()  # 換行
# 嵌套循環(huán)中的break和continue
for i in range(3):
    for j in range(3):
        if j == 1:
            break  # 只影響內(nèi)層循環(huán)
        print(i, j)

循環(huán)結(jié)構(gòu)的應(yīng)用

例子1:判斷素數(shù)

要求:輸入一個大于 1 的正整數(shù),判斷它是不是素數(shù)。

提示:素數(shù)指的是只能被 1 和自身整除的大于 1 的整數(shù)。例如對于正整數(shù) n,我們可以通過在 2 到 n−1 之間尋找有沒有 n 的因子,來判斷它到底是不是一個素數(shù)。當然,循環(huán)不用從 2 開始到 n−1 結(jié)束,因為對于大于 1 的正整數(shù),因子應(yīng)該都是成對出現(xiàn)的,所以循環(huán)到 n 就可以結(jié)束了。

"""
輸入一個大于1的正整數(shù)判斷它是不是素數(shù)
"""
num = int(input('請輸入一個正整數(shù): '))
end = int(num ** 0.5)
is_prime = True
for i in range(2, end + 1):
    if num % i == 0:
        is_prime = False
        break
if is_prime:
    print(f'{num}是素數(shù)')
else:
    print(f'{num}不是素數(shù)')

例子2:最大公約數(shù)

要求:輸入兩個大于 0 的正整數(shù),求兩個數(shù)的最大公約數(shù)。

提示:兩個數(shù)的最大公約數(shù)是兩個數(shù)的公共因子中最大的那個數(shù)。

"""
輸入兩個正整數(shù)求它們的最大公約數(shù)
"""
x = int(input('x = '))
y = int(input('y = '))
for i in range(x, 0, -1):
    if x % i == 0 and y % i == 0:
        print(f'最大公約數(shù): {i}')
        break

例子3:猜數(shù)字游戲

要求:計算機出一個 1 到 100 之間的隨機數(shù),玩家輸入自己猜的數(shù)字,計算機給出對應(yīng)的提示信息“大一點”、“小一點”或“猜對了”,如果玩家猜中了數(shù)字,計算機提示用戶一共猜了多少次,游戲結(jié)束,否則游戲繼續(xù)。

"""
猜數(shù)字小游戲
"""
import random
answer = random.randrange(1, 101)
counter = 0
while True:
    counter += 1
    num = int(input('請輸入: '))
    if num < answer:
        print('大一點.')
    elif num > answer:
        print('小一點.')
    else:
        print('猜對了.')
        break
print(f'你一共猜了{counter}次.')

分支和循環(huán)結(jié)構(gòu)實戰(zhàn)

例子1:100以內(nèi)的素數(shù)

說明:素數(shù)指的是只能被 1 和自身整除的正整數(shù)(不包括 1)

"""
輸出100以內(nèi)的素數(shù)
"""
for num in range(2, 100):
    is_prime = True
    for i in range(2, int(num ** 0.5) + 1):
        if num % i == 0:
            is_prime = False
            break
    if is_prime:
        print(num)

例子2:斐波那契數(shù)列

要求:輸出斐波那契數(shù)列中的前 20 個數(shù)。

說明:斐波那契數(shù)列(Fibonacci sequence),通常也被稱作黃金分割數(shù)列,是意大利數(shù)學(xué)家萊昂納多·斐波那契(Leonardoda Fibonacci)在《計算之書》中研究理想假設(shè)條件下兔子成長率問題而引入的數(shù)列,因此這個數(shù)列也常被戲稱為“兔子數(shù)列”。斐波那契數(shù)列的特點是數(shù)列的前兩個數(shù)都是 1,從第三個數(shù)開始,每個數(shù)都是它前面兩個數(shù)的和。按照這個規(guī)律,斐波那契數(shù)列的前 10 個數(shù)是:1, 1, 2, 3, 5, 8, 13, 21, 34, 55。斐波那契數(shù)列在現(xiàn)代物理、準晶體結(jié)構(gòu)、化學(xué)等領(lǐng)域都有直接的應(yīng)用。

"""
輸出斐波那契數(shù)列中的前20個數(shù)
"""
a, b = 0, 1
for _ in range(20):
    a, b = b, a + b
    print(a)

例子3:尋找水仙花數(shù)

要求:找出 100 到 999 范圍內(nèi)的所有水仙花數(shù)。

提示:在數(shù)論中,水仙花數(shù)(narcissistic number)也被稱為超完全數(shù)字不變數(shù)、自戀數(shù)、自冪數(shù)、阿姆斯特朗數(shù),它是一個 N 位非負整數(shù),其各位數(shù)字的 N 次方和剛好等于該數(shù)本身,例如: 153=13+53+33 ,所以 153 是一個水仙花數(shù); 1634=14+64+34+44 ,所以 1634 也是一個水仙花數(shù)。對于三位數(shù),解題的關(guān)鍵是將它拆分為個位、十位、百位,再判斷是否滿足水仙花數(shù)的要求,這一點利用 Python 中的//%運算符其實很容易做到。

"""
找出100到999范圍內(nèi)的水仙花數(shù)
"""
for num in range(100, 1000):
    low = num % 10
    mid = num // 10 % 10
    high = num // 100
    if num == low ** 3 + mid ** 3 + high ** 3:
        print(num)

例子4:百錢百雞問題

說明:百錢百雞是我國古代數(shù)學(xué)家張丘建在《算經(jīng)》一書中提出的數(shù)學(xué)問題:雞翁一值錢五,雞母一值錢三,雞雛三值錢一。百錢買百雞,問雞翁、雞母、雞雛各幾何?翻譯成現(xiàn)代文是:公雞 5 元一只,母雞 3 元一只,小雞 1 元三只,用 100 塊錢買一百只雞,問公雞、母雞、小雞各有多少只?

"""
百錢百雞問題
"""
for x in range(0, 21):
    for y in range(0, 34):
        for z in range(0, 100, 3):
            if x + y + z == 100 and 5 * x + 3 * y + z // 3 == 100:
                print(f'公雞: {x}只, 母雞: {y}只, 小雞: {z}只')
"""
百錢百雞問題2
"""
for x in range(0, 21):
    for y in range(0, 34):
        z = 100 - x - y
        if z % 3 == 0 and 5 * x + 3 * y + z // 3 == 100:
            print(f'公雞: {x}只, 母雞: {y}只, 小雞: {z}只')

例子5:CRAPS賭 博游戲

說明:CRAPS又稱花旗骰,是美國拉斯維加斯非常受歡迎的一種的桌上賭 博游戲。該游戲使用兩粒骰子,玩家通過搖兩粒骰子獲得點數(shù)進行游戲。簡化后的規(guī)則是:玩家第一次搖骰子如果搖出了 7 點或 11 點,玩家勝;玩家第一次如果搖出 2 點、3 點或 12 點,莊家勝;玩家如果搖出其他點數(shù)則游戲繼續(xù),玩家重新?lián)u骰子,如果玩家搖出了 7 點,莊家勝;如果玩家搖出了第一次搖的點數(shù),玩家勝;其他點數(shù)玩家繼續(xù)搖骰子,直到分出勝負。為了增加代碼的趣味性,我們設(shè)定游戲開始時玩家有 1000 元的賭注,每局游戲開始之前,玩家先下 注,如果玩家獲勝就可以獲得對應(yīng)下 注金額的獎勵,如果莊家獲勝,玩家就會輸?shù)糇约合?注的金額。游戲結(jié)束的條件是玩家破產(chǎn)(輸光所有的賭注)。

"""
Craps賭博游戲
"""
import random
money = 1000
while money > 0:
    print(f'你的總資產(chǎn)為: {money}元')
    # 下注金額必須大于0且小于等于玩家的總資產(chǎn)
    while True:
        debt = int(input('請下 注: '))
        if 0 < debt <= money:
            break
    # 用兩個1到6均勻分布的隨機數(shù)相加模擬搖兩顆色子得到的點數(shù)
    first_point = random.randrange(1, 7) + random.randrange(1, 7)

到此這篇關(guān)于Python循環(huán)結(jié)構(gòu)解析的文章就介紹到這了,更多相關(guān)Python循環(huán)結(jié)構(gòu)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • TensorFlow Autodiff自動微分詳解

    TensorFlow Autodiff自動微分詳解

    這篇文章主要介紹了TensorFlow Autodiff自動微分詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 詳解python logging日志傳輸

    詳解python logging日志傳輸

    這篇文章主要介紹了python logging日志傳輸?shù)南嚓P(guān)資料,文中講解非常詳細,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 如何使用Python自動控制windows桌面

    如何使用Python自動控制windows桌面

    這篇文章主要介紹了如何使用Python自動控制windows桌面,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • pyspark操作MongoDB的方法步驟

    pyspark操作MongoDB的方法步驟

    這篇文章主要介紹了pyspark操作MongoDB的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • python用pyecharts畫矩形樹圖實例

    python用pyecharts畫矩形樹圖實例

    大家好,本篇文章主要講的是python用pyecharts畫矩形樹圖實例,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 基于Python實現(xiàn)萬年歷制作

    基于Python實現(xiàn)萬年歷制作

    制作一個萬年歷是一個有趣的Python項目,它可以讓您查看任何年份的日歷并獲得特定日期的信息,下面我們就來看看具體是如何使用Python實現(xiàn)的吧
    2023-12-12
  • Flask項目中實現(xiàn)短信驗證碼和郵箱驗證碼功能

    Flask項目中實現(xiàn)短信驗證碼和郵箱驗證碼功能

    這篇文章主要介紹了Flask項目中實現(xiàn)短信驗證碼和郵箱驗證碼功能,需本文通過截圖實例代碼的形式給大家介紹的非常詳細,需要的朋友可以參考下
    2019-12-12
  • 利用Python找出序列中出現(xiàn)最多的元素示例代碼

    利用Python找出序列中出現(xiàn)最多的元素示例代碼

    這篇文章主要給大家介紹了關(guān)于利用Python找出序列中出現(xiàn)最多的元素的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • Python工程師必考的6個經(jīng)典面試題

    Python工程師必考的6個經(jīng)典面試題

    在本篇文章里小編給大家分享的是一篇關(guān)于6個Python工程師必考的面試題,有需要的朋友們可以參考學(xué)習(xí)下。
    2020-06-06
  • Python使用cx_Freeze庫生成msi格式安裝文件的方法

    Python使用cx_Freeze庫生成msi格式安裝文件的方法

    這篇文章主要介紹了Python使用cx_Freeze庫生成msi格式安裝文件的方法,結(jié)合實例形式分析了Python基于cx_Freeze庫生成msi格式安裝文件操作技巧與相關(guān)問題解決方法,需要的朋友可以參考下
    2018-07-07

最新評論