Skip to main content

Python 基础

Python 数据类型和变量

本章节主要讲解 什么是变量,变量命名规则,常量,常用内置数据类型,整数 (int),浮点数 (float),复数 (complex),字符串 (str),布尔值 (bool),空值 (None),列表 (list),元组 (tuple),字典 (dict),集合 (set),类型转换,检查数据类型。

什么是变量?

变量是用来存储数据的名称,就像一个贴了标签的盒子,里面可以装不同的东西。在 Python 中,变量不需要提前声明类型,也就是变量的类型不固定,赋值时会自动确定类型。

这种变量的类型不固定的语言称之为动态语言,变量类型是固定的就是静态语言,Java就是一种静态语言静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。

= 赋值,左边是变量名,右边是值,将右边的值赋值给左边的变量。用 == 表示判断左右两边的值是否相等,相等则返回True,不相等则返回False,例如:

name = "Alice"      # 字符串变量
age = 25            # 整数变量
height = 1.65       # 浮点数变量

print(age==height)  # 返回False

注意:赋值符号 = 不是数学中的等号 =

x = 12      # 给 x 赋值 12
x = x + 10  # 在数学里面这是不可能成立的,在Python中先计算 x+10,然后将结果赋值给 x

变量命名规则

  • 变量名只能包含字母、数字和下划线 _,且不能以数字开头。
  • 变量名区分大小写(ageAge 是不同变量)。
  • 不要使用 Python 关键字(如 if, for, while)作为变量名。

示例:

my_name = "Alice"  # 合法
2name = "Bob"      # 非法:以数字开头

常量

常量是值不可变的变量,通常用于存储固定的、不应被修改的数据,如数学常数(π = 3.14159)或配置值(MAX_CONNECTIONS = 100)。

命名约定:在 Python 中,常量的命名通常使用全大写字母(例如 PI、MAX_RETRY),这是 PEP 8(Python 编码规范)推荐的做法,用以表明该变量应被视为常量。

PI = 3.14159
MAX_CONNECTIONS = 100

注意:尽管使用全大写命名表示常量,但 Python 并没有强制阻止对这些变量的修改。这只是一种约定,依赖程序员的自觉性。

常用内置数据类型

Python 有多种内置数据类型,下面一一介绍。

整数 (int)

整数 (int) 没有小数点的数字,例如 5, -10, 0。如果整数非常大有很多0,Python允许我们在数字中任意位置添加下划线分隔,比如 10_000_000_000 和10000000000 是完全一样的。

示例:

x = 10                         # 整数
10_000_000_000 == 10000000000  # 返回 True

浮点数 (float)

浮点数 (float) 带小数点的数字,例如 3.14, -0.001

Python 同样可以使用科学计数法,对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。

x = 3.14        # 浮点数
y = 1.23e9      # 表示 1230000000.0
z = 0.000012

复数 (complex)

复数 (complex) 包含实部和虚部,例如 3 + 4j(较少使用)。

z = 2 + 3j      # 复数

字符串 (str)

字符串是用来表示文本的数据,用单引号 ' 或双引号 " 包裹。

示例:

name = "Bob"
greeting = 'Hello, World!'
print(name)      # 输出:Bob
print(greeting)  # 输出:Hello, World!

字符串可以拼接:

first = "Hello"
second = "World"
full = first + " " + second
print(full)  # 输出:Hello World

字符串中如果包含引号:

x = " I'm very good! "            # 用双引号包裹单引号
y = ' I\'m very good! '           # 如果都是单引号,内部需要用反斜线转义
z = ' Jhon said "How are you?" '  # 也可以用单引号包裹双引号

Python 如果字符串要换行,并且有格式,可以使用三引号:

>>> large = """
...   Hi, Where are you from?
...   China.
... """
>>> 
>>> print(large)

  Hi, Where are you from?
  China.

>>> 

转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\ , 字符串前加 r 表示里面的特殊字符不转义。

>>> print('hello \nAlice!')
hello 
Alice!

>>> print(r'Hello \n World! ')
Hello \n World! 

字符串支持切片(后续list和tuple会讲到)

text = "Python"
print(text[0:2])  # 输出: Py

布尔值 (bool)

布尔值只有两种:TrueFalse,常用于条件判断。

示例:

is_student = True
is_adult = False
print(is_student)      # 输出:True

布尔值可以用andornot运算。

  • and是与运算,只有所有都为Trueand运算结果才是True
  • or是或运算,只要其中有一个为Trueor运算结果就是True
  • not是非运算,它是一个单目运算符,把True变成FalseFalse变成True
>>> print(True and False)
False

>>> print(True and True)
True

>>> print(True or True)
True

>>> print(not True)
False

>>> print(4 > 9)
False

空值 (None)

空值表示什么也没有,他不是0,也不是空字符串,在 Java 里面的空值是 null,在Go里面的空值是 nil

列表 (list)

列表是可变的有序集合,用方括号 [] 定义,可以存储多种类型的数据。

示例:

fruits = ["apple", "banana", "orange"]
numbers = [1, 2, 3, 4, 5]
mixed = [1, "hello", 3.14, True]
print(fruits)  # 输出:['apple', 'banana', 'orange']

访问列表元素:

print(fruits[0])        # 输出:apple(索引从0开始)
fruits.append("grape")  # 在末尾添加元素
print(fruits)           # 输出:['apple', 'banana', 'orange', 'grape']

元组 (tuple)

元组是不可变的有序集合,用圆括号 () 定义。

示例:

coordinates = (10, 20)
print(coordinates[0])  # 输出:10
coordinates[0] = 5     # 错误!元组不可修改

字典 (dict)

字典是键值对的集合,用大括号 {} 定义,键必须唯一。

示例:

student = {"name": "Alice", "age": 20, "major": "Math"}
print(student["name"])  # 输出:Alice
student["age"] = 21     # 修改值
print(student)          # 输出:{'name': 'Alice', 'age': 21, 'major': 'Math'}

集合 (set)

集合是无序的、不重复的元素集合,用大括号 {}set() 定义。

示例:

unique_numbers = {1, 2, 2, 3}
print(unique_numbers)  # 输出:{1, 2, 3}(重复的2被移除)

类型转换

有时需要将一种数据类型转换为另一种,使用内置函数:

  • int():转换为整数
  • float():转换为浮点数
  • str():转换为字符串
  • list():转换为列表

示例:

num_str = "123"
num = int(num_str)  # 字符串转整数
print(num + 1)      # 输出:124

num_float = float("3.14")  # 字符串转浮点数
print(num_float)    # 输出:3.14

检查数据类型

使用 type() 函数查看变量的类型。

示例:

x = 42
y = "Hello"
z = [1, 2, 3]
print(type(x))  # 输出:<class 'int'>
print(type(y))  # 输出:<class 'str'>
print(type(z))  # 输出:<class 'list'>

本章节只简单介绍下 Python 内置数据类型,后面会详细介绍最常用的列表、元组、字典、集合的详细用法。