一、作业要求:

选课系统:

角色:学校、学员、课程、讲师

要求:

1. 创建北京、上海 2 所学校

2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开

3. 课程包含,周期,价格,通过学校创建课程

4. 通过学校创建班级, 班级关联课程、讲师

5. 创建学员时,选择学校,关联班级

5. 创建讲师角色时要关联学校,

6. 提供两个角色接口

6.1 学员视图, 可以注册, 交学费, 选择班级,

6.2 讲师视图, 讲师可管理自己的班级, 上课时选择班级, 查看班级学员列表 , 修改所管理的学员的成绩

6.3 管理视图,创建讲师, 创建班级,创建课程

7. 上面的操作产生的数据都通过pickle序列化保存到文件里

二、程序目录说明

学生选课系统/

|-- bin/

| |-- __init__.py

| |-- start.py #程序启动的主入口

|

|-- conf/

| |-- __init__.py

| |-- setting.py #配置文件

|

|-- db/

| |-- admin/ #管理员数据文件夹

| |-- charge/ #学生缴费数据文件夹

| |-- classes/ #班级数据文件夹

| |-- course/ #课程数据文件夹

| |-- school/ #学校数据文件夹

| |-- score/ #学生成绩数据文件夹

| |-- student/ #学生数据文件夹

| |-- teacher/ #老师数据文件夹

|

|-- lib/

| |-- __init__.py

| |-- common.py #公共函数

| |-- main.py #各大类

|

|-- log/

| |-- log_sys.log #日志文件

|

|-- src/

| |-- __init__.py

| |-- admin.py #管理员系统

| |-- func.py #主逻辑函数

| |-- student.py #学生系统

| |-- teacher.py #老师系统

|

|-- 流程图

|-- README.txt

三、程序已实现功能

程序实现了以下功能:

1、创建管理员(已有管理员:japhi、alex;密码都是123)

2、管理员创建老师(已有老师:李杰、林海峰、武佩奇)

3、管理员创建班级(已有班级:go1班、python1班、linux1班)

4、管理员创建课程(已有课程:go、python、linux)

5、管理员查看老师、班级、课程信息

6、老师修改学生成绩

7、老师查看班级和学生信息

8、学生注册及缴费(已有学生:alex、张三、李四、王五、赵六)

9、数据序列号保存并读取

四、流程图

五、作业代码

1、bin文件夹下程序启动主入口start.py:

import os,sys

frame = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))),"src")

sys.path.append(frame)

from func import sys_func

if __name__ == '__main__':

sys_func()

2、conf文件夹下配置文件seetings.py:

import os,sys

basdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #定义环境变量

sys.path.append(basdir)

log_dir = os.path.join(basdir,"log")

3、lib文件夹下公共函数common.py:

import logging,os,pickle,sys,uuid

frame = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

sys.path.append(frame)

from conf import setting

def sys_logging(content,levelname):

'''

程序记录日志函数

:param content: 日志的内容

:param levelname: 日志的等级

:return: none

'''

_filename = os.path.join(setting.log_dir,"log_sys.log")

log = logging.getLogger(_filename)

logging.basicConfig(filename=_filename,level=logging.INFO,format='%(asctime)s-%(levelname)s-%(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')

if levelname == 'debug':

logging.debug(content)

elif levelname == 'info':

logging.info(content)

elif levelname == 'warning':

logging.warning(content)

elif levelname == 'error':

logging.error(content)

elif levelname == 'critical':

logging.critical(content)

def printer(msg,msg_type):

'''

程序不同信息打印的字体颜色

:param msg: 打印信息

:param msg_type: 打印信息的类型

:return: none

'''

if msg_type == "info":

show_msg = "\033[1;33m%s\033[0m"%msg

elif msg_type == "error":

show_msg = "\033[1;31m%s\033[0m"%msg

elif msg_type == "msg":

show_msg = "\033[1;37m%s\033[0m"%msg

