Python -- 程序?qū)嵗馕?/h2>

一????????以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)

編寫上述代碼,并保存為TempConvert.py文件

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

程序運(yùn)行效果

????????????6 ?? 維護(hù)升級(jí)

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

程序功能升級(jí)

二 ? ? ?? 程序語(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)特別地注明這種用法。

一個(gè)物理行中使用多于一個(gè)邏輯行

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

多個(gè)物理行寫一個(gè)邏輯行--明確地行連接

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

1暗示的行連接 ?

? ? ? ? ? ? ? ? 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關(guān)鍵字

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

help()命令進(jìn)入幫助系統(tǒng)查看關(guān)鍵字信息

? ? 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)

字符串的序號(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ù)

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

eval()函數(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)



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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容