Astu Coding
142 subscribers
8 photos
4 videos
3 files
1 link
Download Telegram
Forwarded from Astu Techs
Astu Techs
ክፍል ፬ 📱 Python Operators ፓይተን ውስጥ ስሌት ለምስራት የምንጠቀምባቸው 7 አይነት Operatorኦች አሉ። 1. Arithmetic 2. Relational 3. Assignment 4. Logical 5. Membership 6. Identity 7. Bitwise በመባል ይታወቃሉ
Arithmetic Operator

ውስጡ የያዛቸው፦ +, -, *, /, **, // ና % ናቸው።

Addition +

1. ቁጥሮችን ለመደመር
2. ለ String concatenation  እንጠቀማለን

print(1+2) # Output -> 3
print(5+3) # Output -> 8

String Concatenation
print("Hello" + ", World") # Output -> Hello, World

text = "My name is "
name = "Abebe"

print(text+name) # Output -> My name is Abebe

Subtraction -

ከአንድ ቁጥር ላይ ሌላ ቁጥር ለመቀነስ
print(5-1) # Output -> 4
print(10-2) # Output -> 8

Multiplication *

1. ቁጥሮችን ለማባዛት
2. String or  List or Tuple ለማባዛት(ለመደጋገም)

print(5*2) # Output -> 10
print(2*3) # Output -> 6


print("h"*5) # Output -> hhhhh
print("hello"*2) # Output -> hellohello
Forwarded from Astu Techs
Astu Techs
Arithmetic Operator ውስጡ የያዛቸው፦ +, -, *, /, **, // ና % ናቸው። Addition + 1. ቁጥሮችን ለመደመር 2. ለ String concatenation  እንጠቀማለን print(1+2) # Output -> 3 print(5+3) # Output -> 8 String Concatenation print("Hello" + ", World") # Output -> Hello, World text =…
Division /
ቁጥሮችን ለማካፈል

print(5/2) # Output -> 2.5
print(4/2) # Output -> 2.0

Exponent **

Exponent ለማድረግ እንጠቀምበታለን፤ x**y ማለት፦ ሂሳብ ላይ እንዳለው x the power of y እንደማለት ነው

print(2**3)  # Output -> 8
print(5**2) # Output -> 25

Floor //
ቁጥሮችን አካፍለን ነገር ግን ያገኘነውን ውጤት ያለ ነጥብ(.) ማስቀመጥ(በInteger ማስቀመጥ)

print(5//2) # Output -> 2
print(3//2) # Output -> 1

Modulus %

ቁጥሮችን አካፍለን ቀሪው ስንት እንደሆነ የሚያሰላ ነው።

ለምሳሌ፦ 5%2 ብንል፥ 2 ደራሽ ይሆንና ግን 1 ትቀራለች፤ ስለዚህ 5%2 እኩል ይሆና 1። ሁለቱ ቁጥሮች ተካፍለው ምንም ቀሪ ማይኖር ከሆነ ደግሞ መልሱ 0 ይሆናል።

print(5%2) # Output -> 1
print(3%3) # Output -> 0


2%5 ስንት ሚመጣ  ይመስላችኋል ?
Relational Operator

- ተመሳሳይ የሆኑ የዳታ አይነቶች(Data Types) ለማወዳደር የምንጠቀምበት ሲሆን፥ በውስጡ የያዛቸውም፦ ==, >, <, >=, <=, != ናቸው።

- እነዚህን ኦፕሬተሮች ተጠቅመን የምናገኘው ውጤት(Output) True/False ነው።

📌 Equal To(==)

🔰ኦፕሬተሩ == ሲሆን፣ ሁለትና ከዛ በላይ ተመሳሳይ የሆኑ ዳታዎች(ለምሳሌ ቁጥሮች) እኩል መሆናቸውንና አለመሆናቸውን ለማወቅ የሚረዳን ነው፤ ስንጠቀመውም ውጤቱ True/False ነው።

ለቁጥሮች ስንጠቀም ለምሳሌ፦
x = 5
y = 10
print(x==5) #  True
print(x==y) # False
print(y==10) # True

🔆 አሠራሩን ለመረዳት ያህል፥
x = 5 እንበል።
x==5 ስንልን፦

"የx ዋጋ አምስት ነውን?/ x ከ5 ጋር እኩል ነውን?" ብለን ኮምፒውተርን መጠየቅ ነው፤ ስለዚህ እኩል ከሆነ True ይለናል፥ ካልሆነ ደግሞ False ይለናል።

‼️መረሳት የሌለበት ነገር ቢኖር = እና == በጣም ልዩነት ያላቸው ሁለት የተለያዩ ኦፕሬተሮች ናቸው።

🔅 x = 5 ስንል፥ "የx ዋጋ 5 ይሁን" ብለን ለኮምፒዩተር እየነገርነው ሲሆን፥ በተቃራኒው ደግሞ x == 5 ስንል፥ "የx ዋጋ 5 ነው ወይ?" ብለን ኮምፒውተርን እየጠየቅነው ነው።

ይጥላል ....
1
Astu Coding
Relational Operator - ተመሳሳይ የሆኑ የዳታ አይነቶች(Data Types) ለማወዳደር የምንጠቀምበት ሲሆን፥ በውስጡ የያዛቸውም፦ ==, >, <, >=, <=, != ናቸው። - እነዚህን ኦፕሬተሮች ተጠቅመን የምናገኘው ውጤት(Output) True/False ነው። 📌 Equal To(==) 🔰ኦፕሬተሩ == ሲሆን፣ ሁለትና ከዛ በላይ ተመሳሳይ የሆኑ ዳታዎች(ለምሳሌ ቁጥሮች) እኩል መሆናቸውንና አለመሆናቸውን…
ለString

💡 Stringኦች ስናወዳድር፣ ቁጥሮችን ስናወዳድር ካለው አሠራር ጋር ይለያያል።

ለምሳሌ 5 == 5 ብንል ያለምንም ጥያቄ እውነት ይሆናል፤
"Hi" == "Hi" ስንልስ "ምኑን ከምኑ ሚያወዳድረው? 🤔" የሚል ትልቅ ጥያቄ ያስነሳል፤ እስኪ አሠራሩን በአጭሩ ለማየት እንሞክር።

ሙከራ 1. Stringኦችን ስናወዳድር መጀመሪያ ላይ የሚወዳደረው ተወዳዳሪዎቹ የያዙት የCharchters መጠን/ብዛት ነው። ለምሳሌ
"Hi" == "Hi" ብንል፥ የሁለቱም የCharacters ብዛታቸው 2 ነው፤ ስለዚህ እውነት/True ይሆናል።

በጠቃራኒው ደግም "Hi" == "Hi!" ብንል፥ "Hi" የያዘው Characterኦች 2 ሲሆን፥ "Hi!" ደግሞ 3 ነው(H, i, !)፤ ስለዚህ እኩል አይደሉም።

ሙከራ 2. ሙከራ 1 እውነት ከሆነ፥ ቀጣይ ላይ የሚሆነው ደግሞ፦

🔰 እንደሚታወቀው ሁሉም Charecters የምንላቸው ነገሮች(ቁጥር፣ ፊደላት፣ ሥርዓተ ነጥቦች ወዘተ.) የራሳቸው የሆነ ASCII CODE አሏቸው፤ ኮምፒውተር የሚውቃቸውም በነዚህ ቁጥሮች ነው። ለምሳሌ፦
A 65፣ የB 66፣ የC 67 ... እያለ ይጥላል።

... ስለዚህ ሁለኛው ሙከራ ሚሆነው እያንዳንዱን
String characterኦች የASCII CODE ማወዳደር ነው። እስቲ አሠራሩን እንመልከት ...

"Hi" == "Hy" ብንል፣

ሙከራ 1

ሙከራ 2
፩. ASCII CODE of H == ASCII CODE of  
H

  -> True

ይጥላል ...

፪. ASCII CODE of i == ASCII CODE of y

  -> FALSE

📝 ስለዚህ "Hi" == "Hy" ሐሰት/False ይሆናል ማለት ነው።

text1 = "Hello"
text2 = "hello"
text3 = "Hi"
text4 = "hi"

print(text1 == "Hello") # True
print(text1 == text2) # False
print(text2 == text3) # False
print(text3 == text4) # False
👍1
📌 ጥያቄ የሆነባቹ ነገር ካለ @astutechschat መጠየቅ ትችላላችሁ።

📌 ሐሳብ፣ አስታየት / መስተካከል አለበት ምትሉት ነገር ካለ 👤 @natiprado ላይ ልታደርሱን ትችላላችሁ። 😊
Greater Than (>)
🔅 እንደምናውቀው ሁለት ቁጥሮችን ለማወዳደር ነው።

🔅 ለStringኦችም ሲሆን አሠራሩ ልክ == እንዳለው ነው፤ በ == ፋንታ የሚጠቀመው >ን ነው።

‼️ 5 == "5" ማለት እንችላለን፤ ግን 5 > "5" ማለት አንችልም፤ Error ይሆናል።

print(5 > 1) # True
print(2 > -2) # True
print(1 > 3) # False

Less Than (<)
🔅 ይሄም አሠራሩ ሁሉ ከ > ተመሳሳይ ነው።

print(5 < 6) # True
print(1 < 2) # True
print(3 < 1) # False

Greater Than or Equal to (>=)
🔅 > ጋር የሚለው ነገር ቢኖር እኩል የሆኑ ቁጥሮችን ስናወዳድር የምናገኘው True መሆኑ ነው።

print(5 >= 5) # True
print(5 > 5) # False


Less Than or Equal To (<=)
🔅>= ጋር አሠራራቸው ተመሳሳይ ነው።

print(5 <= 5) # True
print( 5 < 5) # False


🔆 ሁሉም አሠራራቸው ልክ ሒሳብ ላይ እንዳለው ጋር አንድ ነው
Assignment Operators

🔅 በውስጡ የያዛቸው፦ =, +=, -=, *=, **=, /=, //=  እና %= ነው።

እንደምናውቀው የ= ምልክት አንድ አዲስ ተለዋዋጭን ለማወጅ፣ ለማሻሻል የሚረዳን ነው። ሌሎቹ ግን ከዚ በፊት የነበረን ተለዋጭ ላይ አዲስ ዋጋን(Value) እንደየ አውዱ ለመጨመር፣ ለመቀነስ፣ ለማበዛት... ወዘተ. የሚረዱን ናቸው።

እስኪ በምሳሌ እንመልከት፦
age = 18


age ለሚባል ተለዋዋጭ የ18ን ዋጋ ሰጠሁ፤ እናም እንበልና ይህ አage ዋጋ ቋሚ ሳይሆን በየ ጊዜው የሚጨምር ነው፤ ስለዚህ አዲስ ተለዋዋጭ መፍጠር ሳይጠበቅብኝ፥ እንዴት የageን ዋጋ መጨመር እችላለሁ? 🤔

መልሱ ቀላል ነው፤ Assignment Operator መጠቀም 😃

age = 18
print(age) # 18
age += 2
print(age) # 20

age += 2 ይህ ማለት፦
age = age + 2 ማለት ነው

age -= 2 ➡️ age = age - 2
age *= 2 ➡️ age = age * 2
age /= 2 ➡️ age = age / 2
age //=2 ➡️ age = age // 2
age = 2 ➡️ age = age 2
age %= 2 ➡️ age = age % 2

💡ግልፅ ነው?
Logical Operator

🔅 በሁኔታዎች ላይ ማለትም ነገሮች እውነት(True) ወይም ሃሰት(False) መሆናቸው ላይ ተመርኩዞ የሚሰራ ኦፕሬተረ ነው።

🔅ሌላኛው ደግሞ የተለያዩ ሁኔታዎችን ለማጣመር ይረዳናል።

በውስጡም የያዛቸው፦ and, or እና not ናቸው።

‼️ ሶስቱም የፓይተን ቁልፈ-ቃላት(Keywords) ናቸው።

🔆 አሠራራቸው ከታች በምስል ተያየዞ ቀርቧል
Astu Coding
AND # Boolean print(True and True) # True print(True and False) # False print(False and False) # False print(False and True) # False # Numbers print( 5 == 5 and 6 > 1) # True print(7 < 10 and 7 > 6) # True print(6 < 3 and 3 < 2) # False print(4 < 2 and…
OR

# Boolean 

print(True or True) # True
print(True or False) # True
print(False or False) # False
print(False or True) # True

# Numbers
print( 5 == 5 or 6 > 1) # True
print(7 < 10 or 7 > 6) # True
print(6 < 3 or 3 < 2) # False
print(4 < 2 or 2 == 2) # True
Astu Coding
OR # Boolean print(True or True) # True print(True or False) # True print(False or False) # False print(False or True) # True # Numbers print( 5 == 5 or 6 > 1) # True print(7 < 10 or 7 > 6) # True print(6 < 3 or 3 < 2) # False print(4 < 2 or 2 == 2) #…
NOT
# Boolean 

print(not (True and True)) # False
print(not (True and False)) # False
print(not (False and False)) # True
print(not (False and True)) # True

# Numbers
print(not(5 == 5 and 6 > 1)) # False
print(not(7 < 10 and 7 > 6)) # False
print(not(6 < 3 and 3 < 2)) # True
print(not(4 < 2 and 2 == 2)) # True
Bitwise Operator
🔅 ይህ የኦፕሬተር አይነት በተወሰነ መልኩ ከሎጂካል ጋር ተመሳሳይ ነገር ግን በቢት(Bit) ደረጃ የሚሰራ ኦፕሬተር ነው።

🔅 እንዲሰራ የሰጠነውን ቁጥር ወደ ባያናሪ ቁጥር(0 ና 1) በመለወጥ፤ ከስራውም በኋላ ውጤቱን በቁጥር ይነግረናል።

1 = True
0 = False


በውስጡ የያዛቸው፦ &, |, ^, ~, << እና >> ናቸው።

And(&)
🔅 1 & 2 ስንት እንደሆነ እንመልከት ....

1 ወደ ባይናሪ ሲቀየር 0001
2 ወደ ባይናሪ ሲቀየር 0010

ስለዚህ እነዚህን ቁጥሮች ልክ ሎጂክል ኦፕሬተር ላይ እንዳለው and አመዛዝኖ ይሰራል።

0001 & 0010 = 0000
ይሄ ቁጥር ደግሞ 0 ነው። ስለዚህ 1 & 2 = 0 ይሆናል ማለት ነው።

print(1 & 2) # 0001 & 0010 = 0000 = 0
print(3 & 5) # 0011 & 0101 = 0001 = 1
print(6 & 7) # 0110 & 0111 = 0110 = 6
print(9 & 5) # 1001 & 0101 = 0001 = 1
OR (|)
🔅 ሁሉም እንዳልነው ነው፤ አሰራሩ ከ or ልጂካል ኦፕሬተር ጋር ተመሳሳይ ነው።

print(1 | 2) # 0001 | 0010 = 0011 = 3
print(3 | 5) # 0011 | 0101 = 0111 = 7
print(6 | 7) # 0110 | 0111 = 0111 = 7
print(9 | 5) # 1001 | 0101 = 1101 = 13


python

XOR(^)
🔅 ይሄ ደግሞ የ | (OR) ተቃራኒ ነው።
Membership Operator
🔅 አንዱ የአንዱ አባል መሆኑን ለማወቅ የምንጠቀምበት ኦፕሬተር ነው፣ የምንጠቀመውም in የሚባል keyword ነው።
txt = "Hello"
print("H" in txt) # True
print("o" in txt) # True
print("e" in txt) # True
print("w" in txt) # False
print("R" in txt) # False

Identity Operator
🔅 አንዱ ከሌላኛው ጋር በዋጋ እኩ፣ በዳታ አይነት(Data Type) አንድ መሆኑን ለማውቅ የሚያገለግል ኦፕሬተር ነው።
🔅 የምንጠቀው is የሚባል keyword ነው።

〽️ በተወሰነ መልኩ ከ == ጋር አሠራሩ ይመሳሰላል፤። ነገር ግን == የሁለት ነገሮችን እኩሌታ(በዋጋ) ለማወዳደር/ለማወቅ ሲረዳን፤ በሌላ መልኩ ደግሞ is የሁለት ነገሮች እኩሌታ እና ሁለቱም አንድ አይነት Data type መሆናቸውን ለማወቅ ሚረዳን ነው።

ለምሳሌ፦
5 == 5.0 True ነው
5 is 5.0 ግን False ነው።


ምክኒያቱም 5 == 5.0 ስንል እያወዳደርን ያለነው ዋጋቸውን ብቻ ነው፤ ስለዚህ
5 == 5.0 እወነት ነው ማለት ነው። ግን

5 is 5.0 ስንል፥ 1ኛ ዋጋቸውን እያወዳደርን ነው፤ 2ኛ ደግሞ ሁለቱም የአንድ ዳታ ቤተሰብ መሆናቸውን እያጣረን ነው።

5 ከ 5.0 እኩል ቢሆንም፥ ግን ሁለቱም የተለያየ የዳታ አይነት ነው ያለቸው(5 integer, 5.0 ደግሞ float)
ስለዚህ True and False ማለት ደግሞ ውጤቱ False ይሰጠናል ማለት ነው።

x = 10
y = 2
n = None
print(x is 10) # True
print(y is 2) # True
print(n is None) # True
print(x is not 10.0) # True
print(y is not 2.0) # True
print(n is not None) # False
👍1
💡 አስታውስ

🔅 ለዚህ ነው ፓይተን ከሰው ልጅ ቋንቋ ጋር ተቀራራቢ ነው ሚባለው።

x = 10
print(x is 10 and x is not 10.0) # True
የፓይተን ኦፕሬተሮች እነዚህ ናቸው ....

በቀጣይ Sequence Data Types እናያለን
3
Forwarded from Astu Coding
📌 ጥያቄ የሆነባቹ ነገር ካለ @astutechschat መጠየቅ ትችላላችሁ።

📌 ሐሳብ፣ አስታየት / መስተካከል አለበት ምትሉት ነገር ካለ 👤 @natiprado ላይ ልታደርሱን ትችላላችሁ። 😊
Sequence Data Types
🔅 በአጭሩ ይህ የዳታ ታይፕ አይነት፥ የተለያዩ ዳታዎችን(ቁጥሮች፣ ጽሑፎች ወዘተ.) አንድ ላይ ሰብሰብ አድረገን ለመያዝ ይረዱናል።

💢 እንደየ ባሕርያቸውና አገልግሎታቸው በ3 ይከፈላሉ፦

1. List
2. Tuple
3. Set
List
🔅 ይህን የዳታ አይነት ለመፍጠር [ ] 👈 ይሄን ቅንፍ እንጠቀማለን።

የሚከተሉትን ባሕርይ አለው፦

✔️ Mutable፦ በማንኛውም ጊዜ ውስጡ ያሉትን ዳታዎች፥ ማጥፋት፣ አዲስ መጨመር፣ መቀየር፣ መለወጥ እንችላለን።

✔️ Ordered፦ ልክ እንደተፈጠረ፥ ቅደም-ተከተሉን ሳይለውጥ ይቀመጣል።

✔️ Indexable፦ ውስጡ ካሉት ዳታዎች የምንፈልገውን Access ማድረግ ይቻላል።

ls = [1, 2, 3, 4, 5]
print(ls) # [1, 2, 3, 4, 5]
Indexing
🔅 Indexing ማለት፦ የምንፈልገውን ዳታ ከውስጡ አውጥቶ መጠቀም ማለት ነው።

የምንጠመውም በመጀመሪያ ሊስታችንን ያወጅንበት ተለዋዋጭ ላይ [የIndex ቁጥር] በማድረግ ነው።

💢 Index Number(ቁጥር)፦ ማለት እዛ List ውስጥ ላሉ ለእያንዳንዱ አባላት የሚሰጥ ተራ ቁጥር(ቅደም ተከተሉን የጠበቀ) ቁጥር ነው።
🔅 Index Number ሁልጊዜ ከ0 ይጀምራል።

ለምሳሌ፦
ls = [6, 3, 1, 7, 2]

ብለን ሊስት ብንፈጥር፥
የIndex ቁጥራቸው የከታች ያለው ይሆናል።

0   1  2  3  4    👈 Index Number
[6, 3, 1, 7, 2]   👈 List

ስለዚህ አሁን ከዚህ ውስጥ 7 ቁጥርን ለማንበብ ብሞክር የሚከተለውን እጠቀማለሁ።

ls = [6, 3, 1, 7, 2]
print(ls[3]) # 7
print(ls[0]) # 6
print(ls[1]) # 3

Indexing አንድ የሊስቱን አባል ብቻ ሳይሆን 2፣ 3፣ ምናልባት ሁሉን፣ ምናልባት በየ ሁለት እርምጃው፣ ምናልባት ሁሉንም ለመገልበጥ ይረዱናል።

በነዚህ ሁሉ ውስጥ በተጨማሪነት የምጠቀው ደግሞ ሁለት ነጥብ(:)(Colon) ከIndex ቁጥር አጠገብ በማስቀመጥ ነው።

Structure:

[start:end:step]

ለምሳሌ
print(ls[0: 2]) # [6, 3]
print(ls[1: 4]) # [3, 1, 7]


💢 እንግዲህ ሁሌ መጀመሪያ ላይ ያለው Index ቁጥሩ  0 ነው ካልን፤ መጨረሻ ላይ ያለው ደግሞ -1 አንድ ነው። (ወደ ኋላም ይቆጥራል)

print(ls[-1]) # 2