中文字幕精品无码一区二区,成全视频在线播放观看方法,大伊人青草狠狠久久,亚洲一区影音先锋色资源

第六章 專題四 可以復用的代碼 課件(共29張PPT)-《信息技術》同步教學(華東師范大學出版社)

資源下載
  1. 二一教育資源

第六章 專題四 可以復用的代碼 課件(共29張PPT)-《信息技術》同步教學(華東師范大學出版社)

資源簡介

(共29張PPT)
專題四 可以復用的代碼
考綱要求
(1)了解面向對象程序設計的基本方法;
(2)了解模塊化程序設計的意義;
(3)掌握調用math模塊使用數學函數的方法;
(4)掌握調用turtle模塊繪制簡單圖形的方法。
一.面向對象程序設計概述
面向對象程序設計(簡稱OOP)是一種程序開發的方法。對象是指客觀存在的事物,比如可以從圓、矩形、三角形等圖形抽象出一個簡單圖形,簡單圖形就是一個對象,它有自己的屬性和行為,圖形中邊數、面積是它的屬性,輸出圖形的面積就是它的行為。同一類事物的集合稱為類,在類中定義每個對象共有的屬性和方法,即類是封裝對象的屬性和行為的載體,對象是類的實例。面向對象程序設計的思想是將對象作為程序的基本單元,將程序和數據封裝其中以提高程序的重用性、靈活性和擴展性。面象對象程序設計具有三大基本特征:封裝、繼承和多態。 在Python中,字符串、函數、列表等都是對象,Python就是面象對象程序設計語言。
實例:根據從鍵盤上輸入的表示星期幾的數字,輸出對應的用英文表示的星期的簡稱,如“Mon、Tue、Wed、Thu、Fri、Sat、Sun”。設計程序代碼如下:list=[] #創建空列表對象for i in range(7):xq=input("請輸入英文星期:") #按星期的順序一個一個輸入,并添加到列表中list.append(xq) #利用列表對象的方法append()將英文星期添加到列表的末尾 n=int(input("請輸入一個數:")) #輸入1~7中的一個數 print("你輸入的是",list[n-1]) #輸出英文表示的星期
二.模塊化程序設計的意義
對于比較大型、復雜的問題,可以采取“自頂向下、逐步細化”的方法,即將一個完整的問題分成若干個小問題,每個小問題實現一個功能,再將每個小問題逐步細化、分解為一系列具體可實現的步驟。以功能塊為單位進行程序設計,實現其求解算法的方法稱為模塊化。模塊化的目的是為了降低程序復雜度,使程序設計、調試和維護等操作簡單化。將問題模塊化后,有許多功能是相似甚至完全相同的,可以使用代碼復用的方法以提高程序的效率。函數就是一種代碼復用的方法。Python函數分為系統函數和用戶自定義函數兩類。系統函數分為內置函數和非內置函數,內置函數可以直接使用,內置函數包含了使用頻繁的或最基本的操作,如基本數學函數(abs,round)、類型轉換函數(int,float,str)、集合操作函數(len,max,min,sum)、輸入輸出操作函數(input,print)等。 非內置函數要先導入模塊再使用。Python 標準庫中有100多個非內置模塊,如math庫函數,其中包含各種數學函數。
二.模塊化程序設計的意義
1.內置函數。
表6-4-1 Python內置函數
二.模塊化程序設計的意義
【實例講解】 1.輸入5個數,統計最大值、最小值、它們的和以及平均值。 程序代碼: list=[] #定義空列表 for i in range(5): a=float(input("請輸入一個數:")) list.append(a) #將輸入的數添加到列表 print(max(list),min(list),sum(list),sum(list)/5) 2.輸入一個字符串,輸出字符串長度;將大寫的字母轉化為小寫再輸出;將小寫字母轉化為大寫再輸出。 s=input("請輸入一個字符串:") a=len(s) print("字符串的長度是:",a) for i in range(a): print(s[i].lower(),end="") #將大寫的字母轉化為小寫再輸出 for i in range(a): print(s[i].upper(),end="") #將小寫的字母轉化為大寫再輸出
二.模塊化程序設計的意義
2.調用math模塊 要使用math模塊中的庫函數,首先必須要導入,導入的方法有兩種:(1)導入整個模塊。語句格式:import math;或 from math import *。(2)導入個別函數。比如導入函數sqrt、sin,語句格式:from math import sqrt,sin。
表6-4-2常見的math函數
函數名 作用 示例 結果
sqrt() 求平方根 math.sqrt(9) 3.0
trunc() 取整,直接舍去小數 math.trunc(2.78) 2
exp() exp(n)求e(e=2.718)的n次方 math.exp(1) 2.718281828459045
gcd() gcd(x,y),求x,y的最大公約數 math.gcd(8,6) 2
pi 求圓周率π,保留15位小數 math.pi 3.141592653589793
log() 求以e為底的對數 math.log(2.718) 約為1.0
sin() 求正弦值 math.sin(1) 0.84
cos() 求余弦值 math.cos(1) 0.5403
實例:設計程序求一元二次方程的解輸入一元二次方程(y=ax2+bx+c)的系數,判斷并輸出方程的解。 一元二次方程解的公式是:x=(-b± )/2a。如輸入a=1,b=4,c=3 ,輸出方程的解為-1,-3。程序代碼如下:import matha=float(input("請輸入系數a:"))b=float(input("請輸入系數b:"))c=float(input("請輸入系數c:"))p=b**b-4*a*cif p>0: print("x1=",(-b+math.sqrt(p))/(2*a)) print("x2=",(-b-math.sqrt(p))/(2*a))elif p==0: print("x=",-b/(2*a))else: print("方程無解")
二.模塊化程序設計的意義
二.模塊化程序設計的意義
Python隨機函數Python中生成隨機數的函數,是由random模塊控制,需要導入random模塊才能使用。(1)random()函數。random.random()函數返回一個隨機數,其值在0至1的范圍之內,具體用法如下:  import random  print ("隨機數: ", random.random()) #每次輸出的結果都不相同。(2)random.randint()。用于隨機生成指定范圍內的整數,有兩個參數,一個是范圍上限,一個是范圍下限,具體用法如下:  import randomprint (random.randint(6,8))#輸出6,7,8中的隨機數
根據以下題目要求設計程序
(1)輸入直角三角形兩條直角邊的長度a,b,計算斜邊的長度(保留1位小數)。
(2)輸入一個字符串按逆序輸出,如輸入"abcd",輸出"dcba"。
(3)校園歌手賽上,6個評委給選手甲打的分數分別是9.2,8.6,7.9,8.6,9.1,8.8,去掉一個最高分和一個最低分,再取平均分作為該選手的最后得分,請統計并輸出該選手的最后得分。
『知識擴展』
『實踐體驗』
二.模塊化程序設計的意義
3.自定義函數 用戶自定義函數是用戶自己編寫的一段程序。Python自定義函數的語法如下:def 函數名(參數列表): 函數體(包含語句或語句組) return [返回值]/[None] 說明:(1)函數名必須遵循標識符的命名規則;(2)函數可以沒有參數,如果有多個參數,則參數之間用逗號分隔;(3)函數若沒有返回值,可以省略return語句或使用return None。【實例講解】輸入一個自然數n,計算n!并輸出結果,計算n!使用自定義函數實現。程序代碼如下:def fac(x): #求x! s=1 for i in range(2,x+1) : s=s*i return sn=int(input("請輸入一個自然數:"))t=fac(n) #調用自定義函數fac()print(n,"!=",t)【實踐體驗】根據以下題目要求設計程序(1)輸入x,計算y=|x|并輸出結果,其中計算絕對值使用自定義函數。(2)計算s=1!+2!+3!+…+10!
turtle庫是Python語言中一個很流行的繪制圖像的函數庫,它通過函數指令控制圖形的生成。在使用 turtle庫中命令前,先要導入模塊,導入的語句格式如下:格式1:import turtle;格式2:import turtle as 變量;例如:import turtle as t,表示導入turtle模塊,并且用t代替turtle。1.畫布 畫布就是繪圖區域,我們可以設置它的大小和初始位置。 設置畫布大小的語句是:turtle.screensize(width, height,color),參數分別為畫布的寬、高(單位是像素)和畫布顏色。如:turtle.screensize(400,500,"red")。2.畫筆 在默認情況下,在畫布中心位置有一個坐標軸原點,坐標原點處有一只面朝x軸正方向的“小烏龜”,它代表畫筆。在繪圖時,使用畫筆控制命令結合畫筆運動命令控制畫筆的狀態生成圖形。畫筆的屬性包括寬度、顏色和移動速度等;畫筆的運動狀態有提起、放下、前進、后退、左轉及右轉等。常見的畫筆控制命令如表6-4-3所示,畫筆運動命令如表6-4-4所示。
三.調用turtle模塊繪制簡單圖形
表6-4-3畫筆控制命令
畫筆控制命令 使用說明
turtle.pensize(size)或width(size) 設置畫筆寬度,其中size單位為像素,決定了生成的圖形輪廓線粗細
turtle.pencolor() 設置畫筆顏色,參數如"green"、 "red"、 "blue" 、"yellow"、"orange"等,也可以是RGB 3元組
turtle.speed(n) 設置畫筆的速度,n取值范圍為1到10,數值越大速度越快
turtle.fillcolor(color) 設置圖形的填充顏色,參數如"green", "red"等
turtle.filling() 返回當前是否在填充狀態
turtle.begin_fill() 開始填充圖形
turtle.end_fill() 結束填充
三.調用turtle模塊繪制簡單圖形
表6-4-4畫筆運動命令
畫筆運動命令 使用說明
turtle.forward(d)或fd(d) 向當前畫筆方向移動d個像素(px)長度
turtle.backward(d)或bk(d) 向當前畫筆相反方向移動d個像素長度
turtle.right(a)或rt(a) 畫筆右轉(順時針轉)a度
turtle.left(a)或lt(a) 畫筆左轉(逆時針轉)a度
turtle.penup()或pu() 提起畫筆,畫筆移動時不會繪制圖形
turtle.pendown()或pd() 畫筆落下,畫筆移動時繪制圖形,缺省時也會繪制圖形
turtle.goto(x,y) 將畫筆移動到坐標為x,y的位置
turtle.circle(r) 畫半徑為r像素的圓,以下實例中有詳細介紹用法
turtle.write() 作用是在海龜界面輸出文字,語句格式:turtle.write(內容,font=(fontname,fontsize,fonttype))。如定義字體為Arial,大小為24,輸出內容為“熱愛學習!”,可使用命令:turtle.write(“熱愛學習!”,font=(“Arial”,24))
三.調用turtle模塊繪制簡單圖形
三.調用turtle模塊繪制簡單圖形
【實例講解】1.畫正方形。實例:畫一個邊長為80像素,線條顏色為紅色的正方形,代碼如下:import turtle #導入turtle模塊turtle.pencolor("red") #畫筆顏色為紅色 for i in range(4): #循環四次畫4條邊 turtle.forward(80) #向當前畫筆方向移動80像素 turtle.right(90) #畫筆右轉90度,也可以使用turtle.left(90) 2.畫三角形。實例:畫一個邊長為150像素的等邊三角形,填充顏色為“綠色”,代碼如下:import turtlet=turtlet.fillcolor("green") #填充顏色為綠色t.begin_fill() #開始填充for i in range(3): t.fd(150) #向當前畫筆方向移動150像素 t.rt(120) #畫筆右轉120度, 也可使用t.lt(120)t.end_fill() #結束填充t.done() #結束畫圖
三.調用turtle模塊繪制簡單圖形
3.畫圓。根據給定半徑畫圓的語句是:turtle.circle(r,extent=None, steps=None)。參數說明:①r為半徑(單位為像素),半徑為正(負),表示圓心在畫筆的左邊(右邊);②extent為弧度(可選項),整個圓的弧度是360,半圓弧度是180,圓的四分之一弧度是90;③steps為多邊形邊數 (可選項),畫半徑為r的圓的內接正多邊形,如正三角 steps=3。例1:turtle.circle(50) # 畫半徑為50像素的整圓例2:turtle.circle(50,steps=4) # 畫半徑為50像素的整圓的內接四邊形例3:turtle.circle(50,180) # 畫半徑為50像素的半圓【實踐體驗】1.畫一個邊長為100px的正六邊形,填充顏色為藍色。2.畫一個長為100px,寬為80px的矩形,線條顏色為“紅色”,填充顏色為“綠色”。
課后練習
1.下列選項中不屬于代碼復用的優點的是( )。A.減少代碼重復 B.使程序模塊化C.使程序便于閱讀 D.便于發揮程序員的創造力2.函數int(9.8)計算的結果是( )。A.9 B.9.0 C.10 D.10.03.函數sqrt(9)計算的結果是( )。A.3 B.3.0 C.18 D.814.以下不屬于Python標準函數的是( )。 A.str() B.input() C.range() D.abc()5.以下函數可用于統計列表中最大值的是( )。A.sum() B.max() C.min() D.pow()6.函數round(6.85,1)的值是(   )。A.6 B.7.0 C.6.8 D.6.97.函數len("Hello")的值是(   )。A.5 B.HELLO C.“hello” D.Class-str8.Python 程序中導入math模塊的命令是( )。 A. import B.output C. input D.get9.Python中,用于繪制圖形的模塊是( )。A.pygame B.math C.time D.turtle
10.自定函數的關鍵字是( )。A.function B.return C.procedure D.Def
專題綜合練習
一、單項選擇題1.Python語句a="21-4-5",則a的數據類型是( )。A.int B.float C.date D.str2.Python中,以( )開頭的內容屬于注釋。A.\n B.# C.& D.$3.以下列表函數中會生成5個元素的一項是( )。A.range(5) B.range(0,5,2) C.range(1,6,2) D.range(0,6,2)4.表達式1+4*5.0運算結果的數據類型是( )。A.float B.int C.chr D.str5.以下不屬于Python常量的是( )。A.3.14 B.bcd C."1234" D.'happy'6.Python中,將12.88轉化為整數可使用的函數是( )。A.float() B.str() C.round() D.int()7.把變量m的值賦給n的正確語句是( )。A.m=n B.n=m C.n←m D.n==m 8.下列Python程序段運行的結果是( )。a=36;b=5;c=a//bprint(c)A.7 B.7.2 C.7.0 D.1
專題綜合練習
9.下列表達式的值為True的是( )。A.2!=3 or 0 B.3>2>2 C.4>3 and 0 D.2==2 and 4<=310.以下屬于列表的是( )。A.(1,2) B.{1,2} C.[1,2] D.1,211.在Python中,書寫正確的表達式是(   )。A.b**2-4ac B.1/3a5 C.pi*r^2 D.2*pi*r12.b=str(25),b的數據類型是(   )。A.浮點型 B.字符串 C.整型 D.復數13.在Python中,表達式"22"+"8"的值是(   )。A.30 B."30" C."228" D."22+8"14.運行以下程序后,輸出的結果是( )。m,n=1,2print(m==n)A.True B.False C.0 D.115.已知s=1+2+3…+n,找出一個最大整數n,使得s<2000。編寫程序解決該問題,最合適的程序結構是( )。A.順序結構 B.選擇結構 C.循環結構 D.網狀結構
專題綜合練習
16.有Python程序如下:s=input()print(s*3)運行后通過鍵盤輸入6,則輸出的結果是(   )。A.18 B.666 C.sss D.s*317.在Python中,運行以下程序段后,輸出的結果是(   )。for p in [1,2,3]:print(p**2,end="")A.1 2 3 B.2 4 6 C.1 4 9 D.出錯18.以下Python程序運行后,輸出“@”的個數是( )。for n in range(0,10,3): print("@")A.10 B.6 C.5 D.419. 以下程序的功能是:從鍵盤上輸入一個兩位數,判斷是否為6的倍數,在①處應該填入的內容是( )。n=int(input())if ①: print("是6的倍數")A.n//6=0 B. n%6==0 C.n/6==0 D.n%6!=0
專題綜合練習
20.下列Python程序運行的結果是( )。s=1for k in range(1,5):s=s*kprint(k,s)A. 24 6 B.120 5 C. 4 24 D.120 4
二、完善程序題
1.一本書的厚度為a頁,李老師已經看了10天書,每天看b頁。請編寫一個程序,輸入a,b的值,計算并輸出李老師還要看幾天才能把全書看完。請在①②處填寫正確的內容。
a=①(input("全書頁數:"))
b=int(input("每天看的頁數:"))
s=②
print("還需要看",s,"天才能看完")
2.小王辦理了某種流量套餐,其中不超出1000MB(包含1000MB)的部分費用20元,超出的部分0.25元/MB,輸入他本月消耗的流量數P(單位MB),計算并輸出他本月的費用。請在①②處填寫正確的內容。
p=float(input("請輸入流量:"))
if ①:
m=20
else:

