I’m working in this Python code, the infinite loop is caused by a couple of error issues. The first problem lies in the fact that true is used instead of True for the running variable. Python is case-sensitive, so True must be used as the boolean value for running. The second issue is a missing ) in the print(str(option) + ". Quit") line, which would result in a syntax error. Correcting these issues would resolve the infinite loop and allow the program to terminate correctly when the user selects the “Quit” option. Additionally, ensuring the input handling is robust and accurate can prevent further errors.
Python Code (with Errors):
codedef save_transaction(price, credit_card, description):
file = open("transactions.txt", "a")
file.write("%s%07d%s\n" % (credit_card, price * 100, description))
file.close()
items = ['Donut','Latte','Filter','Muffin']
prices = [1.50, 2.0, 1.80, 1.20]
running = True
while running:
option = 1
for choice in items:
print(str(option) + ". " + choice)
option = option + 1
print(str(option) + ". Quit")
choice = int(input("Choose an option: "))
if choice == option:
running = False
else:
credit_card = input("Credit card number: ")
save_transaction(prices[choice - 1], credit_card, items[choice - 1])
Fixed
The infinite loop issue in the code can be fixed by correcting the boolean values (true to True and false to False), and by fixing the syntax error in the print statement by removing the extra parenthesis. These small adjustments ensure that the loop will terminate properly when the user selects the “Quit” option.
Correct Code:
codedef save_transaction(price, credit_card, description):
file = open("transactions.txt", "a")
file.write("%s %07d %s\n" % (credit_card, price * 100, description))
file.close()
items = ['Donut', 'Latte', 'Filter', 'Muffin']
prices = [1.50, 2.0, 1.80, 1.20]
running = True # Changed 'true' to 'True' to fix the error
while running:
option = 1
for choice in items:
print(str(option) + ". " + choice)
option += 1
print(str(option) + ". Quit") # Fixed extra parenthesis error here
choice = int(input("Choose an option: "))
if choice == option:
running = False # Changed 'false' to 'False' to fix the error
else:
credit_card = input("Credit card number: ")
save_transaction(prices[choice - 1], credit_card, items[choice - 1])
Resolving the Infinite Loop in Python
When learning to code, one of the most common errors you may encounter is an infinite loop. This happens when a loop doesn’t have the proper conditions to stop, leading the program to run endlessly. In this example, the issue is fairly common for beginners in Python, and it comes from small but impactful mistakes.
In the original code, the variable running was set to true, but Python requires True (with a capital “T”) for boolean values. Similarly, the loop was supposed to stop when the user chose to quit, but the condition used false instead of False. Python is case-sensitive, and these mistakes caused the loop to continue running, even when the correct condition was met.
There was also a misplaced parenthesis in the print statement for the “Quit” option, which caused a syntax error. By correcting the boolean values and fixing the print statement, the infinite loop issue is resolved, allowing the program to terminate properly when the user chooses to quit.
These small changes ensure that the logic stays intact while fixing the errors:
Fixed the extra parenthesis in the print statement.
true → True
false → False
Changes made:
- Boolean corrections:
- Changed
truetoTrueandfalsetoFalseto adhere to Python’s case-sensitive boolean values.
- Changed
- Syntax correction in
printstatement:- Removed the extra parenthesis from the
print(str(option) + ". Quit")line to fix the syntax error.
- Removed the extra parenthesis from the
- Improved readability:
- Incremented
optionusingoption += 1for better readability and code efficiency.
- Incremented

