溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Pyton學(xué)習(xí)—循環(huán)語(yǔ)句

發(fā)布時(shí)間:2020-08-05 13:33:11 來(lái)源:網(wǎng)絡(luò) 閱讀:632 作者:長(zhǎng)安223 欄目:編程語(yǔ)言

1.Python內(nèi)置函數(shù)range()

語(yǔ)法:

range(start,end[,step])

參數(shù)說(shuō)明:

  • start: 計(jì)數(shù)從 start 開(kāi)始。默認(rèn)是從 0 開(kāi)始。例如range(5)等價(jià)于range(0, 5)
  • stop: 計(jì)數(shù)到 stop 結(jié)束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]沒(méi)有5
  • step:步長(zhǎng),默認(rèn)為1。例如:range(0, 5) 等價(jià)于 range(0, 5, 1)

注意:
在Python2中我們查看range()函數(shù)幫助可以看到它返回的是一個(gè)列表:
Return a list containing an arithmetic progression of integers.
而在Python3中,range()函數(shù)的幫助可以看到返回的是一個(gè)整數(shù)序列的對(duì)象,而不是列表:
Return an object that produces a sequence of integers

舉栗子:
1.當(dāng)start小于end時(shí):(步長(zhǎng)為正數(shù))

>>>range(10)          # 從 0 開(kāi)始到 9
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(0)
[]
>>> range(1, 10)      # 從 1 開(kāi)始到 9
[1, 2, 3, 4, 5, 6, 7, 8, 9,]
>>> range(0, 30, 5)   # 步長(zhǎng)為 5
[0, 5, 10, 15, 20, 25]
>>> range(0, 10, 3)   # 步長(zhǎng)為 3
[0, 3, 6, 9]
>>> range(0,10,-2)    #錯(cuò)誤的步長(zhǎng)
[]

2.當(dāng)start大于end時(shí):(步長(zhǎng)要為負(fù)數(shù))

>>> range(10,0,-1)    #步長(zhǎng)為-1
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> range(0,-10,-2)   #步長(zhǎng)為-2
[0, -2, -4, -6, -8]
>>> range(0,-10,2)    #錯(cuò)誤的步長(zhǎng)
[]
>>> range(1, 0)       #錯(cuò)誤的步長(zhǎng)
[]

2.循環(huán)語(yǔ)句

1.for 循環(huán) :重復(fù)執(zhí)行語(yǔ)句

語(yǔ)法格式:
(1).

for 變量 in 序列:
    語(yǔ)句1
    語(yǔ)句2
    ...

(2).

for 變量 in range(10):
    語(yǔ)句1
    語(yǔ)句2
    ...
else:
    循環(huán)體正常結(jié)束后接著執(zhí)行的語(yǔ)句

若在for循環(huán)體中執(zhí)行了break,直接跳出循環(huán),else后的語(yǔ)句不會(huì)被執(zhí)行。

舉栗子:
(1).累加1~100

sum = 0
for i in range(1,101):
    sum = sum + i
print(sum)

程序執(zhí)行結(jié)果為:
5050

(2).求1~100之間所有偶數(shù)的和;求1~100之間所有奇數(shù)的和

sum1=0
sum2=0
for i in range(2,101):
    if i%2 == 0:
        sum1+=i
    else:
        sum2+=i
print('1~100所有偶數(shù)和:%d\n1~100所有奇數(shù)和:%d' %(sum1,sum2))

(3).用戶輸入一個(gè)×××數(shù), 求該數(shù)的階乘; 如3!=321=6

sum3=1
x=int(input('請(qǐng)輸入階乘數(shù):'))
if x>0:
    for i in range(1,x+1):
        sum3*=i
    print('%d的階乘為:%d' %(x,sum3))
else:
    print('請(qǐng)輸入有效的數(shù)字!')

(4).輸入用戶帳號(hào)密碼,判定是否正確,連續(xù)三次錯(cuò)誤不可再次輸入

