猫史档案馆


【Python作品分享】ZCH计算器【作品秀】

用户:ZCH_ProZCH_Pro查看:28 回复:8 评论:28 创建时间:2020-03-06T17:03:49


【作品展示】

center_image

 

【作品介绍】

海龟编辑器可以发布作品啦!!!

心情大喜,制作了个计算器!!!

(训练师做数学题时建议使用······)

 

【作品源代码】

def add(a, b):

    return (a + b)

def subtract(a, b):

    return (a - b)

def multiply(a, b):

    return (a * b)

def divide(a, b):

    return (a / b)

def power(a, b):

    return (a ** b)

num1 = float(input('你好,训练师,请输入第一个数字:'))
num2 = float(input('再输入第二个数字:'))

print('选着要进行的运算:')

print('1.相加 2.相减 3.相乘 4.相除 5.乘方')

choice = input('输入你的选择:(1/2/3/4/5)')

result = 0

if (choice == '1'):
    result = add(num1, num2)
    print(num1, '+', num2, '=', result)
if (choice == '2'):
    result = subtract(num1, num2)
    print(num1, '-', num2, '=', result)
if (choice == '3'):
    result = multiply(num1, num2)
    print(num1, '*', num2, '=', result)
if (choice == '4'):
    result = divide(num1, num2)
    print(num1, '/', num2, '=', result)
if (choice == '5'):
    result = power(num1, num2)
    print(num1, '**', num2, '=', result)

if (result > 100):
    print('计算结果大于100!')

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
ZCH_ProZCH_Pro

小明计算器的图片只是来搞笑的啦,不要当真,嘿嘿emotion_雷电猴_捂嘴笑

点赞0


评论


TobylaiTobylai

封面党啊?!

点赞0


评论


一个STUB用户_6923702一个STUB用户_6923702

被骗啦!

点赞2


评论


梦里觅深海梦里觅深海

啊啊啊,气死啦(其实在偷笑)

点赞0


评论


JackuXLJackuXL

截图有误啊 连tkinter/pyqt都没有import 举报了

点赞0


评论


星空之忆星空之忆

emmm

点赞0


评论


开源盛世开源盛世

给你一个GUI版的

from tkinter import *

m=0
def join(alpha):
    v.set(v.get()+alpha)
def inputnumbernot0(num):
    global v
    if not v.get()[-1] in '%':
        join(str(num))
def input0():
    global v
    if not v.get()[-1] in '%':
        join('0')
def inputfhnotjian(fh):
    global v
    if not v.get()[-1] in '+-×÷.':
        join(fh)
def inputjian():
    global v
    if not v.get()[-1] in '+-.':
        join('-')
def inputpoint():
    global v
    alpha = v.get()
    for i in range(len(alpha)-1, -1, -1):
        if alpha[i] in '+-×÷':
            break
    beta = alpha[i:]
    flag = ('.' not in beta)
    if flag:
        join('.')
def inputbfh():
    global v
    if not v.get()[-1] in '%+-×÷.':
        join('%')
def compile_(beta):
    alpha = beta
    alpha = alpha.replace('×','*')
    alpha = alpha.replace('÷','/')
    alpha = alpha.replace('%','*0.01')
    if alpha[-1] in '+-':
        alpha += '0'
    if alpha[-1] in '*/':
        alpha += '1'
    elif alpha == ' ':
        alpha=0
    return alpha
def getanswer():
    alpha = compile_(v.get())
    try:
        res = eval(alpha)
    except [ZeroDivisionError, SyntaxError]:
        res = 0
    if res == int(res):
        res = int(res)
    v.set(" " + str(res))
def getanswer_():
    alpha = compile_(v.get())
    try:
        res = eval(alpha)
    except [ZeroDivisionError, SyntaxError]:
        res = 0
    if res == int(res):
        res = int(res)
    return res
def clear():
    v.set(' ')
def backspace():
    v.set(v.get()[:-1])
def M(a=True):
    global m
    b = getanswer_()
    if a:
        m = b
    else:
        m = -b
    print(m)
def MC():
    global m
    m=0
def MR():
    if v.get()[-1] in '01234567890' and m>=0:
        join('+' + str(m))
    else:
        join(str(m))
root = Tk()
root.title('Calculator')
root.maxsize(300,300)

Label(root,height=4).grid(column=0,row=0)
v = StringVar()
v.set(' ')
Label(root, font=('Century Gothic',40),textvariable = v).place(x=10,y=0)

Button(root, text='    7    ',command=lambda:inputnumbernot0(7)).grid(column=0, row=1)
Button(root, text='    8    ', command=lambda: inputnumbernot0(8)).grid(column=1, row=1)
Button(root, text='    9    ', command=lambda: inputnumbernot0(9)).grid(column=2, row=1)
Button(root, text='    4    ', command=lambda: inputnumbernot0(4)).grid(column=0, row=2)
Button(root, text='    5    ', command=lambda: inputnumbernot0(5)).grid(column=1, row=2)
Button(root, text='    6    ', command=lambda: inputnumbernot0(6)).grid(column=2, row=2)
Button(root, text='    1    ', command=lambda: inputnumbernot0(1)).grid(column=0, row=3)
Button(root, text='    2    ', command=lambda: inputnumbernot0(2)).grid(column=1, row=3)
Button(root, text='    3    ', command=lambda: inputnumbernot0(3)).grid(column=2, row=3)
Button(root, text='     .    ',command = inputpoint).grid(column=0, row=4)
Button(root, text='    0    ',command = input0).grid(column=1, row=4)
Button(root, text='   %    ',command=inputbfh).grid(column=2, row=4)
Button(root, text='    +    ',command=lambda:inputfhnotjian('+')).grid(column=3, row=1)
Button(root, text='    -     ',command = inputjian).grid(column=3, row=2)
Button(root, text='    ×    ', command=lambda: inputfhnotjian('×')).grid(column=3, row=3)
Button(root, text='    ÷    ', command=lambda: inputfhnotjian('÷')).grid(column=3, row=4)
Button(root, text='     %s   ' % chr(9003), bg='yellow',command = backspace).grid(column=4, row=1)
Button(root, text='     C     ',bg='red',fg='white',command = clear).grid(column=4, row=2)
Button(root,text = '     =     ',height=3,bg='orange',fg='white',command=getanswer).grid(column=4,row=3,rowspan=2)
Button(root,text=' M+ ',command = M).grid(column=5,row=1)
Button(root, text=' M-  ',command=lambda:M(False)).grid(column=5, row=2)
Button(root, text=' MR ',command=MR).grid(column=5, row=3)
Button(root, text=' MC ',command=MC).grid(column=5, row=4)

