python输入的数字为什么不能计算_计算器为什么只能进行个位数的计算,每次只能输入一个数字,求...
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
# !/usr/bin/python
# -*- coding: UTF-8 -*-
# -*- decoding: UTF-8 -*-
from Tkinter import *
import Tkinter as tk
import string
#import Tkinter # 導(dǎo)入kintert模塊
root = tk.Tk()
#root = Tkinter.Tk()
#root = tkinter.Tk()
root.minsize(280, 500)
root.title('數(shù)字計(jì)算器')
# 1.界面布局
# 顯示面板
result = tk.StringVar()
result.set(0) # 顯示面板顯示結(jié)果1,用于顯示默認(rèn)數(shù)字0
result2 = tk.StringVar() # 顯示面板顯示結(jié)果2,用于顯示計(jì)算過(guò)程
result2.set('')
# 顯示版
label = tk.Label(root, font=('微軟雅黑', 20), bg='#EEE9E9', bd='9', fg='#828282', anchor='se',textvariable=result2) # 設(shè)置運(yùn)算結(jié)果的顯示界面的長(zhǎng),寬距離
label.place(width=280, height=170)
label2 = tk.Label(root, font=('微軟雅黑', 30), bg='#EEE9E9', bd='9', fg='black', anchor='se',textvariable=result) # 設(shè)置輸入界面的長(zhǎng),寬距離
label2.place(y=170, width=280, height=60)
# 數(shù)字鍵按鈕
btn7 = tk.Button(root, text='7', font=('微軟雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressNum('7')) # 對(duì)于鍵位7的位置,寬,高的距離設(shè)置
btn7.place(x=0, y=285, width=70, height=55)
btn8 = tk.Button(root, text='8', font=('微軟雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressNum('8')) # 對(duì)于鍵位8的位置,寬,高的距離設(shè)置
btn8.place(x=70, y=285, width=70, height=55)
btn9 = tk.Button(root, text='9', font=('微軟雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressNum('9')) # 對(duì)于鍵位9的位置,寬,高的距離設(shè)置
btn9.place(x=140, y=285, width=70, height=55)
btn4 = tk.Button(root, text='4', font=('微軟紅色', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressNum('4')) # 對(duì)于鍵位4的位置,寬,高的距離設(shè)置
btn4.place(x=0, y=340, width=70, height=55)
btn5 = tk.Button(root, text='5', font=('微軟黃色', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressNum('5')) # 對(duì)于鍵位5的位置,寬,高的距離設(shè)置
btn5.place(x=70, y=340, width=70, height=55)
btn6 = tk.Button(root, text='6', font=('微軟雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressNum('6')) # 對(duì)于鍵位6的位置,寬,高的距離設(shè)置
btn6.place(x=140, y=340, width=70, height=55)
btn1 = tk.Button(root, text='1', font=('微軟雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressNum('1')) # 對(duì)于鍵位1的位置,寬,高的距離設(shè)置
btn1.place(x=0, y=395, width=70, height=55)
btn2 = tk.Button(root, text='2', font=('微軟雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressNum('2')) # 對(duì)于鍵位2的位置,寬,高的距離設(shè)置
btn2.place(x=70, y=395, width=70, height=55)
btn3 = tk.Button(root, text='3', font=('微軟雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressNum('3')) # 對(duì)于鍵位3的位置,寬,高的距離設(shè)置
btn3.place(x=140, y=395, width=70, height=55)
btn0 = tk.Button(root, text='0', font=('微軟雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressNum('0')) # 對(duì)于鍵位0的位置,寬,高的距離設(shè)置
btn0.place(x=70, y=450, width=70, height=55)
# 運(yùn)算符號(hào)按鈕
btnac = tk.Button(root, text='AC', bd=0.5, font=('黑體', 20), fg='orange',command=lambda: pressCompute('AC')) # 設(shè)置運(yùn)算符清除鍵位AC
btnac.place(x=0, y=230, width=70, height=55)
btnback = tk.Button(root, text='←', font=('黑體', 20), fg='#4F4F4F', bd=0.5,command=lambda: pressCompute('b')) # 設(shè)置運(yùn)算符退格鍵位←
btnback.place(x=70, y=230, width=70, height=55)
btndivi = tk.Button(root, text='÷', font=('微軟雅黑', 20), fg='#4F4F4F', bd=0.5,command=lambda: pressCompute('/')) # 設(shè)置運(yùn)算符鍵位除號(hào)
btndivi.place(x=140, y=230, width=70, height=55)
btnmul = tk.Button(root, text='×', font=('微軟雅黑', 20), fg="#4F4F4F", bd=0.5,command=lambda: pressCompute('*')) # 設(shè)置運(yùn)算符鍵位乘號(hào)
btnmul.place(x=210, y=230, width=70, height=55)
btnsub = tk.Button(root, text='-', font=('微軟雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressCompute('-')) # 設(shè)置運(yùn)算符鍵位減號(hào)
btnsub.place(x=210, y=285, width=70, height=55)
btnadd = tk.Button(root, text='+ ', font=('微軟雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressCompute('+')) # 設(shè)置運(yùn)算符鍵位加號(hào)
btnadd.place(x=210, y=340, width=70, height=55)
btnequ = tk.Button(root, text='=', bg='orange', font=('微軟雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressEqual()) # 設(shè)置運(yùn)算符鍵位等號(hào)
btnequ.place(x=210, y=395, width=70, height=110)
btnper = tk.Button(root, text='%', font=('微軟雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressCompute('%')) # 設(shè)置運(yùn)算符鍵位百分號(hào)
btnper.place(x=0, y=450, width=70, height=55)
btnpoint = tk.Button(root, text='.', font=('微軟雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressCompute('.')) # 設(shè)置運(yùn)算符鍵位小數(shù)點(diǎn)
btnpoint.place(x=140, y=450, width=70, height=55)
# 操作函數(shù)
lists = [] # 設(shè)置一個(gè)變量 保存運(yùn)算數(shù)字和符號(hào)的列表
isPressSign = False # 添加一個(gè)判斷是否按下運(yùn)算符號(hào)的標(biāo)志,假設(shè)默認(rèn)沒(méi)有按下按鈕
isPressNum = False
# 數(shù)字函數(shù)
def pressNum(num): # 設(shè)置一個(gè)數(shù)字函數(shù) 判斷是否按下數(shù)字 并獲取數(shù)字將數(shù)字寫在顯示版上
global lists # 全局化lists和按鈕狀態(tài)isPressSign
global isPressSign
if isPressSign == False:
pass
else: # 重新將運(yùn)算符號(hào)狀態(tài)設(shè)置為否
result.set(0)
isPressSign = False
# 判斷界面的數(shù)字是否為0
oldnum = result.get() # 第一步
if oldnum == '0': # 如過(guò)界面上數(shù)字為0 則獲取按下的數(shù)字
result.set(num)
else: # 如果界面上的而數(shù)字不是0 則鏈接上新按下的數(shù)字
newnum = oldnum
num
result.set(newnum) # 將按下的數(shù)字寫到面板中
# 運(yùn)算函數(shù)
def pressCompute(sign):
global lists
global isPressSign
num = result.get() # 獲取界面數(shù)字
lists.append(num) # 保存界面獲取的數(shù)字到列表中
lists.append(sign) # 講按下的運(yùn)算符號(hào)保存到列表中
isPressSign = True
if sign == 'AC': # 如果按下的是'AC'按鍵,則清空列表內(nèi)容,講屏幕上的數(shù)字鍵設(shè)置為默認(rèn)數(shù)字0
del lists[:]
#lists.clear()
result.set(0)
if sign == 'b': # 如果按下的是退格‘’,則選取當(dāng)前數(shù)字第一位到倒數(shù)第二位
a = num[0:-1]
del lists[:]
#lists.clear()
result.set(a)
# 獲取運(yùn)算結(jié)果函數(shù)
def pressEqual():
global lists
global isPressSign
curnum = result.get() # 設(shè)置當(dāng)前數(shù)字變量,并獲取添加到列表
lists.append(curnum)
computrStr = ' '.join(lists) # 講列表內(nèi)容用join命令將字符串鏈接起來(lái)
endNum = eval(computrStr) # 用eval命令運(yùn)算字符串中的內(nèi)容
# a = str(endNum)
# b = '=' a #給運(yùn)算結(jié)果前添加一個(gè) ‘=’ 顯示 不過(guò)這樣寫會(huì)有BUG 不能連續(xù)運(yùn)算,這里注釋,不要 =
# c = b[0:10] #所有的運(yùn)算結(jié)果取9位數(shù)
result.set(endNum) # 講運(yùn)算結(jié)果顯示到屏幕1
result2.set(computrStr) # 將運(yùn)算過(guò)程顯示到屏幕2
del lists[:]
# lists.clear() # 清空列表內(nèi)容
#lists.clear()
root.mainloop()
總結(jié)
以上是生活随笔為你收集整理的python输入的数字为什么不能计算_计算器为什么只能进行个位数的计算,每次只能输入一个数字,求...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python3.4安装matplotli
- 下一篇: Python实现HTTP服务器(二)返回