999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Python之探秘凱撒密碼

2021-09-22 13:43:43何青波
關(guān)鍵詞:案例

何青波

【摘 要】本案例是以身邊事物入手,鼓勵(lì)學(xué)生多觀察生活、多思考,介紹了高中信息技術(shù)《可以復(fù)用的代碼》這一節(jié)課的案例背景、案例過(guò)程及案例反思;介紹了利用自定義函數(shù)進(jìn)行凱撒密碼加密的思路與過(guò)程。

【關(guān)鍵詞】案例;自定義函數(shù);密碼;密鑰;學(xué)生主體

【中圖分類號(hào)】G434 【文獻(xiàn)標(biāo)識(shí)碼】A

【論文編號(hào)】1671-7384(2021)09-062-03

案例背景

自定義函數(shù)雖然在粵教版教材中并未單獨(dú)拿出一節(jié)課來(lái)需要講授,但在學(xué)考和很多比賽中,都出現(xiàn)了自定義函數(shù)的身影,因此有必要拿出一節(jié)課講授自定義函數(shù),同時(shí)回顧之前所學(xué)內(nèi)容。由于凱撒密碼對(duì)每一次傳輸?shù)男畔⒍家M(jìn)行加密,即加密功能這一部分代碼是需要重復(fù)使用的,故可以通過(guò)探究學(xué)習(xí)自定義函數(shù)對(duì)凱撒密碼加密。

案例描述

1.情景模擬,課堂導(dǎo)入

為充分調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性,引起學(xué)生對(duì)編程學(xué)習(xí)的興趣,課前我隨機(jī)找到幾個(gè)學(xué)生,其中不乏性格外向、具有表演能力的學(xué)生,也有性格內(nèi)斂、需要多些表現(xiàn)機(jī)會(huì)的學(xué)生,告訴他們表演的主題為“上課傳紙條,紙條信息卻被老師截獲”,讓學(xué)生自導(dǎo)自演,進(jìn)行情景模擬再現(xiàn)。上課伊始,幾個(gè)學(xué)生的精彩出演,有意想不到的效果。此時(shí),我趁機(jī)拋出問(wèn)題讓學(xué)生思考:如何對(duì)紙條信息進(jìn)行加密,紙條即便被老師發(fā)現(xiàn)也不會(huì)獲取到任何有價(jià)值的信息?學(xué)生很活躍,很多學(xué)生都提到了加密,我順勢(shì)引出了最原始的加密方式—— 凱撒密碼,同時(shí)引出了本堂課的教學(xué)主題—— Python之探秘凱撒密碼。

2.視頻介紹“凱撒密碼”

班級(jí)里僅有少部分學(xué)生聽(tīng)說(shuō)過(guò)凱撒密碼,但對(duì)它加密的原理一知半解。為讓學(xué)生充分理解凱撒密碼加密的原理,我利用視頻介紹凱撒密碼的加密原理,并在視頻播放前讓學(xué)生帶著如下幾個(gè)問(wèn)題觀看視頻并思考:

(1)什么是明文和密文?

(2)什么是密鑰?它的作用是什么?

(3)用自己的語(yǔ)言組織一下凱撒密碼加密的原理是怎樣的?

學(xué)生對(duì)于密碼加密有著較高的求知欲,學(xué)習(xí)興趣濃厚,所以在觀看完視頻后,每個(gè)小組派了一名代表回答問(wèn)題。加密前的原始信息稱為明文,加密后的字母信息稱為密文,移位發(fā)生的偏移量稱為加密算法的密鑰。有了密鑰,發(fā)送方就可以將明文加密成密文發(fā)給接收方,接收方知道加密時(shí)使用的密鑰就可以將密文還原成明文,破譯出真正的密碼信息。凱撒密碼加密的原理是依次對(duì)明文中的每個(gè)字符依據(jù)密鑰按照字母表順序進(jìn)行一定的偏移,得到對(duì)應(yīng)的密文字符。

3.任務(wù)驅(qū)動(dòng),激發(fā)興趣

任務(wù)一:系統(tǒng)內(nèi)置函數(shù)實(shí)現(xiàn)凱撒密碼加密

“假設(shè)密鑰為2,將明文‘a(chǎn)加密轉(zhuǎn)換成密文的過(guò)程是怎樣的呢?讓我們一起畫(huà)出它的示意圖。”在Python里面,字符是不能直接與整數(shù)進(jìn)行相加運(yùn)算的,但計(jì)算機(jī)中的英文字符編碼統(tǒng)一采用的是ASCII編碼,所以順勢(shì)回顧了Python中可以用來(lái)查詢字符對(duì)應(yīng)ASCII的內(nèi)置函數(shù)ord()及可以用來(lái)查詢ASCII對(duì)應(yīng)字符的內(nèi)置函數(shù)chr(),并與學(xué)生合力畫(huà)出了示意圖,如圖1所示。有了示意圖,學(xué)生對(duì)凱撒密碼加密的原理理解得愈發(fā)深刻。

