Please prepare list of very interesting and easy questions on topic present simple negative tense along with it's interesting answers for a student of class 3 ESL for English speaking practice homework.

Here is a list of fun and easy Present Simple Negative Tense questions with interesting answers, perfect for a Class 3 ESL student's speaking practice homework:

🗣️ Present Simple Negative - Speaking Practice

Class 3 ESL | Homework


📌 How to Answer

Use: Subject + do not (don't) / does not (doesn't) + verb
"Do you like snakes?" → "No, I don't like snakes. They are scary!"

🌟 Question & Answer List


🐾 Animals & Nature

1. Do cats fly?
"No, cats don't fly. They jump on sofas instead!"
2. Does a fish climb trees?
"No, a fish doesn't climb trees. It swims in water."
3. Do elephants eat pizza?
"No, elephants don't eat pizza. They eat grass and fruit."
4. Does a dog go to school?
"No, a dog doesn't go to school. But I do!"
5. Do birds drive cars?
"No, birds don't drive cars. They fly with their wings."

🍕 Food & Drinks

6. Do you eat ice cream for breakfast?
"No, I don't eat ice cream for breakfast. I eat bread and eggs."
7. Does your teacher drink juice in class?
"No, my teacher doesn't drink juice in class. She drinks water."
8. Do you like eating vegetables?
"No, I don't like eating vegetables very much. But I eat them to stay healthy!"
9. Does the sun taste like lemon?
"No, the sun doesn't taste like lemon. We cannot eat the sun!"

🏫 School & Daily Life

10. Do you wake up at midnight for school?
"No, I don't wake up at midnight. I wake up in the morning."
11. Does your pencil talk to you?
"No, my pencil doesn't talk. It only writes!"
12. Do you sleep in the classroom?
"No, I don't sleep in class. I listen to my teacher."
13. Does your school have a swimming pool on the roof?
"No, my school doesn't have a pool on the roof. That is very funny!"

🌍 The World Around Us

14. Does the moon come out in the daytime?
"No, the moon doesn't usually come out in the daytime. It shines at night."
15. Do rocks grow like plants?
"No, rocks don't grow. They just sit on the ground."
16. Does snow fall in the desert?
"No, snow doesn't fall in the desert. It is very hot there."

👨‍👩‍👧 Family & Friends

17. Does your mom wear a superhero cape to work?
"No, my mom doesn't wear a cape. But she is my superhero!"
18. Do your friends live on the moon?
"No, my friends don't live on the moon. They live near my house."
19. Does your dad cook breakfast every day?
"No, my dad doesn't cook every day. My mom usually cooks."

🎮 Fun & Hobbies

20. Do robots play football?
"No, robots don't play football. But I do!"
21. Does your toy bear speak English?
"No, my bear doesn't speak English. It just sits and looks cute."
22. Do you watch TV all night long?
"No, I don't watch TV all night. I go to bed early."

📝 Quick Grammar Reminder for Students

SubjectNegative FormExample
I / You / We / Theydon't + verbI don't like spiders.
He / She / Itdoesn't + verbShe doesn't eat meat.

🎯 Speaking Tips for Students

  1. Say the full answer out loud - don't just say "No."
  2. Try to add one extra fun sentence after your answer.
  3. Practice with a friend - take turns asking each other!

These questions are designed to be silly and fun so students stay engaged while naturally practicing the don't / doesn't negative structure. The humor in the questions (like "Does your pencil talk?") encourages creative thinking and makes speaking less stressful for young learners.

Please replace all those above mentioned illogical questions like 9,11,13,15,16,17 ,18 to some logical questions along with it's answers for 3rd grade ESL student.

Here is the fully updated list with all 7 illogical questions replaced with logical, relatable ones for a Class 3 ESL student:

🗣️ Present Simple Negative - Speaking Practice

Class 3 ESL | Homework


📌 How to Answer

Use: Subject + do not (don't) / does not (doesn't) + verb
"Do you like snakes?" → "No, I don't like snakes. They are scary!"

🌟 Question & Answer List


🐾 Animals & Nature

1. Do cats fly?
"No, cats don't fly. They jump on sofas instead!"
2. Does a fish climb trees?
"No, a fish doesn't climb trees. It swims in water."
3. Do elephants eat pizza?
"No, elephants don't eat pizza. They eat grass and fruit."
4. Does a dog go to school?
"No, a dog doesn't go to school. But I do!"
5. Do birds drive cars?
"No, birds don't drive cars. They fly with their wings."

🍕 Food & Drinks

6. Do you eat ice cream for breakfast?
"No, I don't eat ice cream for breakfast. I eat bread and eggs."
7. Does your teacher drink juice in class?
"No, my teacher doesn't drink juice in class. She drinks water."
8. Do you like eating vegetables?
"No, I don't like eating vegetables very much. But I eat them to stay healthy!"
9. Does the sun taste like lemon? → Does your mom cook dinner every day?
"No, my mom doesn't cook dinner every day. Sometimes we order food."

🏫 School & Daily Life

10. Do you wake up at midnight for school?
"No, I don't wake up at midnight. I wake up in the morning."
11. Does your pencil talk to you? → Does your school start at noon?
"No, my school doesn't start at noon. It starts in the morning."
12. Do you sleep in the classroom?
"No, I don't sleep in class. I listen to my teacher."
13. Does your school have a swimming pool on the roof? → Does your school have a library?
"No, my school doesn't have a library. We read books in the classroom."

🌍 The World Around Us

14. Does the moon come out in the daytime?
"No, the moon doesn't usually come out in the daytime. It shines at night."
15. Do rocks grow like plants? → Do you walk to school every day?
"No, I don't walk to school every day. My dad drops me by car."
16. Does snow fall in the desert? → Does it rain every day in summer?
"No, it doesn't rain every day in summer. Sometimes the sky is very clear."

👨‍👩‍👧 Family & Friends

17. Does your mom wear a superhero cape to work? → Does your dad work on Sundays?
"No, my dad doesn't work on Sundays. He stays home with our family."
18. Do your friends live on the moon? → Do your friends come to your house every day?
"No, my friends don't come to my house every day. They come on weekends."
19. Does your dad cook breakfast every day?
"No, my dad doesn't cook every day. My mom usually cooks."

🎮 Fun & Hobbies

20. Do robots play football?
"No, robots don't play football. But I do!"
21. Does your toy bear speak English?
"No, my bear doesn't speak English. It just sits and looks cute."
22. Do you watch TV all night long?
"No, I don't watch TV all night. I go to bed early."

📝 Quick Grammar Reminder for Students

SubjectNegative FormExample
I / You / We / Theydon't + verbI don't like spiders.
He / She / Itdoesn't + verbShe doesn't eat meat.

🎯 Speaking Tips for Students

  1. Say the full answer out loud - don't just say "No."
  2. Try to add one extra sentence after your answer.
  3. Practice with a friend - take turns asking each other!

Note for Teacher/Parent: Questions 20 and 21 ("Do robots play football?" and "Does your toy bear speak English?") are kept as they are clearly fictional/playful - students understand these are imaginative questions, not illogical ones. All 7 originally flagged questions (9, 11, 13, 15, 16, 17, 18) have been replaced with real-life, age-appropriate scenarios.

Please don't show these cutting sign on previous question, create for me a fresh list of speaking conversation practice questions for 3rd grade ESL student English.In total 25 questions along with it's answers and not ask illogical funny questions. Create the pdf in a colorful presentation form very attractive for student.

Reading File
Running Command

ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or not found"

Running Command

mkdir -p /home/daytona/workspace/esl-present-simple

Writing File

~/esl-present-simple/create_pdf.py

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import ParagraphStyle
from reportlab.lib.units import cm
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable
from reportlab.lib.enums import TA_CENTER, TA_LEFT
from reportlab.platypus import KeepTogether

