环境

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带参函数(计算器脚本解释标注)的更多相关文章

  1. 定时器(setTimeout/setInterval)调用带参函数失效解决方法

    也许你曾碰到过这样的问题,不管是setInterval()还是setTimeout(),当code参数里放一个带参函数时,定时器都会失效,看下面这个例子: function test(str){ al ...

  2. python第六天函数,定义、调用、不带参函数、带参函数等

    在python定义函数需要用到的关键字是 def  xxxx():,这个关键字就是 defined 的缩写.具体看实例: >>> def hello(): print("你 ...

  3. python带参装饰器的改良版

    简单点就是这种 def deco2(param=1): def _deco2(fun): def __deco2(*args, **kwargs): print (param) fun(*args, ...

  4. Python带括号的计算器

    带括号的计算器也是第一个自我感觉完成最好的 毕竟真的弄了一个多星期 虽然前期这路真的很难走  我会努力加油  将Python学好学踏实 参考了两位博主的文章 http://www.cnblogs.co ...

  5. Python中,关于调用带参函数,一些需要注意的问题(监听时)

    1.如果监听调用的函数不带参数(start()) Button.clicked.connect(start)) def strat(): ... 2.如果监听调用的函数带参数(start(x,y)) ...

  6. Python学习教程(learning Python)--2.3.1 Python传参函数设计

    本节主要讨论设计传递多个参数子函数的设计方法. 在2.3节里我们讨论了如何自己设计一个带参数的子函数的设计方法,现在我们研究一下如何传递两个及以上参数的设计方法. 函数为何要带参数呢?其实原因很简单, ...

  7. Python学习入门基础教程(learning Python)--2.3.1 Python传参函数设计

    本节主要讨论设计传递多个参数子函数的设计方法. 在2.3节里我们讨论了如何自己设计一个带参数的子函数的设计方法,现在我们研究一下如何传递两个及以上参数的设计方法. 函数为何要带参数呢?其实原因很简单, ...

  8. 定时器(setTimeout和setInterval)调用带参函数失效解决方法

    方法1:用匿名函数包裹  function test(str){  alert(str);  }  var a = "abcde"  setTimeout(function(){  ...

  9. Qt webview调用JavaScript 带参函数

    void MainWindow::on_pushButtonShowMarker_clicked() { QString lat = "104.701681"; QString l ...

随机推荐

  1. MVC图片上传详解

    MVC图片上传--控制器方法 新建一个控制器命名为File,定义一个Img方法 [HttpPost]public ActionResult Img(HttpPostedFileBase shangch ...

  2. Java基础练习1(数据类型转换)

    1.下列代码的输出结果是:()(单选) public static void main(String[] args){ double money = 3.0; money -= 2.9; System ...

  3. 前端笔记之CSS(下)浮动&BFC&定位&Hack

    一.浮动 1.1 各个语言的主要知识点 HTML:标签语义化(那么怎么样布局才是合理的?没有绝对的对和错) CSS: 样式: 布局: 标准流(标准文档流.普通文档流):盒子模型(width/heigh ...

  4. openlayers4 入门开发系列之图层控制(附源码下载)

    前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...

  5. SQL 存储过程中事务回滚

    在事务语句最前面加上 set xact_abort on GO SET QUOTED_IDENTIFIER OFF GO ALTER PROCEDURE [dbo].[test] @a int, @b ...

  6. “.Net 社区大会”(dotnetConf) 2018 Day 1 主题演讲

    Miguel de Icaza.Scott Hunter.Mads Torgersen三位大咖给大家带来了 .NET Core ,C# 以及 Xamarin的精彩内容: 6月份已经发布了.NET Co ...

  7. Javascript高级编程学习笔记(96)—— WebGL(2) 类型化视图

    类型化视图 类型化视图一般也被认为是一种类型化数组. 因为其元素必须是某种特定的数据类型,类型化视图都继承自 Dataview Int8Array: 表示8位二补整数(即二进制补数) Uint8Arr ...

  8. android学习笔记--AlarmManager

    AlarmManager称呼为全局定时器,有的称呼为闹钟.其实它的作用和Timer有点相似. 都有两种相似的用法: (1)在指定时长后执行某项操作(2)周期性的执行某项操作 AlarmManager ...

  9. “挑三拣四”地学一学Java I/O

    古人云:“读书破万卷,下笔如有神”.也就是说,只有大量的阅读,写作的时候才能风生水起——写作意味着输出(我的知识传播给他人),而读书意味着输入(从他人的知识中汲取营养). 对于Java I/O来说,I ...

  10. Xcode 10 iOS12 "A valid provisioning profile for this executable was not found

    问题:Xcode10 build 没问题,跑虚拟机也没问题,数据线连上run到真机上出现 Xcode 10 iOS12 "A valid provisioning profile for t ...