else:

show_msg = "\033[1;32m%s\033[0m"%msg

print(show_msg.center(60,'-'))

sys_logging(msg,msg_type)

主类代码main.py:

import os,pickle,sys,time

frame = os.path.dirname(os.path.abspath(__file__))

sys.path.append(frame)

from common import printer

class BasicObj(object):

'''

基类

'''

def save(self):

basedir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

file_path = os.path.join(os.path.join(os.path.join(basedir,"db"),self.form),self.name)

with open(file_path,"wb") as f:

pickle.dump(self,f)

@staticmethod

def gain_data(name):

basedir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

file_path = os.path.join(os.path.join(basedir,"db"),name)

# print(file_path)

res_list = []

for file in os.listdir(file_path):

filename = os.path.join(file_path,file)

res_list.append(pickle.load(open(filename,"rb")))

return res_list

class School(BasicObj):

'''

学校类

'''

def __init__(self,form,name,city):

self.form = form

self.name = name

self.city = city

self.create_time = time.strftime('%Y-%m-%d')

class Student(BasicObj):

'''

学生类

'''

def __init__(self,form,school,classes,name,psd):

self.form = form

self.school = school

self.classes = classes

self.name = name

self.psd = psd

self.create_time = time.strftime('%Y-%m-%d')

class Teacher(BasicObj):

'''

老师类

'''

def __init__(self,form,name,level):

self.form = form

self.name = name

self.level = level

self.create_time = time.strftime('%Y-%m-%d')

class Course(BasicObj):

'''

课程类

'''

def __init__(self,form,name,price,period,school):

self.form = form

self.name = name

self.price = price

self.period = period

self.school = school

self.create_time = time.strftime('%Y-%m-%d')

class Classes(BasicObj):

'''

班级类

'''

def __init__(self,form,school,teacher,course,name):

self.form = form

self.school = school

self.teacher = teacher

self.course = course

self.name = name

class Admin(BasicObj):

'''

管理员类

'''

def __init__(self,form,name,psd):

self.form = form

self.name = name

self.psd = psd

self.create_time = time.strftime('%Y-%m-%d')

@staticmethod

def login():

'''

管理员登陆系统

:return: 登陆成功返回True,否则返回False

'''

sign = False

ad_name = input("请输入您的用户名>>>").strip()

ad_psd = input("请输入密码>>>").strip()

admin_dic = {}

for obj in BasicObj.gain_data("admin"):

admin_dic[obj.name] = obj.psd

if admin_dic.get(ad_name) == ad_psd:

printer("登陆成功","info")

sign = True

else:

printer("用户名或密码错误","error")

return sign

class StudentScore(BasicObj):

'''

学生分数类

'''

def __init__(self,form,name,score):

self.form = form

self.name = name

self.score = score

class StudentCharge(BasicObj):

'''

学生缴费类

'''

def __init__(self,form,name,charge):

self.form = form

self.name = name

self.charge = charge

4、src文件下管理员逻辑函数admin.py:

import os,sys

frame = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))),"lib")

sys.path.append(frame)

from common import printer

from main import BasicObj,Admin,Teacher,Course,Classes

def exist_parse(data,list):

'''

对用户数的data是否存在于实例文件进行判断函数

:param data: 用户输入的数据

:param list: 用户输入的数据类型对应的实例对象列表

:return: 信号

'''

sign = True

begin_list = []

for obj in list:

begin_list.append(obj.name)

if data not in begin_list:

printer("您输入的[%s]不存在"%data,"a")

sign = False

return sign

def exist_school(data,list):

'''

对用户选择的校区是否存在进行判断的函数

:param data: 用户输入的校区

:param list: 校区实例对象列表

:return: 信号

'''

sign = True

begin_list = []

for obj in list:

begin_list.append(obj.city)

if data not in begin_list:

printer("您输入的[%s]不存在"%data,"a")

sign = False

return sign

