日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python练习集100题(21-40)

發布時間:2025/3/21 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python练习集100题(21-40) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目21:兩個乒乓球隊進行比賽,各出3人。甲隊為a,b,c三人,乙隊為x,y,z三人。以抽簽決定比賽名單。有人向隊員打聽比賽的名單。a說他不和x比,c說他不和x、z比,請編程找出三隊比賽名單。

first_list=['x','y','z'] for?i?in?first_list:????????#i是a的對手,j是b的對手,k是c的對手for?j?in?first_list:if(j!=i):???????????for?k?in?first_list:if(k!=i)and(k!=j):if(i!='x')and(k!='x')and(k!='z'):print('a?pk?%s,b?pk?%s,c?pk?%s'?%(i,j,k)) 輸出結果:a?pk?z,b?pk?x,c?pk?y

題目22:有一分數序列:2/1,3/2,5/3,8/5,8/13,21/13...求出這個序列的前20項之和。

def?denominator(n):??????#定義分母if?n==1:return?1elif?n==2:return?2else:return?denominator(n-1)+denominator(n-2) sum_list=0 for?i?in?range(1,21):sum_list?+=denominator(i+1)/denominator(i)if?i==20:print('%d/%d'??%(denominator(i+1),denominator(i)),end='=')else:print('%d/%d'??%(denominator(i+1),denominator(i)),end='+') print(sum_list) 輸出結果: 2/1+3/2+5/3+8/5+13/8+21/13+34/21+55/34+89/55+144/89+233/144+377/233+610/377+987/610+1597/987+2584/1597+4181/2584+6765/4181+10946/6765+17711/10946=32.66026079864164

題目23:利用遞歸函數調用方法,將所輸入的5個字符,以相反順序打印出來。

def?reverse_string(i):if?i==string_len-1:??????????????#讀取到最后一個字符print(input_string[i],end='')else:reverse_string(i+1)??????????#反向輸出print(input_string[i],end='') input_string=input('請輸入字符串:') string_len=len(input_string) reverse_string(0) 輸出結果:請輸入字符串:abcdefghijkkjihgfedcba

題目24:有5個人坐在一起,問第五個人多少歲?她說比第四個人大2歲。問第四個人歲數,他說比第三個人大2歲。問第三個人,他又說比第二個人大2歲。問第二個人,說比第一個人大2歲。問最后一個人,她說是10歲。問第五個人多少歲。

def?get_age(num):???#遞歸計算if?num==1:return?10else:?return?2+get_age(num-1) var_gae=get_age(5) print('第一個人的年齡為:%d'??%var_gae) 輸出結果:第一個人的年齡為:18

題目25:給一個不多于5位的正整數,要求:一、求它是幾位數,二、逆序打印出各位數字。

def?rever_num(num):??????????????????????#遞歸輸出if?num==num_len-1:print(input_number[num],end='')else:rever_num(num+1)print(input_number[num],end='') input_number=input('請輸出數字:') num_len=len(input_number) print('該數字有%d?位'?%num_len) rever_num(0) 輸出結果:請輸出數字:54682該數字有5?位28645

題目26:《算經》中有這樣一個問題:今有雞翁一,值錢伍;雞母一,值錢三;雞鶵三,值錢一。凡百錢買雞百只,問雞翁、母、鶵各幾何?

for?i?in?range(21):??#i代表公雞for?j?in?range(34):#j代表母雞k=100-i-j????????#k代表小雞數量if(k%3==0)and?(i*5?+?j*3?+?k/3)==100:print('公雞%2d只,母雞%2d只,小雞%2d只'?%(i,j,k)) 輸出結果:公雞?0只,母雞25只,小雞75只公雞?4只,母雞18只,小雞78只公雞?8只,母雞11只,小雞81只公雞12只,母雞?4只,小雞84只

題目27:漢諾塔問題,寺院里有3根柱子,第一根有N個盤子,從上往下越來越大。方丈要求小和尚A1把這N個盤子全部移到第三根柱子上,在移動過程中,始終只能小盤子壓著大盤子,而且每一次只能移動一個盤子。

