輸入兩個正整數m與n, m>=n,計算C(m,n)。
輸入
5
3
輸出
10
寫一個程式輸入本金m、利率r、存幾年y。計算y年後本利和一共是多少錢。
公式m*(1+r)y。為了準確計算請使用decimal。
本金:40000
利率:0.07
存20年
的本利和
你的程式輸入/輸出要像這樣。
本金:100000
利率:0.06
存幾年:100
本利和:33930208.35144854913075581851
import decimal #試試下面的指令
m=input()
m=decimal.Decimal(m)
輸入
100000
0.06
100
輸出
本金:利率:存幾年:本利和:33930208.35144854913075581851
輸入以逗點(,)隔開的數字。計算共有多少數字。
例如:
輸入
123,456
輸出
2
輸入
123
輸出
1
輸入
123,456,789
輸出
3
輸入
123,456
輸出
2
輸入以逗點(,)隔開的數字。計算共有多少數字(浮點數)。
例如:
輸入
123,456
輸出
2
輸入
123
輸出
1
輸入
123,a,456,,789
輸出
3
輸入
123,546,234
輸出
3
輸入1個字串x與整數n,欄寬整數w,補空白(padding)字元p,使用formatter,依序對x與n
產生如測試範例4種顯示格式。
1.以欄寬w往右靠齊顯示x
2.以欄寬w往左靠齊顯示n
3.以欄寬w往中靠齊顯示x,要有補空白字元
4.以欄寬w往中靠齊顯示n,每千位一個,
輸入
abc
123456789
15
−
輸出
abc
123456789
–––abc–––
–123,456,789–
輸入
cdefgh
10000000
9
−
輸出
cdefgh
10000000
-cdefgh–
10,000,000
此處測資部分 '-' 皆為減號
輸入三個字串x,y,z,照順序輸出下面結果
1.輸出y是否出現在x裡(True/False)
2.輸出y第一次出現在x裡的足標,若沒有輸出-1
3.輸出x以','拆解後的結果 (a list)
4.將x裡前3個以,隔開的子字串以'–-'串接後輸出
5.檢查x開頭是否為y(True/False)
6.檢查x結尾是否為y(True/False)
7.將x轉大寫後輸出
8.將x裡每個全由英文字母構成的子字串開始的第一字轉大寫其他轉小寫
9.檢查y是否為全為數字(True/False)
10.將x裡所有的子字串y改為z
輸入
aa,bb,cc
bb
abcd
輸出
True
3
['aa', 'bb', 'cc']
aa–-bb–-cc
False
False
AA,BB,CC
Aa,Bb,Cc
False
aa,abcd,cc
寫1個Python程式使用sys模組,讀入一連串整數(一輸入列只有一個整數)直到EOF為止,輸出奇數的和與偶數的和。
範例:test.py
測試方式:
打開命令列視窗
在程式所在目錄python test.py
模組說明
輸入
123
456
789
1
0
輸出
odd:913 even:456
寫一個Python程式,應用eval函式,可以讀入下面字串,並做簡單運算,例如下面敘述
x<-3
y<-1
z<-(x+y)*5/x
print(z)
bye()
其中
輸入
x <-2
z <-cos(60)*x
print(z)
bye()
輸出
1.0000000000000002
使用input()分別輸入兩字串s與t。寫出對應的程式片段,回答對下面問題。
s共有幾個字(包含標點符號)?
s共有幾個不同的字(包含標點符號)?
若list_s=list(s),那麼如何從list_s兜成字串?
有哪些字在s與t都出現過(包含標點符號),由小到大逗點隔開輸出?
s與t共有多少不同的字(包含標點符號)?
有多少字只出現在s沒出現在t(包含標點符號)?
哪一個字在s與t出現次數最多(包含標點符號),輸出那個字與次數?
輸出格式: 字:次數 於單獨一列
輸入
蘋果一顆通常約為180-200克,熱量約92大卡,熱量相較其他水果不高,膳食纖維去皮的蘋果約2.3-3.4克,為中高膳食纖維水果,另也含鉀、維生素A、Beta胡蘿蔔素等營養。青蘋果的維生素A又多比紅蘋果來得更高。
整體而言,蘋果的各類營養多為「中高階」,但從綜合營養來看卻相當多元,且果皮植化素優異,對身體的幫助相當廣泛,這也是為什麼常聽到「一天一蘋果,醫生遠離我」。
輸出
106
65
蘋果一顆通常約為180-200克,熱量約92大卡,熱量相較其他水果不高,膳食纖維去皮的蘋果約2.3-3.4克,為中高膳食纖維水果,另也含鉀、維生素A、Beta胡蘿蔔素等營養。青蘋果的維生素A又多比紅蘋果來得更高。
。一中也來多常果為營生的皮相素蘋養高,
104
46
,:11
輸入一連串以逗點隔開的資料(字串)。請進行下面操作,並輸出結果:
(1)由小到大輸出,每項資料單獨一列。
(2)由大到小輸出,每項資料單獨一列。
(3)由大到小輸出唯一的資料於單獨一列。
輸入
1,2,2,3,4,5,6,7,8
輸出
1
2
2
3
4
5
6
7
8
8
7
6
5
4
3
2
2
1
8
7
6
5
4
3
2
1
寫一個程式輸入一個dict(此dict在第一個輸入列)。照順序執行下面操作:
key, value皆為數值型態。
1.輸出dict有多少元素於單獨一列。
2.讀入整數x,輸出x是否在此dict內(keys())於單獨一列 (True/False)。
3.讀入整數x,輸出key為x的值是否為0於單獨一列。(True/False/Notexisting (x若不在dict內))
4.讀入tuple x,將以x[0]為key,value為x[1]的元素,加入此dict。
5.由小到大輸出dict所有key (一個元素一列)。
6.由小到大輸出dict所有value (一個元素一列)。
7.由小到大輸出dict所有(key,value) (一個tuple一列)。
輸入
{1:5, 3:7, 8:9, 0:10}
7
4
(10,11)
輸出
4
False
Notexisting
0
1
3
8
10
5
7
9
10
11
(0, 10)
(1, 5)
(3, 7)
(8, 9)
(10, 11)
輸入以逗點隔開的一連串數字,並存放於一個list1裡。
試試 list1 = list(map(int,input().split(',')))
請對此list1做下面操作:
輸入
1,-1,2,-2,3,4,5,-6,7,-4,9,-20
輸出
0:1,1:-1,2:2,3:-2,4:3,5:4,6:5,7:-6,8:7,9:-4,10:9,11:-20
1:-1,2:-2,3:-6,4:-4,5:-20
輸入正整數x,使用list comprehension找出邊長a,b,c介於1與x(1<=a,b,c<=x)的直角三角形。格式必須是這樣[(a,b,c),…],a<=b<=c,(a,b,c)表示一個三角形的邊長。
Sample Output
若x為10,答案為[(3, 4, 5), (6, 8, 10)]。
輸入c,其中c在'A',…,'Z'。使用dict comprehension建立一個dict,'A',…,c的所有組合為key(排除空集合),value=組合元素個數
(hint: use itertools.combinations)
Sample Output
若c為'C',答案為{('A',): 1, ('B',): 1, ('C',): 1, ('A', 'B'): 2, ('A', 'C'): 2, ('B', 'C'): 2, ('A', 'B', 'C'): 3}
撰寫產生器stackperm(a),產生list a內元素以堆疊操作方式可以產生的所有排列,順序可以和例子不同但是個數要一樣。
Sample Output
for idx,i in enumerate(stackperm([1,2,3])):
print(idx,i)
會輸出:
0 [3, 2, 1]
1 [2, 3, 1]
2 [2, 1, 3]
3 [1, 3, 2]
4 [1, 2, 3]
製作修飾器@pretty,讓函式f1的輸出字串首尾會自動加上$記號。
寫一個generator, 其名稱及參數定如下:
def list_file_by_size(directory, n)
列出此目錄directory(包含子目錄)下所有檔案或目錄大小>=n bytes的完整檔案名稱(包含檔案路徑)。
輸入參數:目錄directory,及檔案大小n整數。
Return: yield (full_file_name, filesize)
Hint: os.walk, os.path.getsize
full_file_name指的是不管那個檔案是否和程式在同個目錄下,只要給full_file_name就可以找到它,即是:os.path.exists(full_file_name)為True。
如果在Windows以下面程式片段測試會顯示類似下面結果
for f in list_file_by_size("c:\users",1000000):
printf(f)
…
('c:\users\adm\.conda\envs\tf-gpu\Library\bin\cublas64_10.dll', 64257536)
…
寫一個程式輸入兩個時間格式為yyyy-mm-dd hh:mm:ss,計算他們
(a)差幾天,幾秒;
(b)差幾秒。
Hint: 使用datetime.datetime.strptime, timedelta.total_seconds()
例如
t1='2017-11-18 17:05:31'
t2='2013-11-18 17:05:31'
相差1461天
相差126230400秒
注意:由於datetime.timedelta表示時間差距會根據下面原則正規化
days, seconds and microseconds are normalized so that the representation is unique, with
因此這題計算時要求以較晚的時間-較早的時間。
輸入
2500-1-11 1:1:0
2500-1-12 1:1:1
輸出
1 1
86401
設計一個滿足下面操作的Rectangle class
使用範例:
#1
rect1 = Rectangle(0,0,10,10)
rect2 = Rectangle(10,10,10,10)
#2
print(rect1.area)
#3
rect3 = rect1 | rect2
print(rect3)
#4
rect4 = rect1 & rect2
print(rect4)
#5
print(rect1)
#6
print(rect1==eval(repr(rect1)))
使用範例輸出:
#2輸出:
100
#3輸出:
Rectangle: (0,0)-(20,20)
#4輸出:
Rectangle: (10,10)-(10,10)
#5輸出:
Rectangle: (0,0)-(10,10)
#6輸出:
True
上載至e-tutor程式樣板
設計函式distance(p1,p2)只要物件p1與p2有x,y屬性,就可以根據公式((p1.x-p2.x)**2+(p1.y-p2.y)**2)**0.5計算其距離,否則拋出AttributeError例外。
製做一個class myChain。你必須override __iter__
(or __iter__
+ __next__
)達到下面功能。
會輸出
1
2
3
4
5
6
6
7
8
上載至e-tutor的程式
請使用re寫出一個程式,其輸入一個字串,並可以正確計算如下字串裡()內整數總和。注意:若數字每千分位有',',那麼就要符合千分位格式
s='(1,234)5678(123)987(100,888,909)'
總和為:100890266
s='(1,234)5678(123)987(100,8888,909)'
總和為:1357
輸入
(1,234)5678(123)987(100,888,909)
輸出
100890266
輸入
(1,234)5678(123)987(100,8888,909)
輸出
1357
使用re輸入如下字串,
'大雄有3隻羊2條狗,小明有狗3隻雞2隻,小花有1頭牛3隻豬2隻雞狗5條。'
抽取出相關資訊來計算大雄、小明、小花共有幾隻羊、狗、雞、豬、牛(照順序輸出)。
輸入
大雄有3隻羊2條狗,小明有狗3隻雞2隻,小花有1頭牛3隻豬2隻雞狗5條。
輸出
羊:3
狗:10
雞:4
豬:3
牛:1