Update page 'Day 2 homework - Sloetjes'

xuanyi.wang
2023-03-31 18:21:43 +02:00
parent e4e58679e9
commit 064a344c2d
+8 -8
@@ -1,7 +1,7 @@
# Xuanyi Wang\_Day-2\_Homework\_03/31/23
**
##### 1. Annotate the following python expressions with the specific types of each literal, as well as the overall return value:**
1. Annotate the following python expressions with the specific types of each literal, as well as the overall return value:**
> i. i = 3
>
> ii. f = 3.0
@@ -24,7 +24,7 @@
```
The overall return value of each expression is the value assigned to the corresponding variable, which is the literal itself.
**##### 2. For each of the types string, bytestring, integer, floating point, and imaginary literals, construct a 5x5 table showing what happens when the character "0" or number 0 is compared to each other type.**
**2. For each of the types string, bytestring, integer, floating point, and imaginary literals, construct a 5x5 table showing what happens when the character "0" or number 0 is compared to each other type.**
| | **'0'** | **b'0'** | **0** | **0.0**| **0j** |
|---|---------|---------|---------|---------|---------|
@@ -34,7 +34,7 @@ The overall return value of each expression is the value assigned to the corresp
| **0.0**| Not equal | Not equal | Equal | Equal | Not Equal |
| **0j** | Not equal | Not equal | Equal | Not equal| Equal |
**##### 3. Now do the same thing for the + and == operators for each pair of types in two other 5x5 tables.**
**3. Now do the same thing for the + and == operators for each pair of types in two other 5x5 tables.**
###### The "+" operator case:
| | **'0'** | **b'0'** | **0** | **0.0**| **0j** |
@@ -55,7 +55,7 @@ The overall return value of each expression is the value assigned to the corresp
| **0.0**| False | False | True | True| False |
| **0j** | False | False | True | False| True |
**##### 4. Write a small program that uses the AST module to open the lexer/parser example, and dumps the resulting AST. See if there are any arguments to the parse method which make the output easier to read.**
**4. Write a small program that uses the AST module to open the lexer/parser example, and dumps the resulting AST. See if there are any arguments to the parse method which make the output easier to read.**
```
import ast
@@ -71,13 +71,13 @@ tree = ast.parse(source)
print(ast.dump(tree, indent=4))
```
**##### 5. What does this do? `print("\007")` Can you figure out why?**
**5. What does this do? `print("\007")` Can you figure out why?**
The statement `print("\007")` prints **a bell character to the console**. The `“\007”` escape sequence represents **the ASCII code for the bell character**, which is also known as the alert or bell control character.
When this character is printed to a console or terminal, it can produce **an audible bell sound or visual flash**, depending on the configuration of the console or terminal. The behavior can **vary depending on the operating system and the type of console or terminal being used**.
**##### 6. What does this do? `print("abcdefg\rhijklmnop")` Can you figure out why?**
**6. What does this do? `print("abcdefg\rhijklmnop")` Can you figure out why?**
The code `print("abcdefg\rhijklmnop")` **will output `"hijklmnopg"` on the console**, replacing the first character of `"abcdefg"` with the character `'h'`. The reason for this is the `'\r'` character in the middle of the string.
@@ -85,7 +85,7 @@ In Python, **the `'\r'` character is a carriage return character**, which instru
So in this case, the string "abcdefg" is printed, then **the `'\r'` character moves the cursor back to the beginning of the line**, and the string "hijklmnop" is printed, **overwriting the first character of `"abcdefg"` with the character `'h'`**. This results in the output `"hijklmnopdefg"` being printed to the console or terminal.
**##### 7. This is an HTTP server. Run it and connect to http://localhost:8000 . Why doesn't this do the same thing as what you see above? (don't forget to shut down the HTTP server afterward.)**
**7. This is an HTTP server. Run it and connect to http://localhost:8000 . Why doesn't this do the same thing as what you see above? (don't forget to shut down the HTTP server afterward.)**
```
import http.server
@@ -136,7 +136,7 @@ httpd.serve_forever()
```
**##### 8. Think of a way someone might try to commit a crime or hide an embezzlement scheme using the answers to the above two questions. Hint: applications usually output on web pages, but developers and system administrators usually troubleshoot in the console.**
**8. Think of a way someone might try to commit a crime or hide an embezzlement scheme using the answers to the above two questions. Hint: applications usually output on web pages, but developers and system administrators usually troubleshoot in the console.**
##### Answer:
One way someone might try to hide an embezzlement scheme using the answers to the above question is by using the `"\r"` character to overwrite the console output of a financial transaction.