def?move(n,x,y,z):???if?n==1:print('%s--->%s'??%(x,z))????#當只有最后一個盤子時,a--->celse:move(n-1,x,z,y)????print('%s--->%s'??%(x,z))move(n-1,y,x,z)num=int(input('輸入盤子的數量:')) print('移動%d個盤子的步驟如下:'?%num) move(num,'a','b','c') 輸出結果:輸入盤子的數量:3移動3個盤子的步驟如下:a--->ca--->bc--->ba--->cb--->ab--->ca--->c

題目28:一年一度的歐洲杯比賽已經落幕,在其初賽階段采用循環制,設有n隊參加,初賽共進行n-1天,每對要求和其他各隊進行一場比賽,然后按照最后積分選拔進入決賽的球隊。要求每對每天只進行一場比賽,并且不能輪空。請安排比賽賽程。

a=[[0?for?col?in?range(9)]?for?row?in?range(9)]???#創建二維列表 def?gamecal(k,n):????????????????????#處理編號k開始的n個球隊if?n==2:a[k][1]=k??????#參賽球隊編號a[k][2]=k+1????#對陣球隊編號?a[k+1][1]=k+1??#參賽球隊編號a[k+1][2]=k????#對陣球隊編號else:gamecal(k,n//2)gamecal(k+n//2,n//2)for?i?in?range(k,k+n//2):for?j?in?range(n//2+1,n+1):a[i][j]=a[i+n//2][j-n//2]for?i?in?range(k+n//2,k+n):for?j?in?range(n//2+1,n+1):a[i][j]=a[i-n//2][j-n//2] j=2 m=int(input('參賽球隊數:')) for?i?in?range(2,9):j=j*2if?j==m?:break if?i>=8:print('參賽對數必須為2的整數次冪,并且不超過64') gamecal(1,m) print('編號',end='?') for?i?in?range(2,m+1):if?i==m:print('%2d天'?%(i-1))else:print('%2d天'?%(i-1),end='?') for?i?in?range(1,m+1):for?j?in?range(1,m+1):if?j==m:print('%4d'?%a[i][j],end='?')else:print('%4d'?%a[i][j],end='?')print(end='\n') 參賽球隊數:8 編號??1天??2天??3天??4天??5天??6天??7天1????2????3????4????5????6????7????8?2????1????4????3????6????5????8????7?3????4????1????2????7????8????5????6?4????3????2????1????8????7????6????5?5????6????7????8????1????2????3????4?6????5????8????7????2????1????4????3?7????8????5????6????3????4????1????2?8????7????6????5????4????3????2????1

題目29:編寫程序,實現輸入任意金額,可以由100、50、20、10、5、1、0.5、0.2、0.1這幾種面額組成。如找零68.9,可以由一張20塊、四張10塊、一張5塊、三張1塊、一張0.5、四張0.1組成。

parvalue=[10000,5000,2000,1000,500,100,50,10]??#找零的金額*100,方便計算 max_num=len(parvalue) num=[0,0,0,0,0,0,0,0] def?exchange(n):for?i?in?range(max_num):if(n>=parvalue[i]):num[i]?=n//parvalue[i]?n?-=parvalue[i]?*?num[i] input_number=float(input('請輸入要找零金額:')) input_number=int(input_number*100) exchange(input_number) print('%-6.2f元零錢的組成:'?%(input_number/100)) for?i?in?range(max_num):if?num[i]>0:print('%6.2f:%d張'?%(parvalue[i]/100,num[i])) 請輸入要找零金額:85.9 85.90?元零錢的組成:50.00:1張20.00:1張10.00:1張5.00:1張0.50:1張0.10:4張

題目30:八皇后問題,在8*8的國際象棋上擺放八個皇后,使其不能相互攻擊,即任意兩個皇后都不能處于同一行、同一列或同一對角線上。

solution=[x?for?x?in?range(8)]???#聲稱數組,每個元素代表每一行皇后應擺放的位置 N=8 sols=0 def?place(row,col):????for?j?in?range(row):??#錯誤擺放方式if?(row?-?j?==?solution[row]-solution[j])?or?(row?+?solution[row]==j+solution[j])?or?(solution[j]==solution[row]):return?0return?1 def?backtrack(row):global?sols????#方法總數if(N==row):sols?+=1for?k?in?range(N):if?k==N-1:print('%d?'?%solution[k])else:print('%d?'?%solution[k],end='')else:for?i?in?range(N):solution[row]?=iif(place(row,i)):backtrack(row+1) def?queens():backtrack(0)queens() print('共有方案:%d'?%sols) 輸出結果: ... 6?4?2?0?5?7?1?3? 7?1?3?0?6?4?2?5? 7?1?4?2?0?6?3?5? 7?2?0?5?1?4?6?3? 7?3?0?2?5?1?6?4? 共有方案:92

