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 相关文章推荐
python列表与元组详解实例
Nov 01 Python
在Linux下调试Python代码的各种方法
Apr 17 Python
Python中的FTP通信模块ftplib的用法整理
Jul 08 Python
Python探索之pLSA实现代码
Oct 25 Python
Python面向对象总结及类与正则表达式详解
Apr 18 Python
python爬虫模拟浏览器访问-User-Agent过程解析
Dec 28 Python
python计算二维矩形IOU实例
Jan 18 Python
快速了解Python开发环境Spyder
Jun 29 Python
详解anaconda离线安装pytorchGPU版
Sep 08 Python
python3 os进行嵌套操作的实例讲解
Nov 19 Python
Python 可视化神器Plotly详解
Dec 26 Python
用Python进行栅格数据的分区统计和批量提取
May 27 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
linux下为php添加curl扩展的方法
2011/07/29 PHP
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
2013/06/25 PHP
php实现XSS安全过滤的方法
2015/07/29 PHP
PHP模块化安装教程
2016/06/01 PHP
PHP+jquery+CSS制作头像登录窗(仿QQ登陆)
2016/10/20 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
2020/05/01 PHP
用php实现分页效果的示例代码
2020/12/10 PHP
jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera
2009/08/28 Javascript
关于递归运算的顺序测试代码
2011/11/30 Javascript
input链接页面、打开新网页等等的具体实现
2013/12/30 Javascript
jquery实现文本框数量加减功能的例子分享
2014/05/10 Javascript
JS循环遍历JSON数据的方法
2014/07/08 Javascript
JavaScript跨域方法汇总
2014/10/16 Javascript
NodeJS中Buffer模块详解
2015/01/07 NodeJs
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
JavaScript之Vue.js【入门基础】
2016/12/06 Javascript
基于bootstrap风格的弹框插件
2016/12/28 Javascript
vue-cli webpack模板项目搭建及打包时路径问题的解决方法
2018/02/26 Javascript
JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】
2018/03/15 Javascript
微信小程序实现写入读取缓存详解
2019/08/30 Javascript
vue解决使用$http获取数据时报错的问题
2019/10/30 Javascript
[02:12]2015国际邀请赛 SHOWOPEN
2015/08/05 DOTA
Python列表list数组array用法实例解析
2014/10/28 Python
详解Python map函数及Python map()函数的用法
2017/11/16 Python
python实现狄克斯特拉算法
2019/01/17 Python
Python3中exp()函数用法分析
2019/02/19 Python
python中的itertools的使用详解
2020/01/13 Python
Python实现汇率转换操作
2020/05/03 Python
请解释virtual关键字的含义
2015/06/17 面试题
旅游专业毕业生自荐书
2014/06/30 职场文书
真诚的求职信
2014/07/04 职场文书
公司领导班子召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
2015年财政所工作总结
2015/04/25 职场文书
大学生受助感言
2015/08/01 职场文书
Python中常见的反爬机制及其破解方法总结
2021/06/10 Python