值得苦練的100道Python經(jīng)典練手題,(附詳細答案)建議收藏
100道Python經(jīng)典練手題奉上

花了一周的時間,整理了100道Python的練習(xí)題,如果你是一位初學(xué)者,那么這一份練習(xí)題將會給你帶來極大的幫助,如果你能夠完全獨立的完成這份練習(xí)題,你已經(jīng)入門的Python了,練習(xí)題涵蓋Python基礎(chǔ)的大部分內(nèi)容:【PDF文末拿!】
【程序 1】
題目:有 1、2、3、4個數(shù)字,能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少?
1.程序分析:可填在百位、十位、個位的數(shù)字都是 1、2、3、4。組成所有的排列后再去
掉不滿足條件的排列。
2.程序源代碼:
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if( i != k) and (i != j) and (j != k):
print i,j,k
【程序 2】
題目:企業(yè)發(fā)放的獎金根據(jù)利潤提成。利潤(0)低于或等于 10萬元時,獎金可提 10%;利潤高
于 10 萬元,低于 20 萬元時,低于 10萬元的部分按 10%提成,高于10萬元的部分,可可提
成7.5%;20萬到40萬之間時,高于20萬元的部分,可提成540萬60萬之間時高于
40萬元的部分,可提成3%60萬到100萬之間時,高于60萬元的部分,可提成1.5%,高于
100萬元時,超過100萬元的部分按 1%提成,從鍵盤輸入當(dāng)月利潤1,求應(yīng)發(fā)放獎金總數(shù)?
1.程序分析:請利用數(shù)軸來分界,定位。注意定義時需把獎金定義成長整型。
2.程序源代碼:
bonus1=100000*0.1
bonus2=bonus1+100000*0.500075 bonus4=bonus2+200000*0.5 bonus6=bonus4+200000*0.3 bonus10=bonus6+400000*0.15
i = int(raw_input('input gain:\n')) ifi<= 100000:
bonus=i*0.1 elifi <= 200000:
bonus = bonus1+(i-100000) *0.075 elifi <=400000:
bonus=bonus2+(i-200000)*0.05elifi<=600000:
bonus=bonus4+(i-400000)*0.03 elifi <= 1000000:
bonus=bonus6+(i-600000)*0.015 else:
bonus=bonus10+(i-1000000)*0.01 print'bonus=',bonus
【程序 3】
題目:一個整數(shù),它加上 100 后是一個完全平方數(shù),再加上 268 又是一個完全平方數(shù),請問該數(shù)是多少?
1.程序分析:在10萬以內(nèi)判斷,先將該數(shù)加上100 后再開方,再將該數(shù)加上 268后再開方,如果開方后
的結(jié)果滿足如下條件,即是結(jié)果。請看具體分析:
2.程序源代碼:
#include "math.h" main()
long int i,x,y,z;
for (i=1;i<100000;i++)
{x=sqrt(i+100); /*x 為加上 100 后開方后的結(jié)果*/
y=sqrt(i+268); /*y 為再加上 268 后開方后的結(jié)果*/
if(x*x==i+100&&y*y==i+268)/*如果一個數(shù)的平方根的平方等于該數(shù),這說明此數(shù)是完全平方數(shù)*/
printf("\n%ld\n",i);
import math
for i in range(10000):
#轉(zhuǎn)化為整型值
x=int(math.sqrt(i+100)) y= int(math.sqrt(i+ 268))
if(x * x == i+ 100) and (y*y == i + 268):
print i


獲取方式完整PDF版點我頭像私信“學(xué)習(xí)”
機器人自動發(fā)給大家?