python#父与子的编程之旅#第十四章
1. 为BankAccount 建立一个类定义。它应该有一些属性,包括账户名(一个字
符串)、账号(一个字符串或整数)和余额(一个浮点数),另外还要有一些
方法显示余额、存钱和取钱。
class BankAccount:
def __init__(self,account,account_id,account_balance):
self.account = account
self.account_id = account_id
self.account_balance =account_balance def getBalance(self):#显示余额
balance = self.account_balance
return balance
print("余额为",balance) def saveMoney(self,money):#显示存钱
self.account_balance = self.account_balance + money
print("存入",money)
print("现在账户余额",self.account_balance) def withDraw(self,getmoney):
surplus = self.account_balance - getmoney
if getmoney>self.account_balance:
print("余额不足")
else:
print("你已取出:",getmoney,"元")
print("您的",self.account_id,"账户剩余:",surplus)
self.account_balance =surplus #如果未对self.account_balance赋上修改取出后的值,则可能导致上次扣除后余额不更新
#可以取消赋值
#else:
# self.account_balance = self.account_balance -getmoey
# print("你已取出",getmoney,"元")
# print("您的",self.account_id,"账户剩余",self.account_balance) """看过一些文章说的是把初始的账户余额定为0的,而我这个设置为参数,输入余额""" a = BankAccount("叶","yescarf",18) a.saveMoney(100)
a.withDraw(150) a.withDraw(12)
2. 建立一个可以挣利息的类,名为InterestAccount。这应当是BankAccount
的一个子类(所以会继承BankAccount 的属性和方法)。InterestAccount
还应当有一个对应利息率的属性,另外有一个方法来增加利息。为了力求简
单,假设每年会调用一次addInterest() 方法计算利息并更新余额。
class BankAccount:
def __init__(self,account,account_id,account_balance):
self.account = account
self.account_id = account_id
self.account_balance =account_balance def getBalance(self):#显示余额
balance = self.account_balance
return balance
print("余额为",balance) def saveMoney(self,money):#显示存钱
self.account_balance = self.account_balance + money
print("存入",money)
print("现在账户余额",self.account_balance) def withDraw(self,getmoney):
surplus = self.account_balance - getmoney
if getmoney>self.account_balance:
print("余额不足")
else:
print("你已取出:",getmoney,"元")
print("您的",self.account_id,"账户剩余:",surplus)
self.account_balance =surplus #如果未对self.account_balance赋上修改取出后的值,则可能导致依旧按元先账户余额计算结果,导致错误 """a = BankAccount("叶","yescarf",18) a.saveMoney(100)
a.withDraw(150) a.withDraw(12)""" class InterestAccount(BankAccount):
def __init__(self,rate):
BankAccount.__init__(self,"weimiaomiao", 123456,0)#init继承
self.rate = rate def addInterest(self):
interest =self.account_balance *self.rate
surplus = interest+self.account_balance
print("利息为",interest)
print("结余余额为",surplus)
b= InterestAccount(0.2)
b.saveMoney(100)
b.saveMoney()
b.withDraw(20.5)
b.withDraw(50)
b.addInterest()
python#父与子的编程之旅#第十四章的更多相关文章
- Python 编程快速上手 第十四章 处理 CSV 文件和 JSON 数据
前言 这一章分为两个部分,处理 CSV 格式的数据和处理 JSON 格式个数据. 处理 CSV 理解 csv csv 的每一行代表了电子表格中的每一行,每个逗号分开两个单元格csv 的内容全部为文本, ...
- 《Linux命令行与shell脚本编程大全》 第十四章 学习笔记
第十四章:呈现数据 理解输入与输出 标准文件描述符 文件描述符 缩写 描述 0 STDIN 标准输入 1 STDOUT 标准输出 2 STDERR 标准错误 1.STDIN 代表标准输入.对于终端界面 ...
- 《Java并发编程实战》第十四章 构建自己定义的同步工具 读书笔记
一.状态依赖性的管理 有界缓存实现的基类 @ ThreadSafe public abstract class BaseBoundedBuffer<E> { @GuardeBy( &quo ...
- 《Java并发编程实战》第十四章 构建自己的同步工具定义 札记
一.状态依赖性的管理 有界缓存实现的基类 @ ThreadSafe public abstract class BaseBoundedBuffer<E> { @GuardeBy( &quo ...
- 《Linux命令行与shell脚本编程大全》第十四章 处理用户输入
有时还会需要脚本能够与使用者交互.bash shell提供了一些不同的方法来从用户处获得数据, 包括命令行参数,命令行选项,以及直接从键盘读取输入的能力. 14.1 命令行参数 就是添加在命令后的数据 ...
- java并发编程实战:第十四章----构建自定义的同步工具
一.状态依赖性管理 对于单线程程序,某个条件为假,那么这个条件将永远无法成真 在并发程序中,基于状态的条件可能会由于其他线程的操作而改变 可阻塞的状态依赖操作的结构 acquire lock on o ...
- 学习参考《父与子的编程之旅python【第二版】》高清中文版PDF+高清英文版PDF+源代码
对于初步接触编程语言的朋友,推荐看一看<父与子的编程之旅第2版>,对于完全编程零基础的很友好! 图文并茂,过多的文字堆垒很容易让人产生厌倦情绪,也更容易让人产生放弃的想法.使用了大量插图, ...
- 进击的Python【第十四章】:Web前端基础之Javascript
进击的Python[第十四章]:Web前端基础之Javascript 一.javascript是什么 JavaScript 是一种轻量级的编程语言. JavaScript 是可插入 HTML 页面的编 ...
- JAVA之旅(十四)——静态同步函数的锁是class对象,多线程的单例设计模式,死锁,线程中的通讯以及通讯所带来的安全隐患,等待唤醒机制
JAVA之旅(十四)--静态同步函数的锁是class对象,多线程的单例设计模式,死锁,线程中的通讯以及通讯所带来的安全隐患,等待唤醒机制 JAVA之旅,一路有你,加油! 一.静态同步函数的锁是clas ...
随机推荐
- upc组队赛12 Janitor Troubles【求最大四边形面积】
Janitor Troubles Problem Description While working a night shift at the university as a janitor, you ...
- vbox出现Failed to opencreate the internal network错误,无法启动虚拟机
vbox出现Failed to opencreate the internal network错误,无法启动虚拟机 标签(空格分隔): 未分类 问题 Failed to open/create the ...
- shell 跟踪命令
添加跟踪 set -x 去除跟踪 set +x
- WireMock提供Restful接口数据
1.去官网下载并启动: 2.引入Pom依赖(主要是com.github.tomakehurst:wiremock): <dependency> <groupId>com.git ...
- Mybatis中#{}与${}的使用
含义 #{}:为占位符 ${}:为拼接符 区别: 用法 #{}:为参数占位符?,即sql预编译 ${}为字符串替换, 即字符串拼接 执行流程 #{}:动态解析 --> 预编译 - ...
- mysql5.7 基于gtid的主从复制
基本环境 版本 5.7.14 主库ip:192.168.1.100 port:3306 从库ip:102.168.1.101 port:3306 搭建注意事项 主库配置 gtid-mode=on en ...
- CSS 是怎样确定图像大小的?
本文转自奇舞周刊学习使用侵权删 先来看个例子,热热身. 上面这张图像的原始尺寸是:宽 54px 高 49px. 那么,在以下代码中,每张图像显示的最终尺寸是多少? https://p1.ssl.qhi ...
- ORM与JPA规范
一.ORM框架 1.ORM简单介绍 对象关系映射,(Object Relational Mapping,简称ORM),是通过使用描述对象和数据库之间的映射的元数据,将面向对象语言程序中的对象自动持久化 ...
- vue 重定向
//重定向 { path: '/*', component: Home}
- loj2064[HAOI2016]找相同字符
题意:给你两个字符串,问其中各取一个子串,有多少对相同?n<=20W. 标程: #include<bits/stdc++.h> using namespace std; typede ...