Python编程基础入门导论(第1章)

第一节:Python 快速入门编程基础-1

文章目录

  • 第一节:Python 快速入门编程基础-1
  • 课程目标
  • 课程内容
  • 1. Python简介
  • 2. 环境搭建
  • 3. 输入输出
  • 4. 变量和数据类型
  • 5. 注释
  • 6. 列表和元组
  • 7. 字典
  • 附录
  • 机器码
  • 字节码
  • 字符串操作
  • 列表操作
  • 字典操作
  • conda设置
  • 修改镜像
  • Python环境操作
  • 创建新环境
  • 激活环境
  • 修改环境
  • 管理环境
  • 内置方法
  • 课程目标

  • 理解Python的基本语法
  • 学习变量和基本数据类型
  • 掌握简单的输入输出操作
  • 高级数据结构
  • 课程内容

    1. Python简介
  • Python是什么?

  • Python是一种高级编程语言,由Guido van Rossum于1989年发明。
  • Python以其清晰的语法和代码可读性而著称,非常适合初学者。
  • 为什么选择Python?

  • 易于学习
  • 强大的库支持
  • 广泛的应用领域(如数据分析、人工智能、网站开发等)
  • 2. 环境搭建
  • 安装Python

  • 访问Python官网,下载并安装适合你操作系统的Python版本。
  • 修改清华镜像源 pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
  • 安装代码编辑器

  • 推荐使用Visual Studio Code或PyCharm。

  • 3. 输入输出
  • 输入
  • 使用input()函数获取用户输入。
  • name = input("请输入你的名字:")
    print("你好," + name)
    
  • 输出
  • 使用print()函数输出内容。
  • print("Hello, world!")
    
    4. 变量和数据类型
  • 变量

  • 变量是一个存储数据值的容器,它可以在程序中被使用和修改。
  • 定义变量:name = "子衿"
    铁桶

  • 基本数据类型

  • 整数int,如5, -3
  • 浮点数float,如3.14, -0.001
  • 字符串str,如"Hello, world!", 'Python'
  • 布尔值bool,如True, False
  • 5. 注释
  • 单行注释:# 这是一个注释
  • 多行注释:"""这是一个多行注释"""
  • 6. 列表和元组
  • 列表

  • 可变序列,可以添加、删除或更改元素。
  • 示例:
    numbers = [1, 2, 3, 4, 5]
    numbers.append(6)  # 添加元素
    print(numbers)
    
  • 元组

  • 不可变序列,一旦创建就不能更改。
  • 示例:
    point = (10, 20)
    print(point)
    

  • 7. 字典
  • 创建字典

  • 使用花括号{}创建字典。
  • 示例:
    person = {"name": "失速引擎", "age": 30}
    

  • 访问字典元素

  • 使用键访问字典中的元素。
  • 示例:
    print(person["name"])
    
  • 附录

    机器码
    汇编指令 描述 机器码(示例,x86架构)
    MOV EAX, 1 将立即数1移动到寄存器EAX B8 01 00 00 00
    ADD EAX, EBX 将EBX寄存器的值加到EAX寄存器 01 D8
    SUB EAX, EBX 将EBX寄存器的值从EAX寄存器减去 29 C0
    PUSH EAX 将EAX寄存器的值压入堆栈 50
    POP EBX 从堆栈中弹出值到EBX寄存器 5B
    JMP label 无条件跳转到标签label E9 XX XX XX XX
    JE label 如果上一个条件为真(ZF=1),则跳转到标签label 0F 84 XX XX XX XX
    CALL function 调用函数function E8 XX XX XX XX
    RET 从函数返回,将控制权返回给调用者 C3
    INT 0x80 调用操作系统中断处理程序(Linux系统调用) CD 80
    字节码
    指令 操作码 说明
    LOAD_CONST 100 从常量池中加载常量
    LOAD_GLOBAL 116 从全局命名空间中加载名称
    STORE_FAST 125 将值存储到局部变量
    POP_TOP 1 弹出栈顶元素
    ROT_TWO 23 交换栈顶两个元素
    ROT_THREE 24 交换栈顶三个元素
    DUP_TOP 25 复制栈顶元素
    UNARY_POSITIVE 10 单目正号操作符
    UNARY_NEGATIVE 11 单目负号操作符
    UNARY_NOT 12 逻辑非操作
    BINARY_POWER 19 幂运算
    BINARY_MULTIPLY 20 乘法
    BINARY_TRUE_DIVIDE 21 真除法
    INPLACE_MULTIPLY 26 原地乘法
    GET_ITER 68 获取迭代器
    FOR_ITER 93 进行循环迭代
    CALL_FUNCTION 64 调用函数
    MAKE_FUNCTION 83 创建函数
    BUILD_SLICE 90 构建切片
    EXTENDED_ARG 144 扩展参数,用于处理大于255的参数数
    RAISE_VARARGS 144 引发异常
    RETURN_VALUE 83 从函数返回值
    JUMP_FORWARD 110 无条件跳转
    JUMP_IF_TRUE_OR_POP 92 如果条件为真,则跳转,否则弹出栈顶元素
    JUMP_IF_FALSE_OR_POP 93 如果条件为假,则跳转,否则弹出栈顶元素
    字符串操作
    方法/属性 说明 示例
    str.lower() 将字符串转换为小写 "HELLO".lower() 返回 "hello"
    str.upper() 将字符串转换为大写 "hello".upper() 返回 "HELLO"
    str.capitalize() 将字符串的首字母大写 "hello".capitalize() 返回 "Hello"
    str.title() 将每个单词的首字母大写 "hello world".title() 返回 "Hello World"
    str.strip() 移除字符串首尾的空白字符 " hello ".strip() 返回 "hello"
    str.lstrip() 移除字符串左侧的空白字符 " hello ".lstrip() 返回 "hello "
    str.rstrip() 移除字符串右侧的空白字符 " hello ".rstrip() 返回 " hello"
    str.find(sub) 查找子字符串,返回子字符串的最低索引 "hello".find("lo") 返回 3
    str.rfind(sub) 从右侧开始查找子字符串,返回子字符串的最高索引 "hello".rfind("l") 返回 2
    str.replace(old, new) 替换字符串中的子字符串 "hello".replace("l", "x") 返回 "hexxo"
    str.split(sep) 以指定分隔符分割字符串 "hello world".split() 返回 ["hello", "world"]
    str.join(iterable) 将序列中的元素以指定的字符串连接生成一个新的字符串 " ".join(["hello", "world"]) 返回 "hello world"
    str.startswith(prefix) 检查字符串是否以指定前缀开始 "hello".startswith("he") 返回 True
    str.endswith(suffix) 检查字符串是否以指定后缀结束 "hello".endswith("lo") 返回 True
    str.isalpha() 检查字符串是否只包含字母 "hello".isalpha() 返回 True
    str.isdigit() 检查字符串是否只包含数字 "123".isdigit() 返回 True
    str.isalnum() 检查字符串是否只包含字母和数字 "hello123".isalnum() 返回 True
    str.islower() 检查字符串是否全部为小写 "hello".islower() 返回 True
    str.isupper() 检查字符串是否全部为大写 "HELLO".isupper() 返回 True
    str.istitle() 检查字符串是否符合标题格式 "Hello World".istitle() 返回 True
    str.len() 获取字符串长度 len("hello") 返回 5
    str.count(sub) 计算子字符串出现的次数 "hello".count("l") 返回 2
    str.format(*args, **kwargs) 格式化字符串 "{} is {}".format("hello", "world") 返回 "hello is world"
    列表操作
    操作 说明 示例代码
    append(x) 在列表末尾添加一个元素 x lst.append(1)
    extend(iterable) 将一个可迭代对象(如另一个列表)的所有元素添加到列表末尾 lst.extend([2, 3])
    insert(i, x) 在指定位置 i 插入一个元素 x lst.insert(0, 0)
    remove(x) 移除列表中第一个值为 x 的元素 lst.remove(1)
    pop([i]) 移除列表中指定位置 i 的元素,并返回该元素。如果不指定位置,默认移除并返回列表中的最后一个元素 lst.pop()lst.pop(0)
    clear() 清空列表中的所有元素 lst.clear()
    index(x[, start[, end]]) 返回列表中第一个值为 x 的元素的索引,可以指定搜索的起始和结束位置 lst.index(2)lst.index(2, 1, 5)
    count(x) 返回 x 在列表中出现的次数 lst.count(2)
    sort(key=None, reverse=False) 对列表中的元素进行排序 lst.sort()lst.sort(reverse=True)
    reverse() 反转列表中的元素顺序 lst.reverse()
    copy() 返回列表的浅拷贝 new_lst = lst.copy()
    len(lst) 返回列表长度 length = len(lst)
    min(lst) 返回列表中的最小值 min_value = min(lst)
    max(lst) 返回列表中的最大值 max_value = max(lst)
    sum(lst) 返回列表中所有元素的和 total = sum(lst)
    字典操作
    操作 说明 示例代码
    创建字典 创建一个空字典或带有初始键值对的字典 my_dict = {}my_dict = {"name": "Alice", "age": 25}
    添加元素 向字典中添加新的键值对 my_dict["gender"] = "female"
    删除元素 根据键删除字典中的元素 del my_dict["age"]
    更新元素 更新字典中已存在的键的值 my_dict["age"] = 26
    访问元素 通过键访问字典中的值 name = my_dict["name"]
    检查键存在 检查键是否存在于字典中 if "name" in my_dict:
    获取所有键 获取字典中所有的键 keys = my_dict.keys()
    获取所有值 获取字典中所有的值 values = my_dict.values()
    获取所有键值对 获取字典中的所有键值对 items = my_dict.items()
    清空字典 清空字典中的所有元素 my_dict.clear()
    复制字典 创建字典的浅拷贝或深拷贝 copy = my_dict.copy()deep_copy = deepcopy(my_dict)
    字典推导式 使用推导式创建字典 {key: key * 2 for key in my_dict}
    合并字典 将两个或多个字典合并为一个 {**dict1, **dict2}
    遍历字典 遍历字典中的键、值或键值对 for key, value in my_dict.items():
    conda设置
    修改镜像
    1. 清除旧镜像
      conda clean --all
    2. 添加清华镜像
      conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
    3. 设置Conda在搜索和安装包时显示每个包的具体来源URL
      conda config --set show_channel_urls yes
    Python环境操作
    创建新环境
    1. 创建环境:
      使用conda create命令来创建一个新的环境。你可以指定Python版本和其他包作为依赖项。

      conda create --name myenv python=3.10
      

      这里myenv是新环境的名称,python=3.10指定了Python的版本。

    2. 创建环境并安装包:
      你可以在创建环境时同时安装其他包。

      conda create --name myenv python=3.10 numpy pandas
      
    激活环境
  • 在创建环境后,你需要激活它才能开始使用。
    conda activate myenv
    
  • 修改环境
    1. 安装新包:
      在激活的环境中,你可以安装新的包。

      conda install numpy
      
    2. 更新包:
      更新环境中的包到最新版本。

      conda update numpy
      
    3. 卸载包:
      从环境中移除一个包。

      conda remove numpy
      
    4. 列出环境中的包:
      查看当前环境中安装的所有包。

      conda list
      
    管理环境
    1. 列出所有环境:
      查看系统中所有Conda环境。

      conda env list
      
    2. 导出环境:
      导出环境的配置,可以用于分享或在其他机器上重建相同的环境。

      conda env export > environment.yml
      
    3. 从YAML文件创建环境:
      使用之前导出的YAML文件创建一个新的环境。

      conda env create -f environment.yml
      
    4. 删除环境:
      删除一个不再需要的环境。

      conda env remove --name myenv
      
    5. 更新环境中的所有包:
      更新环境中所有包到最新版本。

      conda update --all
      
    6. 查看环境变量:
      查看当前环境的环境变量。

      conda info --envs
      
    7. 设置环境变量:
      在激活的环境中,可以通过以下命令设置环境变量:

      conda env config vars set VARIABLE_NAME=VALUE
      
    8. 修改环境名称:
      如果你需要修改环境的名称,可以使用以下命令:

      conda rename --name old_name new_name
      
    内置方法
    方法名 描述 示例
    abs() 返回数的绝对值 abs(-10) 返回 10
    all() 判断可迭代对象是否全部为真值 all([1, 2, 3, 0]) 返回 False
    any() 判断可迭代对象是否至少有一个真值 any([0, 0, 4]) 返回 True
    bin() 将整数转换为二进制字符串 bin(10) 返回 '0b1010'
    bool() 将值转换为布尔类型 bool(0) 返回 False
    bytearray() 创建字节数组 bytearray(b'byte')
    bytes() 创建不可变字节对象 bytes(b'byte')
    callable() 判断对象是否是可调用的 callable(len) 返回 True
    chr() 将整数转换为对应的 ASCII 字符 chr(65) 返回 'A'
    classmethod() 装饰器,将方法变为类方法 @classmethod def my_method(cls):
    compile() 编译源代码为代码或字节码对象 compile('print("Hello")', 'file.py', 'exec')
    complex() 创建一个复数 complex(1, 2) 返回 (1+2j)
    delattr() 删除对象的属性 delattr(obj, 'x')
    dict() 创建字典 dict(key='value')
    dir() 返回对象的属性和方法列表 dir(obj)
    divmod() 除法和取模运算 divmod(10, 3) 返回 (3, 1)
    enumerate() 将可迭代对象组合为枚举对象 for i, v in enumerate(['a', 'b']):
    eval() 计算字符串中的有效 Python 表达式 eval('1 + 2') 返回 3
    exec() 执行字符串中的 Python 语句 exec('x = 5')
    filter() 使用函数过滤序列 filter(lambda x: x > 1, [1, 2, 3]) 返回 [2, 3]
    float() 将值转换为浮点数 float(3) 返回 3.0
    format() 格式化字符串 '{} {}'.format('Hello', 'World') 返回 'Hello World'
    frozenset() 创建不可变集合 frozenset([1, 2])
    getattr() 获取对象的属性值 getattr(obj, 'x')
    globals() 返回当前全局符号表的字典 globals()
    hasattr() 判断对象是否有指定的属性 hasattr(obj, 'x')
    hash() 返回对象的哈希值 hash('hello')
    help() 显示对象的帮助文档 help(list)
    hex() 将整数转换为十六进制字符串 hex(255) 返回 '0xff'
    id() 返回对象的内存地址 id(obj)
    input() 从标准输入读取一行字符串 input('Enter something: ')
    int() 将值转换为整数 int('123') 返回 123
    isinstance() 判断对象是否是类的实例 isinstance(42, int) 返回 True
    issubclass() 判断一个类是否是另一个类的子类 issubclass(int, float) 返回 False
    iter() 返回对象的迭代器 iter([1, 2, 3])
    len() 返回容器的长度 len([1, 2, 3]) 返回 3
    list() 将可迭代对象转换为列表 list('hello') 返回 ['h', 'e', 'l', 'l', 'o']
    locals() 返回当前局部符号表的字典 locals()
    map() 将函数应用于可迭代对象的每个元素 map(lambda x: x*2, [1, 2, 3]) 返回 [2, 4, 6]
    max() 返回可迭代对象中的最大值 max(1, 2, 3) 返回 3
    min() 返回可迭代对象中的最小值 min(1, 2, 3) 返回 1
    next() 从迭代器获取下一个元素 next(iter([1, 2, 3])) 返回 1
    object() 创建一个新对象 obj = object()
    oct() 将整数转换为八进制字符串 oct(10) 返回 '012'
    open() 打开文件并返回文件对象 open('file.txt', 'r')
    ord() 将单个字符转换为它的 ASCII 码 ord('A') 返回 65
    pow() 幂运算 pow(2, 3) 返回 8
    print() 打印对象到标准输出 print('Hello World')
    range() 创建一个整数范围 range(0, 5) 返回 range(0, 5)
    repr() 获取对象的字符串表示 repr([1, 2, 3]) 返回 '[1, 2, 3]'
    reversed() 反转可迭代对象 reversed([1, 2, 3]) 返回 reversed([1, 2, 3])
    round() 四舍五入到指定的小数位数 round(3.14159, 2) 返回 3.14
    set() 创建集合 set([1, 2, 2]) 返回 {1, 2}
    setattr() 设置对象的属性值 setattr(obj, 'x', 42)
    slice() 创建切片对象 slice(1, 10, 2)
    sorted() 对可迭代对象进行排序 sorted([3, 1, 2]) 返回 [1, 2, 3]
    staticmethod() 装饰器,将方法变为静态方法 @staticmethod def my_method():
    str() 将对象转换为字符串 str(42) 返回 '42'
    sum() 对可迭代对象中的元素求和 sum([1, 2, 3]) 返回 6
    super() 返回对父对象的引用 super().method()
    tuple() 将可迭代对象转换为元组 tuple([1, 2, 3]) 返回 (1, 2, 3)
    type() 获取对象的类型或创建新的类型 type('str') 返回 <class 'str'>
    vars() 返回对象的 __dict__ 属性 vars(obj)
    zip() 将多个可迭代对象中对应的元素打包成一个个元组 zip([1, 2], ['a', 'b']) 返回 [(1, 'a'), (2, 'b')]

    作者:欧阳枫落

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python编程基础入门导论(第1章)

    发表回复