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

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

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

循環(huán)是計(jì)算機(jī)科學(xué)運(yùn)算領(lǐng)域的用語(yǔ),也是一種常見(jiàn)的控制流程。循環(huán)是一段在程序中只出現(xiàn)一次,但可能會(huì)連續(xù)執(zhí)行多次的代碼。循環(huán)中的代碼會(huì)執(zhí)行特定的次數(shù),或者是執(zhí)行到特定條件成立時(shí)結(jié)束循環(huán),或者是針對(duì)某一集合中的所有項(xiàng)目都執(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 可迭代對(duì)象:
    # 循環(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,步長(zhǎng)為2
    print(i)

range函數(shù):

  • range(101):可以用來(lái)產(chǎn)生0到100范圍的整數(shù),需要注意的是取不到101。
  • range(1, 101):可以用來(lái)產(chǎn)生1到100范圍的整數(shù),相當(dāng)于是左閉右開(kāi)的設(shè)定,即[1, 101)。
  • range(1, 101, 2):可以用來(lái)產(chǎn)生1到100的奇數(shù),其中2是步長(zhǎng)(跨度),即每次遞增的值,101取不到。
  • range(100, 0, -2):可以用來(lái)產(chǎn)生100到1的偶數(shù),其中-2是步長(zhǎng)(跨度),即每次遞減的值,0取不到。
# 同時(shí)獲取索引和值
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():  # 同時(shí)遍歷鍵和值
    print(key, value)
# 并行遍歷多個(gè)序列
names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]
for name, age in zip(names, ages):
    print(name, age)
# 循環(huán)變量命名為_(kāi)
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)體
    # 當(dāng)條件為True時(shí)執(zhí)行這里的代碼
# 基本while循環(huán)
count = 0
while count < 5:
    print(count)
    count += 1
# 無(wú)限循環(huán)(通常配合break使用)
while True:
    user_input = input("輸入'quit'退出: ")
    if user_input == "quit":
        print(f"你輸入了:{user_input},退出")
        break
    print(f"你輸入了: {user_input}")

循環(huán)控制語(yǔ)句

break語(yǔ)句

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

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

continue語(yǔ)句

continue跳過(guò)當(dāng)前迭代,直接進(jìn)入下一次循環(huán)。

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

else子句

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

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

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

循環(huán)可以嵌套,即一個(gè)循環(huán)內(nèi)部包含另一個(gè)循環(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:判斷素?cái)?shù)

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

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

