本博文默认读者已在自己搭建的环境中成功输出 hello world
建议开发环境:

  • Anaconda + Python 3.12
  • PyCharm

在这里插入图片描述

变量

什么是变量?

message = "Hello Python World"
print(message)

在上面的代码中,message 作为变量(variable),指向值(value)"Hello Python World",并在第二行中通过 print() 函数将变量的值打印出来。

变量之所以称为"变"量,是因为其在程序运行过程中可以随时修改其值。例如:

message = "Hello Python World"
print(message)  # 输出:Hello Python World

message = "变量值已修改"
print(message)  # 输出:变量值已修改

变量命名规则

为了提升整体代码的规范性与可读性,Python 对变量的命名有以下规则限制:

  1. 字符限制:变量名只能包含字母、数字和下划线。变量名能以字母或下划线开头,但不能以数字开头。

    # 正确的命名
    message_1 = "Hello"
    _private_var = "私有变量"
    user_name = "张三"
    
    # 错误的命名
    # 1_message = "Hello"  # 不能以数字开头
    
  2. 空格限制:变量名不能包含空格,特殊字符中唯一支持的是下划线。

    # 正确的命名
    hi_message = "你好"
    
    # 错误的命名
    # hi message = "你好"  # 不能包含空格
    
  3. 关键字限制:不可将 Python 的保留关键字和内置函数名作为变量名。

    # 错误的命名示例
    # print = "这是错误的"  # print 是内置函数
    # if = 5 			  # if 是关键字
    # for = "循环"  		  # for 是关键字
    
  4. 描述性原则:变量名应既简短又具有描述性,可读性高的代码会给后期维护带来极大的便利。

    # 推荐的命名
    user_age = 25
    total_price = 299.99
    is_logged_in = True
    
    # 不推荐的命名
    x = 25  		# 无法理解含义
    a = 299.99	    # 过于简单
    flag = True  	# 不够具体
    
  5. 大小写规范:如无特殊用途,建议使用小写字母配合下划线的命名方式(snake_case)。驼峰命名法等其他写法通常有特殊含义,会在后续博文中详细介绍。

    # Python 推荐的命名风格
    user_name = "张三"
    max_retry_count = 3
    
    # 其他命名风格(有特定用途)
    UserName = "类名"  		# 帕斯卡命名法,用于类
    MAX_RETRY_COUNT = 3	    # 全大写,用于常量
    

理解变量的本质

建议读者不要仅将变量理解为"存储值的盒子",而是将其理解为可以被赋值的标签,变量指向特定的值。这种理解方式对后续学习 Python 的对象和引用概念非常重要。

# 变量就像标签,可以贴在不同的值上
name = "Python"  # name 标签贴在字符串 "Python" 上
name = 2024      # 现在 name 标签贴在数字 2024 上

简单数据类型

Python 中有几种基本的数据类型,如字符串、数字。下面内容针对这两个基础内容展开。

字符串

字符串(string)就是一系列字符。在 Python 中,用引号引起的都是字符串,引号可以是单引号,也可以是双引号。

string = "This one is a string."
string = 'This one is a string'

两种引号的效果完全相同,选择怎样使用需要结合实际情况:

message1 = "Python 编程很有趣"
message2 = '学会 Python 很有用'
mixed_quotes = "I'm learning Python"  # 字符串中包含单引号时使用双引号
another_mixed = 'He said "Hello Python"'  # 字符串中包含双引号时使用单引号

使用方法修改字符串的大小写

Python 提供了多个方法来改变字符串的大小写格式:

  • .title() - 每个单词首字母大写

    name = "python programming"
    print(name.title())  # 输出:Python Programming
    
    full_name = "john smith"
    print(f"Hello, {full_name.title()}!")  # 输出:Hello, John Smith!
    
  • .upper() - 全部转换为大写

    message = "hello python world"
    print(message.upper())  # 输出:HELLO PYTHON WORLD
    
    # 常用于需要统一格式的场景
    user_input = "Yes"
    if user_input.upper() == "YES":
        print("用户确认了操作")
    
  • .lower() - 全部转换为小写

    company = "GOOGLE"
    print(company.lower())  # 输出:google
    
    # 常用于不区分大小写的比较
    email1 = "User@Example.COM"
    email2 = "user@example.com"
    print(email1.lower() == email2.lower())  # 输出:True
    

