手记

Python编程基础

概述

本文详细介绍了Python编程的基础知识,包括安装、环境配置、语法、控制结构、函数定义、模块与包等内容。此外,文章还涵盖了面向对象编程、集合与迭代、正则表达式、网络编程以及常用的数据结构。通过这些内容的学习,读者可以全面了解和掌握Python编程技巧。页面权限学习虽未直接涉及,但提供了学习Python所需的基础知识。

Python编程基础
1. Python简介

Python是一种高级编程语言,由Guido van Rossum在1989年底发明,并于1991年首次发布。Python的设计哲学强调代码的可读性和简洁的语法,使得Python成为了初学者和专业开发人员的首选语言之一。Python广泛应用于Web开发、数据科学、人工智能、自动化脚本等多个领域。

Python的特点包括但不限于:

  • 简洁易读:Python的语法简单明了,容易阅读。
  • 跨平台:Python可以在多种操作系统上运行,如Windows、Linux、MacOS等。
  • 丰富的库支持:Python拥有大量的库,可以处理各种任务,如科学计算、图像处理、网络爬虫等。
  • 动态类型:Python是一种动态类型语言,变量不需要声明类型。
  • 面向对象:Python支持面向对象编程,使得代码结构清晰、维护性好。
  • 解释型语言:Python代码不需要编译,直接由解释器执行。
2. 安装Python

Python可以通过官方网站下载安装,也可以通过包管理器安装。以下是安装Python的步骤:

2.1 通过官方网站下载安装

  1. 访问Python官方网站:https://www.python.org/
  2. 点击“Downloads”选项卡
  3. 选择当前稳定版(建议使用最新版本)
  4. 选择适合的操作系统版本进行下载
  5. 运行下载的安装程序,按照提示完成安装
# 下载Python安装包
wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz
tar -xzf Python-3.9.5.tgz
cd Python-3.9.5
./configure
make
sudo make install

2.2 使用包管理器安装

对于Linux用户,可以使用包管理器安装Python。

使用apt-get安装(适用于基于Debian的系统,如Ubuntu)

sudo apt-get update
sudo apt-get install python3

使用yum安装(适用于基于RedHat的系统,如CentOS)

sudo yum install python3
3. Python环境配置

安装Python后,需要配置环境变量以确保Python命令可以在任何位置执行。

3.1 设置环境变量

在Windows中,通过系统设置界面添加Python安装路径到PATH环境变量。在Linux中,可以通过编辑环境变量文件(如~/.bashrc~/.zshrc)添加如下内容:

export PATH=/usr/local/bin:$PATH

3.2 验证安装

通过命令python3 --versionpython --version验证Python是否安装成功,并查看版本信息。

4. Python基础语法

Python的基本语法包括变量、数据类型、函数、模块等。下面是具体的介绍和示例。

4.1 变量与数据类型

Python中,变量不需要声明类型,直接赋值即可。

常见数据类型

  • 整型(int):表示整数,如1, 2, 3等。
  • 浮点型(float):表示小数,如1.5, 3.14等。
  • 字符串(str):表示文本,如"hello", 'world'等。
  • 布尔型(bool):表示真或假,True或False。

示例代码:

# 定义变量并赋值
a = 10          # 一个整数
b = 10.5        # 一个浮点数
c = "hello"     # 一个字符串
d = True        # 布尔值

print(a)        # 输出整数
print(b)        # 输出浮点数
print(c)        # 输出字符串
print(d)        # 输出布尔值

4.2 输入输出

Python中的输入和输出使用内置函数input()print()

输入函数

input()函数用于获取用户输入。输入的数据默认为字符串类型。

示例代码:

name = input("请输入您的名字:")
print("你好," + name)

输出函数

print()函数用于输出信息到控制台。可以输出字符串、整数、布尔值等。

示例代码:

print("Hello, world!")
print(123)
print(True)

4.3 注释

Python中的注释以#开头,会被解释器忽略。

示例代码:

# 这是一个简单的注释
"""
这是一个多行注释
可以跨越多行
"""
print("Hello, world!")  # 输出Hello, world!
5. 控制结构

Python中的控制结构包括条件语句和循环语句。

5.1 条件语句

条件语句用于根据条件选择执行不同的代码块。Python中的条件语句使用ifelifelse关键字。

if语句

if语句用于简单的条件判断。