"""
輸入一個(gè)大于1的正整數(shù)判斷它是不是素?cái)?shù)
"""
num = int(input('請(qǐng)輸入一個(gè)正整數(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}是素?cái)?shù)')
else:
    print(f'{num}不是素?cái)?shù)')

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

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

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

"""
輸入兩個(gè)正整數(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ù)字游戲

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

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

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

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

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

"""
輸出100以內(nèi)的素?cá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 個(gè)數(shù)。

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

"""
輸出斐波那契數(shù)列中的前20個(gè)數(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ù),它是一個(gè) N 位非負(fù)整數(shù),其各位數(shù)字的 N 次方和剛好等于該數(shù)本身,例如: 153=13+53+33 ,所以 153 是一個(gè)水仙花數(shù); 1634=14+64+34+44 ,所以 1634 也是一個(gè)水仙花數(shù)。對(duì)于三位數(shù),解題的關(guān)鍵是將它拆分為個(gè)位、十位、百位,再判斷是否滿足水仙花數(shù)的要求,這一點(diǎn)利用 Python 中的//%運(yùn)算符其實(shí)很容易做到。

"""
找出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:百錢百雞問(wèn)題

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

"""
百錢百雞問(wèn)題
"""
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}只')
"""
百錢百雞問(wèn)題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賭 博游戲

說(shuō)明:CRAPS又稱花旗骰,是美國(guó)拉斯維加斯非常受歡迎的一種的桌上賭 博游戲。該游戲使用兩粒骰子,玩家通過(guò)搖兩粒骰子獲得點(diǎn)數(shù)進(jìn)行游戲。簡(jiǎn)化后的規(guī)則是:玩家第一次搖骰子如果搖出了 7 點(diǎn)或 11 點(diǎn),玩家勝;玩家第一次如果搖出 2 點(diǎn)、3 點(diǎn)或 12 點(diǎn),莊家勝;玩家如果搖出其他點(diǎn)數(shù)則游戲繼續(xù),玩家重新?lián)u骰子,如果玩家搖出了 7 點(diǎn),莊家勝;如果玩家搖出了第一次搖的點(diǎn)數(shù),玩家勝;其他點(diǎn)數(shù)玩家繼續(xù)搖骰子,直到分出勝負(fù)。為了增加代碼的趣味性,我們?cè)O(shè)定游戲開(kāi)始時(shí)玩家有 1000 元的賭注,每局游戲開(kāi)始之前,玩家先下 注,如果玩家獲勝就可以獲得對(duì)應(yīng)下 注金額的獎(jiǎng)勵(lì),如果莊家獲勝,玩家就會(huì)輸?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('請(qǐng)下 注: '))
        if 0 < debt <= money:
            break
    # 用兩個(gè)1到6均勻分布的隨機(jī)數(shù)相加模擬搖兩顆色子得到的點(diǎn)數(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python多進(jìn)程程序打包成exe的問(wèn)題

    python多進(jìn)程程序打包成exe的問(wèn)題

    這篇文章主要介紹了python多進(jìn)程程序打包成exe的問(wèn)題的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • 詳解利用python+opencv識(shí)別圖片中的圓形(霍夫變換)

    詳解利用python+opencv識(shí)別圖片中的圓形(霍夫變換)

    這篇文章主要介紹了詳解利用python+opencv識(shí)別圖片中的圓形(霍夫變換),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 超詳細(xì)注釋之OpenCV旋轉(zhuǎn)圖像任意角度

    超詳細(xì)注釋之OpenCV旋轉(zhuǎn)圖像任意角度

    這篇文章主要介紹了OpenCV旋轉(zhuǎn)圖像任意角度,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Python基于locals返回作用域字典

    Python基于locals返回作用域字典

    這篇文章主要介紹了Python基于locals返回作用域字典,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Python控制鼠標(biāo)鍵盤代碼實(shí)例

    Python控制鼠標(biāo)鍵盤代碼實(shí)例

    這篇文章主要介紹了Python控制鼠標(biāo)鍵盤代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • python 調(diào)用HBase的簡(jiǎn)單實(shí)例

    python 調(diào)用HBase的簡(jiǎn)單實(shí)例

    下面小編就為大家?guī)?lái)一篇python 調(diào)用HBase的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12
  • 使用Python+OpenCV進(jìn)行卡類型及16位卡號(hào)數(shù)字的OCR功能

    使用Python+OpenCV進(jìn)行卡類型及16位卡號(hào)數(shù)字的OCR功能

    本文將使用Python+OpenCV實(shí)現(xiàn)模板匹配算法,以自動(dòng)識(shí)別卡的類型和以及16位卡號(hào)數(shù)字,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-08-08
  • Python輕松實(shí)現(xiàn)批量郵件自動(dòng)化詳解

    Python輕松實(shí)現(xiàn)批量郵件自動(dòng)化詳解

    在日常工作和生活中,我們經(jīng)常需要發(fā)送郵件,手動(dòng)發(fā)送郵件不僅繁瑣,而且容易出錯(cuò),下面我們就來(lái)看看如何使用Python實(shí)現(xiàn)批量郵件自動(dòng)化操作吧
    2025-02-02
  • python實(shí)現(xiàn)web郵箱掃描的示例(附源碼)

    python實(shí)現(xiàn)web郵箱掃描的示例(附源碼)

    這篇文章主要介紹了python實(shí)現(xiàn)web郵箱掃描的示例(附源碼),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • pytorch 自定義參數(shù)不更新方式

    pytorch 自定義參數(shù)不更新方式

    今天小編就為大家分享一篇pytorch 自定義參數(shù)不更新方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01

最新評(píng)論

鄱阳县| 阆中市| 台东县| 邛崃市| 乌兰浩特市| 修文县| 阿尔山市| 前郭尔| 聂荣县| 右玉县| 五寨县| 兴国县| 古浪县| 库车县| 荔浦县| 和顺县| 凤台县| 出国| 马公市| 尚志市| 德庆县| 玛多县| 桦南县| 沈阳市| 陵川县| 临西县| 弥渡县| 彭泽县| 保德县| 图木舒克市| 博客| 和顺县| 博湖县| 江北区| 沧源| 沙坪坝区| 小金县| 通化市| 仙居县| 新乐市| 楚雄市|