Python基础一览

列表(List):

动态数组,可以存储不同类型的元素。
支持修改、添加和删除操作。
元组(Tuple):

不可变序列,通常用于存储多个不同类型的元素。
支持拆包操作以同时访问多个元素。
字典(Dictionary):

键值对集合,键是唯一的而且通常是不可变的(如字符串、数值或元组)。
适用于需要快速查找、插入、删除操作的场景。
集合(Set):

无序且唯一的元素集合。
常用于去重,以及进行集合操作(如求交集、并集和差集)。
字符串(String):

不可变文本序列。
提供丰富的文本处理方法,如大小写转换、分割等。

def demonstrate_data_structures():
    # 列表(List)
    fruits = ['apple', 'banana', 'cherry']
    fruits.append('date')  # 添加元素
    fruits[1] = 'blueberry'  # 修改元素
    print("List:", fruits)

    # 访问列表元素
    print("First fruit:", fruits[0])
    print("Last fruit:", fruits[-1])

    # 列表迭代
    for fruit in fruits:
        print(f"List item: {fruit}")

    # 列表推导
    lengths = [len(fruit) for fruit in fruits]
    print("Lengths of fruit names:", lengths)

    # 元组(Tuple)
    dimensions = (1920, 1080)
    width, height = dimensions  # 拆包
    print("Tuple:", dimensions)
    print("Width:", width, "Height:", height)

    # 字典(Dictionary)
    fruit_colors = {'apple': 'red', 'banana': 'yellow', 'cherry': 'red'}
    fruit_colors['date'] = 'brown'  # 添加键值对
    print("Dictionary:", fruit_colors)

    # 访问字典元素
    print("Color of apple:", fruit_colors['apple'])

    # 字典迭代
    for fruit, color in fruit_colors.items():
        print(f"The {fruit} is {color}")

    # 集合(Set)
    basket = {'apple', 'orange', 'banana'}
    basket.add('cherry')  # 添加元素
    basket.discard('banana')  # 移除元素
    print("Set:", basket)

    # 集合操作
    another_basket = {'banana', 'pear', 'apple'}
    print("Union:", basket | another_basket)
    print("Intersection:", basket & another_basket)
    print("Difference:", basket - another_basket)

    # 集合迭代
    for item in basket:
        print(f"Set item: {item}")

    # 字符串(String)
    greeting = "Hello, World!"
    print("String:", greeting)
    print("Uppercase:", greeting.upper())
    print("Lowercase:", greeting.lower())
    print("Split:", greeting.split(', '))

if __name__ == '__main__':
    demonstrate_data_structures()

使用虚拟环境:## 标题

创建一个虚拟环境来安装 oss2 以避免系统全局包的冲突:
bash
python3 -m venv myenv # 创建虚拟环境
source myenv/bin/activate # 激活虚拟环境
pip install oss2 # 在虚拟环境中安装
查看 Python 和 pip 的版本:

有时候旧版本的 pip 或 Python 会导致不兼容问题。确保它们是最新的:
bash
python3 --version
pip --version
pip install --upgrade pip setuptools

查看当前激活的虚拟环境
(myenv) user@hostname:~$
如果你的终端提示符包含括号中的环境名称,这通常表示你正在一个虚拟环境中工作。

方法二:检查环境变量
在激活环境后,Python 会设置 VIRTUAL_ENV 环境变量指向虚拟环境的路径。您可以使用 Python 或命令行来检查这个变量:
echo $VIRTUAL_ENV

基础说明## 标题

def:
用于定义函数。
函数可以执行特定任务,并且可以在程序的任何地方被调用。

class:
用于定义类。类是面向对象编程的基本构建块,它封装了数据(属性)和方法(行为)。
类可以包含多个方法(通过def定义),这些方法通常操作该类实例的数据。
类还可以定义特殊的初始化方法__init__()来设置初始状态。
创建类后,可以通过这个类创建对象(实例)。

import json
class File(object):
    def __init__(self, name: str, key: str, url: str = None):
        self.name = name
        self.key = key
        self.url = url

    def __iter__(self):
        yield from {
            "name": self.name,
            "key": self.key,
            "url": self.url,
        }.items()

    def __str__(self):
        return json.dumps(dict(self), ensure_ascii=False)

    def __repr__(self):
        return self.__str__()

    def hello(self):
        print("hello")

    @staticmethod
    def _from_dict(file: dict):
        return File(
            name=file.get("name", ""),
            key=file["key"],
            url=file["url"],
        )
