Category: Python

Ծրագրավորման Ներածություն Python լեզվով

Ծրագրավորման Ներածություն Python լեզվով

Մեկնաբանություններ: #

Ծրագրավորման մեջ մեկնաբանությունը մեկնիչը չի կարդում:  Ծրագրավորման մեջ ընդունված է թողնել մեկնաբանություններ, կամ բացատրություն թէ ինչ գործ է կատարում քո ծրագիրը:

Python լեզվում, մեկնաբանությունների համար ոգտագործում են # նշանը՝

# Հաջորդը փոփոխական է՝
a=5

I. Ինֆորմացիայի Տիպեր (Data Types)

1. Թվային

(Ա) Ամբողջական թվեր (Integers)

a=5
print(a/2)

Ինչպես կարելի է ստուգել թէ ինչպիսի տվյալի (data) հետ գործ ունենք?

a = 5
print (type(a))

(Բ) Տասնորդականներ (Floating Point)

Python լեզվում տասնորդականները սահմանվում են տասնորդական կետով՝ պարզապես ավելացրու կետը ամբողջական թվի վերջում ու մեկնիչը նրա հետ կվարվի ինչպես կարելի է ակնկալել՝

a=5.0
print (a/2)

(Գ) Կոտորակներ (Fractions)

from fractions import Fraction
x=Fraction(1,3)
y=Fraction(1,2)
print(x+y)

2. Տեքստային (strings)

a='3'
b='2'+'a'
c="Barev"
print(len(c))

3. Շարաններ (lists)

list1 = ["apple", "banana", "cherry"]
list2 = [1, 5, 7, 9, 3]
list3 = [True, False, False]
print (list1)
print (list2[2])
print (list 3[0])
thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
print(thislist[2:5])

4. Բառարաններ (dictionaries)

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
print(thisdict)
print(len(thisdict))
thisdict = {
  "brand": "Ford",
  "electric": False,
  "year": 1964,
  "colors": ["red", "white", "blue"]
}

5. Բուլյաններ (Boolians): True, False, ==, !=, and, or

  print(a==3)

  print(a<3)

  print(False)


II. Օպերատորներ: +, -, *, /, %, **

a=2
b=3
  
print(a+b)
print(a-b)
print(a*b)
print(a/b)
print(a%b)
print(a**b)

Օպերացիաների հաջորդականություն

  print(2+3*5)

  print(2+3*5==(2+3)*5)
