python实现输入数字的连续加减方法


Posted in Python onJune 22, 2018

不用库,写了很久,一直出bug,到网上一搜,可以直接输入之后,eval(str)即可得到结果!

eval程序如下:

s=input("请输入要运算的数字")
print("The result is{}".format(eval(s)))

下面是不用eval实现加减的代码:主要思想就是通过一个标志位flag来计算是否进行加减,其他的都很好理解

s=input("请输入要运算的数字")
l=len(s)
h=0
i=0
flag=1
a=0
for i in range(0,l):
 if s[i]=='+' or s[i]=='-':
  flag=1
  c=s[i]
 else:
  flag=0
  a=a*10+round(int(s[i]))
 if flag==1 and s[i]=='+':
  h+=a
  a=0
 elif flag==1 and s[i]=='-':
  h-=a
  a=0
print(h)

现在贴上一直出错的代码,也算是长点经验,提醒自己下一次细心一点:

s=input("请输入要运算的数字")
l=len(s)
h=0
i=0
while i<=l:
 a=0
 c=s[i]
 i+=1
 while s[i]!='+' and s[i]!='-' and i<=l :
  a=a*10+round(int(s[i]))
  i+=1
 if c=='+':
  h+=a
 else:
  h-=a
print(h)
#错误类型:IndexError: string index out of range(字符串越界)

说明一下,越界有两个原因:

①能够访问的最大字符串是len(str)-1 (ps上图直接是len(str))

②python执行的方法是一句一句执行的,所以i<=l-1应该放在s[i] != '+'的前面

下面贴上修改过后能运行并且可以输出正确结果的代码:

s=input("请输入要运算的数字")
l=len(s)-1
h=0
i=0
while i<=l:
 a=0
 c=s[i]
 i+=1
 while i<=l and s[i]!='+' and s[i]!='-' :
  a=a*10+round(int(s[i]))
  i+=1
 if c=='+':
  h+=a
 else:
  h-=a
print(h)

以上这篇python实现输入数字的连续加减方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python3使用smtplib实现发送邮件功能
May 22 Python
详解python深浅拷贝区别
Jun 24 Python
Django上线部署之IIS的配置方法
Aug 22 Python
Python queue队列原理与应用案例分析
Sep 27 Python
Python程序控制语句用法实例分析
Jan 14 Python
django之导入并执行自定义的函数模块图解
Apr 01 Python
利用Python如何实时检测自身内存占用
May 09 Python
打印tensorflow恢复模型中所有变量与操作节点方式
May 26 Python
什么是python类属性
Jun 10 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
Jul 14 Python
python 实现关联规则算法Apriori的示例
Sep 30 Python
Python实现Appium端口检测与释放的实现
Dec 31 Python
Python之用户输入的实例
Jun 22 #Python
Python交互环境下实现输入代码
Jun 22 #Python
python实现搜索文本文件内容脚本
Jun 22 #Python
python实现textrank关键词提取
Jun 22 #Python
python实现自主查询实时天气
Jun 22 #Python
python实现定时提取实时日志程序
Jun 22 #Python
pandas 读取各种格式文件的方法
Jun 22 #Python
You might like
用PHP实现文件上传二法
2006/10/09 PHP
一个简单实现多条件查询的例子
2006/10/09 PHP
php购物网站支付paypal使用方法
2010/11/28 PHP
PHP漏洞全解(详细介绍)
2012/11/13 PHP
js 页面刷新location.reload和location.replace的区别小结
2009/12/24 Javascript
Jquery中获取iframe的代码
2011/01/11 Javascript
jquery 按键盘上的enter事件
2014/05/11 Javascript
jQuery实现锚点scoll效果实例分析
2015/03/10 Javascript
js实现改进的仿蓝色论坛导航菜单效果代码
2015/09/06 Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
2016/01/13 Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
2016/05/30 Javascript
node.js中express中间件body-parser的介绍与用法详解
2017/05/23 Javascript
Vue 中批量下载文件并打包的示例代码
2017/11/20 Javascript
详解关于html,css,js三者的加载顺序问题
2019/04/10 Javascript
解决layui批量传值到后台操作时出现传值为空的问题
2019/09/28 Javascript
JS端基于download.js实现图片、视频时直接下载而不是打开预览
2020/05/09 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
2020/09/02 Javascript
详解Python中的条件判断语句
2015/05/14 Python
Python3.6笔记之将程序运行结果输出到文件的方法
2018/04/22 Python
Python GUI布局尺寸适配方法
2018/10/11 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
基于python调用psutil模块过程解析
2019/12/20 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
2020/02/26 Python
html5 canvas合成海报所遇问题及解决方案总结
2017/08/03 HTML / CSS
开办加工厂创业计划书
2014/01/03 职场文书
材料工程专业毕业生求职信
2014/03/04 职场文书
服装店营销方案
2014/03/10 职场文书
经典毕业生求职信
2014/07/12 职场文书
施工单位安全责任书
2014/07/24 职场文书
党支部书记四风问题整改措施
2014/09/24 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
成本会计实训报告
2014/11/05 职场文书
和领导吃饭祝酒词
2015/08/11 职场文书
2015年六年级班主任工作总结
2015/10/15 职场文书
意外事故赔偿协议书
2016/03/22 职场文书
六种css3实现的边框过渡效果
2021/04/22 HTML / CSS