1.python基础语法

1. 标识符(Identifiers)

标识符是Python中用来命名变量、函数、类、模块等的名称。它是编程的基本构建块,必须遵守特定的规则,以确保代码的可读性和正确性。

规则

  • 组成:标识符可以由字母(a-z、A-Z)、数字(0-9)和下划线(_)组成,但不能以数字开头。

  • 大小写敏感:Python区分大小写,例如myVarMyVar是不同的标识符。

  • 长度:没有严格限制,但建议保持简洁(PEP 8风格指南推荐)。

  • 保留字:不能使用Python的关键字作为标识符(详见下一节)。

  • 最佳实践:使用描述性名称,如user_age而不是a,以提高代码可读性。避免使用特殊字符或空格。

示例

# 有效标识符
my_variable = 10
_userName = "Alice"
PI = 3.14159  # 常量通常全大写

# 无效标识符(会引发SyntaxError)
2nd_place = "Silver"  # 以数字开头无效
my-var = 5            # 连字符无效

潜在陷阱

  • 如果标识符与内置函数重名(如list = [1,2,3]),它会覆盖内置函数,导致后续代码出错。解决方法:使用del list删除或避免重名。

标识符是Python中“命名一切”的基础,掌握它能让你写出更清晰的代码。

2. 关键字(Keywords)

关键字是Python语言预定义的保留字,具有特殊含义,不能用作标识符。它们定义了语言的核心结构,如控制流、数据类型等。

完整列表(Python 3.x)

Python的关键字包括:False, None, True, and, as, assert, async, await, break, class, continue, def, del, elif, else, except, finally, for, from, global, if, import, in, is, lambda, nonlocal, not, or, pass, raise, return, try, while, with, yield

如何查看

你可以使用keyword模块来列出所有关键字:

import keyword
print(keyword.kwlist)

示例与用法

  • if 用于条件判断:if x > 0: print("Positive")

  • def 定义函数:def greet(): print("Hello")

潜在陷阱

  • 尝试将关键字用作变量名会引发SyntaxError,如if = 5。始终检查拼写,并使用工具如Pylint来避免。

关键字是Python的“词汇表”,理解它们能帮助你阅读和编写更复杂的代码。

3. 注释(Comments)

注释是代码中不被解释器执行的部分,用于解释代码逻辑、添加TODO或禁用代码。它们提升代码的可维护性,尤其在团队协作中。

