### Python 练习题知识点解析 #### 一、Person 类设计与实现 1. **类属性**:`count` - 初始值为0,用于统计创建了多少个`Person`对象。 - 需要定义`getCount()`和`setCount()`方法来访问和修改这个计数器。 2. **实例属性**: - `name`:公有属性,必须在创建对象时指定。 - `sex`和`age`:私有属性,初始化时默认为空字符串。 - `number`:私有属性,根据创建对象的顺序赋值,第一个对象为1,第二个为2,以此类推。 3. **方法**: - `__init__(self, name, sex='', age='')`: 构造函数,接收姓名作为必填参数,性别和年龄可选,默认为空字符串。 - 初始化`self.name`、`self._sex`、`self._age`属性。 - 更新`self.number`属性,根据类属性`count`递增。 - 增加`count`值。 - `__str__(self)`: 返回对象的名称、性别、年龄和编号。 - `read(self)`: 输出`{name} 在读书`。 - `work(cls, name)`: 类方法,输出`{name} 在工作`。 - `set_sex(self, sex)`: 设置私有属性`_sex`的值。 - `get_sex(self)`: 获取私有属性`_sex`的值。 - `set_age(self, age)`: 设置私有属性`_age`的值。 - `get_age(self)`: 获取私有属性`_age`的值。 - `getCount(cls)`: 类方法,返回类属性`count`的值。 - `setCount(cls, value)`: 类方法,设置类属性`count`的值。 4. **示例代码**: ```python class Person: count = 0 # 类属性 def __init__(self, name, sex='', age=''): self.name = name self._sex = sex self._age = age self.number = Person.count + 1 Person.count += 1 def __str__(self): return f"Name: {self.name}, Sex: {self._sex}, Age: {self._age}, Number: {self.number}" def read(self): print(f"{self.name} 在读书") @classmethod def work(cls, name): print(f"{name} 在工作") def set_sex(self, sex): self._sex = sex def get_sex(self): return self._sex def set_age(self, age): self._age = age def get_age(self): return self._age @classmethod def getCount(cls): return cls.count @classmethod def setCount(cls, value): cls.count = value ``` #### 二、随机整数列表生成与输出 1. **功能描述**:生成100个1到100之间的随机整数,并以20个数为一行输出,每行输出后暂停1秒。 2. **实现思路**: - 使用`random.randint(1, 100)`生成随机整数。 - 使用循环和`print()`函数控制输出格式。 - 使用`time.sleep(1)`实现每行输出后的暂停效果。 3. **示例代码**: ```python import random import time def generate_random_numbers(): numbers = [random.randint(1, 100) for _ in range(100)] for i in range(0, len(numbers), 20): print(numbers[i:i+20]) time.sleep(1) generate_random_numbers() ``` #### 三、WxPython 登录窗口设计 1. **功能描述**:设计一个登录窗口,输入用户名为`admin`,密码为`123`且验证码正确时显示“登录成功”,否则显示“登录失败”。 2. **实现思路**: - 使用`wxPython`创建GUI。 - 设计布局包含文本输入框、按钮等控件。 - 通过事件处理函数验证输入。 3. **示例代码**: ```python import wx class LoginFrame(wx.Frame): def __init__(self): super().__init__(None, title="登录", size=(300, 200)) panel = wx.Panel(self) vbox = wx.BoxSizer(wx.VERTICAL) username_label = wx.StaticText(panel, label="Username:") password_label = wx.StaticText(panel, label="Password:") captcha_label = wx.StaticText(panel, label="Captcha:") self.username_input = wx.TextCtrl(panel) self.password_input = wx.TextCtrl(panel, style=wx.TE_PASSWORD) self.captcha_input = wx.TextCtrl(panel) login_button = wx.Button(panel, label="Login") login_button.Bind(wx.EVT_BUTTON, self.on_login) vbox.Add(username_label, flag=wx.EXPAND | wx.ALL, border=5) vbox.Add(self.username_input, flag=wx.EXPAND | wx.ALL, border=5) vbox.Add(password_label, flag=wx.EXPAND | wx.ALL, border=5) vbox.Add(self.password_input, flag=wx.EXPAND | wx.ALL, border=5) vbox.Add(captcha_label, flag=wx.EXPAND | wx.ALL, border=5) vbox.Add(self.captcha_input, flag=wx.EXPAND | wx.ALL, border=5) vbox.Add(login_button, flag=wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, border=10) panel.SetSizer(vbox) def on_login(self, event): username = self.username_input.GetValue() password = self.password_input.GetValue() captcha = self.captcha_input.GetValue() if username == "admin" and password == "123" and captcha == "valid": wx.MessageBox("登录成功!", "Success") else: wx.MessageBox("登录失败!", "Error") app = wx.App() frame = LoginFrame() frame.Show() app.MainLoop() ``` #### 四、数据库操作 1. **功能描述**:在Navicat中创建名为`testdb`的数据库及名为`tb_stu`的表,并进行增删改查操作。 2. **实现思路**: - 使用`sqlite3`或`mysql.connector`等模块连接数据库。 - 创建表结构。 - 执行SQL语句完成数据的插入、修改、删除和查询。 3. **示例代码**: ```python import sqlite3 # 连接数据库 conn = sqlite3.connect('testdb.db') cursor = conn.cursor() # 创建表 cursor.execute(''' CREATE TABLE IF NOT EXISTS tb_stu ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, sex TEXT, score REAL ) ''') # 插入数据 cursor.execute("INSERT INTO tb_stu (name, sex, score) VALUES ('张三', '男', 85)") cursor.execute("INSERT INTO tb_stu (name, sex, score) VALUES ('李四', '女', 90)") cursor.execute("INSERT INTO tb_stu (name, sex, score) VALUES ('王五', '男', 78)") # 修改数据 cursor.execute("UPDATE tb_stu SET score = 95 WHERE name = '张三'") # 删除数据 cursor.execute("DELETE FROM tb_stu WHERE name = '王五'") # 查询数据 cursor.execute("SELECT * FROM tb_stu WHERE score > 80") results = cursor.fetchall() for row in results: print(row) # 查询所有数据 cursor.execute("SELECT * FROM tb_stu") all_results = cursor.fetchall() for row in all_results: print(row) # 提交事务 conn.commit() # 关闭连接 cursor.close() conn.close() ``` 以上代码涵盖了题目要求的所有知识点,包括类的设计与实现、随机数生成与输出、GUI设计以及数据库操作等。这些示例代码可以帮助理解和实现题目中的各项要求。
- 粉丝: 10w+
- 资源: 43
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于PyTorch实现Mnist数据识别全部资料+详细文档+高分项目.zip
- 基于pytorch的中文意图识别和槽位填充全部资料+详细文档+高分项目.zip
- 基于pytorch实现文字点选、选字、选择、点触验证码识别,全部资料+详细文档+高分项目.zip
- 基于Tesseract的身份证识别全部资料+详细文档+高分项目.zip
- 基于Tesseract-OCR实现自动扫描识别手机号全部资料+详细文档+高分项目.zip
- 基于torch进行验证码识别,识别率达94%全部资料+详细文档+高分项目.zip
- 基于VUE3.0的高颜值卡密发卡系统,特别适合虚拟商品、知识付费等全部资料+详细文档+高分项目.zip
- 基于孪生神经网络实现的点选识别全部资料+详细文档+高分项目.zip
- 基于人脸识别的课堂考勤系统v2.0全部资料+详细文档+高分项目.zip
- 基于深度学习的12306验证码识别全部资料+详细文档+高分项目.zip
- 基于深度学习的中文语音识别系统全部资料+详细文档+高分项目.zip
- 基于深度学习高性能中文车牌识别全部资料+详细文档+高分项目.zip
- 基于深度学习识别12306验证码全部资料+详细文档+高分项目.zip
- 基于图像识别的自动化黑盒测试框架全部资料+详细文档+高分项目.zip
- 机械设计灭菌医疗制袋机x_t全套设计资料100%好用.zip
- 基于卷积神经网络的表情识别全部资料+优秀项目+详细文档.zip