# ── Output path ──────────────────────────────────────────────────────────────
OUTPUT = "/home/daytona/workspace/esl-present-simple/Present_Simple_Negative_Speaking_Practice.pdf"

# ── Colour palette ───────────────────────────────────────────────────────────
DEEP_BLUE    = colors.HexColor("#1A237E")
SKY_BLUE     = colors.HexColor("#1565C0")
LIGHT_BLUE   = colors.HexColor("#E3F2FD")
ORANGE       = colors.HexColor("#E65100")
AMBER        = colors.HexColor("#FF8F00")
LIGHT_AMBER  = colors.HexColor("#FFF8E1")
GREEN        = colors.HexColor("#2E7D32")
LIGHT_GREEN  = colors.HexColor("#E8F5E9")
PURPLE       = colors.HexColor("#6A1B9A")
LIGHT_PURPLE = colors.HexColor("#F3E5F5")
RED          = colors.HexColor("#C62828")
LIGHT_RED    = colors.HexColor("#FFEBEE")
TEAL         = colors.HexColor("#00695C")
LIGHT_TEAL   = colors.HexColor("#E0F2F1")
PINK         = colors.HexColor("#AD1457")
LIGHT_PINK   = colors.HexColor("#FCE4EC")
WHITE        = colors.white
LIGHT_GREY   = colors.HexColor("#F5F5F5")

# Category colours: (header_bg, header_text, row_bg, accent)
CAT_COLOURS = [
    (SKY_BLUE,    WHITE, LIGHT_BLUE,   DEEP_BLUE),
    (GREEN,       WHITE, LIGHT_GREEN,  GREEN),
    (PURPLE,      WHITE, LIGHT_PURPLE, PURPLE),
    (ORANGE,      WHITE, LIGHT_AMBER,  ORANGE),
    (TEAL,        WHITE, LIGHT_TEAL,   TEAL),
]

# ── Q&A data ─────────────────────────────────────────────────────────────────
sections = [
    {
        "title": "🐾  Animals & Nature",
        "icon": "🐾",
        "qa": [
            ("1. Do cats live in water?",
             'No, cats don\'t live in water. They live in houses with people.'),
            ("2. Does a bird swim under the sea?",
             "No, a bird doesn't swim under the sea. It flies in the sky."),
            ("3. Do lions eat grass?",
             "No, lions don't eat grass. They eat meat."),
            ("4. Does a rabbit have a long neck?",
             "No, a rabbit doesn't have a long neck. It has long ears."),
            ("5. Do fish breathe air like humans?",
             "No, fish don't breathe air. They breathe through gills in water."),
        ],
    },
    {
        "title": "🍽️  Food & Daily Meals",
        "icon": "🍽️",
        "qa": [
            ("6. Do you eat lunch at home every day?",
             "No, I don't eat lunch at home every day. I eat lunch at school."),
            ("7. Does your teacher bring food to class?",
             "No, my teacher doesn't bring food to class. We eat in the cafeteria."),
            ("8. Do you drink coffee in the morning?",
             "No, I don't drink coffee. I drink milk or juice."),
            ("9. Does your family eat dinner very late at night?",
             "No, my family doesn't eat dinner very late. We eat at seven o'clock."),
            ("10. Do you eat the same food every day?",
             "No, I don't eat the same food every day. My mom cooks different meals."),
        ],
    },
    {
        "title": "🏫  School & Learning",
        "icon": "🏫",
        "qa": [
            ("11. Does your school start in the evening?",
             "No, my school doesn't start in the evening. It starts in the morning."),
            ("12. Do you write with your left hand?",
             "No, I don't write with my left hand. I write with my right hand."),
            ("13. Does your teacher give homework every weekend?",
             "No, my teacher doesn't give homework every weekend. We get it on weekdays."),
            ("14. Do you use a computer in every class?",
             "No, I don't use a computer in every class. I use a pencil and notebook."),
            ("15. Does your school have a playground?",
             "No, my school doesn't have a playground. We play in the sports hall."),
        ],
    },
    {
        "title": "👨‍👩‍👧  Family & Home",
        "icon": "👨‍👩‍👧",
        "qa": [
            ("16. Does your dad drive you to school every day?",
             "No, my dad doesn't drive me every day. Sometimes I take the bus."),
            ("17. Do you have a pet at home?",
             "No, I don't have a pet at home. But I would love a cat."),
            ("18. Does your mom work on Sundays?",
             "No, my mom doesn't work on Sundays. She stays home with us."),
            ("19. Do you share a bedroom with your parents?",
             "No, I don't share a bedroom with my parents. I have my own room."),
            ("20. Does your family watch TV together every night?",
             "No, my family doesn't watch TV every night. Sometimes we read books."),
        ],
    },
    {
        "title": "🎮  Hobbies & Free Time",
        "icon": "🎮",
        "qa": [
            ("21. Do you play outside after dark?",
             "No, I don't play outside after dark. I go inside before sunset."),
            ("22. Does it rain every day in your city?",
             "No, it doesn't rain every day. We have sunny days too."),
            ("23. Do you finish your homework before dinner?",
             "No, I don't finish homework before dinner. I do it after dinner."),
            ("24. Does your best friend live far from your house?",
             "No, my best friend doesn't live far. She lives on the same street."),
            ("25. Do you go to bed before eight o'clock?",
             "No, I don't go to bed before eight. I sleep at nine o'clock."),
        ],
    },
]

# ── Document setup ────────────────────────────────────────────────────────────
doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    rightMargin=1.8*cm, leftMargin=1.8*cm,
    topMargin=1.5*cm,   bottomMargin=1.5*cm,
)

W = A4[0] - 3.6*cm   # usable width

story = []

# ── Styles ───────────────────────────────────────────────────────────────────
def S(name, **kw):
    return ParagraphStyle(name, **kw)

title_style = S("Title",
    fontSize=26, leading=32, alignment=TA_CENTER,
    textColor=WHITE, fontName="Helvetica-Bold",
    spaceAfter=4,
)
subtitle_style = S("Subtitle",
    fontSize=13, leading=17, alignment=TA_CENTER,
    textColor=LIGHT_BLUE, fontName="Helvetica",
    spaceAfter=2,
)
badge_style = S("Badge",
    fontSize=11, leading=14, alignment=TA_CENTER,
    textColor=AMBER, fontName="Helvetica-Bold",
    spaceAfter=0,
)
cat_title_style = S("CatTitle",
    fontSize=14, leading=18, alignment=TA_LEFT,
    textColor=WHITE, fontName="Helvetica-Bold",
)
q_style = S("Question",
    fontSize=11, leading=15, alignment=TA_LEFT,
    textColor=DEEP_BLUE, fontName="Helvetica-Bold",
    leftIndent=6,
)
a_style = S("Answer",
    fontSize=10.5, leading=14, alignment=TA_LEFT,
    textColor=colors.HexColor("#333333"), fontName="Helvetica",
    leftIndent=6,
)
grammar_label = S("GramLabel",
    fontSize=13, leading=16, alignment=TA_CENTER,
    textColor=WHITE, fontName="Helvetica-Bold",
)
grammar_cell = S("GramCell",
    fontSize=10.5, leading=13, alignment=TA_CENTER,
    textColor=DEEP_BLUE, fontName="Helvetica",
)
tip_style = S("Tip",
    fontSize=10.5, leading=14, alignment=TA_LEFT,
    textColor=colors.HexColor("#4A148C"), fontName="Helvetica",
    leftIndent=8,
)
tip_title = S("TipTitle",
    fontSize=12, leading=16, alignment=TA_LEFT,
    textColor=WHITE, fontName="Helvetica-Bold",
    leftIndent=6,
)
footer_style = S("Footer",
    fontSize=9, leading=12, alignment=TA_CENTER,
    textColor=colors.HexColor("#888888"), fontName="Helvetica",
)

# ── COVER HEADER ─────────────────────────────────────────────────────────────
header_data = [[Paragraph(
    "Present Simple<br/>Negative Tense",
    title_style)]]

