Bird
Raised Fist0
Pythonprogramming~20 mins

Environment variables usage in Python - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Environment Variable Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
What is the output of this environment variable read?

Consider this Python code that reads an environment variable named MY_VAR:

import os
os.environ['MY_VAR'] = 'hello'
value = os.getenv('MY_VAR')
print(value)

What will this code print?

Python
import os
os.environ['MY_VAR'] = 'hello'
value = os.getenv('MY_VAR')
print(value)
ANone
Bhello
C'' (empty string)
DKeyError
Attempts:
2 left
💡 Hint

Remember that os.getenv returns the value of the environment variable if it exists.

Predict Output
intermediate
2:00remaining
What does this code print when variable is missing?

Given this code snippet:

import os
value = os.getenv('NOT_SET', 'default')
print(value)

What will be printed if the environment variable NOT_SET is not defined?

Python
import os
value = os.getenv('NOT_SET', 'default')
print(value)
AKeyError
BNone
C'' (empty string)
Ddefault
Attempts:
2 left
💡 Hint

Check what the second argument to os.getenv does.

Predict Output
advanced
2:00remaining
What error does this code raise?

Look at this code:

import os
value = os.environ['MISSING_VAR']
print(value)

What happens if MISSING_VAR is not set in the environment?

Python
import os
value = os.environ['MISSING_VAR']
print(value)
AKeyError
BNone
C'' (empty string)
DAttributeError
Attempts:
2 left
💡 Hint

Accessing environment variables via os.environ like a dictionary raises an error if the key is missing.

Predict Output
advanced
2:00remaining
What is the output of this environment variable update?

Consider this code:

import os
os.environ['TEST_VAR'] = '123'
os.environ['TEST_VAR'] = '456'
print(os.getenv('TEST_VAR'))

What will be printed?

Python
import os
os.environ['TEST_VAR'] = '123'
os.environ['TEST_VAR'] = '456'
print(os.getenv('TEST_VAR'))
A456
BNone
C123
DKeyError
Attempts:
2 left
💡 Hint

Think about what happens when you assign a new value to the same environment variable key.

🧠 Conceptual
expert
2:00remaining
Which option correctly explains environment variable visibility?

Which statement about environment variables in Python is true?

AEnvironment variables are shared across all running Python processes automatically.
BChanges to <code>os.environ</code> in a Python script affect the parent process environment.
CEnvironment variables set in a Python script are visible to child processes spawned after the change.
DEnvironment variables can be set permanently for all future Python scripts by modifying <code>os.environ</code>.
Attempts:
2 left
💡 Hint

Think about how environment variables propagate between processes.

Practice

(1/5)
1. What is the main purpose of using environment variables in a Python program?
easy
A. To print output on the screen
B. To write data to files
C. To create new Python functions
D. To store configuration settings outside the code

Solution

  1. Step 1: Understand environment variables role

    Environment variables hold settings or secrets outside the program code.
  2. Step 2: Identify correct purpose

    Using environment variables helps keep code flexible and secure by not hardcoding values.
  3. Final Answer:

    To store configuration settings outside the code -> Option D
  4. Quick Check:

    Environment variables = external settings [OK]
Hint: Environment variables hold settings outside code [OK]
Common Mistakes:
  • Thinking environment variables store data inside the program
  • Confusing environment variables with file operations
  • Assuming environment variables create functions
2. Which of the following is the correct way to import the module needed to access environment variables in Python?
easy
A. import environment
B. import os
C. import sys
D. import env

Solution

  1. Step 1: Recall Python module for environment variables

    The standard module to access environment variables is os.
  2. Step 2: Check options for correct import

    Only import os is correct; others are invalid or unrelated.
  3. Final Answer:

    import os -> Option B
  4. Quick Check:

    Module for env vars = os [OK]
Hint: Use 'import os' to access environment variables [OK]
Common Mistakes:
  • Using 'import environment' which does not exist
  • Confusing 'sys' module with environment variables
  • Trying to import 'env' which is not a standard module
3. What will be the output of this code if the environment variable USER is set to alice?
import os
name = os.getenv('USER', 'guest')
print(name)
medium
A. alice
B. USER
C. null
D. guest

Solution

  1. Step 1: Understand os.getenv behavior

    os.getenv('USER', 'guest') returns the value of USER if set, else 'guest'.
  2. Step 2: Apply given environment variable value

    Since USER is set to 'alice', the function returns 'alice'.
  3. Final Answer:

    alice -> Option A
  4. Quick Check:

    os.getenv returns env var value if set [OK]
Hint: os.getenv returns env var value or default [OK]
Common Mistakes:
  • Assuming default is always returned
  • Printing the variable name instead of its value
  • Confusing null with default value
4. Identify the error in this code snippet that tries to read an environment variable:
import os
api_key = os.getenv('API_KEY')
print(api_key.upper())
Assume API_KEY is not set in the environment.
medium
A. AttributeError because api_key is null
B. SyntaxError due to missing parentheses
C. No error, code runs fine
D. NameError because os is not imported

Solution

  1. Step 1: Check os.getenv return when variable missing

    When API_KEY is not set, os.getenv returns null.
  2. Step 2: Understand method call on null

    Calling upper() on null causes an AttributeError because null has no such method.
  3. Final Answer:

    AttributeError because api_key is null -> Option A
  4. Quick Check:

    null.upper() causes AttributeError [OK]
Hint: Check for null before calling string methods [OK]
Common Mistakes:
  • Assuming os.getenv returns empty string if missing
  • Ignoring that null has no string methods
  • Thinking code runs without error
5. You want to safely read an environment variable PORT as an integer with a default of 8080 if not set or invalid. Which code snippet correctly does this?
hard
A. port = int(os.getenv('PORT') or 8080)
B. port = os.getenv('PORT', 8080)
C. try:\n port = int(os.getenv('PORT'))\nexcept (TypeError, ValueError):\n port = 8080
D. port = int(os.getenv('PORT', 8080))

Solution

  1. Step 1: Understand the problem requirements

    We must convert PORT to int, use 8080 if missing or invalid (non-integer).
  2. Step 2: Analyze each option

    port = int(os.getenv('PORT', 8080)) fails if PORT is set but not an integer string (raises ValueError). port = os.getenv('PORT', 8080) does not convert to int. port = int(os.getenv('PORT') or 8080) uses or but fails if PORT is set to invalid string (ValueError). try:\n port = int(os.getenv('PORT'))\nexcept (TypeError, ValueError):\n port = 8080 uses try-except to handle missing or invalid values safely.
  3. Final Answer:

    try:\n port = int(os.getenv('PORT'))\nexcept (TypeError, ValueError):\n port = 8080 -> Option C
  4. Quick Check:

    Use try-except to safely convert env var [OK]
Hint: Use try-except to handle invalid env var conversions [OK]
Common Mistakes:
  • Not handling invalid integer strings
  • Assuming default works if env var is invalid
  • Not converting string to int