一????????以IPO角度分析溫度轉(zhuǎn)換問(wèn)題
? ? ? ? 1) ?? 溫度刻畫的兩種不同體系(攝氏度與華氏度)
????????-攝氏度:中國(guó)等世界大多數(shù)國(guó)家使用
????????????????以1標(biāo)準(zhǔn)大氣壓下水的結(jié)冰點(diǎn)為0度,沸點(diǎn)為100度,將溫度進(jìn)行等分刻畫
????????-華氏度:美國(guó)、英國(guó)等國(guó)家使用
????????????????以1標(biāo)準(zhǔn)大氣壓下水的結(jié)冰點(diǎn)為32度,沸點(diǎn)為212度,將溫度進(jìn)行等分刻畫
? ? ? ? 2 ) ? 需求分析 -- 兩種溫度體系之間的轉(zhuǎn)換
????????????????-攝氏度轉(zhuǎn)換為華氏度 ?? ;????-華氏度轉(zhuǎn)換為攝氏度
? ? ?? 3)???? 問(wèn)題分析
? ? ? ? ? ? 1 ?? 問(wèn)題分析 -- 分析問(wèn)題
? ? ? ? ? ? ? ? --????直接將溫度值進(jìn)行轉(zhuǎn)換
????????????????溫度數(shù)值需要標(biāo)明溫度體系,即攝氏度或華氏度轉(zhuǎn)換后也需要給出溫度體系
? ? ? ? ? ? 2-1 ?? 問(wèn)題分析 -- 劃分邊界
????????????????-輸入:帶華氏或攝氏標(biāo)志的溫度值
????????????????-處理:根據(jù)溫度標(biāo)志選擇適當(dāng)?shù)臏囟绒D(zhuǎn)換算法
????????????????-輸出:帶攝氏或華氏標(biāo)志的溫度值
???????????2-2 ?? 問(wèn)題分析 -- 設(shè)計(jì)輸入輸出格式
? ? ? ? ? ? ??標(biāo)識(shí)放在溫度最后,F(xiàn)表示華氏度,C表示攝氏度
? ? ? ? ? ? ? 例如 :? 32F表示華氏32度,68C表示攝氏68度
???????????3 ? 問(wèn)題分析 -- 設(shè)計(jì)算法
????????????根據(jù)華氏和攝氏溫度定義,利用轉(zhuǎn)換公式如下:
????????????????C = (F – 32 ) / 1.8
????????????????F= C * 1.8 + 32
????????????其中, C表示攝氏溫度,F(xiàn)表示華氏溫度
???????????4 問(wèn)題分析 -- 編程實(shí)現(xiàn)

????
???????????5 ?? 問(wèn)題分析? -- 調(diào)試測(cè)試

????????????6 ?? 維護(hù)升級(jí)
? ? ? ? ? ? -- 通過(guò)添加? 循環(huán) While, 來(lái)實(shí)現(xiàn)重復(fù)詢問(wèn)的功能

二 ? ? ?? 程序語(yǔ)法結(jié)構(gòu)分析
? ? 1 ?? 縮進(jìn),分行與語(yǔ)句間隔
? ? ? ? ?? 1) 縮進(jìn) -- 表達(dá)程序的格式框架
????????????????-所屬關(guān)系:表達(dá)代碼間包含和層次關(guān)系的唯一手段
????????????????-長(zhǎng)度一致:程序內(nèi)一致即可,一般用4個(gè)空格或1個(gè)TAB
? ? ? ? ? ? 2 )分行 -- 通常 分行是語(yǔ)句間不同邏輯的層次手段
? ? ? ? ? ? ? ? ? ? 物理行????-- ? 在編寫程序過(guò)程中編輯器所能顯示的空間長(zhǎng)度
? ? ? ? ? ? ? ? ?? 邏輯行???? -- ? Python識(shí)別的單個(gè)語(yǔ)句
? ? ? ? ? ? ? ? ? ? Python假定每個(gè)物理行對(duì)應(yīng)一個(gè)邏輯行,建議使用圓括號(hào)來(lái)分組運(yùn)算符和操作數(shù),以便能夠明確地指出運(yùn)算地先后順序。使程序盡可能易讀。
? ? ? ? ? ? ? ? ? ? Python希望每行都使用一個(gè)語(yǔ)句,這樣使得代碼更容易讀
? ? ? ? ? ? ? ? ? ? 如果想在一個(gè)物理行中使用多于一個(gè)邏輯行,那么需要使用分號(hào)(;)來(lái)特別地注明這種用法。