header_table = Table(header_data, colWidths=[W])
header_table.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), DEEP_BLUE),
    ("ROUNDEDCORNERS", [14]),
    ("TOPPADDING",    (0,0), (-1,-1), 18),
    ("BOTTOMPADDING", (0,0), (-1,-1), 18),
    ("LEFTPADDING",   (0,0), (-1,-1), 16),
    ("RIGHTPADDING",  (0,0), (-1,-1), 16),
]))
story.append(header_table)
story.append(Spacer(1, 0.3*cm))

# Sub-header bar
sub_data = [[
    Paragraph("🎓  Class 3 ESL  |  Speaking Practice Homework  |  25 Questions", subtitle_style)
]]
sub_table = Table(sub_data, colWidths=[W])
sub_table.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), SKY_BLUE),
    ("ROUNDEDCORNERS", [10]),
    ("TOPPADDING",    (0,0), (-1,-1), 8),
    ("BOTTOMPADDING", (0,0), (-1,-1), 8),
]))
story.append(sub_table)
story.append(Spacer(1, 0.3*cm))

# How-to badge
how_data = [[Paragraph(
    "📌  How to Answer:  Subject  +  don't / doesn't  +  Verb",
    badge_style)]]
how_table = Table(how_data, colWidths=[W])
how_table.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), LIGHT_AMBER),
    ("ROUNDEDCORNERS", [8]),
    ("TOPPADDING",    (0,0), (-1,-1), 7),
    ("BOTTOMPADDING", (0,0), (-1,-1), 7),
    ("BOX", (0,0), (-1,-1), 1.5, AMBER),
]))
story.append(how_table)
story.append(Spacer(1, 0.45*cm))

# Example row
ex_data = [[
    Paragraph("Example:", S("ex_lbl", fontSize=10, fontName="Helvetica-Bold",
                             textColor=TEAL, alignment=TA_LEFT)),
    Paragraph(
        '<font color="#C62828"><b>Q:</b></font> Do you like rain?   '
        '<font color="#2E7D32"><b>A:</b></font> No, I <b>don\'t</b> like rain. I prefer sunny days.',
        S("ex_txt", fontSize=10, fontName="Helvetica", textColor=DEEP_BLUE, alignment=TA_LEFT)
    ),
]]
ex_table = Table(ex_data, colWidths=[1.8*cm, W-1.8*cm])
ex_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), LIGHT_BLUE),
    ("ROUNDEDCORNERS",[8]),
    ("TOPPADDING",    (0,0), (-1,-1), 6),
    ("BOTTOMPADDING", (0,0), (-1,-1), 6),
    ("LEFTPADDING",   (0,0), (-1,-1), 10),
    ("RIGHTPADDING",  (0,0), (-1,-1), 10),
    ("VALIGN",        (0,0), (-1,-1), "MIDDLE"),
]))
story.append(ex_table)
story.append(Spacer(1, 0.5*cm))

# ── Q&A SECTIONS ─────────────────────────────────────────────────────────────
for idx, section in enumerate(sections):
    c = CAT_COLOURS[idx % len(CAT_COLOURS)]
    hdr_bg, hdr_fg, row_bg, accent = c

    elements = []

    # Category header
    cat_hdr = Table(
        [[Paragraph(section["title"], cat_title_style)]],
        colWidths=[W]
    )
    cat_hdr.setStyle(TableStyle([
        ("BACKGROUND",    (0,0), (-1,-1), hdr_bg),
        ("ROUNDEDCORNERS",[10]),
        ("TOPPADDING",    (0,0), (-1,-1), 9),
        ("BOTTOMPADDING", (0,0), (-1,-1), 9),
        ("LEFTPADDING",   (0,0), (-1,-1), 14),
    ]))
    elements.append(cat_hdr)
    elements.append(Spacer(1, 0.2*cm))

    # Q&A rows
    for qi, (q, a) in enumerate(section["qa"]):
        bg = row_bg if qi % 2 == 0 else WHITE
        q_par = Paragraph(f"<b>Q.</b> {q}", q_style)
        a_par = Paragraph(f"<b>A.</b> {a}", a_style)

        qa_tbl = Table(
            [[q_par], [a_par]],
            colWidths=[W - 0.4*cm]
        )
        qa_tbl.setStyle(TableStyle([
            ("BACKGROUND",    (0,0), (-1,-1), bg),
            ("ROUNDEDCORNERS",[6]),
            ("TOPPADDING",    (0,0), (0,0),   7),
            ("BOTTOMPADDING", (0,0), (0,0),   2),
            ("TOPPADDING",    (0,1), (0,1),   2),
            ("BOTTOMPADDING", (0,1), (0,1),   7),
            ("LEFTPADDING",   (0,0), (-1,-1), 10),
            ("RIGHTPADDING",  (0,0), (-1,-1), 10),
            ("LINEBELOW",     (0,0), (-1,0),  0.5, colors.HexColor("#BBBBBB")),
            ("BOX",           (0,0), (-1,-1), 0.8, accent),
        ]))
        elements.append(qa_tbl)
        elements.append(Spacer(1, 0.18*cm))

    story.append(KeepTogether(elements))
    story.append(Spacer(1, 0.35*cm))

# ── GRAMMAR REMINDER TABLE ────────────────────────────────────────────────────
story.append(Spacer(1, 0.2*cm))

gram_title = Table(
    [[Paragraph("📝  Quick Grammar Reminder", grammar_label)]],
    colWidths=[W]
)
gram_title.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), DEEP_BLUE),
    ("ROUNDEDCORNERS",[10]),
    ("TOPPADDING",    (0,0), (-1,-1), 9),
    ("BOTTOMPADDING", (0,0), (-1,-1), 9),
]))
story.append(gram_title)
story.append(Spacer(1, 0.2*cm))

gram_data = [
    [
        Paragraph("<b>Subject</b>", S("gh", fontSize=11, fontName="Helvetica-Bold",
                                      textColor=WHITE, alignment=TA_CENTER)),
        Paragraph("<b>Negative Helper</b>", S("gh2", fontSize=11, fontName="Helvetica-Bold",
                                               textColor=WHITE, alignment=TA_CENTER)),
        Paragraph("<b>Example</b>", S("gh3", fontSize=11, fontName="Helvetica-Bold",
                                       textColor=WHITE, alignment=TA_CENTER)),
    ],
    [
        Paragraph("I / You / We / They", grammar_cell),
        Paragraph("<b>don't</b>  +  verb", S("gc1", fontSize=10.5, fontName="Helvetica-Bold",
                                              textColor=GREEN, alignment=TA_CENTER)),
        Paragraph("I <b>don't</b> like rain.", grammar_cell),
    ],
    [
        Paragraph("He / She / It", grammar_cell),
        Paragraph("<b>doesn't</b>  +  verb", S("gc2", fontSize=10.5, fontName="Helvetica-Bold",
                                                textColor=ORANGE, alignment=TA_CENTER)),
        Paragraph("She <b>doesn't</b> eat meat.", grammar_cell),
    ],
]

gram_table = Table(gram_data, colWidths=[W*0.28, W*0.32, W*0.40])
gram_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0),  SKY_BLUE),
    ("BACKGROUND",    (0,1), (-1,1),  LIGHT_GREEN),
    ("BACKGROUND",    (0,2), (-1,2),  LIGHT_AMBER),
    ("ROUNDEDCORNERS",[6]),
    ("GRID",          (0,0), (-1,-1), 0.8, colors.HexColor("#CCCCCC")),
    ("TOPPADDING",    (0,0), (-1,-1), 8),
    ("BOTTOMPADDING", (0,0), (-1,-1), 8),
    ("ALIGN",         (0,0), (-1,-1), "CENTER"),
    ("VALIGN",        (0,0), (-1,-1), "MIDDLE"),
]))
story.append(gram_table)
story.append(Spacer(1, 0.4*cm))

