سلام خسته نباشید!
من تا ویدیوی 46 دیدم اما تمرین زیر رو نمیتونم حل کنم لطفا کمکم کنید
برنامه ای بنویسید که شماره دانشجویی و معدل تعداد N دانشجو را از ورودی دریافت نماید و دومین دانشجویی که از نظر بیشترین نمره معدل داراست (یا کسب کرده) معدل و شماره دانشجویی را نمایش دهد (منظور چاپ نماید).
⭕️ نکته : برای بدست آوردن دومین معدل نکته ریزی را باید توجه کنید و تمام افراد برای اینکه دومین معدل را تو ذهن خودشون بیان کنند نیز پیش فرض همین کارو که باید بنویسید انجام میدهند. ورودی را کاربر یا کسی که برنامه را اجرا میکند وارد می نماید. N را نیز از ورودی دریافت می کنید که تعداد دانشجویی که باید گرفته شود چند نفر است. لازم به ذکر است ما نیازی به ذخیره یا داشتن تمامی دانش آموزان نیستیم و مسئله هم این مورد را نخواسته است و صرفا معدل دوم را نیاز دارد.
تشکر
سلام وقت بخیر
try:
number = input(f"Please Enter The Number Of Students : ")
number = int(number)
if (number < 1):
print("The Number Must Be Greater Than 0")
students = []
scores = []
i = 1
while len(students) < number:
student_name = input(f"Please Enter The Name Of Student {i} : ")
student_score = input(f"Please Enter The Score Of Student {i} : ")
student_score = int(student_score)
students.append(student_name)
scores.append(student_score)
i += 1
zipped_list = sorted(zip(students, scores), key=lambda x: x[1], reverse = True)
second_student = list(zipped_list)[1]
print(f"The Name Of Second Student is {second_student[0]} and the Score is {second_student[1]}")
except:
print("You Should Enter A Valid Number")
قطعا راه های ساده تری هم خواهد داشت این راهی بود که من نوشتم اون try و except هم برای کنترل این که اگر بجای عدد حروف وارد کرد ارور بگیره
اینم عکس برای خوانایی بهتر
فقط من حواسم نبود برای نامگذاری بجای شماره دانشجویی نام گذاشتم شما بجای نام شماره وارد کنید مشکلی نداره
سلام. این هم یک راه دیگر
number = input("Enter number of your student...")
number = int(number)
StuNum= [int(item) for item in input("Enter the student Number... ").split() ]
if len(StuNum)!= number:
print("plese chek equality of your entry")
StuSco=[float(item) for item in input("Enter your student score... ").split() ]
if len(StuSco)!= number:
print("please chek equality of your entry")
dictStuScoNum=zip(StuSco, StuNum)
sort_li=sorted(dictStuScoNum)
print(sort_li[-2])