python實(shí)現(xiàn)輸入數(shù)字的連續(xù)加減方法
不用庫,寫了很久,一直出bug,到網(wǎng)上一搜,可以直接輸入之后,eval(str)即可得到結(jié)果!
eval程序如下:
s=input("請(qǐng)輸入要運(yùn)算的數(shù)字")
print("The result is{}".format(eval(s)))
下面是不用eval實(shí)現(xiàn)加減的代碼:主要思想就是通過一個(gè)標(biāo)志位flag來計(jì)算是否進(jìn)行加減,其他的都很好理解
s=input("請(qǐng)輸入要運(yùn)算的數(shù)字")
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)
現(xiàn)在貼上一直出錯(cuò)的代碼,也算是長點(diǎn)經(jīng)驗(yàn),提醒自己下一次細(xì)心一點(diǎn):
s=input("請(qǐng)輸入要運(yùn)算的數(shù)字")
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)
#錯(cuò)誤類型:IndexError: string index out of range(字符串越界)
說明一下,越界有兩個(gè)原因:
①能夠訪問的最大字符串是len(str)-1 (ps上圖直接是len(str))
②python執(zhí)行的方法是一句一句執(zhí)行的,所以i<=l-1應(yīng)該放在s[i] != '+'的前面
下面貼上修改過后能運(yùn)行并且可以輸出正確結(jié)果的代碼:
s=input("請(qǐng)輸入要運(yùn)算的數(shù)字")
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實(shí)現(xiàn)輸入數(shù)字的連續(xù)加減方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python webdriver.Chrome()的使用解讀
這篇文章主要介紹了Python webdriver.Chrome()的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
淺談python已知元素,獲取元素索引(numpy,pandas)
今天小編就為大家分享一篇淺談python已知元素,獲取元素索引(numpy,pandas),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11
python實(shí)現(xiàn)復(fù)制整個(gè)目錄的方法
這篇文章主要介紹了python實(shí)現(xiàn)復(fù)制整個(gè)目錄的方法,涉及Python中shutil模塊的相關(guān)操作技巧,需要的朋友可以參考下2015-05-05
搭建python django虛擬環(huán)境完整步驟詳解
這篇文章主要介紹了搭建python django虛擬環(huán)境完整步驟詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
淺談Python numpy創(chuàng)建空數(shù)組的問題
今天遇到一個(gè)小小的問題,是關(guān)于numpy創(chuàng)建空數(shù)組,今天特地整理了這篇文章,文中作出了非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)python的小伙伴們有很好的幫助,需要的朋友可以參考下2021-05-05

