python带参函数(计算器脚本解释标注)
环境
python 3.*
def operator(op1,op2,opfu):
#定义符号函数,op1表示第一个运算数值,op2表示第二个,opfu表示运算符号
if opfu not in '+-*/':
return -1
#如果opfu不是这四个符号当中的任何一个,返回值是-1,表示程序出错
if opfu == '+':
qiao = op1+op2
#如果符号是+,那就表示op1加上op2
elif opfu == '-':
qiao = op1 - op2
#如果符号是-,表示op1减去op2
elif opfu == '*':
qiao = op1 * op2
elif opfu == '/':
if op2 == 0:
print('error,not is 0/n')
qiao = None
else:
qiao = op1 / op2
#进行除法运算时除数不能够为0,所以先排除在外,为0是返回值为None,表示程序错误
return qiao
#将运算结果返回
def convert(op):
#定义函数,作用是将用户输入字符串转换为数值型
flag=True
#定义该变量用于判断数值有效性
for i in op:
if i not in '1234567890':
flag=False
break
#op是传进来的字符串,使用循环来判断字符的规范性,如不规范,则flag值为False,并退出循环
if flag==True:
return int(op)
else:
return None
#如果flag的值为True,即数值是规范的,那么将其进行数值类型转换,为整形;否则,返回None,程序错误
if __name__ == '__main__':
#表示,是当作脚本运行
str1 = 'please press first number:\n'
strfu = 'please press a mathfu:\n'
str2 = 'please press second number:\n'
#三个变量给用户输入提示信息,和用户进行交互
while True:
print('q is quit')
#告知q表示退出
opp1 = input(str1)
ch = opp1.strip()[0].lower()
if ch == 'q':
break
#如果ch值,即用户输入的为q,跳出循环
op1 = convert(opp1)
#调用convert函数对第一个数转换数据类型为整形
if op1 ==None:
print('error,please against try!\n')
continue
#如果函数返回值为None,输出提示信息,跳出本次循环,进行下一次循环
while True:
opfu = input(strfu)
if opfu in '+-*/':
break
else:
print('mathfu had error!')
continue
#给用户一个交互是用户输入符号赋值给opfu,符号规范则结束循环;否则,输出提示,然后再次循环。
while True:
op2 = convert(input(str2))
if op2 == None:
print('press had error ,against try!\n')
continue
else:
break
#调用convert函数转换数据类型,这是第二个数值
result = operator(op1,op2,opfu)
#调用之前定义的operator函数进行运算,并将结果复制给result变量
if result != None:
print('计算%d %s %d=%d'%(op1,opfu,op2,result))
#如果结果不为None,即表示程序正常运行,那就输出信息。
#字符串拼接需要注意是为英文符号,还有顺序
print('quited')
#为q退出,并提示信息。
python带参函数(计算器脚本解释标注)的更多相关文章
- 定时器(setTimeout/setInterval)调用带参函数失效解决方法
也许你曾碰到过这样的问题,不管是setInterval()还是setTimeout(),当code参数里放一个带参函数时,定时器都会失效,看下面这个例子: function test(str){ al ...
- python第六天函数,定义、调用、不带参函数、带参函数等
在python定义函数需要用到的关键字是 def xxxx():,这个关键字就是 defined 的缩写.具体看实例: >>> def hello(): print("你 ...
- python带参装饰器的改良版
简单点就是这种 def deco2(param=1): def _deco2(fun): def __deco2(*args, **kwargs): print (param) fun(*args, ...
- Python带括号的计算器
带括号的计算器也是第一个自我感觉完成最好的 毕竟真的弄了一个多星期 虽然前期这路真的很难走 我会努力加油 将Python学好学踏实 参考了两位博主的文章 http://www.cnblogs.co ...
- Python中,关于调用带参函数,一些需要注意的问题(监听时)
1.如果监听调用的函数不带参数(start()) Button.clicked.connect(start)) def strat(): ... 2.如果监听调用的函数带参数(start(x,y)) ...
- Python学习教程(learning Python)--2.3.1 Python传参函数设计
本节主要讨论设计传递多个参数子函数的设计方法. 在2.3节里我们讨论了如何自己设计一个带参数的子函数的设计方法,现在我们研究一下如何传递两个及以上参数的设计方法. 函数为何要带参数呢?其实原因很简单, ...
- Python学习入门基础教程(learning Python)--2.3.1 Python传参函数设计
本节主要讨论设计传递多个参数子函数的设计方法. 在2.3节里我们讨论了如何自己设计一个带参数的子函数的设计方法,现在我们研究一下如何传递两个及以上参数的设计方法. 函数为何要带参数呢?其实原因很简单, ...
- 定时器(setTimeout和setInterval)调用带参函数失效解决方法
方法1:用匿名函数包裹 function test(str){ alert(str); } var a = "abcde" setTimeout(function(){ ...
- Qt webview调用JavaScript 带参函数
void MainWindow::on_pushButtonShowMarker_clicked() { QString lat = "104.701681"; QString l ...
随机推荐
- 包装类及 LeetCode 每日一题
1.包装类与创建对象 Java 为8大数据类型都提供了相应的包装类,并提供属性和方法,更方便的操作基本数据类型.包装类位于java.lang包中. 对于这几种类型的基本数据,都有相似的方法实现基本数据 ...
- 移动端布局方案汇总&&原理解析
阿里flexible布局 - 版本1.x 该布局于 2017年8月9日被2.0版本取代 实现原理 假设(UI稿750px宽) 设置viewport的 scale = 1/window.devicePi ...
- 全网首发! Odoo 订单分解执行及供应链管理免费开源解决方案
引言 前一篇介绍了佛山王朝家具的案例背景.佛山王朝家具公司在全国有30多家门店,三个生产工厂.王朝家具有六大痛点问题: 订单迫切需要实现电子化管理及在线签名 总部分单工作量大,供应链效率低 配送和售后 ...
- vtigercrm特色功能介绍
1.邮件跟踪 市场营销活动中,我们给客户发出了大量的电子邮件,这些邮件被客户阅读的情况你了解吗?vtiger CRM中独特的邮件跟踪功能,可以让你了解到邮件是否被客户浏览.浏览的次数和时间.通过客户的 ...
- 需求分析&用例编写
一.需求分析? 1.什么是需求 软件产品必须完成的是以及必须具备的品质. 功能性需求:产品必须完成的那些事,要求一定的功能和品质. 例子:淘宝的用户名登录. 非功能性需求:产品必须具备的属性和品质.诸 ...
- Spring Aop源码分析
最近看了SpringAop的源码实现 大概记录一下aop的源码流程 创建一个最简单的一个测试类 package com.zcg.learn.Test; import org.aopalliance. ...
- 设置Mac 终端走代理
1.打开终端执行:export http_proxy=socks5://127.0.0.1:1080 这个只能在当前终端执行一次退出后就需要重新设置 如果需要开机自动设置,把上面的代码加到~/.bas ...
- STM32的IAP实现
STM32的IAP实现 2014年07月28日 16:31:06 Stylesen 阅读数:556 IAP,全称是“In-Application Programming”,中文解释为“在程序中编程 ...
- Fusion Log
What is Fusion Log? Also known as the Fusion Log or Assembly Binding Log Viewer. This tool is instal ...
- Python 爬虫——抖音App视频抓包
APP抓包 前面我们了解了一些关于 Python 爬虫的知识,不过都是基于 PC 端浏览器网页中的内容进行爬取.现在手机 App 用的越来越多,而且很多也没有网页端,比如抖音就没有网页版,那么上面的视 ...