def exist(data,list):

'''

对用户输入的数据是否存在实例对象进行判断的函数

:param data: 用户输入的数据

:param list: 实例对象列表

:return: 信号

'''

begin_list = []

sign = True

for obj in list:

begin_list.append(obj.name)

if data in begin_list:

printer("[%s]已存在"%data,"error")

sign =False

return sign

def creat_teacher():

'''

创建老师实例对象函数

:return: none

'''

teacher_list = BasicObj.gain_data("teacher")

while True:

printer("创建老师信息","info")

name = input("请输入您创建的老师的名字>>>")

sign = exist(name,teacher_list)

if sign:

level = input("请输入您创建的老师的等级>>>")

teacher0 = Teacher("teacher",name,level)

teacher0.save()

data = "姓名[%s]-等级[%s]"%(name,level)

printer(data,"info")

break

else:

continue

def view_teacher():

'''

查看老师信息的函数

:return: none

'''

teacher_list = BasicObj.gain_data("teacher")

printer("----------老师信息----------","info")

for obj in teacher_list:

teacher_info = "姓名[%s]-等级[%s]-注册时间[%s]"%(obj.name,obj.level,obj.create_time)

printer(teacher_info,"info")

def creat_class():

'''

创建班级函数

:return: none

'''

class_list = BasicObj.gain_data("classes")

teacher_list = BasicObj.gain_data("teacher")

school_list = BasicObj.gain_data("school")

course_list = BasicObj.gain_data("course")

while True:

printer("创建班级信息", "info")

school_data()

school = input("请选择校区>>>")

sign0 = exist_school(school,school_list)

if sign0:

teacher_data()

teacher = input("请选择授课老师>>>")

sign1 = exist_parse(teacher,teacher_list)

if sign1:

course_data()

course = input("请选择班级课程>>>")

sign2 = exist_parse(course,course_list)

if sign2:

name = input("请输入您创建的班级名称>>>")

class0 = Classes("classes",school,teacher,course,name)

sign3 = exist(name,class_list)

if sign3:

class0.save()

data = "校区[%s]-老师[%s]-课程[%s]-班级[%s]" % (school,teacher,course,name)

printer(data, "info")

break

def view_class():

'''

查看班级信息函数

:return: none

'''

class_list = BasicObj.gain_data("classes")

if len(class_list) != 0:

printer("----------班级信息----------", "info")

for obj in class_list:

class_info = "校区[%s]-老师[%s]-课程[%s]-班级[%s]"%(obj.school,obj.teacher,obj.course,obj.name)

printer(class_info,"info")

else:

printer("暂无班级信息","a")

def creat_course():

'''

创建课程函数

:return: none

'''

course_list = BasicObj.gain_data("course")

school_list = BasicObj.gain_data("school")

while True:

printer("创建课程信息", "info")

school_data()

school= input("请选择校区>>>")

sign0 = exist_school(school,school_list)

if sign0:

name = input("请输入您创建的课程的名字>>>")

sign1 = exist(name,course_list)

if sign1:

price = input("请输入您创建的课程的价格>>>")

period = input("请输入您创建的课程的周期>>>")

course0 = Course("course",name,price,period,school)

course0.save()

data = "姓名[%s]-价格[%s]-周期[%s]" % (name,price,period)

printer(data, "info")

break

def view_course():

'''

查看课程函数

:return: none

'''

course_list = BasicObj.gain_data("course")

printer("----------课程信息----------", "info")

for obj in course_list:

course_info = "课程名[%s]-价格[%s]-周期[%s]-校区[%s]"%(obj.name,obj.price,obj.period,obj.school)

printer(course_info,"info")

def show_msg():

'''

打印管理员功能选择以及处理输入端哦选择

:return: none

'''

tag = False

while not tag:

choice = {"2": creat_teacher, "1": view_teacher,"4": creat_class, "3": view_class,"6": creat_course, "5": view_course}

