初中信息技術(shù)-python編程【來吧-實戰(zhàn)練習】_第1頁
初中信息技術(shù)-python編程【來吧-實戰(zhàn)練習】_第2頁
初中信息技術(shù)-python編程【來吧-實戰(zhàn)練習】_第3頁
初中信息技術(shù)-python編程【來吧-實戰(zhàn)練習】_第4頁
初中信息技術(shù)-python編程【來吧-實戰(zhàn)練習】_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、初中信息技術(shù)python編程【來吧,實戰(zhàn)練習】我們已經(jīng)學習了程序的三中基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。并認識 了 Python中的數(shù)字、字符串、列表、元組、字典、集合等數(shù)字類型,接下來就利用學 習到的知識,解決問題吧!通過本章的學習,你將能夠掌握:復(fù)習if語句、for語句和while語句學會利用Python編寫小游戲并解決數(shù)學問題微工程1尋寶游戲“生命就是一場尋寶之旅,本來的你一無所有,為了得到更多的東西,你需要不斷 去尋找不單生命是一場尋寶之旅,在我們的生活中也有許多以尋寶為主題的游戲、 電影。在尋寶的過程中,我們會面臨著不同的選擇,不同的選擇背后又有著不同 的結(jié)果。為了能直觀的體驗

2、尋寶的過程,我們借助Python中學習到的選擇結(jié)構(gòu)進行實 現(xiàn),準備好了嗎?讓我們開始吧。通過本節(jié)的學習,你將掌握以下技能:復(fù)習if、if.elifelse語句的使用學會編寫文字尋寶游戲?qū)n}一:尋寶游戲VL0在編寫游戲之前,我們需要先設(shè)計尋寶游戲,接下來,我們設(shè)計一款以尋寶丟 失的鑰匙為主題的尋寶游戲。1.1游戲設(shè)計思路首先設(shè)定尋寶地點分別為教室、操場,喪失的鑰匙是在操場上,選擇不同的路徑 會出現(xiàn)不同的結(jié)果提示。第一步:首先讀入需要加密的字符串。為方便加密程序的編寫,在讀入完需要加密的字符串后,統(tǒng)一將字符串全部轉(zhuǎn)換為大寫。#愷撒密碼程序,對大寫字母進行加密處理message = input(請輸

3、入需要加密的字符串:)message = message.upper()output = 1程序中的變量message用于存儲讀入的需要加密的字符串,隨后調(diào)用upper。函數(shù) 將存儲到message中的字母全部轉(zhuǎn)換為大寫字母。upper。函數(shù)的作用是將字符串中的 小寫字母轉(zhuǎn)為大寫字母,如輸入字符str為力love Python,那么在調(diào)用str.upper。后, 字符串str就變成了“I LOVE PYTHON二變量output用于存儲加密后的密文。第二步:將message中的每一個字母在字母表上向后移動13個位置。在進行移位 的時候,要注意將字母轉(zhuǎn)換為數(shù)字后再進行計算,計算完成后需要將結(jié)果再

4、轉(zhuǎn)換成字 母。for letter in message:if letter.isupper():value=ord(letter)+13letter=chr(value)output=output+letterprirrt(,加密后的字符串為::output)因為輸入的字符串中可能包含空格、標點符號等,因此在借助for循環(huán)逐個訪問 message中的字符時需要借助isupper()函數(shù)判斷讀取到的字符是否為字母。如果讀取到 的字符為字母,那么就借助。7()函數(shù)將該字母轉(zhuǎn)換成對應(yīng)的ASCII值并進行移位計算。 隨后將計算結(jié)果借助chr()函數(shù)將結(jié)果再次轉(zhuǎn)換為字符。最后將加密后的字母連接起來 輸

