国产探花免费观看_亚洲丰满少妇自慰呻吟_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實現輸入數字的連續加減方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长海县| 新野县| 临澧县| 平顺县| 调兵山市| 瑞丽市| 察雅县| 西吉县| 庆城县| 南皮县| 叙永县| 涿州市| 肃宁县| 黄龙县| 香格里拉县| 绩溪县| 邹城市| 临高县| 阳山县| 永春县| 且末县| 九江县| 蒲城县| 扶沟县| 高雄县| 余姚市| 宾川县| 清河县| 乐安县| 新营市| 青龙| 淳化县| 涪陵区| 金湖县| 团风县| 新巴尔虎右旗| 青神县| 南华县| 西丰县| 景德镇市| 镇平县|