Python:Python技巧之80個經(jīng)典題——課程筆記(一)
Python:Python技巧之80個經(jīng)典題——課程筆記(一)
【程序1】
題目:有1、2、3、4個數(shù)字,能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少?
【程序2】
題目:企業(yè)發(fā)放的獎金根據(jù)利潤提成。利潤(I)低于或等于10萬元時,獎金可提10%;利潤高于10萬元,低于20萬元時,低于10萬元的部分按10%提成,高于10萬元的部分,可可提成7.5%;20萬到40萬之間時,高于20萬元的部分,可提成5%;40萬到60萬之間時高于40萬元的部分,可提成3%;60萬到100萬之間時,高于60萬元的部分,可提成1.5%,高于100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤I,求應(yīng)發(fā)放獎金總數(shù)?
1?#Filename:002.py
2?i = int(raw_input('Enter the profit:'))
3?arr = [1000000,600000,400000,200000,100000,0]
4?rat = [0.01,0.015,0.03,0.05,0.075,0.1]
5?r = 0
6?for?idx in?range(0,6):
7?????if?i>arr[idx]:
8?????????r+=(i-arr[idx])*rat[idx]
9?????????print?(i-arr[idx])*rat[idx]
10?????????i=arr[idx]
11?print?r
【程序3】
題目:一個整數(shù),它加上100后是一個完全平方數(shù),再加上168又是一個完全平方數(shù),請問該數(shù)是多少?
【感謝12樓的同學peiqianggao提供代碼】
# -*- coding:utf-8 -*-
'''
Created on 2015-6-7
# 第三題:一個整數(shù),它加上100后是一個完全平方數(shù),再加上168又是一個完全平方數(shù),請問該數(shù)是多少
@author: Administrator
'''
import?math
num = 1
while?True:
if?math.sqrt(num + 100)-int(math.sqrt(num + 100)) == 0 and?math.sqrt(num + 268)-int(math.sqrt(num + 268)) == 0:
print(num)
break
num += 1
【程序4】
題目:輸入某年某月某日,判斷這一天是這一年的第幾天?
1?#author: 叛軍
2?import?datetime
3?import?time
4?dtstr = str(raw_input('Enter the datetime:(20151215):'))
5?dt = datetime.datetime.strptime(dtstr, "%Y%m%d")
6?another_dtstr =dtstr[:4] +'0101'
7?another_dt = datetime.datetime.strptime(another_dtstr, "%Y%m%d")
8?print?(int((dt-another_dt).days) + 1)
【程序5】
題目:輸入三個整數(shù)x,y,z,請把這三個數(shù)由小到大輸出。
【程序8】
題目:輸出9*9口訣。
1?for?i in?range(1,10):
2?????for?j in?range(1,i+1):
3?????????print?i,'*',j,'=',i*j,
4?????print?''
【程序11】
題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月
后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數(shù)為多少?
1?a = 1
2?b = 1
3?for?i in?range(1,21,2):
4?????print?'%d %d'%(a,b),
5?????a += b
6?????b += a
【程序12】
題目:判斷101-200之間有多少個素數(shù),并輸出所有素數(shù)。
1?#!/usr/bin/python
2?#-*- coding:utf-8 -*-
3?from?math import?sqrt
4?def?main():
5?????for?i in?range(101,201):
6?????????flag = 1
7?????????k = int(sqrt(i))
8?????????for?j in?range(2,k+1):
9?????????????if?i%j == 0:
10?????????????????flag = 0
11?????????????????break
12?????????if?flag == 1:
13?????????????print?'%5d'%(i),
14
15?if?__name__?== "__main__":
16?????main()
【程序13】
題目:打印出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個“水仙花數(shù)”,因為153=1的三次方+5的三次方+3的三次方。
1?#!/usr/bin/python
2?#-*- coding:utf-8 -*-
3?def?main():
4?????for?i in?range(100,1000):
5?????????a = i%10
6?????????b = i/100
7?????????c = (int(i/10))%10
8?????????if?i == a**3+b**3+c**3:
9?????????????print?"%5d"%(i),
10
11?if?__name__?== "__main__":
12?????main()
【程序14】
題目:將一個正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。
1?#!/usr/bin/python
2?#-*- coding:utf-8 -*-
3
4?def?main():
5?????n = int(raw_input('Enter a number:'))
6?????print?n,'=',
7?????while(n!=1):
8?????????for?i in?range(2,n+1):
9?????????????if?(n%i)==0:
10?????????????????n/=i
11?????????????????if(n == 1):
12?????????????????????print?'%d'%(i)
13?????????????????else:
14?????????????????????print?'%d *'%(i),
15?????????????????break
16
17
18?if?__name__?== "__main__":
19?????main()
【程序15】
題目:利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示。
1?#!/usr/bin/python
2?#-*- coding:utf-8 -*-
3?def?main():
4?????s = int(raw_input('Enter a number:'))
5?????if?s>=90:
6?????????grade = 'A'
7?????elif?s>=60:
8?????????grade = 'B'
9?????else:
10?????????grade = 'C'
11?????print?grade,
12
13?if?__name__?== '__main__':
14?????main()
【程序17】
題目:輸入一行字符,分別統(tǒng)計出其中英文字母、空格、數(shù)字和其它字符的個數(shù)。
1?#!/usr/bin/python
2?#-*- coding:utf-8 -*-
3?#there is no ++ operator in Python
4?import?string
5?def?main():
6?????s = raw_input('input a string:')
7?????letter = 0
8?????space = 0
9?????digit = 0
10?????other = 0
11?????for?c in?s:
12?????????if?c.isalpha():
13?????????????letter+=1
14?????????elif?c.isspace():
15?????????????space+=1
16?????????elif?c.isdigit():
17?????????????digit+=1
18?????????else:
19?????????????other+=1
20?????print?'There are %d letters,%d spaces,%d digits and %d other characters in your string.'%(letter,space,digit,other)
21
22?if?__name__?== '__main__':
23?????main()
【程序18】
題目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個數(shù)字。例如2+22+222+2222+22222(此時共有5個數(shù)相加),幾個數(shù)相加有鍵盤控制。
1?#!/usr/bin/python
2?#-*- coding:utf-8 -*-
3?def?main():
4?????basis = int(raw_input("Input the basis number:"))
5?????n = int(raw_input("Input the longest length of number:"))
6?????b = basis
7?????sum = 0
8?????for?i in?range(0,n):
9?????????if?i==n-1:
10?????????????print?"%d "%(basis),
11?????????else:
12?????????????print?"%d +"%(basis),
13?????????sum+=basis
14?????????basis = basis*10+b
15?????print?'= %d'%(sum),
16
17
18?if?__name__?== '__main__':
19?????main()
【程序19】
題目:一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為“完數(shù)”。例如6=1+2+3.編程
找出1000以內(nèi)的所有完數(shù)。
1?from?math import?sqrt
2?n = int(raw_input('input a number:'))
3?sum = n*-1
4?k = int(sqrt(n))
5?for?i in?range(1,k+1):
6?????if?n%i == 0:
7?????????sum += n/i
8?????????sum += i
9?if?sum == n:
10?????print?'YES'
11?else:
12?????print?'NO'
1?'''
2?【程序20】
3?題目:一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
4? 第10次落地時,共經(jīng)過多少米?第10次反彈多高?
5?'''
6?s = 100.
7?h = 50.0
8?for?i in?range(2,11):
9?????s += 2*h
10?????h /= 2
11?print?"the sum length of path:%f"%s
12?print?"the last height is:%f"%h
Python 數(shù)據(jù)結(jié)構(gòu)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。