? ? ? ? ? ? ? ? ? ? 僅僅當(dāng)邏輯行太長(zhǎng)地時(shí)候,在多于一個(gè)物理行寫一個(gè)邏輯行。這些都是為了盡可能避免使用分號(hào),從而使代碼更容讀

? ? ? ? ? ? ? ? 有一種暗示的假設(shè),可以不需要使用反斜杠。這種情況出現(xiàn)在邏輯行中使用圓括號(hào),方括號(hào)或波形括號(hào),這種方式稱為暗示的行連接 ? ?

? ? ? ? ? ? ? ? 3)語(yǔ)句間隔 ?
? ? ? ? ? ? ? ? ? ? ? ? Python使用分號(hào)分隔語(yǔ)句,從而將多條語(yǔ)句寫在一行。例如:
? ? ? ? ? ? ? ? ? ? ? ? print(100);print(2+3)
? ? ? ? ? ? ? ? ? ? ? ? 如果冒號(hào)之后的語(yǔ)句只有一條語(yǔ)句,Python允許將語(yǔ)句寫在冒號(hào)之后。冒號(hào)之后也可以是分號(hào)分隔的多條語(yǔ)句。例如:
? ? ? ? ? ? ? ? ? ? ? ? if x<100 and x>10 : y = x*5-1
? ? ? ? ? ? ? ? ? ? ? ? else : y =0;print(x>100或x<=10)
? ? 2 ? ? ?? 注釋 --?不被程序執(zhí)行的輔助性說(shuō)明信息
? ? ? ? ? ? ? ? 1)-單行注釋:以#開頭,其后內(nèi)容為注釋
????????????????????例如: #? 這里是單行注釋
? ? ? ? ? ? ? ? 2) -多行注釋:以'''開頭和結(jié)尾
????????????????????'''? 這是多行注釋第一行
????????????????????????這是多行注釋第二行? '''
? ? ? ? ? ? ? ? PS --> 注意在使用多行注釋過(guò)程中,如若 內(nèi)容中包含引號(hào),則需要注意趨同效應(yīng)
? ? 3 ?? 命名與保留字?
? ? ? ? ?? 1) ?? 3組成 --?大小寫字母、數(shù)字、下劃線?
? ? ? ? ? ? ? ? ? ? PS -->? 3.0 版本加入了漢字,但不建議大家使用漢字組成
? ? ? ? ?? 2) 3構(gòu)成 --?大小寫敏感、首字符不能是數(shù)字、不與保留字相同
? ? ? ? ?? 3)1習(xí)慣 -- 駝峰規(guī)則
? ? ? ? ? ? ? ? a、小駝峰式命名法(lower camel case):
????????????????第一個(gè)單詞以小寫字母開始,第二個(gè)單詞的首字母大寫。例如:firstName、lastName。
? ? ? ? ? ? ? ? b、大駝峰式命名法(upper camel case):
????????????????每一個(gè)單詞的首字母都采用大寫字母,例如:FirstName、LastName、CamelCase,也被稱為 Pascal 命名法。
? ? ? 4 ?? Python關(guān)鍵字
? ? ? ? ? ? 關(guān)鍵字即保留字,用戶不能將其用作其他任何標(biāo)識(shí)符名稱。Python 的標(biāo)準(zhǔn)庫(kù)提供了一個(gè)keyword模塊,在IDLE中可以輸出當(dāng)前的所有關(guān)鍵字

? ? ? ? ? ? 在Python中,用戶需要注意True,False,None的大小寫。如果用戶需要查看關(guān)鍵字信息,在IDLE中也可以用help()命令進(jìn)入幫助系統(tǒng)查看

? ? 5????變量
? ? ? ? ?? 程序中用于保存和表示數(shù)據(jù)的占位符號(hào)
????????????-變量采用標(biāo)識(shí)符(名字)來(lái)表示,關(guān)聯(lián)標(biāo)識(shí)符的過(guò)程叫命名
? ? ? ? ? ? ? ? ? ? 例如:TempStr是變量名字
? ? ? ? ? ? ?? -可以使用等號(hào)(=)向變量賦值或修改值,=被稱為賦值符號(hào)
? ? ? ? ? ? ? ? ? 例如:?TempStr="82F"? #向變量TempStr賦值"82F"
? ? 6 ?? 數(shù)據(jù)類型 --?供計(jì)算機(jī)程序理解的數(shù)據(jù)形式
? ? ? ? ? ? 1)基本數(shù)據(jù)類型 --?
? ? ? ? ? ? ? ? ? ? 1????數(shù)字類型 -- 整型,浮點(diǎn)型,復(fù)數(shù)
? ? ? ? ? ? ? ? ? ? 2 ?? 字符串類型 -- 由0個(gè)或多個(gè)字符組成的有序字符序列
? ? ? ? ? ? ? ? ? ? ? ? ? ?- 字符串由一對(duì)單引號(hào)或一對(duì)雙引號(hào)表示
????????????????????????????????????"請(qǐng)輸入帶有符號(hào)的溫度值: "或者? 'C'
? ? ? ? ? ? ? ? ? ? ? ? ? - 字符串是字符的有序序列,可以對(duì)其中的字符進(jìn)行索引
????????????????????????????????????"請(qǐng)" 是? "請(qǐng)輸入帶有符號(hào)的溫度值: " 的第0個(gè)字符
? ? ? ? ? ? ? ? ? ? ? ? ?? - 正向遞增序號(hào)和反向遞減序號(hào)

? ? ? ? ? ? ? ? ? ? ? ? ? ? - 使用[ ]獲取字符串中一個(gè)或多個(gè)字符
????????????????????????????-索引:返回字符串中單個(gè)字符? <字符串>[M]
????????????????????????????????????????"請(qǐng)輸入帶有符號(hào)的溫度值: "[0]? 或者 ?TempStr[-1]
????????????????????????????-切片:返回字符串中一段字符子串? <字符串>[M:N]
????????????????????????????????????????"請(qǐng)輸入帶有符號(hào)的溫度值: "[1:3] 或者?TempStr[0:-1]
????????????????????????????????????????
? ? ? ? ? ? 2)組合數(shù)據(jù)類型 --?
? ? ? ? ? ? ? ? ? ? 1 ?? 序列? -- 元組,列表
? ? ? ? ? ? ? ? ? ? 2 ?? 集合
? ? ? ? ? ? ? ? ? ? 3 ?? 映射? -- 字典
? ? ? ? ? ? 3)數(shù)據(jù)運(yùn)算
? ? ? ? ? ? ? ?? 1 ?? 算數(shù)運(yùn)算? -- "+,-,*,/,**,%,//,..." ??
? ? ? ? ? ? ? ?? 2 ?? 比較運(yùn)算? -- "=,>,<,<=,>=,!=,..."
? ? ? ? ? ? ? ? 3 ?? 邏輯運(yùn)算 ? -- 與或非 "&,|,^"
? ? ? ? ? ? ? ? 4 ?? 布爾運(yùn)算 ? -- 二值運(yùn)算(True,False)
? ? 7 ?? 程序控制結(jié)構(gòu)
? ? ? ? ? ? 1) ? 順序語(yǔ)句
? ? ? ? ? ? 2) ? 分支語(yǔ)句 ? ?
?????????????????????if 條件1: ? ?
? ? ? ? ? ? ? ? ? ? ? ? 語(yǔ)句1
? ? ? ? ? ? ? ? ? ? elif 條件:
? ? ? ? ? ? ? ? ? ? ? ? 語(yǔ)句2
? ? ? ? ? ? ? ? ? ? else:
? ? ? ? ? ? ? ? ? ? ? ? 語(yǔ)句3
? ? ? ? ? ? 3) ?? 循環(huán)語(yǔ)句
? ? ? ? ? ? ? ? ? ? 有限次數(shù)的循環(huán) -- for
? ? ? ? ? ? ? ? ? ? 條件循環(huán) -- while
? ? 8 ?? 函數(shù)
????????????????根據(jù)輸入?yún)?shù)產(chǎn)生不同輸出的功能過(guò)程
? ? ? ? ? ? ? ? def <函數(shù)名>(<參數(shù)列表>):
? ? ? ? ? ? ? ? ? ? ? ? <函數(shù)體>
? ? ? ? ? ? ? ? ? ? ?? return ? <返回值列表> ? ? ? ? ?
? ? 9 ?? 輸出輸出函數(shù)
? ? ? ? ? ? 1) ?input():從控制臺(tái)獲得用戶輸入的函數(shù)
????????????????????-input()函數(shù)的使用格式:
????????????????????????????<變量>=input(<提示信息字符串>)
????????????????????-用戶輸入的信息以字符串類型保存在<變量>中
????????????????????????????TempStr= input(“請(qǐng)輸入”)????# TempStr保存用戶輸入的信息
???????????????2)print():以字符形式向控制臺(tái)輸出結(jié)果的函數(shù)
????????????????????-print()函數(shù)的基本使用格式:
????????????????????????????print(<擬輸出字符串或字符串變量>)
? ? ? ? ? ? ? ? ? ? -字符串類型的一對(duì)引號(hào)僅在程序內(nèi)部使用,輸出無(wú)引號(hào)
? ? ? ? ? ? ? ? ? ? ? ? ? ? print("輸入格式錯(cuò)誤")? # 向控制臺(tái)輸出? 輸入格式錯(cuò)誤
? ? ? ? ? ? ? ? 3)print()函數(shù)的格式化 - format
????????????????????- print()函數(shù)的格式化:
????????????????????????????????print("轉(zhuǎn)換后的溫度是{:.2f}C".format(C))
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? --????{}表示槽,后續(xù)變量填充到槽中
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? --????{ :.2f }表示將變量C填充到這個(gè)位置時(shí)取小數(shù)點(diǎn)后2位
????????????????????????????????print("轉(zhuǎn)換后的溫度是{:.2f}C".format(C))
????????????????????????????????如果C的值是? 123.456789,則輸出結(jié)果為:????轉(zhuǎn)換后的溫度是123.45C
????????????????????4)????eval():去掉參數(shù)最外側(cè)引號(hào)并執(zhí)行余下語(yǔ)句的函數(shù)
????????????????????????????

10 ? Python與文件處理 ? -- ? open
11 ? 第三方包的處理 ?
? ? ? ? 1) 導(dǎo)入? import?packages
? ? ? ? 2) ? 安裝????pip install packages
? ? ? ? 3)程序打包? pyinstall?
三 ? ? ?? turtle 庫(kù)的使用
????????????turtle(海龜)庫(kù)是turtle繪圖體系的Python實(shí)現(xiàn);有一只海龜,其實(shí)在窗體正中心,在畫布上游走;走過(guò)的軌跡形成了繪制的圖形;海龜由程序控制,可以變換顏色、改變寬度等
? ? 1? 最小單位像素
? ? ? ? 1)畫布空間的大小決定了,單位像素的個(gè)數(shù),比如 1080*720 則代表當(dāng)前包含有 ??1080*720 個(gè)像素
? ? ? ? 2)單位像素的顏色由 RGB三原色決定,并且R,G,B的取值都是 0-255
? ?? 2 ?? turtle的相關(guān)命令
? ? ? ?? 關(guān)于窗體與畫布
? ? ? ? ? ? ? ? -- ?? 窗體,指代的是使用設(shè)備的屏幕大小
? ? ? ? ? ? ? ? --????畫布 ,指代的是繪圖區(qū)的大小,由turtle.setup(width,height,startx,starty)決定;width,height決定了畫布大小,startx,starty決定了畫布與窗體間的間距

? ?? 1)全局控制命令

? ? ? ? 2)畫筆控制命令

? ? ? ? 3)畫筆運(yùn)動(dòng)命令

練習(xí)? -- 繪制彩虹線
# 繪制彩虹線 Rainbow_Line
import turtle as t
from random import randint as rint
t.shape("turtle")
t.pensize(5)
t.colormode(255)
t.bgcolor("black")
t.tracer(False)
for x in range(700):
? ? t.color(rint(0,255),rint(0,255),rint(0,255))
? ? t.circle(2*(1+x/4),5)
? ? t.speed(30)
? ? t.tracer(True)

????????????