版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
■ooi:數(shù)字組合
題目有四個(gè)數(shù)字:八2、3、4能組成多少個(gè)互不相同且無重復(fù)數(shù)字的三位數(shù)?各是多少?
程序分析遍歷全部可能,把有重復(fù)的剃掉。
total=0
foriinrange(I方):
forjinrange(lf5):
forkinrange(1.5):
if((i!=j)and(j!=k)and(k!=i)):
print(ijk)
total*=l
print(total)
12345678
簡(jiǎn)便方法用itertools中的pernutations即可@
importitertools
sum2=0
a=[l,2.3.4]
foriinitertools.permutations(a,3):
print(i)
sum2*=Iprint(sum2)
12345678
■002:“個(gè)稅計(jì)算”
題目企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤(rùn)提成。利潤(rùn)⑴低于或等于I。萬元時(shí),獎(jiǎng)金可提儂:利潤(rùn)高于I。萬
元,低于20萬元時(shí),低于10萬元的部分按10%提成,高于10萬元的部分,可提成7.55;20萬到40
萬之間時(shí),高于20萬元的部分,可提成5$:40萬到60萬之間時(shí)高于40萬元的部分,可提成帆60
萬到I。。萬之間時(shí),高于60萬元的部分,可提成L5*高于I。。萬元時(shí),超過I。。萬元的部分按居提
成,從鍵盤輸入當(dāng)月利潤(rùn)I,求應(yīng)發(fā)放獎(jiǎng)金總數(shù)?
程序分析分區(qū)間計(jì)算即可。
profit=int(input(Showmethemoney:'))
bonus=0
thresholds=[100000.100000.200000,200W0.400000]
rates=[0.10.075.0.050.030.0150.01]
foriinrange(Icn(threshoIds)):
ifprofit<=threshoIds[i]:
bonus^-=profit*rates[i]
profit=0
break
else:
bonus+=thresholds[i]*rates[i]
profit-=threshoIds[i]
bonus+=profit#rates[-l]
print(bonus)
14
*■003:完全平方數(shù)
題目一個(gè)整數(shù),它加上I。。后是一個(gè)完全平方數(shù),再加上攻又是一個(gè)完全平方數(shù),請(qǐng)問該數(shù)是
多少?
程序分析因?yàn)橄駥?duì)于指數(shù)爆炸來說實(shí)在太小了,所以可以直接省略數(shù)學(xué)分析,用最樸素的方
法來獲取上限:
n=0
while(n+l)**2-n*水=168:
n+=l
print(n+l)
85
123456789
思路是:最壞的結(jié)果是n的平方與(卅)的平方剛好差168?由于是平方的關(guān)系,不可能存在比這更
大的間隙。
至于判斷是否是完全平方數(shù),最簡(jiǎn)單的方法是:平方根的值小數(shù)為。即可。
結(jié)合起來:
n=0
whiIe(n*l)**2-n*n<=168:
n+=lforiinrange((n*I)**2):
ifi?n-s==int(i**n-wnnd(i+iAA)**ns=int(<i4iAA)**on-
print(i-100)
1234567
■°04:這天第幾天
題目輸入某年某月某日,判斷這一天是這一年的第幾天?
程序分析特殊情況,閏年時(shí)需考慮二月多加一天:
defisLeapYear(y):
return(y%400==0or(y%4==0andy%100!=0))
DofM=[0,31.28.31,30,31.30.31,31,30.31,30]
re$=Oyear=int(input(*Year:'))
month=int(input(Month:'))
day=int(input(day:))
ifisLeapYcar(year):
DofM[2]+=l
foriinrange(month):
rcs^=DofM[i]
print(res*day)
005:三數(shù)排序
題目輸入三個(gè)整數(shù)x.y.z,請(qǐng)把這三個(gè)數(shù)由小到大輸出。
程序分析練練手就隨便找個(gè)排序算法實(shí)現(xiàn)一下,偷懶就直接調(diào)函數(shù)c
raw=[]
foriinrange(3):
x=int(input('intSd:1%(1I))
raw.append(x)foriinrange(len(raw)):
forjinrange(ijen(raw)):
ifraw[i]>raw[j]:
rawfi]raw[j]=raw[j],raw[i]
raw2=[]
foriinrange(3):
x=int(inputCintSd:.%(i)))
print(raw)
raw2.append(x)
print(sorted(raw2))
1415161718
I006:斐波那契數(shù)列
題目斐波那契數(shù)列。
程序分析斐波那契數(shù)列(Fibo皿cisequence).從「開始,后面每一項(xiàng)等于前面兩項(xiàng)之和。圖方便就
遞歸實(shí)現(xiàn),圖性能就用循環(huán)。
#遞歸實(shí)現(xiàn)
defFib(n):
return1ifn<=2elseFib(n-l)¥ib(n-2)
print(Fib(int(input())))
#樸素實(shí)現(xiàn)
target:int(input。)
re$=0
a.b=l,/
foriinrange(target-I):
ab=ba+bprint(a)
007;copy
題目將一個(gè)列表的數(shù)據(jù)復(fù)制到另一個(gè)列表中。
程序分析使用列表[:],拿不準(zhǔn)可以調(diào)用copy模塊。
importcopy
#賦值
#淺拷貝
d=copy,copy(a)#淺拷貝
e=copydeepcopy(a)#深拷貝
aappend(5)
a(41.append('c*)print(a='.a)print(b=\b)print(c=c)print(d=\d)print(e=*e)
=======RESTART:F:\PyWorkspace\Python100\10OexampIes\007.py=======
a=[1,2,3.4.1aTbLc15]
b=[1,2,3,4.同b'JcI5]c=[L2,3.4,d=E2,3.4,『a'Jb丁c1]e=[1,2.3.4.[a:'b']]223
008:九九乘法表
題目輸出9”乘法口訣表。
程序分析分行與列考慮,共,行9列,i控制行,j控制列。
foriinranged.10):
forjinranged1):
print('Sd*^d=%2ld'%(i.end=>
privilo
1234
009:暫停一秒輸出
題目暫停一秒輸出.
程序分析使用模塊的slew。函數(shù)。
importtimeforiinrange(4):
print(str(int(time,time()))[-2:])
time,sleep(I)1234
PIO:給人看的時(shí)間
題目暫停一秒輸出,并格式化當(dāng)前時(shí)間,程序分析同。09.
importtimeforiinrange(4):
print(time,strftime(*%Y-Sm-%dtimc.localtimc(timc.time())))
time,sleep(I)
12345
0”:養(yǎng)兔子
題目有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長(zhǎng)到第三個(gè)月后每個(gè)月又
生一對(duì)兔子,假如兔子都不死,問每個(gè)月的兔子總數(shù)為多少?
程序分析我認(rèn)為原文的解法有點(diǎn)扯,沒有考慮3個(gè)月成熟的問題,人家還是嬰兒怎么生孩子?
考慮到三個(gè)月成熟,可以構(gòu)建四個(gè)數(shù)據(jù),其中:一月兔每個(gè)月長(zhǎng)大成為二月兔,二月兔變?nèi)?/p>
兔,三月兔變成年兔,成年兔(包括新成熟的三月兔)生等量的一月兔。
month=int(input(,繁殖幾個(gè)月?:))month」=1
month_2=0
month_3=0
month_elder=0
foriinrange(month):month_Imonth_2month_3montheIder=month_eIder-hnonth.Smonth_I<nonth_2month-elder+month_3
print("Sd個(gè)月共+month」-Tnonth_2-month_3-month_cldcr「對(duì)兔子,)
print('其中1月兔:monthJ)
print(,其中2月兔:\momh_2)
print]其中3月兔:)month_3)
print('其中成年兔:’,month_elderj1112
012:100到200的素?cái)?shù)
題目判斷刈.200之間有多少個(gè)素?cái)?shù),并輸出所有素?cái)?shù)。
程序分析判斷素?cái)?shù)的方法:用一個(gè)數(shù)分別去除2到sqrt(這個(gè)數(shù)),如果能被整除,則表明此
數(shù)不是素?cái)?shù),反之是素?cái)?shù)。用eke可以進(jìn)一步簡(jiǎn)化代碼.
importmath
foriinrangefl00*00):
flag=O
forjinrange(2round(math.sqr,:(i))+l):
ifi%j=O:
flag=l
break
ifflag:
continue
print(i)
printC\nSimplifythecodewithelse\n)foriinrange(100,200):
forjinrange(2.round(math.sqr-(i))4-|):
ifi%j=0:
break
else:
print(i)
92021
013:所有水仙花數(shù)
題目打印出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字立方和等于
該數(shù)本身。例如:⑸是一個(gè)“水仙花數(shù)”,因?yàn)?5月的三次方+5的三次方+3的三次方,
程序分析利用f。,循環(huán)控制1。。用9個(gè)數(shù),每個(gè)數(shù)分解出個(gè)位.十位,百位。
foriinrange(100.1000):
s=str(i)
one=int(s[-l])
tcn=int(s[-2])
hun=int(s[-3])
ifi=onc**3*tcn**3*hun**3:
print(i)
1234567
分解質(zhì)因數(shù)
題目將一個(gè)整數(shù)分解質(zhì)因數(shù)。例如:輸入9。.打印出9。=233畤。
程序分析根本不需要判斷是否是質(zhì)數(shù),從2開始向數(shù)本身遍歷,能整除的肯定是最小的質(zhì)數(shù)。
tarRet=int(input('輸入一個(gè)整數(shù):'))
print(targetj=end=2iftarget<0:
target=abs(target)
print(*-1?*,end=")
flag=0
iftarget<=l:
print(target)
flag=1
whiIeTrue:
ifflag:
break
foriinrange(2Jnt(target*I)):
iftarget%!==0:
print(%d*%iend=")
iftarget=i:
flag
break
print('*'.end=M)
target/=i
break
223242526
■015:分?jǐn)?shù)歸檔
題目利用條件運(yùn)算符的嵌套來完成此題:學(xué)習(xí)成績(jī)>=90分的同學(xué)用A表示,60-89分之間的用B表
示,60分以下的用C表示。
程序分析用條件判斷即可。
point6=int(input('輸入分?jǐn)?shù):’))
ifpoints>=90:
gradeA'
elifpoints<60:
grade=C
else:
grade=Bprint(grade)12345678
016:輸出日期
題目輸出指定格式的日期。
程序分析使用datetime模塊。
importdatetimeprint(datetime.date,t^day())print(datetime,date(2333,23))print(datetime.date,today(),strftimeC%c/%m/%Y'))
day=datetime.dated11I2.3)day=day.replace(year=day.year+22)print(day)128567
P17:字符串構(gòu)成
題目輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其它字符的個(gè)數(shù).
程序分析利用可”或for語句,條件為愉入的字符不為\n'O
d唱二…I("輸入字符串;”)皿=。riuni=0?pa=0ul>t=0furiinrunge(Ieri(bLring)).
ifstring[i].isspaceO:
spa+=l
elifstring[i].isdigit0:num+=l
clifstring[i].isalphaO:alp*=l
else:
nth^=l
printf*pace:\spa)print('digit:*,nun)print(*alpha:\alp)print(other:\oth)
P18:復(fù)讀機(jī)相加
題目求s=a+aa+aaa+aaaa+aa…a的值,其中a是一個(gè)數(shù)字。例如2.22+222+2222.22222(此時(shí)共有5個(gè)數(shù)相
加),幾個(gè)數(shù)相加由鍵盤控制。
程序分析用字符串解決。
ahnputC被加數(shù)字:
nhnHinpuH,力H幾次?:,))
foriinrange(n):
res+=int(a)
a+=a[0]
print('結(jié)果是res)
1234567
019:完數(shù)
題目一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為“完數(shù)”。例如6F+2+3.編程找出1000
以的所有完數(shù)。
程序分析將每一對(duì)因子加進(jìn)集合,在這個(gè)過程中已經(jīng)自動(dòng)去重。最后的結(jié)果要求不計(jì)算其本
身。
deffactor(num):
target=mt(num)
res:set0
foriinranged,num):
ifnumSi==0:
res.add(i)
res.add(nun/i)
returnresforiinrange(2.10C1):
ifi=sum(factor(i))-i:
print(i)
1112
■1020:高空拋物
題目一球從I。。米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在第1。次落地
時(shí),共經(jīng)過多少米?第1。次反彈多高?
程序分析無
high=200.
total=100
foriinrange(10):
high/=2
total+=high
print(high/2)print('總\total)1234567
021:猴子偷桃
題目猴子吃桃問題:猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不癮,又多吃了一個(gè)第二
天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半零一
個(gè)。到第10天早上想再吃時(shí),見只剩下一個(gè)桃子了。求第一天共摘了多少。
程序分析按規(guī)則反向推斷:猴子有一個(gè)桃子,他偷來一個(gè)桃子,覺得不夠又偷來了與手上等量
的桃子,一共偷了9天。
peach=Iforiinrange(9):
pcach=(peachyI)*2print(peach)1234
022:比賽對(duì)手
題目?jī)蓚€(gè)乒乓球隊(duì)進(jìn)行比賽,各出三人,甲隊(duì)為ahc三人,乙隊(duì)為三人。己抽簽決定比賽。
有人向隊(duì)員打聽比賽的。a說他不和x比,c說他不和x.z比,請(qǐng)編程序找出三隊(duì)賽手的。
程序分析找到條件下不重復(fù)的三個(gè)對(duì)手即可。
a-4et<['x7y7z'])b-setCfx'WFz[>c-wt(Cx7y7z'])c-set(Cx7z?))a-sctOx')foriina:
forjinb:
forkinc:
iflen(set((i,j.k):)=3:
printCa:%S,>:%5.c:%s,%(ijk))
^^323:畫菱形
題目打印出如下圖案(菱形):
***
*****
*******
*****
***
程序分析遞歸調(diào)用即可。
defdraw(num):
a=**(2*(4-num)+1)
print(a.center(9/1))
ifnum!二I:
draw(num-1)
print(a.center(9.'*))
draw(4)
1234567
024:斐波那契數(shù)列”
題目有一分?jǐn)?shù)存列;M,獎(jiǎng),驍,酩,,“621/13…求出這個(gè)數(shù)列的前2。項(xiàng)之和。
程序分析就是斐波那契數(shù)列的后一項(xiàng)除以前一項(xiàng)。
a=2.0
b=1.0
s=0
forninrange(1,21):
s+=a/b
a-b=a?b.a
print(s)
12345678
IH025階乘求和
題目求l+2!+3!+…+20!的和。
程序分析1+2”3!?…+20!=1+2(1*3(1+4(???20⑴)))res=l
foriinrange(20I.-I):
res=i*res+l
print(res)
1234
*■026:遞歸求階乘
題目利用遞歸方法求5!。
程序分析遞歸調(diào)用即可。
deffactorial(n):
returnn*factorial(n-l)ifn>lelse1print(factoriaI(5))
123
27:遞歸輸出
題目利用遞歸函數(shù)調(diào)用方式,將所輸入的5個(gè)字符,以相反順序打印出來。
程序分析遞歸真是蠢方法。
defrec(string):
ifIen(string)l=l:
rac(?tring(l?])
print(string[0],end*)rec(input(*stringhere:))123456
028:遞歸求等差數(shù)列
題目有5個(gè)人坐在一起,問第五個(gè)人多少歲?他說比第4個(gè)人大2歲。問第4個(gè)人歲數(shù),他說比
第3個(gè)人大2歲。問第三個(gè)人,又說比第2人大兩歲。問第2個(gè)人,說比第一個(gè)人大兩歲。最后
問第一個(gè)人,他說是I。歲。請(qǐng)問第五個(gè)人多大?程序分析就一等差數(shù)列。
defage(n):
ifn=l:
return10
return2*age(n-l)print(age(5))12345
反向輸出
題目給一個(gè)不多于5位的正整數(shù),要求:一、求它是幾位數(shù),二、逆序打印出各位數(shù)字。
程序分析學(xué)會(huì)分解出每一位數(shù),用字符串的方法總是比較省事。
n=int(input('輸入一個(gè)正整數(shù):,))
n=str(n)print(1%d位數(shù)%len(n))
1234
030:回文數(shù)
題目一個(gè)5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個(gè)位與萬位相同,十位與千位相
同。
程序分析用字符串比較方便,就算輸入的不是數(shù)字都。匕
n=input("隨便你輸入啥啦:")gb=len(n)-lflag=Truewhilea<b:
ifn[a]!=n[b]:
print]不是回文串,)flag=Falsebreak
ab=a+1b-1ifflag:
prints是回文串)1112
031:字母識(shí)詞
題目請(qǐng)輸入星期幾的第一個(gè)字母來判斷一下是星期幾,如果第一個(gè)字母一樣,則繼續(xù)判斷第二
個(gè)字母。
程序分析這里用字典的形式直接將對(duì)照關(guān)系存好。
wcckT={'h':Thursday'.
,ultuesday'}
wcekS=|a:*Saturday.
,ulSunday')
wcek=('t:weekT/
R*wnnkS
mTmonday'.
'wTwensday'.
T/fridayt)
a=wcck[str(input(1請(qǐng)輸入第位子母:'?.lower(H
ifa==weekTora==weekS:
print(a[str(input(請(qǐng)輸入第一位字位》lower。])
else:
print(a)
1415
032:反向輸出II
題目按相反的順序輸出列表的值。
程序分析無,
a=['one',*two*.'three']
12
033:列表轉(zhuǎn)字符串
題目按逗號(hào)分隔列表,
程序分析無。
L=[12345]
print(7.join{str(n)forninL))12
034:調(diào)用函數(shù)
題目練習(xí)函數(shù)調(diào)用。
程序分析無。
defheIIo0:
print(*HelIoWorld!1)
defheIIoAgain():
foriinrange(2):
heIlo()
if_namc_=*_main_he11oAgain()
12345678
■o35:設(shè)置輸出顏色題目文本顏色設(shè)置。
程序分析無。
classbcolors:
HEADER='\033[951n'
OKBLUE='\033[94m'
OKGREEN='\033[92m,
WARNING=\033[93m'
FAIL-\033[91m1
ENDC=\033[0m
BOLD='\033[lm
UNDERLINE=\033[4mprint(bcolors.WARNING+"警告的顏色字體?"+bcolors.ENOC)
"■036:算素?cái)?shù)
題目求I。。之的素?cái)?shù)。
程序分析用else執(zhí)行for循環(huán)的獎(jiǎng)勵(lì)代碼(如果for是正常完結(jié),非break)。
lo=int(input(卜限:1))
hi=int(input('上限:’))
foriinrange(Io.hi+I):
ifi>l:
forjinrange(2.i):
if(i*j)==0:
break
else:
print(i)
123456789
'■037:排序
題目對(duì)I。個(gè)數(shù)進(jìn)行排序。
程序分析同
raw二口
foriinrange(IO):
x=int(inputCintSd:?%(i)))
raw.append(x)foriinrange(len(raw)):
forjinrange(ijen(raw)):
ifraw[i]>raw[j]:
raw[i].raw[j]=raw[j]jraw[i]
print(raw)
11
038:矩陣對(duì)角線之和
題目求一個(gè)3*3矩陣主對(duì)角線元素之和,
程序分析無。
[345].
[456]
res=Oforiinrange(len(mat)):
res*=mat[i][i]
print(res)
12345678
■o39:有序列表插入元素
題目有一個(gè)已經(jīng)排好序的數(shù)組?,F(xiàn)輸入一個(gè)數(shù),要求按原來的規(guī)律將它插入數(shù)組中。
程序分析首先判斷此數(shù)是否大于最后一個(gè)數(shù),然后再考慮插入中間的數(shù)的情況,插入后此元素
之后的數(shù),依次后移一個(gè)位置。
115=(1,10400.100040000.100000]
n=int(input(insertanumber:*))Iis.append(n)foriinrange(lcn(lis)-l):
ifIis[i]>=n:
forjinrange(ijen(lis)):
IisO].Iis[-l]=lis[-1]JisD]
break
print(Iis)
123456789
*1040:逆序列表
題目將一個(gè)數(shù)組逆序輸出。
程序分析依次交換位置,或者直接調(diào)用reverse方法。
Iis=[1,10,100,1000,10000,100000]
foriinrange(int(Ien(Iis)/2)):
Iis[i]Jis[len(lis)-l-i]=lis[len(lis)-l-i]Jis[i]
print,第一種實(shí)現(xiàn):,)
print(lis)
115=[1,10,100.100040000.100000]
prints第—種實(shí)現(xiàn):)
Iis.reverse()
print(Iis)
1112
041:類的方法與變量
題目模仿靜態(tài)變量的用法。
程序分析構(gòu)造類,了解類的方法與變量,
defdummy():
i=0
print(i)
i+=l
classcis:
i=0
defdummy(self):
print(self,i)
self.i+=l
a=cIs()
foriinrange(50):
dummy()
a.dunny0
1415
■042:變量作用域
題目學(xué)習(xí)使用aut。定義變量的用法。
程序分析python中的變量作用域,
i=0
n=0
defdummy():
i=0
print(i)
i+二Idefdummy2():
gIobaIn
print(n)
n+=l
prints函數(shù)部的同名變量,)
forjinrange(20):
print(i)
dummy{)
i*=lprint(global聲明同名變量')
forkinrange(20):
print(n)
dummy2()
n+=10
920
。43:作用域、類的方法與變量
題目模仿靜態(tài)變量(stat⑹另一案例.
程序分析綜合?041和042o
classdumny:
num=l
defNum(scIf):
prinL('uIdbbdunmynum/.1T.riuni)
print('globalnum:1.num'self.num+=l
n=dtmny0
num=l
foriinrange(5):
num*=10
n.Num()
1112
,044:矩陣相加
題目計(jì)算兩個(gè)矩陣相加。
程序分析創(chuàng)建一個(gè)新的矩陣,使用面迭代并取出X和Y矩陣中對(duì)應(yīng)位置的值,相加后放到新矩
陣的對(duì)應(yīng)位置中。
X=[[12,7.3].
[4.5.6],
[7.8,9]]
Y=[[5,8,1],
[6.7,3),
45,9]]
res=[[O00]
[0.0.0).
[0.0,0]]
foriinrange(Ien(res)):
forjinrange(Ien(res[0])):
res[i]U]=X[i]U].Y[i]UJ
print(res)
141516
B1045:求和
題目統(tǒng)計(jì)1到100之和。
程序分析無
res=0
foriinrange(I.101):
res?二i
print(ree)
1234
■■()46:打破循環(huán)
題目求輸入數(shù)字的平方,如果平方運(yùn)算后小于50則退出。
程序分析無
whileTrue:
try:
n=float(input('輸入一個(gè)數(shù)字:,))
except:
Print(輸入錯(cuò)誤,)
continue
dn=n**2
print('其平方為:,.dn)
ifdn<50:
print(,平方小于50退出,)break
11
047:函數(shù)交換變量
題目?jī)蓚€(gè)變量值用函數(shù)互換。程序分析無
defcxc(arb):
return(b^)
a=0
b=10
ab=exc(a.b)
prim(a'b)
123456
,1048:數(shù)字比大小
題目數(shù)字比較。
程序分析無
a=int(inputCa))
b=int(input(b='))
ifa<b:
print(a<b)
elifa>b:
print(a>b)
else:
print(a=b)
12345678
IHHo49:Iambda
題目使用lambda來創(chuàng)建匿名函數(shù)。
程序分析無
Max=lambdaxy:x*(x>=y)+y*(y>x)
Min=lambdaxy:x*(x<=y)+y*(y<x)a=intIinputCI:*))
b=int(input(2:*))print(Max(a.b))
print(Min(a,b))
12345678
riOso:隨機(jī)數(shù)
題目輸出一個(gè)隨機(jī)數(shù)。
程序分析使用rand0m模塊。
importrandom
print(random,uniform(10.20))
12
"■051:按位與
題目學(xué)習(xí)使用按位與&0
程序分析0&0二0:041二0:140=0:
a=0o77print(a)b=a&3print(b)b=b&7print(b)
123456
P52:按位或
題目學(xué)習(xí)使用按位或I。
程序分析0|0=0:0|1=1:1|0=1;1|1=1a=0o77print(a|3)print(a|3|7)123
P53:按位異或
題目學(xué)習(xí)使用按位異或八。程序分析0,0=0;0*1=1:1,0=1;1*1=0a=0o77print(a,3)
printU*3*7)
123
"■054:位取反、位移動(dòng)
題目取一個(gè)整數(shù)a從右端開始的“7位。
程序分析可以這樣考慮:
⑴先使a右移4位。
⑵設(shè)置一個(gè)低4位全為,其余全為。的數(shù)。可用(。<<4)
⑶將上而二者進(jìn)行&運(yùn)算。
a=int(input('輸入一個(gè)數(shù)字:,))
b=0
b=-b
#10000
#1111
c=a?4
d=c&b
printCar\binfa))
printMbin(b))
print(*c:bin(c))
printCdz\binfd))
11
八?055:按位取反
題目學(xué)習(xí)使用按位取反?
程序分析~0=1:~1=0:
print(*234)
print("234)
12
「1056:畫圈
題目畫圖,學(xué)用circle畫圓形。
程序分析無。
fromtkinterimport?
canvas=Canvas(width=800height=600bg=yellow)
canvas,pack(expand:YES/fi11=BOTH)j=I
foriinrange(26):
canvas.crcate_oval{310-k.250-k310*k250+kwidth=l)
kf
j+=0.3
mainIoop0
“057:畫線
題目畫圖,學(xué)用line畫直線。
程序分析無。
if_name_=='_main_
fromtkinterimport*
canvas=Canvas(width=300,height=300bg='green')
canvaspack(expand=YES,fill=80TH)
xO=263
yO=263
yl=275
xl=275
foriinrange(19):
canvas,createdinefx0"0"0,1.widtH=I,fiIl-red)
xO=xO-5
yO=yO-5
xl=xl+5
yl=yl+5
xO=263
yl=275
yO=263
foriinrange(21):
canvas.crcatoJinefxO"O"O"IJi11='red')
xO+=5
yO+=5
yl+=5
mainioop()
223242526
■o58:畫矩形
題目畫圖,學(xué)用rectangle畫方形。
程序分析無。
if_name_='_main_
fromtkinterimport*
root=TkO
root.titlef"anvas')
canvas-Canvas(root,width-40),height=400.bg-'yellow")
xO=263
yO=263
yl=275
xl=275
foriinrange(19):
canvas.create」ectangIe(xO.yO.xl,yI)
xO-=5
yO-=5
+=5
yl.二5
canvas,pack()
root,mainIoop()
1415161718
-059:畫圖(11)題目畫圖,綜合例子。
程序分析//.
if_name_=*_main_
fromtkinterimport?
canvas=Canvas(width=300.height=300.bg=*green')canvas.pack(expand=YESji11=BOTH)
xO=150
yO=100
canvas.crcate_ova1(xO-10,yO-10rx0?10.yO?10)
canvas.create_ova1(xO-20,yO-20,xO?20,yO?20)
canvas.create_ova1(xO-50,y0-50,x0?50,y0?50)importmath
B=0.809
foriinrange(16):
a=2?math,pi/16?i
x=math.ceiIfxO?48*math,cos(a))
y=math,ceiI(yO+48?math,sin(a)*B)canvas.createJinefxO*O-*fi11=*red')
canvas.crcate_oval(xO-60,yO-60fx0?60.yO?60)
forkinrange(501):
foriinrange(17):
a=(2?math,pi/16)*i+(2*math.pi/180)*k
x=math,ceiI(xO+48*math,cos(a))
y=math,ceiI(yO+48?math,sin(a)?B)
canvas,createdine(KO,yO.xyfi11=*red')
forjinrange(51):
a=(2*math,pi/16)*i+(2*math,pi/180)?k-1
x=math,ceiI(xO+48*math,cos(a))
y=math,ceiI(yO+48*math,sin(a)?B)
canvas.create_line(x0.yO,x.y,fi11="red)
mainIoop()31
P60:字符串長(zhǎng)度
題目計(jì)算字符串長(zhǎng)度。
程序分析無,
s-zhangguanglOIprint(len($))12
061:輝三角
題目打印出輝三角形前十行。
程序分析無。
defgenerate(numRows):
r=[[l]J
foriinranged,numRows)
r.append(Iist(map(lambdax.y:x+y/0]+r[-1],r[-l]+[0])))
returnr[inumRows]
a=generate(10)
foriina:
print(i)
12345678
"1062:查找字符串
題目查找字符串。
程序分析無“
sI='aabbxuebixuebi
s2-ab
s3=xue
print(si.find(s2))
print(si.find(s3))
12345
'■063:畫橢圓
題目畫橢圓。
程序分析使用tkintero
if'main_
fromtkinterimport*
x=360
y=160
bottom=v-30
top=y-30
canvas=Canvas(width=400,height=600.bg='white*)
foriinrange(20):
canvas.crcatc_oval(250-top.250-bottom,250+top.250+botton)
top-=5
bottom*=5
canvas.pack0
mainioop()
14
l*|064:畫橢圓、矩形
題目利用ellipse和rectangle國(guó)圖
程序分析無.
if_name_==*_main_
fromtkinterimport*
canvas=Canvas(width=400,height=600.bg='white')
left=20
right=50
top=50
num=15
foriinrange(nun):
canvas.create_oval(250-right.250-left,250+right.250+left)
canvas,create.oval(250-20.250-top.250+20,250+top)
canvas.create_rectangIe(20-2?i,20-2*|,10?(i+2),10*(i+2))
right+=5
left+=5top+=10
canvas.packOmainIoop()
14151617
■o65:畫組合圖形題目一個(gè)最優(yōu)美的圖案。程序分析無。
importmath
fromtkinterimportclassPTS
def_init_(self):
self,x=0
self,y=0
points=[]dofLinoToDcmo():
screenx=400
screeny=400
canvas=Canvas(width=screen:*,height=screeny,bg='white')
AspectRatio=0.85
h=screenyw=screenxxcenter=w/2ycenter=h/2radius=(h-30)/(AspectRatio*2)-20step=360/MAXPTSangle
0.0
foriinrange(MAXPTS):
rads=angle?math,pi/180.0
P=PTSO
p.x=xcenter+int(math,cos(rads)*radius)
p.y=ycenter-int(math.sin(rads)*radius*AspectRatio)angle?=steppoints.append(p)
canvas.create_ovaI(>center-radius.ycenter-radius,xcenter+radius,ycenter+radius)
MAXPTS=15
foriinrunge(MAXPTS):
forjinrange(iJiAXPTS):
canvas.createdinef5ointstiJ.x*ointsliJ*pointsUJ.x*ointsQJ.y)
canvas.pack()mainloop()if_name_==*_main_
LineToOemo()
940
066:三數(shù)排序
題目輸入3個(gè)數(shù)a.b.c,按大小順序輸出。
程序分析同。。5。
raw=[]foriinrange(3):
x=int(input(intSd:.%(1)))
raw.append(x)foriinrange(I€n(raw)):
forjinronge(ijcn(raw)):
ifraw[i]>raw[j]:
raw[i].raw[j]=raw[j]raw[i]
print(raw)raw2=[]
foriinrange(3):
x=int(input('intSd:.%(i)))
raw2.append(x)
print(sorted(raw2))
1415161718
067:交換位置
題目輸入數(shù)組,最大的與第一個(gè)元素交換,最小的與最后一個(gè)元素交換,輸出數(shù)組。
Ii=[3,2萬,乙8.1.5]Ii[-I]Ji[Ii.index(min(Ii))]=li[Ii.index(min(li))],li[-I]m=Ii[0]
ind=li.index(max(Ii))
liF01=li[indl
Ii[ind)=mprint(Ii)
程序分析無。
068:旋轉(zhuǎn)數(shù)列
題目有n個(gè)整數(shù),使其前面各數(shù)順序向后移m個(gè)位置,最后m個(gè)數(shù)變成最前面的m個(gè)數(shù)
程序分析無。
fromcollectionsimport*
li=[l,2.3.4.5.6.7.8,9]
deq=de
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025廣西來賓市合山市社區(qū)矯正服務(wù)中心招聘見習(xí)人員1人備考題庫(kù)(12.22)及完整答案詳解1套
- 2026年自修復(fù)金屬材料項(xiàng)目公司成立分析報(bào)告
- 2026年戰(zhàn)略礦產(chǎn)儲(chǔ)備項(xiàng)目可行性研究報(bào)告
- 2026年智能蒸烤一體機(jī)項(xiàng)目公司成立分析報(bào)告
- 教育教學(xué)成果轉(zhuǎn)化制度
- 教師培訓(xùn)與發(fā)展規(guī)劃制度
- 2026年寒假紅領(lǐng)巾獎(jiǎng)?wù)聦?shí)踐活動(dòng)-騏驥馳騁勢(shì)不可擋
- 幼兒園幼小銜接制度
- 市政道路施工安全防護(hù)設(shè)施制度
- 配送公司的食品安全管理制度
- 大型電站鍋爐空氣預(yù)熱器漏風(fēng)控制細(xì)則
- 2026年湖南師大附中星城實(shí)驗(yàn)青石學(xué)校校聘教師招聘?jìng)淇碱}庫(kù)完整參考答案詳解
- 湖北省襄陽四中2026屆高三年級(jí)上學(xué)期質(zhì)量檢測(cè)五歷史試卷
- 城市社區(qū)工作者培訓(xùn)課件
- 2026年軍檢心理意志品質(zhì)測(cè)試題及詳解
- 供熱生產(chǎn)調(diào)度工崗前教育考核試卷含答案
- 實(shí)驗(yàn)題(專項(xiàng)練習(xí))教科版(2017秋)六年級(jí)科學(xué)上冊(cè)
- 2025江西南昌市安義縣林業(yè)局招聘專職護(hù)林員20人筆試備考題庫(kù)及答案解析
- 2026年煤礦礦長(zhǎng)證考試題庫(kù)及答案
- 危重病人營(yíng)養(yǎng)支持教案
- 《毛澤東思想概論》與《中國(guó)特色社會(huì)主義理論體系概論》核心知識(shí)點(diǎn)梳理及100個(gè)自測(cè)題(含答案)
評(píng)論
0/150
提交評(píng)論