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的Django框架中编写错误提示页面
Jul 22 Python
Python中集合的内建函数和内建方法学习教程
Aug 19 Python
Python面向对象之继承代码详解
Jan 29 Python
对Tensorflow中的矩阵运算函数详解
Jul 27 Python
python遍历文件夹找出文件夹后缀为py的文件方法
Oct 21 Python
python3使用pandas获取股票数据的方法
Dec 22 Python
python爬虫项目设置一个中断重连的程序的实现
Jul 26 Python
Python学习笔记之Django创建第一个数据库模型的方法
Aug 07 Python
python获取栅格点和面值的实现
Mar 10 Python
如何提高python 中for循环的效率
Apr 15 Python
python如何查看安装了的模块
Jun 23 Python
matplotlib更改窗口图标的方法示例
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
PHP 获取文件权限函数介绍
2013/07/11 PHP
Javascript与PHP验证用户输入URL地址是否正确
2014/10/09 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
2015/04/08 PHP
CodeIgniter扩展核心类实例详解
2016/01/20 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
2017/07/18 PHP
laravel ORM 只开启created_at的几种方法总结
2018/01/29 PHP
比较全的JS checkbox全选、取消全选、删除功能代码
2008/12/19 Javascript
jquery实现加载等待效果示例
2013/09/25 Javascript
代码获取历史上的今天发生的事
2014/04/11 Javascript
基于jquery实现ajax无刷新评论
2020/08/19 Javascript
nodejs socket服务端和客户端简单通信功能
2017/09/14 NodeJs
Vue引入jquery实现平滑滚动到指定位置
2018/05/09 jQuery
Vue项目实现换肤功能的一种方案分析
2019/08/28 Javascript
Sublime Text3 配置 NodeJs 环境的方法
2020/05/20 NodeJs
JavaScript中CreateTextFile函数
2020/08/30 Javascript
[01:09:23]KG vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
Python selenium 三种等待方式详解(必会)
2016/09/15 Python
详解python配置虚拟环境
2019/04/08 Python
详解pandas删除缺失数据(pd.dropna()方法)
2019/06/25 Python
python实现windows倒计时锁屏功能
2019/07/30 Python
Python实现某论坛自动签到功能
2019/08/20 Python
TensorFlow Saver:保存和读取模型参数.ckpt实例
2020/02/10 Python
Django重设Admin密码过程解析
2020/02/10 Python
CSS3中的Transition过度与Animation动画属性使用要点
2016/05/20 HTML / CSS
利用Bootstrap实现漂亮简洁的CSS3价格表实例源码
2017/03/02 HTML / CSS
手工社团活动方案
2014/02/17 职场文书
校长寄语大全
2014/04/09 职场文书
教师党员公开承诺事项
2014/05/28 职场文书
教师批评与自我批评范文
2014/10/15 职场文书
学校国庆节活动总结
2015/03/23 职场文书
关于做家务的心得体会
2016/01/23 职场文书
2016保送生自荐信范文
2016/01/29 职场文书
自荐信大全
2019/03/21 职场文书
教你怎么用python selenium实现自动化测试
2021/05/27 Python