msg = '''----------管理员系统----------

1、查看老师

2、创建老师

3、查看班级

4、创建班级

5、查看课程

6、创建课程

'''

printer(msg, "info")

choose = input("请输入您选择>>>").strip()

if choose.isdigit() and 0 < int(choose) <= len(choice):

choice[choose]()

else:

printer("您输入的选择有误","error")

def admin_serve():

'''

管理员系统主函数

:return: none

'''

sign = Admin.login()

if sign:

show_msg()

def school_data():

'''

打印学校实例对象信息

:return: none

'''

school_list = BasicObj.gain_data("school")

for obj in school_list:

printer("学校[oldboy]-校区[%s]"%obj.city,"msg")

def classes_data():

'''

打印班级实例对象信息

:return: none

'''

class_list = BasicObj.gain_data("classes")

for obj in class_list:

printer("可选班级:%s"%(obj.name),"msg")

def teacher_data():

'''

打印老师实例对象信息

:return: none

'''

teacher_list = BasicObj.gain_data("teacher")

for obj in teacher_list:

printer("老师[%s]-等级[%s]"%(obj.name,obj.level),"msg")

def course_data():

'''

打印课程实例对象信息

:return: none

'''

course_list = BasicObj.gain_data("course")

for obj in course_list:

printer("课程名[%s]-价格[%s]-周期[%s]-校区[%s]"%(obj.name,obj.price,obj.period,obj.school),"msg")

func.py 逻辑主函数:

import os,sys

frame = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))),"lib")

sys.path.append(frame)

from common import printer

from admin import admin_serve

from teacher import teacher_serve

from student import student_serve

from main import BasicObj,Admin

def initialize():

'''

管理员初始化函数

:return: none

'''

admin_list = BasicObj.gain_data("admin")

list_name = []

for obj in admin_list:

list_name.append(obj.name)

admin_name = input("请输入用户名>>>").strip()

if admin_name in list_name:

printer("您输入的用户名已存在","error")

else:

psd = input("请输入密码>>>").strip()

admin0 = Admin("admin",admin_name,psd)

printer("管理员创建成功","info")

admin0.save()

def sys_func():

'''

程序的逻辑判断主函数

:return:

'''

choice = {"1":admin_serve,"2":teacher_serve,"3":student_serve,"4":initialize}

msg = '''----------欢迎光临选课系统----------

1、管理员登陆

2、老师登陆

3、学生登陆

4、管理员初始化

'''

while True:

printer(msg,"info")

choose = input("请输入您选择>>>").strip()

if choose.isdigit() and 0 < int(choose) <= len(choice):

choice[choose]()

else:

printer("您输入的选择有误","error")

# sys_func()

student.py 学生系统逻辑函数:

import os,sys,time

frame = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))),"lib")

sys.path.append(frame)

from common import printer

from main import Student,BasicObj,StudentScore,StudentCharge

from admin import exist_parse,exist_school,school_data,teacher_data,course_data,classes_data

def fuck(name):

'''

对学生是否缴费进行判断的函数

:param name: 学生名字

:return: none

'''

tag = False

charge_list = BasicObj.gain_data("charge")

for obj in charge_list:

if obj.name == name :

if int(obj.charge) != 0:

tag = True

return tag

def goto_class():

'''

学生上课函数

:return: none

'''

choose = input("是否开始上课(Y/N)>>>").strip()

if choose == "y":

info = '''您正在上课中。。。。。

1、上厕所

2、结束上课

'''

while True:

printer(info,"info")

what = input("你要干嘛>>>").strip()

if what == "1":

printer("上完记得冲厕所","msg")

elif what == "2":break

def student_msg(student):

'''

学生信息以及缴费函数

:param student: 学生名字

:return: none

'''

student_list = BasicObj.gain_data("student")

class_list = BasicObj.gain_data("classes")

course_list = BasicObj.gain_data("course")

for obj1 in student_list:

