欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python異常之常見的Bug類型解決方法

 更新時(shí)間:2022年03月18日 09:15:09   作者:Python-派大星  
這篇文章主要介紹了Python異常之常見的Bug類型解決方法,主要分享一些粗心導(dǎo)致和知識(shí)不熟練導(dǎo)致的語法錯(cuò)誤以及被迫掉坑等內(nèi)容,文章介紹非常詳細(xì)需要的小伙伴可以參考一下

一、粗心導(dǎo)致的語法錯(cuò)誤SyntaxError

1、input輸入報(bào)錯(cuò)

age=input('請(qǐng)輸入你的年齡:')
if age>=18:
? ? print("成年人做事需要。。。。")

報(bào)錯(cuò):TypeError: '>=' not supported between instances of 'str' and 'int'

因?yàn)閕nput輸入返回值是字符串所以無法與整數(shù)類型數(shù)字比較

解決辦法:input前面加上int(),把input輸入的數(shù)轉(zhuǎn)為整數(shù)類型,就可以比較數(shù)據(jù)了

age=int(input('請(qǐng)輸入你的年齡:'))
if age>=18:
? ? print("成年人做事需要。。。。")

2、循環(huán)語句報(bào)錯(cuò)

while i<10:
? ? print (i)

循環(huán)語句報(bào)錯(cuò):錯(cuò)誤原因,沒有循環(huán)變量初始值,也沒有循環(huán)變量的遞增,然后使用括號(hào)不規(guī)范,使用的中文的括號(hào)

解決方法: 添加虛幻變量的初始值,添加循環(huán)變量的遞增,將不規(guī)范的括號(hào)改正(使用中文括號(hào))

循環(huán)要有三要素:

?i=1 ? #循環(huán)變量的起始值
while i < 10: ? #循環(huán)的條件語句
? ? print(i)
? ? i+=1 ? #變量的遞增

3、賦值報(bào)錯(cuò)

for i in range(3):
? ? uname =input("請(qǐng)輸入用戶名:")
? ? upwd=input("請(qǐng)輸入密碼:")
? ? if uname="admin" and upwd=pwd:
? ? ? ? print("登陸成功!")
? ? else
? ? ? ? print("輸入有誤")
else
? ? print("對(duì)不起,三次均輸入錯(cuò)誤")

報(bào)錯(cuò):SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?

錯(cuò)誤多處:=是賦值,==才是比較,if語句比較時(shí)使用了=賦值語句,所以出錯(cuò),還有就是未定義比較的內(nèi)容admin然后就是else語句后面未加:

解決方法:  在if語句比較處將=換成==,因?yàn)?是賦值,==是比較,還有就是在循環(huán)開始前加上用來比較的變量,然后再else語句后加上冒號(hào):

admin="hua"
pwd="123456"
for i in range(3):
? ? uname =input("請(qǐng)輸入用戶名:")
? ? upwd=input("請(qǐng)輸入密碼:")
? ? if uname==admin and upwd==pwd:
? ? ? ? print("登陸成功!")
? ? else:
? ? ? ? print("輸入有誤")
else:
? ? print("對(duì)不起,三次均輸入錯(cuò)誤")

粗心導(dǎo)致錯(cuò)誤的自查寶典:

  • 1、漏了末尾的冒號(hào),如if語句,循環(huán)語句,else子句等。
  • 2、縮進(jìn)錯(cuò)誤,該縮進(jìn)的沒縮進(jìn),不該縮進(jìn)的卻縮進(jìn)了。
  • 3、把英文符號(hào)寫成中文符號(hào)沒比如說:引號(hào),冒號(hào),括號(hào)
  • 4、字符串拼接的時(shí)候,把字符串和數(shù)字拼接在一起
  • 5、沒有定義變量,比如說while的循環(huán)條件變量
  • 6、"=="比較運(yùn)算符和"="賦值運(yùn)算符的混用

二、知識(shí)不熟練導(dǎo)致的錯(cuò)誤Bug

1、索引越界問題 IndexError

lst=[11,22,33,44]
print(lst[4])

錯(cuò)誤:IndexError: list index out of range 索引越界,雖然有四個(gè)數(shù),但索引不是從一開始算,正索引是從0開始算,負(fù)索引是從-1開始算

解決辦法: 改寫為正確的索引

lst=[11,22,33,44]
print(lst[3])

2、append()函數(shù)的使用報(bào)錯(cuò)

lst=[]
lst=append("A","B","C")
print((lst))

報(bào)錯(cuò):NameError: name 'append' is not defined 錯(cuò)誤的方法使用append()函數(shù)

解決方法:掌握正確的使用函數(shù)的技巧,使用函數(shù)不是使用=調(diào)用,而是使用.去調(diào)用函數(shù),并且append()函數(shù)一次只能增加一個(gè)元素

lst=[]
lst.append("A")
lst.append("B")
lst.append("C")
print((lst)) ?#返回值['A', 'B', 'C']

知識(shí)點(diǎn)掌握不熟練的導(dǎo)致的錯(cuò)誤,唯一的解決方法就是練練練

三、思路不清晰導(dǎo)致的問題解決方案

1、使用print()函數(shù)

將出錯(cuò)的代碼用print輸出,將有問題的代碼注釋掉,一步一步的調(diào)試,最后將想要的結(jié)果輸出

2、使用"#"暫時(shí)注銷部分代碼 

解決方法:多加練習(xí),掌握基礎(chǔ)知識(shí)

四、被動(dòng)掉坑

程序代碼邏輯沒有錯(cuò),知識(shí)因?yàn)橛脩翦e(cuò)誤操作或者一些"例外情況"而導(dǎo)致的程序崩潰

被動(dòng)掉坑問題的解決方案:

