python基础语法

  1. Python 解释交互(IDLE)型面向对象语言,简单

  2. Python 应用范围:爬虫、数据分析、机器学习、app开发、web开发、自动化运维测试、游戏开发

    • 爬虫:批量自动获取海量数据信息
    • 数据分析:营销手段
    • 机器学习:人工智能,谷歌阿尔法狗,监督、半监督、深度学习(英语、高等数学要求高)
    • 自动化运维:持续交付业务需求,开源运维工具大多是python写的,可以定制化需求
    • 网站开发:框架库
  3. Python 环境:

    • 解释器:将python语言翻译成计算机可执行的二进制语言
    • 运行环境:PyCharm、vscode、jupyter
    • 运行:doc python xxx.py ;pycharm:要运行的文件右键运行
    • 检查python
  4. 常见的python 错误类型:

    • 缩进:IndentationError: unexpected indent(单独运行print函数前面不能有空格或缩进)
    • 函数拼写错误:NameError: name 'print1' is not defined. Did you mean: 'print'? || SyntaxError: invalid syntax
    • 标点符号错误:SyntaxError: invalid character '"'(编程语言英文符号)
    • debug:代码执行顺序+变量变化 端点方式同java
  5. 注释:三个单引号或者三对双引号

  6. print函数:

    • print (*objects, sep=' ', end=' In', file=sys. stdout, flush=False)
    • 默认多个参数空格隔开换行结尾 print("hello world","0","1")
    • 可以使用end来自定义结尾 print("hello world","0","1",end="end")
  7. 变量 a=10 变量名称 a 、变量存储的数据 10 、变量地址 地址 、变量数据类型 int

    • 首次使用变量会在内存中划分空间,并初始化值
    • 再次使用变量不再划分空间,修改原空间中的值(要分可变对象和不可变对象,不可变对象重新分空间)
    • 标识符 作为对象名称,比变量名大一些,有特殊规则
    • 只能由数字、字母、下划线组成
    • 不能以数字、关键字开头
    • 区分大小写

    关键字 'False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'

  8. 变量命名规则:

    • 大驼峰
    • 小驼峰
    • 下划线(推荐)
  9. 数值类型

    • int 整数
    • float 小数
    • bool 逻辑值 True(1) False(0)
    • complex 复数 1+2j
  10. 字符串 三引号用来定义多行字符串

    • 转义字符:\
    • s1+s2 字符串连接
    • s1*n 重复输出n次s1
    • tmp in st1 是否包含
    • not in
    • r\R 原样输出R print(r'\n') 结果为\n
    • .title()首字母大写
    • .upper()全部大写
    • .lower()全部小写
    • .rstrip()删除开头和结尾处空行,删除后需要重新赋值给变量,否则删除无效
  11. 格式化输出 定义模板,输出按照模板方式输出,常用的:

    • %s 字符串
    • %c 字符
    • %d 有符号十进制整数
    • %f 浮点数 %.2f 保留两位小数
    • print(%s,%d %("",))
    • format() {}代替%
    • print('{},{},{}'.format(1,2,3))
    • print('{index_0} {index_1} {index_0}'.format(0,1)) 根据索引格式化
    • print('{name} {age}'.format(name='',age=1)) 根据变量格式化
    • f'{},{}' print(f'名字{name},年纪{age}')
  12. 转义字符 \

    • \n 换行
    • \t 制表符
  13. 运算符 ** 幂 最高优先级; \除法整数部分

  14. 类型转换

    • 数值类型 int float bool complex
    • 数据结构类型 str list dict tuple
  15. 输入函数 input

    • name = input("")
  16. 条件判断
    if 要判断的条件:
    条件成立时,要做的事
    elif 再次判断的条件:
    else
    条件不成立时,要做的事

  17. 循环

    • while 条件:
      条件满足时事件
    • for 临时变量 in 待处理数据集:
      print('')
    • range(index1,index2)
  18. 函数

    • def 函数名():
      函数体
      return 返回值
    • none==false
    • 注释在方法体内,双引号多行注释
    • global 定义全局变量
    • 函数与方法的区别在于方法存在类中,函数不存存在
  19. 数据容器 用来存储多个元素的数据类型

    • list(列表) tuple(元组) str(字符串) set(集合) dict(字典)
    • list(列表)
    • 格式 1,2,3,4
    • 存储数据可以为任意类型 包括list
    • 取值 list1 list2 list3 或 list-1 list-2 list-3 (倒序)
    • list\[1,2,3,4,5,6,7,8] 6=list11
    • 常用方法:
    • 查询列表中某元素的正向索引:列表.index("要查找的元素")
    • 修改:列表索引=新值
    • 指定位置插入元素:列表.insert(要插入的位置,元素)
    • 尾部插入元素:列表.append("元素")
    • 批量追加元素到列表尾部:列表1.extend(列表2)
    • 删除:del 列表下标 或 列表.pop(下标) (pop会返回要删除的元素)
    • 删除指定元素:列表.remove(要删除的元素) (只会删除一个)
    • 清空列表:列表.clear()
    • 统计列表中有多少指定元素:列表.count()
    • 计算列表元素总数量:len(列表)
    • 特点:有序、可重复、无数据类型限制、可修改、最多2**63-1
      • 循环: while 自定义初始化为0的变量<len(要遍历的列表)
      • for element in 列表
      • 元组(不可修改)
      • 格式 (1,2,3,4) 当存储单个字符串时,后面需要加上逗号,不然会判定类型为字符串("hello",)
      • 元组中嵌套list,list值是可以修改的
      • 元组特点:
      • 可以容纳多个数据
      • 数据可以是不同类型
      • 除list类型外,其他数据不可以修改
      • 允许重复数据
      • 支持for循环
  20. 字符串

    • 下标取值 字符串index
    • 替换 字符串.replace(被替换字符串1,替换成字符串2) 返回一个新字符串,老字符串不允许修改
    • 字符串分割 字符串.split(分隔符字符串) 字符串本身不变,只是得到一个新的列表
    • 规整操作 字符串.strip("前后要去除的指定字符") 默认去除字符串前后空格、回车、换行符
    • 统计字符串中某字符中的出现次数,字符串.count()
    • 统计字符串中某字符中的长度,len(字符串)
    • 字符串特点
      • 只支持存储字符类型
      • 不可修改
      • 长度任意
      • 支持下标索引
      • 允许重复字符
      • 支持for循环
  21. 序列:内容连续,有序,有索引,列表、元组、字符串都是序列

    • 切片:从序列中取出一个子序列
    • 语法:序列起始下标,结束下标,步长
    • 切片会新生成一个序列,原序列并不影响
    • 起始省略默认从头开始,结尾省略默认到尾,步长省略默认为1,负数为倒序
  22. 集合 set()或者{} 不可重复

    • 列表可修改、支持重复元素且有序;元组、字符串不可修改、支持重复元素且有序
    • 添加:add() 重复自动去重
    • 移除:remove()
    • 随机取出:pop()
    • 清空:clear()
    • 求两个集合差集 集合1有,集合2没有 集合1.difference(集合2)
    • 消除差集,把集合1中删除集合2相同元素 集合1.difference_update(集合2)
    • 合并2集合:集合1.union()
    • 统计集合元素数量 len()
    • 循环 for循环,集合没有索引,所以不支持while
    • 特点:
      • 可存储不同数据类型
      • 没有索引,所以无序
      • 不可重复
      • 可以修改
  23. 字典 key-value 形式

    • 语法 {key:value,key:value} 或 {} 或 dict()
    • key不允许重复,不会报错,但是会覆盖
    • 不允许使用下标索引 字典key
    • 字典不允许为key,value可以为任意数据类型
    • 修改 字典key=value key存在则更新,不存在则修改覆盖
    • 删除 字典.pop(key) 取到value并从字典中移除
    • 清空 字典.clear()
    • 获取全部key 字典.keys()
    • for循环 for key in keys for key in 字典
    • 字典中元素数量 len(字典)
  24. 数据类型使用场景

    • 列表:一批数据,可修改、可重复的存储场景
    • 元组:一批数据,不可修改、可重复的存储场景
    • 字符串:不可修改的字符串
    • 集合:一批数据,去重场景
    • 字典:一批数据,可用key检索value的存储场景
  25. 数据容器的基本操作

    • 长度:len()
    • 容器内最大元素:max()
    • 容器内最大元素:min()
    • 列表、元组、字符串、集合、字段转列表:list()
    • 列表、元组、字符串、集合、字段转元组:tuple()
    • 列表、元组、字符串、集合、字段转字符串:str()
    • 列表、元组、字符串、集合、字段转集合:set()
    • 排序:sorted(容器,reverse=True 反向排序)结果将成为列表对象
  26. 字符串比较大小,根据ascii码表按位比较其中一位大,结束比较

  27. 函数多返回值:

    • def 函数名(): return 1,2,3
    • x,y,z = 函数名()
  28. 函数4种传参形式:

    • 位置参数 函数名(参数1,参数2)
    • 关键字参数 函数名(参数1="",参数2="")
    • 缺省参数 def 函数名(a,b,c=1): 默认参数c不传的时候默认为某个值,默认参数必须写在最后面
    • 可变参数(不确定传入的参数有多少个)
      • 位置参数的不定长 def 函数名(*args) 函数名(参数1,参数2) 传入参数为元组存储
      • 关键字参数的不定长 def 函数名(**kwargs) 函数名(key=value,key2=value2) 传入参数为字典存储
  29. 匿名函数

    • 函数作为参数传递 传入计算逻辑

      def test_func (compute):
      result = compute(1, 2)
      print (result)
      def compute(x, y) :
      return x + y

    • lambda关键字定义匿名函数,没有名称,临时使用一次

      • 语法:lambda 传入参数:函数体(一行代码)

      • lambda是关键字,表示定义匿名函数

      • 传入参数表示匿名函数的形式参数,如:x,y表示接受2个形式参数

      • 函数体,就是函数的执行逻辑,要注意:只能写一行代码

        def test_func (compute):
        result = compute(1, 2)
        print (result)

        test_func(lambda 1,2:x+y)

  30. 打开文件 open(name,model,encoding)

    复制代码
    f=open('python.txt','r',encoding="UTF-8
    #encoding的顺序不是第三位,所以不能用位置参数,用关键字参数直接指定
    #model:打开形式,r只读、w写入、a追加等
    #name:文件名称,可以是具体路劲
  31. 读取文件 文件对象.read(num) num:读取的指定长度

    • 连续使用2次read时,第二次读取起始位置为第一次的结尾
  32. 读取文件 文件对象.readlines(num) 文件按照行的方式一次性读取,返回一个列表 num读取的几行

  33. 读取文件 文件对象.readline(num) 只读取一行,返回一个列表 num为第一行的多少字节

  34. 读取文件 for循环读取文件

    复制代码
    for line in f:
    print(line)
  35. 关闭文件 close() 不关闭程序将持续占用文件

  36. with open() as f: with语法执行完之后自动关闭文件

  37. 写入文件 write()

  38. 写入文件 持久化到硬盘中 flush() close()内置flush功能 文件不存在时会创建,存在时会覆盖原本内容

  39. 追加文件 w模式替换成a模式 文件不存在时会创建,存在时会追加内容
    40.异常格式

    • 捕获单个异常

      复制代码
          try:
          with open("main.py","r") as f:
              print(f"打开文件{f.read()}")
              except FileNotFoundError:
                       print("处理异常")
           ```
      • 捕获指定异常

        try:
        with open("main.py","r") as f:
        print(f"打开文件{f.read()}")
        except FileNotFoundError:
        print("处理异常")

        复制代码
相关推荐
三品吉他手会点灯4 小时前
C语言学习笔记 - 50.流程控制4 - 流程控制为什么非常非常重要
c语言·开发语言·笔记·学习
闵孚龙5 小时前
动态图机制:为什么 PyTorch 调试起来更舒服
人工智能·pytorch·python
chushiyunen5 小时前
langchain4j笔记、tools
笔记·python·flask
程序员三藏6 小时前
Web自动化测试详解
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
在放️7 小时前
Python 爬虫 · 第三方代理接入与合规使用
开发语言·爬虫·python
KANGBboy7 小时前
java知识五(继承)
java·开发语言
c++之路7 小时前
Bazel C++ 构建系列文档(三):构建第一个 C++ 项目
开发语言·c++
AI人工智能+电脑小能手7 小时前
【大白话说Java面试题 第117题】【并发篇】第17题:线程有几种状态,之间如何转换?
java·开发语言·面试
财经资讯数据_灵砚智能7 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年6月14日
大数据·人工智能·python·ai·信息可视化·自然语言处理·灵砚智能
聚名网8 小时前
域名net,com,cn有区别吗?有哪些不同呢?
服务器·开发语言·php