if obj1.name == student:

classes_info = obj1.classes

for obj2 in class_list:

if obj2.name == classes_info:

course_info = obj2.course

for obj3 in course_list:

if obj3.name == course_info:

printer("您的班级信息", "info")

printer("校区[%s]-老师[%s]-课程[%s]" % (obj2.school, obj2.teacher, obj2.course), "info")

printer("您的课程信息","info")

printer("名称[%s]-价格[%s]-周期[%s]"%(obj3.name,obj3.price,obj3.period),"info")

sign = fuck(student)

if not sign:

choose = input("您还未缴纳费用,请选项是否缴费(Y/N)>>>").strip()

if choose == "y":

price = input("请输入您要缴纳的费用>>>")

if int(price) == int(obj3.price):

printer("缴费成功","info")

charge0 = StudentCharge("charge",student,obj3.price)

charge0.save()

goto_class()

elif int(price) < int(obj3.price):

printer("你输入的费用不够,缴费失败","error")

elif int(price) > int(obj3.price):

left_money = int(price) - int(obj3.price)

printer("缴费成功,您缴纳了%s,还剩下%s"%(obj3.price,left_money),"info")

charge0 = StudentCharge("charge", student, obj3.price)

charge0.save()

goto_class()

else:

printer("缴费失败", "error")

else:

printer("您已缴费,可以开始上课","info")

goto_class()

def student_regist(student):

'''

学生登录注册函数

:param student: 学生名字

:return: none

'''

school_list = BasicObj.gain_data("school")

class_list = BasicObj.gain_data("classes")

while True:

name = input("请输入您的名字>>>").strip()

school_data()

school = input("请选择您入学的校区>>>").strip()

if exist_school(school,school_list):

classes_data()

classes = input("请输入您要入学的班级>>>").strip()

if exist_parse(classes,class_list):

psd = input("请输入您的密码>>>").strip()

student0 = Student("student",school,classes,name,psd)

student0.save()

charge = 0

charge0 = StudentCharge("charge",name,charge)

charge0.save()

score = 0

student_score0 = StudentScore("score",name,score)

student_score0.save()

data = "校区[%s]-班级[%s]-姓名[%s]" % (school,classes,name)

printer("注册成功","error")

printer(data,"info")

student_msg(student)

break

def student_serve():

'''

学生系统主函数

:return: none

'''

student_dic = {}

student_list = BasicObj.gain_data("student")

for obj in student_list:

student_dic[obj.name] = obj.psd

student = input("请输入您的姓名>>>").strip()

psd = input("请输入密码>>>").strip()

if student_dic.get(student) == psd:

student_msg(student)

else:

printer("您尚未注册,请先注册","a")

student_regist(student)

teacher.py 老师系统逻辑函数:

import os,sys,pickle

frame = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))),"lib")

sys.path.append(frame)

from common import printer

from main import Teacher,BasicObj,StudentScore

from admin import exist_parse,school_data,teacher_data,course_data

def check_info(data,list):

'''

老师信息在班级的处理函数

:param data: 老师的名字

:param list: 班级对象实例列表

:return: 老师的班级列表

'''

res = []

for obj in list:

if obj.teacher == data:

res.append(obj)

return res

def class_manage(teacher):

'''

班级管理函数

:param teacher: 老师的名字

:return: 信号和老师班级列表

'''

sign = False

class_list = BasicObj.gain_data("classes")

res = check_info(teacher,class_list)

printer("班级信息","info")

if len(res) != 0:

for i in res:

printer("校区[%s]-老师[%s]-课程[%s]-班名[%s]"%(i.school,i.teacher,i.course,i.name),"info")

sign = True

else:

printer("您还没有自己的班级,请先创建班级","error")

sign = False

return sign,res

def attend_class(teacher):

'''

老师选择上课班级的函数

:param teacher:老师名字

:return: none

'''

sign,res = class_manage(teacher)

