第24篇 python基础

Python的基础语法相当简洁明了,以下是一些关键点及其简单案例分析:### 1. **标识符**
- 标识符是用来给变量、函数、类等命名的名称,必须以字母(包括Unicode字符)、下划线 `_` 或者非数字字符开头,后面可以跟任意数量的字母、数字或下划线。
   ```python
 

  # 正确的标识符
   my_variable = 10
   _private_var = 'hidden value'
   class MyClass:
       pass

   # 错误的标识符,因为以数字开头
   1var = 'This will cause an error'

   ```### 2. **变量声明与赋值**
- 在Python中,不需要显式声明变量类型,直接赋值即可创建变量。
   ```python

   x = 123  # 整数
   y = 3.14  # 浮点数
   name = "Alice"  # 字符串
   is_active = True  # 布尔值

   # 多变量同时赋值
   a, b, c = 1, 2, "three"


   ```### 3. **数据类型**
- Python支持多种内建数据类型,如整型(int)、浮点型(float)、字符串(str)、列表(list)、元组(tuple)、字典(dict)和集合(set)等。
   ```python
 

 list_example = [1, 2, 3, "four"]
   tuple_example = (5, 6, "seven")
   dict_example = {"name": "Bob", "age": 30}
   set_example = {8, 9, "ten"}

   # 数据类型转换
   int_number = int("123")  # 字符串转整数
   str_text = str(456)  # 整数转字符串


   ```### 4. **条件语句和循环**
- `if...elif...else` 结构用于条件判断。
   ```python

   score = 85
   if score >= 90:
       print("优秀")
   elif score >= 60:
       print("及格")
   else:
       print("不及格")

   for i in range(5):
       print(i)  # 输出0到4

   while score < 100:
       print("继续努力")
       score += 10


   ```### 5. **函数定义**
- 函数使用`def`关键字定义。
   ```python

   def greet(name):
       print(f"Hello, {name}!")

   greet("World")  # 输出: Hello, World!


   ```### 6. **模块导入**
- 可以使用`import`语句导入模块或特定功能。
   ```python
 

  import math
   print(math.sqrt(16))  # 输出: 4.0

   from datetime import datetime
   now = datetime.now()
   print(now)


   ```

### 7. **注释**
- 单行注释以`#`开始。
   ```python
 

 # 这是一个单行注释


   ```

- 多行注释可以用三个单引号(`'''`)或三个双引号(`"""`)包裹。
   ```python
   '''
   这是一个多行注释,
   可以跨越多行。
   '''
   ```

以上仅为Python基础语法的部分要点和案例,实际使用中还有更多复杂的结构和概念,比如异常处理、类与对象、列表推导式、生成器表达式、装饰器等。通过不断实践和深入学习,可以逐步掌握这些高级特性。

当然,我们还可以进一步探讨一些更深层次的Python特性和应用案例:### 8. **列表推导式**
- 列表推导式是一种简洁地创建新列表的方式,基于现有可迭代对象或其它表达式。
   ```python
 

 numbers = [1, 2, 3, 4, 5]
   squared_numbers = [n**2 for n in numbers]
   print(squared_numbers)  # 输出: [1, 4, 9, 16, 25]

   # 同时包含条件过滤
   even_squared_numbers = [n**2 for n in numbers if n % 2 == 0]
   print(even_squared_numbers)  # 输出: [4, 16]


   ```

### 9. **字典推导式**
- 类似于列表推导式,字典推导式用于快速创建字典。
   ```python
 

  keys = ['a', 'b', 'c']
   values = [1, 2, 3]
   dictionary = {k: v for k, v in zip(keys, values)}
   print(dictionary)  # 输出: {'a': 1, 'b': 2, 'c': 3}


   ```

### 10. **匿名函数(Lambda函数)**
- Lambda函数用于创建简短、一次性使用的函数,无需定义完整的函数体。
   ```python
 

 add_one = lambda x: x + 1
   result = add_one(5)
   print(result)  # 输出: 6


   ```### 11. **迭代器与生成器**
- 迭代器是实现了`__iter__()`和`__next__()`方法的对象,可以通过for循环遍历。
- 生成器是一种特殊的迭代器,但更高效,因为它在需要时生成值,而不是一次性生成所有值并存储。
   ```python
 

  # 生成器函数
   def odd_numbers(n):
       i = 1
       while i <= n:
           yield i
           i += 2

   for number in odd_numbers(10):
       print(number)  # 输出: 1, 3, 5, 7, 9
   ```

