最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python雙版本計(jì)算器詳解

 更新時(shí)間:2021年04月19日 14:19:04   作者:啥也不是:)  
這篇文章主要介紹了如何用Python制作計(jì)算器,文章中有兩個(gè)版本,代碼詳細(xì),適合絕大部分朋友,如果你對(duì)python如何制作計(jì)算器有興趣,可以參考下這篇文章

有框計(jì)算器

這個(gè)計(jì)算器我們用到了Python自帶的Tkinter庫(kù)

# 導(dǎo)入tkinter庫(kù)
import tkinter

我們要對(duì)窗口進(jìn)行一些基本操作

# 獲取一個(gè)窗口
window = tkinter.Tk()
# 設(shè)置標(biāo)題
window.title('計(jì)算器')
# 設(shè)置窗口大小
window.geometry('200x200')

接著用函數(shù)定義一個(gè)輸入方法

輸入方法

# 輸入方法
def add(n):
    # 獲取到n1文本框的值
    n1 = inp.get()
    # 清空文本框
    inp.delete(0,len(n1))
    # 插入原來(lái)的加上新輸入?yún)?shù)n
    inp.insert(0,n1+str(n))

再用函數(shù)定義一個(gè)計(jì)算方法

計(jì)算方法

# 執(zhí)行計(jì)算方法
def calc():
    n1 = inp.get()  
    inp.delete(0,len(n1))
    # 把文本框的字符串用eval當(dāng)代碼執(zhí)行一次,再插入到文本框
    inp.insert(0,str(eval(n1)))

完成后還需要把文本框給清除,我們還是用函數(shù)

清除文本框方法

# 清空文本框
def clear():
    n1 = inp.get()  
    inp.delete(0,len(n1))

清空文本框后還會(huì)留下一個(gè)字符,我們需要?jiǎng)h除最后一個(gè)字符,仍然用函數(shù)

刪除最后一個(gè)字符方法

# 刪除最后一個(gè)字符
def back():
    n1 = inp.get()  
    inp.delete(len(n1)-1,len(n1))

接著我們計(jì)算絕對(duì)值

計(jì)算絕對(duì)值

# 計(jì)算絕對(duì)值
def ab():
    n1 = inp.get()  
    inp.delete(0,len(n1))
    inp.insert(0,str(eval(n1)*-1))

設(shè)置一些文本框作為按鈕的一部分

設(shè)置文本框

# 設(shè)置一個(gè)文本框
inp = tkinter.Entry(window, width=25)
# 在第0行,第0個(gè),合并5列
inp.grid(row=0,column=0,columnspan=5)

再制作一些功能按鈕

功能按鈕

# 刪除按鈕(窗口,寬度,文本,執(zhí)行命令).grid(1行,0列)
tkinter.Button(window,width=5, text="C", command=clear).grid(row=1,column=0)
tkinter.Button(window,width=5, text="←", command=back).grid(row=1,column=1)
tkinter.Button(window,width=5, text="+/-", command=ab).grid(row=1,column=2)

再制作運(yùn)算符按鈕

運(yùn)算符

# 刪除按鈕(窗口,寬度,文本,背景色,文本顏色,執(zhí)行命令并傳入?yún)?shù)).grid(1行,4列)
tkinter.Button(window,width=5, text="+",bg="#f70",fg="#fff",command=lambda:add("+")).grid(row=1,column=4)
tkinter.Button(window,width=5, text="-", bg="#f70",fg="#fff",command=lambda:add("-")).grid(row=2,column=4)
tkinter.Button(window,width=5, text="×",bg="#f70",fg="#fff",command=lambda:add("*")).grid(row=3,column=4)
tkinter.Button(window,width=5, text="÷",bg="#f70",fg="#fff",command=lambda:add("/")).grid(row=4,column=4)
tkinter.Button(window,width=12,text="0", command=lambda:add("0")).grid(row=5,column=0,columnspan=2)
tkinter.Button(window,width=5,text="=", bg="#f70",fg="#fff",command=calc).grid(row=5,column=4)
tkinter.Button(window,width=5, text=".", command=lambda:add(".")).grid(row=5,column=2)

最后,我們發(fā)現(xiàn)還沒(méi)有 123 456 789 9個(gè)按鈕,我們就用for循環(huán)創(chuàng)建

把代碼加到

# 設(shè)置一個(gè)文本框
inp = tkinter.Entry(window, width=25)
# 在第0行,第0個(gè),合并5列
inp.grid(row=0,column=0,columnspan=5)

的下面

9個(gè)按鈕

