Skip to content

Commit 3e94b75

Browse files
committed
TR updates, first round
1 parent a88cc22 commit 3e94b75

File tree

4 files changed

+97
-74
lines changed

4 files changed

+97
-74
lines changed

python-string-formatting/grades_report.py

Lines changed: 0 additions & 71 deletions
This file was deleted.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
student = {
2+
"name": "John Doe",
3+
"subjects": [
4+
{
5+
"name": "Mathematics",
6+
"grade": 88,
7+
"comment": "Excellent improvement.",
8+
},
9+
{
10+
"name": "Science",
11+
"grade": 92,
12+
"comment": "Outstanding performance.",
13+
},
14+
{
15+
"name": "History",
16+
"grade": 78,
17+
"comment": "Needs to participate more.",
18+
},
19+
{"name": "Art", "grade": 85, "comment": "Very creative."},
20+
],
21+
}
22+
23+
24+
def build_student_report(student):
25+
report_header = f"Progress Report. Student: {student['name']}"
26+
27+
total = sum(subject["grade"] for subject in student["subjects"])
28+
average = total / len(student["subjects"])
29+
average_report = f"Average: {average:.2f} / 100\n"
30+
31+
subject_report = "Course Details:\n"
32+
for subject in student["subjects"]:
33+
subject_report += (
34+
f"{subject['name']:<15} "
35+
f"Grade: {subject['grade']:3d} "
36+
f"Comment: {subject['comment']}\n"
37+
)
38+
39+
return f"""
40+
{report_header}
41+
{average_report}
42+
{subject_report}
43+
Thank you for reviewing the progress report.
44+
"""
45+
46+
47+
print(build_student_report(student))
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
SUBJECT_TEMPLATE = "{name:<15} Grade: {grade:3} Comment: {comment}"
2+
REPORT_TEMPLATE = """
3+
"Progress Report. Student: {name}"
4+
"Average: {average:.2f} / 100"
5+
6+
Course Details:
7+
{subjects_report}
8+
9+
Thank you for reviewing the progress report.
10+
"""
11+
12+
student = {
13+
"name": "John Doe",
14+
"subjects": [
15+
{
16+
"name": "Mathematics",
17+
"grade": 88,
18+
"comment": "Excellent improvement.",
19+
},
20+
{
21+
"name": "Science",
22+
"grade": 92,
23+
"comment": "Outstanding performance.",
24+
},
25+
{
26+
"name": "History",
27+
"grade": 78,
28+
"comment": "Needs to participate more.",
29+
},
30+
{"name": "Art", "grade": 85, "comment": "Very creative."},
31+
],
32+
}
33+
34+
35+
def build_student_report(student):
36+
data = {
37+
"name": student["name"],
38+
"average": sum(subject["grade"] for subject in student["subjects"])
39+
/ len(student["subjects"]),
40+
"subjects_report": "\n".join(
41+
SUBJECT_TEMPLATE.format(**subject)
42+
for subject in student["subjects"]
43+
),
44+
}
45+
46+
return REPORT_TEMPLATE.format(**data)
47+
48+
49+
print(build_student_report(student))

python-string-formatting/sales_report.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def build_sales_report(sales_data, report_template=REPORT_TEMPLATE):
1515
transactions = len(sales_data)
1616
avg_transaction = total_sales / transactions
1717

18-
report = report_template.format(
18+
return report_template.format(
1919
sep=".",
2020
start_date=sales_data[0]["date"],
2121
end_date=sales_data[-1]["date"],
@@ -24,8 +24,6 @@ def build_sales_report(sales_data, report_template=REPORT_TEMPLATE):
2424
avg_transaction=avg_transaction,
2525
)
2626

27-
return report
28-
2927

3028
sales_data = [
3129
{"date": "2024-04-01", "amount": 100},

0 commit comments

Comments
 (0)