一文带你梳理Python的中级知识

目录
  • 1. 文件操作
  • 2. 正则表达式
  • 3. 异常处理
  • 4. 面向对象编程(Object-Oriented Programming)
    • 示例代码
    • 输出结果
  • 5. Python高级特性
    • 5.1 生成器(Generator)
    • 5.2 装饰器(Decorator)

1. 文件操作

Python中的文件操作通常使用内置的open()函数来打开文件。以下是一个简单的示例:

with open("file.txt", "r") as f:
    content = f.read()
    print(content)

在这个示例中,我们打开了名为"file.txt"的文件,并将其读入变量content中,最后将其打印出来。

open()函数的第一个参数是文件名,第二个参数是打开文件的模式。以下是一些常用的模式:

  • "r":只读模式
  • "w":写入模式(会覆盖已有文件)
  • "a":追加模式(不会覆盖已有文件)

2. 正则表达式

正则表达式是一种强大的工具,可以帮助我们从文本中提取信息或进行文本替换。Python中可以使用内置的re模块来进行正则表达式操作。以下是一个示例:

import re

text = "The quick brown fox jumps over the lazy dog."
pattern = r"fox"
matches = re.findall(pattern, text)
print(matches)

在这个示例中,我们定义了一个正则表达式模式r"fox",然后使用re.findall()函数来查找匹配该模式的所有字符串。最后,我们将匹配的结果打印出来。

3. 异常处理

在编写程序时,经常需要处理可能出现的错误或异常情况。Python中可以使用tryexcept语句来实现异常处理。以下是一个简单的示例:

try:
    x = 1 / 0
except ZeroDivisionError:
    print("Error: division by zero")

在这个示例中,我们尝试计算1除以0,这将引发一个ZeroDivisionError异常。我们使用tryexcept语句来捕获该异常并打印出一条错误消息。

4. 面向对象编程(Object-Oriented Programming)

面向对象编程是一种重要的编程范式,Python是一种面向对象的语言。以下是一个简单的示例:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def say_hello(self):
        print("Hello, my name is " + self.name)

person = Person("Alice", 25)
person.say_hello()

在这个示例中,我们定义了一个名为Person的类,并定义了一个构造函数__init__()来初始化对象的属性。我们还定义了一个名为say_hello()的方法,用于打印出问候语。最后,我们创建一个Person对象,并调用say_hello()方法。 Python是一种面向对象编程语言,它支持面向对象编程的三个基本概念:封装、继承和多态。面向对象编程的核心思想是将数据和操作数据的方法封装在一起,形成一个对象。

示例代码

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

    def say_hello(self):
        print(f'{self.name} is saying hello')

class Cat(Animal):
    def __init__(self, name, age, color):
        super().__init__(name, age)
        self.color = color

    def catch_mouse(self):
        print(f'{self.name} is catching mouse')

cat = Cat('Tom', 2, 'White')
cat.say_hello()
cat.catch_mouse()

输出结果

Tom is saying hello
Tom is catching mouse

5. Python高级特性

5.1 生成器(Generator)

生成器是一种特殊的函数,可以在函数执行期间多次返回值,并且可以保留当前执行状态,等待下一次调用。它们是高效的迭代器,可以用于处理大量数据或无限流数据,同时也能节省内存。

示例代码

pythonCopy code
def fib():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b

f = fib()
for i in range(10):
    print(next(f))

输出结果

Copy code
0
1
1
2
3
5
8
13
21
34

5.2 装饰器(Decorator)

装饰器是一种函数,用于修改其他函数的行为。它们提供了一种简单的方式来修改函数,而无需修改函数的原始定义。装饰器的常见用途包括添加日志、计时、缓存等功能。

示例代码

pythonCopy code
import time

def timer(func):
    def wrapper(*args, **kwargs):
        start = time.time()
        result = func(*args, **kwargs)
        end = time.time()
        print(f'{func.__name__} executed in {end - start} seconds')
        return result
    return wrapper

@timer
def calculate_sum(n):
    return sum(range(n+1))