mainloop()

点赞0


评论


Lonely_wandererLonely_wanderer

<html>
<head>
<script language="JavaScript">

r=new Array(2)

function setStartState(){
state="start"
r[0]="0"
r[1]="0"
operand=""
ix=0


}


function addDigit(n){


//alert(n)
if(state=="gettingInteger"||state=="gettingFloat")
r[ix]=appendDigit(r[ix],n)
else{
r[ix]=""+n
state="gettingInteger"


}


display(r[ix])
}



function appendDigit(n1,n2){

if(n1=="0")
  return ""+n2
var s=""
s+=n1
s+=n2
return s

}


function display(s){
document.calculator.total.value=s
}


function addDecimalPoint(){
if(state!="gettingFloat"){
decimal=true
r[ix]+="."
if(state=="haveOperand"||state=="getOperand2")
  r[ix]="0."
state="gettingFloat"
display(r[ix])
}
}


function clearDisplay(){
setStartState()
display(r[0])
}


function changeSign(){
if(r[ix].charAt(0)=="-") r[ix]=r[ix].substring(1,r[ix].length)
else if(parseFloat(r[ix])!=0) r[ix]="-"+r[ix]
display(r[ix])
}


function calc(){
if(state=="gettingInteger"||state=="gettingFloat"||state=="haveOperand"){
  if(ix==1){
   r[0]=calculateOperation(operand,r[0],r[1])
   ix=0
}
}

else if(state=="getOperand2"){
  r[0]=calculateOperation(operand,r[0],r[0])
  ix=0
}


state="haveOperand"
decimal=false
display(r[ix])
}


function calculateOperation(op,x,y){
var result=""
if(op=="+"){
  result=""+(parseFloat(x)+parseFloat(y))
}else if(op=="-"){
  result=""+(parseFloat(x)-parseFloat(y))
}else if(op=="*"){
  result=""+(parseFloat(x)*parseFloat(y))
}else if(op=="√"){
  result=""+Math.sqrt((parseFloat(x)))
}else if(op=="∧"){
  result=""+(Math.pow(parseFloat(x),parseFloat(y)))
}
else if(op=="/"){
  if(parseFloat(y)==0){
    alert("除数不能为零")
    result=0
}else
    result=""+(parseFloat(x)/parseFloat(y))
}
return result
}

function performOp(op){
  if(state=="start"){
  ++ix
  operand=op
}else if(state=="gettingInteger"||state=="gettingFloat"||state=="haveOperand"){
  if(ix==0){
  ++ix
  operand=op
}else{
  r[0]=calculateOperation(operand,r[0],r[1])
  display(r[0])
  operand=op
}
}

state="getOperand2"
decimal=false

}


</script>
</head>
<body>
<script>
  setStartState();
</script>


<form name="calculator">
<table border="BORDER" align="center">
<tr>
<td colspan=4 align="left"><input type="text" name="total" value=0 size=55></td>
</tr>
<tr>
<td><input type="button" name="n0" value="     0     " onclick="addDigit(0);"></td>
<td><input type="button" name="n1" value="     1     " onclick="addDigit(1);"></td>
<td><input type="button" name="n2" value="     2     " onclick="addDigit(2);"></td>
<td><input type="button" name="n3" value="     3     " onclick="addDigit(3);"></td>
</tr>
<tr>

<td><input type="button" name="n4" value="     4     " onclick="addDigit(4);"></td>
<td><input type="button" name="n5" value="     5     " onclick="addDigit(5);"></td>
<td><input type="button" name="n6" value="     6     " onclick="addDigit(6);"></td>
<td><input type="button" name="n7" value="     7     " onclick="addDigit(7);"></td>

</tr>
<tr>
<td><input type="button" name="n8" value="     8     " onclick="addDigit(8);"></td>
<td><input type="button" name="n9" value="     9     " onclick="addDigit(9);"></td>
<td><input type="button" name="decimal" value="     .     " onclick="addDecimalPoint();"></td>
<td><input type="button" name="plus" value="     +     " onclick="performOp('+');"></td>
</tr>

<tr>
<td><input type="button" name="minus" value="     -     " onclick="performOp('-');"</td>
<td><input type="button" name="multiply" value="     *     " onclick="performOp('*');"</td>
<td><input type="button" name="except" value="     /     " onclick="performOp('/');"</td>
<td><input type="button" name="equals" value="     =     " onclick="calc();"</td>
</tr>
<tr>

<td><input type="button" name="sign" value="    +/-    " onclick="changeSign('*');"</td>
<td><input type="button" name="clearField" value="     C     " onclick="clearDisplay();"</td>
<td><input type="button" name="sqrt" value="     √    " onclick="performOp('√');"</td>
<td><input type="button" name="pow" value="     ∧    " onclick="performOp('∧');"</td>
</tr>
</table>
</form>
</body>
</html>

点赞0


评论