1. 程式人生 > >python帶參函數(計算器腳本解釋標註)

python帶參函數(計算器腳本解釋標註)

返回 使用 lower 第一個 elif for 變量 在外 用戶輸入

環境

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:\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退出,並提示信息。        

python帶參函數(計算器腳本解釋標註)