类型

  • 单行注释:以#开头,直到行尾。

  • 多行注释:没有官方多行注释,但可以使用三引号字符串("""''')作为文档字符串,如果不赋值给变量,它不会执行。

  • 文档字符串:函数或类开头的三引号字符串,用于生成文档。

示例

# 这是一个单行注释
x = 10  # 行尾注释

"""
这是一个多行注释。
它可以跨越多行。
"""
def my_function():
    """这是一个文档字符串,用于描述函数。"""
    pass

最佳实践

  • 注释应该解释“为什么”而不是“做什么”(代码本身已经说明了“做什么”)。

  • 保持注释简洁,避免冗余。

  • 潜在陷阱:过多注释会使代码杂乱;确保注释与代码同步更新。

注释是“代码的自述书”,养成写注释的习惯会让你成为更好的程序员。

4. 行与缩进(Lines and Indentation)

Python使用缩进来定义代码块,而不是大括号。这使得代码更具可读性,但也要求严格的缩进规则。

规则

  • 缩进:使用4个空格(PEP 8推荐)或制表符(Tab),但不要混用。每个缩进级别表示一个代码块。

  • :Python语句通常一行一个,但可以跨多行。

  • 空行:用于分隔逻辑部分(详见第8节)。

示例

if True:
    print("This is indented")  # 4 spaces indent
    if False:
        print("Nested indent")  # Another 4 spaces

# 不正确的缩进会引发IndentationError
if True:
print("No indent")  # Error!

潜在陷阱

  • 混用空格和Tab会导致TabError。使用编辑器的自动缩进功能。

  • 最佳实践:始终使用空格缩进,以确保跨平台一致性。

缩进是Python的独特之处,它强制代码整洁。

5. 多行语句(Multi-Line Statements)

Python允许语句跨越多行,使用反斜杠\或括号来连接。

示例

# 使用反斜杠
total = 1 + \
        2 + \
        3

# 使用括号(推荐,无需反斜杠)
total = (1 +
         2 +
         3)

最佳实践

  • 对于长列表或表达式,使用括号更可读。

  • 潜在陷阱:忘记反斜杠会导致SyntaxError

这允许编写更长的表达式而不牺牲可读性。

6. 数字类型(Number Types)

Python支持多种数字类型,用于存储整数、浮点数和复数。

类型

  • int:任意大小整数(如10)。

  • float:浮点数(如3.14)。

  • complex:复数(如1 + 2j)。

示例

integer = 42
floating = 3.14159
complex_num = 1 + 2j

print(type(integer))  # <class 'int'>
print(type(floating)) # <class 'float'>

操作与转换

  • 支持加减乘除、取模(%)、幂(**)。

  • 转换:int(3.14) -> 3;float(42) -> 42.0。

  • 潜在陷阱:浮点精度问题,如0.1 + 0.2 == 0.3 为False(使用decimal模块解决)。

数字是数据的基础,理解类型转换很重要。

7. 字符串(Strings)

字符串是文本序列,使用单引号'、双引号"或三引号表示。

规则

  • 不可变:字符串一旦创建,不能修改。

  • 转义:使用\转义特殊字符,如\'

  • 格式化:使用f-strings(Python 3.6+)或format()

示例

single = 'Hello'
double = "World"
multi = """Multi
line"""

# 拼接
greeting = single + " " + double

# 格式化
name = "Alice"
print(f"Hello, {name}!")  # Hello, Alice!

操作

  • 切片:s[0:5]

  • 方法:upper()lower()split()

  • 潜在陷阱:字符串是不可变的,所以s = s + "new" 创建新字符串(效率低时用join())。

字符串处理是Python的强项,尤其在文本操作中。

8. 空行(Blank Lines)

空行用于分隔代码的逻辑部分,提高可读性。Python解释器忽略空行。

规则(PEP 8)

  • 函数或类之间用两个空行。

  • 函数内部逻辑块之间用一个空行。

  • 模块顶部和底部无空行。

示例

def function1():
    pass

# 两个空行分隔函数

def function2():
    pass

最佳实践

  • 不要滥用空行,以免代码显得稀疏。

  • 潜在陷阱:过多空行不影响执行,但影响可读性。

空行就像段落分隔符,让代码“呼吸”。

9. 等待用户输入(Waiting for User Input)

使用input()函数从用户获取输入,阻塞执行直到输入。

示例

name = input("Enter your name: ")
print(f"Hello, {name}!")

细节

  • input()返回字符串;需转换类型,如age = int(input("Age: "))

  • Python 2.x用raw_input(),但我们聚焦Python 3。

  • 潜在陷阱:无效输入导致ValueError(用try-except处理)。

这常用于交互式脚本。

10. 同一行显示多条语句(Multiple Statements on a Single Line)

使用分号;在同一行放置多条语句,但不推荐,因为降低可读性。

示例

x = 5; y = 10; print(x + y)  # 15

最佳实践

  • 仅用于简单情况;否则每行一条语句。

  • 潜在陷阱:调试困难。

保持代码简洁,但优先可读性。

11. 多个语句构成代码组(Code Blocks)

代码组是由缩进定义的一组语句,如if、for、def中的块。

示例

if x > 0:
    print("Positive")  # 代码组开始
    print("End")       # 代码组结束

细节

  • 所有语句必须相同缩进。

  • 空块用pass占位。

  • 潜在陷阱:缩进不一致导致错误。

这是Python结构的核心。

12. print 输出(Print Output)

print()函数输出到控制台,支持多个参数和格式化。

示例

print("Hello", "World")  # Hello World
print("Value:", 42, sep=" - ")  # Value: - 42
print("No newline", end=" ")    # No newline 

选项

  • sep:参数分隔符(默认空格)。

  • end:结束符(默认换行)。

  • 潜在陷阱:Python 2.x的print无括号。

print是调试和输出的基本工具。

13. import 与 from...import(Importing Modules)

模块是Python文件,import用于引入功能。

示例

import math
print(math.pi)  # 3.141592653589793

from math import pi, sqrt
print(pi)       # 3.141592653589793
print(sqrt(16)) # 4.0

区别

  • import module:使用module.func()

  • from module import func:直接使用func()

  • import as:别名,如import numpy as np

  • 潜在陷阱:循环导入或名称冲突(用if __name__ == "__main__":避免)。

模块化是Python强大之源。

14. 命令行参数(Command-Line Arguments)

使用sys.argv访问脚本的命令行参数。

示例

# 文件: script.py
import sys
print("Script name:", sys.argv[0])
print("Arguments:", sys.argv[1:])

运行:python script.py arg1 arg2 输出脚本名和参数。

高级

  • 使用argparse模块解析复杂参数。

  • 潜在陷阱:sys.argv[0]总是脚本名;索引越界需检查。

这使脚本更灵活。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值