# 設(shè)置一個(gè)文本框
inp = tkinter.Entry(window, width=25)
# 在第0行,第0個(gè),合并5列
inp.grid(row=0,column=0,columnspan=5)
# 用for循環(huán) 創(chuàng)建 123 456 789 9個(gè)按鈕
for i in range(0,3):
    for j in range(1,4):
      n = j+i*3
      btn=tkinter.Button(window, text=str(j+i*3),width=5, command=lambda n=n:add(n))
      btn.grid(row=i+2,column=j-1)

一個(gè)有框的計(jì)算器就做好了,完整代碼請(qǐng)看文章末尾

命令行計(jì)算器

這個(gè)計(jì)算器的代碼很短,很快就能學(xué)會(huì)

首先獲取第一個(gè)數(shù)與第二個(gè)數(shù)

獲取數(shù)

# 通過(guò)用戶(hù)輸入獲取運(yùn)算的第一個(gè)數(shù)
num1 = int(input("輸入第一個(gè)數(shù)字: "))
# 通過(guò)用戶(hù)輸入獲取運(yùn)算的第二個(gè)數(shù)
# 默認(rèn)是字符串需要用int把字符轉(zhuǎn)換為數(shù)組
num2 = int(input("輸入第二個(gè)數(shù)字: "))
# 提示用戶(hù)輸入運(yùn)算符

我們還得添加while True來(lái)保證代碼重復(fù)執(zhí)行,否則計(jì)算器無(wú)法運(yùn)算多次

在前面加上while True

while True:
	# 通過(guò)用戶(hù)輸入獲取運(yùn)算的第一個(gè)數(shù)
	num1 = int(input("輸入第一個(gè)數(shù)字: "))
	# 通過(guò)用戶(hù)輸入獲取運(yùn)算的第二個(gè)數(shù)
	# 默認(rèn)是字符串需要用int把字符轉(zhuǎn)換為數(shù)組
	num2 = int(input("輸入第二個(gè)數(shù)字: "))
	# 提示用戶(hù)輸入運(yùn)算符

這樣就能重復(fù)了

接著獲取運(yùn)算方法

運(yùn)算方法

print("輸入運(yùn)算:1、相加;2、相減;3、相乘;4、相除")
# 獲取用戶(hù)輸入的運(yùn)算符號(hào)
choice = input("輸入你的選擇(1/2/3/4):")

接著判斷加法

判斷加法

# 如果是1
if choice == '1':
	print(num1,"+",num2,"=", num1+num2)

減法、乘法、除法和加法差不多,你們可以自己試試

分割
分割

實(shí)在不會(huì)也可以看看我的

剩下的

# 如果2
	elif choice == '2':
		print(num1,"-",num2,"=", num1-num2) 
	elif choice == '3':
		print(num1,"×",num2,"=", num1*num2) 
	elif choice == '4':
		print(num1,"÷",num2,"=", num1/num2)

再把他們橋接到加法的下面

橋接

while True:
	# 通過(guò)用戶(hù)輸入獲取運(yùn)算的第一個(gè)數(shù)
	num1 = int(input("輸入第一個(gè)數(shù)字: "))
	# 通過(guò)用戶(hù)輸入獲取運(yùn)算的第二個(gè)數(shù)
	# 默認(rèn)是字符串需要用int把字符轉(zhuǎn)換為數(shù)組
	num2 = int(input("輸入第二個(gè)數(shù)字: "))
	# 提示用戶(hù)輸入運(yùn)算符
	print("輸入運(yùn)算:1、相加;2、相減;3、相乘;4、相除")
	# 獲取用戶(hù)輸入的運(yùn)算符號(hào)
	choice = input("輸入你的選擇(1/2/3/4):")
	# 如果是1
	if choice == '1':
		print(num1,"+",num2,"=", num1+num2)
	# 如果2
	elif choice == '2':
		print(num1,"-",num2,"=", num1-num2) 
	elif choice == '3':
		print(num1,"×",num2,"=", num1*num2) 
	elif choice == '4':
		print(num1,"÷",num2,"=", num1/num2)

算法部分就好了,我們還需要加一個(gè)else,否則輸出將會(huì)出錯(cuò)

else

# 其他都是非法的
else:
	print("非法輸入")

最后的最后我們把else加到上面一部分的下面

橋接2

