|
【程序 1】 題目:有 1、2、3、4個(gè)數(shù)字,能組成多少個(gè)互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少? count=0for a in range(1,5): for b in range(1,5): for c in range(1,5): if a!=b and a!=c and b!=c: print('%d%d%d'%(a,b,c)) count+=1print('一共有%s個(gè)'%count)【程序 2】 題目:企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤(rùn)提成。利潤(rùn) (I) : 低于或等于 10 萬元時(shí),獎(jiǎng)金可提 10%; 高于 10 萬元,低于 20 萬元時(shí),低于 10 萬元的部分按 10%提成,高于 10 萬元的部分,可提成 7.5%; 20 萬到40 萬之間時(shí),高于 20 萬元的部分,可提成 5%; 40 萬到60 萬之間時(shí),高于 40 萬元的部分,可提成 3%; 60 萬到100 萬之間時(shí),高于 60 萬元的部分,可提成 1.5%, 高于 100 萬元時(shí), 超過 100 萬元的部分按 1%提成, 從鍵盤輸入當(dāng)月利潤(rùn) I ,求應(yīng)發(fā)放獎(jiǎng)金總數(shù)? mon=float(input('請(qǐng)輸入利潤(rùn)金額:'))mm=0.0#獎(jiǎng)金if mon>0 and mon<=10: mm=mon*0.1elif mon<20: mm=1+(mon-10)*0.075elif mon<40: mm=1+0.75+(mon-20)*0.05elif mon<60: mm=1+0.75+1+(mon-40)*0.03elif mon<=100: mm=1+0.75+1+1.2+(mon-60)+0.015elif mon>100: mm=1+0.75+1+1.2+(mon-100)*0.01else: print('輸入錯(cuò)誤')print('您的獎(jiǎng)金為:%s'%mm)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
【程序 3】 題目:一個(gè)整數(shù),它加上 100 后是一個(gè)完全平方數(shù),再加上 168 又是一個(gè)完全平方數(shù), 請(qǐng)問該數(shù)是多少? i=1while 1: if (i+100)**0.5%1==0 and (i+168)**0.5%1==0: print(i) break; i+=1【程序 4】 題目:輸入某年某月某日,判斷這一天是這一年的第幾天? # 思路:先判斷是否為閏年,這關(guān)系到 2 月份的天數(shù)。# 之后再根據(jù)月份值把前幾個(gè)月的天數(shù)累積加起來,最后再加上個(gè)“日”,就可以了。dat = input('請(qǐng)輸入某年某月某日,格式為 yyyy-mm-dd :')y = int(dat[0:4]) #獲取年份m = int(dat[5:7]) #獲取月份d = int(dat[8:]) #獲取日ly = Falseif y%100 == 0: #若年份能被100整除 if y%400 == 0: #且能被400整除 ly = True #則是閏年 else: ly = Falseelif y%4 == 0: #其它情況下,若能被4整除 ly = True #則為閏年else: ly = Falseif ly == True: #若為閏年,則2月份有29天 ms = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]else: ms = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]days = 0for i in range(1, 13): #從1到12逐一判斷,以確定月份 if i == m: for j in range(i-1): #確定月份i之后,則將ms列表中的前i-1項(xiàng)相加 days += ms[j] print('%s是該年份的第%s天。' % (dat, (days + d))) #最后再加上“日”,即是答案# 方法二import datetimey = int(input('請(qǐng)輸入4位數(shù)字的年份:')) #獲取年份m = int(input('請(qǐng)輸入月份:')) #獲取月份d = int(input('請(qǐng)輸入是哪一天:')) #獲取“日”targetDay = datetime.date(y, m, d) #將輸入的日期格式化成標(biāo)準(zhǔn)的日期print(targetDay - datetime.date(targetDay.year-1, 12, 31)) #減去上一年最后一天,可得解# 方法三import datetimey = int(input('請(qǐng)輸入4位數(shù)字的年份:')) #獲取年份m = int(input('請(qǐng)輸入月份:')) #獲取月份d = int(input('請(qǐng)輸入是哪一天:')) #獲取“日”targetDay = datetime.date(y, m, d) #將輸入的日期格式化成標(biāo)準(zhǔn)的日期dayCount = targetDay - datetime.date(targetDay.year - 1, 12, 31) #減去上一年最后一天print('%s是%s年的第%s天。'% (targetDay, y, dayCount.days))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
【程序 5】 題目:輸入三個(gè)整數(shù) x,y,z,請(qǐng)把這三個(gè)數(shù)由小到大輸出。 a=int(input('請(qǐng)輸入A的值:'))b=int(input('請(qǐng)輸入B的值:'))c=int(input('請(qǐng)輸入C的值:'))if a>b: a,b=b,aif a>c: a,c=c,aif b>c: b,c=c,bprint(a,b,c)【程序 6】 題目:用*號(hào)輸出字母 C 的圖案。 def printC(): print(' ***** ') print(' ** * ') print(' ** ') print(' ** ') print(' ** * ') print(' ***** ')printC()
【程序 7】 題目:輸出特殊圖案,請(qǐng)?jiān)?c 環(huán)境中運(yùn)行,看一看, Very Beautiful! a=176b=219print('%c%c%c%c%c'%(b,a,a,a,b))print('%c%c%c%c%c'%(a,b,a,b,a))print('%c%c%c%c%c'%(a,a,b,a,a))print('%c%c%c%c%c'%(a,b,a,b,a))print('%c%c%c%c%c'%(b,a,a,a,b))【程序 8】 題目:輸出 9*9 口訣表。 for i in range(1,10): for j in range(1,i+1): print(f'{j}*{i}={i*j}',end=' ') print()
【程序 9】 題目:要求輸出國(guó)際象棋棋盤。 for i in range(8): for j in range(8): if((i + j) % 2 == 0): print(chr(219)*2,end='') #因?yàn)橐B續(xù)打印一行,所以不能使用默認(rèn)的print函數(shù) else: print(' ',end='') print('')【程序 10】 題目:打印樓梯,同時(shí)在樓梯上方打印兩個(gè)笑臉。 #看不懂題
【程序 11】 題目:古典問題:有一對(duì)兔子,從出生后第 3 個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長(zhǎng)到 第三個(gè)月后每個(gè)月又生一對(duì)兔子,假如兔子都不死,問每個(gè)月的兔子總數(shù)為多少? while True: try: i = eval(input('請(qǐng)輸入月份:')) if type(i) == int and i <= 24: if i == 1 or i == 2: print('有2只兔子') break else: f1 = 1 f2 = 1 for f in range(3, i+1): f2, f1 =f1, f1 + f2 print('%d' % (f1*2)) break else: print('請(qǐng)輸入大于0的正整數(shù)') except: print('您輸入的是字符非法,請(qǐng)重新輸入:') continue- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
【程序 12】 題目:判斷 101-200 之間有多少個(gè)素?cái)?shù),并輸出所有素?cái)?shù)。 l=[ ]for i in range(101,200): for j in range(2,i-1): if i % j==0: break else: l.append(i)print(l)print('總數(shù)為:%d'%len(l))
【程序 13】 題目:打印出所有的“水仙花數(shù)” ,所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字立 方和等于該數(shù)本身。例如: 153 是一個(gè)“水仙花數(shù)”,因?yàn)?153=1 的三次方+5的三次方 +3的三次方。 for i in range(100,1000): a=int(i/100) b=int((i-(a*100))/10) c=int(i%10) if i==(a**3+b**3+c**3): print(i)【程序 14】 題目:將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入 90, 打印出 90=2* 3 * 3 * 5 。 #將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入 90, 打印出 90=2* 3 * 3 * 5 。a=int(input('請(qǐng)輸入一個(gè)數(shù):'))l=[]i=2print(a,'=',end='')if a<1: print('輸入數(shù)字錯(cuò)誤.')else: while 1: if a%i==0: print(i,'*',end='') l.append(i) a=a//i i=2 elif i==a-1: print(i+1) l.append(i+1) break else: i+=1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
【程序 15】 題目:利用條件運(yùn)算符的嵌套來完成此題:學(xué)習(xí)成績(jī) >=90 分的同學(xué)用 A 表示,60-89 分 之間的用 B 表示,60 分以下的用 C表示。 a=int(input('請(qǐng)輸入您的成績(jī):'))if a>=90 and a<=100: print('A')elif a>60: print('B')elif a>0: print('C')else: print('輸出錯(cuò)誤')【程序 17】 題目:輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其它字符的個(gè)數(shù)。 s=input('請(qǐng)輸入一個(gè)字符串:')dic={'letter':0,'integer':0,'space':0,'other':0}for i in s: if i > 'a' and i < 'z' or i > 'A' and i < 'Z': dic['letter'] += 1 elif i in '0123456789': dic['integer'] += 1 elif i == ' ': dic['space'] += 1 else: dic['other'] += 1print('統(tǒng)計(jì)字符串:',dic)print(dic)for i in dic: print('%s='%i,dic[i])
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
【程序 18】 題目:求 s=a + aa + aaa + aaaa + aa…a的值,其中 a 是一個(gè)數(shù)字。例如2+22+222+2222+22222(此時(shí),共有 5 個(gè)數(shù)相加) ,幾個(gè)數(shù)相加有鍵盤控制。 a=int(input('請(qǐng)輸入基數(shù):'))b=int(input('請(qǐng)輸入個(gè)數(shù):'))sum=0for i in range(b): sum+=a a=a+a*10print(sum)【程序 19】 題目:一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為“完數(shù)” 。例如 6=1+2+3。編 程找出 1000 以內(nèi)的所有完數(shù)。 for i in range(1,1001): sum = 0 l=[] for m in range(1,i): if i%m==0 and i!=m: sum+=m l.append(m) if sum==i: print(i,'its factors are',l) l=[]
【程序 20】 題目:一球從 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10 次落地時(shí),共經(jīng)過多少米?第 10 次反彈多高? a=100sum=100for i in range(1,10): sum+=a a/=2print(sum)【程序 21】 題目:猴子吃桃問題:猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不過癮,又多吃了一個(gè)第二天早上又將剩下的桃子吃掉一半, 又多吃了一個(gè)。 以后每天早上都吃了前一 天剩下的一半多一個(gè)。到第 10 天早上想再吃時(shí),見只剩下一個(gè)桃子了。求第一天共摘 了多少。 dl=1df=0for i in range(10): df = 2 * (dl + 1) dl = dfprint('第一天摘了%d個(gè)桃子:',df)
【程序 22】 題目:兩個(gè)乒乓球隊(duì)進(jìn)行比賽,各出三人。甲隊(duì)為 a,b,c 三人,乙隊(duì)為 x,y,z 三人。已 抽簽決定比賽名單。 有人向隊(duì)員打聽比賽的名單。 a 說他不和 x 比,c 說他不和 x,z 比, 請(qǐng)編程序找出三隊(duì)賽手的名單。 import itertoolsfor i in itertools.permutations('xyz'): if i[0] != 'x' and i[2] != 'x' and i[2] != 'z': print('a vs %s, b vs %s, c vs %s' % (i[0], i[1], i[2]))【程序 23】 題目:打印出如下圖案(菱形) nu = 1 # 開始值k = 2 # 變量值while nu >= 0: print(int((7 - nu) / 2) * ' ' + '*' * nu) nu += k if nu == 7: k = -k
【程序 24】 題目:有一分?jǐn)?shù)序列: 2/1 ,3/2 ,5/3 ,8/5 ,13/8 ,21/13… 求出這個(gè)數(shù)列的前 20 項(xiàng) 之和。 m=1n=2sum=0for i in range(20): sum+=n/m k=n n+=m m=kprint(sum)【程序 25】 題目:求 1+2!+3!+…+20! 的和 def num(n): if n==1: return 1 return n*num(n-1)sum=0for i in range(1,5): sum+=num(i)print(sum)
【程序 26】 題目:利用遞歸方法求 5! 。 def num(a): if a==1: return 1 return a*num(a-1)print(num(5))【程序 27】 題目:利用遞歸函數(shù)調(diào)用方式,將所輸入的 5 個(gè)字符,以相反順序打印出來。 string =input('請(qǐng)輸入一個(gè)字符串 :')def f(x): if x == -1: #當(dāng)變量的長(zhǎng)度是-1時(shí),返回 return '' else: #否則返回字符串的位置向后移1位,直到變量的長(zhǎng)度為-1 return string[x] + f(x-1)print(f(len(string)- 1))
【程序 28】 題目:有 5 個(gè)人坐在一起,問第五個(gè)人多少歲?他說比第 4 個(gè)人大 2 歲。 問第 4 個(gè)人歲 數(shù),他說比第 3 個(gè)人大 2 歲。 問第三個(gè)人,又說比第 2 人大兩歲。 問第 2 個(gè)人,說比第1個(gè)人大兩歲。 最后問第一個(gè)人,他說是 10 歲。請(qǐng)問第五個(gè)人多大? def age(s): if s==1: return 2 else: return 2+age(s-1)print(age(4)+10)【程序 29】 題目:給一個(gè)不多于 5 位的正整數(shù),要求:一、求它是幾位數(shù),二、逆序打印出各位數(shù)字。 def ben(num): if num//10000!=0: print('輸入錯(cuò)誤') else: while num!=0: n=num%10 l.append(n) num//=10num=int(input('請(qǐng)輸入一個(gè)不多于 5 位的正整數(shù):'))l=[]ben(num)print(l)
【程序 30】 題目:一個(gè)數(shù),判斷它是不是回文數(shù)。即 12321 是回文數(shù),個(gè)位與萬位相同,十位 與千位相同。 def hui_wen(s): # 基線條件 if len(s) < 2 : # 字符串的長(zhǎng)度小于2,則字符串一定是回文 return True elif s[0] != s[-1]: # 第一個(gè)字符和最后一個(gè)字符不相等,不是回文字符串 return False # 遞歸條件 return hui_wen(s[1:-1])print(hui_wen('abcdefgfedcba')) 【程序 31】 題目:請(qǐng)輸入星期幾的第一個(gè)字母來判斷一下是星期幾,如果第一個(gè)字母一樣,則繼續(xù) 判斷第二個(gè)字母。 w={'m':'Monday', 'tu':'Tuesday', 'w':'Wednesday', 'th':'Thursday', 'f':'Firday', 'sa':'Saturday', 'su':'Sunday', 't':'Tuesday/Thursday', 's':'Saturday/Sunday' }a=input('請(qǐng)輸入首字母或者2個(gè)字母:')if a in w.keys(): print(w[a])else: print('沒有此星期')
【程序 32】 題目:Press any key to change color 【程序 33】 題目:學(xué)習(xí) gotoxy() 與clrscr() 函數(shù)。 略
【程序 34】 題目:練習(xí)函數(shù)調(diào)用 def hanshu(): print('調(diào)用函數(shù)')hanshu()【程序 35】 題目:文本顏色設(shè)置 開頭部分: \033[顯示方式;前景色;背景色m + 結(jié)尾部分:\033[0m 注意: 開頭部分的三個(gè)參數(shù):顯示方式,前景色,背景色是可選參數(shù),可以只寫其中的某一個(gè);另外由于表示三個(gè)參數(shù)不同含義的數(shù)值都是唯一的沒有重復(fù)的,所以三個(gè)參數(shù)的書寫先后順序沒有固定要求,系統(tǒng)都能識(shí)別;但是,建議按照默認(rèn)的格式規(guī)范書寫。 對(duì)于結(jié)尾部分,其實(shí)也可以省略,但是為了書寫規(guī)范,建議\033[***開頭,\033[0m結(jié)尾。 數(shù)值表示的參數(shù)含義: **顯示方式: ** 0(默認(rèn)值)、1(高亮)、22(非粗體)、4(下劃線)、24(非下劃線)、 5(閃爍)、25(非閃爍)、7(反顯)、27(非反顯) 前景色: 30(黑色)、31(紅色)、32(綠色)、 33(黃色)、34(藍(lán)色)、35(洋 紅)、36(青色)、37(白色) 背景色: 40(黑色)、41(紅色)、42(綠色)、 43(黃色)、44(藍(lán)色)、45(洋 紅)、46(青色)、47(白色) 常見開頭格式: \033[0m 默認(rèn)字體正常顯示,不高亮 \033[32;0m 紅色字體正常顯示 \033[1;32;40m 顯示方式: 高亮 字體前景色:綠色 背景色:黑色 \033[0;31;46m 顯示方式: 正常 字體前景色:紅色 背景色:青色 print('\033[1;31;40m您輸入的賬號(hào)或密碼錯(cuò)誤!\033[0m')
【程序 36】 題目:求 100 之內(nèi)的素?cái)?shù) import mathfor i in range(1,101): k=int(math.sqrt(i)) for j in range(2,i): if i%j==0: break if j>k: print(i) break【程序 37】 題目:對(duì) 10 個(gè)數(shù)進(jìn)行排序 l=[12,34,62,41,74,45,25,74,26,73]l.sort()print(l)
【程序 38】 題目:求一個(gè) 3*3 矩陣對(duì)角線元素之和 sum=0n=[ [1,2,3], [2,3,4], [3,4,5]]for i in range(3): sum+=n[i][i]print(sum)【程序 39】 題目:有一個(gè)已經(jīng)排好序的數(shù)組?,F(xiàn)輸入一個(gè)數(shù),要求按原來的規(guī)律將它插入數(shù)組中。 l=[12,25,26,34,41,45,62,73,74]m=44for i in range(1,len(l)): if m<l[i]: l.insert(i,m) breakprint(l)
【程序 40】 題目:將一個(gè)數(shù)組逆序輸出。 l=[12,34,62,41,74,45,25,74,26,73]for i in range(1,len(l)+1): print(l[-i],end=' ')
|