【Python 基础学习 / 1】变量、数据类型与流程控制

一、变量、数据类型 与 类型交换

1. 变量

1.1 变量定义

在 Python 中,变量用来存储数据。与其他编程语言不同,Python 是动态类型语言,即在定义变量时不需要显式声明其类型。Python 会根据赋给变量的值来自动推断变量的类型。

定义变量的语法如下:

variable_name = value

例如:

x = 10
name = "Alice"
is_active = True

在上述示例中:

  • x 存储一个整数 10
  • name 存储一个字符串 "Alice"
  • is_active 存储一个布尔值 True

1.2 关键字

关键字是 Python 语言中预定义的保留字,具有特殊意义,不能用作变量名。关键字在 Python 中有明确的语法用途,例如 ifforwhile 等。

我们可以通过以下代码查看 Python 中所有的关键字:

import keyword
print(keyword.kwlist)

常见的 Python 关键字包括:

  • def:定义函数
  • ifelse:条件语句
  • forwhile:循环语句
  • tryexcept:异常处理

1.3 命名规则

在 Python 中,变量名必须遵循一定的规则和规范:

  • 变量名只能包含字母、数字和下划线(_)。
  • 变量名不能以数字开头。
  • 变量名不能是 Python 的关键字。
  • 变量名对大小写敏感,即 myVarmyvar 是两个不同的变量。

Python 提倡使用 蛇形命名法(snake_case),即单词之间用下划线分隔,所有字母小写。例如:my_variable


2. 基本数据类型

Python 中的基本数据类型包括整数(int)、浮点数(float)、字符串(str)、布尔值(bool)等。

2.1 整数(int)

整数是没有小数部分的数字。Python 中可以直接使用整数类型定义一个变量:

age = 25

2.2 浮点数(float)

浮点数表示带有小数点的数字。可以直接定义浮点数:

height = 1.75

2.3 字符串(str)