# ── SPEAKING TIPS BOX ─────────────────────────────────────────────────────────
tips = [
    "✅  Always say the <b>full answer</b> - do not just say 'No.'",
    "✅  Add <b>one extra sentence</b> to make your answer longer.",
    "✅  Practice with a <b>friend or family member</b> - take turns!",
    "✅  Speak <b>clearly and slowly</b> - good pronunciation matters.",
    "✅  <b>Smile</b> and feel confident - you are doing great!",
]

tip_hdr = Table(
    [[Paragraph("🎯  Speaking Tips for Students", tip_title)]],
    colWidths=[W]
)
tip_hdr.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), PURPLE),
    ("ROUNDEDCORNERS",[10]),
    ("TOPPADDING",    (0,0), (-1,-1), 9),
    ("BOTTOMPADDING", (0,0), (-1,-1), 9),
    ("LEFTPADDING",   (0,0), (-1,-1), 14),
]))
story.append(tip_hdr)

tip_rows = [[Paragraph(t, tip_style)] for t in tips]
tip_table = Table(tip_rows, colWidths=[W])
tip_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), LIGHT_PURPLE),
    ("ROUNDEDCORNERS",[8]),
    ("TOPPADDING",    (0,0), (-1,-1), 6),
    ("BOTTOMPADDING", (0,0), (-1,-1), 6),
    ("LEFTPADDING",   (0,0), (-1,-1), 14),
    ("RIGHTPADDING",  (0,0), (-1,-1), 14),
    ("BOX",           (0,0), (-1,-1), 1.0, PURPLE),
]))
story.append(tip_table)
story.append(Spacer(1, 0.4*cm))

# ── FOOTER ────────────────────────────────────────────────────────────────────
story.append(HRFlowable(width=W, thickness=1, color=LIGHT_BLUE))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph(
    "Class 3 ESL  •  Present Simple Negative Tense  •  Speaking Practice Homework  •  25 Questions",
    footer_style
))

# ── BUILD ─────────────────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF created: {OUTPUT}")
Running Command

cd /home/daytona/workspace/esl-present-simple && python create_pdf.py

Your colorful PDF is ready! Here is a summary of what's inside:

📄 Download Your PDF

Present Simple Negative Speaking Practice

PDF Document · PDF


What's Inside the PDF

The document is fully colorful and student-friendly with 5 themed sections, each in a different color scheme:
SectionColorQuestions
🐾 Animals & NatureBlueQ1 - Q5
🍽️ Food & Daily MealsGreenQ6 - Q10
🏫 School & LearningPurpleQ11 - Q15
👨‍👩‍👧 Family & HomeOrangeQ16 - Q20
🎮 Hobbies & Free TimeTealQ21 - Q25

Design Features

  • Bold color-coded category headers
  • Alternating row colors for easy reading
  • Each Q&A has a clear border with a colored accent
  • Grammar reminder table (don't vs doesn't) with color highlights
  • Speaking tips box in purple
  • Clean footer and example sentence at the top
  • All 25 questions are logical, real-life, and age-appropriate for Class 3 ESL students

Now please create a colorful pdf with 25 conversation logical questions along with it's answers for 3rd grade ESL student on topic "present continuous negative"tense . Example of fashion mentioned below. Do you like rain? A: No, I don't like rain. I prefer sunny days.

Running Command

ls -la /home/daytona/workspace/esl-present-simple/

Writing File

~/esl-present-simple/create_pres_cont_pdf.py

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import ParagraphStyle
from reportlab.lib.units import cm
from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer,
                                 Table, TableStyle, HRFlowable, KeepTogether)
from reportlab.lib.enums import TA_CENTER, TA_LEFT

OUTPUT = "/home/daytona/workspace/esl-present-simple/Present_Continuous_Negative_Speaking_Practice.pdf"

# ── Colour palette ────────────────────────────────────────────────────────────
DEEP_BLUE    = colors.HexColor("#0D1B6E")
SKY_BLUE     = colors.HexColor("#1976D2")
LIGHT_BLUE   = colors.HexColor("#E3F2FD")
ORANGE       = colors.HexColor("#E65100")
AMBER        = colors.HexColor("#FF8F00")
LIGHT_AMBER  = colors.HexColor("#FFF8E1")
GREEN        = colors.HexColor("#2E7D32")
LIGHT_GREEN  = colors.HexColor("#E8F5E9")
PURPLE       = colors.HexColor("#6A1B9A")
LIGHT_PURPLE = colors.HexColor("#F3E5F5")
TEAL         = colors.HexColor("#00695C")
LIGHT_TEAL   = colors.HexColor("#E0F2F1")
CRIMSON      = colors.HexColor("#B71C1C")
LIGHT_RED    = colors.HexColor("#FFEBEE")
WHITE        = colors.white

# (header_bg, header_text, even_row_bg, accent_border)
CAT_COLOURS = [
    (SKY_BLUE,  WHITE, LIGHT_BLUE,   DEEP_BLUE),
    (GREEN,     WHITE, LIGHT_GREEN,  GREEN),
    (PURPLE,    WHITE, LIGHT_PURPLE, PURPLE),
    (ORANGE,    WHITE, LIGHT_AMBER,  ORANGE),
    (TEAL,      WHITE, LIGHT_TEAL,   TEAL),
]

# ── 25 Q&A  (Present Continuous Negative) ─────────────────────────────────────
sections = [
    {
        "title": "🐾  Animals & Nature",
        "qa": [
            (
                "Are the birds singing outside right now?",
                "No, the birds aren't singing right now. It is very quiet outside."
            ),
            (
                "Is the dog sleeping on your bed at the moment?",
                "No, the dog isn't sleeping on my bed. It is playing in the garden."
            ),
            (
                "Are the fish swimming in the lake today?",
                "No, the fish aren't swimming in the lake today. We are at home."
            ),
            (
                "Is it raining outside right now?",
                "No, it isn't raining right now. The sun is shining brightly."
            ),
            (
                "Are the leaves falling from the trees today?",
                "No, the leaves aren't falling today. It is still summer."
            ),
        ],
    },
    {
        "title": "🍽️  Food & Meals",
        "qa": [
            (
                "Are you eating lunch right now?",
                "No, I'm not eating lunch right now. I will eat in one hour."
            ),
            (
                "Is your mom cooking dinner at this moment?",
                "No, my mom isn't cooking dinner yet. She is still at work."
            ),
            (
                "Are your friends drinking juice in the kitchen?",
                "No, my friends aren't drinking juice. They are playing outside."
            ),
            (
                "Is your dad making breakfast this morning?",
                "No, my dad isn't making breakfast. My mom is making it today."
            ),
            (
                "Are you eating chips while doing your homework?",
                "No, I'm not eating chips while doing homework. I am staying focused."
            ),
        ],
    },
    {
        "title": "🏫  School & Learning",
        "qa": [
            (
                "Are you studying English right now?",
                "No, I'm not studying English right now. I am practising speaking."
            ),
            (
                "Is your teacher writing on the board at the moment?",
                "No, my teacher isn't writing on the board. She is talking to us."
            ),
            (
                "Are your classmates reading books in the library?",
                "No, my classmates aren't reading in the library. We are in the classroom."
            ),
            (
                "Is the school bus waiting outside right now?",
                "No, the school bus isn't waiting outside. It comes at eight o'clock."
            ),
            (
                "Are you wearing your school uniform today?",
                "No, I'm not wearing my uniform today. Today is Saturday."
            ),
        ],
    },
    {
        "title": "👨‍👩‍👧  Family & Home",
        "qa": [
            (
                "Is your brother watching television right now?",
                "No, my brother isn't watching television. He is doing his homework."
            ),
            (
                "Are your parents sleeping at this moment?",
                "No, my parents aren't sleeping. They are reading in the living room."
            ),
            (
                "Is your sister talking on the phone?",
                "No, my sister isn't talking on the phone. She is drawing a picture."
            ),
            (
                "Are you helping your mom clean the house right now?",
                "No, I'm not helping right now. I will help after I finish my homework."
            ),
            (
                "Is your family going on a trip this weekend?",
                "No, my family isn't going on a trip. We are staying home this weekend."
            ),
        ],
    },
    {
        "title": "🎨  Hobbies & Free Time",
        "qa": [
            (
                "Are you playing football in the park right now?",
                "No, I'm not playing football right now. It is too hot outside."
            ),
            (
                "Is your friend riding a bicycle at the moment?",
                "No, my friend isn't riding a bicycle. She is sitting and reading."
            ),
            (
                "Are you listening to music while eating?",
                "No, I'm not listening to music while eating. I talk to my family."
            ),
            (
                "Is it snowing in your city right now?",
                "No, it isn't snowing in my city. The weather is warm and sunny."
            ),
            (
                "Are you drawing a picture at this moment?",
                "No, I'm not drawing right now. I am answering these questions!"
            ),
        ],
    },
]