while True:
	# 通過(guò)用戶(hù)輸入獲取運(yùn)算的第一個(gè)數(shù)
	num1 = int(input("輸入第一個(gè)數(shù)字: "))
	# 通過(guò)用戶(hù)輸入獲取運(yùn)算的第二個(gè)數(shù)
	# 默認(rèn)是字符串需要用int把字符轉(zhuǎn)換為數(shù)組
	num2 = int(input("輸入第二個(gè)數(shù)字: "))
	# 提示用戶(hù)輸入運(yùn)算符
	print("輸入運(yùn)算:1、相加;2、相減;3、相乘;4、相除")
	# 獲取用戶(hù)輸入的運(yùn)算符號(hào)
	choice = input("輸入你的選擇(1/2/3/4):")
	# 如果是1
	if choice == '1':
		print(num1,"+",num2,"=", num1+num2)
	# 如果2
	elif choice == '2':
		print(num1,"-",num2,"=", num1-num2) 
	elif choice == '3':
		print(num1,"×",num2,"=", num1*num2) 
	elif choice == '4':
		print(num1,"÷",num2,"=", num1/num2)
	# 其他都是非法的
	else:
		print("非法輸入")

兩個(gè)計(jì)算器都介紹完畢了,接下來(lái)是完整代碼

完整代碼

有框計(jì)算器

# 導(dǎo)入tkinter庫(kù)
import tkinter
# 獲取一個(gè)窗口
window = tkinter.Tk()
# 設(shè)置標(biāo)題
window.title('計(jì)算器')
# 設(shè)置窗口大小
window.geometry('200x200')
# 輸入方法
def add(n):
    # 獲取到n1文本框的值
    n1 = inp.get()
    # 清空文本框
    inp.delete(0,len(n1))
    # 插入原來(lái)的加上新輸入?yún)?shù)n
    inp.insert(0,n1+str(n))
# 執(zhí)行計(jì)算方法
def calc():
    n1 = inp.get()  
    inp.delete(0,len(n1))
    # 把文本框的字符串用eval當(dāng)代碼執(zhí)行一次,再插入到文本框
    inp.insert(0,str(eval(n1)))
# 清空文本框
def clear():
    n1 = inp.get()  
    inp.delete(0,len(n1))
# 刪除最后一個(gè)字符
def back():
    n1 = inp.get()  
    inp.delete(len(n1)-1,len(n1))
# 計(jì)算絕對(duì)值
def ab():
    n1 = inp.get()  
    inp.delete(0,len(n1))
    inp.insert(0,str(eval(n1)*-1))
# 設(shè)置一個(gè)文本框
inp = tkinter.Entry(window, width=25)
# 在第0行,第0個(gè),合并5列
inp.grid(row=0,column=0,columnspan=5)
# 用for循環(huán) 創(chuàng)建 123 456 789 9個(gè)按鈕
for i in range(0,3):
    for j in range(1,4):
      n = j+i*3
      btn=tkinter.Button(window, text=str(j+i*3),width=5, command=lambda n=n:add(n))
      btn.grid(row=i+2,column=j-1)
# 刪除按鈕(窗口,寬度,文本,執(zhí)行命令).grid(1行,0列)
tkinter.Button(window,width=5, text="C", command=clear).grid(row=1,column=0)
tkinter.Button(window,width=5, text="←", command=back).grid(row=1,column=1)
tkinter.Button(window,width=5, text="+/-", command=ab).grid(row=1,column=2)
# 刪除按鈕(窗口,寬度,文本,背景色,文本顏色,執(zhí)行命令并傳入?yún)?shù)).grid(1行,4列)
tkinter.Button(window,width=5, text="+",bg="#f70",fg="#fff",command=lambda:add("+")).grid(row=1,column=4)
tkinter.Button(window,width=5, text="-", bg="#f70",fg="#fff",command=lambda:add("-")).grid(row=2,column=4)
tkinter.Button(window,width=5, text="×",bg="#f70",fg="#fff",command=lambda:add("*")).grid(row=3,column=4)
tkinter.Button(window,width=5, text="÷",bg="#f70",fg="#fff",command=lambda:add("/")).grid(row=4,column=4)
tkinter.Button(window,width=12,text="0", command=lambda:add("0")).grid(row=5,column=0,columnspan=2)
tkinter.Button(window,width=5,text="=", bg="#f70",fg="#fff",command=calc).grid(row=5,column=4)
tkinter.Button(window,width=5, text=".", command=lambda:add(".")).grid(row=5,column=2)
# 進(jìn)入消息循環(huán)
window.mainloop()

命令行計(jì)算器

