Python 基础语法快速入门
一、开发环境搭建
- 安装 Python:访问 Python 官方网站(www.python.org/downloads/ ),根据你的操作系统下载对应的 Python 3 版本安装包,下载完成后按照提示完成安装。在 Windows 系统安装时,记得勾选 “Add Python to PATH” 选项,方便在命令行中直接使用 Python 命令。
- 选择 IDE:推荐使用 PyCharm,它功能强大,对 Python 开发有很好的支持。你可以从 JetBrains 官网下载社区版安装使用;也可以选择 VS Code,它轻巧灵活,安装 Python 插件后同样能进行高效开发。
二、基础语法
- 标识符:在 Python 中,标识符是用来给变量、函数、类、模块等命名的。其规则为,第一个字符必须是英文字母或下划线_,其他部分由字母、数字和下划线组成,并且标识符对大小写敏感。例如my_variable、_function是合法的标识符,而123abc则不合法。
- 保留字:保留字也叫关键字,它们是 Python 语言中具有特殊含义的单词,不能用作任何标识符名称。你可以通过以下代码查看 Python 当前版本的所有关键字:
import keyword
print(keyword.kwlist)
常见的关键字有if、else、for、while等。
- 注释:
- 单行注释:使用#,例如# 这是一行注释,注释内容是给人看的,解释器会忽略它。
- 多行注释:使用三个单引号'''或三个双引号""",例如:
'''
这是多行注释
可以写多行内容
'''
"""
这也是多行注释
用双引号的方式
"""
- 行与缩进:Python 不像其他语言使用大括号{}来表示代码块,而是使用缩进来表示。缩进的空格数是可变的,但同一个代码块的语句必须保持相同的缩进空格数,一般建议使用四个空格。注意,不要混用 Tab 和空格,否则可能会报错。例如:
if True:
print("这是if代码块内的语句,缩进四个空格")
print("这是if代码块外的语句")
三、变量和数据类型
- 变量:在 Python 中,变量不需要事先声明类型,每个变量在使用前都必须赋值,赋值后变量才会被创建。等号=用于给变量赋值,左边是变量名,右边是存储在变量中的值。例如:
x = 10 # 这里创建了一个变量x,并赋值为10
- 基本数据类型:
-
- 数字类型:Python 3 支持int(整数)、float(浮点数)、bool(布尔)、complex(复数)。数值类型的赋值和计算都很直观,例如:
a = 5 # int类型
b = 3.14 # float类型
c = True # bool类型
d = 2 + 3j # complex类型
可以使用内置函数type()来查询变量所指的对象类型,例如type(a)会返回<class 'int'>。还可以使用isinstance()来判断变量是否属于某个类型,isinstance(a, int)会返回True,isinstance和type的区别在于:type不会认为子类是一种父类类型,而isinstance会认为子类是一种父类类型。
关于数值运算,除法包含两个运算符:/返回一个浮点数,//返回一个整数。混合计算时,Python 会把整型转换成为浮点数。
# 加
print(5 + 3)
# 减
print(5 - 3)
# 乘
print(5 * 3)
# 除,得到一个浮点数
print(5 / 3)
# 除,得到一个整数
print(5 // 3)
# 取余
print(5 % 3)
# 乘方
print(5 ** 3)
- 字符串类型:Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。字符串可以用单引号'或双引号"括起来,例如:
s1 = "Hello"
s2 = 'World'
字符串可以通过索引来访问其中的字符,索引值从 0 开始,也可以使用负数从末尾开始索引,例如s1[0]会返回'H',s1[-1]会返回'o'。可以使用切片来获取字符串的一部分,如s1[1:3]会返回'el'。字符串还支持连接和复制操作,+用于连接字符串,*用于复制字符串,例如:
print(s1 + " " + s2)
print(s1 * 3)
反斜杠\用于转义特殊字符,如果不想让反斜杠发生转义,可以在字符串前面添加一个r,例如:
print('I\nlove\npython')
print(r'I\nlove\npython')
- 列表类型:列表是一种有序的集合,其中元素的类型可以不同。列表用方括号[]表示,元素之间用逗号分隔,例如:
list1 = [1, 2, 3, "four", [5, 6]]
列表可以被索引和切片,操作方式和字符串类似。列表中的元素是可以修改的,例如:
list1[0] = 0
list1[2:4] = [7, 8]
还可以使用append()方法在列表末尾添加新的对象,例如list1.append(9)。
- 元组类型:元组与列表类似,但元组是不可变的,一旦创建就不能修改。元组用小括号()表示,例如:
tuple1 = (1, 2, 3)
元组也可以进行索引和切片操作,但不能修改其中的元素。
- 集合类型:集合是一个无序且不重复的元素集合。集合用大括号{}表示,例如:
set1 = {1, 2, 3, 3} # 集合会自动去除重复元素,这里实际集合只有1, 2, 3
可以使用add()方法向集合中添加元素,例如set1.add(4)。
- 字典类型:字典是一种键值对集合,用于存储具有映射关系的数据。字典用大括号{}表示,每个键值对之间用逗号分隔,键和值之间用冒号:分隔,例如:
dict1 = {"name": "Alice", "age": 20}
可以通过键来访问字典中的值,例如dict1["name"]会返回"Alice",也可以修改字典中的值,如dict1["age"] = 21。
四、运算符和表达式
- 算术运算符:包括加+、减-、乘*、除/、整除//、取余%、乘方**,前面数字类型运算部分已经有示例。
- 比较运算符:包括等于==、不等于!=、大于>、小于<、大于等于>=、小于等于<=,返回的结果是布尔值True或False,例如:
print(5 > 3)
print(5 == 3)
- 逻辑运算符:包括与and、或or、非not。and表示两个条件都为真时结果为真,or表示两个条件只要有一个为真结果就为真,not用于取反,例如:
print((5 > 3) and (2 < 4))
print((5 > 3) or (2 > 4))
print(not (5 > 3))
- 赋值运算符:最基本的是=,还有+=、-=、*=、/=、//=、%=、**=等复合赋值运算符,例如:
x = 5
x += 3 # 等价于x = x + 3,此时x的值变为8
五、控制流
- 条件语句:
-
- if 语句:根据条件执行不同的代码块,语法为:
if condition1:
statement1
elif condition2:
statement2
else:
statement3
例如:
age = 20
if age >= 18:
print("Adult")
elif age >= 13:
print("Teenager")
else:
print("Child")
- 循环语句:
-
- for 循环:用于遍历序列(如列表、元组、字符串等),语法为:
for variable in sequence:
statement
例如:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
还可以结合range()函数来生成数字序列进行循环,range(start, stop, step),start默认为 0,step默认为 1,例如:
for i in range(5):
print(i) # 输出0到4
- while 循环:在给定条件为真时反复执行代码块,语法为:
while condition:
statement
例如:
count = 0
while count < 5:
print(count)
count += 1
六、函数
- 定义函数:函数是用于组织和重用代码的工具,语法为:
def function_name(parameters):
statement
return value
例如:
def add(a, b):
return a + b
result = add(3, 5)
print(result) # 输出8
- Lambda 函数:也叫匿名函数,用于创建简单的一次性函数,语法为lambda arguments: expression,例如:
square = lambda x: x * x
print(square(5)) # 输出25
七、文件操作
- 读取文件:使用open()函数打开文件,然后使用read()方法读取文件内容,建议使用with语句来管理文件的生命周期,这样可以确保文件在使用后正确关闭,例如:
with open('test.txt', 'r') as file:
content = file.read()
print(content)
open()函数的第一个参数是文件名,第二个参数是打开模式,'r'表示只读模式。
- 写入文件:同样使用open()函数,打开模式使用'w'表示写入模式,如果文件不存在会创建新文件,如果文件存在会覆盖原有内容,例如:
with open('test.txt', 'w') as file:
file.write("Hello, World!")