第2章 Python程序實例解析
溫度轉換程序實例
溫度刻畫存在不同體系,攝氏度以1標準大氣壓下水的結冰點為0度,沸點為100度,將溫度進行等分刻畫。華氏度以1標準大氣壓下水的結冰點為32度,沸點為212度,將溫度進行等分刻畫。
問題:如何利用Python程序進行攝氏度和華氏度之間的轉換
- 輸入:華氏或者攝氏溫度值、溫度標識
- 處理:溫度轉化算法
- 輸出:華氏或者攝氏溫度值、溫度標識
F表示華氏度,82F表示華氏82度
C表示攝氏度,28C表示攝氏28度
根據(jù)華氏和攝氏溫度定義,轉換公式如下:
C = ( F – 32 ) / 1.8
F = C * 1.8 + 32
其中,C表示攝氏溫度,F(xiàn)表示華氏溫度
#溫度轉換程序
TempStr = input("請輸入帶有符號的溫度值:")
if TempStr[-1] in ['F','f']:
C = (eval(TempStr[0:-1]) -32) / 1.8
print("轉換后的溫度是{:.2f}C".format(C))
elif TempStr[-1] in ['C','c']:
F = 1.8 * eval(TempStr[0:-1]) + 32
print("轉換后的溫度是{:.2f}F".format(F))
else:
print("輸入的格式錯誤")
請輸入帶有符號的溫度值:32C
轉換后的溫度是89.60F
Python程序語法元素分析
包括格式框架、注釋、變量、表達式、分支語句、循環(huán)語句、函數(shù)等于法院訴
程序的格式框架
Python語言采用嚴格的“縮進”來表明程序的格式框架。縮進指每一行代碼開始前的空白區(qū)域,用來表示代碼之間的包含和層次關系。
- 用以在Python中標明代碼的層次關系
- 縮進是Python語言中表明程序框架的唯一手段
注釋
注釋:程序員在代碼中加入的說明信息,不被計算機執(zhí)行
注釋的兩種方法:
- 單行注釋以#開頭
Here are the comments
- 多行注釋以 ’’’開頭和結尾
’’’
This is a multiline comment
used in Python
’’’
命名與保留字
- 常量:程序中值不發(fā)生改變的元素
- 變量:程序中值發(fā)生改變或者可以發(fā)生改變的元素
Python語言允許采用大寫字母、小寫字母、數(shù)字、下劃線(_)和漢字等字符及其組合給變量命名,但名字的首字符不能是數(shù)字,中間不能出現(xiàn)空格,長度沒有限制
注意:標識符對大小寫敏感,python和Python是兩個不同的名字
保留字,也稱為關鍵字,指被編程語言內(nèi)部定義并保留使用的標識符。
程序員編寫程序不能定義與保留字相同的標識符。
每種程序設計語言都有一套保留字,保留字一般用來構成程序整體框架、表達關鍵值和具有結構性的復雜語義等。
掌握一門編程語言首先要熟記其所對應的保留字。
字符串
- Python語言中,字符串是用兩個雙引號“ ”或者單引號‘ ’括起來的一個或多個字符。
- Python字符串的兩種序號體系:正向和反向
賦值語句
- Python語言中,= 表示“賦值”,即將等號右側的值計算后將結果值賦給左側變量,包含等號(=)的語句稱為“賦值語句”
- 同步賦值語句:同時給多個變量賦值
<變量1>, …, <變量N> = <表達式1>, …, <表達式N>
#例子:將兩個變量的值交換,思考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(<提示性文字>)
分支語句
分支語句是控制程序運行的一類重要語句,它的作用是根據(jù)判斷條件選擇程序執(zhí)行路徑,使用方式如下:
if <條件1>:
<語句塊1>
elif <條件2>:
<語句塊2>
...
else:
<語句塊N>
eval()函數(shù)
eval(<字符串>)函數(shù)是Python語言中一個十分重要的函數(shù),它能夠以Python表達式的方式解析并執(zhí)行字符串,將返回結果輸出
例如:
#eval函數(shù)實例
x = 5
eval("x ** 2 + 2 * x +7")
42
輸出函數(shù)
- print()函數(shù)用來輸出字符信息,或以字符形式輸出變量。
- print()函數(shù)可以輸出各種類型變量的值。
- print()函數(shù)通過%來選擇要輸出的變量。
實例:用戶輸入兩個數(shù),計算平均數(shù)
num1 = input("請輸入第一個數(shù):")
num2 = input("請輸入第二個數(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)語句:控制程序運行,根據(jù)判斷條件或計數(shù)條件確定一段程序的運行次數(shù)
遍歷循環(huán),基本過程如下
for i in range (<計數(shù)值>):
<表達式1>
例如,使某一段程序連續(xù)運行10次
for i in range (10):
<源代碼>
其中,變量i用于計數(shù)
函數(shù)
內(nèi)置函數(shù)和自定義函數(shù)
turtle庫和蟒蛇繪制程序
實例: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是一個關鍵字,用來引入一些外部庫,這里的含義是引入一個名字叫turtle的函數(shù)庫
- Turtle中的turtle.setup()函數(shù)用于啟動一個圖形窗口,它有四個參數(shù)
turtle.setup(width, height, startx, starty)
分別是:啟動窗口的寬度和高度
表示窗口啟動時,窗口左上角在屏幕中的坐標位置。
- 我們所使用的顯示屏幕也是一個坐標系,該坐標系以左上角為原點,向左和向下分別是x軸和y軸。
- Turtle中的turtle.pensize()函數(shù)表示小烏龜運動軌跡的寬度。
- Turtle中的turtle.pencolor()函數(shù)表示小烏龜運動軌跡的顏色。
- Turtle中的turtle.seth(angle)函數(shù)表示小烏龜啟動時運動的方向。
- turtle.circle()函數(shù)讓小烏龜沿著一個圓形爬行
參數(shù)rad描述圓形軌跡半徑的位置
這個半徑在小烏龜運行的左側rad遠位置處,如果rad為負值,則半徑在小烏龜運行的右側
參數(shù)angle表示小烏龜沿著圓形爬行的弧度值
- turtle.fd()函數(shù)也可以用turtle.forward()表示烏龜向前直線爬行移動
程序練習題