python循環(huán)練習題

注:復制代碼時注意縮進浑侥, 以免bug浮声。

1.四位玫瑰數(shù)是4位數(shù)的自冪數(shù)。自冪數(shù)是指一個 n 位數(shù)屋剑,它的每個位上的數(shù)字的 n 次冪之和等于它本身,求10000以內(nèi)的玫瑰數(shù)

for i in range(1000,10000):
    a=i//1000 #千位
    b=i//100%10 #百位
    c=i//10%10 #十位
    d=i%10 #個位
    if a**4+b**4+c**4+d**4==i:
        print(i,end=" ")

2.100以內(nèi)素數(shù)之和(素數(shù)也叫質(zhì)數(shù)孟抗。一個大于1的正整數(shù)迁杨,如果除了1和它本身以外,不能被其他正整數(shù)整除)

con=sum=0
for i in range(2,101):
    for j in range(2,i):
        if i%j==0:
            break
    else:
        print(i,end=" ")
        con+=1
        sum+=i
print("素數(shù)之和為:",sum)
print("共有",con,"個素數(shù)凄硼!")

3.使用*打印一個正方形

print("* "*6)
for i in range(3):
    print("*","*".rjust(9))
print("* "*6)

4.輸入一行字符,分別統(tǒng)計出其中的數(shù)字铅协、大小寫字母和其他字符,總個數(shù)

inp=input("請任意輸入:\n")
a=b=c=w=m=con=0
for i in inp:
    if i.isalpha():
        b+=1 #字母
        if i.isupper():
            w+=1 #大寫字母
        if i.islower():
            m+=1 #小寫字母
    elif i.isnumeric():
        a+=1 #數(shù)字
    elif i.isalnum()==0:
        c+=1 #非 數(shù)字或字母
    con+=1
print("數(shù)字:",a,"帆喇,字母:",b,"警医,其他字符:",c)
print("輸入總字符為:%d其中大寫字母有%d個,小寫字母有%d個坯钦。"%(con,w,m))

5.打印99乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print(str(j)+"*"+str(i)+"=",i*j,end=" ")
    print()
  1. 一個一萬以內(nèi)整數(shù), 加上100和加上268 以后都是一個完全平方數(shù), 請問該數(shù)是多少
import math
for i in range(10000):
    m = int(math.sqrt(i + 100))
    n = int(math.sqrt(i + 268))
    if m * m == i + 100 and n * n == i + 268:
        print(i)

7.求1000以內(nèi)水仙花數(shù): 如果一個3位數(shù)等于其各位數(shù)字的立方和,這個數(shù)就是水仙花數(shù)

for i in range(100,1000):
    a=int(i/100)
    b=int(i/10)%10
    c=i%10
    if a**3+b**3+c**3==i:
        print(i)

8.斐波那契數(shù)列指的是這樣一個數(shù)列 0, 1, 1, 2, 3, 5, 8, 13,特別指出:第0項是0预皇,第1項是第一個1。從第三項開始婉刀,每一項都等于前兩項之和吟温。
實現(xiàn)輸入需要顯示多少項數(shù),然后在程序輸出相應的斐波那契數(shù)列: 比如 輸入5 輸出 : 0突颊,1鲁豪,1潘悼,2,3爬橡。(使用一般方式治唤,遞歸,迭代或生成器三種方式)

n=int(input("請輸入打印的斐波那契數(shù)列個數(shù):"))
a, b = 0, 1
for i in range(n):
    a, b = b, a + b
    print(a, end=' ')
#-----------------------------------------------
inp=int(input("請輸入數(shù)字:\n"))
def dgc(n,a=0,b=1):
    if n==0:
        return b
    print(a,end=" ")
    return dgc(n-1,b,a+b)
dgc(inp)
#-----------------------------------------------
def fib(n):
    a,b,counter=0,1,0
    while True:
        if (counter>n):
            return
        yield a
        a,b=b,a+b
        conter=counter+1
n=int(input("請輸入你想要的數(shù)列長度:"))
f=fib(n)  #f 相當于一個迭代器,由生成器返回生成
for i in range(n):
    print(next(f),end=" ")

  1. 抓球問題糙申,5個紅球宾添,8個黑球,7個白球柜裸, 隨機取出10個缕陕, 且白球不少于2個黑球不大于3個, 計數(shù)可能的顏色組合