5、出即可。第三步:通過前兩個步驟我們基本完成了明文的加密,但是程序中是否還存在問 題呢?比方字母對應(yīng)的ASCII值為85 ,當向后移13時,計算結(jié)果為98 ,通過查詢 ASCII表可以知道加密后的字符為“b”。顯然此時加密的密文出現(xiàn)了字母表A-Z之外的 字符,因此我們需要對超出范圍的數(shù)值進行處理。以字母U為例,“U”的ASCII的值為85 ,當后移13位時,移到了字母b處,此 時已經(jīng)超出了大寫字母表范圍。但是通過觀察,我們可以發(fā)現(xiàn),把字母b向前移26位 (字母表中有26個字母)即為字母U后移13位時的正確位置。因此,當位移后的字 符超出大寫字母表時,只需要將該字符向前移26位即可。a|b|c|d

6、|e|f|gMi|j|k|l|m|n|o|p|q|r|s|tMv|w|x|y|z| |八|卜|tt for letter in message:if letter.isupper():value=ord(letter)+13letter=chr(value)if not letterisupper():value=ord(letter)-26letter=chr(value)output=output+letterprint(加密后的字符串為:output)程序中在對移位后的數(shù)值轉(zhuǎn)換為字符后,又借助了 if語句判斷計算后的字符是否 為大寫字母,如果是那么輸出,否那么說明此時的字符已經(jīng)超出了大寫

7、字母表,那么將該字 符前移26位??刂婆_請輸入需要加密的字符串:工love Python ! 加密后的字符串為:V YBIR CLGUBA!小試牛刀加密的過程我們已經(jīng)學習過了,那么你知道要如何解密嗎?當位移量為-5時,加密程序要如何編寫呢? 鞏固與提升1、下面程序的循環(huán)次數(shù)是()for i in range(l,10,2):print(i)A、4B、5Cs 6D、72、編寫一個接受句子的程序,并計算大寫字母和小寫字母的數(shù)量。假設(shè)為程序提供了以下輸入:Hello world!然后,輸出應(yīng)該是:大寫字母數(shù):1 小寫字母數(shù):9微工程3折紙測珠峰世界上最高的山是什么山?珠穆朗瑪峰。珠穆朗瑪峰總高884

8、8米,是喜馬拉雅山 脈的主峰,也是世界上海拔最高的山峰,很多人都對它仰慕著、充滿著幻想,想一睹 它的真容,特別是攀登愛好者,更想去挑戰(zhàn)它。而生活中的紙隨處可見,一張普通A4 紙的厚度大概只有0.08毫米,和最高峰的高度比起來微缺乏道,其實他們之間的差距 并不算大,因為他們只差27次對折,這到底是怎么回事呢?讓我們開始今天的學習吧。通過本節(jié)的學習,你將掌握以下技能:*復(fù)習while循環(huán)的使用*理解for循環(huán)和while循環(huán)的區(qū)別問題分析假設(shè)一張紙的厚度為0.08毫米,紙的大小無限大,那么請問對折多少次紙的厚度 可以到達珠穆朗瑪峰的高度(8848米)?這就是有名的折紙測珠峰問題。從問題中我們可以知

9、道,初始時紙的厚度為0.08毫米,對折一次,紙的厚度變?yōu)?0.16毫米,再對折一次,紙的厚度變?yōu)?.32毫米,在對折一次,紙的厚度變?yōu)?.64毫 米假設(shè)紙的厚度為s ,那么每次對折后的紙的厚度會為原來的2倍,即2Xs ,珠穆朗 瑪峰的高度我們用h表示,那么只要sh ,我們就要不停的折紙,直至紙的高度到達珠 穆朗瑪峰的高度。為了更清晰的展示這個問題,我們用圖表述這一過程。開始從圖中可以看出,折紙的過程更適合用while循環(huán)實現(xiàn)。因為折紙的次數(shù)是由珠穆 朗瑪峰的高度決定的,而當前折紙次數(shù)是不明確的,因此當循環(huán)次數(shù)不確定時,我們 用while循環(huán)控制程序的運行。編程實現(xiàn)第一步:初始化變量。從問題分析