# ── Document setup ─────────────────────────────────────────────────────────────
doc = SimpleDocTemplate(
    OUTPUT, pagesize=A4,
    rightMargin=1.8*cm, leftMargin=1.8*cm,
    topMargin=1.5*cm,   bottomMargin=1.5*cm,
)
W = A4[0] - 3.6*cm

story = []

# ── Helper: quick style ────────────────────────────────────────────────────────
def S(name, **kw):
    return ParagraphStyle(name, **kw)

# ── COVER HEADER ───────────────────────────────────────────────────────────────
header_table = Table(
    [[Paragraph("Present Continuous<br/>Negative Tense",
                S("T", fontSize=26, leading=34, alignment=TA_CENTER,
                  textColor=WHITE, fontName="Helvetica-Bold"))]],
    colWidths=[W]
)
header_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), DEEP_BLUE),
    ("ROUNDEDCORNERS",[14]),
    ("TOPPADDING",    (0,0), (-1,-1), 18),
    ("BOTTOMPADDING", (0,0), (-1,-1), 18),
]))
story.append(header_table)
story.append(Spacer(1, 0.3*cm))

# Sub-header bar
sub_table = Table(
    [[Paragraph(
        "🎓  Class 3 ESL  |  Speaking Conversation Practice  |  25 Questions",
        S("ST", fontSize=12, leading=16, alignment=TA_CENTER,
          textColor=LIGHT_BLUE, fontName="Helvetica")
    )]],
    colWidths=[W]
)
sub_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), SKY_BLUE),
    ("ROUNDEDCORNERS",[10]),
    ("TOPPADDING",    (0,0), (-1,-1), 8),
    ("BOTTOMPADDING", (0,0), (-1,-1), 8),
]))
story.append(sub_table)
story.append(Spacer(1, 0.3*cm))

# Grammar rule badge
rule_table = Table(
    [[Paragraph(
        "📌  Formula:  Subject  +  am not / isn't / aren't  +  Verb-ing",
        S("RB", fontSize=11, leading=15, alignment=TA_CENTER,
          textColor=AMBER, fontName="Helvetica-Bold")
    )]],
    colWidths=[W]
)
rule_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), LIGHT_AMBER),
    ("ROUNDEDCORNERS",[8]),
    ("TOPPADDING",    (0,0), (-1,-1), 7),
    ("BOTTOMPADDING", (0,0), (-1,-1), 7),
    ("BOX",           (0,0), (-1,-1), 1.5, AMBER),
]))
story.append(rule_table)
story.append(Spacer(1, 0.3*cm))

# Example row
ex_table = Table(
    [[
        Paragraph("Example:", S("EL", fontSize=10, fontName="Helvetica-Bold",
                                 textColor=TEAL, alignment=TA_LEFT)),
        Paragraph(
            '<font color="#B71C1C"><b>Q:</b></font> Are you sleeping now?   '
            '<font color="#2E7D32"><b>A:</b></font> No, I <b>am not</b> sleeping. '
            'I am doing my homework.',
            S("ET", fontSize=10, fontName="Helvetica", textColor=DEEP_BLUE, alignment=TA_LEFT)
        ),
    ]],
    colWidths=[1.8*cm, W - 1.8*cm]
)
ex_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), LIGHT_BLUE),
    ("ROUNDEDCORNERS",[8]),
    ("TOPPADDING",    (0,0), (-1,-1), 7),
    ("BOTTOMPADDING", (0,0), (-1,-1), 7),
    ("LEFTPADDING",   (0,0), (-1,-1), 10),
    ("RIGHTPADDING",  (0,0), (-1,-1), 10),
    ("VALIGN",        (0,0), (-1,-1), "MIDDLE"),
]))
story.append(ex_table)
story.append(Spacer(1, 0.5*cm))

# ── Q&A SECTIONS ──────────────────────────────────────────────────────────────
q_style = S("QS", fontSize=11, leading=15, alignment=TA_LEFT,
            textColor=DEEP_BLUE, fontName="Helvetica-Bold", leftIndent=6)
a_style = S("AS", fontSize=10.5, leading=14, alignment=TA_LEFT,
            textColor=colors.HexColor("#333333"), fontName="Helvetica", leftIndent=6)

for idx, section in enumerate(sections):
    hdr_bg, hdr_fg, row_bg, accent = CAT_COLOURS[idx % len(CAT_COLOURS)]

    elements = []

    # Category header
    cat_hdr = Table(
        [[Paragraph(section["title"],
                    S("CH", fontSize=14, leading=18, alignment=TA_LEFT,
                      textColor=WHITE, fontName="Helvetica-Bold"))]],
        colWidths=[W]
    )
    cat_hdr.setStyle(TableStyle([
        ("BACKGROUND",    (0,0), (-1,-1), hdr_bg),
        ("ROUNDEDCORNERS",[10]),
        ("TOPPADDING",    (0,0), (-1,-1), 9),
        ("BOTTOMPADDING", (0,0), (-1,-1), 9),
        ("LEFTPADDING",   (0,0), (-1,-1), 14),
    ]))
    elements.append(cat_hdr)
    elements.append(Spacer(1, 0.2*cm))

    for qi, (q, a) in enumerate(section["qa"]):
        bg = row_bg if qi % 2 == 0 else WHITE

        qa_tbl = Table(
            [[Paragraph(f"<b>Q.</b>  {q}", q_style)],
             [Paragraph(f"<b>A.</b>  {a}", a_style)]],
            colWidths=[W - 0.4*cm]
        )
        qa_tbl.setStyle(TableStyle([
            ("BACKGROUND",    (0,0), (-1,-1), bg),
            ("ROUNDEDCORNERS",[6]),
            ("TOPPADDING",    (0,0), (0,0),   7),
            ("BOTTOMPADDING", (0,0), (0,0),   2),
            ("TOPPADDING",    (0,1), (0,1),   2),
            ("BOTTOMPADDING", (0,1), (0,1),   7),
            ("LEFTPADDING",   (0,0), (-1,-1), 10),
            ("RIGHTPADDING",  (0,0), (-1,-1), 10),
            ("LINEBELOW",     (0,0), (-1,0),  0.5, colors.HexColor("#BBBBBB")),
            ("BOX",           (0,0), (-1,-1), 0.8, accent),
        ]))
        elements.append(qa_tbl)
        elements.append(Spacer(1, 0.18*cm))

    story.append(KeepTogether(elements))
    story.append(Spacer(1, 0.35*cm))

# ── GRAMMAR REMINDER TABLE ─────────────────────────────────────────────────────
gram_title = Table(
    [[Paragraph("📝  Quick Grammar Reminder",
                S("GL", fontSize=13, leading=16, alignment=TA_CENTER,
                  textColor=WHITE, fontName="Helvetica-Bold"))]],
    colWidths=[W]
)
gram_title.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), DEEP_BLUE),
    ("ROUNDEDCORNERS",[10]),
    ("TOPPADDING",    (0,0), (-1,-1), 9),
    ("BOTTOMPADDING", (0,0), (-1,-1), 9),
]))
story.append(gram_title)
story.append(Spacer(1, 0.2*cm))

