- Learning Python for Forensics
- Preston Miller Chapin Bryce
- 684字
- 2021-08-20 10:17:03
Conditionals
When a script hits a conditional, it's much like standing at a fork in the road. Depending on some factor, say a more promising horizon, you may decide to go east over west. Computer logic is less arbitrary in that if something is true the script proceeds one way, and if it is false then it will go another. These junctions are critical; if the program decides to go off the path we've developed for it, we'll be in serious trouble.
There are three statements that are used to form a conditional block: if, elif, and else. The conditional block refers to the conditional statements, their flow logic, and code. A conditional block starts with an if statement followed by flow logic, a colon, and indented line(s) of code. If the flow logic evaluates to True, then the indented code following the if statement will be executed. If it does not evaluate to True, the Python virtual machine (PVM) will skip those lines of code and go to the next line on the same level of indentation as the if statement. This is usually a corresponding elif (else-if) or else statement.
Indentation is very important in Python. It is used to demarcate code to be executed within a conditional statement or loop. A standard of four spaces for indentation is used in this book, though you may encounter code that uses a two-space indentation or uses tab characters. While all three of these practices are allowed in Python, four spaces are preferred and easier to read.
In a conditional block, once one of the statements evaluates to True, the code is executed and the PVM exits the block without evaluating the other statements.
# Conditional Block Pseudocode
if [logic]:
# Line(s) of indented code to execute if logic evaluates to True.
elif [logic]:
# Line(s) of indented code to execute if the 'if'
# statement is false and this logic is True.
else:
# Line(s) of code to catch all other possibilities if
# the 'if' and 'elif' statements are all False.
Until we define functions, we will stick to simple if statement examples:
>>> a = 5
>>> b = 22
>>> a > 0
True
>>> a > b
False
>>> if a > 0:
... print(str(a) + ' is greater than zero!')
...
5 is greater than zero!
>>> if a >= b:
... print(str(a) + ' beats ' + str(b))
...
>>>
Notice how when the flow logic evaluates to True, then the code indented following the if statement is executed. When it evaluates to False, the code is skipped. Typically, when the if statement is false, you will have a secondary statement, such as an elif or else to catch other possibilities, such as when a is less than or equal to b. However, it is important to note that we can just use an if statement without any elif or else statements.
The difference between if and elif is subtle. We can only functionally notice a difference when we use multiple if statements. The elif statement allows for a second condition to be evaluated in the case that the first isn't successful. A second if statement will be evaluated regardless of the outcome of the first if statement.
The else statement does not require any flow logic and can be treated as a catch-all case for any remaining or unaccounted for case. This does not mean, however, errors will not occur when the code in the else statement is executed. Do not rely on else statements to handle errors.
Conditional statements can be made more comprehensive by using the logical and or or operators. These allow for more complex logic in a single conditional statement:
>>> a = 5
>>> b = 22
>>> if a > 4 and a < b:
... print('Both statements must be true to print this')
...
Both statements must be true to print this
>>> if a > 10 or a < b:
... print('One of these statements must be true to print this')
...
Only one of these statements must be true to print this
The following table can be helpful to understand how common operators work:

- 科技安全:戰略實踐與展望
- 黑客攻防技巧
- 暗戰亮劍:黑客滲透與防御全程實錄
- INSTANT Burp Suite Starter
- 代碼審計:企業級Web代碼安全架構
- Python Penetration Testing Cookbook
- Kali Linux Wireless Penetration Testing Cookbook
- 硬黑客:智能硬件生死之戰
- 計算機網絡安全基礎(第5版)
- Advanced Penetration Testing for Highly:Secured Environments(Second Edition)
- 解密數據恢復
- 數據安全與流通:技術、架構與實踐
- Mastering Linux Security and Hardening
- 信息組織
- 網絡安全設計