python基础知识(一)

简介: python基础(一){编码,字符串格式化,数据类型,运算符,推导式(简化生成数据),函数编程,模块}

python基础知识(一)

编码相关

文件存储时,使用某种编码,打开时就需要使用相同的编码,否则就会乱码。字符底层存储时本质上都是0101010101010101。 字符和二进制的对应关系(编码):

  • ascii编码,256中对应关系。
  • gb2312,gbk,中文和亚洲的一些国家【中文是2个字节】
  • unicode,ucs2/ucs4,包括现在发现的所有文明。
  • utf-8编码,【中文是用几个字节?3字节】
python

data = "中"
res = data.encode('utf-8')
print(res) # b'\xe4\xb8\xad'
data = "国"
res = data.encode('gbk')
print(res) # b'\xb9\xfa'

计算机中的单位

位/字节/KB/MB/GB

字符串格式化

a1 = "我是{},年龄{}".format("马X祺", 22)

a2 = "我是%s,年龄%d" % ("丁X鑫", 22,)

name = "XX少年团"
time = 20XX
a3 = f"name:{name},time:{time}"
print(a1)
print(a2)
print(a3)

数据类型

常见数据类型:['int', 'bool', 'str', 'list', 'tuple', 'dict', 'set', 'float', 'None']
    --转换为布尔值为False:'None', 0
    --转换为布尔值为Turn:'int', 'bool', 'str', 'list', 'tuple', 'dict', 'set', 'float'
    --可变:'list', 'dict', 'set'
    --不可变:'int', 'bool', 'str', 'tuple', 'float', 'None'
    --可哈希:'int', 'bool', 'str', 'tuple', 'float', 'None'
    --不可哈希:'list', 'dict', 'set'
    --字典的键/集合的元素必须是可哈希的类型('list', 'dict', 'set'不能座位字典的键和集合元素)
主要数据类型:
    --str:
        --独有功能::split/lower/start switch/split/strip/join
            str不可变,在执行大部分功能时,不会对原数据字符串进行修改,而是生成新的内容
        --公共功能:取长度(len)/索引(仅获取)/切片(仅获取)/for循环/判断是否包括
    --list(列表):
        --独有功能:append/insert/remove/pop...
            list可变,很多功能都是对原字符串进行修改
        --公共功能:取长度(len)/索引(可以修改原数据)/切片(可以修改原数据)/for循环/判断是否包括
    --dict:
        --独有功能:get/keys/items/values
        --公共功能:取长度(len)/索引/for循环/判断是否包括(判断键时效率很高)

运算符

一般:
    1>10 and 1<10  # --->turn or false
特殊逻辑运算(整体结果取决于谁,结果就等于谁):
    a1 = 1 and 2    # --->2
    a2 = [] or 10    # --->10
    a3 = "原神" or [] # --->"原神"

推导式(简化生成数据)

data = []
for i in range(10):
    data.append(i)

data = [i for i in range(10) ]
data = [i for i in range(10) if i<5 ]    # --->[0,1,2,3,4]

函数编程