def gc(txt, bold=False, clr=DEEP_BLUE):
    f = "Helvetica-Bold" if bold else "Helvetica"
    return Paragraph(txt, S("gc", fontSize=10.5, fontName=f,
                             textColor=clr, alignment=TA_CENTER))

gram_data = [
    [gc("Subject", bold=True, clr=WHITE),
     gc("Negative Form", bold=True, clr=WHITE),
     gc("Example", bold=True, clr=WHITE)],
    [gc("I"),
     gc("am not + verb-ing", bold=True, clr=CRIMSON),
     gc("I am not sleeping.")],
    [gc("He / She / It"),
     gc("isn't + verb-ing", bold=True, clr=ORANGE),
     gc("She isn't eating.")],
    [gc("You / We / They"),
     gc("aren't + verb-ing", bold=True, clr=GREEN),
     gc("They aren't playing.")],
]

gram_table = Table(gram_data, colWidths=[W*0.25, W*0.37, W*0.38])
gram_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0),  SKY_BLUE),
    ("BACKGROUND",    (0,1), (-1,1),  LIGHT_RED),
    ("BACKGROUND",    (0,2), (-1,2),  LIGHT_AMBER),
    ("BACKGROUND",    (0,3), (-1,3),  LIGHT_GREEN),
    ("ROUNDEDCORNERS",[6]),
    ("GRID",          (0,0), (-1,-1), 0.8, colors.HexColor("#CCCCCC")),
    ("TOPPADDING",    (0,0), (-1,-1), 8),
    ("BOTTOMPADDING", (0,0), (-1,-1), 8),
    ("ALIGN",         (0,0), (-1,-1), "CENTER"),
    ("VALIGN",        (0,0), (-1,-1), "MIDDLE"),
]))
story.append(gram_table)
story.append(Spacer(1, 0.4*cm))

# ── SPEAKING TIPS ──────────────────────────────────────────────────────────────
tip_hdr = Table(
    [[Paragraph("🎯  Speaking Tips for Students",
                S("TH", fontSize=12, leading=16, alignment=TA_LEFT,
                  textColor=WHITE, fontName="Helvetica-Bold"))]],
    colWidths=[W]
)
tip_hdr.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), PURPLE),
    ("ROUNDEDCORNERS",[10]),
    ("TOPPADDING",    (0,0), (-1,-1), 9),
    ("BOTTOMPADDING", (0,0), (-1,-1), 9),
    ("LEFTPADDING",   (0,0), (-1,-1), 14),
]))
story.append(tip_hdr)

tips = [
    "✅  Always give a <b>full answer</b> - do not just say 'No.'",
    "✅  Use <b>am not / isn't / aren't</b> correctly with the right subject.",
    "✅  Add <b>one more sentence</b> to tell us what IS happening instead.",
    "✅  Practice with a <b>friend or family member</b> - take turns asking!",
    "✅  Speak <b>clearly and slowly</b> - good pronunciation matters.",
]

tip_rows = [[Paragraph(t, S("TP", fontSize=10.5, leading=14, alignment=TA_LEFT,
                             textColor=colors.HexColor("#4A148C"),
                             fontName="Helvetica", leftIndent=8))]
            for t in tips]

tip_table = Table(tip_rows, colWidths=[W])
tip_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), LIGHT_PURPLE),
    ("ROUNDEDCORNERS",[8]),
    ("TOPPADDING",    (0,0), (-1,-1), 6),
    ("BOTTOMPADDING", (0,0), (-1,-1), 6),
    ("LEFTPADDING",   (0,0), (-1,-1), 14),
    ("RIGHTPADDING",  (0,0), (-1,-1), 14),
    ("BOX",           (0,0), (-1,-1), 1.0, PURPLE),
]))
story.append(tip_table)
story.append(Spacer(1, 0.4*cm))

# ── FOOTER ─────────────────────────────────────────────────────────────────────
story.append(HRFlowable(width=W, thickness=1, color=LIGHT_BLUE))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph(
    "Class 3 ESL  •  Present Continuous Negative Tense  •  Speaking Conversation Practice  •  25 Questions",
    S("FT", fontSize=9, leading=12, alignment=TA_CENTER,
      textColor=colors.HexColor("#888888"), fontName="Helvetica")
))

# ── BUILD ──────────────────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF created: {OUTPUT}")
Running Command

cd /home/daytona/workspace/esl-present-simple && python create_pres_cont_pdf.py

Your PDF is ready! Download it here:

Present Continuous Negative Speaking Practice

PDF Document · PDF


What's Inside

25 logical, real-life conversation questions across 5 colorful sections:
SectionColorQuestions
🐾 Animals & NatureBlueQ1 - Q5
🍽️ Food & MealsGreenQ6 - Q10
🏫 School & LearningPurpleQ11 - Q15
👨‍👩‍👧 Family & HomeOrangeQ16 - Q20
🎨 Hobbies & Free TimeTealQ21 - Q25

Grammar Pattern Used

Every answer follows the correct present continuous negative structure:
  • II'm not + verb-ing (e.g., I'm not sleeping.)
  • He / She / Itisn't + verb-ing (e.g., She isn't cooking.)
  • You / We / Theyaren't + verb-ing (e.g., They aren't playing.)

Design Features

  • Bold color-coded category headers
  • Alternating row shading for easy reading
  • Colored accent borders on every Q&A card
  • Grammar reminder table with 3 rows (am not / isn't / aren't)
  • Speaking tips box in purple
  • Example sentence at the top
  • Clean footer - all 25 questions are logical and age-appropriate

Some questions are difficult to answer.please make a new pdf with more easier questions which are easy to answer, along with it's answers.

Writing File

~/esl-present-simple/create_easy_cont_pdf.py

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import ParagraphStyle
from reportlab.lib.units import cm
from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer,
                                 Table, TableStyle, HRFlowable, KeepTogether)
from reportlab.lib.enums import TA_CENTER, TA_LEFT

OUTPUT = "/home/daytona/workspace/esl-present-simple/Present_Continuous_Negative_Easy.pdf"

# ── Colours ───────────────────────────────────────────────────────────────────
DEEP_BLUE    = colors.HexColor("#0D1B6E")
SKY_BLUE     = colors.HexColor("#1976D2")
LIGHT_BLUE   = colors.HexColor("#E3F2FD")
ORANGE       = colors.HexColor("#E65100")
AMBER        = colors.HexColor("#FF8F00")
LIGHT_AMBER  = colors.HexColor("#FFF8E1")
GREEN        = colors.HexColor("#2E7D32")
LIGHT_GREEN  = colors.HexColor("#E8F5E9")
PURPLE       = colors.HexColor("#6A1B9A")
LIGHT_PURPLE = colors.HexColor("#F3E5F5")
TEAL         = colors.HexColor("#00695C")
LIGHT_TEAL   = colors.HexColor("#E0F2F1")
CRIMSON      = colors.HexColor("#B71C1C")
LIGHT_RED    = colors.HexColor("#FFEBEE")
WHITE        = colors.white

CAT_COLOURS = [
    (SKY_BLUE, WHITE, LIGHT_BLUE,   DEEP_BLUE),
    (GREEN,    WHITE, LIGHT_GREEN,  GREEN),
    (PURPLE,   WHITE, LIGHT_PURPLE, PURPLE),
    (ORANGE,   WHITE, LIGHT_AMBER,  ORANGE),
    (TEAL,     WHITE, LIGHT_TEAL,   TEAL),
]

