This commit is contained in:
2023-05-31 10:24:30 -05:00
3 changed files with 100 additions and 0 deletions
+7
View File
@@ -7,6 +7,13 @@
"program": "simulation/SimulationRunner.py",
"justMyCode": true,
"args": "./HotdogSimulation.py"
},
{
"name": "Python: File",
"type": "python",
"request": "launch",
"program": "${file}",
"justMyCode": true
}
]
}
+30
View File
@@ -0,0 +1,30 @@
# Question 7:
# 1. Strings in Python are sequences of Unicode characters, while bytes
# are sequences of raw binary data.
# 2. Strings in Python are immutable, bytes objects are mutable
# 3. Strings in Python are encoded using a specific character encoding,
# bytes objects do not have an inherent encoding and represent raw binary
# data.
import sys
string_example = "Hello"
bytes_example = b"Hello"
string_size = sys.getsizeof(string_example)
bytes_size = sys.getsizeof(bytes_example)
print("Size of string:", string_size)
print("Size of bytes:", bytes_size)
# Emojis are represented using Unicode characters, which require more
# bytes to store compared to ASCII characters. Therefore, if you have
# a string that contains emojis, its size will be larger than a string
# without emojis.
def print_string_as_numbers(input_string):
for char in input_string:
print(ord(char), end=' ')
# Example usage
input_string = "Hello, World!"
print_string_as_numbers(input_string)
+63
View File
@@ -0,0 +1,63 @@
# 1. Why does ord("😀") give a different number than 0xf09f9880, which is what the hexdump of the same character yields?
#
# The ord() function returns the Unicode code point of a character as an integer, which is 128512 for the smiley face.
# However, the hexdump command, returns the UTF-8 encoding of character.
# The hexadecimal representation of 128512 is 0x1F600.
# The UTF-8 encoding of the "😀" character is represented by the sequence of bytes F0 9F 98 80 in hexadecimal.
# UTF-8 is one of the encoding schemes used to represent Unicode characters as binary data.
#
#
# 8. Hypothetical Situation: If the dataframe is not formatted or cleaned, while the column storing the tomoto sales data isn't named exactly same as 'Tomato_Sales'
# It will raise a KeyError instead.
#
#
# 9. The solution of the hypothetical situation from my question 8:
def read_tomato_sales(file_name):
data = pd.read_csv(file_name)
if not pd.api.types.is_numeric_dtype(data["Tomato_Sales"]):
raise TypeError("Tomato_Sales column should contain only numeric values")
total_sales = data.iloc[:, -1].sum() # This is the key
print(f"Total tomato sales: {total_sales}")
# read_tomato_sales("tomato_sales_error.csv")
# 10. Different human languages can use various character encodings such as UTF-8, UTF-16, or ASCII.
# While using bytes, you can work with raw data without worrying about specific encodings.
# This allows us to avoid encoding-related errors and ensures compatibility across different language texts.
def encode_decode_data():
print('-' * 20)
data = input("Enter a sentence using any language: ")
print('-' * 20)
print("The sentence you entered is: {}".format(data))
print('-' * 20)
encoded_data = data.encode('utf-8')
print("This sentence after encoded is: {}".format(encoded_data))
print('-' * 20)
byte_length = len(encoded_data)
print("The byte length of this sentence is: {}".format(byte_length))
print('-' * 20)
decoded_data = encoded_data.decode()
print("This sentence after decoded is: {}".format(decoded_data))
print('-' * 20)
if __name__ == "__main__":
run_function = 'function1'
if run_function == 'function1':
encode_decode_data()
elif run_function == 'function2':
read_tomato_sales(file_name)
# 2.5. REPL stands for Read-Eval-Print Loop.
# A REPL is an interactive programming environment that allows you to read input, evaluate expressions or statements, print output, and repeat the process.
# It provides a quick way to experiment with code, test small snippets, and get immediate feedback.
# The Python REPL allows you to interactively enter Python code and see the results immediately without needing to write a full script and execute it separately.
# 3. The '_' is a convention that holds the value of the last printed expression or the result of the last evaluated expression.
# The actual type of the "_" variable depends on the value assigned to it.