unity消息隊列判斷字符串相等有錯誤_Python3十大經典錯誤及解決辦法

f9c2cd9e-7913-eb11-8da9-e4434bdf6706.jpeg

◆?◆?◆ ?◆?◆

接觸了很多Python愛好者,有初學者,亦有轉行人。不論大家學習Python的目的是什么,總之,學習Python前期寫出來的代碼不報錯就是極好的。下面,嚴小樣兒為大家羅列出Python3十大經典錯誤及解決辦法,供大家學習。

一、 SyntaxError 語法錯誤

(1)引號沒有成對出現
報錯信息:
1SyntaxError:EOL?while?scanning?string?literal
錯誤示例:
1string = 'hello world
解決方法:
字符串切記要放在引號中,單引號雙引號無所謂。當一個字符串中包含單引號或雙引號時,很容易出現引號不配對的情況。
(2)圓括號沒有成對出現
報錯信息:
1SyntaxError:unexpected?EOF?while?parsing
錯誤示例1:
1result?=?(1024+(512*2)/128
錯誤示例2:
1print('hello?world'
解決方法:
使圓括號成對出現。在書寫復雜的表達式或調用函數時會經常遇到這個問題。
(3)錯誤使用自操作運算符++或--等
報錯信息:
1SyntaxError:invalid?syntax
錯誤示例:
1v?=?642v++
解決方法:
在Python語言中,沒有類似C語言的++或--等自操作運算符。與之類似功能的用法是+=或-=運算符。例如,使用下面的代碼進行讓變量v進行自增1的操作。
1v?+=?1
(4)試圖使用等號(=)判斷兩個運算量是否相等
報錯信息:
1SyntaxError:invalid?syntax
錯誤示例:
1if?v=64:2????print('hello?world')
解決方法:
在Python語言中使用兩個等號(==)作為判斷兩個運算量是否相等的關系運算符,而等號(=)是賦值運算符。
(6)錯誤使用Python語言關鍵字作為變量名
報錯信息:
1SyntaxError:?can`t?assign?to?keyword
錯誤示例:
1False=?1
解決方法:
不要使用Python語言關鍵字作為變量名、函數名或類名等。在Python Shell窗口中,使用help('keywords')指令可以查看Python語言的關鍵字列表。
(7)忘記在if/elif/else/while/for/def/class等語句末尾添加冒號(:)
報錯信息:
1SyntaxError:invalid?syntax
錯誤示例1:
1a?=?'12345'2for?i  in?a3????print(i)
錯誤示例2:
1def?sayhi()2????print('Hi')
解決方法:
在if/elif/else/while/for/def/class等語句末尾添加冒號(:)即可。牢記語法規則,多多練習多多敲代碼。
(8)錯誤地使用了中文標點符號
報錯信息:
1SyntaxError:?invalid?character?in?identifier
錯誤示例1:
1print('hello','world')2#?錯誤原因:逗號是中文標點符號
錯誤示例2:
1for?i?in?range(10):2#?錯誤原因:冒號是中文標點符號
解決方法:
除了字符串中可以有中文外,其它任何情況均使用英文狀態進行編輯。

二、 IndentationError 縮進錯誤

報錯信息:
1IndentationError:unindent does not?match?any?outer?indentation?level2IndentationError:expected an indented block
錯誤示例:
1a?=?22while?a?0:3??????print('hello')4????a -= 15else:6????print('0.0')
解決方法:
上述代碼中while語句體內的代碼縮進沒有對齊。正確使用縮進排版代碼。當代碼是從其它地方復制并粘貼過來的時候,這個錯誤較多見。

三、 NameError 名字錯誤

當變量名、函數名或類名等書寫錯誤,或者函數在定義之前就被調用等情況下,就會導致名字錯誤。報錯信息:
1NameError:?name?'pirnt'?is?not?defined2NameError:?name?'sayhi'?is?not?defined3NameError:?name?'pd'?is?not?defined
錯誤示例1:
1pirnt('hello?world')2#?錯誤原因:print拼寫錯誤。
錯誤示例2:
1sayhi()23def?sayhi():4????pass5#?錯誤原因:在函數定義之前對函數進行調用。
錯誤示例3:
1pd.read_excel(r'file.xlsx')2#?錯誤原因:在調用pandas方法前并未導入pandas庫或者并未起別名為pd。
解決方法:
正確書寫變量名、函數名或類名等,在使用變量前先進行賦值,將函數的定義放在函數調用之前,在使用第三方庫前先進行導入、調包等等。即保證某個名字(標識符)先存在,才能被使用。

四、 TypeError 類型錯誤

(1)整數和字符串不能進行連接操作
報錯信息:
1TypeError:?Can`t?convert?'int'?object?to?str?implicitly2TypeError:?unsupported?operand?type(s)?for?+?:?'float'?and?'str'
錯誤示例1:
1print('score:'+100)
錯誤示例2:
1print(9.8?+?'seconds')
解決方法:
在整數、浮點數或布爾值與字符串進行連接操作之前,先使用str()函數將其轉換為字符串類型。
(2)調用函數時參數的個數不正確,或者未傳遞參數
報錯信息:
1TypeError:?input?expected?at?most?1?arguments,got?22TypeError:?say()?missing?1?required?positional?argument:'words'
錯誤示例1:
1input('輸入姓名','年齡')2#?錯誤原因:試圖給input()函數提供第2個參數。
錯誤示例2:
1def?say(words):2????print(words)34say()5#?錯誤原因:調用函數時未傳遞參數。
解決方法:
記住函數用法,了解函數的參數定義,使用正確的方法調用函數即可。

五、 KeyError 鍵錯誤

使用不存在的鍵名訪問字典中的元素,就會發生這個錯誤。報錯信息:
1KeyError:?'c'
錯誤示例:
1d?=?{'a':1,'b':2}2print(d['c'])
解決方法:
在訪問字典中的元素時,先用in關鍵字檢測要訪問的鍵名是否存在,或者是使用字典和get()方法安全地訪問字典元素。

六、 IndexError 索引錯誤

當訪問列表的索引超出列表范圍時,就會出現索引錯誤。報錯信息:
1IndexError:?list?index?out?of?range
錯誤示例:
1a?=?[1,2,3]2print(a[3])3#?錯誤原因:列表a中不存在第4個索引。列表的索引從0開始編號。
解決方法:
通過len()函數獲取列表的長度,然后判斷要訪問的索引是否超出列表范圍。

七、 UNboundLocalError 未初始化本地變量錯誤

在函數中,如果對未聲明的全局變量進行修改操作,將會遇到這個錯誤。報錯信息:
1UnboundLocalError:?local?variable?'s'?referenced?before?assignment
錯誤示例:
1s?=?123def?test():4????s?+=?15????print(s)67test()8#?錯誤原因:在函數內對未聲明的全局變量s進行了自增操作。9# Python將變量s視為一個本地的局部變量,但該變量未初始化。
解決方法:
在函數內使用全局變量時,使用global關鍵字對其進行聲明即可。

八、 AttributeError 屬性錯誤

報錯信息:
1AttributeError:?'tuple'?object?has?no?attribute?'append'2AttributeError:?'DataFrame'?object?has?no?attribute?'col'
錯誤示例1:
1t?=?(1,2,3)2t.append(4)3#?錯誤原因:元祖不可變。
錯誤示例2:
1df?=?pd.read_excel(r'data.xlsx')2df.col3#?錯誤原因:DataFrame沒有col屬性,應該為columns。
解決方法:
正確書寫類的屬性名,不要發生書寫錯誤。深刻理解元祖,列表的區別,可將元祖轉換為列表添加元素。

九、 ModuleNotFoundError 模塊不存在

報錯信息:
1ModuleNotFoundError:?No?module?named?'pandas'
錯誤示例1:
1import?pandas?as?pd2#?沒有導入成功,報上面錯誤。
解決方法:
這種報錯常見于兩種場景中,第一、未下載、安裝該模塊;第二、將調用的模塊路徑與被調用的模塊路徑不一致等。第一種情況直接下載安裝即可,在cmd中,pip install xxx;第二種情況電腦中可能存在多個版本的Python,建議保留一個常用的即可。

十、 FileNotFoundError 文件不存在

報錯信息:
1FileNotFoundError:?File?b'E:\test\test_data.csv'?does?not?exist
錯誤示例:
1pd.read_csv('E:\test\test_data.csv')2#?錯誤原因:路徑中包含'\t',系統錯誤地認為是制表符。
解決方法:
在確保該路徑下確實存在所寫文件后,在讀取文件路徑前面加'r',表示只讀,作為文件路徑讀取;或者使用雙斜杠'\ \'來進行轉義,形如:'E:\ \test\ \test_data.csv'。偶爾也會發生文件名、路徑的確寫錯,犯一些低級錯誤。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454705.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454705.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454705.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php qmqp 沒有方法,CentOS7 php 安裝 amqp擴展

繼續安裝完 rabbitmq后,安裝phpqmqp擴展1.安裝rabbitmq-c安裝最新版wget -c https://github.com/alanxz/rabbitmq-c/releases/download/v0.8.0/rabbitmq-c-0.8.0.tar.gztar zxf rabbitmq-c-0.8.0.tar.gzcd rabbitmq-c-0.8.0./configure --prefix/usr/local/rabbitmq…

如何提高UDP的可靠性

TCP是通過確認機制和超時重傳機制實現可靠傳輸 UDP UDP它不屬于連接型協議,因而具有資源消耗小,處理速度快的優點,所以通常音頻、視頻和普通數據在傳送時使用UDP較多,因為它們即使偶爾丟失一兩個數據包,也不會對接收結…

CentOS 7鏡像下載

方式一 官網下載 官網鏈接:http://isoredirect.centos.org/centos/7/isos/x86_64/ Actual Country 國內資源 Nearby Countries 周邊國家資源 方式二 阿里云下載 阿里云站點:http://mirrors.aliyun.com/centos/7/isos/x86_64/ 各個版本的ISO鏡像文件…

Docker Dirty Cow逃逸

2019獨角獸企業重金招聘Python工程師標準>>> 在Linux中,有一個功能:VDSO(virtual dvnamic shared object),這是一個小型共享庫,能將內核自動映射到所有用戶程序的地址空間。 Docker逃逸利用Dirty Cow漏洞,將Payload寫到…

九月騰訊,創新工場,淘寶等公司最新面試三十題(更新至10.04)

九月騰訊,創新工場,淘寶等公司最新面試三十題 引言 曾記否,去年的10月份也同此刻一樣,是找工作的高峰期,本博客便是最初由整理微軟等公司面試題而發展而來的。如今,又即將邁入求職高峰期--10月份&#…

oracle 存long,ORACLE中LONG類型字段的存取

Oracle中存取4000字節以上大文本類型可以用此數據類型,其在C#中的讀寫方法如下:注意需要引用 System.Data.OracleClient然后添加命名空間:using System.Data.OracleClientORALCE建庫腳本:CREATE TABLE TE…

創建office一直轉圈_Windows寫字板出現廣告條幅:推薦用戶使用在線版Office

自Windows 95開始,寫字板(Wordpad)應用就一直預裝在Windows操作系統中。它是一款非常簡單的文本編輯器,在功能方面介于記事本和Word之間。近日Rafael Rivera發現微軟正在為這款古老的寫字板添加新功能--在應用中添加廣告橫幅。這個廣告橫幅就是推薦那些寫…

2017軟件工程實踐第二次作業

1、 項目地址:https://github.com/one-piece-zero/sudoku 2、PSP表格記錄的估計耗時 3、解題思路: 在拿到這個題目的時候,我最早想到的是大一下學期做的程序語言綜合設計實踐中的N皇后問題,這兩個題目之間有許多的類似之處&#x…

CentOS7 安裝或遷移 wordpress(完整遷移)

一、安裝Apache web服務器 安裝Apache web服務器: yum install -y httpd # 使用yum安裝 systemctl start httpd # 啟動Apache服務器 systemctl enable httpd # Apache服務器開機后自動啟動 使用瀏覽器打開http://127.0.0.1檢查Apache安裝是否成功。成功后…

WinForm部署問題

WinForm部署問題 1、解決:This implementation is not part of the Windows Platform 問題? 一:單擊 開始 ,單擊 運行 ,鍵入 gpedit.msc ,然后單擊 確定 。    二:依次展開 計算機配置 &…

oracle 未找到段的存儲定義,Exp-00003 no storage definition found issue in oracle 11g (未找到段 (0,0) 的存儲定義)...

連接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit ProductionWith the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,Data Mining and Real Application Tes已導出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集服務…

signal軟件如何退出賬號_超好用的手機視頻剪輯軟件Videoleap內購分享

注意事項【必讀】:1.必須按照下面的教程操作,教程講的很詳細。2.如果遇到帳號密碼錯誤,先看本頁面新密碼再登陸,別亂試密碼。3.如果手機上有你購買的這個軟件,請先卸載,再用我們的蘋果id登陸下載&#xff0…

MySQL 常用內置函數

MySQL官方文檔:https://dev.mysql.com/doc/refman/5.6/en/func-op-summary-ref.html MySQL數據庫提供了很多函數包括 一、數學函數 二、字符串函數 三、日期時間函數 四、聚合函數(常用于GROUP BY從句的SELECT查詢中) 五、條件判斷函數 六、系統信息函數 七、…

python之eval函數,map函數,zip函數

eval(str)函數很強大,官方解釋為:將字符串str當成有效的表達式來求值并返回計算結果。所以,結合math當成一個計算器很好用。 eval()函數常見作用有: 1、計算字符串中有效的表達式,并返回結果 >>> eval(pow(2,…

第一個servlet小程序

第一個servlet小程序 com.fry.servlet.HelloServlet 1 package com.fry.servlet;2 3 import javax.servlet.ServletException;4 import javax.servlet.http.HttpServlet;5 import javax.servlet.http.HttpServletRequest;6 import javax.servlet.http.HttpServletResponse;7 im…

騰訊校園招聘面試的秘密

轉自公司同事戴釗的文章 由于從事基層管理崗位的原因,最近兩年有機會在武漢、南京、上海等地進行校園招聘,為公司選拔優秀人才,在這個過程中接觸過一百多名各種類型的應聘畢業生,我深深為這些莘莘學子渴望進入騰訊的熱情所感動&am…

win10開啟oracle服務器配置,Windows環境(Win10)下安裝、配置服務器類Oracle Database 11g Release 2...

該篇為服務器類Oracle Database 11gRelease 2的安裝、配置,若需安裝、配置桌面類(通常是選擇桌面類,如果是將本機作為服務器來使用,則選擇服務器類),可參考“Windows環境(Win10)下安裝、配置桌面類Oracle Database 11g Release 2”…

簡單的機器學習程序_人體動作識別小程序【機器學習 人工智能】

人體動作識別(Human activity recognition)是健康領域一個熱點問題,它通過加速度計,陀螺儀等傳感器記錄人體運動數據,對人體動作進行識別。最近用微信小程序做了一個動作識別的項目,同時嘗試部署了單片機。首先奉上b站的視頻鏈接&…

python基礎查漏補缺1--算數、字符串與變量

1. math相關函數 函 數描 述ceil(x) 大于或等于x的整數cos(x)  x的余弦 degrees(x)將x的弧度轉換為度數exp(x)e的x次方factorial(n)計算n的階乘(n!),n 必須為整數log(x)以e為底的x的對數log(x,b)以b為底的x的對數pow(x,y)x的y次方radians(s)將x轉換為弧度數sin(x)x的正弦…

CSS布局說——可能是最全的

前言 現在,我們被稱為前端工程師。然而,早年給我們的稱呼卻是頁面仔。或許是職責越來越大,整體的前端井噴式的發展,使我們只關注了js,而疏遠了css和html。 其實,我們可能經常在聊組件化,咋地咋地…