PyData Careers
21.2K subscribers
247 photos
11 videos
26 files
416 links
Python Data Science jobs, interview tips, and career insights for aspiring professionals.

Admin: @HusseinSheikho || @Hussein_Sheikho
Download Telegram
🧠 Quiz: Which submodule of Matplotlib is commonly imported with the alias plt to create plots and visualizations?

A) matplotlib.animation
B) matplotlib.pyplot
C) matplotlib.widgets
D) matplotlib.cm

Correct answer: B

Explanation: matplotlib.pyplot is the most widely used module in Matplotlib, providing a convenient, MATLAB-like interface for creating a variety of plots and charts. It's standard practice to import it as import matplotlib.pyplot as plt.

#Matplotlib #Python #DataVisualization

━━━━━━━━━━━━━━━
By: @DataScienceQ
3🔥1
🧠 Quiz: What is the most "Pythonic" way to create a new list containing the squares of numbers from an existing list called nums?

A) Using a for loop and the .append() method.
B) new_list = [num**2 for num in nums]
C) Using a while loop with an index counter.
D) new_list = (num**2 for num in nums)

Correct answer: B

Explanation: This is a list comprehension. It's a concise, readable, and often faster way to create a new list from an iterable compared to a traditional for loop. Option D creates a generator expression, not a list.

#Python #ProgrammingTips #PythonQuiz

━━━━━━━━━━━━━━━
By: @DataScienceQ
Interview question

Why is it better to use os.path.join() to construct paths instead of simple string concatenation?

Answer: Because os.path.join() handles cross-platform compatibility automatically. Operating systems use different path separators (e.g., / for Linux/macOS and \ for Windows). Hardcoding a separator like 'folder' + '/' + 'file' will break on a different OS. os.path.join('folder', 'file') correctly produces folder/file or folder\file depending on the system, making the code robust and portable.

tags: #interview #python #os

━━━━━━━━━━━━━━━
By: @DataScienceQ
1
Interview question

When would you use the __slots__ attribute in a Python class, and what is its main trade-off?

Answer: The __slots__ attribute is used for memory optimization. By defining it in a class, you prevent the creation of a __dict__ for each instance, instead allocating a fixed amount of space for the specified attributes. This is highly effective when creating a large number of objects. The primary trade-off is that you lose the ability to add new attributes to instances at runtime.

tags: #python #interview

━━━━━━━━━━━━━━━
By: @DataScienceQ
🧠 Quiz: What is the most Pythonic way to create a new list containing the squares of numbers from 0 to 4?

A) squares = [x**2 for x in range(5)]
B) squares = list(map(lambda x: x**2, range(5)))
C) squares = []
for x in range(5):
squares.append(x**2)

Correct answer: A

Explanation: List comprehensions are a concise and highly readable way to create lists from other iterables. While the other options work, a list comprehension is generally considered the most "Pythonic" for its clarity and efficiency in this context.

#Python #ProgrammingTips #CodeQuiz

━━━━━━━━━━━━━━━
By: @DataScienceQ
💡 Understanding Python Decorators

Decorators are a powerful feature in Python that allow you to add functionality to an existing function without modifying its source code. A decorator is essentially a function that takes another function as an argument, wraps it in an inner function (the "wrapper"), and returns the wrapper. This is useful for tasks like logging, timing, or access control.

import time

def timer_decorator(func):
"""A decorator that prints the execution time of a function."""
def wrapper(*args, **kwargs):
start_time = time.perf_counter()
result = func(*args, **kwargs)
end_time = time.perf_counter()
run_time = end_time - start_time
print(f"Finished {func.__name__!r} in {run_time:.4f} secs")
return result
return wrapper

@timer_decorator
def process_heavy_data(n):
"""A sample function that simulates a time-consuming task."""
sum = 0
for i in range(n):
sum += i
return sum

process_heavy_data(10000000)


Code explanation: The timer_decorator function takes process_heavy_data as its argument. The @timer_decorator syntax is shorthand for process_heavy_data = timer_decorator(process_heavy_data). When the decorated function is called, the wrapper inside the decorator executes, recording the start time, running the original function, recording the end time, and printing the duration.

#Python #Decorators #Programming #CodeTips #PythonTutorial

━━━━━━━━━━━━━━━
By: @DataScienceQ
Python tip:

itertools.zip_longest pairs elements from multiple iterables, but unlike the built-in zip(), it continues until the longest iterable is exhausted, padding shorter ones with a specified fillvalue.

While zip() truncates its output to the length of the shortest input, zip_longest() ensures no data is lost from longer inputs by substituting None (or a custom value) for missing items.

Example👇
>>> import itertools
>>> students = ['Alice', 'Bob', 'Charlie', 'David']
>>> scores = [88, 92, 75]
>>> grades = list(itertools.zip_longest(students, scores, fillvalue='Absent'))
grades
[('Alice', 88), ('Bob', 92), ('Charlie', 75), ('David', 'Absent')]

#Python #ProgrammingTips #Itertools #PythonTips #CleanCode

━━━━━━━━━━━━━━━
By: @DataScienceQ
1