Python – Տպել նահանջ տարիների թիվը տարիների տվյալ ցանկից


Դպրոցում կամ քոլեջում նահանջ տարիների հետ աշխատելը բարդ կլինի: Այն դեպքում, երբ մենք ուզում ենք պարզել՝ տվյալ տարին նահանջ տարի է, թե ոչ, ապա պարզ մեթոդը այն չորսի բաժանելն է։ Երբ նահանջ տարին բաժանվում է 4-ի և 100-ի, այն նահանջ տարի է, իսկ հակառակ դեպքում՝ ոչ։ Երբ օգտվողին տրվում է 10-ից 100 տարիների ցուցակ, ապա դա հոգնեցուցիչ գործընթաց է և այնքան ժամանակ է խլում: Այդ իրավիճակում Python-ը ուղու մեջ է մտնում պարզ կոդերով:

Ցուցակից նահանջ տարիների թիվը տպելու համար պետք է հասկանանք, թե ինչ է նահանջ տարին։ Այն գալիս է չորս տարվա ընդմիջման ժամանակ՝ 366 օրով, իսկ մյուս տարիներն ունեն ընդամենը 365 օր: Նահանջ տարվա մեկ լրացուցիչ օրը ավելացվում է փետրվար ամսին։

Մոտեցումներ

Մոտեցում 1 – Օգտագործելով լամբդա ֆունկցիան

Մոտեցում 2 - Օգտագործելով օրացույցային մոդուլը

Մոտեցում 3 – Օգտագործելով պայմանական դրույթ

Մոտեցում 1. Python ծրագիր՝ տպելու նահանջ տարիների թիվը տարիների ցանկից՝ օգտագործելով lambda ֆունկցիան

Ցանկի երկարությունը ստանալու մեթոդը գտնում են օրացույցային մոդուլը լամբդա ֆունկցիայի հետ միասին ներմուծելով։

Ալգորիթմ

  • Քայլ 1 - Օրացույցի մոդուլը ներմուծվում է isleap() անունով ֆունկցիան օգտագործելու համար:

  • Քայլ 2 - Ցանկը սկզբնավորվում է տարին պահող տարրերով:

  • Քայլ 3 − Ֆիլտրի ֆունկցիան միշտ օգտագործվում է լամբդա ֆունկցիան սահմանելիս:

  • Քայլ 4 − Ցուցակից նահանջ տարին տպագրվում է նահանջ տարիների երկարության հետ միասին:

Օրինակ

#importing the library
import calendar
#initializing the list with integer elements
list1 = [1998, 1987, 1996, 1972, 2003]
#iterating through the list using for loop
#using the isleap(), filter() function is used to find the leap year
leaplist  = list(filter(lambda num: calendar.isleap(num), list1))
#returns the final length 
print("Leap years from the list are: " , leaplist)
print("Total number of leap years: ", len(leaplist))

Արդյունք

Leap year from the list are: [1996, 1972]
Total number of leap year: 2

Մոտեցում 2. Python ծրագիր, որը տպում է նահանջ տարիների թիվը տարիների ցանկից՝ օգտագործելով պայմանական դրույթը

Տարրերի ցանկը սկզբնավորվում է և պայմանական դրույթի օգնությամբ բավարարվում է պահանջը՝ պարզելու, թե որն է նահանջ տարին։

Ալգորիթմ

  • Քայլ 1 − Տարիների ցանկը վերագրվում է «list1» անունով փոփոխականին և սահմանվում է դատարկ ցուցակ:

  • Քայլ 2 − Օգտագործելով կրկնությունը, երբ տարին ցուցակում է, պետք է բավարարի, որ 4-ի բաժանված տարին պետք է հավասար լինի 100-ի բաժանված թվին:

  • Քայլ 3 − Կամ պարզ հաշվարկը, երբ տարին բաժանվում է 400-ի, այն պետք է բաժանվի։

  • Քայլ 4 − Գործընթացը շարունակվում է այնքան ժամանակ, մինչև չստուգի ցանկի բոլոր տարրերը:

  • Քայլ 5 - Այնուհետև վերադարձվում է նահանջ տարիների ընդհանուր թիվը:

Օրինակ

#initializes the list with years as input
list1 = [1998, 1987, 1996, 1972, 2003]
#initializing the empty list
leaplist = []
#for loop is used to iterate through the list
#condition is used to print the result
for num in list1:
	if ((num%4==0 and num%100!=0) or (num%400==0)):
		print("Leap year from the list is: ",num)
		leaplist.append(num)
#finally printing the number of leap years in the given list
print("Total number of leap years: ", len(leaplist))

Արդյունք

Leap year from the list is: 1996
Leap year from the list is: 1972
Total number of leap year: 2

Մոտեցում 3. Python ծրագիր՝ Calendar մոդուլի միջոցով նահանջ տարիների թիվը տարիների ցանկից տպելու համար

Նահանջ տարին որոշվում է տարրերի ցանկից՝ ներմուծելով օրացուցային մոդուլը: Քանի որ գրադարանն օգտագործվում է, պայմանական հայտարարությունը չի օգտագործվում:

Ալգորիթմ

  • Քայլ 1 − Պահանջվող օրացուցային մոդուլը ներմուծվում է նահանջ տարիները լուծելու համար:

  • Քայլ 2 − Ցուցակը սկզբնավորվում է որոշակի թվով տարիներով և ցուցակից նահանջ տարին պահելու համար պահվում է leaplist փոփոխականում:

  • Քայլ 3 − For հանգույցն օգտագործվում է ցուցակի տարրերով կրկնելու համար, isleap() ֆունկցիայի օգնությամբ այն ուղղակիորեն գտնում է նահանջ տարին։

  • Քայլ 4 − Նահանջ տարիների ընդհանուր թիվը տպագրվում է պայմանը բավարարելու դեպքում:

Օրինակ

#importing the library
import calendar
#initializing the list with integer elements
list1 = [1998, 1987, 1996, 1972, 2003]
#initializing the empty list
leaplist = []
#iterating through the list using for loop
#using the isleap() function to find the leap year
for num in list1:
	leap = calendar.isleap(num)
	if leap:
		print("Leap year from the list is: ",num)
		leaplist.append(num)
#returns the final length 
print("Total number of leap years: ", len(leaplist))

Արդյունք

Leap year from the list is: 1996
Leap year from the list is: 1972
Total number of leap year: 2

Եզրակացություն

Ցանկի տվյալների կառուցվածքը վերաբերում է տվյալների տարբեր տեսակների տարրերին, ինչպիսիք են ամբողջ թվերը, լողացող համարները կամ տողերը: Տարրերը պետք է սահմանվեն ստորակետով բաժանված քառակուսի փակագծերում: Մոտեցումները տրվում են մոդուլներով, ինչպիսիք են օրացույցը, DateTime-ը և օգտագործելով պայմանական հայտարարություններ: