一、基础语法详解
基础语法详解
Python 作为一门简洁优雅的编程语言,其基础语法设计充分考虑了可读性和易用性。本文将深入介绍 Python 编程中的核心基础概念,包括标识符命名规则、保留字使用规范、注释方法、引号介绍、多行语句处理、print 输出以及模块导入机制。
文章目录
-
一、标识符 (Identifiers)
-
二、保留字 (Keywords)
-
三、注释 (Comments)
-
四、引号规则详解
-
五、多行语句
-
六、print 输出
-
七、模块导入机制
-
总结
一、标识符 (Identifiers)
标识符是开发者为变量、函数、类、模块等元素自定义的名称,遵循以下规则:
1、命名规则
- 必须以字母(a-z, A-Z)或下划线
_开头 - 后续字符可以是字母、数字(0-9)或下划线
- 区分大小写(
age和Age是不同的标识符)
2、有效示例
user_name = "Alice" # 合法
_temp = 3.14 # 合法
age2 = 25 # 合法
3、无效示例
2nd_place = "Bob" # 数字开头 → 错误
user-name = "Charlie" # 包含连字符 → 错误
4、命名建议
- 使用小写字母和下划线组合(蛇形命名法):
calculate_average() - 类名采用驼峰命名法:
ClassName - 避免使用单字符(除临时变量外)
5、标识符命名规则
| 关键字 | 含义/用途 |
|---|---|
| and | 逻辑运算符,与 |
| as | 创建别名 |
| assert | 用于调试 |
| break | 跳出循环 |
| class | 定义类 |
| continue | 继续循环的下一个迭代 |
| def | 定义函数 |
| del | 删除对象 |
| elif | 在条件语句中使用,等同于 else if |
| else | 用于条件语句 |
| except | 处理异常,发生异常时如何执行 |
| False | 布尔值,假 |
| finally | 处理异常,无论是否存在异常,都将执行一段代码 |
| for | 创建 for 循环 |
| from | 导入模块的特定部分 |
| global | 声明全局变量 |
| if | 写一个条件语句 |
| import | 导入模块 |
| in | 检查列表、元组等集合中是否存在某个值 |
| is | 测试两个变量是否相等 |
| lambda | 创建匿名函数 |
| None | 表示 null 值 |
| nonlocal | 声明非局部变量 |
| not | 逻辑运算符,非 |
| or | 逻辑运算符,或 |
| pass | 一条什么都不做的语句 |
| raise | 产生异常 |
| return | 退出函数并返回值 |
| True | 布尔值,真 |
| try | try...except 语句 |
| while | 创建 while 循环 |
| with | 用于简化异常处理 |
| yield | 结束函数,返回生成器 |
二、保留字 (Keywords)
Python 预定义了具有特殊含义的保留字,不可用作标识符。可通过以下代码查看所有保留字:
import keyword
print(keyword.kwlist)
# 输出示例: ['False', 'None', 'True', 'and', 'as', 'assert', ...]
常用保留字分类
| 分类 | 保留字 |
|---|---|
| 逻辑控制 | if, else, elif, for, while, break, continue |
| 定义相关 | def, class, lambda, return, yield |
| 逻辑运算 | and, or, not, in, is |
| 异常处理 | try, except, finally, raise |
三、注释 (Comments)
注释是提高代码可读性的重要手段,Python 支持两种注释方式:
1. 单行注释:以 # 开头,代码块
# 计算圆的面积
radius = 5
area = 3.14 * radius ** 2 # 使用圆周率近似值
### 2. 多行注释:使用三引号(实际是多行字符串,但未赋值时被视为注释)代码块
"""
功能说明:
1. 接收用户输入
2. 验证数据有效性
3. 返回处理结果
"""
最佳实践
- 复杂算法前添加功能说明
- 关键变量添加用途说明
- 避免过度注释显而易见的代码
四、数据类型
1、基本数据类型
数值:整数(int)、浮点数(float)、复数(complex)、布尔(bool)
1.1、int整型
num1 = 1_000_000_000_000_000
print(num1) # 1000000000000000
1.2、type 与 isinstance 类型判断
可以使用 type() 来查看变量类型,使用 isinstance() 来判断变量类型
num1 = True
num2 = 10
print(type(num1)) # <class 'bool'>
print(type(num2)) # <class 'int'>
print(type(num1) == type(num2)) # False
print(isinstance(num1, bool)) # True
print(isinstance(num1, int)) # True,Python3中,bool是int的子类
print(isinstance(num2, int)) # True
1.3、float浮点型
num1 = 0.1
num2 = 0.2
print(num1 + num2) # 0.30000000000000004
from decimal import Decimal
num3 = Decimal('1.0')
num4 = Decimal('0.9')
print(num3-num4)
num1 = 1.3e7
print(num1) # 13000000.0
1.4、bool布尔型
布尔型变量只有 True 和 False,用于真假的判断
is 运算符用于比较两个对象的身份(即它们是否是同一个对象,是否在内存中占据相同的位置),而不是比较它们的值
bl1 = True
bl2 = False
print(bl1, bl2) # True False
print(True == 1) # True
print(False == 0) # True
print(True is 1) # False
print(False is 0) # False
2、字符串(str)
str1 = 'This is a "string"'
str2 = "This is a 'string' too"
print(str1) # This is a "string"
print(str2) # This is a 'string' too
sstr1 = "This is a 'string'"
str2 = 'This is a "string" too'
print(str1) # This is a 'string'
print(str2) # This is a "string" too
2.1、 字符串.format()
方式1:不设置指定位置,按默认顺序
int1 = 10
float1 = 3.14159
bool1 = True
str2 = "int1 = {}, float1 = {}, bool1 = {}".format(int1, float1, bool1)
print(str2) # int1 = 10, float1 = 3.14159, bool1 = True
方式2:设置指定位置,不能和方式1混合使用
int1 = 10
float1 = 3.14159
bool1 = True
str2 = "int1 = {0}, float1 = {1}, bool1 = {2}".format(int1, float1, bool1)
print(str2) # int1 = 10, float1 = 3.14159, bool1 = True
方式3:f-字符串
int1 = 10
float1 = 3.14159
str3 = f"int1 = {int1}, float1 = {float1}"
print(str3) # int1 = 10, float1 = 3.14159
3、容器数据类型
列表(list)、元组(tuple)、集合(set)、字典(dist)
4、特殊数据类型
None:表示空值或缺失值,只有一个值 None。常用于函数没有返回值时,或者表示变量没有被赋值
5、图形化分析
| 数据类型 | 中文名称 | 示例 |
|---|---|---|
| int | 整型 | 1 |
| float | 浮点型 | 1.1 |
plain int1 = 10 float1 = 3.14159 bool1 = True str2 = "int1 = {}, float1 = {}, bool1 = {}".format(int1, float1, bool1) print(str2) # int1 = 10, float1 = 3.14159, bool1 = True complex |
复数 | 1+3j |
| bool | 布尔 | True / False |
| str | 字符串 | "hello" |
| list | 列表 | [1, 1, 2, 3] |
| tuple | 元组 | (1, 1, 2, 3) |
| set | 集合 | {1, 2, 3} |
| dict | 字典 | {key: value} |
int、float、complex、bool都属于Number(数字)数据类型
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组)
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)
6、数据类型转换
6.1、 自动类型转换(隐式转换)
对两种不同类型的数据进行运算,较小的数据类型(整数)就会转换为较大的数据类型(浮点数)以避免数据丢失,计算结果为浮点型
num1 = 2
num2 = 3.0
print(num1 + num2) # 5.0
num1 = 123
str1 = "456"
print(num1 + str1) # 报错
6.2、 强制类型转换(显式转换)
| 函数 | 说明 |
|---|---|
int(x[, base]) |
将 x 转换为一个整数,x 若为字符串可用 base 指定进制 |
float(x) |
将 x 转换为一个浮点数 |
complex(real[, imag]) |
创建一个实部为 real,虚部为 imag 的复数 |
str(x) |
将对象 x 转换为一个字符串 |
repr(x) |
将对象 x 转换为一个字符串,可以转义字符串中的特殊字符 |
eval(x) |
执行 x 字符串表达式,并返回表达式的值 |
bin(x) |
将一个整数转换为一个二进制字符串 |
oct(x) |
将一个整数转换为一个八进制字符串 |
hex(x) |
将一个整数转换为一个十六进制字符串 |
ord(x) |
将一个字符转换为它的 ASCII 整数值 |
chr(x) |
将一个整数转换为一个 Unicode 字符 |
tuple(s) |
将序列 s 转换为一个元组 |
list(s) |
将序列 s 转换为一个列表 |
set(s) |
转换 s 为可变集合 |
num_int = 123
num_str = "456"
print("num_int 数据类型为:",type(num_int))
print("类型转换前,num_str 数据类型为:",type(num_str))
num_str = int(num_str) # 强制转换为整型
print("类型转换后,num_str 数据类型为:",type(num_str))
num_sum = num_int + num_str
print("num_int 与 num_str 相加结果为:",num_sum)
print("sum 数据类型为:",type(num_sum))
输出:
num_int 数据类型为: <class 'int'>
类型转换前,num_str 数据类型为: <class 'str'>
类型转换后,num_str 数据类型为: <class 'int'>
num_int 与 num_str 相加结果为: 579
sum 数据类型为: <class 'int'>
7、 输入与输出
7.1、输入
语法:字符串变量 = input(“提示信息”)
# Python开始等待你的输入。这时,你可以输入任意字符,然后按回车后完成输入。
input_str = input("请输入:")
# 输入完成后,不会有任何提示,刚才输入的内容存放到input_str变量里了
print("input_str数据类型为:",type(input_str))
# 输出input_str查看变量内容
print(input_str)
四、引号规则详解
Python 中引号用于定义字符串,有三种形式:
1、字符串定义
代码块
s1 = '单引号字符串' # 可包含双引号
s2 = "双引号字符串" # 可包含单引号
s3 = '''三单引号字符串''' # 支持多行
s4 = """三双引号字符串""" # 支持多行
2、嵌套引号
- 同类型引号需转义:
text = 'It\'s Python' # 使用反斜杠转义
- 混合引号更简洁:
text = "Don't worry" # 推荐方式
3、原始字符串(Raw String)
- 前面加
r或R,忽略转义字符:
path = r"C:\Users\Name" # 反斜杠不会被转义
4、多行字符串
poem = """
Roses are red,
Violets are blue,
Python is awesome!
"""
五、多行语句
当语句过长时,可采用以下方式换行:
1、显式换行:使用反斜杠 \
total = 1 + 2 + 3 + \
4 + 5 + 6
2、隐式换行:在括号(圆括号、方括号、花括号)内自动换行
months = [
'January', 'February', 'March',
'April', 'May', 'June'
]
def calculate_total(
a, b, c, d, e
):
return a + b + c + d + e
六、print 输出
print() 是 Python 最常用的输出函数,具有以下特性:
1、基本用法
代码块
print("Hello, World!") # 输出字符串
print(42) # 输出数字
2、多参数输出
代码块
name = "Alice"
age = 25
print("Name:", name, "Age:", age) # 默认空格分隔
3、格式化输出
- f-string(Python 3.6+ 推荐)
print(f"{name} is {age} years old")
- format() 方法
print("{} is {} years old".format(name, age))
- 百分号格式化
print("%s is %d years old" % (name, age))
4、控制分隔符和结尾
print("Python", "Java", "C++", sep=",") # 用逗号分隔
print("Loading...", end="") # 不换行输出
七、模块导入机制
Python 通过模块化设计实现代码复用,主要有以下导入方式:
1、import 语句
import math
print(math.sqrt(16)) # 使用完整命名空间
import math as m # 使用别名
print(m.pi)
2、from ... import 语句
from math import sqrt, pi # 导入特定成员
print(sqrt(16))
print(pi)
from math import * # 导入所有成员(不推荐)
print(sin(0))
3、相对导入(包内使用)
from .submodule import func # 当前包的子模块
from ..sibling import class_ # 上级包的同级模块
最佳实践
- 优先使用完整导入(
import math)避免命名冲突 - 为长模块名创建合理别名(如
import pandas as pd) - 避免使用
from ... import *导致命名空间污染
总结
- 标识符:不能包含引号,字符串赋值需用引号包裹
- 保留字:直接使用,不加任何引号
- 注释:
#或三引号内的内容(无论是否含引号)均被忽略 - 引号规则:
- 定义字符串时单/双/三引号均可
- 嵌套同类引号需转义
- 原始字符串加
r前缀
- 多行语句:字符串跨行时注意引号闭合
- print 输出:灵活处理引号转义和字符串格式化
- 模块导入:动态导入时模块名作为字符串传递

浙公网安备 33010602011771号