圖1? 凱撒密碼加密原理示意圖

“假設(shè)加密前的明文字符用x表示,加密后的密文字符用y表示,密鑰用變量offset來(lái)表示。請(qǐng)第一組和第二組的同學(xué)利用自然語(yǔ)言來(lái)描述凱撒加密算法,第三組和第四組的同學(xué)利用流程圖來(lái)描述凱撒加密算法。”這樣,老師與學(xué)生一起順勢(shì)回顧了算法描述的三種方法。而有了凱撒密碼加密的示意圖,同學(xué)們利用自然語(yǔ)言來(lái)描述凱撒加密算法基本都沒(méi)有什么問(wèn)題。但用流程圖來(lái)描述凱撒加密算法時(shí),學(xué)生因?yàn)閯偨佑|流程圖相關(guān)圖形及符號(hào),容易錯(cuò)用流程圖圖形。

之后將待全部完成的程序下發(fā)給學(xué)生,經(jīng)過(guò)剛才算法描述方法的學(xué)習(xí),學(xué)生基本能夠補(bǔ)充完整ord()和chr()函數(shù)完善程序。在按F5鍵運(yùn)行程序后,有學(xué)生提出疑問(wèn):“密鑰為2時(shí),‘y偏移2位后,程序運(yùn)行后得到的結(jié)果為什么是左花括號(hào)?”有其他同學(xué)通過(guò)翻閱課本上的ASCII表發(fā)現(xiàn),在ASCII表中,字符y往后移動(dòng)2位后,對(duì)應(yīng)的字符就是左花括號(hào)。“如果加密時(shí)超過(guò)了字符‘z,就需要從‘a(chǎn)重新開(kāi)始,即‘y偏移2位得到的字符應(yīng)該是a,我們把這種偏移方式叫做循環(huán)偏移。那如何實(shí)現(xiàn)循環(huán)偏移呢?”找三個(gè)同學(xué)A、B、C上講臺(tái)圍成一個(gè)圈做一個(gè)依次報(bào)1-20之間數(shù)字的游戲,之后隨機(jī)說(shuō)出1-20之間的一個(gè)數(shù)字,比如17,詢問(wèn)在座的同學(xué)們剛才報(bào)過(guò)17這個(gè)數(shù)字的是哪個(gè)同學(xué),同學(xué)們異口同聲回答B(yǎng)同學(xué)。隨機(jī)找個(gè)學(xué)生詢問(wèn)為什么是B同學(xué)?學(xué)生給出了用17除以總?cè)藬?shù)求余數(shù)的方法。這時(shí)同學(xué)們恍然大悟,開(kāi)始思考可以通過(guò)給26個(gè)小寫(xiě)英文字母重新編下號(hào),使用求余數(shù)的方法實(shí)現(xiàn)循環(huán)偏移。

任務(wù)二:自定義函數(shù)實(shí)現(xiàn)單個(gè)字符的加密

“假設(shè)加密前的明文字符編號(hào)為xid,加密后的密文字符編號(hào)為yid,密鑰用變量offset來(lái)表示。”學(xué)生可嘗試寫(xiě)出(xid+offset)%26獲得對(duì)小寫(xiě)字母的循環(huán)偏移值即yid的值。再次讓學(xué)生熟悉了ASCII表,同時(shí)回顧了求余思想及求余符號(hào)%。此時(shí)順勢(shì)讓學(xué)生思考:什么是函數(shù)?即完成某個(gè)會(huì)重復(fù)使用的特定功能或操作的程序就被稱為函數(shù),而這個(gè)函數(shù)如果是同學(xué)們自己定義的就被稱為自定義函數(shù)。老師用課件顯示自定義函數(shù)的格式,對(duì)其要點(diǎn)進(jìn)行講解,之后讓同學(xué)們將收到的循環(huán)偏移程序改寫(xiě)成帶自定義函數(shù)的程序。由于時(shí)間受限,最終只看了兩個(gè)學(xué)生完成的程序,讓其他同學(xué)幫助這兩個(gè)學(xué)生找出程序出現(xiàn)的錯(cuò)誤,同時(shí)再次概括使用自定義函數(shù)需要注意的問(wèn)題:一是應(yīng)用def來(lái)聲明自定義函數(shù),函數(shù)先聲明之后才能被調(diào)用;二是應(yīng)使用縮進(jìn)來(lái)表示函數(shù)體內(nèi)容,函數(shù)若有返回值時(shí),使用return語(yǔ)句返回函數(shù)的計(jì)算結(jié)果;三是理解圓括號(hào)中可以定義參數(shù),明確函數(shù)名及冒號(hào)的位置,起函數(shù)名稱時(shí)最好見(jiàn)名知意。