字符串用于存储文本数据。字符串可以用单引号(')或双引号(")括起来:

name = "Alice"
greeting = 'Hello, World!'

2.4 布尔值(bool)

布尔值只有两个取值:TrueFalse。它通常用于条件判断:

is_valid = True
has_permission = False

2.5 列表(list)

列表是有序的可变集合,可以包含多种类型的元素,使用方括号([])表示:

fruits = ["apple", "banana", "cherry"]

2.6 元组(tuple)

元组与列表类似,但它是不可变的。使用圆括号(())表示:

coordinates = (10, 20)

3. 类型转换

在 Python 中,有时需要将一种数据类型转换为另一种数据类型。Python 提供了几种内建函数来进行类型转换。

3.1 显式类型转换

可以使用以下内建函数将数据转换为指定的类型:

  • int():将数据转换为整数类型。
  • float():将数据转换为浮点数类型。
  • str():将数据转换为字符串类型。
  • bool():将数据转换为布尔值类型。

例如:

x = "10"
y = int(x)  # 将字符串 '10' 转换为整数 10

z = 3.14
w = int(z)  # 将浮点数 3.14 转换为整数 3

3.2 隐式类型转换(自动转换)

在某些情况下,Python 会自动进行类型转换。例如,在数学运算中,整数和浮点数进行运算时,Python 会自动将整数转换为浮点数:

x = 5
y = 2.0
result = x + y  # 自动将 5 转换为 5.0,然后进行浮点数加法
print(result)  # 输出 7.0

二、运算符和表达式

1. 运算符概述

运算符是执行特定操作的符号,可以操作数据类型并返回结果。Python 提供了多种不同类型的运算符,包括算术运算符、比较运算符、逻辑运算符等。

1.1 算术运算符

算术运算符用于执行基本的数学运算。Python 支持常见的加、减、乘、除等操作。

运算符 描述 示例
+ 加法 5 + 3
- 减法 5 - 3
* 乘法 5 * 3
/ 除法 5 / 3
// 整除 5 // 3
% 取余 5 % 3
** 幂运算 5 ** 3

示例:

a = 5
b = 3

print(a + b)  # 输出 8
print(a - b)  # 输出 2
print(a * b)  # 输出 15
print(a / b)  # 输出 1.6666666666666667
print(a // b) # 输出 1
print(a % b)  # 输出 2
print(a ** b) # 输出 125

1.2 比较运算符

比较运算符用于比较两个值,并返回布尔值 TrueFalse。它们在条件判断中非常常用。

运算符 描述 示例
== 等于 5 == 3
!= 不等于 5 != 3
> 大于 5 > 3
< 小于 5 < 3
>= 大于等于 5 >= 3
<= 小于等于 5 <= 3

示例:

x = 5
y = 3

print(x == y)  # 输出 False
print(x != y)  # 输出 True
print(x > y)   # 输出 True
print(x < y)   # 输出 False
print(x >= y)  # 输出 True
print(x <= y)  # 输出 False

1.3 逻辑运算符

逻辑运算符用于进行布尔值的操作,常用于控制流语句(如 if)中。

运算符 描述 示例
and 逻辑与 True and False
or 逻辑或 True or False
not 逻辑非 not True

示例:

a = True
b = False

print(a and b)  # 输出 False
print(a or b)   # 输出 True
print(not a)    # 输出 False

1.4 赋值运算符

赋值运算符用于将值赋给变量。Python 还支持多种增强型赋值运算符,可以简化代码的书写。

运算符 描述 示例
= 赋值 a = 10
+= 加法赋值 a += 5
-= 减法赋值 a -= 5
*= 乘法赋值 a *= 5
/= 除法赋值 a /= 5
//= 整除赋值 a //= 5
%= 取余赋值 a %= 5
**= 幂运算赋值 a **= 5

示例:

x = 5
x += 3  # 相当于 x = x + 3
print(x)  # 输出 8

x *= 2  # 相当于 x = x * 2
print(x)  # 输出 16

1.5 成员运算符

成员运算符用于检查一个值是否存在于序列(如列表、元组、字符串等)中。

运算符 描述 示例
in 存在于 3 in [1, 2, 3]
not in 不存在于 4 not in [1, 2, 3]

示例:

numbers = [1, 2, 3, 4]

print(3 in numbers)     # 输出 True
print(5 not in numbers) # 输出 True

1.6 身份运算符

身份运算符用于比较两个对象的内存地址是否相同。

运算符 描述 示例
is 是(对象相同) x is y
is not 不是(对象不同) x is not y

示例:

a = [1, 2, 3]
b = a
c = [1, 2, 3]

print(a is b)    # 输出 True
print(a is c)    # 输出 False
print(a == c)    # 输出 True

1.7 位运算符

位运算符用于对整数进行位级操作。

运算符 描述 示例
& 位与 5 & 3
` ` 位或
^ 位异或 5 ^ 3
~ 位非 ~5
<< 左移 5 << 1
>> 右移 5 >> 1

示例:

x = 5  # 0101
y = 3  # 0011

print(x & y)  # 输出 1 (0001)
print(x | y)  # 输出 7 (0111)
print(x ^ y)  # 输出 6 (0110)
print(~x)     # 输出 -6 (补码表示)
print(x << 1) # 输出 10 (1010)
print(x >> 1) # 输出 2  (0010)

2. 表达式

表达式是由运算符和操作数组合而成的,用于计算并返回一个结果。表达式可以是简单的算术运算,也可以是复杂的函数调用或变量操作。

2.1 简单表达式

简单表达式由一个或多个常量、变量以及运算符构成。例如:

a = 5
b = 10
result = a + b * 2  # 结果是 25,因为乘法优先级高

2.2 复杂表达式

复杂表达式可以包含多个运算符和括号,用来控制运算顺序。括号中的内容会优先计算。

a = 5
b = 10
c = 3
result = (a + b) * c  # 结果是 45,括号中的加法先计算

2.3 条件表达式

条件表达式使用 if 语句和逻辑运算符来根据条件选择结果。例如:

x = 20
result = "Even" if x % 2 == 0 else "Odd"
print(result)  # 输出 "Even"

三、流程控制

1. 条件分支

条件分支允许我们根据不同的条件执行不同的代码块。在 Python 中,条件分支是通过 ifelifelse 语句来实现的。

1.1 if 语句

if 语句用于测试一个条件,如果条件为真(True),则执行相应的代码块。

语法:

if condition:
    # 执行代码

示例:

x = 10

if x > 5:
    print("x 大于 5")

输出:

x 大于 5

1.2 if…else 语句

if...else 语句用来处理两种情况:如果条件为真执行 if 后的代码块,否则执行 else 后的代码块。

语法:

if condition:
    # 条件为真时执行的代码
else:
    # 条件为假时执行的代码

示例:

x = 3

if x > 5:
    print("x 大于 5")
else:
    print("x 小于或等于 5")

输出:

x 小于或等于 5

1.3 if…elif…else 语句

当有多个条件需要判断时,可以使用 elif(即“else if”)语句。在 ifelif 条件不成立时,执行 else 语句。

语法:

if condition1:
    # 条件1为真时执行的代码
elif condition2:
    # 条件2为真时执行的代码
else:
    # 条件1和条件2都不成立时执行的代码

示例:

x = 7

if x > 10:
    print("x 大于 10")
elif x > 5:
    print("x 大于 5 但小于或等于 10")
else:
    print("x 小于或等于 5")

输出:

x 大于 5 但小于或等于 10

1.4 嵌套条件语句

在某些情况下,条件语句可能需要嵌套使用,即在 ifelse 块中再写一个条件语句。

不需要通过括号表示子语句,通过tab键即可。

语法:

if condition1:
    if condition2:
        # 条件1和条件2都为真时执行的代码
    else:
        # 条件1为真,条件2为假时执行的代码
else:
    # 条件1为假时执行的代码

示例:

x = 10
y = 5

if x > 0:
    if y > 0:
        print("x 和 y 都大于 0")
    else:
        print("x 大于 0,y 小于或等于 0")
else:
    print("x 小于或等于 0")

输出:

x 和 y 都大于 0

2. 循环

循环结构用于重复执行某段代码,直到满足特定条件。Python 提供了两种常用的循环结构:for 循环和 while 循环。

2.1 for 循环

for 循环通常用于遍历序列(如列表、字符串、元组等)中的元素。

语法:

for item in iterable:
    # 遍历过程中的操作

示例:

fruits = ["apple", "banana", "cherry"]

for fruit in fruits:
    print(fruit)

输出:

apple
banana
cherry

2.2 range() 函数

range() 函数通常与 for 循环一起使用,用于生成一个整数序列。

语法:

# 如果 range 仅填一个参数,为stop
range(start, stop, step)
  • start: 起始值,默认为 0。
  • stop: 结束值(不包括该值)。
  • step: 步长,默认为 1。

示例:

for i in range(5):
    print(i)

输出:

0
1
2
3
4

range(5) 会生成一个从 04 的整数序列。如果要指定起始值或步长,可以使用 range(start, stop, step)

示例:

for i in range(2, 10, 2):
    print(i)

输出:

2
4
6
8

2.3 while 循环

while 循环在条件为真时重复执行代码块。通常需要使用 break 或者修改条件,避免出现死循环。

语法:

while condition:
    # 条件为真时执行的代码

示例:

x = 0

while x < 5:
    print(x)
    x += 1

输出:

0
1
2
3
4

2.4 循环控制语句

在循环中,我们还可以使用 breakcontinuepass 来控制循环的行为。

2.4.1 break

break 语句用于提前终止循环。无论条件是否满足,break 都会终止循环并跳出。

语法:

break

示例:

for i in range(10):
    if i == 5:
        break
    print(i)

输出:

0
1
2
3
4
2.4.2 continue

continue 语句跳过当前循环的剩余部分,直接进入下一次循环。

语法:

continue

示例:

for i in range(5):
    if i == 3:
        continue
    print(i)

输出:

0
1
2
4
2.4.3 pass

pass 语句什么也不做,通常用于占位符,表示“此处需要代码,但暂时不做任何操作”。

语法:

pass

示例:

for i in range(5):
    if i == 3:
        pass  # 暂时不做任何操作
    else:
        print(i)

输出:

0
1
2
4