50行python代码写个计算器教程
案例展示
計(jì)算器.gif你能學(xué)到
-
input 用戶輸入
-
print輸出
-
tkinter圖形界面
-
python運(yùn)算符號(hào)
基礎(chǔ)知識(shí)準(zhǔn)備
運(yùn)算符號(hào)
數(shù)字運(yùn)算,求和我們使用了加號(hào) (+)運(yùn)算符,除此外,還有 減號(hào) (-), 乘號(hào) (*), 除號(hào) (/), 地板除 (//) 或 取余 (%)。
input輸入
在python中咱們用input來(lái)獲取用輸入的內(nèi)容,
默認(rèn)input只能獲取文本,想要轉(zhuǎn)換為數(shù)字需要用int函數(shù)把字符串轉(zhuǎn)換為字符
輸出
我們?cè)趐ython3中用print方法輸出
tkinter圖形界面
Tkinter 是 Python 的標(biāo)準(zhǔn) GUI 庫(kù)。Python 使用 Tkinter 可以快速的創(chuàng)建 GUI 應(yīng)用程序。
由于 Tkinter 是內(nèi)置到 python 的安裝包中、只要安裝好 Python 之后就能 import Tkinter 庫(kù)、而且 IDLE 也是用 Tkinter 編寫而成、對(duì)于簡(jiǎn)單的圖形界面 Tkinter 還是能應(yīng)付自如。
基礎(chǔ)版本
案例展示
計(jì)算器簡(jiǎn)易版.gif #?打印標(biāo)題 print("簡(jiǎn)易計(jì)算器")#?通過(guò)用戶輸入獲取運(yùn)算的第一個(gè)數(shù) num1?=?int(input("輸入第一個(gè)數(shù)字:?")) #?通過(guò)用戶輸入獲取運(yùn)算的第二個(gè)數(shù) #?默認(rèn)是字符串需要用int把字符轉(zhuǎn)換為數(shù)組 num2?=?int(input("輸入第二個(gè)數(shù)字:?"))#?提示用戶輸入運(yùn)算符 print("輸入運(yùn)算:1、相加;2、相減;3、相乘;4、相除")#?獲取用戶輸入的運(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("非法輸入")特別注意:
input提示輸入的時(shí)候,用戶需要在電腦鍵盤輸入數(shù)字
我們通過(guò)用int方法把輸入的數(shù)字轉(zhuǎn)換為真正的數(shù)字(默認(rèn)是像數(shù)字的字符)
根據(jù)choice的不同來(lái)選擇輸出不同的內(nèi)容
在程序的世界 除用/ ,乘 用* 來(lái)表示
極簡(jiǎn)版本
極簡(jiǎn)版本 #?獲取用戶輸入的運(yùn)算式如:5+5 str?=?input("請(qǐng)輸入你的運(yùn)算式:")#?eval函數(shù)把字符串當(dāng)代碼執(zhí)行 #?print?打印輸出執(zhí)行的結(jié)果 print(eval(str))注意:
input獲取的內(nèi)容為文本
eval 可以把任意的字符串當(dāng)做python執(zhí)行
如果需要程序一直都運(yùn)行我們只需要把代碼放入while循環(huán)就可
while?True:str?=?input("請(qǐng)輸入你的運(yùn)算式:")print(eval(str))注意:
True 的T 字母是大寫
str與print函數(shù)前面有四個(gè)空格,或者一個(gè)Tab縮進(jìn)
計(jì)算器(有界面)
計(jì)算器.gif #?導(dǎo)入tkineter庫(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ù)ninp.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*3btn=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()注意
eval 把字符串當(dāng)python代碼執(zhí)行
len() 方法計(jì)算字符串長(zhǎng)度
inp.get()獲取到文本框的值
inp.delete(start,end)刪除文本框的字符從start個(gè)刪除到end個(gè)
inp.insert(start,str)插入文本框字符 從start插入str字符
- EOF -
推薦閱讀??點(diǎn)擊標(biāo)題可跳轉(zhuǎn)
★Python100行-貪吃蛇小游戲
用VScode愉快的寫python代碼
用python打包exe應(yīng)用程序-PyInstaller
★教你用Python畫了一棵圣誕樹(shù)
20行python代碼的入門級(jí)小游戲
10行python代碼做出哪些酷炫的事情?
一行Python代碼能做出哪些神器的事情
都來(lái)到這了,拜托拜托點(diǎn)個(gè)贊
總結(jié)
以上是生活随笔為你收集整理的50行python代码写个计算器教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: codeforces 303 div2
- 下一篇: 一文掌握vscode远程调试python