任務(wù)三:自定義函數(shù)實(shí)現(xiàn)對(duì)一段文本的加密

“發(fā)送方與接收方之間現(xiàn)在擬定如下規(guī)則:當(dāng)對(duì)明文字符串進(jìn)行加密時(shí),若該字符是小寫(xiě)字母就對(duì)其進(jìn)行加密,否則不加密。請(qǐng)同學(xué)們思考如何實(shí)現(xiàn)對(duì)一段文本的加密?”引導(dǎo)學(xué)生思考解決問(wèn)題的方法:

(1)把明文中的字符一個(gè)個(gè)拿出來(lái)進(jìn)行判斷(循環(huán)結(jié)構(gòu)for)。

(2)如果該字符是小寫(xiě)字母(選擇結(jié)構(gòu)if),就對(duì)其進(jìn)行加密(自定義的加密函數(shù)),否則就什么也不做。

(3)字符串的連接操作(+)。

之后讓同學(xué)們小組合作,上機(jī)嘗試完善半成品程序并展示。

def encode(x,key):? ? ? ? ?#單個(gè)字符的加密實(shí)現(xiàn)

xid = ord(x) - 97

yid = ————

y = chr(97 + yid)

return y

def text(str,key):? ? ? ?#文本的凱撒加密算法實(shí)現(xiàn),key為密鑰

result = ''

for i in str:? ? ? ? ? # i表示明文字符串str中依次獲取到的每個(gè)字符

if ————:? ? ? ? ?#如果i是小寫(xiě)字母

i =————

result += i? ? ? ? #字符串的連接操作

return result

print(text('Attack Tomorrow!',2),end="")

讓同學(xué)們根據(jù)完善好的程序思考:

(1)如果偏移量變成5,修改哪個(gè)地方?

(2)程序是從哪一句開(kāi)始執(zhí)行的?

(3)自定義函數(shù)有哪些優(yōu)點(diǎn)?

通過(guò)對(duì)這三個(gè)問(wèn)題的思考,學(xué)生基本可以自己總結(jié)出自定義函數(shù)的優(yōu)點(diǎn)。有的學(xué)生提到了模塊化;有的學(xué)生說(shuō)當(dāng)需要修改代碼時(shí),只需要修改一次代碼。對(duì)于正確的回答我給予了肯定,同時(shí)給出比較專業(yè)的術(shù)語(yǔ)“降低代碼的冗余度和代碼重用”,此時(shí)學(xué)生更容易理解術(shù)語(yǔ)。

4.總結(jié)鞏固,課堂升華

總結(jié)本課所學(xué)內(nèi)容,并用課件呈現(xiàn),同時(shí)展開(kāi)頭腦風(fēng)暴。“如何看待及更好地對(duì)信息進(jìn)行安全保護(hù)?”學(xué)生踴躍回答,有提到備份保護(hù)的,有提到用更安全加密方式的,學(xué)生進(jìn)一步感受到了安全保護(hù)的重要性。

課件呈現(xiàn)——可以復(fù)用的代碼:

(1)函數(shù)的分類:(系統(tǒng)內(nèi)置函數(shù)、自定義函數(shù))

(2)函數(shù)的定義:def 函數(shù)名(參數(shù)):

函數(shù)體

return 返回值

(3)函數(shù)的調(diào)用:函數(shù)名(參數(shù))

(4)函數(shù)的優(yōu)點(diǎn):降低代碼的冗余度和代碼重用。

案例反思

(1)要引導(dǎo)學(xué)生多對(duì)身邊事物進(jìn)行留意觀察,提出疑問(wèn),進(jìn)而想辦法去分析、解決問(wèn)題,強(qiáng)調(diào)理論與實(shí)踐相結(jié)合,這樣可以大大激發(fā)學(xué)生學(xué)習(xí)知識(shí)的興趣。

(2)在課堂上,要始終堅(jiān)持學(xué)生是學(xué)習(xí)的主體,教師不僅要教授知識(shí),還要注重對(duì)學(xué)生思想層面及價(jià)值觀的引導(dǎo)。比如讓學(xué)生認(rèn)識(shí)到加密及安全保護(hù)的重要性,從而讓學(xué)生在課堂上真正實(shí)現(xiàn)“在學(xué)中做、在做中創(chuàng)、在創(chuàng)中樂(lè)”。

