Python
/
Goodies
- 1 Language 9
-
Hello World S
-
Variables S
-
Functions S
-
Conditional A S
-
Operators S
-
While S
-
Turtle S
-
Script Mode S
-
Debugging S
- 2 Strings 7
-
Slice S
-
Raw Strings S
-
Regex A S
-
Validation S
-
Config S
-
Security S
-
Encrypt A S
- 3 Collections 5
-
Lists S
-
Dictionaries S
-
Efficiency S
-
Tuples S
-
References S
- 4 Functions 5
-
Recursion S
-
Factorial S
-
Modulus S
-
Reassignment S
-
Approximate S
- 5 Storage 8
-
Files S
-
Databases S
-
Pipes S
-
With open S
-
Shelve A S
-
Zip S
-
Csv S
-
Json S
- 6 Class 4
-
Definition S
-
Attributes S
-
Functional S
-
Methods S
- 7 Goodies 5
-
Conditional Expression S
-
List Comprehension A S
-
Generator S
-
Named Tuple S
-
Modules S
- 8 Applications 5
-
Pythagora A S
-
Palindrome A S
-
Binary Search A S
-
Conway Game A S
-
Coin Flip A S
- 9 Scheduler 4
-
Time S
-
Multithreading A S
-
Subprocess S
-
Logging S
- 10 Packages 6
-
Clipboard A S
-
Ocr A S
-
Socket S
-
Image S
-
Virtualenv S
-
Jupyter S
S
R
Q
Python Goodies Conditional Expression
Conditional expression, concise statement Very useful when using recursion def factorial(n): return 1 if n == 0 else (n * factorial(n-1))Ternary
Conditional
p327 We can write conditional statement more concisely using conditional expression.
# Conditional statement ...
#
# normal expression
# short expression
n = 0
y = 0
# Conditional expression - normal use
if n > 0:
y = 100
else:
y = -1
assert y == -1
assert y != 100
# Conditional expression - concise
n = 1
y = 100 if n > 0 else -1
assert y != -1
assert y == 100
Recursion
Conditional expression came in handy when using recursion.
# Conditional expression are very useful ...
# when using recursion.
#
# Factorial number:
#
# 0! is 1
# n! = n(n-1)!
def factorial(n):
if (n == 0):
return 1
else:
return n * factorial(n-1)
assert factorial(3) == 6
assert factorial(0) == 1
assert factorial(4) == 24
def factorial(n):
return 1 if n == 0 else (n * factorial(n-1))
assert factorial(3) == 6
assert factorial(0) == 1
assert factorial(4) == 24
➥ Questions
Last update: 60 days ago