### 12. **类与面向对象编程**
- 在Python中,类用于创建自定义对象类型,支持继承、封装和多态。
   ```python
   class Person:
       def __init__(self, name, age):
           self.name = name
           self.age = age

       def introduce(self):
           print(f"My name is {self.name} and I am {self.age} years old.")

   p = Person("Alice", 30)
   p.introduce()  # 输出: My name is Alice and I am 30 years old.


   ```

通过掌握上述基本语法和这些较为进阶的概念,开发者能够编写出更高效、更具表现力的Python代码。而Python丰富的标准库和第三方库更是极大地扩展了其应用领域,使得它成为科学计算、数据分析、Web开发等多种场景的理想选择。

### 13. **模块化与包**
- Python 支持模块化编程,允许将代码组织成多个文件,每个文件作为一个模块。模块可以导入到其他脚本中重复使用,提高代码的复用性。```python
# 文件名为 math_operations.py

def add(x, y):
    return x + y

def subtract(x, y):
    return x - y

# 在另一个脚本中导入并使用该模块

import math_operations

result = math_operations.add(5, 3)
print(result)  # 输出: 8


```### 14. **命名空间与作用域**
- 命名空间是一个存储变量名称及其对应对象映射的结构,Python 中有全局作用域、局部作用域以及嵌套作用域。
- 当在一个函数内部定义一个变量时,这个变量在该函数内部具有局部作用域;如果在函数外部定义,则具有全局作用域。
   ```python

   global_var = "Global"

   def func():
       local_var = "Local"
       print(global_var)  # 可以访问全局变量
       print(local_var)  # 输出 Local

   func()
   print(local_var)  # 报错,因为local_var只在func作用域内有效


   ```### 15. **装饰器(Decorators)**
- 装饰器是 Python 中一种强大的工具,它可以修改或增强函数的行为,同时保留函数的原始接口。
   ```python

   def my_decorator(func):
       def wrapper(*args, **kwargs):
           print("Before function call.")
           result = func(*args, **kwargs)
           print("After function call.")
           return result
       return wrapper

   @my_decorator
   def say_hello(name):
       print(f"Hello, {name}!")

   say_hello("World")  # 输出:
   # Before function call.
   # Hello, World!
   # After function call.


   ```### 16. **上下文管理器与 `with` 语句**
- 上下文管理器通常通过实现 `__enter__` 和 `__exit__` 方法来确保资源的正确打开和关闭,从而简化异常处理和资源清理工作。
   ```python
   

class ManagedFile:
       def __init__(self, filename):
           self.filename = filename
       def __enter__(self):
           self.file = open(self.filename, 'r')
           return self.file
       def __exit__(self, exc_type, exc_val, exc_tb):
           self.file.close()

   with ManagedFile('example.txt') as f:
       content = f.read()
       print(content)  # 在 `with` 语句结束时,文件会自动关闭


   ```

深入理解以上概念后,开发者能够更加熟练地驾驭Python语言,并利用其特性构建复杂且健壮的应用程序。此外,Python还有诸如协程(coroutine)、元类(metaclass)、异步IO(asyncio)等高级特性,它们在特定场景下提供了更高的性能和灵活性。

### 17. **异常处理**
- Python 使用 try/except/finally 结构进行异常处理,确保在遇到错误时程序能正常执行或进行适当的错误恢复。```python

try:
    # 尝试执行可能会抛出异常的代码
    divide_by_zero = 1 / 0
except ZeroDivisionError:
    # 如果捕获到 ZeroDivisionError 异常,则执行此块代码
    print("Cannot divide by zero!")
finally:
    # 不论是否发生异常,都会执行 finally 块中的代码
    print("This block always executes.")

# 更加详细的异常处理可以指定多种异常类型
try:
    ...
except ZeroDivisionError:
    handle_zero_division()
except FileNotFoundError:
    handle_file_not_found()
except Exception as e:
    print(f"An unexpected error occurred: {e}")


```

### 18. **文件操作**
- Python 提供了一系列内置函数和方法来进行文件读写操作。```python

# 打开一个文件进行写入
with open('output.txt', 'w') as f:
    f.write("Hello, world!\n")

# 打开一个文件进行读取
with open('input.txt', 'r') as f:
    content = f.read()
    print(content)

# 写入多行内容
lines = ["Line 1", "Line 2", "Line 3"]
with open('output.txt', 'w') as f:
    for line in lines:
        f.write(line + '\n')

# 逐行读取文件
with open('input.txt', 'r') as f:
    for line in f:
        process_line(line.strip())


```