示例代码:

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

if-else语句

if-else语句用于处理两个分支的情况。

示例代码:

x = 5
if x > 5:
    print("x大于5")
else:
    print("x不大于5")

if-elif-else语句

if-elif-else语句用于处理多个分支的情况。

示例代码:

x = 10
if x > 10:
    print("x大于10")
elif x == 10:
    print("x等于10")
else:
    print("x小于10")

5.2 循环语句

循环语句用于重复执行代码块。Python中的循环语句包括forwhile两种。

for循环

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

示例代码:

for i in [1, 2, 3]:
    print(i)

for char in "hello":
    print(char)

while循环

while循环用于在条件满足的情况下重复执行代码块。

示例代码:

count = 0
while count < 5:
    print(count)
    count += 1

5.3 跳出循环

Python提供了breakcontinue语句来控制循环的执行。

break语句

break语句用于立即退出循环。

示例代码:

for i in [1, 2, 3]:
    if i == 2:
        break
    print(i)

continue语句

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

示例代码:

for i in [1, 2, 3]:
    if i == 2:
        continue
    print(i)
6. 函数定义

函数是一段可重复使用的代码块,用于执行特定的任务。Python中的函数定义使用def关键字。

定义函数

使用def关键字定义函数,代码块由冒号和缩进表示。

示例代码:

def greet(name):
    print("你好," + name)

greet("张三")

参数和返回值

函数可以接受参数,也可以返回值。

示例代码:

def add(a, b):
    return a + b

result = add(5, 3)
print(result)

默认参数

函数可以定义默认参数,当调用时没有提供参数值时使用默认值。

示例代码:

def greet(name="陌生人"):
    print("你好," + name)

greet()  # 输出:你好,陌生人
greet("李四")  # 输出:你好,李四

可变参数

Python支持可变参数,包括位置参数和关键字参数。

示例代码:

def print_args(*args):
    for arg in args:
        print(arg)

print_args(1, 2, 3)

def print_kwargs(**kwargs):
    for key, value in kwargs.items():
        print(f"{key} = {value}")

print_kwargs(name="Tom", age=20)
7. 模块与包

Python中通过模块和包组织代码,模块是一个包含Python定义和语句的文件,以.py为扩展名。

7.1 模块

一个Python程序可以使用import语句导入其他模块中的函数、类等。

示例代码:

import math

result = math.sqrt(16)
print(result)

7.2 包

包是模块的集合,用于组织相关模块。包中包含一个__init__.py文件,可以为空或包含包的初始化代码。

示例代码:

# mypackage/__init__.py
print("mypackage 初始化")

# mypackage/submodule.py
def do_something():
    print("正在执行一些操作")

# 使用包
import mypackage.submodule

mypackage.submodule.do_something()
8. 异常处理

异常处理是程序开发中非常重要的一部分,用于检测和处理程序中的错误。

8.1 异常类型

Python中常见的异常类型包括ValueErrorTypeErrorIndexError等。

异常捕获

使用tryexcept语句捕获并处理异常。

示例代码:

try:
    x = int(input("请输入一个数字:"))
    print(x)
except ValueError:
    print("输入错误,请输入一个有效的数字")

多个异常

可以捕获多个异常。

示例代码:

try:
    x = int(input("请输入一个数字:"))
    y = 10 / x
    print(y)
except (ValueError, ZeroDivisionError):
    print("输入错误或除数为零")

最终执行语句

使用finally块确保某些代码在异常处理后始终执行。

示例代码:

try:
    x = int(input("请输入一个数字:"))
    y = 10 / x
except ValueError:
    print("输入错误,请输入一个有效的数字")
except ZeroDivisionError:
    print("除数不能为零")
finally:
    print("无论如何都会执行此语句")

日志记录

可以使用日志记录来捕获异常信息。

示例代码:

import logging

logging.basicConfig(level=logging.DEBUG)

try:
    x = int(input("请输入一个数字:"))
    y = 10 / x
except ValueError:
    logging.error("输入错误,请输入一个有效的数字")
except ZeroDivisionError:
    logging.error("除数不能为零")
finally:
    print("无论如何都会执行此语句")

错误重试

可以实现错误重试机制。

示例代码:

import time

def fetch_data():
    try:
        # 模拟网络请求
        time.sleep(2)
        raise ValueError("网络错误")
    except ValueError as e:
        print(f"错误:{e}")
        return fetch_data()

