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组队赛3 Iranian ChamPions Cup
Iranian ChamPions Cup 题目描述 The Iranian ChamPions Cup (ICPC), the most prestigious football league in ...
- spark复习总结03
1.DataFrame的创建方式 1.1 通过加载外部文件创建 //通过sqlContext读取json文件创建DataFrame DataFrame dataFrame=sqlContext.rea ...
- linux终端命令行缩短显示路径
1,修改.bashrc文件(用户根目录下) vim 打开.bashrc文件,找到如下这行: else PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ...
- 灯泡编程题-java
现在有100个灯泡,每个灯泡都是关着的,灯泡排序为1~100,接着将2的倍数的灯泡开关按一下,然后将3的倍数的灯泡开关按一下……直到将N的倍数的灯泡开关按一下,最后统计灯泡亮着的数目. 算法思路: 1 ...
- 认识和学习BASH alias 给长命令起别名 unalias 取消该别名
此图反映了shell所在的位置与作用. 既然Shell与KDE和application等都是用户与Kernel的接口,那为什么还要学习呢?书中也给出了答案. 通用性,可以这样理解,也就是所谓的跨平台机 ...
- C#开发activex
https://www.cnblogs.com/bobshieh/p/5746844.html
- Java中的LinkedHashSet
- WPF ListBox 横向排列
WPF ListBox 横向排列 如果只是单纯的让ListBox可以横向配列,这样很简单,只需要更改ListBox的ItemsPanel模板就可以,例如: <ListBox><L ...
- 「CTS2019 | CTSC2019」随机立方体 解题报告
「CTS2019 | CTSC2019」随机立方体 据说这是签到题,但是我计数学的实在有点差,这里认真说一说. 我们先考虑一些事实 如果我们在位置\((x_0,y_0,z_0)\)钦定了一个极大数\( ...
- 状态压缩dp增量统计贡献——cf1238E(好题)
这题的状态设计非常巧妙,因为dp[S]表示的并非当前正确的值,而是维护一个中间量,这个中间量在到达末状态时才正确 当然官方的题解其实更加直观,只不过理解起来其实有点困难 /* 给定一个串s,字符集为2 ...