### 19. **正则表达式**
- Python 的 re 模块提供了对正则表达式的强大支持,可用于文本搜索、替换、提取等操作。```python

import re

text = "The quick brown fox jumps over the lazy dog."

# 匹配单词“fox”
match = re.search(r'fox', text)
if match:
    print(match.group())

# 替换匹配项
new_text = re.sub(r'fox', 'cat', text)
print(new_text)


```

### 20. **并发与多线程**
- Python 提供了 threading 模块支持多线程编程,以及 asyncio 库支持异步编程。```python

import threading

def worker(num):
    """thread worker function"""
    print(f"Worker: {num}")

threads = []
for i in range(5):
    t = threading.Thread(target=worker, args=(i,))
    threads.append(t)
    t.start()

# 确保所有线程完成后再继续
for t in threads:
    t.join()

# 异步示例
import asyncio

async def my_coroutine():
    await asyncio.sleep(1)
    print("Coroutine finished")

async def main():
    task = asyncio.create_task(my_coroutine())
    print("Doing something else...")
    await task

asyncio.run(main())


```

以上就是Python语言的一些核心特性与常见应用场景。Python因其丰富的功能、易读易写的特点以及广泛的社区支持,在众多领域得到了广泛应用。随着对Python深入学习,你会发现更多高级功能和最佳实践,如虚拟环境管理、单元测试、数据科学库、Web框架等等。

### 21. **面向对象编程(OOP)进阶**

- **继承(Inheritance)**:在Python中,一个类可以从已有的类派生出新的类,这种机制称为继承。子类会继承父类的所有属性和方法,并可以根据需要添加或重写自己的属性和方法。```python

class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        raise NotImplementedError("Subclass must implement this method")

class Dog(Animal):
    def speak(self):
        return "Woof!"

class Cat(Animal):
    def speak(self):
        return "Meow!"

dog = Dog("Rex")
print(dog.speak())  # 输出: Woof!

cat = Cat("Whiskers")
print(cat.speak())  # 输出: Meow!


```

- **多态(Polymorphism)**:多态允许不同类的对象响应相同的消息时产生不同的行为。在Python中,由于动态类型特性,一个基类引用可以指向其派生类实例,从而实现多态。```python

def animal_speak(animal):
    return animal.speak()

animals = [Dog("Rex"), Cat("Whiskers")]
for animal in animals:
    print(animal_speak(animal))


```

### 22. **元类(Metaclasses)**
- 元类是类的类,用来控制类的创建行为。它们很少在常规编程中使用,但在某些高级应用场景如框架设计、模块系统中非常有用。```python

class Meta(type):
    def __new__(meta, name, bases, dct):
        print(f"Creating class {name}")
        return super().__new__(meta, name, bases, dct)

class MyClass(metaclass=Meta):
    pass

# 输出: Creating class MyClass


```

### 23. **类型提示(Type Hints)**
- Python 3.5及以上版本引入了类型提示,有助于静态检查工具提供更好的代码分析和IDE提供更好的智能感知。```python

def calculate_area(radius: float) -> float:
    return 3.14 * radius ** 2

radius = 5.0
area = calculate_area(radius)


```

### 24. **单元测试**
- Python的unittest模块提供了编写和运行单元测试的功能,确保代码的稳定性和可靠性。```python

import unittest

class TestCalculator(unittest.TestCase):
    def test_addition(self):
        calculator = Calculator()
        self.assertEqual(calculator.add(2, 3), 5)

if __name__ == "__main__":
    unittest.main()


```

以上介绍了更多Python的进阶特性,随着对Python的深入学习和实践,你还会接触到更多高级主题,如异步I/O、数据库操作、网络编程、并发模型、分布式计算等,帮助你在各种复杂项目中发挥Python的强大能力。

### 25. **异步编程(Asynchronous Programming)**

- 自从Python 3.5引入了`asyncio`库以来,异步编程在Python中变得越来越重要,尤其是在处理高并发I/O密集型任务时。通过`async`和`await`关键字,Python实现了协程(Coroutines)。```python

import asyncio

async def my_coroutine():
    print("Coroutine started")
    await asyncio.sleep(1)  # 异步等待1秒
    print("Coroutine finished")

async def main():
    task = asyncio.create_task(my_coroutine())
    print("Doing something else...")
    await task

# 使用asyncio.run()启动事件循环并运行主协程
asyncio.run(main())


```

### 26. **虚拟环境(Virtual Environments)**

- 虚拟环境是隔离不同项目之间Python依赖的一种方法,避免了不同项目间的库版本冲突。Python自带`venv`模块可以创建和管理虚拟环境。