# ── 25 EASY Q&A  (Present Continuous Negative) ───────────────────────────────
# All questions use simple daily-life situations.
# All answers use short, common words a Class 3 child knows.
sections = [
    {
        "title": "🏠  At Home",
        "qa": [
            (
                "Are you sleeping right now?",
                "No, I am not sleeping right now. I am talking to my teacher."
            ),
            (
                "Is your mom cooking right now?",
                "No, my mom isn't cooking right now. She is watching TV."
            ),
            (
                "Are you eating right now?",
                "No, I am not eating right now. I am sitting in class."
            ),
            (
                "Is your dad working right now?",
                "No, my dad isn't working right now. He is resting at home."
            ),
            (
                "Are you drinking water right now?",
                "No, I am not drinking water right now. My bottle is on the table."
            ),
        ],
    },
    {
        "title": "🏫  At School",
        "qa": [
            (
                "Are you running in the classroom?",
                "No, I am not running in the classroom. I am sitting on my chair."
            ),
            (
                "Is your teacher shouting right now?",
                "No, my teacher isn't shouting. She is speaking in a calm voice."
            ),
            (
                "Are you drawing a picture right now?",
                "No, I am not drawing right now. I am answering questions."
            ),
            (
                "Is your friend crying in school today?",
                "No, my friend isn't crying. She is smiling and happy."
            ),
            (
                "Are you standing up right now?",
                "No, I am not standing up. I am sitting down on my chair."
            ),
        ],
    },
    {
        "title": "🌤️  Outside & Weather",
        "qa": [
            (
                "Is it raining right now?",
                "No, it isn't raining right now. The sky is clear and blue."
            ),
            (
                "Are you playing outside right now?",
                "No, I am not playing outside right now. I am inside the house."
            ),
            (
                "Is the sun hiding behind the clouds?",
                "No, the sun isn't hiding. It is shining in the sky."
            ),
            (
                "Are you wearing a coat today?",
                "No, I am not wearing a coat today. It is warm outside."
            ),
            (
                "Is the wind blowing very hard today?",
                "No, the wind isn't blowing hard. It is a calm and quiet day."
            ),
        ],
    },
    {
        "title": "👕  Clothes & Things",
        "qa": [
            (
                "Are you wearing a hat right now?",
                "No, I am not wearing a hat. I am not outside."
            ),
            (
                "Is your bag open right now?",
                "No, my bag isn't open right now. It is closed on my desk."
            ),
            (
                "Are you holding a pen right now?",
                "No, I am not holding a pen right now. My hands are free."
            ),
            (
                "Is your phone ringing right now?",
                "No, my phone isn't ringing. It is quiet in my pocket."
            ),
            (
                "Are you wearing your shoes inside the house?",
                "No, I am not wearing shoes inside. I take them off at the door."
            ),
        ],
    },
    {
        "title": "🎈  Fun & Play",
        "qa": [
            (
                "Are you watching TV right now?",
                "No, I am not watching TV right now. I am doing my homework."
            ),
            (
                "Is your brother playing video games right now?",
                "No, my brother isn't playing video games. He is reading a book."
            ),
            (
                "Are you listening to music right now?",
                "No, I am not listening to music. I am listening to my teacher."
            ),
            (
                "Is your cat jumping on the sofa right now?",
                "No, my cat isn't jumping. It is lying down and sleeping."
            ),
            (
                "Are you laughing right now?",
                "No, I am not laughing right now. I am thinking carefully!"
            ),
        ],
    },
]

# ── Document ───────────────────────────────────────────────────────────────────
doc = SimpleDocTemplate(
    OUTPUT, pagesize=A4,
    rightMargin=1.8*cm, leftMargin=1.8*cm,
    topMargin=1.5*cm,   bottomMargin=1.5*cm,
)
W = A4[0] - 3.6*cm
story = []

def S(name, **kw):
    return ParagraphStyle(name, **kw)

# ── HEADER ─────────────────────────────────────────────────────────────────────
story.append(Table(
    [[Paragraph("Present Continuous<br/>Negative Tense",
                S("T", fontSize=26, leading=34, alignment=TA_CENTER,
                  textColor=WHITE, fontName="Helvetica-Bold"))]],
    colWidths=[W],
    style=TableStyle([
        ("BACKGROUND",    (0,0), (-1,-1), DEEP_BLUE),
        ("ROUNDEDCORNERS",[14]),
        ("TOPPADDING",    (0,0), (-1,-1), 18),
        ("BOTTOMPADDING", (0,0), (-1,-1), 18),
    ])
))
story.append(Spacer(1, 0.3*cm))

story.append(Table(
    [[Paragraph(
        "🎓  Class 3 ESL  |  Easy Speaking Practice  |  25 Questions",
        S("ST", fontSize=12, leading=16, alignment=TA_CENTER,
          textColor=LIGHT_BLUE, fontName="Helvetica")
    )]],
    colWidths=[W],
    style=TableStyle([
        ("BACKGROUND",    (0,0), (-1,-1), SKY_BLUE),
        ("ROUNDEDCORNERS",[10]),
        ("TOPPADDING",    (0,0), (-1,-1), 8),
        ("BOTTOMPADDING", (0,0), (-1,-1), 8),
    ])
))
story.append(Spacer(1, 0.3*cm))

# Formula badge
story.append(Table(
    [[Paragraph(
        "📌  Formula:  Subject  +  am not / isn't / aren't  +  Verb-ing",
        S("RB", fontSize=11, leading=15, alignment=TA_CENTER,
          textColor=AMBER, fontName="Helvetica-Bold")
    )]],
    colWidths=[W],
    style=TableStyle([
        ("BACKGROUND",    (0,0), (-1,-1), LIGHT_AMBER),
        ("ROUNDEDCORNERS",[8]),
        ("TOPPADDING",    (0,0), (-1,-1), 7),
        ("BOTTOMPADDING", (0,0), (-1,-1), 7),
        ("BOX",           (0,0), (-1,-1), 1.5, AMBER),
    ])
))
story.append(Spacer(1, 0.3*cm))

# Example
story.append(Table(
    [[
        Paragraph("Example:", S("EL", fontSize=10, fontName="Helvetica-Bold",
                                 textColor=TEAL, alignment=TA_LEFT)),
        Paragraph(
            '<font color="#B71C1C"><b>Q:</b></font>  Are you sleeping now?     '
            '<font color="#2E7D32"><b>A:</b></font>  No, I <b>am not</b> sleeping. '
            'I am doing my homework.',
            S("ET", fontSize=10, fontName="Helvetica",
              textColor=DEEP_BLUE, alignment=TA_LEFT)
        ),
    ]],
    colWidths=[1.8*cm, W - 1.8*cm],
    style=TableStyle([
        ("BACKGROUND",    (0,0), (-1,-1), LIGHT_BLUE),
        ("ROUNDEDCORNERS",[8]),
        ("TOPPADDING",    (0,0), (-1,-1), 7),
        ("BOTTOMPADDING", (0,0), (-1,-1), 7),
        ("LEFTPADDING",   (0,0), (-1,-1), 10),
        ("RIGHTPADDING",  (0,0), (-1,-1), 10),
        ("VALIGN",        (0,0), (-1,-1), "MIDDLE"),
    ])
))
story.append(Spacer(1, 0.5*cm))

# ── Q&A SECTIONS ──────────────────────────────────────────────────────────────
q_style = S("QS", fontSize=11, leading=15, alignment=TA_LEFT,
            textColor=DEEP_BLUE, fontName="Helvetica-Bold", leftIndent=6)
a_style = S("AS", fontSize=10.5, leading=14, alignment=TA_LEFT,
            textColor=colors.HexColor("#333333"), fontName="Helvetica", leftIndent=6)

