PCAP Strings Practice Question
What is the result of the expression 'aBc'.lower()?
⚠ Common exam trap
Python Institute often tests whether candidates understand that `.lower()` does not modify the original string but returns a new one, and that it only affects uppercase letters, not other characters like digits or symbols.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
'abc'
The `lower()` method returns a new string with all cased characters converted to lowercase. Since the original string 'aBc' contains an uppercase 'B', calling `.lower()` converts it to 'b', resulting in 'abc'. The method does not modify the original string but returns a new one.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✓
'abc'
Why this is correct
Calling lower() on the string 'aBc' returns a new string where every cased character has been converted to its lowercase form: the leading 'a' is already lowercase and stays 'a', while the uppercase 'B' becomes 'b'. The result is therefore exactly 'abc' — a three-character string with no uppercase letters remaining. This is the documented behavior of str.lower() in Python.
- ✗
'Abc'
Why it's wrong here
'Abc' is incorrect because it suggests that the first character was capitalized or that the method somehow preserved an uppercase 'A' when none existed. The original string 'aBc' starts with a lowercase 'a', so lower() leaves that character unchanged; it only converts the uppercase 'B' to 'b'. A result beginning with 'A' would require an input already containing 'A' or the use of a different method like capitalize() or title().
- ✗
'aBc'
Why it's wrong here
'aBc' is the original, unmodified string, but str.lower() does not mutate the object — it returns a brand-new string with all uppercase characters converted. In fact, even if the input were already entirely lowercase, Python would still allocate a new string object (though an implementation may sometimes reuse the same object for optimization, the documented contract is a new string). Because the original contains an uppercase 'B', the return value must differ from the input, so 'aBc' cannot be the output.
- ✗
'ABC'
Why it's wrong here
'ABC' would be produced by str.upper(), which converts every lowercase character to uppercase — exactly the reverse of lower(). Since lower() only creates lowercase output, an 'A' at the start would require the original to have an uppercase 'A' or for the method to perform case folding in the opposite direction. The input 'aBc' contains no uppercase 'A', and lower() never capitalizes, so 'ABC' is unambiguously the result of the wrong operation.
Go deeper
Related to this question
About these practice questions
This PCAP question is part of Courseiva's 421-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This PCAP practice question is part of Courseiva's free Python Institute certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the PCAP exam.