电竞比分网-中国电竞赛事及体育赛事平台

分享

python習(xí)題(1

 Four兄 2019-08-30

【程序 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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

【程序 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

【程序 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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

【程序 6】
題目:用*號(hào)輸出字母 C 的圖案。

def printC():    print('    *****   ')    print('   **    *  ')    print('  **       ')    print('  **       ')    print('   **    *  ')    print('    *****   ')printC()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

【程序 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))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

【程序 8】
題目:輸出 9*9 口訣表。

for i in range(1,10):	for j in range(1,i+1):		print(f'{j}*{i}={i*j}',end=' ')	print()
  • 1
  • 2
  • 3
  • 4

【程序 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('')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

【程序 10】
題目:打印樓梯,同時(shí)在樓梯上方打印兩個(gè)笑臉。

#看不懂題
  • 1

【程序 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))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

【程序 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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

【程序 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ò)誤')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

【程序 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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

【程序 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=[]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

【程序 20】
題目:一球從 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10 次落地時(shí),共經(jīng)過多少米?第 10 次反彈多高?

a=100sum=100for i in range(1,10): sum+=a a/=2print(sum)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

【程序 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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

【程序 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]))
  • 1
  • 2
  • 3
  • 4
  • 5

【程序 23】
題目:打印出如下圖案(菱形)

nu = 1  # 開始值k = 2   # 變量值while nu >= 0:    print(int((7 - nu) / 2) * ' ' + '*' * nu)    nu += k    if nu == 7:        k = -k
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

【程序 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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

【程序 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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

【程序 26】
題目:利用遞歸方法求 5! 。

def num(a): if a==1: return 1 return a*num(a-1)print(num(5))
  • 1
  • 2
  • 3
  • 4
  • 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))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

【程序 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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

【程序 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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

【程序 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'))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

【程序 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('沒有此星期')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

【程序 32】
題目:Press any key to change color

  • 1

【程序 33】
題目:學(xué)習(xí) gotoxy() 與clrscr() 函數(shù)。

  • 1

【程序 34】
題目:練習(xí)函數(shù)調(diào)用

def hanshu(): print('調(diào)用函數(shù)')hanshu()
  • 1
  • 2
  • 3

【程序 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')
  • 1

【程序 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

【程序 37】
題目:對(duì) 10 個(gè)數(shù)進(jìn)行排序

l=[12,34,62,41,74,45,25,74,26,73]l.sort()print(l)
  • 1
  • 2
  • 3

【程序 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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

【程序 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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

【程序 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=' ')
  • 1
  • 2
  • 3

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多