تعریف تابع در محاسبه میانگین

    Import random
    def getNumber(num):
    Listage=[]
    Listnew=[]
        for item in range(num):
              Num1=random.randint(2,92)
              Listage.append(num1)
              Listnew=list(sorted(listage))
        Del listnew[-1]
        Del listnew[-1]
        Del listnew[-1]
        Del listnew[0]
        Del listnew[0]
        Del listnew[0] 
        return listage    
    def Avg(listnum):
        avg=0;
        sum=0;
        countList=len(listnew)
        for item in range(0,len(listnew)):
            sum+=listnew[item]    
        avg=sum/countList
    Countmax=0
    Countmin=0
    For I in listage:
        If i>avg:
            Countmax+=1
        Else:
            I<avg
            Countmin+=1
        return avg
    x=int(input("Enter Count age (2 between 99):"))
    numbers=getNumber(x);
    print("Age:",numbers)
    Print (“count age larger than:”,avg,”is”,countmax)
    Print (“count age less than:”,avg,”is”,countmin)

     


    سلام

    کدتون خیلی ایراد داره هم سینتکس هم علائمی که اصلا در پایتون معنی نداره مثل علامت (;) که بعد از تعریف بعضی از متغیرها گذاشتید.

    قرار بود فقط یک تابع تعریف بشه اما شما چند تابع مختلف تعریف کردید

    نیاز به ایجاد لیست تصادفی نیست اما اگر می خواهید انجام بدید باید در همون تابع انجام بشه

    اشتباهات زیادی داشت مثلا در تابع اول یک متغیر تعریف کردید به نام listage و در تابع دوم می خواستید ازش استفاده کنید که درست نیست چون اون متغیر فقط در همون تابع قابل استفاده است

    من کد ادیت شده رو براتون می فرستم با فرض اینکه بخواهید لیست تصادفی بسازید با تعداد 40 ایتم و تعداد min و max که قراره حذف بشن هم به صورت دلخواه وارد کنید.

    import random
    def avgage(miin,maax,listagelen):
        listage=[]
        i=0
        j=0
        f=0
        while i<listagelen:
            listage.append(random.randint(2,92))
            i+=1
        # print(listage)
        listageBack=listage.copy()
        while j<miin:
            x=min(listage)
            listage.remove(x)
            j+=1
        while f<maax:
            y=max(listage)
            listage.remove(y)
            f+=1
        avglist=int(sum(listage)/len(listage))
        countmin=0
        countmax=0
        for age in listageBack:
            if age>avglist:
                countmax+=1
            else:
                countmin+=1
        print(f"avg: {avglist} \t countmin: {countmin} \t countmax: {countmax}")

    avgage(2,2,40)