Python基础入门-实现计算器多种姿势
在Python中,虽然定义一个函数只需要def关键字,但是他能实现多种功能和用途,比如今天我们讲解的这几种方式。如何使用函数实现一个计算器的功能呢?当然,实现计算器的方式有很多种,我们举几个比较典型的例子,借助函数来实现就比较容易。我们使用三种方式实现加法计算器的应用:
1.IF嵌套语句 2.def函数实现 3.面向对象的实现方式
先来看第一种:(通过if嵌套语句实现一个计算器功能,我一直觉得这种写法写起来是比较简洁,规范,明朗的)首先,先使用函数定义加、减、乘、除这四种计算方法。
def add(a,b):
return a+b
def sub(c,d):
return c-d
def multi(e,f):
return e-f
def divide(g,h):
return g / h
第二步:选择一下我们想要计算的方法:是加法还是减法还是乘法还是除法?
print "请选择你要进行的运算: + - * /"
print "A.加法"
print "B.减法"
print "C.乘法"
print "D.除法"
第三步:输入数字作为函数的入参,为后面IF语句实现加减乘除运算。
choice = input("请输入A/B/C/D:")
letter1 = int(input("请输入第一个数字:"))
letter2 = int(input("请输入第二个数字:"))
第四步:使用IF语句实现函数的调用以及入参,实现计算器功能。
if choice == "A":
print letter1,'+',letter2,'=',add(letter1,letter2)
elif choice == "B":
print letter1,'-',letter2,'=',sub(letter1,letter2)
elif choice == "C":
print letter1,'*',letter2,'=',multi(letter1,letter2)
elif choice == "D":
print letter1,"/",letter2,'=',divide(letter1,letter2)
else:
print '没有此选项'
完整代码如下:
def add(a,b):
return a+b
def sub(c,d):
return c-d
def multi(e,f):
return e-f
def divide(g,h):
return g / h print "请选择你要进行的运算: + - * /"
print "A.加法"
print "B.减法"
print "C.乘法"
print "D.除法" choice = input("请输入A/B/C/D:")
letter1 = int(input("请输入第一个数字:"))
letter2 = int(input("请输入第二个数字:")) if choice == "A":
print letter1,'+',letter2,'=',add(letter1,letter2)
elif choice == "B":
print letter1,'-',letter2,'=',sub(letter1,letter2)
elif choice == "C":
print letter1,'*',letter2,'=',multi(letter1,letter2)
elif choice == "D":
print letter1,"/",letter2,'=',divide(letter1,letter2)
else:
print '没有此选项'
第二种实现方式,使用函数实现,我们在看下面的实现方式:
1先定义加减乘除四个方法
def add(a,b):
return a+b
def sub(c,d):
return c-d
def multi(e,f):
return e-f
def divide(g,h):
return g / h
2.函数一步实现计算器功能
def cacultor():
option = input("请选择:1+,2-,3*,4/")
num1 = input('请输入第一个数字:')
num2 = input('请输入第二个数字:')
if option == 1:
print add(num1,num2)
elif option == 2:
print sub(num1,num2)
elif option == 3:
print multi(num1,num2)
elif option == 4:
print divide(num1,num2)
else:
print '没有此选项' cacultor()
这种方式是直接把定义好的参数定义到了函数内部。对比第一种代码量上简洁了不少。
完整代码如下
1.定义加减乘除
2.选择加减乘除
3.函数实现功能
def add(a,b):
return a+b
def sub(c,d):
return c-d
def multi(e,f):
return e-f
def divide(g,h):
return g / h
def cacultor():
option = input("请选择:1+,2-,3*,4/")
num1 = input('请输入第一个数字:')
num2 = input('请输入第二个数字:')
if option == 1:
print add(num1,num2)
elif option == 2:
print sub(num1,num2)
elif option == 3:
print multi(num1,num2)
elif option == 4:
print divide(num1,num2)
else:
print '没有此选项' cacultor() #调用整个函数运行
第三种的实现方式:使用面向对象的过程实现计算器功能。
class Jisuan(object):
def __init__(self,a,b): #初始a,b两个参数
self.a = int(a)
self.b = int(b) def add(self):
if type(self.a) != int or type(self.b) != int:
raise Exception('a,b必须为整型') #如果输入的不是整型 就抛出错误
return self.a + self.b
def sub(self):
if type(self.a) != int or type(self.b) != int:
raise Exception('a,b必须为整型')
return self.a - self.b
def mutil(self):
if type(self.a) != int or type(self.b) != int:
raise Exception('a,b必须为整型')
return self.a * self.b
def divide(self):
if type(self.a) != int or type(self.b) != int:
raise Exception('a,b必须为整型')
if self.b == 0: #对除数进行判断 除数不能为0
raise Exception('除数不能为0',self.b)
return self.a / self.b if __name__ == "__main__":
test = Jisuan(55,20) #实例化对象 test
print test.add() #引用自身加法
print test.sub() #引用自身减法
print test.mutil() #引用自身乘法
print test.divide() #引用自身除法
以上就是实现计算器的几种方式。
Python基础入门-实现计算器多种姿势的更多相关文章
- Python基础入门教程
Python基础入门教程 Python基础教程 Python 简介 Python环境搭建 Python 基础语法 Python 变量类型 Python 运算符 Python 条件语句 Python 循 ...
- Python基础入门总结
Python基础入门教学 基础中的基础 列表.元组(tuple).字典.字符串 变量和引用 函数 python视频教程下载 基础中的基础 解释型语言和编译型语言差距: Python概述 解释器执行原理 ...
- [新手必备]Python 基础入门必学知识点笔记
Python 作为近几年越来越流行的语言,吸引了大量的学员开始学习,为了方便新手小白在学习过程中,更加快捷方便的查漏补缺.根据网上各种乱七八糟的资料以及实验楼的 Python 基础内容整理了一份极度适 ...
- Python基础入门教程,Python学习路线图
给大家整理的这套python学习路线图,按照此教程一步步的学习来,肯定会对python有更深刻的认识.或许可以喜欢上python这个易学,精简,开源的语言.此套教程,不但有视频教程,还有源码分享,让大 ...
- Python怎么样入门?Python基础入门教程
给大家整理的这套python学习路线图,按照此教程一步步的学习来,肯定会对python有更深刻的认识.或许可以喜欢上python这个易学,精简,开源的语言.此套教程,不但有视频教程,还有源码分享,让大 ...
- PJzhang:python基础入门的7个疗程-one
猫宁!!! 参考链接:易灵微课-21天轻松掌握零基础python入门必修课-售价29元人民币 https://www.liaoxuefeng.com/wiki/1016959663602400 安全从 ...
- Python基础入门一文通 | Python2 与Python3及VSCode下载和安装、PyCharm激活与安装、Python在线IDE、Python视频教程
目录 1. 关键词 2. 推荐阅读 2.1. 视频教程 3. 本文按 4. 安装 4.1. 视频教程 4.2. 资源下载 4.3. 安装教程 1. 关键词 Python2 与Python3及VSCod ...
- python 列表推导式 - python基础入门(16)
截止到目前为止,python基础内容已经学习了50%左右,在学习编程过程中,我们不仅要学习python语法,同时也需要学习如何把自己代码写的更美观,效率更高. 一.什么是推导式 推导式是从一个或者多个 ...
- Python基础入门:注释、变量、运算符与数据类型
一.为什么要学习python? python的特点 python作为一门脚本语言,在越来越多的行业和领域发挥着重大作用,比如机器学习.网站开发.数据分析.爬虫.自动化测试. 同时,python具备以下 ...
随机推荐
- 解决ubantu中sublime不支持中文的方法
更新然后将系统升级到最新版本,在linux终端输入 sudo apt-get update && sudo apt-get 在本地目录中克隆此repo: 如果你没有git的话就安 ...
- UNION和UNION ALL关键字
UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同. 1.对重复结果的处理:UNION在进行表链接后会筛选掉重复的记录,Union All不会去除重复 ...
- 理解contextmanager
同事在查看网络问题导致虚拟机状态一直pause时,在一段代码(见以下)处产生了疑惑.问我,我也是一头雾水.后同事找到参考文章(1),算是了解了个大概.而我对contextmanager的工作产生了兴趣 ...
- 【转载】解决SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问的方法
1.开启Ad Hoc Distributed Queries组件,在sql查询编辑器中执行如下语句: exec sp_configure 'show advanced options',1 recon ...
- python学习(十四) 网络编程
14.1 少数几个网络设计模块 14.1.1 socket模块 套接字包括:服务器套接字和客户机套接字. 在创建一个服务器套架字后,让它等待连接,这样它就在摸个网络地址处(IP地址和一个端口号的组合) ...
- LT3756/LT3756-1/LT3756-2 - 100VIN、100VOUT LED 控制器
LT3756/LT3756-1/LT3756-2 - 100VIN.100VOUT LED 控制器 特点 3000:1 True Color PWMTM调光 宽输入电压范围:6V至 100V 输出电压 ...
- [置顶]
STM32的ADC1采集多条通道,可以不使用DMA功能吗?
类似的问题 为什么我采集5条通道的电压,而采集到的值却都是第一条的呢? 我什么时候需要使用DMA功能? Ⅰ关于ADC的一些知识 STM32的ADC是一种12位逐次逼近型的模拟数字转换器.它有多达18条 ...
- Unicode 和 UTF-8关系
unicode 就是 “与存储无关的表示”,utf—8 就是 “二进制表示”.一句话,utf8是对unicode字符集进行编码的一种编码方式,utf8是给unicode字符集加了一个存储类型前缀. u ...
- ubuntu安装Docky 3.0
添加PPA并在命令行安装,执行以下命令: sudo add-apt-repository ppa:ricotz/docky sudo apt-get update sudo apt-get insta ...
- C++数组与指针回顾总结
//数组名是常量指针, //a+1 是相对数组起始地址偏移了sizeof(int)字节 //&a+1 是相对于数组起始地址偏移了sizeof(a)字节 , , , }; cout <&l ...