amir_mohammadi

راهنمایی جهت اجرای task های برنامه با استفاده از تعریف توابع

amir_mohammadi ۱۳۹۷/۰۶/۲۴ زبان برنامه‌نویسی پایتون

سلام

وقت بخیر

برنامه ی کوچکی نوشتم که در اون شش task انجام میشود.

با توجه به اینکه بنده تازه کار با پایتون رو شروع کردم؛ برای اجرای این task ها به صورت توابع، نیاز به کمک دارم.

اگر از دوستان کسی امکان راهنمایی و کمک دارد لطفاً آدرس ایمیل خودشون رو بگن که بنده بهشون پیام بدم

باتشکر

پاسخ‌ها به این تاپیک
alga
alga i am a programmer from planet earth!
۱۳۹۷/۰۶/۲۶

سلام

بنده در اینجا قصد دارم فقط راهنمایی‌تون کنم. اگر چگونگی تعریف تابع در پایتون رو بلد باشید می‌تونید به راحتی کدها رو داخل شش تابع قرار بدید و هر وقت خواستید یک عمل رو انجام بدید تابع مربوط به اون عمل رو فراخوانی کنید.

اگر بیشتر توضیح بدید بهتر می‌شه راهنمایی کرد.

amir_mohammadi
amir_mohammadi
۱۳۹۷/۰۷/۰۹

این برنامه ای هست که من نوشتم

import csv
import statistics
from statistics import mean
import operator
from collections import OrderedDict
from operator import itemgetter
avgs = []
names =[]
key_sort = []
value_sort = []
dictlist = []
with open('/grades.csv') as f:
    reader = csv.reader(f)
    print("********* First: Calculate Averages *********")
    for row in reader:
        name = row[0] 
        these_grades = list()
        for grade in row[1:]:
            these_grades.append(int(grade))   
        avgs.append(mean(these_grades))
        names.append(name)
        list_dict = dict(zip(names,avgs))#convet list to dictionary
        print(name,',',mean(these_grades)) #mohasebe Moadele Har fard
   
    print("********* Second: Sort ascending ********")
    for key, value in sorted(list_dict.items(), key = itemgetter(1), reverse = False):
            key_sort.append(key)
            value_sort.append(value)
            list_dict = dict(zip(key_sort,value_sort))
            listavgs_dict = key_sort
            print(key,',',value)
    
    print("********* Third: Print three names and numbers high lists ********")
    for key, value in list_dict.items():
            temp = (key,value)
            dictlist.append(temp)
    threenum = dictlist[-3:]
    list_dict3 = dict(threenum)
    for key, value in sorted(list_dict3.items(), key = itemgetter(1), reverse = True):
        print(key,',',value)
    
    print("********* Fourth: Print three numbers lowercase lists ********")
    nokey = value_sort[:3]
    for num in nokey:
        print(num)
    
    print("********* Fifth: Mean averages ********")
    print(mean(list_dict.values()))

حالا باید این پنج عملیاتی در کد بالا انجام می شود را تبدیل به پنج تابع کنم و خروجی هر تابع هم باید در یک فایل دیگر نوشته شود و هر تابع نباید از خروجی تابع های دیگر استفاده کند.

و باید کد بالا رو بریزم داخل پنج تابع زیر

def calculate_averages(input_file_name, output_file_name):
 

def calculate_sorted_averages(input_file_name, output_file_name):
    


def calculate_three_best(input_file_name, output_file_name):
    


def calculate_three_worst(input_file_name, output_file_name):
    


def calculate_average_of_averages(input_file_name, output_file_name):

این نکته رو مجددا یادآوری می کنم که :خروجی هر تابع در یک فایل دیگر باید نوشته شود. ( در واقع هیچکدام از خروجی ها در یک فایل مشترک ذخیره نمیشوند و همینطور که در بالا گفتم، هیچکدام از توابع از خروجی توابع قبلی خودشون هم نباید استفاده کنند)

در پاسخ به