2021-2022-1 20211306《信息安全专业导论》第八周学习总结
作业信息
|作业属于哪个课程|
https://edu.cnblogs.com/campus/besti/2021-2022-1fois
|作业要求链接|
https://www.cnblogs.com/rocedu/p/9577842.html#WEEK04
学习目标
- 功能设计与面向对象设计
- 面向对象设计过程
- 面向对象语言三要素
- 汇编、编译、解释、执行
教材内容总结
面向对象
在问题背景中中相关的事物或实体是对象。对象类/类是一组具有相似的属性和行为的对象的描述。类中包括域,域中可以包含数据值和/或方法(子程序)。
设计方法
头脑风暴是确定问题中的类的第一个阶段。
定义了类的一种行为的特定算法是方法。
自顶向下的设计方法重点在把输入转化为输出的过程,面向对象设计的重点在于要转换的数据对象。
方法过程:1.头脑风暴 2.过滤 3.场景 4.责任算法 5.总结
翻译过程
翻译用高级程序设计语言编写的程序的程序叫编译器(把用高级语言编写的程序翻译成机器码的程序)。
解释器是一种程序,用于翻译和执行语句序列。
汇编器与编译器只是输出机器码且机器码再单独执行。
程序设计语言范型
范型是“用作模式或模型的实体”和“一组假设、概念、值和实践,构成了共享它们的聚合体观察现实的方式。”
命令式模型给编程语言所用的绝大多数常用模型巨大影响。
逻辑编程基于数理逻辑的原则。
布尔表达式
一个标识符序列,标识符之间有相容的运算符分隔。
一个布尔变量,一个算术表达式加一个关系运算符再加一个算术表达式,一个布尔表达式加一个布尔运算符再加一个布尔表达式,都可以是布尔表达式。
代码运行
class Car(object): # 类体 pass car = Car() class Dog: def __init__(self, name, age): self.name = name #创建和初始化实例变量name self.age = age #创建和初始化实例变量age d = Dog('豆豆',3) print('我们家狗狗叫{0}, {1}岁了。'.format(d.name, d.age)) class Dog: def __init__(self, name, age, sex='雌性'): self.name = name self.age = age self.sex = sex def run(self): print("{}在跑...".format(self.name)) def speak(self, sound): print('{}在叫, “{}”!'.format(self.name, sound)) dog = Dog('豆豆', 3) dog.run() dog.speak('汪汪汪') class Account: interest_rate = 0.0668 def __int__(self, owner, amount): self.owner = owner self.amount = amount @classmethod def interest_by(cls, amt): return cls.interest_rate * amt interest = Account.interest_by(12000.0) print('计算利息:{0:.4f}'.format(interest)) class Account: __interest_rate = 0.0568 def __init__(self, owner, amount): self.owner = owner self.__amount = amount def desc(self): print("{0} 金额:{1} 利率:{2}。".format(self.owner, self.__amount, Account.__interest_rate)) account = Account('DWB', 800000.0) account.desc() print('账户名:{0}'.format(account.owner)) class Account: __interest_rate = 0.0568 def __init__(self, owner, amount): self.owner = owner self.__amount = amount def __get_info(self): return "{0} 金额:{1} 利率: {2}。".format(self.owner, self.__amount, Account.__interest_rate) def desc(self): print(self.__get_info()) account = Account('dwb', 800000.0) account.desc() class Dog: def __init__(self, name, age, sex='雌性'): self.name = name self.__age = age def run(self): print("{}在跑...".format(self.name)) def get_age(self): return self.__age def set_age(self, age): self.__age = age dog = Dog('豆豆', 2) print('狗狗年龄:{0}'.format(dog.get_age())) dog.set_age(3) print('修改后狗狗年龄:{0}'.format(dog.get_age())) class Animal: def __init__(self, name): self.name = name def show_info(self): return "动物的名字:{0}".format(self.name) def move(self): print("动一动...") class Cat(Animal): def __init__(self, name, age): super().__init__(name) self.age = age cat = Cat('tom', 2) cat.move() print(cat.show_info()) class Horse: def __init__(self, name): self.name = name def show_info(self): return("马的名字:{0}".format(self.name)) def run(self): print("马跑...") class Donkey: def __init__(self, name): self.name = name def show_info(self): return("驴的名字:{0}".format(self.name)) def run(self): print("驴跑...") def roll(self): print("驴打滚...") class Mule(Horse, Donkey): def __init__(self, name, age): super().__init__(name) self.age = age m = Mule('骡宝莉', 1) m.run() m.roll() print(m.show_info()) class Animal: def speak(self): print('动物叫,但不知道是哪种动物叫!') class Dog(Animal): def speak(self): print('小狗:旺旺叫...') class Cat(Animal): def speak(self): print('小猫:喵喵叫...') an1 = Dog() an2= Cat() an1.speak() an2.speak() i = input('请输入数字:') n = 8888 try: result = n / int(i) print(result) print('{0}除以{1}等于{2}'.format(n, i, result)) except (ZeroDivisionError,ValueError) as e: print("异常:{}".format(e)) class ZhijieketangException(Exception): def __init__ (self, message): super().__init__(message) i = input('请输入数字:') n = 8888 try: result = n / int(i) print(result) print('{0}除以{1}等于{2}".format(n, i, result)) except ZeroDivisionError as e: raise ZhijieketangException('不能除以0') except ValueError as e: raise ZhijieketangException("输入的是无效数字")
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 150/150 | 2/2 | 20/20 | |
第二周 | 150/300 | 2/4 | 20/40 | |
...... | ...... | ...... | ||
第八周 | 350/1400 | 2/18 | 20/160 |