# This is a sample Python script.
import os

from file import File


#函数可以执行特定任务,并且可以在程序的任何地方被调用
def print_hi(name):
    print(f'Hi, {name}')  # Press ⌘F8 to toggle the breakpoint.

# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    print_hi('PyCharm')
    f=File("name1","key1")
    print(f.name)

    File.key = "New Company"  # 更改类变量
    print(f.key)
    print(f.__iter__)
    print(f.__str__())
    print(f.__repr__)

    # 列表(list,“数组”通常指的是Python中的列表)
    my_list = [1, 'two', 3.0]
    # 元组    与列表相似,不过元组内的数据是不能修改的,以()为标识。(因为压根就没有提供修改元素的方法)
    # 函数返回多个值时可以使用元组来返回这些值。元组还可以作为字典的键值对的一部分,或者在格式化字符串时使用。由于元组是不可变的,因此可以确保元组内的元素不被意外修改。
    tup = ('张三', '李四', '王五')

    # 创建一个空字典
    flights = {}
    flights[("Beijing", "Shanghai")] = 1200
    flights[("Shanghai", "Guangzhou")] = 900
    flights[("Beijing", "Guangzhou")] = 1500

    # 打印整个字典
    print(flights)

    # 访问特定键对应的值
    print(f"Price from Beijing to Shanghai: {flights[('Beijing', 'Shanghai')]}")

    # 集合是一个无序且不重复的元素集,使用花括号 {} 或者 set() 函数来定义,
    my_set = {1, 2, 3, 4}

    # 字典
    file_dict = {
        "name": "example.txt",
        "key": "123456",
        "url": "http://example.com/files/123456"
    }
    file_obj = File._from_dict(file_dict)
    print(file_obj.name)  # 输出: example.txt

    print(isinstance("11",File))
    try:
       print(1/0)
    except Exception as e:
        print({e})

基本架构
my_project/

├── README.md # 项目说明文档
├── setup.py # 包配置文件
├── requirements.txt # 依赖包列表
├── tests/ # 测试代码存放目录
│ └── test_example.py
├── docs/ # 文档
│ └── index.rst
├── my_project/ # 主代码库
│ ├── init.py # 初始化模块
│ ├── main.py # 主运行脚本
│ └── module1.py # 其他模块
└── .gitignore # Git忽略文件配置

编写规范建议
命名规则:

变量名应简洁明了,尽量使用小写字母加下划线的形式(如user_name)。
类名首字母大写(如Person)。
常量全大写(如PI = 3.14)。
注释:

对于复杂的逻辑或算法添加必要的注释。
使用文档字符串(docstring)为函数和类提供描述性信息。
代码格式:

遵循PEP 8风格指南:https://www.python.org/dev/peps/pep-0008/
使用空格而不是制表符进行缩进,通常是4个空格。
每行不超过79个字符。
错误处理:
合理使用异常处理机制,确保程序健壮性和用户体验。
测试:
编写单元测试来验证代码功能正确无误。
尽可能覆盖所有边界情况。

python使用线程池
在 Python 中,concurrent.futures 模块提供了一种方便的方式使用线程池来执行并行任务。通过使用 ThreadPoolExecutor,你可以创建一个线程池来管理和运行多个线程。

from concurrent.futures import ThreadPoolExecutor, as_completed
import time

# 定义一个简单的任务函数
def task(n):
    print(f'Task {n} is starting...')
    time.sleep(n)  # 模拟耗时操作
    result = n * n
    print(f'Task {n} is complete with result: {result}')
    return result

# 使用线程池执行任务
def main():
    # 创建一个包含3个线程的线程池
    with ThreadPoolExecutor(max_workers=3) as executor:
        # 提交多个并行任务
        futures = [executor.submit(task, i) for i in range(5)]

        # 等待任务完成并获取结果
        for future in as_completed(futures):
            try:
                result = future.result()
                print(f'Result from task: {result}')
            except Exception as e:
                print(f'Task generated an exception: {e}')

if __name__ == "__main__":
    main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值