fetch_data()
9. 文件操作

文件操作是编程中的常见任务,包括读取、写入、删除等。

9.1 读取文件

使用open()函数打开文件,并使用read()方法读取内容。

示例代码:

with open("example.txt", "r") as file:
    content = file.read()
    print(content)

9.2 写入文件

使用open()函数打开文件,并使用write()方法写入内容。

示例代码:

with open("example.txt", "w") as file:
    file.write("这是一个示例文本")

9.3 文件指针

文件指针用于控制读写位置。可以使用seek()方法移动文件指针。

示例代码:

with open("example.txt", "r+") as file:
    file.write("新的内容")
    file.seek(0)
    content = file.read()
    print(content)

9.4 文件模式

文件打开模式包括:

  • r:只读模式。
  • w:写入模式,如果文件存在则覆盖,否则创建新文件。
  • a:追加模式,写入数据时从文件末尾开始。
  • r+:读写模式,可以读取和写入。
  • w+:读写模式,写入时会覆盖原有内容。
  • a+:读写模式,追加写入。

示例代码:

with open("example.txt", "a+") as file:
    file.write("追加的内容\n")
    file.seek(0)
    content = file.read()
    print(content)
10. 面向对象编程

Python是一种支持面向对象编程的语言,可以定义类和对象。

10.1 类的定义

使用class关键字定义类,类中可以包含属性和方法。

示例代码:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def introduce(self):
        print(f"我是{self.name},我{self.age}岁了")

person = Person("张三", 20)
person.introduce()

10.2 类的继承

使用class关键字继承其他类,可以重写父类的方法。

示例代码:

class Student(Person):
    def __init__(self, name, age, grade):
        super().__init__(name, age)
        self.grade = grade

    def introduce(self):
        print(f"我是{self.name},我{self.age}岁了,我在{self.grade}年级")

student = Student("李四", 18, "高二")
student.introduce()

10.3 静态方法和类方法

静态方法和类方法不需要实例化类就可以直接调用。

示例代码:

class Math:
    @staticmethod
    def add(a, b):
        return a + b

    @classmethod
    def multiply(cls, a, b):
        return cls.add(a, b) * 2

print(Math.add(3, 4))
print(Math.multiply(3, 4))
11. 集合与迭代

集合和迭代是Python中处理数据的重要方式。

11.1 列表

列表是一种有序的数据集合,可以包含多种数据类型。

示例代码:

lst = [1, 2, 3, "hello", True]
lst.append(4)
print(lst)

高级操作示例:

lst = [1, 2, 3, 4, 5]
# 列表推导
squares = [x ** 2 for x in lst]
print(squares)

# 切片操作
even_numbers = lst[1::2]
print(even_numbers)

11.2 元组

元组是不可变的有序数据集合,可以包含多种数据类型。

示例代码:

tup = (1, 2, 3, "hello", True)
print(tup)

高级操作示例:

tup = (1, 2, 3, 4, 5)
# 元组推导
squares = tuple(x ** 2 for x in tup)
print(squares)

11.3 字典

字典是一种无序的键值对集合,键必须是不可变类型。

示例代码:

dic = {"name": "张三", "age": 20}
print(dic["name"])
dic["address"] = "北京市"
print(dic)

高级操作示例:

dic = {"name": "张三", "age": 20}
# 字典推导
new_dic = {k: v * 2 for k, v in dic.items()}
print(new_dic)

11.4 集合

集合是无序的不重复元素集合。

示例代码:

set1 = {1, 2, 3}
set2 = {2, 3, 4}
print(set1 | set2)  # 并集
print(set1 & set2)  # 交集
print(set1 - set2)  # 差集

高级操作示例:

set1 = {1, 2, 3}
set2 = {2, 3, 4}
# 集合推导
squares = {x ** 2 for x in set1}
print(squares)

11.5 迭代

迭代是遍历数据集合的过程,可以使用for循环或迭代器完成。

示例代码:

lst = [1, 2, 3, 4, 5]
for item in lst:
    print(item)

高级操作示例:

lst = [1, 2, 3, 4, 5]
# 使用生成器
def gen():
    for i in lst:
        yield i ** 2

for item in gen():
    print(item)
12. 正则表达式

正则表达式是一种强大的文本匹配工具,用于进行字符串的模式匹配。