python提供了異常處理機(jī)制,可以在異常出現(xiàn)時(shí)即使補(bǔ)貨,然后內(nèi)部消化,讓程序繼續(xù)運(yùn)行
異常捕獲處理 try:   except  xxx:語句   xxx為錯(cuò)誤類型

try:用于放入容易出錯(cuò)的代碼
except用于處理異常并正常輸出后續(xù)代碼,可以使代碼不會(huì)報(bào)錯(cuò)結(jié)束,可以出現(xiàn)多個(gè)except語句來處理多種異常類型。

使用方式:

try:

將容易出錯(cuò)的代碼放入其中
易出錯(cuò)代碼
易出錯(cuò)代碼

except  可能出現(xiàn)的類型:

print(捕獲異常后用于提示的話語)

except  可能出現(xiàn)的類型:

print(捕獲異常后用于提示的話語)

一般代碼:

a=int(input("請(qǐng)輸入第一個(gè)整數(shù):"))
b=int(input("請(qǐng)輸入第二個(gè)整數(shù):"))
result=a/b
print("結(jié)果為:",result)

極容易出現(xiàn)報(bào)錯(cuò),導(dǎo)致終止后面的程序,比如整除不能輸入0,不能輸入英文,只要輸入了,那么就會(huì)報(bào)錯(cuò)結(jié)束程序

所以就需要使用到try:  except

try: ? ?#將易錯(cuò)代碼放進(jìn)去
? ? a=int(input("請(qǐng)輸入第一個(gè)整數(shù):"))
? ? b=int(input("請(qǐng)輸入第二個(gè)整數(shù):"))
? ? result=a/b
? ? print("結(jié)果為:",result)
except ZeroDivisionError: ? #不允許被0除的異常(異常類型在程序報(bào)錯(cuò)時(shí)會(huì)出現(xiàn),將這種異常類型放入后,出現(xiàn)該異常就會(huì)自動(dòng)處理,而不會(huì)報(bào)錯(cuò)終止程序)
? ? print("對(duì)不起,除數(shù)不允許為0") ?#出現(xiàn)該異常后的提示
except ValueError: ? ?#輸入異常,int括號(hào)里的input只能輸入數(shù)字串,不能輸入字符串
? ? print("只能輸入數(shù)字串") ? #出現(xiàn)該異常后的提示
print("程序結(jié)束") ? ?#程序可能出現(xiàn)的異常都用except寫出來了,所以不管出現(xiàn)什么異常,后面的程序一樣運(yùn)行

到此這篇關(guān)于Python異常之常見的Bug類型解決方法的文章就介紹到這了,更多相關(guān)Python異常解決內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python遍歷文件夾和讀寫文件的實(shí)現(xiàn)方法

    Python遍歷文件夾和讀寫文件的實(shí)現(xiàn)方法

    本篇文章主要介紹了Python遍歷文件夾和讀寫文件的實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • windows下python虛擬環(huán)境virtualenv安裝和使用詳解

    windows下python虛擬環(huán)境virtualenv安裝和使用詳解

    這篇文章主要介紹了windows下python虛擬環(huán)境virtualenv安裝和使用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-07-07
  • Python強(qiáng)大的語法支持你知道嗎

    Python強(qiáng)大的語法支持你知道嗎

    這篇文章主要為大家介紹了Python強(qiáng)大的語法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助,希望能夠給你帶來幫助
    2021-11-11
  • 使用Python寫一個(gè)小游戲

    使用Python寫一個(gè)小游戲

    這篇文章主要介紹了使用Python快速寫一個(gè)小游戲,本次開發(fā)的小游戲叫alien invasion,具體實(shí)現(xiàn)過程大家參考下本文
    2018-04-04
  • Pandas數(shù)據(jù)分析之groupby函數(shù)用法實(shí)例詳解

    Pandas數(shù)據(jù)分析之groupby函數(shù)用法實(shí)例詳解

    這篇文章主要為大家介紹了Pandas數(shù)據(jù)分析之groupby函數(shù)用法實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • Django中引入bootstrap的詳細(xì)圖文詳解

    Django中引入bootstrap的詳細(xì)圖文詳解

    Django是基于Python的一個(gè)Web開發(fā)框架,可以實(shí)現(xiàn)前端和后臺(tái)間的數(shù)據(jù)連接,下面這篇文章主要給大家介紹了關(guān)于Django中引入bootstrap的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • Python數(shù)據(jù)可視化之繪制柱狀圖和條形圖

    Python數(shù)據(jù)可視化之繪制柱狀圖和條形圖

    今天帶大家學(xué)習(xí)怎么利用Python繪制柱狀圖,條形圖,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • python輸出結(jié)果刷新及進(jìn)度條的實(shí)現(xiàn)操作

    python輸出結(jié)果刷新及進(jìn)度條的實(shí)現(xiàn)操作

    這篇文章主要介紹了python輸出結(jié)果刷新及進(jìn)度條的實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • OpenCV實(shí)現(xiàn)手勢(shì)虛擬拖拽的使用示例(附demo)

    OpenCV實(shí)現(xiàn)手勢(shì)虛擬拖拽的使用示例(附demo)

    本文主要介紹了OpenCV實(shí)現(xiàn)手勢(shì)虛擬拖拽的使用示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • python爬蟲之基金信息存儲(chǔ)

    python爬蟲之基金信息存儲(chǔ)

    這篇文章主要介紹了python爬蟲之基金信息存儲(chǔ),前面已經(jīng)講了很多次要進(jìn)行數(shù)據(jù)存儲(chǔ),終于在上一篇中完成了數(shù)據(jù)庫(kù)的設(shè),在這篇文章我們就來完成數(shù)據(jù)存儲(chǔ)操作部分的介紹,需要的朋友可以參考一下
    2022-05-05

最新評(píng)論