```bash
# 创建一个新的虚拟环境

python3 -m venv my_venv

# 激活虚拟环境(Windows)

my_venv\Scripts\activate.bat

# 激活虚拟环境(Unix/Linux/MacOS)

source my_venv/bin/activate

# 在激活的虚拟环境中安装包

pip install requests

# 退出虚拟环境

deactivate


```

### 27. **数据科学与机器学习**

- Python拥有丰富且强大的数据科学库,如NumPy(数组处理)、Pandas(数据处理)、Matplotlib(数据可视化)、Scikit-Learn(机器学习)等。```python

import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression

# 加载数据
data = pd.read_csv('data.csv')

# 数据预处理
X = data[['feature1', 'feature2']]
y = data['target']

# 训练线性回归模型
model = LinearRegression()
model.fit(X, y)

# 预测
predictions = model.predict(X)


```

### 28. **Web框架**

- Python拥有多款优秀的Web框架,其中Flask和Django最为知名。它们可以帮助开发者快速构建功能齐全的Web应用程序。```python
# Flask示例

from flask import Flask, request

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run()

# Django示例
from django.http import HttpResponse
from django.urls import path
from django.shortcuts import render

def home_view(request):
    return HttpResponse("Welcome to Django!")

urlpatterns = [
    path('', home_view, name='home'),
]

# 更多配置设置,如设置模板、数据库、视图等


```

以上涵盖了Python编程中的几个关键领域,Python作为一门功能全面的编程语言,其适用范围广泛,无论是在系统脚本、Web开发、数据科学还是人工智能等领域都有出色的表现。持续探索和学习Python,将会解锁更多的开发技巧和应用场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/567033.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

106短信群发平台如此火热究竟有没有效?

106短信群发平台之所以如此火热&#xff0c;确实是因为它在多个方面展现出了显著的有效性。 首先&#xff0c;从发送速度和到达率来看&#xff0c;106短信平台表现优秀。无论是节假日还是平日&#xff0c;其发送速度都能保持在一个较快的水平&#xff0c;这对于验证码短信、通…

Mybatis源码学习系列之搭建源码阅读环境

1. 实验环境 jdk1.8.0_171apache-maven-3.5.4IntelliJ IDEA 2018mybatis-parent 31mybatis-3.5.4 2. 下载源码 先在官方GitHub下载对应的代码 git clone https://github.com/mybatis/parent git clone https://github.com/mybatis/mybatis-3mybatis3使用3.5.4版本&#xff…

【数据库教程】Navicat和在线phpMyAdmin如何连接远程服务器

文章目录 NavicatphpMyAdmin来源 有很多工具可以连接数据库&#xff0c;这里介绍两种&#xff0c;自行选择一种使用即可 Navicat 1、打开Navicat 2、点击连接&#xff0c;选择MySQL 3、输入数据库信息后点击测试连接&#xff08;数据库信息请联系我&#xff09; 4、点击确…

Java进阶-Stream流

概述 在Java8中&#xff0c;得益于lambda所带来的函数式编程&#xff0c;引入了一个全新的Stream流的概念目的&#xff1a;用于简化集合和数组操作的api 案例 需求&#xff1a;创建一个集合存储多个字符串元素&#xff0c;将集合中所有以“z”开头的元素存储到新的集合中&am…

