### 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设计以及数据库操作等。这些示例代码可以帮助理解和实现题目中的各项要求。
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![thumb](https://img-home.csdnimg.cn/images/20250102104920.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![ipynb](https://img-home.csdnimg.cn/images/20250102104920.png)
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/011c170397e74384867fbe236e58231e_m0_62617719.jpg!1)
- 粉丝: 10w+
- 资源: 43
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- 基于JavaScript、CSS、HTML的运行监测大屏设计源码
- 基于Java技术的药房管理系统设计源码
- 带隙基准在电源管理芯片中的成功应用:从指标评估到量产经验分享,带隙基准技术应用于电源管理芯片的项目经历:实现量产并持续优化指标,带隙基准,指标在下面,适用于电源管理芯片 已量产,可作为项目经历 ,带
- 基于Python实现的kmeans聚类算法学习与实践设计源码
- 基于Java与HTML的中小酒店管理信息系统设计源码
- 基于HTML的旅游景点管理系统设计源码
- 无刷直流电机BLDC双闭环调速系统仿真研究:PI控制策略与模块功能解析,无刷直流电机BLDC双闭环调速仿真系统:PI控制下的转速与电流精细调控模块解析,无刷直流电机BLDC双闭环调速仿真 模块: (1
- 西门子技术加持的RO反渗透纯水处理系统-高效稳定,多保护功能一应俱全,RO反渗透纯水处理系统:智能控制,多保护功能,实时监控与报警纯水机,RO反渗透纯水处理纯水机使用西门子224xp十昆仑通态tpc
- 基于Python的sympy符号运算库设计源码
- CAN总线通信工具:DBC文件与Excel文件高效互转,全面支持CAN及CANFD协议,兼容J1939标准,CAN总线通信与DBC文件Excel转换工具:支持CAN/CANFD及J1939协议,CAN
- 基于C#语言的TrafficSpider交通爬虫设计源码
- 基于JavaScript、HTML、CSS的柠檬全媒体投放数据对比分析平台设计源码
- 基于Android平台的TrafficExam移动互联软件开发设计源码
- MATLAB与C++联合编程的凝固显微组织模拟及多晶介电击穿相场模拟研究,MATLAB主导下的多元相场模拟与凝固组织微观演变的数字化解析,使用MATLAB自主编程实现凝固CET转变,柱状晶转变等轴晶
- 基于DSP28335控制的双通道两相交错双向DCDC变换器研究与应用,基于DSP28335控制的两相交错双向DCDC变换器技术的研究与应用,基于DSP28335的两相交错双向DCDC变器 ,基于DSP
- 基于Vue框架的购物与学校官网设计源码案例展示
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)