for i in range(3):
        name=input('請(qǐng)輸入帳號(hào):')
        passwd=input('請(qǐng)輸入密碼:')
        if name=='root' and passwd=='redhat':
                print('登陸成功!')
                break
        else:
                print('帳號(hào)或密碼錯(cuò)誤!')
else:
        print('輸入錯(cuò)誤次數(shù)達(dá)到三次,請(qǐng)稍后重試!')

程序測(cè)試執(zhí)行:
Pyton學(xué)習(xí)—循環(huán)語(yǔ)句

2.while 循環(huán):在給定的判斷條件為 true 時(shí)執(zhí)行循環(huán)體,否則退出循環(huán)體。

(1).

while 條件語(yǔ)句:
    滿足條件執(zhí)行的語(yǔ)句

(2).

while 條件語(yǔ)句:
    滿足條件執(zhí)行的語(yǔ)句
else:
    條件不滿足后執(zhí)行的語(yǔ)句

若在while循環(huán)體中執(zhí)行了break,直接跳出循環(huán),else后的語(yǔ)句不會(huì)被執(zhí)行。

舉栗子:
(1).計(jì)算累加1~100

  i = 1
while  i <=100:
    sum += i
    i += 1
print(sum)

程序執(zhí)行結(jié)果為:
5050
(2).模擬linux的shell

import os
cmd=''
while True:
    cmd=input('[root@host dir]#')
    if cmd=='exit':
        print('\n程序已經(jīng)退出cmd模式!\n')
        break
    elif cmd=='logout':
        print('\n已經(jīng)退出本程序!\n')
        exit()
    else:
        print('\n正在運(yùn)行命令:%s\n' %cmd)
        os.system(cmd)

程序測(cè)試執(zhí)行:
Pyton學(xué)習(xí)—循環(huán)語(yǔ)句
(3).求兩個(gè)數(shù)的最大公約數(shù)和最小公倍數(shù)

x,y=input('請(qǐng)輸入兩個(gè)數(shù)(以,分隔):').split(',')
x=int(x)
y=int(y)
min=x if x<y else y
max=x if x>y else y
if max%min==0:
    xmin=min
    xmax=max
else:
    i=int(min/2)
    while i > 0:
        if min%i==0 and max%i==0:
            xmin=i
            xmax=(x*y)/xmin
            break
        else:
            i-=1
print('最大公約數(shù):%d \n最小公倍數(shù):%d' %(xmin,xmax))

程序測(cè)試執(zhí)行:
Pyton學(xué)習(xí)—循環(huán)語(yǔ)句
(4).用while循環(huán)實(shí)現(xiàn)for循環(huán)的題(4)

count=0
while count<3:
    x,y=input().split(' ')
    if x=='root' and y=='westos':
        print('logined')
        break
    else:
        count+=1
else:
    print('3 times ')

程序測(cè)試執(zhí)行:
Pyton學(xué)習(xí)—循環(huán)語(yǔ)句
(5).猜數(shù)字游戲

import random
answer=random.randint(1,100)
count=1
guess=int(input('你有5次機(jī)會(huì),猜一猜這個(gè)100以內(nèi)的整數(shù)是:'))
while count<5:
    if guess==answer:
        print('nice!你猜對(duì)了,然而并沒(méi)有什么獎(jiǎng)勵(lì)!')
        break
    else:
        if guess > answer:
            print('你猜的數(shù)字有點(diǎn)大哦,加油!')
        else:
            print('你猜的數(shù)字有點(diǎn)小哦,加油!')
        print('你還有%d此機(jī)會(huì),在猜:' %(5-count),end="")
        guess=int(input())
        count+=1
else:
    print('豬啊,5次機(jī)會(huì)用完了!這個(gè)數(shù)是%d!' %answer)
3.while死循環(huán)
(1).bool值
while True:
    pass
(2).數(shù)值
while 1:
    pass
(3).永真條件
while 2>1:
    pass
向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI