Chapter 5 Decision Control Instructions¶
Keynote¶
5.1 What are Decision Control Instructions?¶
áĄááŻááťáááşáá ááťá˝ááşááąáŹáşáááŻáˇ ááąá¸áá˛áˇáááťáž Program áá˝áąáážáŹ Code áá˝áąá áá áşááźáąáŹááşá¸ááźáŽá¸áá áşááźáąáŹááşá¸ áĄá ááşáááŻááş (Sequentially) áĄááŻááşááŻááşáá˝áŹá¸áᏠááźá áşááŤáááşá
ááŤááąáááˇáş Program áá˛áˇ áĄááŻááşááŻááşááŻáś áĄá áŽáĄá ááş (Sequence of execution) ááᯠáááŻáĄááşáááᯠááźáąáŹááşá¸áá˛ááťááşáááşáááŻáááşááąáŹáˇ áĄáąáŹááşá፠(á) ááťááŻá¸ááᯠáĄááŻáśá¸ááźáŻáááŻááşááŤáááş -
- Decision control instruction: áĄááźáąáĄááąááąáŤáşáá°áááşááźáŽá¸ ááŻáśá¸ááźááşááťááşááťáᏠáááşá¸ááźáąáŹááşá¸ááźáąáŹááşá¸ááźááşá¸ (Selection)á
- Repetition control instruction: áĄááŻááşáá áşááŻááᯠáááşááŤáááşá፠ááŻááşááąáŹááşááźááşá¸ (Loops/Iteration)á
Decision Control Instruction
Program áá áşááŻáážáŹ ááŻáśá¸ááźááşááťááş (Decisions) ááťáážááşáááŻáˇáĄáá˝ááş áĄááá áááşá¸áááşá¸ (á) ááŻáážáááŤáááşá
- ááááŚá¸ááŻáśá¸
ifcondition áĄááźáąáŹááşá¸ááᯠááźááˇáşááźááŤá ááŻáˇá
if condition
- Condition (áĄááźáąáĄááą) áá áşáᯠáážááşáááşáá˛áˇáááş (True) áááşáážááşááŹá¸áá˛áˇ áĄááŻááşááᯠááŻááşáááşá ááážááşáááş (False) ááťáąáŹáşáá˝áŹá¸áááşáááŻáá˛áˇ ááŻáśá áśááźá áşááŤáááşá
if elsecondition ááᯠááźááˇáşááźááŤá ááŻáˇ

if condition : else
if condition1 : elif condition2 : elif condition3 : else :ááᯠááźááˇáşááźááŤá ááŻáˇ
if condition1 : elif condition2 : elif condition3 : else :
if,else,elifáááŻáˇáá˛áˇ ááąáŹááşááŻáśá¸áážáŹ Colon (:) ááᯠáááźá áşáááą áááˇáşááąá¸áááŤáááşáifblock,elseblock áá˛áˇelifblock áĄáąáŹááşá Statements áá˝áąááᯠIndent ááŻááşááźáŽá¸ (Space áá˝áŹááźáŽá¸) ááąá¸áááŤáááşá áĄá˛ááŽááᯠIndent ááŻááşááŹá¸áá˛áˇ Statements áá˝áąááᯠBlock of statements áá áşááŻáĄááąáá˛áˇ áááşáážááşááŤáááşá- Indentation ááᯠStatements áá˝áą áĄáŻááşá áŻáá˝á˛áˇáááŻáˇ (Group ááŻááşáááŻáˇ) áĄááŻáśá¸ááźáŻááŤáááşá Indentation áĄáá˝ááş 4 spaces (áááŻáˇáááŻááş) Tab áá áşááťááşááᯠáĄááŻáśá¸ááźáŻááŤá Tabs áá˛áˇ Spaces áá˝áąááᯠááąáŹáááŻáśá¸ááŤáá˛áˇá Screen ááąáŤáşáážáŹ ááźááˇáşáááş áĄáááşááźáąááąáááᯠáááşáááąáááˇáş ááááş Run áá˛áˇáĄá፠Error áááşááŤááááˇáşáááşá
- áááááŻáśá
áś (
ifonly) áážáŹelseáá˛áˇelifá áááŤáááşá¸ áááŤáááş (Optional ááźá áşááŤáááş)á - ááŻáááááŻáśá
áś (
if-else) áážáŹ Condition á True ááźá áşáááşifblock áá˛á Statements áá˝áą áĄááŻááşáĄááŻááşááŻááşáááşá Condition á False ááźá áşáááşelseblock áá˛á Statements áá˝áą áĄááŻááşááŻááşááŤáááşá - ááááááŻáśá
áś (
if-elif-else) áážáŹ Condition áá áşáᯠááážááşáá˛áˇáááş (Fail ááźá áşáááş)á ááąáŹááşáááşelifblock áá˛á Condition ááᯠáááşá á áşáá˝áŹá¸ááŤáááşá Condition áá˝áą áĄáŹá¸ááŻáśá¸ ááážááşááąáŹáˇáážááŹelseblock á áĄááŻááşááŻááşááŤáááşá if-elsestatements áá˝áąááᯠNest ááŻááşáááŻáˇáááŤáááş (ááááˇáşááźáŽá¸ááááˇáş áááşááŤáááşá፠áĄáá˛áážáŹ áááşáááˇáşááąá¸áááŻáˇáááŤáááş)á Program logic áááŻáĄááşááťááşáážááááąáŹááş áĄáááşáážááŻááşá¸ááŻáśá¸áĄáá Nest ááŻááşáá˝áŹá¸áááŻááşááŤáááşá
5.2 Nuances of Conditions (Conditions áá˝áąáá˛áˇ ááááşáá˝áąáˇáá˛áˇ áĄááťááşááťáŹá¸)¶
Condition áá
áşááŻááᯠRelational operators áá˝áąááźá
áşáá˛áˇ <, >, <=, >=, ==, != áá˝áąááᯠáĄááŻáśá¸ááźáŻááźáŽá¸ áááşááąáŹááşááŤáááşá
10 < 20 # True áááŤáááş (áá á áá áááş áááşáááŻáˇááŤ)
'Santosh' < 'Adi' # False áááŤáááş (Alphabetical order áĄáááŻááşá¸ á
á
áşááŤáááş - S á A áááş ááąáŹááşááťáážááŹáááŻáˇ áááşáááŻá¸ááźáŽá¸ááŤáááş)
'gang' < 'God' # False áááŤáááş (Lowercase áá˝áąá Uppercase áá˝áąáááş ASCII value áááŻááźáŽá¸áááŻáˇááŤ)
a = b á Assignment ááźá
áşááŤáááşá a == b á Comparison ááźá
áşááŤáááşá
Ranges áááŻáˇáááŻááş Multiple equalities (ááŽááťážááźááşá¸ áážá/ááážá áĄááťáŹá¸ááźáŽá¸á á áşááŹ) áá˝áąááᯠáááŹáááťááť áááşáááŻááşááąá¸áááŻáˇ áááŤáááşá
if a < b < c : # b á a áá˛áˇ c ááźáŹá¸áážáŹ áážáá ááážá á
á
áşááąá¸ááŤáááş
if a == b == c : # ááŻáśá¸ááŻááŻáśá¸ áá°ááŽááźááşá¸ áážáá ááážá á
á
áşááąá¸ááŤáááş
# 10 != 10 á False ááźá
áşááąáááˇáşá ááŽááąááŹáážáŹ True áá˝ááşááŤáááş
# ááŹáááŻáˇáá˛áááŻááąáŹáˇ Python á (10 != 20) and (20 != 10) áááŻááźáŽá¸ áá˝á˛á
á
áşáá˝áŹá¸áááŻáˇááŤ
if 10 != 20 != 10 : # True áááŤáááş
True áááŻáˇ áááşáážááşááźáŽá¸á 0 áááŻááąáŹáˇ False áááŻáˇ áááşáážááşááŤáááşá
print(bool(3.14)) # True áá˝ááşááŤáááş (Non-zero áááŻáˇáááŻáˇááŤ)
print(bool(25)) # True áá˝ááşááŤáááş
print(bool(0)) # False áá˝ááşááŤáááş
5.3 Logical Operators¶
áááŻáááŻáážáŻááşáá˝áąá¸áá˛áˇ ááŻáśá¸ááźááşááťááşáá˝áą (Complex decision making) ááťáážááşáááŻáˇáĄáá˝ááş Logical operators áá˝áąááźá
áşáá˛áˇ and, or áá˛áˇ not áááŻáˇááᯠáĄááŻáśá¸ááźáŻáááŻááşááŤáááşá
Conditions áá˝áąááᯠand áá˛áˇ or áĄááŻáśá¸ááźáŻááźáŽá¸ áĄáąáŹááşááŤáĄáááŻááşá¸ ááąáŤááşá¸á
ááşáááŻááşááŤáááş -
cond1 and cond2 # áážá
áşááŻááŻáśá¸ True ááźá
áşáážáᏠTrue ááᯠááźááşááąá¸ááŤáááş (áááŻááşáááş False ááŤ)
cond1 or cond2 # áá
áşááŻáᯠTrue ááźá
áşááŹáá˛áˇ True ááᯠááźááşááąá¸ááŤáááş (áĄáŹá¸ááŻáśá¸ False áážáᏠFalse ááŤ)
ááááááťááťááźáąáŹááááş and/or áááŻááŻáśá¸áá˛áˇáĄá፠Conditions áá˝áąááťááşá¸áᲠááźá
áşááąá
áᏠááááŻááŤáá°á¸á Conditions ááąááŹáážáŹ Valid expression áážááşáááťážááᯠáĄá
áŹá¸áááŻá¸ááŻáśá¸áááŻáˇ áááŤáááşá ááŤááźáąáŹááˇáş ááŽáááŻááŻáśá¸áá˛áˇáĄá፠ááááşá True/False áĄááźá˛ááźá
áşááąáážáŹ áááŻááşáᲠExpression áá˛áˇ ááááˇáşáááşáááŻá¸ (Actual Value) ááźá
áşááąáááŻááşááŤáááşá
and Operator áĄááŻááşááŻááşááŻáś:
* Expression áá˝áąááᯠáááşáááą áᏠáááŻááşá
á
áşááŤáááş (Evaluate ááŻááşááŤáááş)á
* ááááşáááŻáˇ áĄáŹá¸ááŻáśá¸á True (Truthy values) ááźá
áşááąáááşá ááąáŹááşááŻáśá¸ Expression áá˛áˇ áááşáááŻá¸ááᯠReturn ááźááşááąá¸ááŤáááşá
* ááááşáááŻáˇ False (Falsy value) áá
áşááŻááŻáá˝áąáˇááŹáá˛áˇ áááşáá
á
áşááąáŹáˇáᲠáĄá˛áᎠFalse ááźá
áşá
áąáá˛áˇ áááşáááŻá¸ ááᯠááťááşááťááşá¸ Return ááźááşááąá¸ááŤáááş (Short-circuit ááźá
áşáá˝áŹá¸ááŤáááş)á
a = 40
b = 30
# áĄáŹá¸ááŻáśá¸ True ááźá
áşááąáááŻáˇ ááąáŹááşááŻáśá¸áááşáááŻá¸ 35 ááᯠx áá˛áááˇáşááŤáááş
# 75 (True), a>=20 (True), b<60 (True), 35 (True) -> Result: 35
x = 75 and a >= 20 and b < 60 and 35
# b < 15 á False ááźá
áşáá˝áŹá¸áááŻáˇ áĄá˛áᎠFalse áááşáááŻá¸áááŻáᲠy áá˛áááˇáşááŤáááş
# -30 (True), a>=20 (True), b<15 (False) -> Result: False
y = -30 and a >= 20 and b < 15 and 35
# 0 á False (Falsy) ááźá
áşáááŻáˇ 0 áááŻáᲠz áá˛áááˇáşááŤáááş (ááąáŹááşááŻáśá¸á 35 ááᯠáááşáááźááˇáşááąáŹáˇááŤ)
# -30 (True), a>=20 (True), 0 (False) -> Result: 0
z = -30 and a >= 20 and 0 and 35
or Operator áĄááŻááşááŻááşááŻáś:
* Expression áá˝áąááᯠáááşáááą áᏠáááŻááşá
á
áşááŤáááş (Evaluate ááŻááşááŤáááş)á
* True (Truthy value) ááźá
áşáá˛áˇ áááááŻáśá¸ áááşáááŻá¸ááᯠáá˝áąáˇááŹáá˛áˇ ááťááşááŹáá˝áą áááşáá
á
áşááąáŹáˇáᲠáĄá˛ááŽáááşáááŻá¸ááᯠááťááşááťááşá¸ Return ááźááşááąá¸ááŤáááş (Short-circuit ááźá
áşáá˝áŹá¸ááŤáááş)á
* ááááşáááŻáˇ áĄáŹá¸ááŻáśá¸á False (Falsy values) ááźá
áşááąáááşááąáŹáˇá ááąáŹááşááŻáśá¸ Expression áá˛áˇ áááşáááŻá¸ááᯠReturn ááźááşááąá¸ááŤáááşá
a = 40
b = 30
# 75 á True (Truthy) ááźá
áşááŹáá˛áˇ ááťááşááťááşá¸ 75 ááᯠx áá˛áááˇáşááŤáááş (ááąáŹááşáááŹáá˝áą áááşáááźááˇáşááŤ)
# Result: 75
x = 75 or a >= 20 or 60
# a >= 20 á True ááźá
áşáá˛áˇáĄáá˝ááş True ááᯠy áá˛áááˇáşááŤáááş
# Result: True
y = a >= 20 or 75 or 60
# a < 20 (False), 0 (False), 35 (True) -> áááááŻáśá¸áá˝áąáˇáá˛áˇ True ááźá
áşáá˛áˇ 35 ááᯠz áá˛áááˇáşááŤáááş
# Result: 35
z = a < 20 or 0 or 35
not Operator
Condition áá
áşááŻáá˛áˇ ááááşááᯠnot ááŻáśá¸ááźáŽá¸ ááźáąáŹááşá¸ááźááşáážááşáááŻááşááŤáááş (Negate ááŻááşáááŻááşááŤáááş)á True ááźá
áşááąáááş Falseá False ááźá
áşááąáááş True ááźá
áşáá˝áŹá¸ááŤáááşá
a = 10
b = 20
# a <= b (10 <= 20) á True ááŤá ááŤááᯠnot ááśáááŻááşááąáŹáˇ False áááŤáááş
# ááŤá a > b áá˛áˇ áĄáááášááŹááşáá°ááŤáááş
not (a <= b) # yields False
# a >= b (10 >= 20) á False ááŤá ááŤááᯠnot ááśáááŻááşááąáŹáˇ True áááŤáááş
# ááŤá a < b áá˛áˇ áĄáááášááŹááşáá°ááŤáááş
not (a >= b) # yields True
1 áá˛áˇ 0 ááźáŹá¸ áááşáááŻá¸áá˝áąááᯠáĄááźááşáĄáážááşááźáąáŹááşá¸áá˛áááŻáˇ (Toggle ááŻááşáááŻáˇ) Shortcut áááşá¸áááşá¸ááźá áşááŤáááşá
# input áá°ááŤáááş (áážááşááťááş - Python 3 áážáŹ input() á string ááźááşááąá¸áááŻáˇ int() ááśáááˇáşááŤáááş)
a = input('Enter 0 or 1')
# a á 1 (True) ááźá
áşááąáááş 0 (False) ááźáąáŹááşá¸áááŻááşááŤáááş
# a á 0 (False) ááźá
áşááąáááş 1 (True) ááźáąáŹááşá¸áááŻááşááŤáááş
a = not a
a = not b áááŻáˇ ááąá¸áááŻááşáá˛áˇáĄáá˝ááş b áá˛áˇ áááşáááŻá¸á ááźáąáŹááşá¸áá˛áá˝áŹá¸áážáŹ áááŻááşááŤáá°á¸ (Original value áááťááşááŤáá°á¸)á
Operator áá áşááŻá áĄááŻááşááŻááşáááŻáˇáĄáá˝ááş Operand (ááŻááşááąáŹááşááśááááˇáş áááşáááŻá¸) áá áşááŻáááşá¸áᏠáááŻáĄááşáááşáááŻáááş áĄá˛ááŤááᯠUnary operator áááŻáˇ ááąáŤáşááŤáááşá ááááşáááŻáˇ Operand áážá áşáᯠáááŻáĄááşáááşááąáŹáˇ Binary operator áááŻáˇ ááąáŤáşááŤáááşá
not- Operand 1 ááŻáᲠáááŻáá˛áˇáĄáá˝ááş Unary operator ááźá áşááŤáááşá+, -, <, >, and, orá ááŹáá˝áąá - Operands 2 áᯠáááŻáá˛áˇáĄáá˝ááş Binary operators áá˝áą ááźá áşááźááŤáááşá
5.4 Conditional Expressions¶
Python áážáŹ Conditional expression (ááááşá¸áĄáŹá¸ááźááˇáş Ternary Operator) áááŻáˇááąáŤáşáá˛áˇ Decision-making ááŻááşáááŻááşáá˛áˇ ááąáŹááşáááşáááşá¸áááşá¸áá
áşáᯠáážáááŤááąá¸áááşá áá°á if-else ááᯠáá
áşááźáąáŹááşá¸áááşá¸áá˛áˇ ááźáŽá¸áĄáąáŹááşááąá¸ááťááşáá˛áˇáĄá፠(One-liner) áĄáááşá¸áĄááŻáśá¸áááşááŤáááşá
Syntax:
<expr1> if <conditional expression> else <expr2>
áĄááŻááşááŻááşááŻáś:
1. <conditional expression> ááᯠáĄáááşááŻáśá¸ Evaluate ááŻááş (á
á
áşááąá¸) ááŤáááşá
2. ááááşáááŻáˇ True ááźá
áşáá˛áˇáááşá <expr1> áá˛áˇ áááşáááŻá¸ááᯠááááşáĄááźá
áş áá°ááŤáááşá
3. ááááşáááŻáˇ False ááźá
áşáá˛áˇáááşá <expr2> áá˛áˇ áááşáááŻá¸ááᯠááááşáĄááźá
áş áá°ááŤáááşá
Examples:
age = 15
# age < 18 ááźá
áşáá˛áˇáĄáá˝ááş True ááŤá ááŤááźáąáŹááˇáş if áážáąáˇá 'minor' ááᯠstatus áá˛áááˇáşááŤáááş
status = 'minor' if age < 18 else 'adult'
sunny = False
# sunny á False ááźá
áşáá˛áˇáĄáá˝ááş else ááąáŹááşá 'room' ááᯠáá°ááŤáááş
# Output: Let's go to the room
print("Let's go to the", 'beach' if sunny else 'room')
humidity = 76.8
# humidity > 75 ááźá
áşáá˛áˇáĄáá˝ááş True ááŤá ááŤááźáąáŹááˇáş 25 ááᯠsetting áá˛áááˇáşááŤáááş
setting = 25 if humidity > 75 else 28
if-elif-else ladder ááᯠáá
áşááźáąáŹááşá¸áááşá¸áá˛áˇ ááąá¸ááááŻááŤáá˛á
# wt = 55 ááźá
áşáá˛áˇáĄáá˝ááş 'Prim' ááᯠmsg áᲠAssign ááŻááşáá˝áŹá¸ááŤáááş
wt = 55
msg = 'Obese' if wt > 85 else 'Hefty' if wt > 60 else 'Prim'
5.5 all( ) and any( )¶
and áá˛áˇ or logical operators áá˝áąááᯠáĄááťáŹá¸ááźáŽá¸áááşááŻáśá¸ááąáááˇáşáĄá
áŹá¸á Built-in functions áá˝áąááźá
áşáá˛áˇ all( ) áá˛áˇ any( ) ááᯠáĄááŻáśá¸ááźáŻááźáŽá¸ áááŻáááşáááşáĄáąáŹááş ááąá¸áááŻáˇáááŤáááşá
all(iterable): ááąá¸ááŹá¸áá˛áˇ Conditions áĄáŹá¸ááŻáśá¸ áážááşááž (True) ááááş True ááᯠááźááşááąá¸ááŤáááş (andáá˝áąááťááşá¸áᲠáááşááŹá¸ááŹáá˛áˇ áá°ááŤáááş)áany(iterable): ááąá¸ááŹá¸áá˛áˇ Conditions áá˝áąáá˛á áá áşááŻáᯠáážááşááŹáá˛áˇ (At least one True) ááááş True ááᯠááźááşááąá¸ááŤáááş (oráá˝áąááťááşá¸áᲠáááşááŹá¸ááŹáá˛áˇ áá°ááŤáááş)á
áĄááŻáśá¸ááźáŻááŻáśááᯠáĄáąáŹááşá፠Program áážáŹ ááąáˇááŹáááŻááşááŤáááş -
a, b, c = 10, 20, 30
# all() áĽáááŹ
# a > 5 (True), b > 20 (False), c > 15 (True)
# b > 20 á False ááźá
áşááąáá˛áˇáĄáá˝ááş (áĄáŹá¸ááŻáśá¸ True áááźá
áşááąáŹáˇáááŻáˇ) False ááźááşááąá¸ááŤáááş
res = all((a > 5, b > 20, c > 15))
print(res) # prints False
# any() áĽáááŹ
# Conditions áá˝áąáá˛á áá
áşááŻáᯠTrue ááźá
áşááŹáá˛áˇ True ááŤ
# a > 5 á True ááźá
áşááąáá˛áˇáĄáá˝ááş True ááźááşááąá¸ááŤáááş
res = any((a > 5, b > 20, c > 15))
print(res) # prints True
all( ) áá˛áˇ any( ) áážá
áşááŻááŻáśá¸á Iterable type (áĽááᏠstring, list, tuple, set, dictionary) ááźá
áşáá˛áˇ Single parameter (Parameter áá
áşááŻáááşá¸) áááŻáᲠáááşááśááŤáááşá
áĄááąáŤáşá áĽáááŹáážáŹááąáŹáˇ Condition á ááŻááŤáááşáá˛áˇ Tuple áá
áşááŻááᯠArgument áĄááąáá˛áˇ ááąá¸áááŻáˇááŹá¸áᏠááźá
áşááŤáááşá ááááşáááŻáˇ Dictionary ááᯠááąá¸áááŻááşáááşáááŻáááşááąáŹáˇ áá°áˇáá˛áˇ Keys áá˝áąá True ááźá
áş/áááźá
áşááᯠá
á
áşááąá¸áá˝áŹá¸áážáŹ ááźá
áşááŤáááşá
any( ): Parameter áá˛á Element áĄáááşá¸ááŻáśá¸ áá áşáᯠTrue ááźá áşááŹáá˛áˇ True ááźááşááąá¸ááŤáááşáall( ): Parameter áá˛á Elements áĄáŹá¸ááŻáśá¸ True ááźá áşáážáᏠTrue ááźááşááąá¸ááŤáááşá
5.6 Receiving Input (Input áááşááśááá°ááźááşá¸)¶
print( ) function ááᯠScreen ááąáŤáşáážáŹ Output ááŻááşáááŻáˇ ááŻáśá¸ááááŻááťááŻá¸á input( ) built-in function áááŻááąáŹáˇ Keyboard áááą Input values áá˝áąááᯠáááşááśááá°áááŻáˇ áĄááŻáśá¸ááźáŻááŤáááşá
input( ) function á áĄááźá˛áááşá¸ String áááŻáᲠReturn ááźááşááąá¸ááŤáááşá áááŻáááŻááŹá 23 áááŻáˇ áááŻááşáááˇáşáááŻááşáááş Number 23 áááŻááşáᲠString '23' ááᯠááážááážáŹááŤá
ááŤááźáąáŹááˇáş áᎠInput áá˝áąááᯠááááşá¸áá˝áąáĄááąáá˛áˇ áá˝ááşááťááşáážáŻ (Arithmetic) ááŻááşááťááşáááşáááŻáááş áĄáąáŹááşááŤáĄáááŻááşá¸ int áááŻáˇáááŻááş float ááᯠConvert (ááźáąáŹááşá¸áá˛) ááąá¸áááŻáˇ áááŻáĄááşááŤáááşá
# String input áá°ááźááşá¸
n = input('Enter your name: ')
# Integer input áá°ááźááşá¸ (input áá°ááźáŽá¸ááŹáá˛áˇ int() áá˛áˇ convert ááŻááşááŤáááş)
age = int(input('Enter your age: '))
# Float input áá°ááźááşá¸ (input áá°ááźáŽá¸ááŹáá˛áˇ float() áá˛áˇ convert ááŻááşááŤáááş)
salary = float(input('Enter your salary: '))
print(n, age, salary)
5.7 Pass Statement¶
passstatement á Execution ááŻááşáá˛áˇáĄá፠ááŹáážáááŻááşáááŻáˇ (Do nothing) áááşáá˝ááşááŤáááşá ááŤááźáąáŹááˇáş áá°áˇááᯠno-op (no operation) instruction áááŻáˇ ááąáŤáşááąáˇáážáááŤáááşá- Statement áá
áşáᯠRun áááŻááşáá˛áˇáĄá፠ááŹáážáááźá
áşá
áąááťááşáá°á¸áááŻáááş
passstatement ááᯠááŻáśá¸áááŻááşááŤáááşá áá°áˇáá˛áˇ áĄááŻáśá¸áááşááŻáśáááŻProblem 5.6áážáŹ áá˝áąáˇáááŻááşááŤáááşá passáááŻifáloopáfunction(áááŻáˇáááŻááş)classáá˝áąááąá¸áá˛áˇáĄá፠Code logic ááááˇáşáááąá¸áááş ááąááŹáŚá¸ááŹá¸áá˛áˇáááąáŹ (Placeholder) áĄááąáá˛áˇ ááŻáśá¸ááąáˇáážáááźááŤáááşá- ááŤááąáááˇáş ááŽáááŻááąááŹáá˝áąáážáŹ
passáááŻááŻáśá¸áᏠááááşáááąáŹááşá¸áážááŤáá°á¸á áá°áˇáĄá áŹá¸...ááᯠááŻáśá¸áááˇáşááŤáááşápassáááŻááŻáśá¸áááŻááşáááş ááááşáᲠááŹáážáááŻááşááťááşááŹááŹá¸ (Intentionally do nothing)á ááŤáážáááŻááş Code áááąá¸áááąá¸ááŹááŹá¸áááŻáᏠáá˝á˛ááźáŹá¸áážáŻááážá ááźá áşáá˝áŹá¸áááŻááşáááŻáˇááŤá
5.7.1 Ellipsis¶
- Ellipsis áááŻáᏠPython áá˛áˇ Built-in constant áá
áşááŻááźá
áşááźáŽá¸
...áá˛áˇ áááŻááşá áŹá¸ááźáŻááŤáááşá - Ellipsis ááᯠááááážáááąá¸áá˛áˇ áááşáááŻá¸ (Unknown value) áá áşááŻááᯠáááŻááşá áŹá¸ááźáŻáááŻáˇ áĄááŻáśá¸ááźáŻááŤáááşá
ifáloopáfunction(áááŻáˇáááŻááş)classáá˝áąáážáŹ Unimplemented code (ááŻááşáááąá¸áááąá¸áá˛áˇááąááŹáá˝áą) áĄáá˝ááş Placeholder áĄááąáá˛áˇ áĄááŻáśá¸ááźáŻááąáˇáážáááŤáááşá- Ellipsis (
...) áá˛áˇpassá ááá°ááŤáá°á¸ápassá Statement áá áşááŻááźá áşááźáŽá¸á...á Constant áá áşááŻááźá áşááŤáááşá
Problems¶
Problem 5.1¶
áá ášá ááşá¸áááşáá°ááŹáá˝ááş áĄááąáĄáá˝ááş (Quantity) áááş 1000 áááşááťáąáŹáşáá˝ááşááŤá 10% discount ááážááááşááźá áşáááşá Quantity áážááˇáş áá ášá ááşá¸áá áşááŻááąá¸áážáŻááşá¸ (Price per item) ááᯠKeyboard ááž Input áĄááźá áşáááşááśááźáŽá¸ ááťáááˇáşáá˝áąá áŻá áŻááąáŤááşá¸ (Total expenses) ááᯠáá˝ááşááťááşááąá¸áááˇáş Program ááᯠááąá¸ááŹá¸ááŤá
Program
Tips
input( )function á áĄááźá˛áááşá¸ String áááŻáᲠReturn ááźááşááąá¸áá˛áˇáĄáá˝ááşá áááŻáĄááşááááŻint(áááŻáˇáááŻááş)floatáĄááźá áş Convert ááŻááşááąá¸áááŻáˇ áááŻáĄááşááŤáááşá ááááşáááŻáˇ Convert áááŻááşáᲠááŽáááŻááşá¸ááŹá¸áááşáááŻáááşqty > 1000áááŻáˇ á á áşáá˛áˇáĄá፠Error áááşááŤááááˇáşáááşá ááŹááźáąáŹááˇáşáá˛áááŻááąáŹáˇ String áá˛áˇ int ááᯠáááŻááşáááŻááşáážááŻááşá¸áážááş (Compare) áááŻáˇ áááááŻáˇááŤá+operator ááŻáśá¸ááźáŽá¸ Concatenation (á áŹááŹá¸áááşááźááşá¸) áááŻááşáááşáážáŹátotexp(Total Expenses) ááᯠString áĄááźá áşááźáąáŹááşá¸áá˛áááŻáˇstr( )function ááᯠáĄááŻáśá¸ááźáŻáááˇáşááŤáááşá
Problem 5.2¶
ááŻáášáááŽáá áşááŻá áááşáááşá¸áá áŹáá˝ááşááťááşááŻáśáážáŹ áĄáąáŹááşááŤáĄáááŻááşá¸ááźá áşáááş -
- Basic Salary áááş
1500áĄáąáŹááşááźá áşááŤá -HRA = 10%,DA = 90% - Basic Salary áááş
1500áážááˇáşáĄáááşááźá áşááŤá -HRA = 500(Fixed),DA = 98%
áááşáááşá¸á Basic Salary ááᯠInput áĄááźá áşáááşááśááźáŽá¸ Gross Salary (á áŻá áŻááąáŤááşá¸áá áŹ) ááᯠáá˝ááşááťááşááąá¸áááˇáş Program ááᯠááąá¸ááŹá¸ááŤá
Program
Tips
ifblock áá˛áˇelseblock áá˝áąáá˛áážáŹ Statements áá˝áą áĄááťáŹá¸ááźáŽá¸ ááŤáááşáááŻááşááŤáááşá áĄá˛ááŽáááŻááąá¸áá˛áˇáĄá፠áááˇáşááťáąáŹáşáá˛áˇ Indentation (Space áá˝áŹááąá¸ááŹá¸ááźááşá¸) ááŻááşááąá¸áááŻáˇááąáŹáˇ áááŻáĄááşááŤáááşá
Problem 5.3¶
ááťáąáŹááşá¸ááŹá¸áá áşááąáŹááşáá˛áˇ á áŹááąá¸áá˝á˛ááážááş ááŹáááŻááşáážáŻááşá¸ (Percentage) ááᯠInput áĄááźá áşáááşááśááźáŽá¸á áĄáąáŹááşááŤá ááşá¸ááťááşá¸ááťáŹá¸áĄáááŻááşá¸ Division áááşáážááşááąá¸áááˇáş Program ááᯠááąá¸ááŹá¸ááŤá
- Percentage >= 60 : First division
- Percentage 50 to 59 : Second division
- Percentage 40 to 49 : Third division
- Percentage < 40 : Fail
Program
Problem 5.4¶
ááŻáášáááŽáá áşááŻá ááŹááşááąáŹááşá¸ (Driver) áá˝áąááᯠáĄáąáŹááşááŤáĄááźáąáĄááąáá˝áąáážáŹ áĄáŹáááś (Insurance) ááŹá¸ááąá¸ááŤáááş -
- áĄáááşááąáŹááşáážááá° (Married) ááźá áşááťážááşá
- áĄáááşááąáŹááşááážááá° (Unmarried)á ááťáŹá¸ (Male) ááźá áşááźáŽá¸ áĄáááş 30 áážá áşáááşááźáŽá¸ááťážááşá
- áĄáááşááąáŹááşááážááá° (Unmarried)á á (Female) ááźá áşááźáŽá¸ áĄáááş 25 áážá áşáááşááźáŽá¸ááťážááşá
ááťááşáá˛áˇáĄááźáąáĄááąáá˝áąáááŻáááş áĄáŹáááśáááąá¸ááŤáá°á¸á áááşáááşá¸áá˛áˇ Marital status, Sex áá˛áˇ Age ááᯠInput áá°ááźáŽá¸ áĄáŹáááśááááŻááş/áááááŻááş áá˝ááşááťááşááąá¸áááˇáş Program ááᯠááąá¸ááŹá¸ááŤá
Program
Problem 5.5¶
w, x, y, z áááŻáá˛áˇ Flag variables á áᯠáážáááŤáááşá áĄá˛ááŽáĄáá˛á áá
áşááŻáᯠ(One of them) á True ááźá
áşááąáááŹá¸áááŻááŹááᯠáááşá¸áááşá¸ááťááŻá¸á
áŻáśááŻáśá¸ááźáŽá¸ á
á
áşááąá¸áááˇáş Program ááᯠááąá¸ááŹá¸ááŤá
Program
Tips
any( )áááŻáᏠBuilt-in function áá áşááŻááźá áşááźáŽá¸á áá°áˇááŽááąá¸áááŻááşáá˛áˇ Parameter áá˛á Element áá˝áąáá˛á áĄáááşá¸ááŻáśá¸áá áşáᯠ(At least one) á True ááźá áşááąáááş True ááźááşááąá¸ááŤáááşáany( )ááᯠáĄááŻáśá¸ááźáŻáá˛áˇáĄá፠String, List, Tuple, Set (áááŻáˇáááŻááş) Dictionary áá áşááŻááŻááᯠPass ááŻááşááąá¸áááŤáááş (Argument áĄááąáá˛áˇ ááąá¸áááŻáˇáááŤáááş)áall( )áááŻáˇááąáŤáşáá˛áˇ áááşáá°áá˛áˇ Function áá áşááŻáááşá¸ áážáááŤááąá¸áááşá áá°áááąáŹáˇ Parameter áá˛á Elements áĄáŹá¸ááŻáśá¸ (All) á True ááźá áşáážáᏠTrue ááźááşááąá¸ááŹááŤá áᎠFunction áááŻáááşá¸any()áááŻáᲠString, List, Tuple, Set (áááŻáˇáááŻááş) Dictionary ááąá¸áááŻáˇáĄááŻáśá¸ááźáŻáááŤáááşá
Problem 5.6¶
ááááşá¸ááááşá¸ n áá
áşááŻááᯠáĄááźáąááśááźáŽá¸ áĄáąáŹááşááŤáĄáááŻááşá¸ ááŻááşááąáŹááşáááˇáş Program ááᯠááąá¸ááŹá¸á፠-
If n is positive - print n * n, set a flag to true
If n is negative - print n * n * n, set a flag to true
if n is 0 - do nothing
n = int(input('Enter a number: '))
if n > 0 :
flag = True
print(n * n)
elif n < 0 :
flag = True
print(n * n * n)
Answer
ááŤá áááşááąáŹááşáááşáážáŹá¸ ááźá áşá áąáááŻááşáá˛áˇ Code ááŤá ááąáŹááşáá áşááťáááş áᎠCode ááᯠááźááşááźááˇáşáá˛áˇáĄá፠`flag = True` ááᯠ`if` áá˛áˇ `else` áá˛áˇ áĄááźááşáááşáážáŹ ááŻááşááąá¸áááˇáşáááşáááŻáˇ áááşááźááşáá˝áŹá¸áááŻááşááŤáááşá áááŻááąáŹááşá¸áááˇáş Code ááŻáśá áśáááąáŹáˇ áĄáąáŹááşááŤáĄáááŻááşá¸ ááźá áşááŤáááş -Exercise¶
[A] Answer the following questions:¶
a. áĄáąáŹááşááŤáááŻáˇáĄáá˝ááş Conditional expressions ááťáŹá¸ááᯠááąá¸ááŹá¸ááąá¸ááŤ
- If a < 10 b = 20, else b = 30
- Print 'Morning' if time < 12, otherwise print 'Afternoon'
- If marks >= 70, set remarks to True, otherwise False
pass statement áá
áşááŻááᯠáĄááŻáśá¸ááźáŻáááŻááşáá˛áˇáĄá፠ááŹááźá
áşáá˝áŹá¸ááá˛?
[B] áĄáąáŹááşá፠Program áááŻáˇá Output ááᯠááąáŹáşááźá፶
a.
i, j, k = 4, -1, 0
w = i or j or k
x = i and j and k
y = i or j and k
z = i and j or k
print(w, x, y, z)
c.
x, y, z = 20, 40, 45
if x > y and x > z :
print('biggest = ' + str(x))
elif y > x and y > z :
print('biggest = ' + str(y))
elif z > x and z > y :
print('biggest = ' + str(z))
d.
e. f. g. h. i.[C] áĄáąáŹááşá፠Program áááŻáˇáá˝ááş áĄáážáŹá¸ááťáŹá¸áážáááŤá ááąáŹáşááźá፶
a.
b. c. d. e.x, y = 30, 40
if x == y :
print('x is equal to y')
elseif x > y :
print('x is greater than y')
elseif x < y :
print('x is less than y')
[D] a = 10, b = 12, c = 0, ááźá áşááťážááş áĄáąáŹááşááŤáááŻáˇá áááşáááŻá¸ááťáŹá¸ááᯠááąáŹáşááźá፶
[E] áĄáąáŹááşááŤáááŻáˇáĄáá˝ááş áĄááźáąááťáŹá¸ááᯠááąá¸ááŹá¸ááąá¸á፶
Questions (ááąá¸áá˝ááşá¸ááťáŹá¸)
a. ááááşá¸ááźááˇáş (Integer) áá áşááŻááᯠKeyboard ááž Input áĄááźá áş áááŻááşáááˇáşááŤá áááŻááááşá¸ááááşá¸áááş á (Odd) ááááşá¸ááŹá¸á á áŻáś (Even) ááááşá¸ááŹá¸ áááŻáᏠáážáŹáá˝áąááąá¸áááˇáş Program áá áşááŻááş ááąá¸ááŤá
b. ááŻáážá áş (Year) áá áşááŻááᯠKeyboard ááž Input áĄááźá áş áááŻááşáááˇáşááŤá áááŻááŻáážá áşáááş áááşáááşáážá áş (Leap year) ááŻááş/áááŻááş ááŻáśá¸ááźááşááąá¸áááˇáş Program áá áşááŻááş ááąá¸ááŤá
c. Ram, Shyam áážááˇáş Ajay áááŻáˇ (á) áŚá¸á áĄáááşááťáŹá¸ááᯠKeyboard ááž Input áĄááźá áş áááŻááşáááˇáşááŤá ááᯠ(á) áŚá¸áá˛áá˝ááş áĄáááşáĄáááşááŻáśá¸ (Youngest) áá°ááᯠáážáŹáá˝áąááŻáśá¸ááźááşááąá¸áááˇáş Program áá áşááŻááş ááąá¸ááŤá
d. ááźáááśáá áşááŻá ááąáŹááˇáş (Angle) á ááŻááᯠKeyboard ááž Input áĄááźá áş áááŻááşáááˇáşááŤá áááŻááźáááśáááş áááşááąáŹááşááááąáŹ Valid Triangle ááŻááş/áááŻááş á á áşááąá¸ááąá¸áááˇáş Program áá áşááŻááş ááąá¸ááŤá (áážááşááťááş - ááąáŹááˇáş á ááŻááąáŤááşá¸ááźááşá¸áááş 180 ááŽáááŽáážááˇáş ááŽááťážáážáᏠValid Triangle ááźá áşáááş)
e. ááááşá¸ááááşá¸áá áşááŻááᯠKeyboard ááž Input áĄááźá áş áááŻááşáááˇáşááŤá áááŻááááşá¸ááááşá¸á áááááááşáááŻá¸ (Absolute value) ááᯠáážáŹáá˝áąááąá¸áááˇáş Program áá áşááŻááş ááąá¸ááŤá
f. á ááŻááśáá áşááŻá áĄááťáŹá¸ (Length) áážááˇáş áĄááś (Breadth) áááŻáˇááᯠááąá¸ááŹá¸áááşá áááŻá ááŻááśá á§áááᏠ(Area) áááş áááşá¸á áááşáááşáĄááŹá¸ (Perimeter) áááş ááźáŽá¸ááŹá¸ááźááşá¸ áážá/ááážá áážáŹáá˝áąááąá¸áááˇáş Program áá áşááŻááş ááąá¸ááŤá (áĽááᏠ- áĄááťáŹá¸ á áážááˇáş áĄááś á áážáááąáŹ á ááŻááśá á§ááááŹáááş áááşá¸á áááşáááşáĄááŹá¸áááş áááŻááźáŽá¸ááŤáááş)
g. (x1, y1), (x2, y2) áážááˇáş (x3, y3) áááŻááąáŹ áĄáážááş (Points) á ááŻááᯠááąá¸ááŹá¸áááşá áááŻáĄáážááş á ááŻá ááŻáśá¸áááş ááťááşá¸ááźáąáŹááˇáşáá áşááźáąáŹááşá¸áááşá¸ (Straight line) ááąáŤáşáá˝ááş ááťááąáŹááşááźááşá¸ áážá/ááážá á á áşááąá¸ááąá¸áááˇáş Program áá áşááŻááş ááąá¸ááŤá
h. á
ááşáááŻááşá¸áá
áşááŻá ááááŻááťááş (Center) Coordinates (x, y) áážááˇáş áááşá¸á áĄááťááşá¸áááş (Radius) áááŻáˇááᯠááąá¸ááŹá¸áááşá áĄááźáŹá¸áĄáážááş (Point) áá
áşááŻáááş áááŻá
ááşáááŻááşá¸á áĄáá˝ááşá¸áááş (Inside)á á
ááşáááŻááşá¸ááťááşá¸ááąáŤáş (On) áááŻáˇáááŻááş áĄááźááşáááş (Outside)á áááşáááˇáşááąááŹáá˝ááş áážáááąááá˛áááŻáᏠááŻáśá¸ááźááşááąá¸áááˇáş Program áá
áşááŻááş ááąá¸ááŤá (áĄááááşáĄááźá˝ááş: sqrt( ) áážááˇáş pow( ) functions ááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻááŤ)
i. áĄáážááş (Point) (x, y) áá áşááŻááᯠááąá¸ááŹá¸áááşá áááŻáĄáážááşáááş X-áááşáááŻá¸ (X-axis) ááąáŤáşáá˝ááşááŹá¸á Y-áááşáááŻá¸ (Y-axis) ááąáŤáşáá˝ááşááŹá¸ áááŻáˇáááŻááş áá°ááážááş (Origin) ááąááŹáá˝ááşááŹá¸ áááŻáᏠáážáŹáá˝áąááąá¸áááˇáş Program áá áşááŻááş ááąá¸ááŤá
j. ááŻáážá
áş (Year) áá
áşááŻááᯠKeyboard ááž Input áĄááźá
áş áááŻááşáááˇáşááŤá Logical operators ááťáŹá¸ááźá
áşááąáŹ and áážááˇáş or áááŻáˇááᯠáĄááŻáśá¸ááźáŻááźáŽá¸ áááŻááŻáážá
áşáááş áááşáááşáážá
áş (Leap year) ááŻááş/áááŻááş ááŻáśá¸ááźááşááąá¸áááˇáş Program áá
áşááŻááş ááąá¸ááŤá
k. ááźáááśáá áşááŻá áĄááŹá¸ (Side) á ááŻááᯠKeyboard ááž Input áĄááźá áş áááŻááşáááˇáşááŤá áááŻááźáááśáááş áááşááąáŹááşááááąáŹ Valid Triangle ááŻááş/áááŻááş á á áşááąá¸ááąá¸áááˇáş Program áá áşááŻááş ááąá¸ááŤá (áážááşááťááş - ááźáááśá áĄááŹá¸ á ááŻááąáŤááşá¸áááşáááş ááťááşáážáááąááąáŹ áĄááźáŽá¸ááŻáśá¸áĄááŹá¸áááş ááźáŽá¸ááŹá¸áážáᏠValid Triangle ááźá áşáááş)
l. ááźáááśáá áşááŻá áĄááŹá¸ (Side) á ááŻááᯠKeyboard ááž Input áĄááźá áş áááŻááşáááˇáşááŤá áááŻááźáááśáááş áážá áşááŹá¸áᎠ(Isosceles)á ááŻáśá¸ááŹá¸áᎠ(Equilateral)á ááŹá¸ááᎠ(Scalene) áááŻáˇáááŻááş ááąáŹááˇáşáážááş (Right angled) ááźáááśá áááşáááˇáşáĄááťááŻá¸áĄá áŹá¸ááźá áşááźáąáŹááşá¸ á á áşááąá¸ááąá¸áááˇáş Program áá áşááŻááş ááąá¸ááŤá