Python 是一种广泛使用的高级编程语言,设计哲学强调代码的可读性,其语法简洁明了。Python 不仅仅是一种语言,它也是一套庞大的生态系统。本文将带你深入了解Python的基础知识,包括变量与类型、条件语句、循环语句、函数定义和调用、异常处理、文件操作、面向对象编程、列表、字典、集合等数据结构,以及正则表达式。
变量与类型在Python中,变量名可以是任何合法的标识符序列。Python是一门动态类型语言,这意味着你不需要显式地声明变量的类型,变量的类型会在编译时根据赋值自动决定。
基本类型
Python有几种基本的数据类型,包括整型(int)、浮点型(float)、布尔型(bool)、字符串(str)等。
# 整型
x = 5
print(x, type(x)) # 输出: 5 <class 'int'>
# 浮点型
y = 3.14
print(y, type(y)) # 输出: 3.14 <class 'float'>
# 布尔型
z = True
print(z, type(z)) # 输出: True <class 'bool'>
# 字符串
s = "Hello, World!"
print(s, type(s)) # 输出: Hello, World! <class 'str'>
变量赋值
Python的变量赋值是直接操作内存地址的。例如,当你将一个变量赋值给另一个变量时,实际上是将该变量的内存地址复制给了另一个变量,两个变量指向了同一个内存地址。
a = 10
b = a # b现在指向和a相同的内存地址
print(a, b) # 输出: 10 10
b = 20 # b指向一个新的内存地址
print(a, b) # 输出: 10 20
变量作用域
在Python中,变量的作用域分为局部作用域(Local)、全局作用域(Global)以及内建作用域(Built-in)。
x = 5 # 全局变量
def func():
y = 10 # 局部变量
print(x)
print(y)
func()
print(x)
print(y) # NameError: name 'y' is not defined
类型转换
在Python中,可以使用内置函数进行类型转换,如int()
, float()
, str()
等。
# 转换为整型
x = int(2.7) # x变成2
print(x) # 输出: 2
# 转换为浮点型
y = float(2)
print(y) # 输出: 2.0
# 转换为字符串
s = str(123)
print(s, type(s)) # 输出: 123 <class 'str'>
条件语句
Python中的条件语句包括if语句和if-else语句,可以用来执行基于条件的代码块。条件语句中使用布尔表达式判断。
x = 5
if x > 0:
print("x是正数")
else:
print("x不是正数")
if-elif-else结构
if-elif-else结构可以用来实现多条件判断。
age = 20
if age < 18:
print("未成年")
elif age >= 18 and age < 65:
print("成年")
else:
print("退休")
循环语句
Python中的循环结构包括for
循环和while
循环。
for循环
for循环通常用于遍历序列(如列表、字符串等)。
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
while循环
while循环用于在给定条件为真时重复执行某个代码块。
count = 0
while count < 5:
print(count)
count += 1
循环控制语句
在循环中可以使用break
、continue
和pass
语句来改变循环的执行流程。
break
语句用来提前终止循环。continue
语句跳过循环体中剩余的语句,然后继续下一次循环。pass
语句不执行任何操作,通常用来作为占位符。
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
if fruit == "banana":
break
print(fruit)
for fruit in fruits:
if fruit == "banana":
continue
print(fruit)
for fruit in fruits:
pass # 这里什么也不做
函数定义和调用
函数是组织好的、可重复使用的、用来实现单一或相关联功能的代码块。函数有助于代码的重用和模块化。
def greet(name):
"""
打印问候语
"""
print(f"你好,{name}")
greet("Alice")
可变参数
Python的函数可以接受可变数量的参数。
def add(*args):
"""
返回所有参数的和
"""
return sum(args)
result = add(1, 2, 3, 4)
print(result)
命名参数
可以使用关键字参数传递参数给函数,这样可以在调用函数时指定参数的名称。
def greet(name, age=None):
print(f"你好,{name}")
if age:
print(f"你{age}岁了")
greet("Alice", age=25)
返回值
函数可以返回一个或多个值。
def get_name_and_age():
name = "Alice"
age = 25
return name, age
name, age = get_name_and_age()
print(name, age)
异常处理
异常处理是程序运行时错误或异常情况的处理机制。使用try-except语句可以捕获和处理异常。
try:
x = 1 / 0
except ZeroDivisionError:
print("除以零错误")
finally:
print("总是执行")
自定义异常
可以使用raise
语句抛出自定义异常。
class MyException(Exception):
def __init__(self, message):
super().__init__(message)
try:
raise MyException("自定义异常")
except MyException as e:
print(f"捕获到异常:{e}")
文件操作
Python提供了丰富的文件操作功能。使用文件对象可以读取、写入文件内容。
# 写入文件
with open("example.txt", "w") as file:
file.write("Hello, World!\n")
file.write("你好,世界!\n")
# 读取文件
with open("example.txt", "r") as file:
content = file.read()
print(content)
# 逐行读取文件
with open("example.txt", "r") as file:
for line in file:
print(line.strip())
面向对象编程
面向对象编程是一种编程范式,它使用对象和类来封装数据和行为。Python是一种支持面向对象编程的语言。
类定义
定义一个类需要使用class
关键字。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def say_hello(self):
print(f"你好,我是{self.name}")
person = Person("Alice", 25)
person.say_hello()
继承
继承允许一个类继承另一个类的属性和方法。
class Student(Person):
def __init__(self, name, age, grade):
super().__init__(name, age)
self.grade = grade
def say_hello(self):
print(f"你好,我是{self.name},我在读{self.grade}年级")
student = Student("Bob", 20, "二年级")
student.say_hello()
多态
多态允许不同的类实例通过相同的接口方法表现出不同的行为。
class Teacher(Person):
def __init__(self, name, age, subject):
super().__init__(name, age)
self.subject = subject
def say_hello(self):
print(f"你好,我是{self.name},我教{self.subject}")
teacher = Teacher("Charlie", 30, "数学")
teacher.say_hello()
数据结构
Python提供了多种内置数据结构,如列表、字典、集合等,可以满足不同的数据存储需求。
列表
列表是一种有序的、可变的数据结构,可以存储各种类型的元素。
fruits = ["apple", "banana", "cherry"]
print(fruits)
# 添加元素
fruits.append("orange")
print(fruits)
# 删除元素
fruits.remove("banana")
print(fruits)
# 访问元素
print(fruits[1])
字典
字典是一种无序的、可变的数据结构,通过键值对存储数据。
student = {"name": "Alice", "age": 25, "grade": "二年级"}
print(student)
# 访问元素
print(student["name"])
# 修改元素
student["age"] = 26
print(student)
# 删除元素
del student["grade"]
print(student)
集合
集合是一种无序的、不重复的数据结构,用于存储唯一的元素。
fruits = {"apple", "banana", "cherry"}
print(fruits)
# 添加元素
fruits.add("orange")
print(fruits)
# 删除元素
fruits.remove("banana")
print(fruits)
正则表达式
正则表达式是一种强大的文本处理工具,用于匹配和操作字符串。Python的re
模块提供了完整的正则表达式支持。
基本用法
import re
text = "Hello, my email is [email protected]"
# 匹配电子邮件地址
pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
match = re.search(pattern, text)
if match:
print("找到匹配:", match.group())
else:
print("未找到匹配")
替换和拆分
正则表达式也可以用于字符串替换和拆分。
import re
text = "Hello, my email is [email protected] and [email protected]"
# 替换电子邮件地址
new_text = re.sub(pattern, "****", text)
print(new_text)
# 拆分文本
emails = re.split(pattern, text)
print(emails)
数据可视化
Python的生态系统中包括了强大的Matplotlib库,可以用来进行数据可视化。
import matplotlib.pyplot as plt
# 示例数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 创建图并绘制数据
plt.plot(x, y)
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.title('示例数据可视化')
plt.show()
以上是Python编程的一些基础知识,包括变量与类型、条件语句、循环语句、函数定义和调用、异常处理、文件操作、面向对象编程、数据结构以及正则表达式。掌握这些基础知识将为后续更复杂的编程任务打下坚实的基础。如果你想深入了解Python,可以参考官方文档或者参加慕课网的Python课程学习更多高级功能。
共同學習,寫下你的評論
評論加載中...
作者其他優質文章