print(calculate_sum(100000000))

输出结果

Copy code
calculate_sum executed in 4.150076866149902 seconds
5000000050000000

以上就是一文带你梳理Python的中级知识的详细内容,更多关于Python知识梳理的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python常用知识点汇总

    1.Set基本数据类型 a.set集合,是一个无序且不重复的元素集合 class set(object): """ set() -> new empty set object set(iterable) -> new set object Build an unordered collection of unique elements. """ def add(self, *args, **kwargs): # real signat

  • python学习入门细节知识点

    python入门细节 相除后的类型 type(2/2) float type(2//2) int 双斜杠是整除,出来的类型是int.单斜杠的出来的是float类型. 进制表示和转换 进制表示: 二进制:0b 八进制:0o 十六进制:0x 进制转换: 转换为二进制:bin() 转换为八进制:oct() 转换为十进制:int() 转换为十六进制:hex() 转换为布尔类型:bool() 布尔类型 布尔类型转换:bool() 布尔类型属于数字这个基本数据类型里面只要是非零的数字,bool类型的值为Tr

  • Python类的基础入门知识

    复制代码 代码如下: class Account(object): "一个简单的类" account_type="Basic" def __init__(self,name,balance): "初始化一个新的Account实例" self.name=name self.balance=balance def deposit(self,amt): "存款" self.balance=self.balance+amt def w

  • Python易忽视知识点小结

    这里记录Python中容易被忽视的小问题 一.input(...)和raw_input(...) #简单的差看帮助文档input(...)和raw_input(...)有如下区别 >>> help(input) Help on built-in function input in module __builtin__: input(...) input([prompt]) -> value Equivalent to eval(raw_input(prompt)). >>

  • python常用知识梳理(必看篇)

    接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理: 1)避免'\n'等特殊字符的两种方式: a)利用转义字符'\' b)利用原始字符'r' print r'c:\now' 2)单行注释,使用一个#,如: #hello Python 多行注释,使用三个单引号(或三个双引号),如: '''hello python hello world''' 或 """hello python hello world""" 另外跨越多行

  • Python语言的12个基础知识点小结

    python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进制转换,Python调用系统命令或者脚本,Python 读写文件. 1.正则表达式替换 目标: 将字符串line中的 overview.gif 替换成其他字符串 复制代码 代码如下: >>> line = '<IMG ALIGN="middle" SRC=\'#\'

  • 一文带你了解Python 四种常见基础爬虫方法介绍

    一.Urllib方法 Urllib是python内置的HTTP请求库 import urllib.request #1.定位抓取的url url='http://www.baidu.com/' #2.向目标url发送请求 response=urllib.request.urlopen(url) #3.读取数据 data=response.read() # print(data) #打印出来的数据有ASCII码 print(data.decode('utf-8')) #decode将相应编码格式的

  • 一文带你解密Python可迭代对象的排序问题

    假设有一个可迭代对象,现在想要对它内部的元素进行排序,我们一般会使用内置函数 sorted,举个例子: data = (3, 4, 1, 2, 5) print(     sorted(data) )  # [1, 2, 3, 4, 5] data = (3.14, 2, 1.75) print(     sorted(data) )  # [1.75, 2, 3.14] data = ["satori", "koishi", "marisa"]

  • 一文带你了解Python列表生成式应用的八重境界

    目录 1. 引言 2. Level1: 基础用法 3. Level2: 加入条件语句 4. Level3: 加入 enumerate() 5. Level4: 加入 zip() 6. Level5: 加入三目运算符 7. Level6: 嵌套循环 8. Level7: 嵌套列表生成式 9. Level8: 合并上述所有技巧 10. 应用栗子 11. 总结 1. 引言 在Python中有非常多且好用的技巧,其中使用最多的是列表生成式,往往可以将复杂的逻辑用简单的语言来实现,本文重点介绍列表生成式应

  • 一文带你了解Python枚举类enum的使用

    目录 简介 初试 遍历 可哈希 访问成员 唯一枚举值 自动枚举值 比较运算 功能性API IntEnum IntFlag Flag 简介 枚举是与多个唯一常量绑定的一组符号 因为枚举表示的是常量,建议枚举成员名用大写 IntEnum 便于进行系统交互 初试 from enum import Enum class Color(Enum): RED = 1 GREEN = 2 BLUE = 3 print(Color.RED) # Color.RED print(repr(Color.RED)) #

  • 一文带你了解Python中的双下方法

    目录 前言 1. init方法 2. 运算符的双下方法 2.1 比较运算符 2.2 算术运算符 2.3 反向算术运算符 2.4 增量赋值运算符 2.4 位运算符 3.字符串表示 4.数值转换 5.集合相关的双下方法 6.迭代相关的双下方法 7.类相关的双下方法 7.1 实例的创建和销毁 7.2 属性管理 7.3 属性描述符 8.总结 前言 大家在写 Python 代码的时候有没有这样的疑问. 为什么数学中的+号,在字符串运算中却变成拼接功能,如'ab' + 'cd'结果为abcd:而*号变成了重

  • 一文带你了解Python中的字符串是什么

    在< 详解Python拼接字符串的七种方式 >这篇文章里,我提到过,字符串是程序员离不开的事情.后来,我看到了一个英文版本的说法: There are few guarantees in life: death, taxes, and programmers needing to deal with strings. 它竟然把程序员处理字符串跟死亡大事并列了,可见这是多么命中注定-- 回头看其它文章,我发现这种说法得到了佐证,因为我在无意中已零零碎碎地提及了字符串的很多方面,例如:字符串读写文

  • 一文带你解决Python中的所有报错

    目录 前言 Python安装 HTTPSConnectionPool(host=‘files.pythonhosted.org‘, port=443): Read timed out解决 xlrd.biffh.XLRDError: Excel xlsx file; not supported解决 Fatal error in launcher: Unable to create process using解决 报错Non-zero exit code (2)解决 [notice] A new r

  • 一文带你搞懂Python中的文件操作

    目录 一.文件的编码 二.文件的读取 2.1 open()打开函数 2.2 mode常用的三种基础访问模式 2.3 读操作相关方法 三.文件的写入 写操作快速入门 四.文件的追加 追加写入操作快速入门 五.文件操作综合案例 一.文件的编码 计算机中有许多可用编码: UTF-8 GBK Big5 等 UTF-8是目前全球通用的编码格式 除非有特殊需求,否则,一律以UTF-8格式进行文件编码即可. 二.文件的读取 2.1 open()打开函数 注意:此时的f是open函数的文件对象,对象是Pytho

  • 一文带你深入了解Python中的二次移动平均法

    目录 二次移动平均法逻辑 Python代码实现 第二种实现二次移动平均法的方式 第三种卷积实现二次移动平均法 二次移动平均法的应用场景 二次移动平均法逻辑 二次移动平均法是一种重要的数学工具,用于处理时间序列数据,它的主要目的是通过平滑序列中的噪音数据来更好地捕捉趋势. 具体实现: 计算第一个二次移动平均数,这通常是简单移动平均数(SMA). 使用以下公式计算每个时间步的二次移动平均数: EMAt​=α×yt​+(1−α)×EMAt−1​ 其中EMAt表示时间步t的二次移动平均数,yt表示时间步

  • 一文带你了解 C# DLR 的世界(DLR 探秘)

    在很久之前,我写了一片文章详解C# 匿名对象(匿名类型).var.动态类型 dynamic,可以借鉴.因为那时候是心中想当然的认为只有反射能够在运行时解析对象的成员信息并调用成员方法.后来也是因为其他的事一直都没有回过头来把这一节知识给补上,正所谓亡羊补牢,让我们现在来大致了解一下DLR吧. DLR 全称是 Dynamic Language Runtime(动态语言运行时).这很容易让我们想到同在C#中还有一个叫 CLR 的东西,它叫 Common Language Runtime.那这两者有什

随机推荐