10、中得知,需要存儲的數(shù)值有紙的高度、珠穆朗 瑪峰的高度以及對折的次數(shù),在初始化時要注意,珠穆朗瑪峰的高度要轉(zhuǎn)換為毫米。VII假設(shè)一張紙的厚度為008毫米,紙的大小無限大, 3那么請問對折多少次紙的高度可以到達珠穆朗瑪峰的高度(8848米)?S = 0.08h = 8848000count = 0程序中的變量s為紙的厚度,初始厚度為0.08毫米,變量h為珠穆朗瑪峰的高度, 變量count用來統(tǒng)計折紙的次數(shù),其值是從。開始累計的。在程序開始時,count值是定要賦值,否那么程序會出現(xiàn)命名錯誤。第二步:借助while循環(huán)實現(xiàn)折紙次數(shù)的統(tǒng)計。每對折一次紙的厚度就變成原來的 兩倍,折紙次數(shù)增加lowhil

11、e s h:s = 2*scount=count+lprint(,折紙次數(shù)為:count)程序中循環(huán)結(jié)束的條件為sh ,為什么不是S= h呢?通過分析可以知道,當紙的 厚度沒有到達珠穆朗瑪峰高度時,我們就需要對折紙。因此While循環(huán)的條件是sh。 當紙的厚度到達珠穆朗瑪峰高度時,將折紙次數(shù)輸出。控制臺折紙次數(shù)為:27 程序運行結(jié)束折紙測珠峰反響的是幾何級增長問題,幾何級增長就是成倍數(shù)增長,也稱為爆炸 式增長,用數(shù)學術(shù)語來說就是A的n次幕的增長,類似與通常說的“翻番”,例如:2、 4、6、8、16、32、64的數(shù)學表示就是2; 2 2 2 2 26。在剛剛過去的 新型冠狀病毒疫情期間,大家需要

12、居家隔離的原因也在于此,在絕對理想狀態(tài)下(1 個患者1小時感染1個健康人),那么在出現(xiàn)第一例新冠肺炎感染者的36小時后,全 世界60億人口都會被感染。拓展提高1、小芳的媽媽每天給她2.5元錢,她都會存起來,但是每當這一天是存錢的第5 天或者5的倍數(shù)的話,她都會花去6元錢,請問,經(jīng)過多少天,小芳才可以存到100 元錢。請編程實現(xiàn)。2、有1020個西瓜,第一天賣掉總數(shù)的一半后又多賣出兩個,以后每天賣剩下的 一半多兩個,問幾天以后能賣完?請編程實現(xiàn)。微工程4 BMI計算#BM工指數(shù)計算系統(tǒng)flag=y1while flag!=,n,:name=input (請輸入測試者姓名:”)weight=flo