12.1 基本语法

正则表达式使用特殊字符和模式匹配规则来匹配字符串。

示例代码:

import re

pattern = r"\d{3}-\d{2}-\d{4}"
match = re.search(pattern, "我的电话号码是123-45-6789")
if match:
    print(match.group())

12.2 常用方法

Python中常用的正则表达式方法包括search()match()findall()等。

示例代码:

import re

text = "我的电话号码是123-45-6789,另一个电话号码是987-65-4321"
pattern = r"\d{3}-\d{2}-\d{4}"
matches = re.findall(pattern, text)
print(matches)

复杂模式匹配示例:

import re

text = "我的电话号码是123-45-6789,另一个电话号码是987-65-4321"
pattern = r"(?P<number>\d{3}-\d{2}-\d{4})"
matches = re.finditer(pattern, text)
for match in matches:
    print(match.group('number'))

替换操作示例:

import re

text = "我的电话号码是123-45-6789,另一个电话号码是987-65-4321"
pattern = r"\d{3}-\d{2}-\d{4}"
replaced_text = re.sub(pattern, "电话号码", text)
print(replaced_text)
13. 网络编程

网络编程是Python中常见的应用领域,可以编写客户端和服务器程序。

13.1 socket编程

Python中的socket模块提供了网络通信的基础功能。

示例代码:

import socket

# 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 绑定地址和端口
s.bind(("127.0.0.1", 12345))

# 监听连接
s.listen(5)

while True:
    # 接受连接
    conn, addr = s.accept()
    print(f"连接来自{addr}")
    # 发送消息
    conn.sendall(b"你好,客户端!")
    # 关闭连接
    conn.close()

复杂HTTP客户端示例:

import requests

response = requests.post("https://httpbin.org/post", data={"key": "value"})
print(response.status_code)
print(response.text)

复杂HTTP服务器示例:

from http.server import HTTPServer, BaseHTTPRequestHandler

class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.end_headers()
        self.wfile.write(b"Hello, world!")

httpd = HTTPServer(('localhost', 8000), SimpleHTTPRequestHandler)
httpd.serve_forever()

13.2 HTTP请求

使用requests库进行HTTP请求操作。

示例代码:

import requests

response = requests.get("https://www.example.com")
print(response.status_code)
print(response.text)

复杂HTTP请求示例:

import requests

response = requests.post("https://httpbin.org/post", data={"key": "value"})
print(response.status_code)
print(response.text)
14. 数据结构

Python中提供了多种内置的数据结构,包括列表、元组、字典、集合等。

14.1 列表

列表是一种有序的可变序列,可以存储不同类型的数据。

示例代码:

lst = [1, "hello", True, 3.14]
print(lst[1])
lst.append("world")
print(lst)

高级操作示例:

lst = [1, 2, 3, 4, 5]
# 列表推导
squares = [x ** 2 for x in lst]
print(squares)

# 切片操作
even_numbers = lst[1::2]
print(even_numbers)

14.2 元组

元组是一种有序的不可变序列,可以存储不同类型的数据。

示例代码:

tup = (1, "hello", True, 3.14)
print(tup[1])

高级操作示例:

tup = (1, 2, 3, 4, 5)
# 元组推导
squares = tuple(x ** 2 for x in tup)
print(squares)

14.3 字典

字典是一种无序的键值对集合,键必须是不可变类型。

示例代码:

dic = {"name": "张三", "age": 20}
print(dic["name"])
dic["address"] = "北京市"
print(dic)

高级操作示例:

dic = {"name": "张三", "age": 20}
# 字典推导
new_dic = {k: v * 2 for k, v in dic.items()}
print(new_dic)

14.4 集合

集合是一种无序的不重复元素集合。

示例代码:

set1 = {1, 2, 3}
set2 = {2, 3, 4}
print(set1 | set2)  # 并集
print(set1 & set2)  # 交集
print(set1 - set2)  # 差集

高级操作示例:

set1 = {1, 2, 3}
set2 = {2, 3, 4}
# 集合推导
squares = {x ** 2 for x in set1}
print(squares)
15. 推荐资源

学习Python编程,推荐以下资源:

以上是Python编程的基础知识和应用示例。通过学习和实践,您可以掌握Python编程的核心技能,并应用于各种实际项目中。

0人推荐
随时随地看视频
慕课网APP