zh
English
Español
Tiếng Việt
Deutsch
Українська
Português
Français
भारतीय
Türkçe
한국인
Italiano
Gaeilge
اردو
Indonesia
Polski 每种编程语言都有一套自己遵循的规则或语法。违反这些规则会导致我们所说的 python 语法错误,从而导致代码失效。无论你是刚刚开始编程,还是已经有多年的编程经验,这些问题都会发生在每个人身上。如果您曾想知道 "Python 中的语法错误是什么?本文将介绍最常见的语法错误,并解释如何在编码时修复它们。
当 Python 出现语法错误时,它会提供一条指向问题的消息。该信息通常包括
让我们来看看程序员经常遇到的 Python 常见语法错误。
初学者最常犯的错误之一就是忘记关闭括号。这在函数调用和嵌套结构中尤其常见。
例如
print("Hello, World!"
问题信息:
修复:
确保所有括号都正确闭合。
print("Hello, World!")
缩进指定了代码块。如果缩进出现问题,可能会导致 Python 语法错误。
例如
def greet():
print("Hello, World!")
问题信息:
修复:
正确缩进代码块。
def greet():
print("Hello, World!")
忘记在列表或字典的元素之间加上逗号是另一个常见错误。
例如
fruits = {"type": "sweert" "name": "orange"}
问题信息:
修复:
在 "sweert "和 "name "之间加上缺少的逗号。
fruits = {"type": "sweert", "name": "orange"}
不恰当地使用这些关键字也会导致语法问题。关键字是具有特殊含义的保留字。
例如
class = "Beginner"
问题信息:
修复:
选择一个非保留关键字的不同名称。
level = "Beginner"
变量名必须遵守特定的规则。使用非法变量名,如以数字开头或包含空格,会导致 Python 语法错误。
例如
2name = "John"
问题信息:
修复:
使用有效的变量名。
name2 = "John"
字符串必须用引号括起来。忘记关闭字符串会导致语法问题。
例如
message = "Hello, World!
问题信息:
修复:
确保用相同类型的引号结束字符串。
message = "Hello, World!"
如果在复合条件语句(如 if、for、while 或 def)末尾缺少冒号(:),就会出现语法问题。
例如
def greet()
print("Hello, World!")
问题信息:
修复:
在复合语句末尾加上冒号。
def greet():
print("Hello, World!")
错误使用操作符会导致 Python 语法错误。这包括赋值操作符和比较操作符。
例如
if x = 10:
print("x is 10")
问题信息:
修复:
使用正确的比较运算符。
if x == 10:
print("x is 10")
让我们来看看一个简单的网络扫描脚本,它是否会遇到任何 bug,并帮助我们了解如何在 python 内置调试器 pdb 中修复语法错误。
原编码
import requests
from bs4 import BeautifulSoup
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
titles = soup.find_all("h1")
for title in titles
print(title.text)
问题信息:
修复:
在 for 循环后加上缺少的冒号。
import requests
from bs4 import BeautifulSoup
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
titles = soup.find_all("h1")
for title in titles:
print(title.text)
使用 pdb 进行调试:
在循环前添加以下一行,以启动调试器。
import pdb; pdb.set_trace()
添加带有断点标记的遮光代码:
import requests
from bs4 import BeautifulSoup
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
titles = soup.find_all("h1")
import pdb; pdb.set_trace()
for title in titles:
print(title.text)
运行脚本时,pdb 调试器将在断点处启动。
> /path/to/your/script.py(10)()
-> for title in titles:
(Pdb)
调试命令
例会:
(Pdb) n
> /path/to/your/script.py(11)()
-> print(title.text)
(Pdb) p titles
[<h1>Example Domain</h1>]
(Pdb) c
Example Domain
有了 pdb,您可以连续步进您的程序,观察不同变量的值,了解代码是如何执行的,从而快速发现并解决问题。
使用 pdb,你可以逐步检查你的程序,检查重要变量的值,并跟踪控制流以追踪错误和逻辑错误。除以零、访问列表中超出范围的项目或使用未定义的变量等常见问题都可以通过这种方法发现。
例如
numbers = [1, 2, 3]
print(numbers[3])
问题信息:
修复:
确保您正在访问有效的列表索引。
print(numbers[2])
Try-except 块可让你封装可能导致问题的代码。通过捕捉这些问题,即使代码中出现语法错误,程序也能继续顺利运行。
例如
try:
result = 10 / 0
except ZeroDivisionError:
print("You can't divide by zero!")
熟悉 Python 中的常见错误并查看语法错误示例是每个开发人员都应该做的事情。您对诊断信息关注得越多,修复得越快,您的代码就会运行得越流畅。使用真正支持您工作的工具和提示。
评论: 0