while True:
	# 通過(guò)用戶(hù)輸入獲取運(yùn)算的第一個(gè)數(shù)
	num1 = int(input("輸入第一個(gè)數(shù)字: "))
	# 通過(guò)用戶(hù)輸入獲取運(yùn)算的第二個(gè)數(shù)
	# 默認(rèn)是字符串需要用int把字符轉(zhuǎn)換為數(shù)組
	num2 = int(input("輸入第二個(gè)數(shù)字: "))
	# 提示用戶(hù)輸入運(yùn)算符
	print("輸入運(yùn)算:1、相加;2、相減;3、相乘;4、相除")
	# 獲取用戶(hù)輸入的運(yùn)算符號(hào)
	choice = input("輸入你的選擇(1/2/3/4):")
	# 如果是1
	if choice == '1':
		print(num1,"+",num2,"=", num1+num2)
	# 如果2
	elif choice == '2':
		print(num1,"-",num2,"=", num1-num2) 
	elif choice == '3':
		print(num1,"×",num2,"=", num1*num2) 
	elif choice == '4':
		print(num1,"÷",num2,"=", num1/num2)
	# 其他都是非法的
	else:
		print("非法輸入")

到此這篇關(guān)于Python雙版本計(jì)算器詳解的文章就介紹到這了,希望對(duì)大家有幫助,更多相關(guān)python內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python使用0初始化字典的常用方法小結(jié)

    Python使用0初始化字典的常用方法小結(jié)

    字典(Dictionary)是?Python?中非常常用的數(shù)據(jù)結(jié)構(gòu)之一,它可以將鍵(Key)映射到值(Value),本文將介紹多種在?Python?中使用?0?初始化字典的方法,希望對(duì)大家有所幫助
    2024-02-02
  • Python二元賦值實(shí)用技巧解析

    Python二元賦值實(shí)用技巧解析

    這篇文章主要介紹了Python二元賦值實(shí)用技巧解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Python 里最強(qiáng)的地圖繪制神器

    Python 里最強(qiáng)的地圖繪制神器

    這篇文章主要介紹了Python 里最強(qiáng)的地圖繪制神器,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Python實(shí)現(xiàn)動(dòng)態(tài)圖解析、合成與倒放

    Python實(shí)現(xiàn)動(dòng)態(tài)圖解析、合成與倒放

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)動(dòng)態(tài)圖的解析、合成與倒放,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Python?中的json常見(jiàn)用法實(shí)例詳解

    Python?中的json常見(jiàn)用法實(shí)例詳解

    這篇文章主要介紹了Python?中的json常見(jiàn)用法,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • Python利用treap實(shí)現(xiàn)雙索引的方法

    Python利用treap實(shí)現(xiàn)雙索引的方法

    所遍歷的元素一定是遞增(小堆)或是遞減(大堆)關(guān)系,但是我們無(wú)法得知左子樹(shù)與右子樹(shù)兩部分節(jié)點(diǎn)的排序關(guān)系。本文就來(lái)講講算法和數(shù)據(jù)結(jié)構(gòu)共同滿(mǎn)足一組特性,感興趣的小伙伴請(qǐng)參考下面文章的內(nèi)容
    2021-09-09
  • TensorFlow基于MNIST數(shù)據(jù)集實(shí)現(xiàn)車(chē)牌識(shí)別(初步演示版)

    TensorFlow基于MNIST數(shù)據(jù)集實(shí)現(xiàn)車(chē)牌識(shí)別(初步演示版)

    這篇文章主要介紹了TensorFlow基于MNIST數(shù)據(jù)集實(shí)現(xiàn)車(chē)牌識(shí)別(初步演示版),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • pytorch模型部署到onnx的詳細(xì)過(guò)程

    pytorch模型部署到onnx的詳細(xì)過(guò)程

    這篇文章主要介紹了如何簡(jiǎn)單的將pytorch模型部署到onnx,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • 如何用OpenCV -python3實(shí)現(xiàn)視頻物體追蹤

    如何用OpenCV -python3實(shí)現(xiàn)視頻物體追蹤

    OpenCV是一個(gè)基于BSD許可(開(kāi)源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)庫(kù),可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。這篇文章主要介紹了如何用OpenCV -python3實(shí)現(xiàn)視頻物體追蹤,需要的朋友可以參考下
    2019-12-12
  • 詳解用selenium來(lái)下載小姐姐圖片并保存

    詳解用selenium來(lái)下載小姐姐圖片并保存

    這篇文章主要介紹了詳解用selenium來(lái)下載小姐姐圖片并保存,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01

最新評(píng)論

文登市| 平罗县| 巴中市| 伊宁县| 饶平县| 长汀县| 保山市| 张家口市| 金秀| 宜丰县| 松江区| 安化县| 怀安县| 灌南县| 青海省| 嘉义市| 察隅县| 敦煌市| 永登县| 建水县| 罗江县| 临海市| 襄垣县| 安西县| 菏泽市| 临清市| 阿尔山市| 克东县| 胶州市| 温州市| 定南县| 长葛市| 扬州市| 娄烦县| 长武县| 永定县| 普格县| 本溪| 鹤峰县| 类乌齐县| 马山县|