python编程练习之三——堆栈和系统管理雏形
来源:互联网 发布:苹果电脑图片设计软件 编辑:程序博客网 时间:2024/05/24 16:17
1.通过面向对象的方式实现队列和栈的数据结构;
#!user/bin/env python#coding:utf-8"""file: stack_mangement.pydate: 2017-08-26 10:39 AMauthor: fangversion: 1.0desc:"""def main(): print "欢迎来到栈的管理".center(70,"*") stack = [] while 1: print""" {} push(U) : 入栈 pop(O) : 出栈 view(V) : 查看 quit(Q) : 退出 {} """.format("请选择操作".center(47, "="),"".center(40, "=")) judge=raw_input("请选择:") if judge.lower()=="u": num=raw_input("请输入入栈内容: ") stack.append(num) # stack[l]=num print ">>>>>入栈成功!!!" continue elif judge.lower()=="o": l = len(stack) if l==0: print ">>>>>栈为空" continue else: stack.pop() print ">>>>>出栈成功" continue elif judge.lower()=="v": l = len(stack) if l == 0: print ">>>>>栈为空" continue else: print """ {} {} {} """.format("stack".center(40, "-"), stack,"".center(40, "-")) continue elif judge.lower()=="q": print "谢谢使用,欢迎再来".center(70, "*") break else: print ">>>>>您的输入有误,请重新输入:"if __name__ == '__main__': main()
队列和堆栈的过程恰好相反,先入先出;上面的代码还可以将if语句用字典来写,要简单许多,在下面的代码中主函数用的就是字典,后面再更新吧
2.简单的计算器
#!user/bin/env python# coding:utf-8"""file: cal.pydate: 2017-08-30 9:26 AMauthor: fangversion: 1.0desc:"""from __future__ import divisiondef add(num1, num2): return num1 + num2def dec(num1, num2): return num1 - num2def mul(num1, num2): return num1 * num2def dev(num1, num2): return num1 / num2def main(): dic = { "+": add, "-": dec, "*": mul, "/": dev, } num1 = raw_input("num1:\t") op = raw_input("op :\t") num2 = raw_input("num2:\t") if op in dic.keys() and num1.isdigit() and num2.isdigit(): num1 = int(num1) num2 = int(num2) fun = dic[op] num = fun(num1, num2) print "{}{}{}={}".format(num1, op, num2, num) else: print "error"if __name__ == '__main__': main()
3.管理系统雏形
# 西游:学校,学员,讲师# 学校:# 属性:名称,地点,校训# 方法:招生,招聘讲师# 学员:# 属性:姓名, 年龄, 性别,班级,学号# 方法:学习,交钱,显示信息# 讲师# 属性:姓名, 年龄, 性别, 课程, 工资# 方法:讲课,显示信息# 学员保存在字典里,讲师保存在字典里
代码如下,略长,有很多冗余,有很多bug;开始写学生的注册的时候加了语句判断,觉得有点多余,我们就假设用户输入都是符合要求的,后面会继续完善
#!user/bin/env python# coding:utf-8"""file: managedate: 2017 - 09 - 03 8:40author: fangversion: 1.0desc:"""import timeimport sysdef all_user_input(str): while True: ur_input = raw_input(str) if ur_input == "": continue else: return ur_inputclass Teacher(object): def __init__(self, teacher_name, teacher_age, teacher_gender, teacher_course, teacher_pay): self.teacher_name = teacher_name self.teacher_age = teacher_age self.teacher_gender = teacher_gender self.teacher_course = teacher_course self.teacher_pay = teacher_pay def teaching(self): print "{}开始给学生们上课......".format(teacher1.teacher_name) time.sleep(3) print "下课了" def show_student_info(self): while True: show_student_name = raw_input("请输入要查询的学生姓名:") if show_student_name in stu_dict.values(): print stu1.student_show_info() break else: print "您输入的学生不存在,请重新输入:"class Student(object): def __init__(self, studnt_name, studnt_age, studnt_gender, studnt_class, studnt_id): self.studnt_name = studnt_name self.studnt_age = studnt_age self.studnt_gender = studnt_gender self.studnt_class = studnt_class self.studnt_id = studnt_id def student_pay(self): print "您的学费一共是%s,请确认无误后点击缴费" % ("18000") student_pay_choise = all_user_input("请选择(Y & N)") if student_pay_choise in "Yy": print "{}缴费中......".format(stu1.studnt_name) time.sleep(3) print "缴费完成" elif student_pay_choise in "Nn": print "未扣费" else: print "输入有误,请重新输入" def student_show_info(self): print """ ===============学生%s的信息=============== 姓名:\t%s 性别:\t%s 年龄:\t%s 班级:\t%s 学号:\t%s ========================================== """ % ( stu1.studnt_name, stu1.studnt_name, stu1.studnt_gender, stu1.studnt_age, stu1.studnt_class, stu1.studnt_id)class School(object): ##创建学校类 def __init__(self, school_name, school_addr, school_motto): self.school_name = school_name self.school_addr = school_addr self.school_motto = school_motto def recruit_students(self): global stu1 print "招生".center(50, "-") student_name = raw_input("请输入学生姓名:") student_age = raw_input("请输入学生年龄:") student_gender = raw_input("请输入学生性别:") student_class = raw_input("请输入学生班级:") student_number = raw_input("请输入学生学号:") stu1 = Student(student_name, student_age, student_gender, student_class, student_number) stu_dict["student_name"] = student_name print "招到学生%s" % (student_name) def new_teacher(self): global teacher1 global teacher_dict print "聘请教师".center(50, "-") teacher_name = raw_input("请输入讲师名字:") teacher_gender = raw_input("请输入讲师性别:") while True: teacher_age = raw_input("请输入年龄:") if teacher_age == "": continue elif teacher_age.isdigit(): stu_age = int(teacher_age) break else: print "年龄必须是数字,请重新输入" continue teacher_course = raw_input("请输入讲师对应课程:") teacher_classroom = raw_input("请输入讲师对应班级:") teacher1 = Teacher(teacher_name, teacher_age, teacher_gender, teacher_course, teacher_classroom) # 实例化讲师对象 teachers_dict["teacher_name"] = teacher_name # teacher_dict = {"teacher_name": teacher_name, "teacher_gender": teacher_gender, # "teacher_age": teacher_age, "teacher_course": teacher_course, # "teacher_classroom": teacher_classroom} # 用字典来存放讲师信息 print "已聘请教师%s" % (teacher_name) def show(self): print """ **************************** 校名 :\t%s 校址 :\t%s 校训 :\t%s **************************** """ % (school1.school_name, school1.school_addr, school1.school_motto)def main_function(): # 定义主功能菜单和用户输入 print""" ---------欢迎来到XXXX教务管理系统--------- ========================================= 请选择您的身份 校长( S ) 教师( T ) 学生( D ) 退出管理系统( Q ) =========================================== """ while True: user_input = raw_input("请选择:") if user_input == "": continue elif user_input in "STDQstdq": return user_input.lower() else: print "您的输入有误,请重新输入:"def school_function(): # 定义校长功能菜单和输入 school_login_name = all_user_input("请输入您的姓名以登陆(西游):") while school_login_name == "西游": print "》》》密码暂未设置,后续完善安全策略" print""" ---------欢迎来到XXXX教务管理系统--------- ========================================= 请选择您的操作 1.显示学校信息 2.招生 3.聘请教师 4.查看已聘请的教师 5.查看已招到的学生 6.返回 7.退出 =========================================== """ user_input = raw_input("请选择:") if user_input == "": continue elif user_input == "1": school1.show() elif user_input == "2": school1.recruit_students() elif user_input == "3": school1.new_teacher() elif user_input == "4": print teachers_dict elif user_input == "5": print stu_dict elif user_input == "6": break elif user_input == "7": sys.exit() else: print "您的输入有误,请重新输入:" else: print "您不是校长,没有权限"def student_function(): # 定义学生功能菜单和输入 while True: print""" ---------欢迎来到XXXX教务管理系统--------- ========================================= 请选择您的操作 1.欢迎注册 2.查看我的个人信息 3.缴费 4.返回 5.退出 =========================================== """ user_input = raw_input("请选择:") if user_input == "": continue elif user_input in "1": stu_regiest() # 调用学生注册方法并生成学生对象 elif user_input in "2": stu1.student_show_info() elif user_input == '3': while True: chose = all_user_input("--------1.注册----------2.登陆----------\n请选择:") if chose == "1": stu_regiest() stu1.student_pay() elif chose == "2": login = all_user_input("请输入姓名:") if login in stu_dict: stu1.student_pay() break else: print "请先注册" # break else: print "请重新输入" elif user_input == '4': break elif user_input == '5': sys.exit() else: print "您的输入有误,请重新输入:"def stu_regiest(): # 学生注册方法,生成学生对象 global stu1 # 定义学生变量为全局变量 while True: while True: stu_name = raw_input("请输入姓名:") if stu_name == "": continue elif stu_name in stu_dict: print "%s已经被注册,请确认后重新输入" % (stu_name) continue else: break while True: stu_sex = raw_input("请输入性别:") if stu_sex == "": continue else: break while True: stu_age = raw_input("请输入年龄:") if stu_age == "": continue elif stu_age.isdigit(): stu_age = int(stu_age) break else: print "年龄必须是数字,请重新输入" continue while True: stu_class = raw_input("请输入班级:") if stu_class == "": continue else: break while True: stu_id = raw_input("请输入学号:") if stu_id == "": continue else: break stu1 = Student(stu_name, stu_sex, stu_age, stu_class, stu_id) stu_dict[stu_name] = stu1 print "注册成功" stu1.student_show_info() breakdef teacher_function(): # 定义教师功能菜单和输入 teacher_login_input = all_user_input("请输入您的姓名以登陆:") while True: if teacher_login_input in teachers_dict.values(): print "》》》密码暂未设置,后续完善安全策略" print""" ---------欢迎来到XXXX教务管理系统--------- ========================================= 请选择您的操作 1.讲课 2.查看学员信息 3.返回 4.退出 =========================================== """ user_input = raw_input("请选择:") if user_input == "": continue elif user_input == "1": teacher1.teaching() elif user_input == "2": teacher1.show_student_info() elif user_input == '3': break elif user_input == '4': sys.exit() else: print "您的输入有误,请重新输入:" else: print "学校未聘请您或输入有误,请找校长谈谈" breakdef show_class_message(): passdef show_student_message(): passdef main(): main_dic = { "s": school_function, "t": teacher_function, "d": student_function, "q": sys.exit} while True: main_fun_op = main_function() main_fun = main_dic[main_fun_op] print main_fun()if __name__ == '__main__': teachers_dict = {} stu_dict = {} school1 = School("西游", "陕西", "好好学习,天天向上") stu1=Student("小李", "男", "16", "基础班", "01") stu_dict["stu_name"] = "小李" teacher1=Teacher("老李","18","男", "linux","基础班") teachers_dict["taecher_name"]="老李" main()
附几张测试图
阅读全文
0 0
- python编程练习之三——堆栈和系统管理雏形
- python 学习笔记之socket编程——简单的聊天器雏形(server端)
- Python学习笔记之socket编程——简单聊天器的雏形(client端)
- Linux学习笔记(三)—系统管理篇之…
- Python编程——Python基础知识之字典(三)
- python编程练习之二
- linux命令之三:系统管理
- Python编程练习——初级篇
- linux必学的命令系列之三——系统管理相关命令
- Linux 编程和系统管理新手入门
- 剑指offer之Python练习三
- 堆栈——Windows核心编程学习手札之十八
- Python练习之——肿瘤预测
- Python编程(三):Python之MVC
- GEEK编程练习— —三数求和
- python系统管理之supervisor进程管理
- 手机蓝牙应用——“蓝之牙”功能雏形
- 《编程珠玑》习题练习In Python——第一章 开篇
- 异步方式实现数据加载
- Python模块
- mysql将多个表的多个数据插入到同一张表
- 关于C# webservice的一些学习记录,供自己学习查阅.
- throw和throws的区别
- python编程练习之三——堆栈和系统管理雏形
- O(∩_∩)O暑假总结
- 请求网络解析json串
- 关于Quartz任务不准时执行问题
- LeetCode-Regular Expression Matching
- 隐私政策
- 数据类型 数据类型转换 运算符
- WOJ1106-String's Puzzle
- BST树转换为有序双向循环链表