class_name = []

if sign :

while True:

choose = input("请输入您要选择上课的班级名>>>").strip()

for i in res:

class_name.append(i.name)

if choose in class_name:

printer("选择上课班级成功","info")

break

else:

printer("您输入的班级不存在","error")

def view_student(teacher):

'''

查看班级学生的函数

:param teacher: 老师名字

:return: none

'''

class_list = BasicObj.gain_data("classes")

course_list = BasicObj.gain_data("course")

student_list = BasicObj.gain_data("student")

for obj1 in class_list:

if obj1.teacher == teacher:

class_name = obj1.name

for obj2 in student_list:

if obj2.classes == class_name:

printer("%s学生:%s"%(obj2.classes,obj2.name),"info")

def modify_score(teacher):

'''

修改学生成绩的函数

:param teacher: 老师名字

:return: none

'''

class_list = BasicObj.gain_data("classes")

student_list = BasicObj.gain_data("student")

score_list = BasicObj.gain_data("score")

stu_list = []

for obj1 in class_list:

if obj1.teacher == teacher:

class_name = obj1.name

for obj2 in student_list:

if obj2.classes == class_name:

stu_list.append(obj2.name)

for obj3 in score_list:

if obj3.name in stu_list:

printer("学生%s:%s分"%(obj3.name,obj3.score),"info")

# for i in stu_list:

# printer("学生%s:0分"%i,"info")

st = input("请输入您要更改的学生的分数>>>")

if st in stu_list:

sc = input("请输入您修改的成绩(0-100)>>>>")

if sc.isdigit and 0 <= int(sc) <= 100:

st_score = StudentScore("score",st,int(sc))

st_score.save()

printer("修改成功","info")

else:

printer("您输入的分数错误","error")

else:

printer("您输入的学生不存在","error")

def teacher_msg(teacher):

'''

老师系统功能函数选项

:param teacher: 老师名字

:return: none

'''

choice = {"2": attend_class, "1": class_manage, "4": modify_score, "3": view_student}

msg = '''----------老师系统----------

1、管理班级

2、选择班级

3、查看学生

4、修改成绩

5、返回

'''

tag = False

while not tag:

printer(msg, "info")

choose = input("请输入您的功能选项>>>").strip()

if choose.isdigit() and 0 < int(choose) <= len(choice):

choice[choose](teacher)

elif choose == "5":

tag = True

else:

printer("您输入的选择有误", "error")

def teacher_serve():

'''

老师系统主函数

:return: none

'''

teacher_list = BasicObj.gain_data("teacher")

teacher_data()

teacher = input("请输入您的姓名>>>").strip()

sign = exist_parse(teacher,teacher_list)

if sign:

teacher_msg(teacher)

六、界面显示

