python含有参数的运算_python带参函数(计算器脚本解释标注)

def operator(op1,op2,opfu):

#定义符号函数,op1表示第一个运算数值,op2表示第二个,opfu表示运算符号

if opfu not in '+-*/':

return -1

#如果opfu不是这四个符号当中的任何一个,返回值是-1,表示程序出错

if opfu == '+':

qiao = op1+op2

#如果符号是+,那就表示op1加上op2

elif opfu == '-':

qiao = op1 - op2

#如果符号是-,表示op1减去op2

elif opfu == '*':

qiao = op1 * op2

elif opfu == '/':

if op2 == 0:

print('error,not is 0/n')

qiao = None

else:

qiao = op1 / op2

#进行除法运算时除数不能够为0,所以先排除在外,为0是返回值为None,表示程序错误

return qiao

#将运算结果返回

def convert(op):

#定义函数,作用是将用户输入字符串转换为数值型

flag=True

#定义该变量用于判断数值有效性

for i in op:

if i not in '1234567890':

flag=False

break

#op是传进来的字符串,使用循环来判断字符的规范性,如不规范,则flag值为False,并退出循环

if flag==True:

return int(op)

else:

return None

#如果flag的值为True,即数值是规范的,那么将其进行数值类型转换,为整形;否则,返回None,程序错误

if __name__ == '__main__':

#表示,是当作脚本运行

str1 = 'please press first number:\n'

strfu = 'please press a mathfu:\n'

str2 = 'please press second number:\n'

#三个变量给用户输入提示信息,和用户进行交互

while True:

print('q is quit')

#告知q表示退出

opp1 = input(str1)

ch = opp1.strip()[0].lower()

if ch == 'q':

break

#如果ch值,即用户输入的为q,跳出循环

op1 = convert(opp1)

#调用convert函数对第一个数转换数据类型为整形

if op1 ==None:

print('error,please against try!\n')

continue

#如果函数返回值为None,输出提示信息,跳出本次循环,进行下一次循环

while True:

opfu = input(strfu)

if opfu in '+-*/':

break

else:

print('mathfu had error!')

continue

#给用户一个交互是用户输入符号赋值给opfu,符号规范则结束循环;否则,输出提示,然后再次循环。

while True:

op2 = convert(input(str2))

if op2 == None:

print('press had error ,against try!\n')

continue

else:

break

#调用convert函数转换数据类型,这是第二个数值

result = operator(op1,op2,opfu)

#调用之前定义的operator函数进行运算,并将结果复制给result变量

if result != None:

print('计算%d %s %d=%d'%(op1,opfu,op2,result))

#如果结果不为None,即表示程序正常运行,那就输出信息。

#字符串拼接需要注意是为英文符号,还有顺序

print('quited')

#为q退出,并提示信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值