python加减_python实现输入数字的连续加减方法

不用库,写了很久,一直出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 中,我们可以使用 `datetime` 模块来进行时间类型的加减操作。 首先,我们需要导入 `datetime` 模块: ```python import datetime ``` 然后,我们可以使用 `datetime.datetime` 类来表示一个具体的日期和时间。例如,下面的代码创建了一个表示当前日期和时间的 `datetime` 对象: ```python now = datetime.datetime.now() print(now) # 输出当前日期和时间 ``` 我们也可以使用 `datetime.datetime` 类来表示一个指定的日期和时间。例如,下面的代码创建了一个表示 2022 年 1 月 1 日 0 点 0 分的 `datetime` 对象: ```python date = datetime.datetime(2022, 1, 1, 0, 0) print(date) # 输出指定的日期和时间 ``` 要进行时间类型的加减操作,我们可以使用 `timedelta` 对象。例如,下面的代码创建了一个表示 3 天的 `timedelta` 对象: ```python delta = datetime.timedelta(days=3) ``` 我们可以将这个 `timedelta` 对象加到一个 `datetime` 对象上,得到一个新的 `datetime` 对象。例如,下面的代码将当前日期加上 3 天: ```python new_date = now + delta print(new_date) # 输出新的日期和时间 ``` 同样地,我们也可以将 `timedelta` 对象从一个 `datetime` 对象中减去,得到一个新的 `datetime` 对象。例如,下面的代码将当前日期减去 3 天: ```python new_date = now - delta print(new_date) # 输出新的日期和时间 ``` 另外,还可以使用 `datetime.datetime` 对象的 `replace` 方法来修改日期和时间中的某个部分。例如,下面的代码将当前日期的小时数修改为 12: ```python new_date = now.replace(hour=12) print(new_date) # 输出新的日期和时间 ``` 需要注意的是,由于 `datetime` 对象是不可变的,因此所有的加减操作都会返回一个新的 `datetime` 对象,而不会修改原来的对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值