python输入的数字为什么不能计算_计算器为什么只能进行个位数的计算,每次只能输入一个数字,求...
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
# !/usr/bin/python
# -*- coding: UTF-8 -*-
# -*- decoding: UTF-8 -*-
from Tkinter import *
import Tkinter as tk
import string
#import Tkinter # 導入kintert模塊
root = tk.Tk()
#root = Tkinter.Tk()
#root = tkinter.Tk()
root.minsize(280, 500)
root.title('數字計算器')
# 1.界面布局
# 顯示面板
result = tk.StringVar()
result.set(0) # 顯示面板顯示結果1,用于顯示默認數字0
result2 = tk.StringVar() # 顯示面板顯示結果2,用于顯示計算過程
result2.set('')
# 顯示版
label = tk.Label(root, font=('微軟雅黑', 20), bg='#EEE9E9', bd='9', fg='#828282', anchor='se',textvariable=result2) # 設置運算結果的顯示界面的長,寬距離
label.place(width=280, height=170)
label2 = tk.Label(root, font=('微軟雅黑', 30), bg='#EEE9E9', bd='9', fg='black', anchor='se',textvariable=result) # 設置輸入界面的長,寬距離
label2.place(y=170, width=280, height=60)
# 數字鍵按鈕
btn7 = tk.Button(root, text='7', font=('微軟雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressNum('7')) # 對于鍵位7的位置,寬,高的距離設置
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')) # 對于鍵位8的位置,寬,高的距離設置
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')) # 對于鍵位9的位置,寬,高的距離設置
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')) # 對于鍵位4的位置,寬,高的距離設置
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')) # 對于鍵位5的位置,寬,高的距離設置
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')) # 對于鍵位6的位置,寬,高的距離設置
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')) # 對于鍵位1的位置,寬,高的距離設置
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')) # 對于鍵位2的位置,寬,高的距離設置
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')) # 對于鍵位3的位置,寬,高的距離設置
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')) # 對于鍵位0的位置,寬,高的距離設置
btn0.place(x=70, y=450, width=70, height=55)
# 運算符號按鈕
btnac = tk.Button(root, text='AC', bd=0.5, font=('黑體', 20), fg='orange',command=lambda: pressCompute('AC')) # 設置運算符清除鍵位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')) # 設置運算符退格鍵位←
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('/')) # 設置運算符鍵位除號
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('*')) # 設置運算符鍵位乘號
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('-')) # 設置運算符鍵位減號
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('+')) # 設置運算符鍵位加號
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()) # 設置運算符鍵位等號
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('%')) # 設置運算符鍵位百分號
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('.')) # 設置運算符鍵位小數點
btnpoint.place(x=140, y=450, width=70, height=55)
# 操作函數
lists = [] # 設置一個變量 保存運算數字和符號的列表
isPressSign = False # 添加一個判斷是否按下運算符號的標志,假設默認沒有按下按鈕
isPressNum = False
# 數字函數
def pressNum(num): # 設置一個數字函數 判斷是否按下數字 并獲取數字將數字寫在顯示版上
global lists # 全局化lists和按鈕狀態isPressSign
global isPressSign
if isPressSign == False:
pass
else: # 重新將運算符號狀態設置為否
result.set(0)
isPressSign = False
# 判斷界面的數字是否為0
oldnum = result.get() # 第一步
if oldnum == '0': # 如過界面上數字為0 則獲取按下的數字
result.set(num)
else: # 如果界面上的而數字不是0 則鏈接上新按下的數字
newnum = oldnum
num
result.set(newnum) # 將按下的數字寫到面板中
# 運算函數
def pressCompute(sign):
global lists
global isPressSign
num = result.get() # 獲取界面數字
lists.append(num) # 保存界面獲取的數字到列表中
lists.append(sign) # 講按下的運算符號保存到列表中
isPressSign = True
if sign == 'AC': # 如果按下的是'AC'按鍵,則清空列表內容,講屏幕上的數字鍵設置為默認數字0
del lists[:]
#lists.clear()
result.set(0)
if sign == 'b': # 如果按下的是退格‘’,則選取當前數字第一位到倒數第二位
a = num[0:-1]
del lists[:]
#lists.clear()
result.set(a)
# 獲取運算結果函數
def pressEqual():
global lists
global isPressSign
curnum = result.get() # 設置當前數字變量,并獲取添加到列表
lists.append(curnum)
computrStr = ' '.join(lists) # 講列表內容用join命令將字符串鏈接起來
endNum = eval(computrStr) # 用eval命令運算字符串中的內容
# a = str(endNum)
# b = '=' a #給運算結果前添加一個 ‘=’ 顯示 不過這樣寫會有BUG 不能連續運算,這里注釋,不要 =
# c = b[0:10] #所有的運算結果取9位數
result.set(endNum) # 講運算結果顯示到屏幕1
result2.set(computrStr) # 將運算過程顯示到屏幕2
del lists[:]
# lists.clear() # 清空列表內容
#lists.clear()
root.mainloop()
總結
以上是生活随笔為你收集整理的python输入的数字为什么不能计算_计算器为什么只能进行个位数的计算,每次只能输入一个数字,求...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3.4安装matplotli
- 下一篇: java项目 js报错红叉,解决js红