函数基础知识:
    --定义
    --参数:
        --概念:位置传参/关键字传参/参数默认值/动态参数(*args/**kwargs)
    --返回值:
        --函数中一但遇到return就立即返回,且后续代码不执行,且默认返回值(None)
函数进阶知识:
    --python中是为函数为作用域
    --全局变量and局部变量:
        --建议:
            --全局变量大写,局部变量小写,用_链接.
            --在局部变量中使用global关键字,global作用:说明该局部变量是引用全局的,而不是在局部内新建的
内置函数('python内自带提供的函数'):
    --bin/hex/odc/max/min/divmod/sorted('数字可以排序,中文,标点排序依据unicode编码')/open('文件操作')
文件操作:
    --基本操作:打开,操作,关闭;为了防止忘记关闭文件,可以用with
    --打开文件时的模式:
        -r/rb,[读时文件不存在,报错]
        -w/wb,/清空写     [文件不存在时,会自动新建]
        -a/ab,追加      [文件不存在时,会自动新建]
        [如果路径(目录)不存在,全报错]
        os.makedirs/op.path.exsits    [判断是否存在,不存在新建路径(目录)]

模块

模块的分类:
    --自定义模块:
        --os.path:导入模块时,python会到那个目录去找模块
        --不要与python内置模块or第三方模块同名
        -- import/form xx import xx
    --内置模块:
        time/datetime/json/re/random/os...
        查看当前目录夏所有文件:os.listdir("获取一级目录")/os.walk('获取所有目录')
        --时间模块:时间戳/daretime/字符串    # 三者可以互相转化
        --json模块:
            --JSON本质时字符串,有一些自己的格式要求,PS:无元组/无单引号
            --json.dumps序列化时,只能序列化python常用数据类型
        --re模块:
            --元字符:
                  .  匹配除换行符以外的任意字符
                \w 匹配字海或数字或下划线
                \S 匹配任意的空白符
                \d 匹配数字
                \n 匹配一个换行符
                \t 匹配一个制表符
                \^ 匹配字符串的开始
                \$ 匹配字符串的结尾
                \W{
   大写} 匹配非字母或数字或下划线
                \D 匹配非数字
                \S{
   } 匹配非空白符
                a|b 匹配字符a或字符b
                () 匹配括号内的表达式,也表示一个组
                [ ...] 匹配字符组中的字符
                [^...] 匹配除了字符组中字符的所有字符
            --量词:
                * 重复零次或更多次
                + 重复一次或更多次
                ? 重复零次或一次
                {
   n} 重复n次
                {
   n,} 重复n次或更多次
                {
   n,m} 重复n到m次
            --贪婪匹配&惰性匹配:
                .* 贪婪匹配
                .*? 惰性匹配
    --第三方模块:
        requests/openpyxl/python-docx/flask/bs4
相关文章
|
7月前
|
消息中间件 分布式计算 监控
Python面试:消息队列(RabbitMQ、Kafka)基础知识与应用
【4月更文挑战第18天】本文探讨了Python面试中RabbitMQ与Kafka的常见问题和易错点,包括两者的基础概念、特性对比、Python客户端使用、消息队列应用场景及消息可靠性保证。重点讲解了消息丢失与重复的避免策略,并提供了实战代码示例,帮助读者提升在分布式系统中使用消息队列的能力。
243 2
|
7月前
|
机器学习/深度学习 数据采集 数据可视化
Python数据分析入门:基础知识与必备工具
【4月更文挑战第12天】Python是大数据时代数据分析的热门语言,以其简单易学和丰富库资源备受青睐。本文介绍了Python数据分析基础,包括Python语言特点、数据分析概念及其优势。重点讲解了NumPy、Pandas、Matplotlib、Seaborn和Scikit-learn等必备工具,它们分别用于数值计算、数据处理、可视化和机器学习。此外,还概述了数据分析基本流程,从数据获取到结果展示。掌握这些知识和工具,有助于初学者快速入门Python数据分析。
153 2
|
6月前
|
设计模式 开发者 Python
探索Python中的异步编程:从基础知识到实践应用
【6月更文挑战第6天】本文旨在深入探讨Python中的异步编程概念,包括其背后的原理、常用的库和框架以及如何在实际项目中应用这些知识。文章将通过具体的代码示例和场景分析,帮助读者理解异步编程在提升程序性能和处理并发任务中的重要性。
|
5月前
|
存储 人工智能 数据挖掘
十分钟学习Python基础知识
Python是一种高效、易学且功能强大的编程语言,广泛应用于数据分析、人工智能、Web开发等领域。如果你是编程新手,想要快速入门Python,那么这篇文章将是你的最佳选择。我将在十分钟内带你了解Python的基础知识。
|
6月前
|
索引 Python
Python考试基础知识
Python考试基础知识
|
6月前
|
关系型数据库 MySQL 数据库
探索Python中的异步编程:从基础知识到高级应用
【6月更文挑战第8天】随着技术的进步,异步编程已经成为现代软件开发中不可或缺的一部分。本文将深入探讨Python中的异步编程,包括其基础知识、常用库和框架,以及一些高级应用。我们将通过实例来展示如何有效地使用异步编程来提高程序的性能和响应性。无论你是初学者还是经验丰富的开发者,这篇文章都会为你提供有价值的见解和技巧。
59 2
|
6月前
|
存储 关系型数据库 API
探索Python中的异步编程:从基础知识到实际应用
【6月更文挑战第6天】在本文中,我们将深入探讨Python中的异步编程,这是一种强大的编程技术,可以帮助我们更有效地处理并发任务。我们将从基础知识开始,然后逐步深入到实际应用,包括异步I/O操作、异步Web请求和异步数据库操作等。最后,我们将通过一个实际的项目案例,展示如何在Python中使用异步编程来提高程序的性能和效率。
|
6月前
|
JavaScript 前端开发 Java
python的入门基础知识和一些小技巧
python的入门基础知识和一些小技巧
36 0
|
6月前
|
算法 Python
Python基础教程(第3版)中文版 第一章 快速上手:基础知识(笔记)
Python基础教程(第3版)中文版 第一章 快速上手:基础知识(笔记)
|
7月前
|
Java 程序员 Python
Python基础知识主要包括其**语法规则、数据类型、控制结构以及函数和模块**等
【4月更文挑战第15天】Python基础知识主要包括其**语法规则、数据类型、控制结构以及函数和模块**等
59 11