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 25 Python
Python自定义scrapy中间模块避免重复采集的方法
Apr 07 Python
利用python求解物理学中的双弹簧质能系统详解
Sep 29 Python
Python 删除连续出现的指定字符的实例
Jun 29 Python
对python中类的继承与方法重写介绍
Jan 20 Python
python实现浪漫的烟花秀
Jan 30 Python
python处理DICOM并计算三维模型体积
Feb 26 Python
简单了解python单例模式的几种写法
Jul 01 Python
python中从for循环延申到推导式的具体使用
Nov 29 Python
Python数据持久化存储实现方法分析
Dec 21 Python
Python Celery异步任务队列使用方法解析
Aug 10 Python
Python基于Socket实现简易多人聊天室的示例代码
Nov 29 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获取网址的顶级域名函数代码
2012/09/24 PHP
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
2012/12/07 PHP
phpcms模块开发之swfupload的使用介绍
2013/04/28 PHP
PHP获取MySql新增记录ID值的3种方法
2014/06/24 PHP
thinkphp模板用法和内容输出实例
2014/11/28 PHP
php语言的7种基本的排序方法
2020/12/28 PHP
Iframe thickbox2.0使用的方法
2009/03/05 Javascript
使用js实现关闭js弹出层的窗口
2014/02/10 Javascript
jQuery之选项卡的简单实现
2014/02/28 Javascript
我的Node.js学习之路(二)NPM模块管理
2014/07/06 Javascript
javascript实现复选框选中属性
2015/03/25 Javascript
jQuery基于cookie实现的购物车实例分析
2015/12/24 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
2016/11/07 Javascript
微信小程序 解析网页内容详解及实例
2017/02/22 Javascript
BootStrap Select清除选中的状态恢复默认状态
2017/06/20 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
Vue.js组件间的循环引用方法示例
2017/12/27 Javascript
微信小程序switch开关选择器使用详解
2018/01/31 Javascript
Vue-Router基础学习笔记(小结)
2018/10/15 Javascript
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
2019/08/07 Javascript
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
2019/08/23 Javascript
javascript中正则表达式语法详解
2020/08/07 Javascript
javascript实现下拉菜单效果
2021/02/09 Javascript
详解Python的Django框架中的templates设置
2015/05/11 Python
在Python中操作列表之List.append()方法的使用
2015/05/20 Python
python编写暴力破解zip文档程序的实例讲解
2018/04/24 Python
Python实现的knn算法示例
2018/06/14 Python
pytorch中的卷积和池化计算方式详解
2020/01/03 Python
Python 为什么推荐蛇形命名法原因浅析
2020/06/18 Python
卡骆驰德国官方网站:Crocs德国
2019/03/29 全球购物
杭州龙健科技笔试题.net部分笔试题
2016/01/24 面试题
给校长的建议书300字
2014/05/16 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书
离婚协议书样本
2015/01/26 职场文书
2015年生产部工作总结范文
2015/05/25 职场文书
Python如何利用正则表达式爬取网页信息及图片
2021/04/17 Python