請問這段代碼為什么執(zhí)行不了
def?average(*args): ????sum?=?0 ????if?len(args)?==?0: ????????return?0 ????elif?isinstance(args,?str): ????????return?"傳入變量為文本,無法計算平均值,請重新上傳" ????else: ????????for?item?in?args: ????????????sum?+=?item ????????avg?=?sum?/?len(args) ????????return?avg print(average()) print(average("a",?"b")) print(average(1,?21)) print(average(1.5,?3.5,?5,?5)) 執(zhí)行這段代碼的時候為什么沒有進(jìn)行這段的校驗?zāi)兀?/pre>elif?isinstance(args,?str): ????????return?"傳入變量為文本,無法計算平均值,請重新上傳"
2020-09-01
你輸入??
2021-03-01
通過循環(huán)次數(shù)來判斷是否有字符,還可以只計算tuple里數(shù)字元素的平均值
def average(*args):
? ? if len(args) > 0:
? ? ? ? sum = 0
? ? ? ? i = 0
? ? ? ? for item in args:
? ? ? ? ? ? if isinstance(item,int) or isinstance(item,float):
? ? ? ? ? ? ? ? sum += item
? ? ? ? ? ? ? ? i += 1
? ? ? ? if i > 0 :
? ? ? ? ? ? avg = sum / i
? ? ? ? ? ? return avg
? ? ? ? else:
? ? ? ? ? ? print('傳參中沒有數(shù)字型元素')
? ? else:
? ? ? ? print('傳參為空')
? ? return None
2021-01-17
這里的args 是tuple類型, for item in args:? ?中的 item 才是 str 類型。
在for循環(huán)里加入 if 就可以了。
2020-09-08
# -*- coding: UTF-8 -*-
def average(*args):
? ? sum = 0
? ? if len(args) == 0:
? ? ? ? return 0
? ? else:
? ? ? ? for i in args:
? ? ? ? ? ? if isinstance(i,(int,float)):
? ? ? ? ? ? ? ? sum += i
? ? ? ? ? ? ? ? avg = sum / len(args)
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? return"傳入變量為文本,無法計算平均值,請重新上傳"
? ? return avg? ? ? ? ? ??
我是根據(jù)你的這樣改的,就OK了