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脚本实现集群检测和管理功能
Mar 06 Python
各个系统下的Python解释器相关安装方法
Oct 12 Python
Python实现的rsa加密算法详解
Jan 24 Python
Python2中文处理纪要的实现方法
Mar 10 Python
Python常见字典内建函数用法示例
May 14 Python
python操作mysql代码总结
Jun 01 Python
解决Python获取字典dict中不存在的值时出错问题
Oct 17 Python
python实现批量注册网站用户的示例
Feb 22 Python
python实现维吉尼亚加密法
Mar 20 Python
使用Python实现毫秒级抢单功能
Jun 06 Python
Django 开发调试工具 Django-debug-toolbar使用详解
Jul 23 Python
在python3.9下如何安装scrapy的方法
Feb 03 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
使用数据库保存session的方法
2006/10/09 PHP
PHP类中Static方法效率测试代码
2010/10/17 PHP
php $_SERVER windows系统与linux系统下的区别说明
2014/02/14 PHP
PHP中的一些常用函数收集
2015/05/26 PHP
IE浏览器PNG图片透明效果代码
2008/09/02 Javascript
js toFixed()方法的重写实现精度的统一
2014/03/06 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
2014/05/05 Javascript
node.js中watch机制详解
2014/11/17 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
2015/06/03 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
JS排序之冒泡排序详解
2017/04/08 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
ng-events类似ionic中Events的angular全局事件
2018/09/05 Javascript
怎么理解wx.navigateTo的events参数使用详情
2020/05/18 Javascript
[48:47]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python中的多重装饰器
2015/04/11 Python
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
Django与JS交互的示例代码
2017/08/23 Python
Python实现的基数排序算法原理与用法实例分析
2017/11/23 Python
python方向键控制上下左右代码
2018/01/20 Python
django框架之cookie/session的使用示例(小结)
2018/10/15 Python
python pytest进阶之conftest.py详解
2019/06/27 Python
python3的print()函数的用法图文讲解
2019/07/16 Python
python网络爬虫 CrawlSpider使用详解
2019/09/27 Python
在win64上使用bypy进行百度网盘文件上传功能
2020/01/02 Python
Python 读取WAV音频文件 画频谱的实例
2020/03/14 Python
基于python图书馆管理系统设计实例详解
2020/08/05 Python
HTML5中的nav标签学习笔记
2016/06/24 HTML / CSS
canvas烟花特效锦集
2018/01/17 HTML / CSS
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
国际礼品店:GiftsnIdeas
2018/05/03 全球购物
馥蕾诗美国官网:Fresh美国
2019/10/09 全球购物
如何用SQL语句进行模糊查找
2015/09/25 面试题
存储过程和函数的区别
2013/05/28 面试题
会议主持词通用版
2019/04/02 职场文书