信息技術(shù) 必修一 第二章 知識(shí)梳理


文字稿:
●?第二章 算法與程序?qū)崿F(xiàn)
●?第一節(jié) 算法與算法描述
●?一、認(rèn)識(shí)算法
●?1、算法的概念
●?算法是在有限步驟內(nèi)求解某一問(wèn)題所使用的步驟和方法
●?2、算法的特征(背誦小標(biāo)題)
●?(1)有窮性
●?(2)確定性
●?(3)可行性
●?(4)有零個(gè)或多個(gè)輸入
●?(5)有一個(gè)或多個(gè)輸出
●?二、算法的描述(背誦小標(biāo)題)
●?1、自然語(yǔ)言
●?2、流程圖
●????
●?起止框
●?表示算法的開(kāi)始或結(jié)束
●??
●?處理框
●?表示要處理的內(nèi)容
●??
●?輸入/輸出框
●?表示數(shù)據(jù)的輸入或結(jié)果的輸出
●?◇
●?判斷框
●?表示條件判斷的情況:滿足條件,執(zhí)行一條路徑;不滿足條件,則執(zhí)行另外一條路徑
●?○
●?連接符
●?用于連接因頁(yè)面不夠而斷開(kāi)的流程線
●?↓ →
●?流程線
●?指出流程控制方向,即執(zhí)行的次序
●?3、偽代碼
●?偽代碼是一種介于自然語(yǔ)言和計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言之間的算法描述語(yǔ)言
●?三、算法的基本控制結(jié)構(gòu)(背誦小標(biāo)題)
●?1、順序結(jié)構(gòu)
●?示意圖見(jiàn)P44
●?2、分支結(jié)構(gòu)
●?示意圖見(jiàn)P45
●?3、循環(huán)結(jié)構(gòu)
●?示意圖見(jiàn)P45
●?四、編程解決問(wèn)題的過(guò)程(背誦小標(biāo)題)
●?1、抽象與建模
●?2、設(shè)計(jì)算法
●?3、編寫(xiě)程序
●?4、調(diào)試運(yùn)行
●?第二節(jié) 程序設(shè)計(jì)語(yǔ)言基本知識(shí)
●?一、Python語(yǔ)言基礎(chǔ)
●?1、程序設(shè)計(jì)語(yǔ)言(背誦小標(biāo)題)
●?(1)機(jī)器語(yǔ)言
●?用二進(jìn)制代碼(0與1),可直接運(yùn)行,速度快,但不通用
●?(2)匯編語(yǔ)言
●?由符號(hào)組成(如ADD),有易讀性,速度快,但不可直接執(zhí)行,需翻譯,也不通用
●?(3)高級(jí)語(yǔ)言
●?以人類日常語(yǔ)言為基礎(chǔ)(如print(a,b)),通用,但不可直接運(yùn)行,需翻譯
●?2、Python常用數(shù)據(jù)類型
●?整型
●?int
●?Python中的整數(shù)可以是任意大小,如51、-67、0等
●?如x=int(input(“請(qǐng)輸入年份”))
●?浮點(diǎn)型
●?float
●?由整數(shù)部分和小數(shù)部分組成,也可以使用科學(xué)記數(shù)法表示,如3.076、-2e3等
●?如x=float(input(“請(qǐng)輸入體重”))
●?字符串型
●?str
●?由單引號(hào)(‘ ’)或雙引號(hào)(“ ”)括起來(lái)的一組字符,如‘Hello’或“上海”或“\n”等
●?如x=input(“請(qǐng)輸入年份”)
●?布爾型
●?bool
●?只存在兩種值:真(True)或假(False),常用于邏輯判斷
●?如“a=b<c"中a
●?轉(zhuǎn)換舉例
●?float(3)
●?將整型數(shù)據(jù)3轉(zhuǎn)換為一個(gè)浮點(diǎn)型數(shù)據(jù),為3.0
●?int(3.6)
●?將浮點(diǎn)型數(shù)據(jù)3.6轉(zhuǎn)換為一個(gè)整型數(shù)據(jù),為3
●?str(3)
●?將整型數(shù)據(jù)3轉(zhuǎn)換為字符串型數(shù)據(jù),為‘3’或”3“
●?3、Python中的常量、變量與賦值符
●?常量是直接給定的,指在程序運(yùn)行過(guò)程中不變的量
●?變量指程序運(yùn)行過(guò)程中可以被改變的量
●?變量命名原則
●?由大小寫(xiě)英文字母、數(shù)字或下劃線組成
●?以英文字母或下劃線為首字符
●?長(zhǎng)度不限
●?不能與Python保留字同名
●?大小寫(xiě)敏感
●?“=”為Python中的賦值符
●?其作用是把賦值號(hào)右邊表達(dá)式的計(jì)算結(jié)果存儲(chǔ)到賦值號(hào)左邊指定的變量中
●?4、Python中的運(yùn)算符與表達(dá)式
●?(1)算術(shù)運(yùn)算符
●?**
●?冪
●?優(yōu)先級(jí)(數(shù)字越小越優(yōu)先):1
●?如3**3,運(yùn)算結(jié)果為27
●?*
●?乘法
●?優(yōu)先級(jí):2
●?如5.3*20,運(yùn)算結(jié)果為106.0
●?/
●?除法
●?優(yōu)先級(jí):2
●?如2/5,運(yùn)算結(jié)果為0.4
●?%
●?取模
●?優(yōu)先級(jí):2
●?如17%6,運(yùn)算結(jié)果為5
●?//
●?整除
●?優(yōu)先級(jí):2
●?如25//7,運(yùn)算結(jié)果為3
●?+
●?加法
●?優(yōu)先級(jí):3
●?如23+45,運(yùn)算結(jié)果為68
●?-
●?減法
●?優(yōu)先級(jí):3
●?如78.4-34.2,運(yùn)算結(jié)果為44.2
●?(2)關(guān)系運(yùn)算符
●?==
●?等于
●?優(yōu)先級(jí):4
●?(a=10,b=20時(shí))如a==b,返回為假
●?>
●?大于
●?優(yōu)先級(jí):4
●?a>b,返回為假
●?<
●?小于
●?優(yōu)先級(jí):4
●?a<b,返回為真
●?>=
●?大于等于
●?優(yōu)先級(jí):4
●?a>=b,返回為假
●?<=
●?小于等于
●?優(yōu)先級(jí):4
●?a<=b,返回為真
●?!=
●?不等于
●?優(yōu)先級(jí):4
●?a!=b,返回為真
●?(3)邏輯運(yùn)算符
●?not
●?非
●?優(yōu)先級(jí):5
●?not(a==b),若a和b相等,則返回假,否則返回真
●?and
●?與
●?優(yōu)先級(jí):6
●?a and b,只有當(dāng)a和b都為真時(shí),結(jié)果才為真
●?or
●?或
●?優(yōu)先級(jí):7
●?a or b,只要a和b中有一個(gè)為真時(shí),結(jié)果就為真
●?5、Python中的內(nèi)置函數(shù)與模塊導(dǎo)入
●?內(nèi)置函數(shù)
●?內(nèi)置函數(shù)是已經(jīng)預(yù)定義并且已經(jīng)實(shí)現(xiàn)的、可以供用戶直接調(diào)用的函數(shù),很多高級(jí)語(yǔ)言都有內(nèi)置函數(shù)
●?可直接通過(guò)“函數(shù)名(參數(shù)列表)”的方式調(diào)用
●?舉例
●?abs(x)用于求取絕對(duì)值
●?如abs(-1)=1
●?round(a,b)用于求取指定位數(shù)的小數(shù)
●?如round(3.1415926,2)=3.14
●?pow(a,b,c)=a**b%c
●?模塊
●?Python語(yǔ)言中的模塊是一個(gè)程序文件
●?在使用之前通過(guò)“import 模塊名”的方式導(dǎo)入
●?舉例
●?import math
●?print(math.factorial(6))
●?6、Python中的字符串
●?通用操作
●?x+y
●?連接兩個(gè)字符串x和y
●?(str1=“Hello”,str2=“Python”時(shí))str1+“ ”+str2,返回“Hello Python”
●?x*n
●?復(fù)制n次字符串x
●?str1*3,返回“HelloHelloHello”
●?len(x)
●?返回字符串x的長(zhǎng)度
●?len(str1),返回5
●?7、Python中的列表
●?列表是Python中常見(jiàn)的一種數(shù)據(jù)形式,它可以把大量的數(shù)據(jù)放在一起,對(duì)其進(jìn)行集中處理
●?列表是以“【】”包圍的數(shù)據(jù)集合,不同成員間以“,”分隔
●?列表中可以包含任何數(shù)據(jù)類型,也可以包含另一個(gè)列表
●?如列表tian=【“甲”,“乙”,“丙”,“丁”】中tian【0】=“甲”,tian【2】=“丙”
●?通用操作
●?list.append(x)
●?在列表尾部追加成員x
●?list.insert(i,x)
●?向列表中指定位置i插入x
●?list.remove(x)
●?刪除列表中的指定成員(有多個(gè)則只刪除第一個(gè),指定成員不存在則報(bào)錯(cuò))
●?二、順序結(jié)構(gòu)的Python實(shí)現(xiàn)
●?實(shí)例:計(jì)算BMI(BMI=體重(千克)/身高2(米2))
●?1、抽象與建模
●?輸入:height、weight
●?輸出:bmi
●?計(jì)算模型:bmi=weight(千克)/height2(米2)
●?2、設(shè)計(jì)算法
●?①輸入身高h(yuǎn)eight
●?②輸入體重weight
●?③根據(jù)公式計(jì)算BMI指數(shù)
●?④輸出BMI指數(shù)
●?3、編寫(xiě)程序
●?①height=float(input"請(qǐng)輸入身高(m):"))
●?②weight=float(input"請(qǐng)輸入體重(kg):"))
●?③bmi=weight/height**2
●?④print("BMI=",bmi)
●?4、調(diào)試運(yùn)行
●?三、分支結(jié)構(gòu)的Python實(shí)現(xiàn)
●?三種分支結(jié)構(gòu)
●?單分支語(yǔ)句
●?if 條件表達(dá)式:
●?【縮進(jìn)】語(yǔ)句塊
●?雙分支語(yǔ)句
●?if 條件表達(dá)式:
●?【縮進(jìn)】語(yǔ)句塊1
●?else:
●?【縮進(jìn)】語(yǔ)句塊2
●?多分支語(yǔ)句
●?if 條件表達(dá)式1:
●?【縮進(jìn)】語(yǔ)句塊1
●?elif 條件表達(dá)式2:
●?【縮進(jìn)】語(yǔ)句塊2
●?……
●?else:
●?【縮進(jìn)】語(yǔ)句塊n
●?實(shí)例:詳見(jiàn)書(shū)P62~64
●?turtle庫(kù)
●?turtle.goto(x,y)
●?將畫(huà)筆移動(dòng)到坐標(biāo)為(x,y)的位置
●?turtle.pendown()
●?放下筆,移動(dòng)時(shí)繪制圖像
●?turtle.penup()
●?提起筆,移動(dòng)時(shí)不繪制圖像
●?turtle.circle(radius)
●?畫(huà)圓,radius為正(負(fù)),表示畫(huà)圓時(shí)圓心在畫(huà)筆的左邊(右邊)
●?turtle.color(color1,color2)
●?同時(shí)設(shè)置pencolor為color1,fillcolor為color2
●?turtle.begin_fill()
●?準(zhǔn)備開(kāi)始填充圖形,與turtle.end_fill()命令配合使用
●?turtle.end_fill()
●?填充完成,與turtle.begin_fill()命令配合使用
●?turtle.forward(x)
●?向當(dāng)前方向移動(dòng)x像素長(zhǎng)度
●?turtle.backward(x)
●?向當(dāng)前反方向移動(dòng)x像素長(zhǎng)度
●?turtle.right(x)
●?向右轉(zhuǎn)x度
●?turtle.left(x)
●?向左轉(zhuǎn)x度
●?setx()
●?將當(dāng)前x軸移動(dòng)到指定位置
●?sety()
●?將當(dāng)前y軸移動(dòng)到指定位置
●?turtle.speed(x)
●?將移動(dòng)速度改為x
●?四、循環(huán)結(jié)構(gòu)的Python實(shí)現(xiàn)
●?while語(yǔ)句
●?while 條件表達(dá)式:
●?【縮進(jìn)】語(yǔ)句塊
●?for語(yǔ)句
●?for 循環(huán)變量 in 序列:
●?【縮進(jìn)】語(yǔ)句塊
●?for語(yǔ)句中循環(huán)次數(shù)由序列中元素的個(gè)數(shù)決定,通常用于確定循環(huán)次數(shù)的問(wèn)題求解
●?對(duì)于不能確定循環(huán)次數(shù)的情況,則需要使用while語(yǔ)句
●?序列:
●?列表
●?range()函數(shù)產(chǎn)生的列表或字符串
●?range()函數(shù)返回一個(gè)等差整數(shù)序列,格式為:range(起始值,終值,步長(zhǎng))
●?示例:
●?range(1,5,3)
●?生成起始值為1,終值為4,步長(zhǎng)為3的序列:【1,4】
●?range(1,5)
●?生成起始值為1,終值為4,步長(zhǎng)為默認(rèn)值1的序列:【1,2,3,4】
●?range(5)
●?生成起始值為0(沒(méi)有設(shè)定起始值,默認(rèn)為0),終值為4,步長(zhǎng)為默認(rèn)值1的序列:【0,1,2,3,4】
●?range(5,1,-1)
●?生成起始值為5,終值為2,步長(zhǎng)為-1的序列:【5,4,3,2】
●?實(shí)例:詳見(jiàn)書(shū)P67~69
●?第三節(jié) 常用算法及其程序?qū)崿F(xiàn)
●?一、枚舉法
●?基本原理
●?根據(jù)已知條件,在給定的范圍內(nèi)對(duì)所有可能的答案按某種順序進(jìn)行逐一列舉和檢驗(yàn),從中找出那些符合要求的答案
●?一般模式
●?①確定范圍
●?②驗(yàn)證條件
●?二、枚舉法的程序?qū)崿F(xiàn)
●?舉例:跑步課程完成情況の顯示
●?1、抽象與建模
●?輸入:跑步課程中的每日訓(xùn)練內(nèi)容和對(duì)應(yīng)訓(xùn)練內(nèi)容消耗的卡路里數(shù),這些信息由程序自動(dòng)讀取數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù),不需要用戶輸入
●?輸出:完成的項(xiàng)目數(shù)和未完成的項(xiàng)目名稱
●?計(jì)算模型:
●?已完成項(xiàng)目數(shù)=Σ(上:n 下:i=1)datai
●?datai=
●?0(消耗的卡路里數(shù)=0)
●?1(消耗的卡路里數(shù)≠0)
●?未完成項(xiàng)目數(shù)=U(上:n 下:i=1)itemi
●?itemi=
●?空字符串(消耗的卡路里數(shù)=0)
●?項(xiàng)目名稱(消耗得卡路里數(shù)≠0)
●?其中,n為該跑步課程共有多少項(xiàng)訓(xùn)練內(nèi)容,消耗的卡路里數(shù)為大于零的整數(shù),Σ為求和符號(hào)
●?2、設(shè)計(jì)算法
●?①讀入一周的跑步課程訓(xùn)練內(nèi)容
●?②讀入對(duì)應(yīng)課程訓(xùn)練內(nèi)容消耗的卡路里數(shù)
●?③初始設(shè)定已完成項(xiàng)目數(shù)finished為0,未完成項(xiàng)目名稱unfinished為空字符串
●?④逐一列舉一周的對(duì)應(yīng)訓(xùn)練內(nèi)容消耗的卡路里數(shù)
●?⑤如果當(dāng)前枚舉的卡路里數(shù)為0,則將對(duì)應(yīng)的訓(xùn)練內(nèi)容名稱加入unfinished,否則finished的計(jì)數(shù)加1
●?⑥輸出完成項(xiàng)數(shù)目及未完成項(xiàng)目名稱
●?3、編寫(xiě)程序
●?①itemlist=["低速低強(qiáng)度","變速練習(xí)","低速低強(qiáng)度","快走","低速低強(qiáng)度","坡度練習(xí)","低速低強(qiáng)度"]
●?②datalist=[400,600,380,0,420,620,397]
●?③finished=0
●?③unfinished=""
●?④for i in range(7):
●?⑤ ?????if datalist[i]==0:
●?⑤ ???????????unfinished=unfinished+itemlist[i]+" "
●?⑤ ?????else:
●?⑤ ???????????finished=finished+1
●?⑥print("完成了",finished,"項(xiàng)")
●?⑥print("未完成項(xiàng)目:",unfinished)
●?4、調(diào)試運(yùn)行
?使用軟件:幕布 & B站
(由于以上均為手打,難免會(huì)有疏忽,如有錯(cuò)誤,還請(qǐng)?jiān)谠u(píng)論區(qū)中指出
(??????)?? (′▽`???) (●'?'●) (☆▽☆) *★,°*:.☆( ̄▽ ̄)/$:*.°★* 。 )