Read Float Input and Compute Square
A developer wants to read a floating-point number from user input and compute its square. Which code snippet correctly accomplishes this?
Quick Answer
The correct answer is Option B, which uses `float(input())` to read float input and compute square with the `**` operator. This works because `input()` always returns a string, so it must be wrapped in `float()` to convert the user’s typed number into a floating-point value that supports decimal arithmetic. The exponentiation operator `**` then raises that number to the power of 2, giving the square. On the Certified Entry-Level Python Programmer PCEP exam, this question tests your understanding of type conversion and arithmetic operators—two foundational skills for handling numeric input. A common trap is forgetting to convert the input string, which would cause a TypeError when trying to square a string, or using `^` instead of `**`, since `^` is a bitwise XOR, not exponentiation. To remember: always think “float first, then double star for square”—the `**` operator is your exponent shortcut, and `float()` ensures decimals are preserved.
⚠ Common exam trap
Python Institute often tests the misconception that `input()` returns a numeric type, leading candidates to forget explicit conversion and choose options that attempt arithmetic on strings.
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
✓
num = float(input()); result = num ** 2
It uses `float(input())` to convert the user's input (which is always a string) into a floating-point number, and then computes the square using the exponentiation operator `**`. This ensures that decimal values are handled correctly, which is required for computing the square of a floating-point number.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
num = input(); result = num * num
Why it's wrong here
input() yields a string, so num * num repeats the string rather than multiplying numerically; '2.5' becomes '2.52.5'. It is tempting because it avoids explicit conversion and resembles valid arithmetic, and would be correct if the task were string repetition rather than squaring a number.
- ✓
num = float(input()); result = num ** 2
Why this is correct
float() converts the input string to a floating-point number, satisfying the requirement to read a decimal value, and ** is Python's exponentiation operator, so num ** 2 computes the square. Using int() would truncate decimals, and string multiplication would repeat the text rather than square it.
- ✗
result = input() ** 2
Why it's wrong here
input() returns a string, and the ** operator is not defined between str and int, so this raises TypeError. It is tempting because it is the shortest expression and mirrors arithmetic syntax, and would work if the value were converted first, for example float(input()) ** 2.
- ✗
num = int(input()); result = num ** 2
Why it's wrong here
int() parses only integer literals, so input such as '2.5' raises ValueError before squaring, and integer results lose the fractional part. It is tempting because int(input()) is the standard idiom for reading whole numbers, and would be correct if the task required an integer rather than a floating-point value.
Go deeper
Related to this question
About these practice questions
One of 482 original PCEP practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
Same concept, more angles
1 more way this is tested on PCEP
These questions test the same concept from different angles. Work through them to make sure you can recognise it however the exam phrases it.
Variation 1. A developer writes a script to read user input using input() and then prints it. However, the program crashes when the user enters a number. What is the most likely cause?
easy- ✓ A.The input is read as a string, but the code treats it as a number without conversion.
- B.The script uses Python 2, where input() evaluates input as code.
- C.The print() function expects a string, but the input is a number.
- D.The input() function cannot handle numeric input.
Why A: The `input()` function in Python 3 always returns a string, regardless of what the user types. If the user enters a number, the program may crash if the code later performs an operation (like arithmetic or comparison) on that string without first converting it to an integer or float using `int()` or `float()`. This mismatch between the string type and the expected numeric type causes a `TypeError`.
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This PCEP 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 PCEP exam.