国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python實現輸入數字的連續加減方法

2020-02-15 21:59:12
字體:
來源:轉載
供稿:網友

不用庫,寫了很久,一直出bug,到網上一搜,可以直接輸入之后,eval(str)即可得到結果!

eval程序如下:

s=input("請輸入要運算的數字")print("The result is{}".format(eval(s)))

下面是不用eval實現加減的代碼:主要思想就是通過一個標志位flag來計算是否進行加減,其他的都很好理解

s=input("請輸入要運算的數字")l=len(s)h=0i=0flag=1a=0for 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=0print(h)

現在貼上一直出錯的代碼,也算是長點經驗,提醒自己下一次細心一點:

s=input("請輸入要運算的數字")l=len(s)h=0i=0while 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-=aprint(h)
#錯誤類型:IndexError: string index out of range(字符串越界) 

說明一下,越界有兩個原因:

①能夠訪問的最大字符串是len(str)-1 (ps上圖直接是len(str))

②python執行的方法是一句一句執行的,所以i<=l-1應該放在s[i] != '+'的前面

下面貼上修改過后能運行并且可以輸出正確結果的代碼:

s=input("請輸入要運算的數字")l=len(s)-1h=0i=0while 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-=aprint(h)

以上這篇python實現輸入數字的連續加減方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 修水县| 河北省| 宾川县| 西乌珠穆沁旗| 蕉岭县| 怀化市| 盘山县| 四平市| 阿拉尔市| 九江县| 绥化市| 稷山县| 金秀| 景谷| 阿瓦提县| 陆川县| 吉木萨尔县| 鄂温| 柯坪县| 平远县| 房产| 伊吾县| 射洪县| 永川市| 静乐县| 临湘市| 元朗区| 乌拉特前旗| 垣曲县| 宕昌县| 郑州市| 当阳市| 永平县| 永安市| 富川| 阿巴嘎旗| 松滋市| 庆阳市| 兴和县| 平谷区| 峨边|