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 除法小技巧
Sep 06 Python
python实现分析apache和nginx日志文件并输出访客ip列表的方法
Apr 04 Python
在ironpython中利用装饰器执行SQL操作的例子
May 02 Python
在Python中处理列表之reverse()方法的使用教程
May 21 Python
python使用wmi模块获取windows下的系统信息 监控系统
Oct 27 Python
简单易懂的python环境安装教程
Jul 13 Python
pandas 获取季度,月度,年度首尾日期的方法
Apr 11 Python
Python爬虫信息输入及页面的切换方法
May 11 Python
浅谈python图片处理Image和skimage的区别
Aug 04 Python
python urllib爬虫模块使用解析
Sep 05 Python
利用pyshp包给shapefile文件添加字段的实例
Dec 06 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
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添加Xdebug扩展的方法
2014/02/12 PHP
nginx+thinkphp下解决不支持pathinfo模式
2015/07/01 PHP
PHP浮点比较大小的方法
2016/02/14 PHP
php禁用函数设置及查看方法详解
2016/07/25 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
PHP实现简单登录界面
2019/10/23 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
来自chinaz的ajax获取评论代码
2008/05/03 Javascript
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
javascript EXCEL 操作类代码
2009/07/30 Javascript
Ubuntu 11.10 安装Node.js的方法
2011/11/30 Javascript
[将免费进行到底]在Amazon的一年免费服务器上安装Node.JS, NPM和OurJS博客
2014/08/18 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
2016/09/16 Javascript
jQuery插件form-validation-engine正则表达式操作示例
2017/02/09 Javascript
老生常谈combobox和combotree模糊查询
2017/04/17 Javascript
Vue响应式原理详解
2017/04/18 Javascript
xmlplus组件设计系列之文本框(TextBox)(3)
2017/05/03 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
详解封装基础的angular4的request请求方法
2018/06/05 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
2018/10/16 Javascript
python创建一个最简单http webserver服务器的方法
2015/05/08 Python
Python实现递归遍历文件夹并删除文件
2016/04/18 Python
Pyhton中单行和多行注释的使用方法及规范
2016/10/11 Python
基于python的七种经典排序算法(推荐)
2016/12/08 Python
python 异或加密字符串的实例
2018/10/14 Python
python实现RabbitMQ的消息队列的示例代码
2018/11/08 Python
使用python 写一个静态服务(实战)
2019/06/28 Python
Python数组并集交集补集代码实例
2020/02/18 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
2020/11/06 Python
html通过canvas转成base64的方法
2019/07/18 HTML / CSS
连锁酒店店长职责范本
2014/02/13 职场文书
遵纪守法演讲稿
2014/05/23 职场文书
教师党员公开承诺事项
2014/05/28 职场文书
Python实现信息轰炸工具(再也不怕说不过别人了)
2021/06/11 Python
Python 中的单分派泛函数你真的了解吗
2021/06/22 Python
swagger如何返回map字段注释
2021/07/03 Java/Android