环境

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. Vue.js 学习笔记 第5章 内置指令

    本篇目录: 5.1 基本指令 5.2 条件渲染指令 5.3 列表渲染指令 v-for 5.4 方法与事件 5.5 实战:利用计算属性.指令等知识开发购物车 回顾一下第2.2节,我们己经介绍过指令(Di ...

  2. UiPath实践经验总结(二)

    1.       UI操作容易受到各种意外的干扰,因此应该缩短UI操作阶段的总体时间.而为了缩短UI操作阶段的总体时间,应该将UI操作尽量放在一起,将后台的各种操作尽量放在UI操作的前后.例如,现在有 ...

  3. HIVE扩展GIS函数

        按项目日益增长的gis数据量要求,需要在大数据集群中部署HIVE的扩展函数.     Apache Hive是一个建立在Hadoop架构之上的数据仓库.它能够提供数据的精炼,查询和分析.([引 ...

  4. dart 如何优雅的避空

    前言 对于每一个程序员来说,空指针异常应该是基本都会遇到过的异常,而且这个异常出现的概率还比较大. 但是,空指针异常又是最容易解决的异常,因为只要加个非空判断就可以避免了. 本篇通过对比一般非空判断和 ...

  5. Centos 配置开机启动脚本启动 docker 容器

    Centos 配置开机启动脚本启动 docker 容器 Intro 我们的 Centos 服务器上部署了好多个 docker 容器,因故重启的时候就会导致还得手动去手动重启这些 docker 容器,为 ...

  6. 【原】Java学习笔记034 - 网络

    package cn.temptation; import java.net.InetAddress; public class Sample01 { public static void main( ...

  7. bootStrap-table服务器端后台分页的使用,以及自定义搜索框的实现,前端代码到数据查询超详细讲解

    关于分页,之前一直纯手写js代码来实现,最近又需要用到分页,找了好多最终确定bootstrap-table,正好前端页面用的是bootstrap. 首先下载BootStrap-table的js和CSS ...

  8. 微信小程序中转义字符的处理

    在微信小程序开发过程中,有时候会用到常用的一些特殊字符如:‘<’.‘>’.‘&’.‘空格’等,微信小程序同样支持对转义字符的处理,下面提供两种方法用来处理微信小程序中转义字符的处理 ...

  9. Vue(day7)

    一.环境搭建 下面我们需要为后面要做的Vue项目搭建开发环境. 1.基本的运行环境 该项目使用node& vue在webpack环境下进行开发.首先安装基本的模块文件: npm install ...

  10. Python爬虫入门教程 42-100 爬取儿歌多多APP数据-手机APP爬虫部分

    1. 儿歌多多APP简单分析 今天是手机APP数据爬取的第一篇案例博客,我找到了一个儿歌多多APP,没有加固,没有加壳,没有加密参数,对新手来说,比较友好,咱就拿它练练手,熟悉一下Fiddler和夜神 ...