python 选课系统(面向对象)
项目需求: 利用规范化目录结构完成一个学生选课系统。 **角色:**学生、管理员。 功能分析: 用户登录之后就可以直接判断用户身份,是学生还是管理员。 学生登录之后有以下几个功能: 查看所有课程。 选择课程。 查看所选课程。 退出程序。 管理员登录之后有以下几个功能: 创建课程(需要记录日志)。 创建学生账号(需要记录日志)。 查看所有课程。 查看所有学生。 查看所有学生的选课情况。 退出程序。 课程属性:课程名,价格,周期,老师。 学生属性:姓名,所选课程。 管理员属性:姓名。 流程图: h
8.7(字符编码,python2和3字符编码的区别,文件的三种打开方式,with管理文件上下操作)
复习 数据分类 可变不可变 可变:列表,字典,集合 不可变:整型,浮点型,字符串,元组 有序无序 有序:字符串,列表,元组 无序:字典,集合 一个值多个值 一个值:整型,浮点型,字符串 多个值:列表,元组,字典,集合 深浅拷贝 只针对可变数据类型 拷贝:被拷贝对象变化,拷贝对象也变化 lt = [1,2,3,[4,5,6]]
lt2 = lt
# 当lt2为lt的拷贝对象时,lt内部任意数据类型的对象变化,lt2都变化 浅拷贝:拷贝对象随被拷贝对象的可变数据类型变化而变化 lt = [1,2
Nginx&Keepalived
1.下载依赖库 yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel 2.使用configure脚本自动生成Makefile文件 --prefix 指定安装目录 ./configure --prefix=/usr/local/software/nginx 3.编译安装 make && make install 4.命令 4.1 sbin/nginx 启动nginx 4.2 sbi
生产者消费者模型中的一点小问题
考虑以下这种情形: 目前有若干个消费者,一个生产者,现在流水线队列中已满,生产者在: MutexLockGuard lock(m_mutex);
while(isFull())
notFull.wait();
生产者在notFull.wait()中陷入阻塞。 此时某个消费者拿走了一个产品,并通过notFull.notify()通知生产者队列未满,可以生产。 生产者从wait中醒来,再次竞争锁。 但很不幸,这个锁再次被另外一个消费者获得。 一直持续这样的流程,生产者点太背,一直未
MessagePack Java 0.6.X 动态类型
我们知道 Java 是一个静态类型的语言。通过输入 Value MessagePack能够实现动态的特性。 Value 有方法来检查自己的类型(isIntegerType(), isArrayType(), 等...),同时也转换为自己的类型 (asStringValue(), convert(Template))。 本代码可以在 https://github.com/cwiki-us-demo/messagepack-6-demo-java/blob/master/src/test/java
python面向对象(3) _三大特性
对象的继承 官方的说法: 如果一个类别A“继承自”另一个类别B,就把这个A称为“B的子类别”,而把B称为“A的父类别”也可以称“B是A的超类”。继承可以使得子类别具有父类别的各种属性和方法,而不需要再次编写相同的代码。在令子类别继承父类别的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类别的原有属性和方法,使其获得与父类别不同的功能。另外,为子类别追加新的属性和方法也是常见的做法。 一般静态的面向对象编程语言,继承属于静态的,意即在子类别的行为在编译期就已经决定,无法在执行期扩充。 俗语
leetcode 238. 除自身以外数组的乘积 (python)
给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 示例: 输入: [1,2,3,4] 输出: [24,12,8,6] 说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。 class Solution:
def productExceptSelf(self, nums: List[int]) -> List[int]:
ln =len
bfs(火星撞地球)
Meteor Shower 链接:https://ac.nowcoder.com/acm/contest/997/I 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 Bessie hears that an extraordinary meteor shower is coming; reports say that these meteors will crash into
Python学习之路——字典
Python学习之路——字典 一、什么是字典 在了解什么是字典之前我们先来看一个东西,假如现在有这样两个列表,一个列表是学生的姓名,另一个列表是学生的成绩,现在需要你去把学生的成绩和姓名匹配起来,该怎么做? l1 = ["小张","小李","小王"]
l2 = ["60分","80分","70分"] #首先我们需要按照角标把学生的姓名拿到
l1[0],l1[1],l1[2]
#然后我们需要根据角标拿到学生的成绩
l2[0],l2[1],l2[2]
#最后将他们一一匹配 或者还存
2019 Multi-University Training Contest 6 Nonsense Time (纯暴力)
题意:给你一个n的排列,起初这些数都不能用, 然后还有一个数组 第 i 个数表示下标为 i 的数能够使用。 问每一个 i 对应的最长上升子序列。 题解: 可以通过倒推,从后往前考虑转化一下 ,然后就是删除一个数,两个数到n个数的最长上升子序列。 比赛的时候不会算复杂度算出来的是n^2log(n) ,完全不敢写,一直在想办法优化 赛后题解就是这个做法,但是题解说 因为数据随机,因此 LIS 的期望长度是 O( √ n), 删除的 x 位于 LIS 中的概率是 √ 1 n,也就 是说期望删除 O(
UVA11419 SAM I AM 二分图最小点覆盖
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2414 Solution 看到求最小大炮轰的次数我们很容易想到二分图的最小点覆盖,就是求最少哪些行或者列开出炮弹可以使得全部怪物被打死掉,那么我们行列建图,求一个最大匹配就行了 数据范围匈牙利即可,跑完一个最大匹配后,得到了数字答案,那么问题来了,如何得到在哪些行或者列打出炮弹呢。 我们结合图
线程同步 -事件Event、临界区对象CriticalSection
事件Event: 基本函数: 全局对象:HANDLE g_hEvent 创建事件对象:g_hEvent=CreateEvent(NULL,FALSE,FALSE,NULL) 重置状态为无信号:ResetEvent(g_hEvent) 设置状态为有信号:SetEvent(g_hEvent) 说明: 有信号转为无信号状态人为重置不可以控,最好设为自动完成,可以避免多个线程请求到对象; 只有一个实例运行:可以通过创建命名的事件对象,通过ERROR_ALREADY_EXISTS==GetLastErr
shell基础第一天
linux下脚本开(shell、python、perl) 1.bash的基本特性: ctrl+l 上键 history 2.IO重定向与管道符 3.编程基础: 编程原理 程序:执行某个功能的一段代码 程序必须包含:指令、数据、(逻辑关系) 命令、变量 #!/usr/bin/python3(python的指定) #!/bin/bash 4.grep 和 正则表达式!!!!
今日推荐
周排行