C++ | Leetcode C++题解之第44题通配符匹配

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isMatch(string s, string p) {auto allStars [](const string& str, int left, int right) {for (int i left; i < right; i) {if (str[i] ! *) {return false;}}return true;};auto charMatch []…

LPA算法简介

1. 背景 标签传播算法(Label Propagation Algorithm)是一种基于图的半监督学习方法&#xff0c;其基本思路是用已标记节点的标签信息去预测未标记节点的标签信息。 2. 算法流程 1. 为每个节点随机的指定一个自己特有的标签&#xff1b; 2. 逐轮刷新所有节点的标签&#xff0…

设计模式(四):单例模式

设计模式&#xff08;四&#xff09;&#xff1a;单例模式 1. 单例模式的介绍2. 单例模式的类图3. 单例模式的实现3.1 懒汉式&#xff08;线程不安全&#xff09;3.2 懒汉式&#xff08;线程安全&#xff09;3.3 饿汉式3.4 静态内部类3.5 枚举 1. 单例模式的介绍 单例模式&…

SQL-DML数据操纵语言(Oracle)

文章目录 DML数据操纵语言常见的字段属性字符型字段属性char(n)varchar2(n)/varchar(n) 数值型字段属性number([p],[s]int 日期型字段属性DATEtimestamp 如何查看字段属性增加数据INSERT快捷插入 删除数据DELETE修改数据UPDATE DML数据操纵语言 定义 是针对数据做处理&#xf…

信息系统项目管理49个过程、查看工具与技术!最好用的工具

高项【浏览器打开&#xff0c;用于默写49个过程、查看工具与技术】.html 下载html后建议使用Edge、chrome或者火狐浏览器打开   查看工具与技术&#xff1a;鼠标左键单击管理活动&#xff1b;关闭工具与技术&#xff1a;点击工具与技术外面退回 1、点击【开始默写】按钮&…

在国企上班,有必要考软考吗?

现在很多在私企工作的朋友都会参加软考&#xff0c;国企员工更是如此。软考可以以考代评&#xff0c;传统的职称获取需要两步&#xff0c;第一步是评审&#xff0c;第二步是单位聘任。而通过软考取得证书就可以省去第一步&#xff0c;只需获得单位聘任即可享受相应的职称福利。…

Ventus(承影):基于RISC V的开源GPGPU

Ventus&#xff08;承影&#xff09;&#xff1a;基于RVV的开源GPGPU 清华大学集成电路学院dsp-lab的承影RVV GPGPU设计文档。 整体目标 提供一个开源的基于RVV的GPGPU实现方案&#xff0c;并给出软件映射方案、指令集&#xff08;支持的指令及特性、添加的自定义指令&#xf…

路由引入,路由过滤,路由策略实验

1&#xff0c;配置IP地址 R1&#xff1a; [R1]dis ip interface brief Interface IP Address/Mask Physical Protocol GigabitEthernet0/0/0 100.1.1.1/24 up up LoopBack0 …

OpenHarmony实战开发-如何实现tabContent内容可以在tabBar上显示并且tabBar可以响应滑动事件的功能。

介绍 本示例实现了tabContent内容可以在tabBar上显示并且tabBar可以响应滑动事件的功能。 效果图预览 使用说明 1.点击播放按钮进行视频播放&#xff0c;按住进度条按钮和进度条下方区域可以拖动进度条&#xff0c;更改视频播放进度。 实现思路 原生的Tabs组件&#xff0c…

IP地址SSL证书的申请流程——五步轻松实现https

没有域名或者不方便提供域名&#xff0c;只有IP地址也可以申请SSL证书&#xff0c;为IP地址申请ssl证书是需要开放443或者80端口&#xff0c;一般开放几分钟用来验证IP管理权即可&#xff01; 具体流程如下 IP地址证书 ssl证书点击这里直接申请 https://www.joyssl.com/certif…

鸿蒙应用开发之Web组件6

前面学习怎么样设置Web界面显示不同的颜色配置,这种适合不同时间来设置,比如白天要亮一些,晚上要暗一些。现在来学习使用Web组件选择文件文件列表的功能。 这个功能主要就是使用在Web打开一个页面,然后有上传文件的按钮,比如下面的界面: 当用户点击选择文件按钮时,就会…

nvidia-smi 输出内容详解

一、nvidia-smi 介绍 nvidia-smi&#xff08;NVIDIA System Management Interface&#xff09;是一种命令行实用程序&#xff0c;主要用于监控和管理NVIDIA GPU&#xff08;图形处理器&#xff09;的状态和性能。它提供了一个简单而强大的方式来获取有关GPU的实时信息&#xf…

javaWeb项目-财务管理系统功能介绍

项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&#xff1a;Vue、ElementUI 关键技术&#xff1a;springboot、SSM、vue、MYSQL、MAVEN 数据库工具&#xff1a;Navicat、SQLyog 1、Springboot框架 …

管理集群工具之LVS

管理集群工具之LVS 集群概念 将很多机器组织在一起&#xff0c;作为一个整体对外提供服务集群在扩展性、性能方面都可以做到很灵活集群分类 负载均衡集群&#xff1a;Load Balance高可用集群&#xff1a;High Availability高性能计算&#xff1a;High Performance Computing …

面向对象练习坦克大兵游戏

游戏玩家&#xff08;名称&#xff0c;生命值&#xff0c;等级&#xff09;&#xff0c;坦克&#xff0c;大兵类&#xff0c;玩家之间可以相互攻击&#xff0c;大兵拥有武器&#xff0c;用枪弹和反坦克炮弹&#xff0c;造成攻击不同&#xff0c;坦克攻击值固定&#xff0c;请设…

Java 源码-多级时间轮TimingWheel

多级时间轮TimingWheel 一、时间轮是什么 类似现实中的钟表&#xff0c;由多个环形数组组成&#xff0c;每个环形数组包含20个时间单位&#xff0c;表示一个时间维度&#xff08;一轮&#xff09;&#xff0c;如&#xff1a;第一层时间轮&#xff0c;数组中的每个元素代表1m…