題目31:假設有一種29選7的彩票,每注由7個1-29的數字組成,且這7個號碼不能相同,編寫程序生成所有的組合。

MAXN=7???#每注彩票的位數 NUM=?29??#組成彩票的數字 num=[x?for?x?in?range(NUM)]??????????#29個數字 lottery=[x?for?x?in?range(MAXN)]?????#每一注彩票的號碼def?combine(n,m):for?i?in?range(m,n+1).__reversed__():lottery[m-1]=num[i-1]????????#保存一位數字if(m>1):combine(i-1,m-1)else:????????????????????????#m為1時輸出一注號碼for?j?in?range(0,MAXN).__reversed__():if?j==0:print('%d?'?%lottery[j])else:print('%d?'?%lottery[j],end='')for?i?in?range(NUM):num[i]=i+1 for?i?in?range(MAXN):lottery[i]=0combine(NUM,?MAXN) 輸出結果: ... 29?27?24?20?16?13?3? 29?27?24?20?16?13?2? 29?27?24?20?16?13?1? 29?27?24?20?16?12?11? 29?27?24?20?16?12?10? 29?27?24?20?16?12?9? 29?27?24?20?16?12?8? 29?27?24?20?16?12?7? ...

題目32:輸入一個數字,使用變成方式求出其平方根是多少。

import?math num=int(input('請輸入數字:')) if?num?<0:print('輸入的數字應該為正數') else:x0=num/2x1=(x0+num/x0)/2while?True:x0=x1x1=(x0+num/x0)/2if(math.fabs(x0-x1)>=1e-6):break print('計算結果:%f'??%x1) print('公式計算結果?%f'?%math.sqrt(num)) 輸出結果:請輸入數字:2計算結果:1.416667公式計算結果?1.414214

題目33:用計算機實現一個隨機1-100之間的數字,然后由用戶猜這個數字,根據用戶猜測的次數分別給出不同的提示。

from?random?import?randint n=randint(1,100) print('生成隨機數為%d'?%n) i=0 while?True:num=int(input('輸入你猜的數字1-100:'))i+=1if(num>n):print('錯誤,數字太大了!')elif(num<n):print('錯誤,數字太小了!')else?:print('回答正確')break print('一共猜了?%d?次。'?%i) if?i<=5:print('你太聰明了,這么快猜了出來!') else:print('還需要改進方法,以便更快才出來!') 輸出結果:生成隨機數為47輸入你猜的數字1-100:50錯誤,數字太大了!輸入你猜的數字1-100:46錯誤,數字太小了!輸入你猜的數字1-100:47回答正確一共猜了?3?次。你太聰明了,這么快猜了出來!

題目34:模擬算法解決'擲骰子游戲',根據用戶輸入的骰子數量和參賽人數,由計算機隨機生成每一粒骰子的點數,再累加到每一個算首的總數。

from?random?import?randint def?play(n):t=0m=0for?i?in?range(n):t=randint(1,6)m+=tprint('??第%d粒:%d'?%((i+1),t))print('??總點數為:%d'?%m)while?True:n=int(input('設置骰子數量(輸入0表示退出:)'))??#骰子數量if?n==0:breakc=int(input('輸入參賽人數(輸入0表示退出:)'))??#參賽人數if?c==0:breakfor?i?in?range(c):print('第%d位選手擲出的骰子為:'?%(i+1))play(n) 設置骰子數量(輸入0表示退出:)3 輸入參賽人數(輸入0表示退出:)4 第1位選手擲出的骰子為:第1粒:3第2粒:6第3粒:2總點數為:11 第2位選手擲出的骰子為:第1粒:5第2粒:6第3粒:5總點數為:16 第3位選手擲出的骰子為:第1粒:3第2粒:4第3粒:3總點數為:10 第4位選手擲出的骰子為:第1粒:6第2粒:4第3粒:2總點數為:12 設置骰子數量(輸入0表示退出:)