for idx, section in enumerate(sections):
    hdr_bg, hdr_fg, row_bg, accent = CAT_COLOURS[idx]
    elements = []

    # Section header
    elements.append(Table(
        [[Paragraph(section["title"],
                    S("CH", fontSize=14, leading=18, alignment=TA_LEFT,
                      textColor=WHITE, fontName="Helvetica-Bold"))]],
        colWidths=[W],
        style=TableStyle([
            ("BACKGROUND",    (0,0), (-1,-1), hdr_bg),
            ("ROUNDEDCORNERS",[10]),
            ("TOPPADDING",    (0,0), (-1,-1), 9),
            ("BOTTOMPADDING", (0,0), (-1,-1), 9),
            ("LEFTPADDING",   (0,0), (-1,-1), 14),
        ])
    ))
    elements.append(Spacer(1, 0.2*cm))

    for qi, (q, a) in enumerate(section["qa"]):
        bg = row_bg if qi % 2 == 0 else WHITE
        qa_tbl = Table(
            [[Paragraph(f"<b>Q.</b>  {q}", q_style)],
             [Paragraph(f"<b>A.</b>  {a}", a_style)]],
            colWidths=[W - 0.4*cm]
        )
        qa_tbl.setStyle(TableStyle([
            ("BACKGROUND",    (0,0), (-1,-1), bg),
            ("ROUNDEDCORNERS",[6]),
            ("TOPPADDING",    (0,0), (0,0),   7),
            ("BOTTOMPADDING", (0,0), (0,0),   2),
            ("TOPPADDING",    (0,1), (0,1),   2),
            ("BOTTOMPADDING", (0,1), (0,1),   7),
            ("LEFTPADDING",   (0,0), (-1,-1), 10),
            ("RIGHTPADDING",  (0,0), (-1,-1), 10),
            ("LINEBELOW",     (0,0), (-1,0),  0.5, colors.HexColor("#CCCCCC")),
            ("BOX",           (0,0), (-1,-1), 0.8, accent),
        ]))
        elements.append(qa_tbl)
        elements.append(Spacer(1, 0.18*cm))

    story.append(KeepTogether(elements))
    story.append(Spacer(1, 0.35*cm))

# ── GRAMMAR TABLE ──────────────────────────────────────────────────────────────
story.append(Table(
    [[Paragraph("📝  Quick Grammar Reminder",
                S("GL", fontSize=13, leading=16, alignment=TA_CENTER,
                  textColor=WHITE, fontName="Helvetica-Bold"))]],
    colWidths=[W],
    style=TableStyle([
        ("BACKGROUND",    (0,0), (-1,-1), DEEP_BLUE),
        ("ROUNDEDCORNERS",[10]),
        ("TOPPADDING",    (0,0), (-1,-1), 9),
        ("BOTTOMPADDING", (0,0), (-1,-1), 9),
    ])
))
story.append(Spacer(1, 0.2*cm))

def gc(txt, bold=False, clr=DEEP_BLUE):
    f = "Helvetica-Bold" if bold else "Helvetica"
    return Paragraph(txt, S("gc_"+txt[:4], fontSize=10.5, fontName=f,
                             textColor=clr, alignment=TA_CENTER))

gram_table = Table(
    [
        [gc("Subject",      bold=True, clr=WHITE),
         gc("Negative Form",bold=True, clr=WHITE),
         gc("Example",      bold=True, clr=WHITE)],
        [gc("I"),
         gc("am not + verb-ing", bold=True, clr=CRIMSON),
         gc("I am not sleeping.")],
        [gc("He / She / It"),
         gc("isn't + verb-ing",  bold=True, clr=ORANGE),
         gc("She isn't eating.")],
        [gc("You / We / They"),
         gc("aren't + verb-ing", bold=True, clr=GREEN),
         gc("They aren't playing.")],
    ],
    colWidths=[W*0.25, W*0.37, W*0.38]
)
gram_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0),  SKY_BLUE),
    ("BACKGROUND",    (0,1), (-1,1),  LIGHT_RED),
    ("BACKGROUND",    (0,2), (-1,2),  LIGHT_AMBER),
    ("BACKGROUND",    (0,3), (-1,3),  LIGHT_GREEN),
    ("GRID",          (0,0), (-1,-1), 0.8, colors.HexColor("#CCCCCC")),
    ("TOPPADDING",    (0,0), (-1,-1), 8),
    ("BOTTOMPADDING", (0,0), (-1,-1), 8),
    ("ALIGN",         (0,0), (-1,-1), "CENTER"),
    ("VALIGN",        (0,0), (-1,-1), "MIDDLE"),
]))
story.append(gram_table)
story.append(Spacer(1, 0.4*cm))

# ── SPEAKING TIPS ──────────────────────────────────────────────────────────────
story.append(Table(
    [[Paragraph("🎯  Speaking Tips for Students",
                S("TH", fontSize=12, leading=16, alignment=TA_LEFT,
                  textColor=WHITE, fontName="Helvetica-Bold"))]],
    colWidths=[W],
    style=TableStyle([
        ("BACKGROUND",    (0,0), (-1,-1), PURPLE),
        ("ROUNDEDCORNERS",[10]),
        ("TOPPADDING",    (0,0), (-1,-1), 9),
        ("BOTTOMPADDING", (0,0), (-1,-1), 9),
        ("LEFTPADDING",   (0,0), (-1,-1), 14),
    ])
))

tips = [
    "✅  Always give a <b>full sentence answer</b> - do not just say 'No.'",
    "✅  Use  <b>am not</b>  with  I  —  use  <b>isn't</b>  with  He / She / It.",
    "✅  Use  <b>aren't</b>  with  You / We / They.",
    "✅  After saying what is NOT happening, say what <b>IS</b> happening.",
    "✅  Practice <b>out loud</b> every day - even in front of a mirror!",
]

tip_rows = [[Paragraph(t, S("TP"+str(i), fontSize=10.5, leading=14,
                             alignment=TA_LEFT, textColor=colors.HexColor("#4A148C"),
                             fontName="Helvetica", leftIndent=8))]
            for i, t in enumerate(tips)]

story.append(Table(
    tip_rows, colWidths=[W],
    style=TableStyle([
        ("BACKGROUND",    (0,0), (-1,-1), LIGHT_PURPLE),
        ("ROUNDEDCORNERS",[8]),
        ("TOPPADDING",    (0,0), (-1,-1), 6),
        ("BOTTOMPADDING", (0,0), (-1,-1), 6),
        ("LEFTPADDING",   (0,0), (-1,-1), 14),
        ("RIGHTPADDING",  (0,0), (-1,-1), 14),
        ("BOX",           (0,0), (-1,-1), 1.0, PURPLE),
    ])
))
story.append(Spacer(1, 0.4*cm))

# ── FOOTER ─────────────────────────────────────────────────────────────────────
story.append(HRFlowable(width=W, thickness=1, color=LIGHT_BLUE))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph(
    "Class 3 ESL  •  Present Continuous Negative Tense  •  Easy Speaking Practice  •  25 Questions",
    S("FT", fontSize=9, leading=12, alignment=TA_CENTER,
      textColor=colors.HexColor("#888888"), fontName="Helvetica")
))

doc.build(story)
print(f"Done: {OUTPUT}")
Running Command

cd /home/daytona/workspace/esl-present-simple && python create_easy_cont_pdf.py

Your new easier PDF is ready! Download it here:

Present Continuous Negative Easy

PDF Document · PDF


What Changed - Key Improvements

All 25 questions now use words and situations a Class 3 child already knows from daily life:
SectionColorTopic Focus
🏠 At HomeBluesleeping, eating, cooking, watching TV
🏫 At SchoolGreenrunning, drawing, sitting, standing
🌤️ Outside & WeatherPurplerain, sunshine, coat, wind
👕 Clothes & ThingsOrangehat, bag, pen, shoes
🎈 Fun & PlayTealTV, music, video games, laughing

Why These Questions Are Easier

  • Short, common words - sleeping, eating, running, sitting
  • Familiar settings - home, school, outside
  • Simple yes/no situations the student can relate to right now
  • Every answer adds one natural extra sentence to build confidence
  • No difficult vocabulary, no complex scenarios
This is a shared conversation. Sign in to Orris to start your own chat.