在本章中,我们将深入探讨Python的基本概念,从变量和数据类型的介绍开始,到控制流的应用,再到函数的定义和使用,以及模块和包的导入。
2.1 变量和数据类型
在Python中,变量可以被视为数据的容器。Python是动态类型语言,你不需要事先声明变量的类型,Python会在你赋值时自动识别,这意味着同一个变量可以赋予不同类型的值。Python中有多种数据类型,下面是一些最基本的类型。
x = 4 # x 是整数
x = "Sally" # x 现在是字符串
注意事项:虽然Python允许动态类型,但最好保持变量类型的一致性,以避免混淆或错误。
2.1.1 数字类型:整数、浮点数
- 整数:整数可以是正数、负数或零,不含小数部分。
- 浮点数:浮点数是带有小数部分的数字。在Python中,浮点数也可以使用科学计数法表示。
#整数
x = 123
#浮点数
y = 10.5
z = 2e2 # 表示2乘以10的2次方,即200.0
print(x, y, z) # 输出: 123 10.5 200.0
注意事项:在进行浮点数运算时要小心精度问题,因为浮点数运算可能不会总是精确的。
2.1.2 字符串
字符串可以使用单引号或双引号创建。多行字符串可以用三引号定义。
str1 = 'Hello'
str2 = "World"
str3 = """This is
a multi-line
string."""
print(str1, str2)
print(str3)
注意事项:
- 字符串一旦创建便不可改变(不可变)。
- 可以使用+运算符连接字符串,但需注意效率问题。对于大量字符串拼接,考虑使用.join()方法。
2.1.3 布尔类型
布尔类型只有两个值:True和False,通常用于条件判断。
a = True
b = False
if a:
print("a is true")
if not b:
print("b is false")
2.1.4 列表
列表是有序且可变的元素集合。列表元素可以是不同的数据类型,并且可以通过索引访问。
fruits = ["apple", "banana", "cherry"]
print(fruits[1]) # 输出: banana
# 修改列表元素
fruits[1] = "blackberry"
print(fruits) # 输出: ['apple', 'blackberry', 'cherry']
注意事项:
- 列表索引从0开始。
- 使用方法如.append(), .remove(), .pop()等可以修改列表。
2.1.5 元组
元组类似于列表,但一旦创建就不能修改(不可变)。元组通过圆括号表示。
coordinates = (10, 20, 30)
print(coordinates[1]) # 输出: 20
注意事项:尽管元组是不可变的,但如果元组包含可变对象(如列表),则这些可变对象可以被改变。
2.1.6 字典
字典是键值对的集合,且键必须是唯一的。字典是无序的集合。
person = {"name": "John", "age": 30, "city": "New York"}
print(person["name"]) # 输出: John
# 添加或修改键值对
person["age"] = 35
person["profession"] = "Engineer"
注意事项:
- 字典的键必须是不可变类型,如字符串或元组。
- 字典在Python 3.7及更高版本中是有序的,但最好不要依赖于键值对的顺序。
2.2 控制流
在Python中,控制流语句决定了代码的执行顺序。我们使用控制流语句来做决策、循环遍历数据、或者在满足特定条件时跳出循环。
2.2.1 if语句
if语句用于基于特定条件执行不同的代码块。Python依靠缩进来定义代码块的范围。
# 示例:根据年龄段打印不同的消息
age = 20
if age >= 18:
print("You are an adult.")
elif age >= 13:
print("You are a teenager.")
else:
print("You are a child.")
注意事项:
- elif和else部分是可选的,您可以根据需要使用它们。
- 条件后面必须使用冒号:,代码块则通过缩进来定义。
2.2.2 for循环
for循环用于遍历序列(如列表、元组、字典、集合或字符串),执行每个元素的代码块。
# 遍历列表中的元素
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
注意事项:
- for循环可以使用range()函数来生成一系列连续的数字。
- 类似于if语句,for循环也依赖缩进来定义要重复执行的代码块。
2.2.3 while循环
while循环在给定条件为真时重复执行代码块。
# 计数到5
count = 1
while count <= 5:
print(count)
count += 1
注意事项:
- 确保循环有一个终止条件,以避免无限循环。
- 通过修改循环条件或使用break语句来控制循环的结束。
2.2.4 循环控制:break和continue
- break用于立即退出循环,无论是否还有剩余的迭代。
- continue跳过当前循环的剩余部分,直接开始下一次迭代。
# 使用break退出循环
for number in range(1, 10):
if number == 5:
break
print(number)
# 使用continue跳过某些迭代
for number in range(1, 10):
if number % 2 == 0:
continue
print(number)
2.3 函数
函数是一组组织好的,可重复使用的代码,用于执行单一或相关的任务。
2.3.1 定义函数
使用def关键字定义函数,后跟函数名和圆括号()。
# 定义一个简单的函数
def greet():
print("Hello, Python learner!")
2.3.2 参数传递
函数可以通过参数接收输入值。
# 带参数的函数
def greet(name):
print(f"Hello, {name}!")
2.3.3 返回值
使用return语句从函数返回值。
# 返回值的示例
def add(x, y):
return x + y
2.3.4 匿名函数lambda
lambda函数是一种简单的、在一行内编写的函数,由关键字lambda开头。
# lambda函数示例
multiply = lambda a, b: a * b
2.4 模块和包
模块是Python代码库,一个包含Python函数、类和变量的文件。包是一种包含多个模块的方式。
2.4.1 导入模块
使用import语句导入模块,可以访问其功能。
# 导入模块示例
import math
print(math.sqrt(16)) # 输出: 4.0
2.4.2 安装和使用第三方包
使用pip安装第三方包。例如,安装请求库:
pip install requests
然后,您可以在代码中导入并使用这些包。
import requests
response = requests.get('https://www.example.com')
恭喜您完成了Python编程的基础学习!到目前为止,我们已经探索了变量和数据类型、控制流、函数,以及如何使用模块和包来增强我们的程序。这些构成了Python编程的核心,为您打下了坚实的基础。