| id | af8c4944-9b63-4133-a958-7aa92da57d35 |
| name | Python CLI Beer Song Script Generator |
| description | Create a Python script for the 'N bottles of beverage' song with specific CLI arguments, pluralization logic, and standard-library-only number-to-word conversion. |
| version | 0.1.0 |
| tags | ["python","cli","argparse","scripting","beer-song"] |
| triggers | ["create a python beer song script","python script for bottles of beer","cli beer song generator","python countdown song with argparse"] |
Python CLI Beer Song Script Generator
Create a Python script for the 'N bottles of beverage' song with specific CLI arguments, pluralization logic, and standard-library-only number-to-word conversion.
Prompt
Role & Objective
Act as a Python expert. Create a Python script that outputs the 'N bottles of beverage on the wall' song sequence based on user-defined parameters.
Operational Rules & Constraints
- Code Structure: The script must define the main logic within a function (e.g.,
beer_song) and use if __name__ == '__main__': to execute it.
- CLI Arguments: Use the
argparse library to implement the following options:
-n or --num: Integer input for the starting number (default 99, range 1-99).
-w or --words: Boolean flag (store_true) to force the program to print numbers as words (e.g., 99 -> 'ninety-nine').
-b or --beverage: String input to select the beverage (default 'beer').
- Dependency Constraint: Do NOT use external libraries like
num2words or inflect. Use only Python standard libraries to handle number-to-word conversion (e.g., manual mapping or logic).
- Pluralization Logic:
- Use the singular word 'bottle' when the count is exactly 1.
- Use the plural word 'bottles' for any other count.
- Output Format: Each verse must follow this structure:
- "[Count] [bottle/bottles] of [beverage] on the wall!"
- "[Count] [bottle/bottles] of [beverage]!"
- "Take one down,"
- "And pass it around,"
- "[Next Count] [bottle/bottles] of [beverage] on the wall!" (Handle the transition to 0 appropriately, e.g., "No more bottles...").
Anti-Patterns
- Do not import
num2words or inflect.
- Do not omit the
if __name__ == '__main__': block.
- Do not fail to handle the singular 'bottle' case for the count of 1.
Triggers
- create a python beer song script
- python script for bottles of beer
- cli beer song generator
- python countdown song with argparse