iT邦幫忙

2021 iThome 鐵人賽

DAY 21
1
自我挑戰組

Python淺顯易懂的小教室系列 第 21

[Day_21]迴圈與生成式 - 練習題

費氏數列

費氏數列氏將第1項與第2項相加等於第3項,第2巷與第3項相加等於第4項,依此類推,初始化費氏數列的第1項為1且第2項為1,計算出前n項的費氏數列,n由使用者輸入。

HINT:使用「a,b = b,a+b」定義費氏數列的關係,第k+2項等於第k項加上第k+1項,使用for迴圈產生費氏數列。

#output
請輸入求第幾項費氏數列? 5
1 1
2 1
3 2
4 3
5 5

#input
num = int(input('請輸入求第幾項費氏數列? '))
a = 1
b = 1
print(1,a)
for i in range(2,num+1):
    a,b = b,a+b
    print(i,a)

產生字與自的出現次數的字典

使用「李白 長干行之一」的唐詩,找出每一個字與字出現次數,使用字當成「鍵」,出現次數當成「值」,且出現次數大於2次的字製作成字典,接著找出字典出現次數等於3的自製作成另一個字典。

HINT:使用字典生成式製作字典,使用函式count計算字的次數,函式set製作字的集合避免重複計算相同的字。

#output
{'十': 3, '不': 4, '一': 3}
{'十': 3, '一': 3}
#input
s='妾 髮 初 覆 額,折 花 門 前 劇 。\
郎 騎 竹 馬 來,繞 床 弄 青 梅 。\
同 居 長 干 里,兩 小 無 嫌 猜 。\
十 四 為 君 婦,羞 顏 未 嘗 開 。\
低 頭 向 暗 壁,千 喚 不 一 回 。\
十 五 始 展 眉,願 同 塵 與 灰 。\
常 存 抱 柱 信,豈 上 望 夫 臺 。\
十 六 君 遠 行,瞿 唐 灩 澦 堆 。\
五 月 不 可 觸,猿 聲 天 上 哀 。\
門 前 遲 形 跡,一 一 生 綠 苔 。\
苔 深 不 能 掃,落 葉 秋 風 早 。\
八 月 蝴 蝶 來,雙 飛 西 園 草 。\
感 此 傷 妾 心,坐 愁 紅 顏 老 。\
早 晚 下 三 巴,預 將 書 報 家 。\
相 迎 不 道 遠,直 至 長 風 沙 。'
d = {w:s.count(w) for w in set(s) if w!='\t' and w!='\u3000' and w!= ' 'and w!=','and w!='。' and s.count(w)>2}
print(d)
d = {k:v for k,v in d.items() if v==3}
print(d)

以上這兩個習題提供大家練習,
不懂得可以往前複習迴圈與生成式的文章喔!
/images/emoticon/emoticon05.gif


上一篇
[Day_20]迴圈與生成式 - (6)
下一篇
[Day_22]函式與遞迴_(1)
系列文
Python淺顯易懂的小教室30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言