sun=0
for i in range(6): #紅球
    for j in range(9): #黑球
        for k in range(2,8): #白球
            if j<=3 and i+j+k==10:
                sun+=1
print("顏色組合為:%d"%sun)               

10.打印 等腰三角型(循環(huán)內(nèi)用一句代碼輸出)

for i in range(6):
    for k in range(5-i):
        print(" ",end=" ")
    for j in range(2*i+1):
        print("*", end=" ")
    print()

11.冒泡排序以下列表:li=[1,9,4,7,7,8,2,3,5,8,13,10,11]

li=[1,9,4,7,7,8,2,3,5,8,13,10,11]
for i in range(len(li)-1):
    for j in range(len(li)-1-i):
        if li[j]>li[j+1]:
            li[j+1],li[j]=li[j],li[j+1]
print(li)

12.做一個1-10 的列表,并分別取出偶數(shù)成為新的列表疙挺。

li=[]
li01=[]
for i in range(1,11):
    li.append(i)
print(li)
j=-1
while j<len(li)-2:
    j=j+2
    li01.append(li[j])
print(li01)

13.輸入年扛邑, 月 , 日 判斷此日期是當年的第幾天

date=input("請輸入你要輸入的日期(格式為20200202的八位數(shù)):\n")
if date.isnumeric() and len(date)==8:
    years=int(date[0:4])
    month=int(date[4:6])
    day=int(date[6:])
    #這是平年一年的月份天數(shù)
    cale=[31,28,31,30,31,30,31,31,30,31,30,31]
    con=i=0 #con為總天數(shù)
    if 0<month<=12:
        #判斷是否為閏年铐然,是則改第二月為29天
        if years%4==0 and years%100!=0 or years%400==0:
            cale[1]=29
        if day<=cale[month]: #判斷輸入的天數(shù)的月份在月份的天數(shù)內(nèi)
        #循環(huán)月份并算出月份和的天數(shù)
            while i<month-1:
                con+=cale[i]
                i+=1
            con+=day
            print(years,"年的第",con,"天")
        else:
            print("輸入天數(shù)錯誤蔬崩,退出!")
    else:
        print("輸入月份錯誤搀暑,退出舱殿!")
else:
    print("輸入格式錯誤,退出险掀!")

14.猜數(shù)字游戲, 系統(tǒng)隨機生成一個1000以內(nèi)的數(shù)字,用戶輸入一個數(shù)字, 如果輸入數(shù)字大于系統(tǒng)數(shù)字則提示大了,并統(tǒng)計猜的總次數(shù)湾宙。

import random #導入模塊
computer=random.randint(0, 1000) #生成隨機數(shù)
num=0 #統(tǒng)計猜的次數(shù)
while True:
    user=input("請輸入數(shù)字(退出:輸入e):\n")
    if user[0]=="e":
        break
    elif user.isnumeric():
        user=int(user)
        if computer>user:
            num+=1
            print("猜小了樟氢,重新猜。")
        elif computer<user:
            num+=1
            print("猜小了侠鳄,重新猜埠啃。")
        else:
            print("猜對了,通關伟恶!")
            break
    else:
        print("輸入格式碴开,重新開始!")
print("總共猜的次數(shù)為:",num)

15.已知有:user = ["aa","bb","cc"] ,passwd = ["111","222","333"]
模擬登陸:1博秫、從控制臺接受 用戶名和密碼:2潦牛、判斷 用戶名和密碼是否正確:如果正確提示登錄成功,如果錯誤提示錯誤的原因挡育。3巴碗、用戶名和密碼錯誤總共不能超過3次。

user=["aa","bb","cc"]
passwd=["111","222","333"]
k=None
count=0 #統(tǒng)計次數(shù)
while True:
    if count>=3: #開關
        print("輸入次數(shù)超過三次即寒!鎖定橡淆。")
        break
    use=input('請輸入用戶名:')
    if use in user:
        k=user.index(use) #取下標值
        while count<3:
            pwd = input('請輸入密碼:')
            if passwd[k]==pwd:
                print('登錄成功')
                exit(0)
            else:
                count+=1
                print('密碼錯誤')
    else:
        print('用戶名不存在')
        count+=1

