核心编程第十四期

edfgvasfcse · · 59 次点击 · · 开始浏览    

获课地址:666it.top/14062/ 图灵核心编程实战班:从零基础到全栈开发高手的蜕变之路 在当今数字化时代,编程已成为一项极具价值的核心技能。无论是寻求职业转型、提升工作效率,还是追逐技术梦想,掌握编程能力都能为你打开新世界的大门。《图灵核心编程实战班》专为编程小白设计,通过系统化的课程体系和丰富的实战项目,带你从零开始,逐步成长为具备全栈开发能力的程序员。 课程核心模块详解 模块一:编程基础与Python入门 编程语言是与计算机沟通的工具,Python以其简洁易读的语法和强大的功能库,成为入门编程的首选语言。 基础语法与数据类型 python # 变量与基础数据类型 name = "图灵学员" # 字符串 age = 25 # 整数 height = 175.5 # 浮点数 is_student = True # 布尔值 # 数据结构 numbers = [1, 2, 3, 4, 5] # 列表 student_info = {"name": "张三", "age": 20} # 字典 unique_numbers = {1, 2, 3, 4} # 集合 coordinates = (10, 20) # 元组 # 控制流程 def check_grade(score): """根据分数判断等级""" if score >= 90: return "优秀" elif score >= 80: return "良好" elif score >= 70: return "中等" elif score >= 60: return "及格" else: return "不及格" # 循环与迭代 def process_data(data_list): """处理数据列表""" results = [] for item in data_list: if item % 2 == 0: # 偶数 results.append(item * 2) else: # 奇数 results.append(item ** 2) return results # 列表推导式示例 squares = [x**2 for x in range(1, 11)] even_squares = [x**2 for x in range(1, 11) if x % 2 == 0] 函数与面向对象编程 python class Student: """学生类""" def __init__(self, name, age, major): self.name = name self.age = age self.major = major self.courses = [] def enroll_course(self, course_name): """选课方法""" self.courses.append(course_name) print(f"{self.name} 已成功选修 {course_name}") def display_info(self): """显示学生信息""" info = f""" 学生信息: 姓名:{self.name} 年龄:{self.age} 专业:{self.major} 已选课程:{', '.join(self.courses) if self.courses else '暂无'} """ return info class GraduateStudent(Student): """研究生类,继承自Student""" def __init__(self, name, age, major, research_topic): super().__init__(name, age, major) self.research_topic = research_topic self.publications = [] def publish_paper(self, paper_title, journal): """发表论文""" publication = { "title": paper_title, "journal": journal, "date": "2024-01-15" } self.publications.append(publication) print(f"论文 '{paper_title}' 已发表在 {journal}") # 使用示例 student1 = Student("李四", 20, "计算机科学") student1.enroll_course("Python编程") student1.enroll_course("数据结构") grad_student = GraduateStudent("王博士", 25, "人工智能", "深度学习") grad_student.enroll_course("高级机器学习") grad_student.publish_paper("基于深度学习的图像识别", "AI研究期刊") 模块二:Web前端开发实战 现代Web开发需要掌握HTML、CSS和JavaScript三大核心技术。 HTML5与CSS3 html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>学生管理系统</title> <style> /* 全局样式 */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Arial', sans-serif; line-height: 1.6; color: #333; background-color: #f4f4f4; } /* 导航栏样式 */ .navbar { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 1rem 0; box-shadow: 0 2px 10px rgba(0,0,0,0.1); } .nav-container { max-width: 1200px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; padding: 0 2rem; } .logo { font-size: 1.5rem; font-weight: bold; } .nav-links { display: flex; list-style: none; } .nav-links li { margin-left: 2rem; } .nav-links a { color: white; text-decoration: none; transition: color 0.3s; } .nav-links a:hover { color: #ffd700; } /* 主要内容区域 */ .container { max-width: 1200px; margin: 2rem auto; padding: 0 2rem; } .card { background: white; border-radius: 10px; padding: 2rem; margin-bottom: 2rem; box-shadow: 0 5px 15px rgba(0,0,0,0.1); transition: transform 0.3s, box-shadow 0.3s; } .card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(0,0,0,0.15); } .card-header { display: flex; justify-content: between; align-items: center; margin-bottom: 1.5rem; border-bottom: 2px solid #f0f0f0; padding-bottom: 1rem; } .card-title { font-size: 1.5rem; color: #333; } /* 表格样式 */ .table { width: 100%; border-collapse: collapse; margin-top: 1rem; } .table th, .table td { padding: 1rem; text-align: left; border-bottom: 1px solid #eee; } .table th { background-color: #f8f9fa; font-weight: bold; color: #495057; } .table tr:hover { background-color: #f8f9fa; } /* 按钮样式 */ .btn { display: inline-block; padding: 0.5rem 1rem; border: none; border-radius: 5px; cursor: pointer; text-decoration: none; transition: all 0.3s; font-size: 0.9rem; } .btn-primary { background: #007bff; color: white; } .btn-primary:hover { background: #0056b3; transform: translateY(-2px); } .btn-success { background: #28a745; color: white; } .btn-danger { background: #dc3545; color: white; } /* 响应式设计 */ @media (max-width: 768px) { .nav-container { flex-direction: column; text-align: center; } .nav-links { margin-top: 1rem; flex-direction: column; } .nav-links li { margin: 0.5rem 0; } .container { padding: 0 1rem; } } </style> </head> <body> <!-- 导航栏 --> <nav class="navbar"> <div class="nav-container"> <div class="logo">学生管理系统</div> <ul class="nav-links"> <li><a href="#dashboard">仪表盘</a></li> <li><a href="#students">学生管理</a></li> <li><a href="#courses">课程管理</a></li> <li><a href="#reports">成绩报表</a></li> </ul> </div> </nav> <!-- 主要内容 --> <div class="container"> <!-- 统计卡片 --> <div class="card"> <div class="card-header"> <h2 class="card-title">系统概览</h2> </div> <div class="stats-grid"> <div class="stat-item"> <h3>总学生数</h3> <p class="stat-number">1,248</p> </div> <div class="stat-item"> <h3>活跃课程</h3> <p class="stat-number">56</p> </div> <div class="stat-item"> <h3>教师数量</h3> <p class="stat-number">34</p> </div> </div> </div> <!-- 学生列表 --> <div class="card"> <div class="card-header"> <h2 class="card-title">学生列表</h2> <button class="btn btn-primary">添加学生</button> </div> <table class="table"> <thead> <tr> <th>学号</th> <th>姓名</th> <th>专业</th> <th>年级</th> <th>操作</th> </tr> </thead> <tbody> <tr> <td>2024001</td> <td>张三</td> <td>计算机科学</td> <td>大三</td> <td> <button class="btn btn-success">编辑</button> <button class="btn btn-danger">删除</button> </td> </tr> <tr> <td>2024002</td> <td>李四</td> <td>软件工程</td> <td>大二</td> <td> <button class="btn btn-success">编辑</button> <button class="btn btn-danger">删除</button> </td> </tr> </tbody> </table> </div> </div> <script> // JavaScript交互功能 document.addEventListener('DOMContentLoaded', function() { // 表格行点击效果 const tableRows = document.querySelectorAll('.table tbody tr'); tableRows.forEach(row => { row.addEventListener('click', function() { this.classList.toggle('selected'); }); }); // 添加学生按钮事件 const addStudentBtn = document.querySelector('.btn-primary'); addStudentBtn.addEventListener('click', function() { alert('打开添加学生表单'); // 实际项目中这里会打开模态框或跳转到表单页面 }); // 删除按钮事件 const deleteBtns = document.querySelectorAll('.btn-danger'); deleteBtns.forEach(btn => { btn.addEventListener('click', function(e) { e.stopPropagation(); // 阻止事件冒泡 const studentName = this.closest('tr').querySelector('td:nth-child(2)').textContent; if (confirm(`确定要删除学生 ${studentName} 吗?`)) { this.closest('tr').remove(); } }); }); }); </script> </body> </html> JavaScript高级特性与ES6+ javascript // ES6+ 新特性示例 class StudentManager { constructor() { this.students = []; this.courses = []; this.initializeEventListeners(); } // 初始化事件监听器 initializeEventListeners() { document.getElementById('addStudentBtn')?.addEventListener('click', () => this.showAddStudentForm()); document.getElementById('searchInput')?.addEventListener('input', (e) => this.searchStudents(e.target.value)); } // 添加学生 async addStudent(studentData) { try { // 数据验证 if (!this.validateStudentData(studentData)) { throw new Error('学生数据验证失败'); } // 生成唯一ID const studentId = this.generateStudentId(); const student = { id: studentId, ...studentData, enrollmentDate: new Date().toISOString(), status: 'active' }; this.students.push(student); await this.saveToLocalStorage(); this.renderStudentList(); return student; } catch (error) { console.error('添加学生失败:', error); this.showNotification(error.message, 'error'); } } // 数据验证 validateStudentData(data) { const { name, email, major } = data; const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return name && name.length >= 2 && email && emailRegex.test(email) && major && major.length >= 2; } // 生成学生ID generateStudentId() { const timestamp = Date.now().toString().slice(-6); const random = Math.random().toString(36).substr(2, 4).toUpperCase(); return `STU${timestamp}${random}`; } // 搜索学生 searchStudents(keyword) { const filteredStudents = this.students.filter(student => student.name.toLowerCase().includes(keyword.toLowerCase()) || student.major.toLowerCase().includes(keyword.toLowerCase()) || student.email.toLowerCase().includes(keyword.toLowerCase()) ); this.renderStudentList(filteredStudents); } // 渲染学生列表 renderStudentList(students = this.students) { const tbody = document.querySelector('#studentTable tbody'); if (!tbody) return; tbody.innerHTML = students.map(student => ` <tr data-student-id="${student.id}"> <td>${student.id}</td> <td>${this.escapeHtml(student.name)}</td> <td>${this.escapeHtml(student.email)}</td> <td>${this.escapeHtml(student.major)}</td> <td>${new Date(student.enrollmentDate).toLocaleDateString()}</td> <td> <span class="badge ${student.status === 'active' ? 'badge-success' : 'badge-secondary'}"> ${student.status === 'active' ? '活跃' : '非活跃'} </span> </td> <td> <button class="btn btn-sm btn-info" onclick="studentManager.editStudent('${student.id}')"> 编辑 </button> <button class="btn btn-sm btn-danger" onclick="studentManager.deleteStudent('${student.id}')"> 删除 </button> </td> </tr> `).join(''); } // HTML转义防止XSS攻击 escapeHtml(unsafe) { return unsafe .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;") .replace(/"/g, "&quot;") .replace(/'/g, "&#039;"); } // 显示通知 showNotification(message, type = 'info') { const notification = document.createElement('div'); notification.className = `alert alert-${type} notification`; notification.textContent = message; document.body.appendChild(notification); setTimeout(() => { notification.remove(); }, 3000); } // 本地存储 async saveToLocalStorage() { return new Promise((resolve) => { localStorage.setItem('students', JSON.stringify(this.students)); resolve(); }); } // 从本地存储加载 async loadFromLocalStorage() { return new Promise((resolve) => { const stored = localStorage.getItem('students'); if (stored) { this.students = JSON.parse(stored); } resolve(); }); } } // 使用现代JavaScript特性 const studentManager = new StudentManager(); // 页面加载完成后初始化 document.addEventListener('DOMContentLoaded', async () => { await studentManager.loadFromLocalStorage(); studentManager.renderStudentList(); }); // 模块导出 export default StudentManager; 模块三:后端开发与数据库 Flask Web框架 python from flask import Flask, request, jsonify, render_template from flask_sqlalchemy import SQLAlchemy from flask_migrate import Migrate from datetime import datetime import os # 创建Flask应用 app = Flask(__name__) # 配置数据库 app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///students.db' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False app.config['SECRET_KEY'] = 'your-secret-key-here' # 初始化数据库 db = SQLAlchemy(app) migrate = Migrate(app, db) # 数据模型 class Student(db.Model): """学生模型""" __tablename__ = 'students' id = db.Column(db.Integer, primary_key=True) student_id = db.Column(db.String(20), unique=True, nullable=False) name = db.Column(db.String(100), nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) major = db.Column(db.String(100), nullable=False) enrollment_date = db.Column(db.DateTime, default=datetime.utcnow) status = db.Column(db.String(20), default='active') # 关系 grades = db.relationship('Grade', backref='student', lazy=True) def to_dict(self): """转换为字典""" return { 'id': self.id, 'student_id': self.student_id, 'name': self.name, 'email': self.email, 'major': self.major, 'enrollment_date': self.enrollment_date.isoformat(), 'status': self.status } class Course(db.Model): """课程模型""" __tablename__ = 'courses' id = db.Column(db.Integer, primary_key=True) course_code = db.Column(db.String(20), unique=True, nullable=False) course_name = db.Column(db.String(200), nullable=False) credits = db.Column(db.Integer, nullable=False) description = db.Column(db.Text) grades = db.relationship('Grade', backref='course', lazy=True) class Grade(db.Model): """成绩模型""" __tablename__ = 'grades' id = db.Column(db.Integer, primary_key=True) student_id = db.Column(db.Integer, db.ForeignKey('students.id'), nullable=False) course_id = db.Column(db.Integer, db.ForeignKey('courses.id'), nullable=False) score = db.Column(db.Float, nullable=False) semester = db.Column(db.String(20), nullable=False) # 唯一约束:一个学生在一门课程的一个学期只能有一个成绩 __table_args__ = ( db.UniqueConstraint('student_id', 'course_id', 'semester', name='unique_grade'), ) # API路由 @app.route('/') def index(): """首页""" return render_template('index.html') @app.route('/api/students', methods=['GET']) def get_students(): """获取学生列表""" try: page = request.args.get('page', 1, type=int) per_page = request.args.get('per_page', 10, type=int) search = request.args.get('search', '') # 构建查询 query = Student.query if search: query = query.filter( db.or_( Student.name.ilike(f'%{search}%'), Student.major.ilike(f'%{search}%'), Student.email.ilike(f'%{search}%') ) ) # 分页 pagination = query.paginate( page=page, per_page=per_page, error_out=False ) students = [student.to_dict() for student in pagination.items] return jsonify({ 'success': True, 'students': students, 'total': pagination.total, 'pages': pagination.pages, 'current_page': page }) except Exception as e: return jsonify({ 'success': False, 'error': str(e) }), 500 @app.route('/api/students', methods=['POST']) def create_student(): """创建新学生""" try: data = request.get_json() # 数据验证 required_fields = ['name', 'email', 'major'] for field in required_fields: if field not in data or not data[field]: return jsonify({ 'success': False, 'error': f'缺少必要字段: {field}' }), 400 # 检查邮箱是否已存在 if Student.query.filter_by(email=data['email']).first(): return jsonify({ 'success': False, 'error': '邮箱已存在' }), 400 # 生成学号 student_id = generate_student_id() # 创建学生 student = Student( student_id=student_id, name=data['name'], email=data['email'], major=data['major'] ) db.session.add(student) db.session.commit() return jsonify({ 'success': True, 'student': student.to_dict() }), 201 except Exception as e: db.session.rollback() return jsonify({ 'success': False, 'error': str(e) }), 500 @app.route('/api/students/<int:student_id>', methods=['PUT']) def update_student(student_id): """更新学生信息""" try: student = Student.query.get_or_404(student_id) data = request.get_json() # 更新字段 if 'name' in data: student.name = data['name'] if 'email' in data: # 检查邮箱是否被其他学生使用 existing = Student.query.filter( Student.email == data['email'], Student.id != student_id ).first() if existing: return jsonify({ 'success': False, 'error': '邮箱已被其他学生使用' }), 400 student.email = data['email'] if 'major' in data: student.major = data['major'] if 'status' in data: student.status = data['status'] db.session.commit() return jsonify({ 'success': True, 'student': student.to_dict() }) except Exception as e: db.session.rollback() return jsonify({ 'success': False, 'error': str(e) }), 500 @app.route('/api/students/<int:student_id>', methods=['DELETE']) def delete_student(student_id): """删除学生""" try: student = Student.query.get_or_404(student_id) # 删除相关成绩记录 Grade.query.filter_by(student_id=student_id).delete() db.session.delete(student) db.session.commit() return jsonify({ 'success': True, 'message': '学生删除成功' }) except Exception as e: db.session.rollback() return jsonify({ 'success': False, 'error': str(e) }), 500 def generate_student_id(): """生成学号""" now = datetime.now() year = now.year # 查找当年已有学生数量 count = Student.query.filter( db.extract('year', Student.enrollment_date) == year ).count() return f"{year}{count + 1:04d}" # 错误处理 @app.errorhandler(404) def not_found(error): return jsonify({ 'success': False, 'error': '资源未找到' }), 404 @app.errorhandler(500) def internal_error(error): return jsonify({ 'success': False, 'error': '服务器内部错误' }), 500 if __name__ == '__main__': with app.app_context(): db.create_all() app.run(debug=True) 实战项目:学生管理系统 通过以上技术栈,我们构建了一个完整的学生管理系统,包含以下功能: 学生信息管理:增删改查学生信息 课程管理:管理课程信息 成绩管理:记录和查询学生成绩 数据统计:提供各类统计报表 用户界面:响应式设计,支持移动端 学习路径建议 第一阶段(1-2周):掌握Python基础语法和面向对象编程 第二阶段(2-3周):学习HTML、CSS、JavaScript前端技术 第三阶段(3-4周):深入后端开发和数据库知识 第四阶段(2-3周):完成实战项目,积累开发经验 源码获取与学习支持 课程提供完整的项目源码,包含详细注释和文档说明。学员可以通过GitHub仓库获取最新代码,并参与开源社区讨论。 bash # 克隆项目仓库 git clone https://github.com/turing-training/student-management-system.git # 安装依赖 pip install -r requirements.txt # 运行应用 python app.py 《图灵核心编程实战班》通过理论结合实践的方式,让编程小白能够系统地掌握全栈开发技能。课程不仅传授技术知识,更注重培养解决实际问题的能力,为学员的职业发展奠定坚实基础。

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

59 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传