使用制表符或换行符来添加空白

在字符串中可以使用特殊字符来控制格式:

  • 制表符 \t

    print("姓名\t年龄\t城市")
    print("张三\t25\t北京")
    print("李四\t30\t上海")
    # 输出:
    # 姓名    年龄    城市
    # 张三    25      北京
    # 李四    30      上海
    
  • 换行符 \n

    message = "第一行\n第二行\n第三行"
    print(message)
    """
    输出:
    第一行
    第二行
    第三行
    """
    
    # 组合使用制表符和换行符
    languages = "Python\n\tJavaScript\n\tJava\n\tC++"
    print(languages)
    """
    输出:
    Python
        JavaScript
        Java
        C++
    """
    

删除空白

在处理用户输入或文件数据时,经常需要删除字符串两端的空白字符:

  • .rstrip() - 删除右端空白

    message = "Python programming   "
    print(f"'{message.rstrip()}'")  # 输出:'Python programming'
    
  • .lstrip() - 删除左端空白

    message = "   Python programming"
    print(f"'{message.lstrip()}'")  # 输出:'Python programming'
    
  • .strip() - 删除两端空白

    user_input = "   hello world   "
    clean_input = user_input.strip()
    print(f"原始输入:'{user_input}'")      # 输出:'   hello world   '
    print(f"清理后:'{clean_input}'")       # 输出:'hello world'
    
    # 实际应用示例
    username = input("请输入用户名:").strip()  # 自动去除用户输入的首尾空格
    

删除前缀

Python 3.9+ 版本提供了 .removeprefix() 方法来删除字符串的前缀:

url = "https://www.example.com"
domain = url.removeprefix("https://")
print(domain)  # 输出:www.example.com

filename = "data_backup_2024.txt"
clean_name = filename.removeprefix("data_")
print(clean_name)  # 输出:backup_2024.txt

数字

Python 中主要有两种数字类型:整数和浮点数。

整数

整数(integer)是没有小数部分的数字:

age = 25
year = 2024
temperature = -10

# 可以进行各种数学运算
print(2 + 3)    # 加法:5
print(3 - 2)    # 减法:1
print(2 * 3)    # 乘法:6
print(6 / 2)    # 除法:3.0 (注意结果是浮点数)
print(6 // 2)   # 整除:3
print(7 % 3)    # 求余:1
print(2 ** 3)   # 幂运算:8

浮点数

浮点数(floating-point number)是带有小数部分的数字:

price = 19.99
height = 1.75
pi = 3.14159

# 浮点数运算
print(0.1 + 0.2)  # 输出:0.30000000000000004 (浮点数精度问题)
print(round(0.1 + 0.2, 1))  # 输出:0.3 (使用 round() 函数解决精度问题)

# 混合运算
radius = 5
area = 3.14159 * radius ** 2
print(f"半径为 {radius} 的圆面积是:{area}")

数中的下划线

对于较大的数字,Python 允许使用下划线来提高可读性:

# 大数字的可读性
population = 1_400_000_000  # 14亿
distance = 299_792_458      # 光速(米/秒)
salary = 50_000             # 年薪5万

print(population)  # 输出:1400000000 (下划线不会出现在输出中)
print(f"中国人口大约是:{population:,}")  # 输出:中国人口大约是:1,400,000,000

# 小数也可以使用下划线
precise_pi = 3.141_592_653_589_793

同时给多个变量赋值

Python 支持同时为多个变量赋值,这种特性叫做"解包"(unpacking):

  • 基本多重赋值

    # 基本的多重赋值
    x, y, z = 1, 2, 3
    print(f"x={x}, y={y}, z={z}")  # 输出:x=1, y=2, z=3
    
  • 交换变量的值

    # 交换变量的值
    a, b = 10, 20
    print(f"交换前:a={a}, b={b}")  # 输出:交换前:a=10, b=20
    a, b = b, a
    print(f"交换后:a={a}, b={b}")  # 输出:交换后:a=20, b=10
    
  • 同时赋相同值

    # 同时赋相同的值
    x = y = z = 0
    print(f"x={x}, y={y}, z={z}")  # 输出:x=0, y=0, z=0
    
  • 实际示例

    # 实际应用示例
    name, age, city = "张三", 25, "北京"
    print(f"姓名:{name}, 年龄:{age}, 城市:{city}")
    

常量

常量(const)是在程序运行过程中不改变的值。通常使用全大写字母来表示常量:

PI = 3.14159
MAX_CONNECTIONS = 100
DEFAULT_TIMEOUT = 30

# 使用常量
def calculate_circle_area(radius):
    """计算圆的面积"""
    return PI * radius ** 2

def connect_to_server():
    """连接到服务器"""
    timeout = DEFAULT_TIMEOUT
    max_retries = MAX_CONNECTIONS
    # ... 连接逻辑

常量命名规则

  1. 使用描述性的名称

    # 好的常量命名
    SECONDS_PER_MINUTE = 60
    HTTP_STATUS_OK = 200
    
    # 不好的常量命名
    X = 60
    CODE = 200
    
  2. 将相关常量分组

    # HTTP 状态码
    HTTP_OK = 200
    HTTP_NOT_FOUND = 404
    HTTP_SERVER_ERROR = 500
    
    # 应用配置
    APP_NAME = "我的 Python 应用"
    APP_VERSION = "2.1.0"
    DEBUG_MODE = True
    
  3. 在文件顶部定义常量

    # 文件开头定义所有常量
    MAX_RETRY_COUNT = 3
    DEFAULT_ENCODING = "utf-8"
    LOG_FILE_PATH = "/var/log/app.log"
    
    # 然后是函数和类的定义
    def main():
        # 使用常量
        with open(LOG_FILE_PATH, 'w', encoding=“utf-8) as f:
            f.write("应用启动\n")
    

注释

在复杂的程序代码中,需要以注释的方式,用自然语言在程序中说明函数、代码的作用。良好的注释习惯是编程的重要素养之一。

注释的类型

Python 中主要支持以下两种注释方式:

单行注释

使用 # 符号创建单行注释:

# 这是单行注释
print("Hello World")  # 这也是单行注释,用于解释这行代码的作用

# 计算圆的面积
radius = 5
area = 3.14159 * radius ** 2  # 使用圆面积公式:π × r²

多行注释

使用三引号("""''')创建多行注释:

"""
这是多行注释的第一种写法
可以跨越多行
通常用于函数、类或模块的文档说明
"""

'''
这是多行注释的第二种写法
效果与三个双引号相同
根据个人喜好选择使用
'''

def calculate_area(radius):
    """
    计算圆的面积    
    参数:
        radius (float): 圆的半径
    返回:
        float: 圆的面积
    """
    return 3.14159 * radius ** 2

注释的最佳实践

  1. 解释为什么,而不只是做什么

    # 不好的注释
    age = age + 1  # 年龄加1
    
    # 好的注释
    age = age + 1  # 用户生日更新年龄
    
  2. 保持注释简洁明了

    # 验证用户输入的邮箱格式是否正确
    if "@" in email and "." in email:
        print("邮箱格式有效")
    
  3. 及时更新注释

    # 确保代码修改后,相关注释也要更新
    max_attempts = 5  # 最大重试次数为5次(而不是之前的3次)
    

小结

在这一章节中,我们学习了:

变量和注释:

  • 变量的定义和使用方法
  • 变量命名的规则和最佳实践
  • 如何正确理解变量的本质
  • 单行和多行注释的写法
  • 编写有效注释的技巧

简单数据类型:

  • 字符串的基本使用和操作方法
  • 大小写转换(title()、upper()、lower())
  • 空白字符的处理(strip()、lstrip()、rstrip())
  • 前缀删除方法(removeprefix())
  • 整数和浮点数的使用
  • 数字中下划线的使用
  • 多重赋值技巧

常量:

  • 常量的概念和命名约定
  • 常量的最佳实践

掌握这些基础知识为后续学习 Python 的列表、字典、控制结构等内容打下了坚实的基础。


2025.09 西直门

更多推荐