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之Scrapy爬虫框架安装及简单使用详解
Dec 22 Python
详解python的ORM中Pony用法
Feb 09 Python
python通过Windows下远程控制Linux系统
Jun 20 Python
python3.6的venv模块使用详解
Aug 01 Python
python直接获取API传递回来的参数方法
Dec 17 Python
Python编程实现tail-n查看日志文件的方法
Jul 08 Python
Django中使用极验Geetest滑动验证码过程解析
Jul 31 Python
Python 用三行代码提取PDF表格数据
Oct 13 Python
Django 自定义404 500等错误页面的实现
Mar 08 Python
Anaconda+Pycharm环境下的PyTorch配置方法
Mar 13 Python
Flask中sqlalchemy模块的实例用法
Aug 02 Python
使用Django的JsonResponse返回数据的实现
Jan 15 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+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
2012/07/15 PHP
web server使用php生成web页面的三种方法总结
2013/10/28 PHP
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
2013/01/27 Javascript
JavaScript调用客户端的可执行文件(示例代码)
2013/11/28 Javascript
jquery限定文本框只能输入数字即整数和小数
2013/11/29 Javascript
基于jquery的文字向上跑动类似跑马灯的效果
2014/09/22 Javascript
jQuery常用的一些技巧汇总
2016/03/26 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
浅析$(function) ready和onload 的区别
2016/09/03 Javascript
COM组件中调用JavaScript函数详解及实例
2017/02/23 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
详解vue-router 2.0 常用基础知识点之router.push()
2017/05/10 Javascript
详解ES6 Symbol 的用途
2018/10/14 Javascript
js canvas实现写字动画效果
2018/11/30 Javascript
小程序日历控件使用方法详解
2018/12/29 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
2019/04/23 Javascript
详解vue 组件的实现原理
2020/11/12 Javascript
[50:15]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
python实现一个简单的udp通信的示例代码
2019/02/01 Python
python Opencv计算图像相似度过程解析
2019/12/03 Python
Django 项目通过加载不同env文件来区分不同环境
2020/02/17 Python
Python 的 __str__ 和 __repr__ 方法对比
2020/09/02 Python
HTTP状态码详解
2021/03/18 杂记
html5唤醒APP小记
2019/03/27 HTML / CSS
斐乐美国官方网站:FILA美国
2019/03/01 全球购物
美国排名第一的泳池用品直接来源:In The Swim
2019/09/23 全球购物
ANINE BING官方网站:奢华的衣橱基本款和时尚永恒的单品
2019/11/26 全球购物
浙江文明网签名寄语
2014/01/18 职场文书
店长职务说明书
2014/02/04 职场文书
公益活动邀请函
2014/02/05 职场文书
目标责任书范文
2014/04/14 职场文书
关于祖国的演讲稿
2014/05/04 职场文书
欠条范文
2015/07/03 职场文书
2016年企业先进员工事迹材料
2016/02/25 职场文书
2019年冬至:天冷暖人心的问候祝福语大全
2019/12/20 职场文书
JavaScript中的宏任务和微任务详情
2021/11/27 Javascript