学生列表展示

定义一个学生数据的列表类型、包含字段id、姓名、得分、日期。然后在使用input获取用户输入的页码,在终端实现一个简单的分页显示效果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import math

students = [
{'name': '刘备', 'gender': '男', 'age': 35},
{'name': '关羽', 'gender': '男', 'age': 30},
{'name': '张飞', 'gender': '男', 'age': 32},
{'name': '赵云', 'gender': '男', 'age': 30},
{'name': '黄忠', 'gender': '男', 'age': 32},
{'name': '马超', 'gender': '男', 'age': 31},
{'name': '吕布', 'gender': '男', 'age': 35},
{'name': '典韦', 'gender': '男', 'age': 30},
{'name': '孙权', 'gender': '男', 'age': 32},
{'name': '周瑜', 'gender': '男', 'age': 30},
{'name': '曹操', 'gender': '男', 'age': 30},
]

current_page = 1
page_size = 5
total = len(students)
page_count = math.ceil(total / page_size)

def clear_screen():
print("\033c",end="")

def student_list(page):
clear_screen()

start = (page - 1) * page_size
end = start + page_size

print('='*50)
print('学生列表'.center(50))
print('-'*50)
print('序号\t姓名\t性别\t年龄')
for index,student in enumerate(students[start:end],start=start+1):
print(f'{index}\t{student["name"]}\t{student["gender"]}\t{student["age"]}')
print('='*50)
print(f'第{page}页,共{page_count}页,{page_size}条/页,共{total}条数据')

while True:
student_list(current_page)
user_input = input('输入数字跳转到指定页,输入q退出:')
if user_input.lower() == 'q':
clear_screen()
print("程序已退出!!!")
break

new_page = int(user_input)
if 1 <= new_page <= page_count:
current_page = new_page
else:
print("输入的页码超出范围!")

image-20250923123442475

image-20250923123501036

image-20250923123516862

字符串内建函数

img

img