題目35:生成一個4*42維數組并將其順時針旋轉90

list_data=[[?row?for?row?in?range(4)]?for?col?in?range(4)] for?i?in?range(4):print(list_data[i])print('-------------------------') for?r_index,row?in?enumerate(list_data):for?c_index?in?range(len(row)):if?r_index?<?c_index?:temp=list_data[r_index][c_index]list_data[r_index][c_index]=list_data[c_index][r_index]list_data[c_index][r_index]=temp for?i?in?range(4):print(list_data[i]) 輸出結果:[0,?1,?2,?3][0,?1,?2,?3][0,?1,?2,?3][0,?1,?2,?3]-------------------------[0,?0,?0,?0][1,?1,?1,?1][2,?2,?2,?2][3,?3,?3,?3]

題目36:打印出楊輝三角形。??
1?
1 1?
1 2 1?
1 3 3 1?
1 4 6 4 1?
1 5 10 10 5 1??

num=int(input('輸入要生成的楊輝三角行數:')) triangle=[[?row?for?row?in?range(num)]?for?col?in?range(num)] for?i?in?range(num):triangle[i][0]=1triangle[i][i]=1for?i?in?range(2,num):for?j?in?range(1,i):triangle[i][j]=triangle[i-1][j-1]+triangle[i-1][j]for?i?in?range(num):for?j?in?range(i+1):if?j==i:print(triangle[i][j])else:print(triangle[i][j],end='?') 輸出結果: 輸入要生成的楊輝三角行數:10 1 1?1 1?2?1 1?3?3?1 1?4?6?4?1 1?5?10?10?5?1 1?6?15?20?15?6?1 1?7?21?35?35?21?7?1 1?8?28?56?70?56?28?8?1 1?9?36?84?126?126?84?36?9?1

題目37:有n個整數,使其前面各數順序向后移m個位置,最后m個數變成最前面的m個數。

def?move_list(n):print('原列表:',list_a)b=list_a[num-n:]print('需要移動的數:',b)for?i?in?range(num-n):b.append(list_a[i])print('移動后的列表:',b)num=int(input('輸入要生成的列表長度:')) list_a=[x?for?x?in?range(num)] move_m=int(input('要移動的長度:')) move_list(move_m) 輸出結果:輸入要生成的列表長度:15要移動的長度:4原列表:[0,?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14]需要移動的數:[11,?12,?13,?14]移動后的列表:?[11,?12,?13,?14,?0,?1,?2,?3,?4,?5,?6,?7,?8,?9,?10]

?題目38:有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。?

num=int(input('請問一共有多少人:')) list_num=[x?for?x?in?range(1,num+1)] print(list_num) quit_num=0?#出圈人數 k=0????????#計數3 i=0????????#計數數組 while(quit_num<len(list_num)-1):if(list_num[i]!=0):k+=1?if(k==3):??????????#數到三出局print('出局者:%d'??%list_num[i])?list_num[i]=0?quit_num+=1?k=0?i+=1if(i==len(list_num)):??#數到最后,重新數i=0? for?i?in?range(len(list_num)):?if(list_num[i]!=0):print("最后剩下的:%d"?%list_num[i])? 請問一共有多少人:15 [1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15] 出局者:3 出局者:6 出局者:9 出局者:12 出局者:15 出局者:4 出局者:8 出局者:13 出局者:2 出局者:10 出局者:1 出局者:11 出局者:7 出局者:14 最后剩下的:5

題目39:我們來玩一個數字游戲,我已經想好了一個三位數abc(a是百位,b是十位,c是個位)。并且告訴你acb、bac、bca、cab、cba的和是2012。你知道我所想的那個數是多少嗎?

for?i?in?range(100,1000):a=i//100b=(i%100)//10c=i%10sum_num=(a+b+b+c+c)*100+(c+a+c+a+b)*10+b+c+a+b+aif?sum_num==2012:print(i) 輸出結果: 208

題目40:神奇的125874,125874,125874*2=251748,125874和他的兩倍251748是由相同的數構成,位置不同而已; 求最小的x,使得x,2x,3x,4x,5x,6x的倍數所組成的數和本身一樣。

