【Python笔记(三)——时间模块 函数 模块与包 面向对象 文件基本操作】

news/2024/12/2 17:42:36/

文章目录

    • Python 基础:与时间相关的模块
      • 获取当前时间
      • 格式化时间
      • 获取时间差
    • Python 基础:函数
    • Python 基础:模块与包
    • Python 基础:面向对象
    • Python 基础:文件基本操作

Python 基础:与时间相关的模块

Python 中处理时间和日期的标准库是 datetime,而与时间相关的其他常用模块包括 timecalendardateutil 等。

以下是一些常见的操作方法:

获取当前时间

import datetime# 获取当前日期和时间
now = datetime.datetime.now()
print(now)  # 2022-10-25 14:51:12.123456# 获取当前日期
today = datetime.date.today()
print(today) # 2022-10-25# 获取当前时间
current_time = datetime.datetime.now().time()
print(current_time) # 14:51:12.123456

格式化时间

import datetimenow = datetime.datetime.now()# 将日期时间格式化为字符串
formatted_time = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_time) # 2022-10-25 14:51:12# 将时间格式化为字符串
formatted_date = datetime.date.today().strftime("%Y年%m月%d日")
print(formatted_date) # 2022年10月25日

获取时间差

import datetime
from dateutil.relativedelta import relativedelta# 计算两个日期之间的时间差
d1 = datetime.date(2022, 10, 20)
d2 = datetime.date(2022, 10, 25)
delta = d2 - d1
print(delta.days) # 5# 计算两个时间之间的时间差
t1 = datetime.datetime(2022, 10, 25, 9, 0, 0)
t2 = datetime.datetime(2022, 10, 25, 14, 30, 0)
delta = t2 - t1
print(delta) # 5:30:00

Python 基础:函数

函数是一段可重用的代码组合,可以代表 Python 程序中的一个操作。

在 Python 中,定义一个函数需要遵循以下语法:

def function_name(parameters):"""docstring"""# code blockreturn value

其中:

  • def 是 Python 中定义函数的关键字;
  • function_name 是你所定义的函数名称;
  • parameters 是函数的参数列表,可以为空;
  • docstring 是可选的文档字符串,用于描述函数的功能;
  • code block 是函数体,是对函数功能的具体实现;
  • return 语句是可选的,用于返回函数的值,可以为空。

以下是一个简单的函数示例:

def add(a, b):"""This function adds two numbers."""c = a + breturn c

在函数定义后,可以通过调用函数并传入参数来调用该函数:

result = add(1, 2)
print(result)  # 3

Python 基础:模块与包

Python 模块是一个以 .py 文件为扩展名的文件,其中包含了一些 Python 代码。在 Python 中,模块是一种封装方式,可以将相关的代码组织在一个文件中,方便管理和使用。

Python 中导入模块可以使用 import 语句,语法如下:

import module_name

例如,加载 Python 自带的 math 模块:

import mathsqrt_2 = math.sqrt(2)
print(sqrt_2) # 1.4142135623730951

除了 import 语句之外,Python 还提供了其他两种导入模块的方式:

  • from module_name import *:导入指定模块的所有变量和函数;
  • from module_name import variable_name / function_name:只导入指定变量或函数。

在实际开发中,经常需要将相关的模块组织成一个包。包是一种包含模块和子包的一种封装方式,可以将多个模块组织在一起,方便管理和使用。

Python 中默认会在 sys.path 路径下搜索模块和包,可以通过以下方法添加自定义的模块搜索路径:

import sys 
sys.path.append('/path/to/module')

Python 基础:面向对象

在 Python 中,一切都是对象,因此 Python 是一门面向对象的编程语言。

在 Python 中,通过定义类来创建对象。类是一个抽象的概念,它描述了一组属性和方法。而具体的对象则是根据类创建的实例,它拥有了类所描述的属性和方法。

以下是一个简单的 Python 类及其实例的示例:

class Person:def __init__(self, name, age):self.name = nameself.age = agedef say_hello(self):print(f"Hello, my name is {self.name}, and I am {self.age} years old.")person1 = Person("Tom", 20)
person2 = Person("Jerry", 18)person1.say_hello() # Hello, my name is Tom, and I am 20 years old.
person2.say_hello() # Hello, my name is Jerry, and I am 18 years old.

