python programming作业5

# -*- coding: utf-8 -*-
class ageError(Exception):
pass
class salaryError(Exception):
pass class staff:
def __init__(self,ID,name,age,salary):
self.ID = ID
self.name = name
self.age = age
self.salary = salary def change(self,num,value):
if num == 0:
self.ID = value
elif num == 1:
self.name = value
elif num == 2:
self.age = value
elif num == 3:
self.salary = value def __str__(self):
describe = "ID为"+str(self.ID)+"的职员"+str(self.name)+",年龄为"+str(self.age)+",薪水每月"+str(self.salary)+"$"
return describe def check(self):
is_ok = True
try:
self.ID = int(self.ID)
except ValueError:
is_ok = False
print("错误!输入的ID不是整数!")
try:
self.age = int(self.age)
if self.age <0 or self.age >100:
raise ageError
except ValueError:
is_ok = False
print("错误!输入的年龄不是整数!")
except ageError:
is_ok = False
print("错误!输入的年龄不合法!")
try:
self.salary = float(self.salary)
if self.salary <0:
raise salaryError
except ValueError:
is_ok = False
print("错误!输入的薪水不是一个数!")
except salaryError:
is_ok = False
print("错误!输入的薪水不合法!")
return is_ok cys = staff(1,'蔡军帅',18,0)
cys.change(3,88888888)
if cys.check():
print(cys.__str__()) allStaff=[]
allStaff.append(cys)
repeat = False
while True:
if repeat:
ID,name,age,salary = input("请重新输入职员信息,ID为0表示录入结束\n").split()
else:
ID,name,age,salary = input("请输入职员信息,ID为0表示录入结束\n").split()
if ID == '':
print("录入结束")
break
new_person = staff(ID,name,age,salary)
if new_person.check():
print("正确,正在录入信息......")
print("录入成功!")
print(new_person.__str__())
allStaff.append(new_person)
repeat = False
else:
repeat = True print("所有职工信息如下:")
for person in allStaff:
print(person.__str__())

python programming作业5的更多相关文章
- python programming作业10(仍有一点点小bug)
# -*- coding: utf-8 -*- import os import platform import sys from PyQt5.QtCore import * from PyQt5.Q ...
- python programming作业11 Qt designer (打地鼠,不是很完美)
不导包的代码 from PyQt5 import QtCore, QtGui, QtWidgets import sys from PyQt5.QtWidgets import QApplicati ...
- 开始 python programming第三版案例分析
最近研究python,打算将python programming第三版案例分析下 但是全书1600多页 比较费时 而且 介绍太多 感觉没有必要! python programming 堪称经典之作 第 ...
- Python——plot可视化数据,作业8(python programming)
subject1k和subject1v的形状相同 # -*- coding: utf-8 -*- import scipy.io as sio raw_K = sio.loadmat('Subject ...
- Python——python读取html实战,作业7(python programming)
查看源码,观察html结构 # -*- coding: utf-8 -*- from lxml.html import parse from urllib.request import urlopen ...
- Python——python读取xml实战,作业6(python programming)
cd_catalog.xml <?xml version="1.0" encoding="ISO-8859-1"?> <!-- Edited ...
- Python——作业12(选做)选中矩阵的每行或每列画出对应的折线图(python programming)
import os import platform import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5 ...
- Python——GUI编程 利息计算器 作业9(python programming)
import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * class ...
- python综合作业要求
要求: 1.课程成绩数据(学号尾数为0,1同学完成) 至少要完成内容:分析每年不同班级平均成绩情况.不同年份总体平均成绩情况.不同性别学生成绩情况,并用一定图表展示. 2.集美大学各省录取分数数据(学 ...
随机推荐
- SQL经常使用的一些词
sp_helptext: 例:exec sp_helptext proc_name(查看存储过程的定义) sp_rename: 例:exec sp_rename 'proc_name1','proc_ ...
- Kafka设计解析:Kafka High Availability
Kafka在0.8以前的版本中,并不提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partition都无法继续提供服务.若该Broker永远不能再恢复,亦 ...
- PS学习之餐饮行业修图
素材 红烧肉 生菜 洋葱 目标效果 开始操作: 首先打开PS,将红烧肉素材放入 将红烧肉单另扣下来(用快随选择工具 按住Alt键是减选 抠图时 将画布放大 细细的扣) 然后创建一个和当前选区大小 ...
- Easyui datagrid 去掉表头的checkbox复选框
$(".datagrid-header-check").html(""); 在onLoadSuccess中加入此行代码即可实现datagrid去除表头的chec ...
- 企业库实现AOP的几种方法
1.创建新对象时,分继承基类和继承接口 TargetClass theTarget = PolicyInjection.Create<TargetClass>(parameter1, pa ...
- MQ介绍 & 实例
阅读目录 定义 优秀MQ特点 产品比较 实例(简单的实战) 关于消息队列与分布式的那些事 定义: 消息队列(MQ)是一种应用程序对应用程序的通信方法,应用程序通过队列进行通信,而不是通过直接调用彼此来 ...
- Ts基础
//typeof 用来判断变量类型 var s: string = 'egret'; var isString: boolean = typeof s === 'string'; console.lo ...
- ES5新增数组方法
forEach/map every/some indexOf/lastIndexOf filter reduce Array.isArray
- Web API统一异常处理 【转载】
前面讲了webapi的安全验证和参数安全,不清楚的朋友,可以看看前面的文章,<Web API系列(二)接口安全和参数校验>,本文主要介绍Web API异常结果的处理.作为内部或者是对外提供 ...
- trac
F:\Python27>python F:\portabletrac\ez_setup.pyDownloading https://pypi.io/packages/source/s/setup ...