print("本月費用是:",m,"元")
專題綜合練習
3.1月~3月為春季,4月~6月為夏季,7月~9月為秋季,10月~12月為冬季。輸入一個月份,判斷并輸出是什么季節。請在①②處填寫正確的內容。yf=int(input("輸入月份:"))if ①: jj="春季"elif yf in [4,5,6]: jj="夏季"elif yf in [7,8,9]: jj="秋季"②: jj="冬季"print("您輸入的月份屬于:",jj)
4.以下是計算 的程序代碼,請在①②處填寫正確的內容。
p=①
for i in range(2,11):

print("p=",p)
專題綜合練習
5.以下是計算s=1+4+7…+61的程序代碼,請在①②處填寫正確的內容。s=0k=1while ①:s=s+k②6.以下程序的功能是輸入x,y的值,對調x,y的值再輸出,請在①②處填寫正確的內容。x=int(input("請輸入一個數:"))y=int(input("請輸入另一個數:"))z=x①y=z②("x=",x,"y=",y)7.以下程序的功能是畫一個半徑為60px的正圓,線條顏色為“藍色”,請在①②處填寫正確的內容。①turtle.pencolor("blue")turtle.speed(2)turtle.width(5)turtle.②
專題綜合練習
8.以下程序的功能是畫一個邊長為120px的正方形,線條顏色為“紅色”,請在①②處填寫正確的內容。import turtlet=turtle t.pencolor("red") for i in range(4): t.① #畫筆移動120像素 t.② #畫筆左轉90度 t.done()三、程序設計題1.一輛動車即將穿越隧道,已知隧道全長為a米,動車車長為300米,動車速度為b米/秒。輸入a,b的值,計算并輸出動車完全通過隧道需要花費的時間。2.輸入一個三位數,按逆序輸出,如輸入123,輸出321。3.輸入一個自然數并判斷是否既是2的倍數又是3的倍數。若是,則輸出yes;否則輸出no。4.輸入兩個數a,b,若a>b則s=(a-b)2,否則s=(a+b)2,計算并輸出s。5.某停車場收費標準為:停車時間為1小時以內免費,1小時≤停車時間<2小時收費10元,停車時間≥2小時,每小時加收2元,輸入停車時間計算并輸出停車費用。
專題綜合練習
6. ,計算并輸出s。
7.s=5+10+…+100,計算并輸出s。
8.輸入一個字符串統計字母(包括大小寫)的個數。
9.假定存款年利率固定為4.25%,投資10萬元,多少年后資金翻倍?
10.輸出三位數中所有的水仙花數。所謂水仙花數是指一個三位數,其各位數字立方的和等于該數,如:153 =13+53+33。
課后練習答案
題號 答案 題號 答案 題號 答案 題號 答案 題號 答案
1 D 2 A 3 B 4 D 5 B
6 D 7 A 8 A 9 D 10 D
課后練習答案:
專題綜合練習:
一、單項選擇題
題號 答案 題號 答案 題號 答案 題號 答案 題號 答案
1 D 2 B 3 A 4 A 5 B
6 D 7 B 8 A 9 A 10 C
11 D 12 B 13 C 14 B 15 C
16 B 17 C 18 D 19 B 20 C
課后練習答案
二、完善程序題1.①int ②(a-10*b)/b 或a/b-10 2.①p<=1000 ②m=20+(p-1000)*0.25 3.①yf in [1,2,3] ② else 4.①1 ②p=p*(1/i) 5.①k<=61 ②k=k+36.① x=y ②print7.① import turtle ②circle(60)8.① t.forward(120)或t.fd(120) ②t.left(90)或t.lt(90)
三、程序設計題
1.
a=float(input("請輸入隧道長(單位為米):"))
b=float(input("請輸入動車速度(單位為米/秒):"))
t=(a+300)/b
print("動車完全通過隧道所需要的時間:",t,"秒")
課后練習答案
2.
n=int(input("請輸入一個三位數:"))
a=n//100
b=n%100//10 #或 b=n//10%10
c=n%10
s=c*100+b*10+a
print("新生成的三位數是:",s)
3.
n=int(input("請輸入一個整數:"))
if n%2==0 and n%3==0: #或 n%6==0
print("yes")
else:
print("no")
課后練習答案
4.
a=float(input("請輸入一個數:"))
b=float(input("請輸入另一個數:"))
if a>b:
s=(a-b)**2
else:
s=(a+b)**2
print("s=",s)
5.
t=float(input("請輸入停車時間(單位為小時):"))
if t<1:
f=0
elif t<2:
f=10
else:
f=10+(t-2)*2
print("停車費用是:",f,"元")
課后練習答案
6.
s=1
for i in range(2,11):
s=s+1/i
print("1+1/2+1/3+…+1/10=",s)
7.
s=0
for i in range(5,101,5):
s=s+i
print("5+10+…100=",s)
8.
s=input("請輸入一個字符串:")
a=len(s)
count=0
for i in range(a):
if s[i]>='a' and s[i]<='z' or s[i]>='A' and s[i]<='Z':
count=count+1
print("字符串中包含的字符個數是:",count)
課后練習答案
9.
year=0
money=10
while money<20:
money=(1+0.0425)*money
year=year+1
print(year,"年后資金翻倍")
10.
for i in range(100,1000):
a=i//100
b=i%100//10
c=i%10
if a**3+b**3+c**3==i:
print(i)

展開更多......

收起↑

資源預覽

  • <menuitem id="wfhyu"><abbr id="wfhyu"></abbr></menuitem>

    <bdo id="wfhyu"></bdo>
  • <bdo id="wfhyu"></bdo>
    主站蜘蛛池模板: 镇巴县| 南雄市| 沙湾县| SHOW| 北宁市| 兴业县| 宜宾县| 兴宁市| 高邮市| 唐山市| 思南县| 远安县| 潍坊市| 教育| 安福县| 孟连| 安吉县| 福州市| 贵德县| 隆德县| 阿坝| 琼中| 蒲江县| 新邵县| 禹州市| 怀化市| 辛集市| 湾仔区| 隆回县| 加查县| 内丘县| 宁安市| 上思县| 潼关县| 南宫市| 疏附县| 芒康县| 阳信县| 上犹县| 廊坊市| 潍坊市|