python带参函数(计算器脚本解释标注)

环境

python 3.*
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:
'
    strfu = 'please press a mathfu:
'
    str2 = 'please press second number:
'
    #三个变量给用户输入提示信息,和用户进行交互
    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!
')
            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!
')
                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退出,并提示信息。        
原文地址:https://www.cnblogs.com/jojoword/p/10649874.html