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使用openpyxl读写excel文件的方法
Jun 30 Python
Python 实现简单的shell sed替换功能(实例讲解)
Sep 29 Python
Python实用技巧之利用元组代替字典并为元组元素命名
Jul 11 Python
python2和python3的输入和输出区别介绍
Nov 20 Python
pycharm运行程序时在Python console窗口中运行的方法
Dec 03 Python
谈一谈基于python的面向对象编程基础
May 21 Python
python装饰器练习题及答案
Nov 01 Python
Pandas时间序列:时期(period)及其算术运算详解
Feb 25 Python
使用Python项目生成所有依赖包的清单方式
Jul 13 Python
哪种Python框架适合你?简单介绍几种主流Python框架
Aug 04 Python
详解Python中string模块除去Str还剩下什么
Nov 30 Python
Python Pandas知识点之缺失值处理详解
May 11 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构造函数的继承方法
2015/02/09 PHP
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
2010/03/07 Javascript
理解Javascript_12_执行模型浅析
2010/10/18 Javascript
鼠标滚轴控制文本框值的JS代码
2013/11/19 Javascript
jQuery.holdReady()使用方法
2014/05/20 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
JS实现的Select三级下拉菜单代码
2015/08/20 Javascript
JQuery动态添加Select的Option元素实现方法
2016/08/29 Javascript
js实现背景图自适应窗口大小
2017/01/10 Javascript
JS前端开发判断是否是手机端并跳转操作(小结)
2017/02/05 Javascript
Bootstrap组合上、下拉框简单实现代码
2017/03/06 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
Vue程序调试的方法
2019/06/17 Javascript
开源一个微信小程序仪表盘组件过程解析
2019/07/30 Javascript
Layer.js实现表格溢出内容省略号显示,悬停显示全部的方法
2019/09/16 Javascript
浅谈微信小程序列表埋点曝光指南
2019/10/15 Javascript
在Python中处理列表之reverse()方法的使用教程
2015/05/21 Python
django开发教程之利用缓存文件进行页面缓存的方法
2017/11/10 Python
python 输入一个数n,求n个数求乘或求和的实例
2018/11/13 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
python实现简单颜色识别程序
2020/02/19 Python
python统计字符串中字母出现次数代码实例
2020/03/02 Python
Python通过4种方式实现进程数据通信
2020/03/12 Python
Python改变对象的字符串显示的方法
2020/08/01 Python
纯CSS3代码实现文字描边
2016/04/25 HTML / CSS
巴基斯坦购物网站:Goto
2019/03/11 全球购物
雷蛇美国官网:Razer
2020/04/03 全球购物
山海经纬软件测试笔试题和面试题
2013/04/02 面试题
廉洁家庭事迹材料
2014/05/15 职场文书
学生意外伤害赔偿协议书
2014/09/17 职场文书
领导班子个人查摆问题对照检查材料
2014/10/02 职场文书
违纪检讨书
2015/01/27 职场文书
2015年度公共机构节能工作总结
2015/05/26 职场文书
2019年教师节:送给所有老师的祝福语
2019/09/05 职场文书
Java并发编程之原子性-Atomic的使用
2022/03/16 Java/Android