往期導(dǎo)航
一、python 之基礎(chǔ)語(yǔ)法、基礎(chǔ)數(shù)據(jù)類(lèi)型、復(fù)合數(shù)據(jù)類(lèi)型及基本操作
二、python 之邏輯運(yùn)算和制流程語(yǔ)句
三、python 之函數(shù)以及常用內(nèi)置函數(shù)
越來(lái)越智能的加法計(jì)算器
現(xiàn)在的實(shí)戰(zhàn)需求:計(jì)算出任意兩個(gè)數(shù)字的加法之和
可以通過(guò)一下代碼直接計(jì)算出a和b之和:
# 定義一個(gè)數(shù)字a
a = 12
# 定義一個(gè)數(shù)字b
b = 232
# 結(jié)果計(jì)算
r = a + b
# 輸出結(jié)果
print("加法結(jié)果:", r)
以上代碼只需要修改a和b的值,就可以輕松計(jì)算a和b數(shù)字之和??此茮](méi)有問(wèn)題,但是每次都需要修改代碼中的數(shù)字,然后重新運(yùn)行才能夠計(jì)算。
能不能讓程序更聰明一點(diǎn)?這里就引入input()函數(shù),這樣就能夠接收到鍵盤(pán)輸入的數(shù)據(jù)了!下面是經(jīng)過(guò)升級(jí)改造的代碼:
# 定義一個(gè)數(shù)字a
a = float(input("請(qǐng)輸入數(shù)字A:"))
# 定義一個(gè)數(shù)字b
b = float(input("請(qǐng)輸入數(shù)字B:"))
# 結(jié)果計(jì)算
r = a + b
print("加法結(jié)果:", r)
因?yàn)閕nput()函數(shù)接收到的是字符串,如果不轉(zhuǎn)換成數(shù)字類(lèi)型是無(wú)法正確計(jì)算出結(jié)果的!
小伙伴們可以試一下如果不使用float(input())會(huì)是什么效果!
以上代碼可以通過(guò)鍵盤(pán)輸入進(jìn)行計(jì)算了,great!但是只能計(jì)算一次,程序就結(jié)束了,還是不夠智能。能不能讓他可以在我們的控制之下才計(jì)算,比如我們輸入’add’程序就會(huì)執(zhí)行,輸入’quit’程序才會(huì)退出。
下面是再次改造的代碼:
# 定義程序標(biāo)識(shí)
flag = 'add'
while flag != 'quit':
# 定義一個(gè)數(shù)字a
a = float(input("請(qǐng)輸入數(shù)字A:"))
# 定義一個(gè)數(shù)字b
b = float(input("請(qǐng)輸入數(shù)字B:"))
# 結(jié)果計(jì)算
r = a + b
print("加法結(jié)果:", r)
# 輸入程序下一步標(biāo)識(shí)
flag = input("請(qǐng)輸入程序標(biāo)識(shí)(add:加法計(jì)算,quit:退出程序):")
我們通過(guò)引入一個(gè)flag字段來(lái)標(biāo)志程序是繼續(xù)計(jì)算,還是結(jié)束。當(dāng)flag不等于’quit’時(shí),就接收鍵盤(pán)輸入,然后繼續(xù)計(jì)算,如果flag等于’quit’就結(jié)束程序。改造完成后的運(yùn)行結(jié)果:
改造后已經(jīng)很棒啦?。?!程序執(zhí)行一次,只要我們程序標(biāo)識(shí)輸入add就可以一直計(jì)算下去!只要輸入quit程序就可以結(jié)束!泰庫(kù)拉!
加減乘除計(jì)算器
作為母胎就會(huì)加減乘除的你們,怎么甘心程序只會(huì)加法?這里擴(kuò)展到加減乘除吧!至少讓程序也達(dá)到母胎水平!
我們要實(shí)現(xiàn)的效果就是:
首先可以進(jìn)行加法、減法、乘法和除法運(yùn)算。用戶(hù)可以輸入相應(yīng)的標(biāo)識(shí)來(lái)選擇進(jìn)行哪種運(yùn)算,然后輸入兩個(gè)數(shù)字進(jìn)行計(jì)算。程序會(huì)根據(jù)用戶(hù)輸入的標(biāo)識(shí)執(zhí)行相應(yīng)的操作,然后輸出計(jì)算結(jié)果。
定義規(guī)則:
標(biāo)識(shí) | 名稱(chēng) |
---|---|
add | 加法 |
sub | 減法 |
mul | 乘法 |
div | 除法 |
quit | 退出程序 |
直接上代碼:
# 加法函數(shù)
def add(itemA, itemB):
return itemA + itemB
# 減法函數(shù)
def sub(itemA, itemB):
return itemA - itemB
# 乘法函數(shù)
def mul(itemA, itemB):
return itemA * itemB
# 除法函數(shù)
def div(itemA, itemB):
return itemA / itemB
# 定義程序標(biāo)識(shí)
flag = input("請(qǐng)輸入程序標(biāo)識(shí)(add:加法,sub:減法,mul:乘法,div:除法,quit:退出程序):")
while flag != 'quit':
# 定義一個(gè)數(shù)字a
a = float(input("請(qǐng)輸入數(shù)字A:"))
# 定義一個(gè)數(shù)字b
b = float(input("請(qǐng)輸入數(shù)字B:"))
# 判斷計(jì)算方式
r = "計(jì)算方式錯(cuò)誤!"
if flag == 'add': # 加法
r = add(a, b)
elif flag == 'sub': # 減法
r = sub(a, b)
elif flag == 'mul': # 乘法
r = mul(a, b)
elif flag == 'div': # 除法
r = div(a, b)
# 結(jié)果計(jì)算
print("計(jì)算結(jié)果(" + flag + "):", r)
# 輸入程序下一步標(biāo)識(shí)
flag = input("請(qǐng)輸入程序標(biāo)識(shí)(add:加法,sub:減法,mul:乘法,div:除法,quit:退出程序):")
這里我們對(duì)flag的含義進(jìn)行擴(kuò)充,并且將加減乘除都封裝成了函數(shù)方便調(diào)用!
首先定義了四個(gè)數(shù)學(xué)運(yùn)算的函數(shù)(加法、減法、乘法、除法),然后進(jìn)入主程序。在主程序中,用戶(hù)輸入一個(gè)操作標(biāo)識(shí)。如果操作標(biāo)識(shí)不等于 ’quit‘,繼續(xù)輸入兩個(gè)數(shù)字,程序會(huì)執(zhí)行標(biāo)識(shí)相應(yīng)的計(jì)算并輸出結(jié)果;如果操作標(biāo)識(shí)不在我們給定的范圍內(nèi),會(huì)輸出錯(cuò)誤信息。用戶(hù)可以通過(guò)輸入 ’quit‘ 來(lái)退出程序。程序會(huì)循環(huán)運(yùn)行,直到用戶(hù)輸入 ’quit‘ 為止。
代碼執(zhí)行結(jié)果如下所示:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-673538.html
來(lái)點(diǎn)課程作業(yè)?
加入一種新的算法!平方和!
平方和公式:[a^2 + b^2]的值!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-673538.html
更多實(shí)戰(zhàn)項(xiàng)目可進(jìn)入下方官網(wǎng)
到了這里,關(guān)于【0基礎(chǔ)入門(mén)Python Web筆記】四、python 之計(jì)算器的進(jìn)階之路的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!