#----------------------------------------------------------------------------
com=0 #統(tǒng)計次數(shù)
falg=1 #開關
while True:
    if com==3 and falg==0: #錯誤三次召噩,退出
        print("用戶名或者密碼錯誤三次,已鎖定逸爵。")
        break
    if falg==3: #登錄成功具滴,退出
        break
    use=input("輸入用戶名:")
    for i in range(len(user)):
        if use==user[i]: #判斷用戶名
            for j in range(len(passwd)):
                pwd=input("輸入密碼:")
                if passwd[i]==pwd: #判斷密碼
                    print("登錄成功!")
                    falg=3
                    break 
                else:
                    com+=1
                    print("密碼錯誤")
                if com==3:
                    falg=0
                    break 
        else:
            if falg==1 and i>=len(user): #判斷遍歷結(jié)束后师倔,確認沒此用戶
                com+=1
                print("用戶名錯誤构韵!")
            if com==3:
                falg=0


16.做一個nextdate程序?qū)崿F(xiàn)輸入一個日期,程序自動輸出這個日期后一天的日期.

date=input("請輸入你要輸入的日期(格式為20200202的八位數(shù)):\n")
if date.isnumeric() and len(date)==8:
    years=int(date[0:4])
    month=int(date[4:6])
    day=int(date[6:])
    #這是平年一年的月份天數(shù)
    cale=[31,28,31,30,31,30,31,31,30,31,30,31]
    if 0<month<=12:
        if years%4==0 and years%100!=0 or years%400==0: #閏年2月
            cale[1]=29
        if day<=cale[month-1]: #判斷輸入的天數(shù)的月份在月份的天數(shù)內(nèi)
            if month==12 and day==31: #判斷12月31日
                years+=1
                month=1
                day=1
                print("后一天為%d年1月1日"%years)
            elif day==cale[month-1]: #判斷月末(本月最后一天)
                month+=1
                day=1
                print("后一天為{0}年{1}月{2}日".format(years,month,day))
            else:
                day+=1
                print("后一天為%d年%d月%d日"%(years,month,day))  
        else:
            print("輸入天數(shù)錯誤,退出溯革!")
    else:
        print("輸入月份錯誤贞绳,退出!")
else:
    print("輸入格式錯誤致稀,退出冈闭!")
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市抖单,隨后出現(xiàn)的幾起案子萎攒,更是在濱河造成了極大的恐慌,老刑警劉巖矛绘,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件耍休,死亡現(xiàn)場離奇詭異,居然都是意外死亡货矮,警方通過查閱死者的電腦和手機羊精,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來囚玫,“玉大人喧锦,你說我怎么就攤上這事∽ザ剑” “怎么了燃少?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長铃在。 經(jīng)常有香客問我阵具,道長,這世上最難降的妖魔是什么定铜? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任阳液,我火速辦了婚禮,結(jié)果婚禮上揣炕,老公的妹妹穿的比我還像新娘趁舀。我一直安慰自己,他們只是感情好祝沸,可當我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布矮烹。 她就那樣靜靜地躺著越庇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪奉狈。 梳的紋絲不亂的頭發(fā)上卤唉,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天,我揣著相機與錄音仁期,去河邊找鬼桑驱。 笑死,一個胖子當著我的面吹牛跛蛋,可吹牛的內(nèi)容都是我干的熬的。 我是一名探鬼主播,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼赊级,長吁一口氣:“原來是場噩夢啊……” “哼押框!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起理逊,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤橡伞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后晋被,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體兑徘,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年羡洛,在試婚紗的時候發(fā)現(xiàn)自己被綠了挂脑。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡欲侮,死狀恐怖最域,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情锈麸,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布牺蹄,位于F島的核電站忘伞,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏沙兰。R本人自食惡果不足惜氓奈,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鼎天。 院中可真熱鬧舀奶,春花似錦、人聲如沸斋射。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至涧至,卻和暖如春腹躁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背南蓬。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工纺非, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赘方。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓烧颖,卻偏偏與公主長得像,于是被迫代替她去往敵國和親窄陡。 傳聞我的和親對象是個殘疾皇子炕淮,可洞房花燭夜當晚...
    茶點故事閱讀 45,926評論 2 361