set_num=set()????#原數字組成的集合 set_numx=set()???#倍乘后組成的集合 n=1??????????????#起始數字 def?jud_num(num):for?i?in?str(num):set_num.add(i)???#原數字組成的集合?for?i?in?range(1,7):num_i=num*ifor?j?in?str(num_i):??set_numx.add(j)??#倍乘后組成的集合if??set_numx.issubset(set_num):set_numx.clear()else:?set_numx.clear()set_num.clear()return?0return?1 while?True:ret=jud_num(n)if?ret==1:print('該數字為:%d'?%n)for?i?in?range(1,7):print('%d*%d=%d'?%(n,i,n*i))breakn+=1 輸出結果:該數字為:142857142857*1=142857142857*2=285714142857*3=428571142857*4=571428142857*5=714285142857*6=857142
本文轉自 夢想成大牛 51CTO博客,原文鏈接:http://blog.51cto.com/yinsuifeng/1906088,如需轉載請自行聯系原作者

總結

以上是生活随笔為你收集整理的python练习集100题(21-40)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色婷婷av久久久久久久 | 欧美激情性做爰免费视频 | 亚洲激情国产 | 欧美日韩在线视频一区 | wwwwww日本| 亚洲伊人色 | 超碰精品在线观看 | 在线播放黄色网址 | 亚洲制服在线观看 | 日韩一区二区不卡 | 无码精品a∨在线观看中文 福利片av | 亚洲一区二区三区激情 | www.国产在线| 欧美三级在线观看视频 | 国产高清在线视频 | 91成人精品视频 | 91桃色视频在线观看 | 欧美日韩国产三区 | 久草视频福利在线 | 国产夜夜爽| 日本成人精品 | 影音先锋亚洲精品 | 国产稀缺真实呦乱在线 | 欧美视频在线观看一区二区 | 男人添女人荫蒂国产 | 欧美bdsm调教视频 | 国产又粗又猛又色又 | 男人天堂2014 | 中国av一区 | 亚洲五码av | 狠狠插影院| 日操夜操天天操 | 国产av无码专区亚洲av | 日韩av不卡在线 | 爱情岛论坛亚洲品质自拍视频 | 国产在线视频你懂得 | 中文字幕一二区 | 国产精品揄拍一区二区 | 欧美黑人添添高潮a片www | 色综合一区二区三区 | 久久久视频6r | 免费黄视频在线观看 | 国产豆花视频 | 青青草成人免费视频 | 中文字幕影院 | 金瓶狂野欧美性猛交xxxx | 在线只有精品 | 黑丝久久 | 日韩天堂视频 | 一区二区三区日韩欧美 | 黄色片在线免费观看视频 | 超碰97人人草 | 粉嫩av蜜桃av蜜臀av | 婷婷亚洲五月色综合 | 久久精品99久久久久久久久 | 国产精品成人3p一区二区三区 | 精品人妻一区二区三区香蕉 | av导航网 | 日本老年老熟无码 | 国产一二三在线 | 在线观看精品一区 | 国产精品成人在线观看 | 日韩作爱视频 | 欧美日韩不卡在线 | 亚洲中文一区二区三区 | 精品爱爱 | 亚洲欧美激情另类校园 | h片在线观看视频 | 亚洲尹人| 中文字幕 成人 | 日韩成人精品一区二区 | 天堂在线视频免费 | 色免费视频 | 欧美自拍视频在线观看 | 久久久97| 超碰av人人 | 欧美日韩五月天 | 亚洲国产成人精品无码区99 | 欧美一区二区激情视频 | 亚洲九九视频 | 91插插插插插 | 最新av免费观看 | 久久国产精品无码一区二区 | 亚洲AV成人无码精电影在线 | 热久久精品 | 国产一区二区三区免费 | 亚洲欧美不卡 | 99国产精品久久 | 在线观看福利片 | 这里只有精品999 | 色呦呦一区| 亚洲女人初尝黑人巨大 | 黄瓜视频在线观看污 | 欧美人禽杂交狂配 | av中文一区 | 欧美精品在线一区 | 亚洲v在线 | 久久久精品视频在线观看 | 国产成人黄色av |