Հետեվյալ ֆունկցիան ստուգում է տվյալ պնդումը՝ այն ճիշտ է թէ ոչ՝
print (bool(1==1))
print (bool (1 ==int('1') )
print (bool(3**3>100))

III. Պայմանական Մեթոդներ (If else)

age = 10
if age < 20:
   print ("You are young")
age = 21
if age < 20:
   print ("You are young")
else:
   print ("You are not young anymore.")
age = 30
if age ==10 or age ==11 or age==12:
   print ("You are a not a teenager!")
elif age==13:
   print ("You are 13 years old")
age = 20
if age>=21 and age<=30:
   print ("Արդեն մեծ մարդ ես")

V. Կրկնվող Ստրուկտուրաներ, կամ Ցիկլեր (Loops)

Ցիկլերի նպատակն է կրկնել պնդումների մի կույտ մի քանի անգամ, կամ քանի դեռ պայմանը ճիշտ է:

1. While Ցիկլեր

While ցիկլով կարելի է կրկնել պնդումների մի կույտ այնքան անգամ ինչքան դրված պայմանը ճիշտ է՝

i = 1
while i < 6:
  print(i)
  i = i + 1

Break պնդումը հնարավոր է դարձնում դուրս գալ հանգույցի կույտից՝

i = 1
while i < 6:
  print(i)
  if i == 3:
    break
  i += 1

2. For Ցիկլեր

For հանգույցը հնարավորություն է տալիս կրկնել պդնումների մի կույտ ըստ ինչ որ շարանի (list), բառարանի (dictionary), կամ տեքստի (string): Պնդումների կույտը For հանգույցը շարունակում է կրկրնել ամեն մի շարանի կետի համար:

numbers = [2,3,5]
for x in numbers:
   print(x)
for x in "banana":
  print(x)

Range ֆունկցիան վերդարձնում է ամբողջական թվերի շարան սկսելով 0ից (կանխադրված), եւ աստիճանաբար ավելացնում է 1ով:

for x in range(6):
  print(x)

3. Հյուսված Ցիկլեր (Nested Loops)

Երբ կրկնվող մի կույտ ունենք հանգույցի մեջ, նշանակում է ունենք հյուսված հանգույց:


VI. Ֆունկցիաներ

Ֆունկցիաները հնարավորություն են տալիս խմբավորել ծրագրի պնդումները որպեսզի հնարավոր լինի այդ պնդումների շարանը մի քանի անգամ ընթացք տալ (to run): Ֆունկցիաները ծրագրավորման մեջ ամենապարզ կարուցվածքներից մեկն են: Հետեվյալ ֆունկցիան ստանում է երկու փոփոխական թվեր (arguments) եւ հետ է վերադարձնում իրենց գումարը: Ֆունկցիաի կույտը սահմանվում է ինդենտացիայով (indentation):

def f(a,b):
  return a+b

Ֆունկցիան որպես ծրագրավորման կույտ կարող է պարունակել պնդումներ: Բայց առանց ֆունկցիան կանչելու այդ պնդումները չեն կարդացվի մեկնիչի կողմից:

def number (a):
  print "You sent",a 
  
number(5)

Թվաբանական Հաջորդականությունների Գումարներ 3

Թվաբանական Հաջորդականությունների Գումարներ 3

Գտիր գումարը բոլոր այն թվերի որոնք 100ից փոքր են, եւ հավասարապես բաժանվում են կամ 3ի կամ էլ 5ի:

(Ա) Օգտագործելով Python

Նախ եւ առաջ եկեք սովորենք if հրամանը Pythonի, որը հնարավորություն է տալիս պայմաններ մտցնել ծրագրի մեջ: Ահա ստանդարդ տրամաբանական պայմանները՝

Հավասար է՝ a==b

Հավասար չէ՝ a!=b

Պակաս է քան՝ a<b

Պակաս կամ հավասար է՝ a<=b

Ավելի մեծ է քան՝ a>b

Ավելի մեծ է կամ հավասար՝ a>=b

Օրինակ 1

Այս օրինակում ունենք երկու փոփոխական a, եւ b, ու ստուգում ենք b-ն մեծ է a-ից թէ ոչ:

Օրինակ 2

Ասենք թէ մեզ պետք են այն բոլոր բնական թվերը սկսած 0ից մինչեւ 100 որոնք բաժանվում են 13ի՝

Մենք կարող ենք ավելացնել այս ցանկին այն բոլոր թվերը որոնք բաժանվում են նաեւ 17ի՝

Օրինակ 3

Կարելի է նաեւ կիրառել and տրամաբանական օպերատորը որպեսզի գտնել այն թվերի (մինչեւ 100) որոնք բաժանվում են 3ի եւ 5ի միաժամանակ՝

Հիմա վերջապես պատրաստ ենք հիմնական հարցի պատասխանը տալ՝

(Ա) Օգտագործելով Գաուսի Մեթոդը

Գումարելու համար հարկավոր է առանձնացնել երկու բացմապատիկները՝

$3+5+6+9+10+12+15+….+95+96+99+100=(3+6+9+12+…99)+(5+10+15+20+…+100)=$

$=3(1+2+3+4+…+33)+5(1+2+3+4+…+20)=3\times \frac{33(33+1)}{2} + 5\times \frac{20(20+1)}{2}$

Բայց պետք է նշել որ այստեղ մի սխալ կա: Կարող ես գտնել?

3ի եւ 5ի ունեն ընդանուր բազմապատիկներ, որոնք հենց 15ի բազմապատիկներն են: Այսինքն ճիշտ պատասխանը ստանալու համար հարկավոր է հանել հենց 15ի բազմապատիկները ընդանուր գումարից քանի որ նրանք երկու անգամ ենք հաշվել:

$3+5+6+9+10+12+15+….+95+96+99+100=$

$=(3+6+9+12+15…+99)+(5+10+15+20+…+100) – (15+30+45+60+…+90)=$

$=3(1+2+3+4+…+33)+5(1+2+3+4+…+20)-15(1+2+3+4+5+6)=$

$=3\times \frac{33(33+1)}{2} + 5\times \frac{20(20+1)}{2}-15\times \frac{6(6+1)}{2}$

$=1683+1050-315=2418$

Վարժություններ

  1. Գտիր գումարը բոլոր այն թվերի որոնք 1000ից փոքր են, եւ հավասարապես բաժանվում են կամ 3ի կամ էլ 5ի:
  2. Գտիր գումարը բոլոր այն թվերի որոնք 1000ից փոքր են, եւ հավասարապես բաժանվում են կամ 7ի կամ էլ 13ի:
  3. Գտիր գումարը բոլոր այն թվերի որոնք 1000ից փոքր են, եւ հավասարապես բաժանվում են կամ 3ի, կամ 5ի, կամ էլ 7ի: Գաուսյան մեթոդով կարելի է անել, բայց ավելի դժվար է:
Թվաբանական Հաջորդականությունների Գումարներ 2

Թվաբանական Հաջորդականությունների Գումարներ 2

Փորձիր գումարել: 3+6+…+18+21

(Ա) Օգտագործելով Python

Կարելի է փոխել range ֆունկցիայի պարամետրերից մեկը, որպեսզի սկսենք 3-ով, ու ցայտ կատարել ամեն երեք թիվ`

Ահա արտադրանքը ցույց է տալիս որ պետք է վերջնական թիվը դարձնել 24 որովհետեվ for range ֆունկցիան դաթարում է մինչեւ վերջնական թիվը հասնելը:

ՈՒղումից հետո կարող ենք ավելացնել sum փոփոխականը եւ գումարել այդ բոլոր թվերը:

Հիմա փորձիր ինքնուրույն՝

(Բ) Օգտագործելով Գաուսի մեթոդը՝

Սկզբից 3ը ինչպես գործոն հանում ենք դուրս՝

$3+6+9+12+15+18+21=3 (1+2+3+4+5+6+7) = 3 \times \frac{7(7+1)}{2} $

Վարժություններ

Փորձիր ստանալ արդյունքները հետեվյալ վարժությունների ոչ միայն ծրագրավորելով, այլ նաեւ օգտագործելով Գաուսի մեթոդը՝

  • 1. Գումարիր՝ 3+6+9+12+…+501
  • 2. Գումարիր՝ 5+10+15+…+1025
  • 3. Գումարիր՝ 217+224+231+…+7161

Թվաբանական Հաջորդականությունների Գումարներ 1

Թվաբանական Հաջորդականությունների Գումարներ 1

Փորձիր գումարել: 1+2+3+…+7+8+9+10

(Ա) Օգտագործելով Python

Հետեվյալ կոդը կցուցադրի թվերը 1, 2, …10: Տես որ երկրորդ տողը for ցիկլի մեջ է քանի որ indent է արված, առաջ է տված: Այստեղ range(1,11,1) նշանակում է որ i փոփոխականը սկսվում է 1ից, աճում 1ով, հասնում մինչեւ 11 ու կանգնում մինչեւ 11 հասնելը:

Բարձակում կտեսնենք հետեվյալ արտադրանքը՝

Որպեսզի գումարենք թվերը, պետք է ընտրել փոփոխական որը գումարելով թվերը կկուտակի իր մեջ իրենց ամբողջական գումարը: Եկեք փոփոխականի անունը դնենք sum:

Այստեղ print հրամանը for բլոկի մեջ է քանի որ ինդենտավորված է, հետեվաբար ամեն իտերացիաի ընթացքում ցուցադրում է sum փոփոխականի արժեքը՝

  • քայլ 1` sum=0, i=1, sum=0+1=1
  • քայլ 2` sum=1, i=2, sum=1+2=3
  • քայլ 3` sum=3, i=3, sum=3+3=6
  • քայլ 10` sum=45, i=10, sum=45+10=55

Իհարկե, կարելի է print հրամանը հանել for մարմնից, հետեվաբար վերացնելով իր արժեքի միջանկյալ ցուցադրումնեը ՝

Առաջին տողում ֆիքսում ենք որ փոփոխականը սկզբից 0 է: Ամեն իտերացիայի, կրկնության ժամանակ երբ i փոփոխականը աճում է սկսած 1ից, sum փոփոխականը աճում է:

Հիմա փորձիր ինքնուրույն՝

(Բ) Օգտագործելով Գաուսի մեթոդը՝

$(1+10)+(2+9)+(3+8)+(4+7)+(5+6) = 5\times11= \frac{10}{2} \times 11 = 55$

Ընթանրացնելով այս մեթոդը, կարող ենք գումարել ցանկացած թվաբանական շարք սկսած 1ից՝

Եթե $n$ը զույգ թիվ է:

$1+2+3+..+n = 1+2+3+…+(n-3)+(n-2)+(n-1)+n=$

$=(1+n)+(2+(n-1))+(3+(n-2))+…+(\frac{n}{2}+(n-\frac{n-2}{2}))=$

$=(n+1)+(n+1)+…+(n+1)=\frac{n(n+1)}{2}$

Վարժություններ
  • 1. Գումարիր՝ 1+2+3+4+…+96+97+98+99+100 Ինչպես կարելի է փոխել վերեվի կոդը որպեսի ստանանք պատասխանը?
  • 2. Գումարիր 23+24+25+…+354

Theme: Overlay by Kaira