python帶參函數(計算器腳本解釋標註)
阿新 • • 發佈:2019-04-03
返回 使用 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帶參函數(計算器腳本解釋標註)