第2章 Python程序?qū)嵗馕?/h1>
溫度轉(zhuǎn)換程序?qū)嵗?/h2>
溫度刻畫存在不同體系炸宵,攝氏度以1標(biāo)準(zhǔn)大氣壓下水的結(jié)冰點(diǎn)為0度,沸點(diǎn)為100度谷扣,將溫度進(jìn)行等分刻畫土全。華氏度以1標(biāo)準(zhǔn)大氣壓下水的結(jié)冰點(diǎn)為32度,沸點(diǎn)為212度会涎,將溫度進(jìn)行等分刻畫裹匙。
問題:如何利用Python程序進(jìn)行攝氏度和華氏度之間的轉(zhuǎn)換
- 輸入:華氏或者攝氏溫度值、溫度標(biāo)識(shí)
- 處理:溫度轉(zhuǎn)化算法
- 輸出:華氏或者攝氏溫度值末秃、溫度標(biāo)識(shí)
F表示華氏度概页,82F表示華氏82度
C表示攝氏度,28C表示攝氏28度
根據(jù)華氏和攝氏溫度定義练慕,轉(zhuǎn)換公式如下:
C = ( F – 32 ) / 1.8
F = C * 1.8 + 32
其中惰匙,C表示攝氏溫度,F(xiàn)表示華氏溫度
#溫度轉(zhuǎn)換程序
TempStr = input("請(qǐng)輸入帶有符號(hào)的溫度值:")
if TempStr[-1] in ['F','f']:
C = (eval(TempStr[0:-1]) -32) / 1.8
print("轉(zhuǎn)換后的溫度是{:.2f}C".format(C))
elif TempStr[-1] in ['C','c']:
F = 1.8 * eval(TempStr[0:-1]) + 32
print("轉(zhuǎn)換后的溫度是{:.2f}F".format(F))
else:
print("輸入的格式錯(cuò)誤")
請(qǐng)輸入帶有符號(hào)的溫度值:32C
轉(zhuǎn)換后的溫度是89.60F
Python程序語法元素分析
包括格式框架铃将、注釋项鬼、變量、表達(dá)式劲阎、分支語句绘盟、循環(huán)語句、函數(shù)等于法院訴
程序的格式框架
Python語言采用嚴(yán)格的“縮進(jìn)”來表明程序的格式框架悯仙×湔保縮進(jìn)指每一行代碼開始前的空白區(qū)域,用來表示代碼之間的包含和層次關(guān)系锡垄。
- 用以在Python中標(biāo)明代碼的層次關(guān)系
- 縮進(jìn)是Python語言中表明程序框架的唯一手段
注釋
注釋:程序員在代碼中加入的說明信息稚虎,不被計(jì)算機(jī)執(zhí)行
注釋的兩種方法:
- 單行注釋以#開頭
Here are the comments
- 多行注釋以 ’’’開頭和結(jié)尾
’’’
This is a multiline comment
used in Python
’’’
命名與保留字
- 常量:程序中值不發(fā)生改變的元素
- 變量:程序中值發(fā)生改變或者可以發(fā)生改變的元素
Python語言允許采用大寫字母、小寫字母偎捎、數(shù)字蠢终、下劃線(_)和漢字等字符及其組合給變量命名序攘,但名字的首字符不能是數(shù)字,中間不能出現(xiàn)空格寻拂,長度沒有限制
注意:標(biāo)識(shí)符對(duì)大小寫敏感程奠,python和Python是兩個(gè)不同的名字
保留字,也稱為關(guān)鍵字祭钉,指被編程語言內(nèi)部定義并保留使用的標(biāo)識(shí)符瞄沙。
程序員編寫程序不能定義與保留字相同的標(biāo)識(shí)符。
每種程序設(shè)計(jì)語言都有一套保留字慌核,保留字一般用來構(gòu)成程序整體框架距境、表達(dá)關(guān)鍵值和具有結(jié)構(gòu)性的復(fù)雜語義等。
掌握一門編程語言首先要熟記其所對(duì)應(yīng)的保留字垮卓。
字符串
- Python語言中垫桂,字符串是用兩個(gè)雙引號(hào)“ ”或者單引號(hào)‘ ’括起來的一個(gè)或多個(gè)字符。
- Python字符串的兩種序號(hào)體系:正向和反向
賦值語句
- Python語言中粟按,= 表示“賦值”诬滩,即將等號(hào)右側(cè)的值計(jì)算后將結(jié)果值賦給左側(cè)變量,包含等號(hào)(=)的語句稱為“賦值語句”
- 同步賦值語句:同時(shí)給多個(gè)變量賦值
<變量1>, …, <變量N> = <表達(dá)式1>, …, <表達(dá)式N>
#例子:將兩個(gè)變量的值交換灭将,思考C語言怎么做
x,y = 10,20
print("x={},y={}".format(x,y))
x,y = y,x
print("x={},y={}".format(x,y))
x=10,y=20
x=20,y=10
input()函數(shù)
獲得用戶輸入之前疼鸟,input()函數(shù)可以包含一些提示性文字
<變量> = input(<提示性文字>)
分支語句
分支語句是控制程序運(yùn)行的一類重要語句,它的作用是根據(jù)判斷條件選擇程序執(zhí)行路徑庙曙,使用方式如下:
if <條件1>:
<語句塊1>
elif <條件2>:
<語句塊2>
...
else:
<語句塊N>
eval()函數(shù)
eval(<字符串>)函數(shù)是Python語言中一個(gè)十分重要的函數(shù)空镜,它能夠以Python表達(dá)式的方式解析并執(zhí)行字符串,將返回結(jié)果輸出
例如:
#eval函數(shù)實(shí)例
x = 5
eval("x ** 2 + 2 * x +7")
42
輸出函數(shù)
- print()函數(shù)用來輸出字符信息捌朴,或以字符形式輸出變量姑裂。
- print()函數(shù)可以輸出各種類型變量的值。
- print()函數(shù)通過%來選擇要輸出的變量男旗。
實(shí)例:用戶輸入兩個(gè)數(shù)舶斧,計(jì)算平均數(shù)
num1 = input("請(qǐng)輸入第一個(gè)數(shù):")
num2 = input("請(qǐng)輸入第二個(gè)數(shù):")
avg = (float(num1) + float(num2)) / 2
print("%.1f和%.1f的平均數(shù)是%.1f" %(float(num1),float(num2),avg))
12.0和23.0的平均數(shù)是17.5
循環(huán)語句
循環(huán)語句:控制程序運(yùn)行,根據(jù)判斷條件或計(jì)數(shù)條件確定一段程序的運(yùn)行次數(shù)
遍歷循環(huán)察皇,基本過程如下
for i in range (<計(jì)數(shù)值>):
<表達(dá)式1>
例如茴厉,使某一段程序連續(xù)運(yùn)行10次
for i in range (10):
<源代碼>
其中,變量i用于計(jì)數(shù)
函數(shù)
內(nèi)置函數(shù)和自定義函數(shù)
turtle庫和蟒蛇繪制程序
![](img1.jpg)
實(shí)例:Python蟒蛇繪制
#引入turtle庫
import turtle
turtle.setup(650,350,200,200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
turtle.circle(40,80)
turtle.circle(-40,80)
turtle.circle(40,80/2)
turtle.fd(40)
turtle.circle(16,180)
turtle.fd(40 * 2/3)
turtle庫語法元素分析
- import是一個(gè)關(guān)鍵字什荣,用來引入一些外部庫矾缓,這里的含義是引入一個(gè)名字叫turtle的函數(shù)庫
- Turtle中的turtle.setup()函數(shù)用于啟動(dòng)一個(gè)圖形窗口,它有四個(gè)參數(shù)
turtle.setup(width, height, startx, starty)
分別是:啟動(dòng)窗口的寬度和高度
表示窗口啟動(dòng)時(shí)稻爬,窗口左上角在屏幕中的坐標(biāo)位置嗜闻。
- 我們所使用的顯示屏幕也是一個(gè)坐標(biāo)系,該坐標(biāo)系以左上角為原點(diǎn)桅锄,向左和向下分別是x軸和y軸琉雳。
- Turtle中的turtle.pensize()函數(shù)表示小烏龜運(yùn)動(dòng)軌跡的寬度样眠。
- Turtle中的turtle.pencolor()函數(shù)表示小烏龜運(yùn)動(dòng)軌跡的顏色。
- Turtle中的turtle.seth(angle)函數(shù)表示小烏龜啟動(dòng)時(shí)運(yùn)動(dòng)的方向翠肘。
- turtle.circle()函數(shù)讓小烏龜沿著一個(gè)圓形爬行
參數(shù)rad描述圓形軌跡半徑的位置
這個(gè)半徑在小烏龜運(yùn)行的左側(cè)rad遠(yuǎn)位置處檐束,如果rad為負(fù)值,則半徑在小烏龜運(yùn)行的右側(cè)
參數(shù)angle表示小烏龜沿著圓形爬行的弧度值
- turtle.fd()函數(shù)也可以用turtle.forward()表示烏龜向前直線爬行移動(dòng)
程序練習(xí)題