在上述示例中,类 Person 描述了人的属性和方法,包括姓名和年龄两个属性,以及一个打招呼的方法 say_hello。通过 __init__ 方法进行初始化,然后用 person1person2 分别创建了两个实例,并调用 say_hello 方法输出问候语。

Python 基础:文件基本操作

Python 中使用 open() 函数打开文件,该函数返回一个文件对象,可以通过该对象进行文件读写操作。

以下是一些常见的文件操作方法:

打开文件

# 打开文件,返回文件对象
file = open('file.txt', 'r')

在上述代码中,'file.txt' 是要打开的文件名(需要在当前目录下有相应的文件),'r' 表示以只读方式打开文件。其他常用的文件打开模式包括 'w'(写入模式)、'a'(追加模式)和 'x'(创建模式)等。

读取文件内容

# 一次性读取整个文件内容
file_content = file.read()
print(file_content)# 每次读取一行内容
for line in file:print(line)

在上述代码中,read() 方法会将整个文件一次性读取到内存中,并返回文件内容的字符串。而使用 for 循环则可以逐行读取文件内容。

写入文件内容

# 打开文件,以写入模式写入文本
file = open('new_file.txt', 'w')# 向文件中写入内容
file.write("Hello, world!")# 关闭文件
file.close()

在上述代码中,使用 'w' 打开文件时,如果文件已经存在,则会覆盖文件原有的内容。如果需要追加内容,则可使用 'a' 打开文件。

关闭文件

# 在处理完文件后,关闭文件
file.close()

在文件操作完成后,为了释放文件句柄和文件系统资源,应该使用 close() 方法关闭文件。或者,也可以使用 with 语句来自动关闭文件:

with open('file.txt', 'r') as f:file_content = f.read()

http://www.ppmy.cn/news/122349.html

相关文章

今天给码农们分享五个只有程序猿才能听懂的笑话

今天给码农们分享五个只有程序猿才能听懂的笑话 1.“神舟十一号,地面信号异常,现在请汇报您的具体位置?”“现在我们正在祖国上空”“你们怎么知道的?”“刚才试验了一下,Twitter和FaceBook都打不开。”2、程序员换ID…

达美乐的面试(部分)(未完全解析)

Java如何保证非线程安全的数据结构(比如HashMap)的原子性?读多写少时用哪种锁好? A: 方法1:CAS等乐观锁机制,方法2:如果读多写少,可以使用读写锁(ReentrantReadWriteLock&#xff0…

黑鹰安全网_育鹰计划_笔记

之前学习黑鹰基地网赚教程整理的笔记。 育鹰计划第一课 幼儿园小班 1,互联网是一次从未有过的商机,作为21世界的我们要好好把握. 2,网络的可复制性可以大大降低网赚的成本 3,放的下才能成长(不放下共享你已有的旧的东西;就不能进步,无法…

《疯狂的程序员》四

31 听周总这么说,绝影吓了一跳,不光他吓了一跳,BOSS Liu和 张厂长也吓了一跳。在他们印象中,周总脸上总是带着平静地表情,即使偶尔批评起人来,也还是带着平静地表情。这时候,绝影突然想起念大学…

我们该有四个老婆了

公元2005年之春天,金庸大侠率领他的一帮门徒,华山论剑,京都举事,终于大获全胜,其代表作之一《天龙八部》一举打入高中语文读物课本。可喜可贺!好好,既然如此,那么请一并把《金瓶梅》…

疯狂程序员(9)

(32) BOSS Liu的离去 陈董一脸严肃又略带洋洋得意,绝影和BOSS Liu在心中盘算着这个大CASE能大到什么程度,100万,500万还是1亿,于是都期待着陈董继续往下说,恨不得拍着胸脯说:“陈司令…

如何让学习变得有效率

最近一直在反思这样一个问题:为什么我的学习如此的没有效率? 来提高班近三年的时间,我几乎都在全日制学习中度过,可是我的速度并不快,原因在哪?在这里学习,米老师一遍遍强调:如何学习…

狼商全文

序言一 (我将和大家一起分享华兴工作的三年)    从大方向来讨论    自我介绍一下:我原来在网信上班,后来到华兴工作了三年,是干销售的.    大家只是一味的谴责资本家的贪婪,责怪华兴对员工不够人性化,我们在次分析一下为什么会这样.      …