13、at(input(請輸入測試者體重(kg):,) height = float (input (請輸入測試者身高(m):,) bmi=weight/height*2if bmi=18.5 and bmi23.9:| print(name/的體重正常,繼續(xù)保持!,)else:print(name, 1的體重偏重,需要加強鍛煉哦!,)flag=input(1是否繼續(xù)計算下一個?(y/n),)微工程5計算階乘和信息學奧賽題目#階乘之和a=int(input()res=0for i in range(la+l):s = 1for j in range(li+l): s=s* jres=res+spri

14、nt(res)微工程6質(zhì)數(shù)口袋 信息學奧賽題目#假如有一個口袋只能裝質(zhì)數(shù),但是質(zhì)數(shù)的總和不能超過L,請列出可以裝的質(zhì)數(shù) import math def isPrime(y):for i in range(2,int(math.sqrt(y)+l): if(y%i=0):return Falsereturn Trueweight=int(input()L=0;num=2;count=0while L =2: if(isPrime(num) = True):|L += num if(Lweight):breakprint(num) count+=lnum += 1 print(count)從上圖中

15、我們可以看到,當開始游戲后,會出現(xiàn)2個可供選擇的地點:教室和操 場,如果選擇教室,那么會出現(xiàn)提示“沒有鑰匙”,如果選擇的是操場,那么出現(xiàn)提示“找 到鑰匙”,這是非常典型的條件結(jié)構(gòu),下面我們開始編寫程序吧。1.2尋寶游戲初實現(xiàn)第一步:在程序一開始要輸入提示信息,告知玩家這是一個尋找鑰匙的游戲,隨 后給出可供選擇的兩個地點:教室和操場,并進行編號。#尋寶游戲print。糟糕,鑰匙不見了,你會去哪里尋找?)print( 1.教室).操場,)第二步:給出可供選擇的地點后,就需要等待用戶輸入了。程序中我們借助變量 place獲取用戶的選擇,當輸入為1時,給出提示“沒有鑰匙”;當輸入為2時,提示我 到鑰匙

16、” ;1、2之外的輸入,統(tǒng)一提示“隨便行動是找不到喪失的鑰匙的! 。這一過程 在實現(xiàn)時可以用過if.el if.else進行實現(xiàn)。place = int(input(,請輸入地點的數(shù)字編號:.)if place = 1:print沒有鑰匙,)elif place=2:print(找到鑰匙,)else:|print。隨便行動是找不到喪失的鑰匙的!,)專題二:尋寶游戲進階通過專題1的學習,我們已經(jīng)實現(xiàn)了簡單版的尋寶游戲,接下來我們可以進擴展尋寶游戲,讓尋寶游戲更好玩。增加游戲關(guān)卡我們可以為游戲設(shè)置多層的關(guān)卡,比方中選擇教室時,出現(xiàn)信息提示“同學A在學 習”,隨后出現(xiàn)選項:1 .找同學A幫助一起找,

17、2.不要打攪他,還是自己找。選擇1那么 提示“在同學A的幫助下找到了鑰匙”,選擇2提示為“教室太大了,沒有找到二增加 的功能如下列圖所示。從上圖中我們可以看到,找到鑰匙的途徑有2個,一個是在教室中找同學A幫助, 此時可以找到鑰匙;另外一個途徑是在操場上阻止亂丟垃圾的同學B,然后在B同學 身上找到鑰匙。當然你也可以僅保存一條找到鑰匙的途徑。尋寶游戲?qū)崿F(xiàn)步驟1 :首先我們先完成教室局部的功能。從圖2.1中我們可以看到,中選擇教室 時,也會出現(xiàn)兩個不同的選項,因為我們需要在選擇了教室后,再次使用ifelifelse語句進行結(jié)果的判斷。7 if place = 1:891011121314151617

18、print(,同學A在學習)prinHl.找同學A幫助一起找,)print。2.不要打攪他,還是自己找,)place_l = irrt(input(請輸入數(shù)字編號:)if place_l=l:在同學A的幫助下找到了鑰匙Delif place_l=2:print”教室太大了,沒有找到,)else:print(,隨便行動是找不到喪失的鑰匙的! ,)在玩家選擇了教室后,展示出提示信息并再次給出可選擇的選項,此時通過變量 place_l獲取玩家的再次輸入,并根據(jù)輸入的結(jié)果進行判斷。步驟2 :編寫操場局部的程序。操場局部的程序和教室基本一致,只是出現(xiàn)的提 示信息不同。181920212223242526

19、2728elif place = 2:print同學B在亂扔垃圾,).阻止同學B,不要亂丟垃圾,)print02.不管他,找鑰匙要緊,)place_2 = irrt(inpirt(請輸入數(shù)字編號:)if place_2 = 1:|pri.(鑰匙在B同學身上,找到鑰匙,)elif place_2 = 2:|print”操場太大了,沒有找到,)else:print(,隨便行動是找不到喪失的鑰匙的! ,)在玩家選擇了操場后,展示出提示信息并再次給出可選擇的選項,此時通過變量place_2獲取玩家的再次輸入,并根據(jù)輸入的結(jié)果進行判斷。至此,文字尋寶游戲基本實現(xiàn)了,當然,你也可以設(shè)計屬于自己的尋寶游戲。

