有框計算器
這個計算器我們用到了Python自帶的Tkinter庫
# 導入tkinter庫
import tkinter
我們要對窗口進行一些基本操作
# 獲取一個窗口
window = tkinter.Tk()
# 設置標題
window.title('計算器')
# 設置窗口大小
window.geometry('200x200')
接著用函數定義一個輸入方法
輸入方法
# 輸入方法
def add(n):
# 獲取到n1文本框的值
n1 = inp.get()
# 清空文本框
inp.delete(0,len(n1))
# 插入原來的加上新輸入參數n
inp.insert(0,n1+str(n))
再用函數定義一個計算方法
計算方法
# 執(zhí)行計算方法
def calc():
n1 = inp.get()
inp.delete(0,len(n1))
# 把文本框的字符串用eval當代碼執(zhí)行一次,再插入到文本框
inp.insert(0,str(eval(n1)))
完成后還需要把文本框給清除,我們還是用函數
清除文本框方法
# 清空文本框
def clear():
n1 = inp.get()
inp.delete(0,len(n1))
清空文本框后還會留下一個字符,我們需要刪除最后一個字符,仍然用函數
刪除最后一個字符方法
# 刪除最后一個字符
def back():
n1 = inp.get()
inp.delete(len(n1)-1,len(n1))
接著我們計算絕對值
計算絕對值
# 計算絕對值
def ab():
n1 = inp.get()
inp.delete(0,len(n1))
inp.insert(0,str(eval(n1)*-1))
設置一些文本框作為按鈕的一部分
設置文本框
# 設置一個文本框
inp = tkinter.Entry(window, width=25)
# 在第0行,第0個,合并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)
再制作運算符按鈕
運算符
# 刪除按鈕(窗口,寬度,文本,背景色,文本顏色,執(zhí)行命令并傳入參數).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ā)現還沒有 123 456 789 9個按鈕,我們就用for循環(huán)創(chuàng)建
把代碼加到
# 設置一個文本框
inp = tkinter.Entry(window, width=25)
# 在第0行,第0個,合并5列
inp.grid(row=0,column=0,columnspan=5)
的下面
9個按鈕
# 設置一個文本框
inp = tkinter.Entry(window, width=25)
# 在第0行,第0個,合并5列
inp.grid(row=0,column=0,columnspan=5)
# 用for循環(huán) 創(chuàng)建 123 456 789 9個按鈕
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)
一個有框的計算器就做好了,完整代碼請看文章末尾
命令行計算器
這個計算器的代碼很短,很快就能學會
首先獲取第一個數與第二個數
獲取數
# 通過用戶輸入獲取運算的第一個數
num1 = int(input("輸入第一個數字: "))
# 通過用戶輸入獲取運算的第二個數
# 默認是字符串需要用int把字符轉換為數組
num2 = int(input("輸入第二個數字: "))
# 提示用戶輸入運算符
我們還得添加while True來保證代碼重復執(zhí)行,否則計算器無法運算多次
在前面加上while True
while True:
# 通過用戶輸入獲取運算的第一個數
num1 = int(input("輸入第一個數字: "))
# 通過用戶輸入獲取運算的第二個數
# 默認是字符串需要用int把字符轉換為數組
num2 = int(input("輸入第二個數字: "))
# 提示用戶輸入運算符
這樣就能重復了
接著獲取運算方法
運算方法
print("輸入運算:1、相加;2、相減;3、相乘;4、相除")
# 獲取用戶輸入的運算符號
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)
再把他們橋接到加法的下面
橋接
while True:
# 通過用戶輸入獲取運算的第一個數
num1 = int(input("輸入第一個數字: "))
# 通過用戶輸入獲取運算的第二個數
# 默認是字符串需要用int把字符轉換為數組
num2 = int(input("輸入第二個數字: "))
# 提示用戶輸入運算符
print("輸入運算:1、相加;2、相減;3、相乘;4、相除")
# 獲取用戶輸入的運算符號
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,否則輸出將會出錯
else
# 其他都是非法的
else:
print("非法輸入")
最后的最后我們把else加到上面一部分的下面
橋接2
while True:
# 通過用戶輸入獲取運算的第一個數
num1 = int(input("輸入第一個數字: "))
# 通過用戶輸入獲取運算的第二個數
# 默認是字符串需要用int把字符轉換為數組
num2 = int(input("輸入第二個數字: "))
# 提示用戶輸入運算符
print("輸入運算:1、相加;2、相減;3、相乘;4、相除")
# 獲取用戶輸入的運算符號
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("非法輸入")
兩個計算器都介紹完畢了,接下來是完整代碼
完整代碼
有框計算器
# 導入tkinter庫
import tkinter
# 獲取一個窗口
window = tkinter.Tk()
# 設置標題
window.title('計算器')
# 設置窗口大小
window.geometry('200x200')
# 輸入方法
def add(n):
# 獲取到n1文本框的值
n1 = inp.get()
# 清空文本框
inp.delete(0,len(n1))
# 插入原來的加上新輸入參數n
inp.insert(0,n1+str(n))
# 執(zhí)行計算方法
def calc():
n1 = inp.get()
inp.delete(0,len(n1))
# 把文本框的字符串用eval當代碼執(zhí)行一次,再插入到文本框
inp.insert(0,str(eval(n1)))
# 清空文本框
def clear():
n1 = inp.get()
inp.delete(0,len(n1))
# 刪除最后一個字符
def back():
n1 = inp.get()
inp.delete(len(n1)-1,len(n1))
# 計算絕對值
def ab():
n1 = inp.get()
inp.delete(0,len(n1))
inp.insert(0,str(eval(n1)*-1))
# 設置一個文本框
inp = tkinter.Entry(window, width=25)
# 在第0行,第0個,合并5列
inp.grid(row=0,column=0,columnspan=5)
# 用for循環(huán) 創(chuàng)建 123 456 789 9個按鈕
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í)行命令并傳入參數).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)
# 進入消息循環(huán)
window.mainloop()
命令行計算器
while True:
# 通過用戶輸入獲取運算的第一個數
num1 = int(input("輸入第一個數字: "))
# 通過用戶輸入獲取運算的第二個數
# 默認是字符串需要用int把字符轉換為數組
num2 = int(input("輸入第二個數字: "))
# 提示用戶輸入運算符
print("輸入運算:1、相加;2、相減;3、相乘;4、相除")
# 獲取用戶輸入的運算符號
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("非法輸入")
到此這篇關于Python雙版本計算器詳解的文章就介紹到這了,希望對大家有幫助,更多相關python內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持腳本之家!
您可能感興趣的文章:- python tkinter 做個簡單的計算器的方法
- python之PyAutoGui教你做個自動腳本計算器的方法
- 用python實現一個簡單計算器(完整DEMO)
- PyQt5實現簡單的計算器
- python代碼編寫計算器小程序