(3)積極參加游戲和被給予肯定的同學(xué)往往在課堂上比往常更活躍些,所以要經(jīng)常對(duì)學(xué)生予以鼓勵(lì),增強(qiáng)學(xué)生的獲得感和自信心。

(4)整體來(lái)講,這是綜合實(shí)戰(zhàn)比較成功的一節(jié)課,學(xué)生不僅對(duì)之前學(xué)過(guò)的內(nèi)容做了很好的鞏固,同時(shí)也真正實(shí)現(xiàn)了寓教于樂(lè),也反映了學(xué)生具備較好的綜合素養(yǎng)。但因一節(jié)課的時(shí)間有限,本堂課只能讓學(xué)生在半成品作品基礎(chǔ)上進(jìn)行補(bǔ)充完善,學(xué)生上機(jī)實(shí)踐時(shí)間較短,影響了教學(xué)效果。

作者單位:山東濟(jì)南大學(xué)城實(shí)驗(yàn)高級(jí)中學(xué)

猜你喜歡
案例
案例點(diǎn)評(píng)
幼兒100(2023年36期)2023-10-23 11:41:48
THE STARSHIP CEDIA 2020案例大賽獲獎(jiǎng)案例
LAKERIDGE CEDIA 2020案例大賽獲獎(jiǎng)案例
案例4 奔跑吧,少年!
TWO VILLAS IN ONE CEDIA 2020案例大賽獲獎(jiǎng)案例
Superheroes CEDIA案例大賽優(yōu)秀案例
Smarter Homes Experience Centre CEDIA案例大賽優(yōu)秀案例
隨機(jī)變量分布及統(tǒng)計(jì)案例拔高卷
發(fā)生在你我身邊的那些治超案例
隨機(jī)變量分布及統(tǒng)計(jì)案例拔高卷
主站蜘蛛池模板: 亚洲精品无码人妻无码| 久久精品最新免费国产成人| 精品精品国产高清A毛片| 毛片最新网址| 免费亚洲成人| 日韩123欧美字幕| 伊人久久婷婷| 一区二区三区国产精品视频| 国产亚洲精品91| 制服丝袜一区二区三区在线| 中文字幕久久亚洲一区| 久久这里只有精品国产99| 亚洲第一在线播放| 激情综合图区| 欧美一级在线看| 中文字幕有乳无码| 亚洲二区视频| 婷婷亚洲视频| 亚洲日韩日本中文在线| 成人年鲁鲁在线观看视频| julia中文字幕久久亚洲| 久久人人97超碰人人澡爱香蕉| 国产微拍一区| 国产va在线观看| 免费人成视网站在线不卡| 91精品国产一区| 综合久久久久久久综合网| 九九久久99精品| 国产永久在线视频| 色屁屁一区二区三区视频国产| A级毛片无码久久精品免费| 日本三级欧美三级| 啪啪免费视频一区二区| 日韩精品少妇无码受不了| 国产精品女在线观看| 99热6这里只有精品| 国产精品思思热在线| 国产第八页| 91在线播放免费不卡无毒| 亚洲男人在线| 最新加勒比隔壁人妻| 日本不卡视频在线| 成人综合在线观看| 国产亚洲精品va在线| 美女免费精品高清毛片在线视| 日韩欧美高清视频| 国产高清精品在线91| 中文字幕有乳无码| 黑色丝袜高跟国产在线91| 国产亚洲精品精品精品| 青青草一区二区免费精品| 人人爱天天做夜夜爽| 国产一在线观看| 日本爱爱精品一区二区| а∨天堂一区中文字幕| 波多野衣结在线精品二区| 欧美激情网址| 欧美区一区| 亚洲精品波多野结衣| 日韩精品毛片人妻AV不卡| 99er这里只有精品| 亚洲国产精品一区二区高清无码久久 | 亚洲婷婷在线视频| 九九九精品成人免费视频7| 国精品91人妻无码一区二区三区| 午夜在线不卡| 国产亚洲欧美日韩在线观看一区二区| 亚洲综合亚洲国产尤物| 国产欧美亚洲精品第3页在线| 国产网站免费| 色婷婷狠狠干| 亚洲乱码在线播放| 久久综合久久鬼| 欧美亚洲一区二区三区导航| 欧美午夜在线观看| swag国产精品| 女人18毛片一级毛片在线| 毛片视频网址| 亚洲伊人天堂| 国产国产人成免费视频77777| 成人国产小视频| 最新亚洲人成无码网站欣赏网|