20、鞏固與提升1、周末小明和爸爸、爺爺一起去公園玩,公園票價劃分如下,小明13歲, 爸爸比他大20歲,爺爺比他大42歲,那么他們?nèi)齻€人一共要花費一元。if age4: price=0 elif age18: price=5elif age55: price=10else:price=82、以下代碼存在3處錯誤,請修復(fù)并運行:direction=input(.請輸入表示方向的英文單詞:,).lower() if direction=east:print(方向是東)elif direction=southprint(,方向是南1)elif direction = west1:print。方向是西)el

21、if direction = 1 north:print(方向是北,)elif:print(1請輸入正確的英文單詞)微工程2愷撒密碼A : QB LBH YVXR CLGUBA?B : LRF,V YBIR CLGUBA.A和B的對話你能看懂嗎?是不是感覺他們的對話很外星文?其實他們的對話內(nèi) 容并不是無意義的,只不過A和B在對話的時候使用加密技術(shù)。所謂加密即使用一定 的規(guī)那么(即密鑰),使原文(即明文)變成密文。A和B的對話原文為“Do you like Python?”、“Yes, I love Python.那么你知道A、B對話的加密規(guī)那么是什么嗎?接下來 我們就學習一種最簡單且最廣為人知

22、的加密技術(shù)凱撒密碼。通過本節(jié)的學習,你將掌握以下技能:*復(fù)習for循環(huán)以及if語句的使用*學習upper。、ord()、chr()函數(shù)的用法加密算法在密碼學中,存在五個基本概念:明文、密文、加密、解密和密鑰。1)明文:明文即為需要隱蔽的消息;2)密文:密文就是明文隱蔽后的結(jié)果;3)加密:將明文變換成密文的過程稱作加密;4)解密:由密文恢復(fù)出明文的過程稱作解密;5)密鑰:密鑰是一種參數(shù),是在明文轉(zhuǎn)換為密文或?qū)⒚芪霓D(zhuǎn)換為明文的算法中輸 入的參數(shù),又分為加密密鑰和解密密鑰。我們學習的愷撒密碼,又稱愷撒加密、愷撒變換、變換加密,是一種替換加密的 技術(shù)。加密的過程是將明文中的所有字母都在字母表上向后(或

23、向前)按照一個固定數(shù)目進行偏移從而替換形成密文。例如,當偏移量是3的時候,所有的字母A將被替 換成D , B變成E ,以此類推,如下列圖所示。A B C D E FA B C D E F愷撒密碼是以羅馬共和時期愷撒的名字命名的,當年愷撒曾用此方法與其將軍們 進行聯(lián)系。因為愷撒密碼非常容易被破解并且在實際應(yīng)用中無法保證通信平安,因此 愷撒密碼通常被作為其他更復(fù)雜的加密方法中的一個步驟,例如維吉尼亞密碼。愷撒密碼根據(jù)偏移量的不同,還存在假設(shè)干特定的愷撒密碼名稱,如偏移量為1。時 稱為Avocat、偏移量為13時稱為ROT 13、偏移量為-5時稱為Cassis、偏移量為-6時稱 為 Cassetteo愷撒密碼是對字母進行移位操作的,在編程程序?qū)崿F(xiàn)時,我們需要將讀入的字符 串中每一個字母與位移量進行算術(shù)運算。我們知道,在Python中字符和數(shù)字是無法直 接進行算術(shù)運算的,因此我們需要先將字符轉(zhuǎn)換成數(shù)字。那么要如何進行轉(zhuǎn)換呢?很 簡單,我們可以借助ASCII表將字母轉(zhuǎn)換成對應(yīng)的ASCII值后再進行計算。字符的存儲在計算機中,所有的數(shù)據(jù)在存儲和運算時都要使用二進制數(shù)表示(因為計算機用高電平和低電平分別表示1和0 ),例如,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論