python最简单选课系统作业_python之路——作业:学生选课系统相关推荐

  1. python做简单温度转华氏_python温度转换华氏温度实现代码

    相信有些小伙伴,在没接触py之前,肯定都是有所准备的,想学语言由来已久,拿小编来说,一直趁着空挡就开始找课程学习,用记下学习历程,还会向一些大佬提出有疑问的点.这样一来我能获取问题答案,也能听到其他人 ...

  2. C语言期末大作业15个(附源码)成绩管理系统、图书馆管理系统、学生打卡系统、超市信息管理系统、学生考勤系统、职工信息管理系统源码、歌曲信息管理系统、超市收款系统等等

    C语言期末作业15个(上) 1.C语言学生成绩管理系统 2.C语言图书馆管理系统(复杂版) 3.C语言图书馆管理系统(简洁版) 4.C语言停车管理系统(两个版本) 5.C语言学生考勤系统 6.C语言班 ...

  3. java学生考勤系统实验报告,程序设计实验报告学生考勤系统).doc

    程序设计实验报告学生考勤系统) C语言程序设计 课程报告 所在学院计算机科学学院所在班级计算机科学与技术1班 小组成员XX(组长) XXX(副组长) XXX(组员) XXX(组员) 指导老师XXX X ...

  4. python编写学生选课系统程序_python面向对象编程小程序- 选课系统

    选课系统 花了一晚上写的,可能还存在不足 1.程序框架 2.文件夹建立D:/选课系统 |___api | |___common_api.py |___bil | |___common.py |___c ...

  5. [ASP.NET网站开发] web程序设计,期末作业,问卷填写与学生选课管理系统(超简单,容易懂!课程考核必过)(使用内置数据库)

    因为自己过了这门课,所以分享下自己的期末考核作业(页面较简陋但还好,因为时间有亿点小赶,基本功能可以过老师的要求)用到的软件是visual studio 2022,操作数据库的工具是LINQ to S ...

  6. python学生选课_Python开发Day07(学生选课)

    #!/usr/bin/python#-*- coding: utf-8 -*- __author__ = 'WuYongQi' importpickle,time,os,sys,randomclass ...

  7. python实现简单计算器功能键介绍_Python实现的简单计算器功能详解

    本文实例讲述了Python实现的简单计算器功能.分享给大家供大家参考,具体如下: 使用python编写一款简易的计算器 计算器效果图 首先搭建计算器的面板: 计算器面板结构 建造一个继承于wx.Fra ...

  8. 原python最简单的图形编程_Python(简单图形和文件处理)编程

    Python确实是一门很简洁而且功能有强大的语言,我觉得开始学习很容易理解,说到熟练和精通还是不容易的,还需不断学习. 从最基础的语法学习,有些部分各种语言是相同的,让人很好理解.编程也是从最简单语法 ...

  9. python实现简单爬虫百度首页_python实现简单爬虫功能的示例

    在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材. 我们最常规的做法就是通过鼠标右键,选择另存为.但有些图片鼠标右键的 ...

最新文章

  1. linux log4j 空文件,log4j在linux上不生成日誌文件
  2. (转载)你好,C++(17)0.1*10不等于1.0——4.1.4 关系操作符4.1.5 逻辑操作符
  3. python数据分析工资_python3对拉勾数据进行可视化分析的方法详解
  4. 安卓app 获取view的id_隐私保护问题不小 研究表示1325个安卓APP未经授权获取用户数据...
  5. 记一次企业级爬虫系统升级改造(一)
  6. svr公式推导_支持向量回归(SVR)的详细介绍以及推导算法
  7. 搭建webpack基础配置
  8. Linux三剑客之grep 与 egrep
  9. 云端上的字节,引擎火力全开
  10. python堆模块_python内置堆模块
  11. c语言基础程序设计报告,c语言程序设计基础课程设计报告.doc
  12. 【Vue2.0】—过滤器(七)
  13. Spring Boot 框架介绍和使用
  14. Mac下Vmware Fusion配置虚拟机虚拟网卡并配置CENTOS上网
  15. 如何配置mysql_怎样配置MySQL
  16. java中类初始化_java中类和对象的初始化
  17. arcgis字段计算器python最大余数法计算面积百分比
  18. 拷机软件 从软件测试中得知自己机器的性能
  19. Ubuntu 16.04 解决WPS for Linux提示“系统缺失字体symbol、wingdings、wingdings 2、wingdings 3、webding”的问题
  20. linux后门rootkit程序介绍

热门文章

  1. SQL:我为什么慢你心里没数吗?
  2. 阿里文娱技术专家战獒: 领域驱动设计详解之What, Why, How?
  3. 积木报表对比帆软报表有什么区别?
  4. 运行时异常与一般异常有何异同?
  5. 深入掌握JMS(五):实战Topic
  6. 利用Xcode在Mac写第一个C++ project
  7. Linux多线程实践(4) --线程特定数据
  8. 苏宁MOCK测试桩服务建设实践
  9. 2016 ICPC 北京
  10. 开源日志库Logger的使用秘籍