python(day027——集合、时间、类)

python的locale模块 currency()函数用于将一个数字格式化为本地化的货币形式,可以指定货币符号、小数点精度、千位分隔符等格式。例如,LC_TIME表示时间格式,LC_NUMERIC表示数字格式,LC_MONETARY表示货币格式,LC_COLLATE表示排序方式等。需要注意的是,在使用locale模块时,可能会受到操作系统和Python版本的影响,不同的系统和版本可能会支持不同的本地化设置。locale模块是Python中用于本地化处理的模块,它提供了一些函数和常量,用于处理数字、日期、货币等本地化数据的格式化和转换。 阅读详情

1.集合

可变集合set和不可变集合frozenset。

会过滤掉重复内容。set内元素没有顺序,不能用坐标取值。

>>> a=set("hello")
>>> a
{'o', 'e', 'l', 'h'}
>>> set((1,2,3))
{1, 2, 3}
>>> a.add("abc")  #集合的增加
>>> a
{'h', 'o', 'e', 'abc', 'l'}
>>> a.update("abc")   #集合的增加
>>> a
{'h', 'c', 'o', 'e', 'a', 'abc', 'b', 'l'}
#遍历集合的元素
>>> for i in a:print(i)
...
h
c
o
e
a
abc
b
l
#集合的删除
>>> a.remove("abc")
>>> a
{'h', 'c', 'o', 'e', 'a', 'b', 'l'}
>>> a.discard("efgd")
#discard:如果存在则删除;如果没找到,则什么也不做。该函数没有返回值

#pop:删除并返回集合s中的第一个元素,如果为空引发KeyError错误
>>> a
{'f', 'e', 'a', 'c', 'g', 'b'}
>>> a.pop()
'f'
>>> a
{'e', 'a', 'c', 'g', 'b'}
>>> len(a)
5
>>> n=a.copy()
>>> n
{'g', 'b', 'e', 'a', 'c'}
>>> n.clear()
>>> n
set()

>>> b=frozenset([1,2,2,3])
>>> b
frozenset({1, 2, 3})
>>> type(b)
<class 'frozenset'>
>>> b.add("1")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'frozenset' object has no attribute 'add'

2.集合的交集、并集、差集

>>> a&b
{'d', 'c'}
>>> a|b
{'d', 'c', 'e', 'a', 'b', 'f'}
>>> a-b
{'a', 'b'}
>>> b-a
{'e', 'f'}
a="I am a boy"
b="I am 18 years old"
#1.求两句中一共出现了多少个单词
#2.求两句中相同单词的个数
#3.不同单词的个数
l1=a.split()
l2=b.split()
l=l1+l2
s=set(l1)
s=s.update(s)
s2=set(l1)&set(l2)
s3=set(l1)|set(l2)
s3=s3-s2
print(s)
print(s2)
print(s3)
a="I am a good boy"
b="She is a good girl"
#求两句话中重复单词和不重复单词
lista=a.split()
listb=b.split()
seta=set(lista)
setb=set(listb)
print("重复单词:",setb&seta)
print("不重复单词:",(seta|setb)-(setb&seta))

 


3.时间

>>> import time
>>> time.time()
1596018091.3119504
>>> t1=time.time()
>>> t2=time.time()
>>> t2-t1 #时间差
3.593512773513794
#时间元组,tm_wday表示星期,星期一是0
>>> time.localtime()
time.struct_time(tm_year=2020, tm_mon=7, tm_mday=29, tm_hour=18, tm_min=25, tm_sec=16, tm_wday=2, tm_yday=211, tm_isdst=0)
>>> t=time.localtime()
>>> list=[]
>>> for i in t:
...     list.append(str(i))
...
>>> list[0]+"年"+list[1]+"月"+list[2]+"日"+" "+list[3]+"时"+list[4]+"分"+list[5]+"秒"
'2020年7月29日 18时30分1秒'
>>> time.strftime("%Y-%m-%d %H:%M:%S")
'2020-07-29 18:41:43'
>>> import locale
>>> locale.setlocale(locale.LC_CTYPE,"chinese")
'Chinese_China.936'
>>> strTime=time.strftime("%Y年%m月%d日 %H:%M:%S",time.localtime())
>>> strTime
'2020年07月29日 18:45:50'

 strptime()方法:根据指定的格式把一个时间字符串解析为时间元组。

>>> a=time.localtime()
>>> a
time.struct_time(tm_year=2020, tm_mon=8, tm_mday=1, tm_hour=22, tm_min=48,
 tm_sec=32, tm_wday=5, tm_yday=214, tm_isdst=0)
>>> time.mktime(a)  #转化为时间戳
1596293312.0
两个日期相减的时间差:
import datetime

#求两个日期间的天数差
d1 = (datetime.datetime(2015, 7, 5))
d2 = (datetime.datetime(2015, 8, 26))
print ((d2 - d1).days)


计算日期:
#coding=utf-8
from datetime import datetime
from datetime import timedelta

now = datetime.now()
#设置100天前的时间间隔
delta = timedelta(days = -100)
#得到100天前的时间
oldTime = now + delta
print (oldTime.strftime("%Y-%m-%d"))
import time
import datetime
import locale


class TimeUtil:

    def __init__(self, curtime=None):
        self.curtime = curtime

    def get_timestemp(self):
        return time.time()

    def get_date(self):
        return time.strftime("%Y-%m-%d")

    def get_time(self):
        return time.strftime("%H:%M:%S")

    def get_datetime(self):
        return time.strftime("%Y-%m-%d %H:%M:%S")

    def get_chinesedate(self):
        locale.setlocale(locale.LC_CTYPE, 'chinese')
        strTime = time.strftime("%Y年%m月%d日", time.localtime())
        return strTime

    def get_chinesetime(self):
        locale.setlocale(locale.LC_CTYPE, 'chinese')
        strTime = time.strftime("%H时%M分%S秒", time.localtime())
        return strTime

    def get_chinesedatetime(self):
        locale.setlocale(locale.LC_CTYPE, 'chinese')
        strTime = time.strftime("%Y年%m月%d日%H时%M分%S秒", time.localtime())
        return strTime

    def compute_date(self, day_interval):
        # 获取今天的日期
        today = datetime.date.today()
        # 在今天的日期上再减10天
        if isinstance(day_interval, int) and day_interval >= 0:
            return today + datetime.timedelta(days=day_interval)
        elif isinstance(day_interval, int) and day_interval < 0:
            return today - datetime.timedelta(days=abs(day_interval))

    def timestamp_to_date(self, timestamp):
        if not isinstance(timestamp, (int, float)):
            return None
        locale.setlocale(locale.LC_CTYPE, 'chinese')
        time_tuple = time.localtime(timestamp)

        return str(time_tuple[0]) + "年" + str(time_tuple[1]) + "月" + str(time_tuple[2]) + "日"

    def timestamp_to_time(self,timestamp):
        if not isinstance(timestamp,(int,float)):
            return None
        locale.setlocale(locale.LC_CTYPE, 'chinese')
        time_tuple = time.localtime(timestamp)
        return str(time_tuple[3])+"时"+str(time_tuple[4])+"分"+str(time_tuple[5])+"秒"

    def timestamp_to_datetime(self,timestamp):
        return self.timestamp_to_date(timestamp)+self.timestamp_to_time(timestamp)

if __name__ == "__main__":
    t = TimeUtil()
    print(t.get_timestemp())
    print(t.get_date())
    print(t.get_time())
    print(t.get_datetime())
    print(t.get_chinesedate())
    print(t.get_chinesetime())
    print(t.get_chinesedatetime())
    print(t.compute_date(10))
    print(t.timestamp_to_date(2017389293))
    print(t.timestamp_to_time(8737492939))
    print(t.timestamp_to_datetime(2137492992))

 

4.类

>>> class Brid:
...   def  __init__(self,length,height,color):
...     self.length=length
...     self.height=height
...     self.color=color
...
>>> b=Brid(10,20,"red")
>>> d=Brid(10,20,"yellow")
>>> b
<__main__.Brid object at 0x000001BF33FFDC48>
>>> d
<__main__.Brid object at 0x000001BF33FFDE48>
>>> b.color
'red'
>>> d.color
'yellow'
#类的定义在内存中某个地址存储,且只有一份
#类变量在类的定义中储存,且只有一份
class Brid:
    count=0  #类变量
    #构造方法:主要设定实例中的参数
    def  __init__(self,length,height,color):
        self.length = length
        self.height = height
        self.color = color
        Brid.count+=1 #统计生成了多少个实例

    #实例方法
    def get_color(self): 
        return self.color

b=Brid(10,20,"red")
print(b.color)
print(b.get_color())#python调用实例方法时候,会自动给你传实例给方法

c=Brid(15,15,"black")
print(c.color)
print(c.get_color())

#b和c在内存中式各自独立保存,互不影响
c.color="yellow"
print(c.get_color())
print(b.get_color())

print(id(c))
print(id(b))

'''原理:
方法:类里面定义的函数
函数:类外面定义的函数
类(类变量,方法):在内存中只有一个地方存储,那么类中定义的方法也在那个地方存储。
当实例想调用某个类中定义的方法时,需要把实例对象传递给类中定义的方法,才能够使用。
python默认吧实例地址自动传递给方法中的self,这样就可以找到不同实例中的实例变量。
'''
print(Brid.count)#类变量

 

 

 

STM32F407 CubeMX UART DMA高效解析BNO085九轴数据 本文详细介绍了如何在STM32F407平台上使用CubeMX配置UART和DMA高效解析BNO085九轴传感器数据。通过DMA循环接收机制实现低CPU占用的实时数据采集,并分享数据解析技巧、错误处理及实战调试经验,为嵌入式开发者提供完整解决方案。 阅读详情

相关推荐

多普勒频移测速与FMCW测距

文章目录时域与频域基于多普勒频移估计速度基于传统的FMCW测距什么是FMCWFMCW测距原理参考论文 时域与频域 时域 — 自变量是时间,即横轴是时间,纵轴是信号振幅的变化。表示振幅随时间的变化。 频域 — 自变量是频率,即横轴是频率,纵轴是该频率信号幅度的峰值。表示振幅峰值随频率的变化。 基于多普勒频移估计速度 当发送端静止而接收端相对运动时,有: v=FsFcv=\frac{F^s}{F}cv=FFs​c 其中,F是信号的原始频率;FsF^sFs 是接收信号频率与发送信号频率之差,即多普勒频移;c是

dsaaf21的博客 9189

5.2 时间处理

时间处理非常常见,时间在各种数据分析中也是一种重要的分析依据。 下面围绕着几个常见问题来介绍: 1)获取当前时间 所谓当前时间,其实是指你运行代码的电脑上的时间。计算机系统每时每刻都在计时,可以通过专门的函数来获取这些当前时间信息。 方法1:使用datetime模块中的datetime类型 from datetime import datetime print(datetime.now()) 输出为:2022-02-22 17:49:26.474330 前面的内容很好理解,分别是年月日

leeshuqing的专栏 845

GD32F303实战:用定时器4触发ADC2+DMA,实现10ms精准采样1024点的完整流程

本文详细介绍了在GD32F303微控制器上使用Timer4触发ADC2配合DMA传输,实现10ms精准采样1024点的完整方案。从硬件架构设计、时钟树配置到定时器参数计算,提供了完整的工程实现流程和常见问题排查方法,适用于工业传感器监测等高实时性场景。

weixin_29194693的博客 433

Python3中用户注册小案例 - 解决中文字符问题 (代码)

也可以已日期的形式来命名txt文件,这样以后可以通过不同的txt文件找到对应的记录。直接运行,可以看到内容会存到 db.txt 文件里。结果能出现对应的txt文件,文件里也有注册信息。直接上 Python3 代码。

CHNMSCS 426

大疆无人机图像传输延时优化全解析:从Lightbridge到OcuSync的实战技巧

本文深入解析大疆无人机图像传输延时优化,对比Lightbridge与OcuSync两大核心通信协议的技术差异与实战表现。文章详细拆解了从传感器采集到屏幕显示的完整延时链条,并提供了从环境频段选择、硬件升级到软件设置的全方位优化技巧,帮助飞手与开发者显著降低图传延时,提升操控体验与作业效率。

weixin_29163857的博客 306

现代密码学5.3--Hash and MAC

现代密码学5.3--Hash and MAC 博主正在学习INTRODUCTION TO MODERN CRYPTOGRAPHY (Second Edition) --Jonathan Katz, Yehuda Lindell,做一些笔记供自己回忆,如有错误请指正。整理成一个系列现代密码学,方便检索。 第二章定义了完美安全及其对应的密码方案“一次一密”, 第三章介绍了多种安全定义 3.1-3.3 计算安全,PRG和基于PRG构造的满足计算安全的密码方案; 3.4-3.5 CPA安全,PRF和基于PRF构

qq_41545715的博客 686

Python格式化时间报错 UnicodeEncodeError: ‘locale‘ codec can‘t encode character ‘\u5e74‘

问题描述 import datetime now = datetime.datetime.now() print(now.strftime('%Y年%m月%d日')) 报错UnicodeEncodeError: 'locale' codec can't encode character '\u5e74' in position 2: Illegal byte sequence 解决方案设置语言环境:locale.setlocale(locale.LC_CTYPE, 'Chinese')st.

Ghjkku的博客 13万+

基于simulink的软开关技术的三相逆变器仿真

三相逆变器中的软开关技术(Soft Switching Techniques)旨在减少开关损耗,提高效率,并降低电磁干扰(EMI)。实现软开关通常涉及使用谐振电路或准谐振电路来确保开关器件在零电压(Zero Voltage Switching, ZVS)或零电流(Zero Current Switching, ZCS)条件下进行切换。下面将详细介绍如何在Simulink中进行基于软开关技术的三相逆变器仿真设计。

xiaoheshang_123的博客 162

UnicodeEncodeError: ‘locale‘ codec can‘t encode character ‘\u5e74‘ in position-解决-python

:strtime = time.strftime("%Y年-%m月-%d日-----%H-%S-%M",t)

m0_59856692的博客 2621

【微信小程序-uniapp】CustomPicker 自定义单项选择器组件

自定义底部弹出框单项选择器组件,适用于uniapp小程序

Komorebi_00的博客 1532

vue3:实现ECharts3D地图详细示例,echarts实现3D地图map3D,vue3如何利用echarts绘制3d地图立体城市省市地区分布,可视化数据大屏3D炫酷中国地图(复制源码,开箱即用)

echarts实现中国地图记录篇之3D地图,Echarts地图之——如何让地图显示出3d感,【3d地图】vue中使用echarts geo3D,echarts实现某个市3D地图展示,vue3中使用echarts实现中国地图,3D地图图表,echarts实现3D地图——map3D,数据大屏3d地图,vue3+echarts绘制中国地图,3D地图,省、市、县,【3d地图】vue3中使用echarts geo3D,echarts实现某个市3D地图展示,ECharts3D地图(详细示例——附有具体注释),echar

✅ 精选推荐文章 3671

入门学习-Python-小甲鱼学习资料-Day027-集合:在我的世界里,你就是唯一

根据视频自己练习 : num = {} type(num) &amp;lt;class ‘dict’&amp;gt; // 空值 默认为 字典 num1={1,2,3,4,5,6} type(num1) &amp;lt;class ‘set’&amp;gt; // 赋非空值就成了 集合 num2={1,2,3,4,5,6,5,4,3,2,1} num2 {1, 2, 3, 4, 5...

seven1levin的博客 216

cuRobo 入门教程(二)基于CUDA的机器人运动规划加速库

cuRobo是一款基于CUDA加速的机器人算法库,提供正向/逆向运动学、碰撞检测、数值优化等核心功能,支持在NVIDIA Jetson Orin等平台上实现毫秒级运动规划。该库创新性地采用并行轨迹优化技术,结合nvblox工具实现深度摄像头避障功能,并通过多层ESDF结构处理动态障碍物。性能测试显示,在RTX 6000 Ada显卡上可实现99.85%的成功率,平均规划时间仅39毫秒。cuRobo还提供Python API支持神经网络集成,并具备批量环境处理能力,特别适用于工业机器人应用场景。最新版本通过算法

2506_90492529的博客 1303

python算法复杂度主要包括_python学习笔记-Day027 - 算法的复杂度

算法是处理问题的步骤(就像错菜的菜谱)算法的时间复杂度 和空间复杂度合成为算法的复杂度时间复杂度首先 提到一个 时间频度 T(n),一个算法中语句的执行次数 称为时间频度 也叫 语句频度 。 一个算法执行所耗费的时间,理论上说是能算出来的,必须上级测试才可以得到,但是没必要对所有个的算法都上机测试,我们只要知道哪个算法耗费的时间多,哪个算法耗费的时间少就可以了。在一个算法中,算法花费的时间与算法中...

weixin_39912984的博客 263

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

day-027-面向对象-下

学习内容掌握情况一句话要点__len__✅ 重点让对象支持 len() 和 []__eq____lt__✅ 理解比较与排序__add____mul__✅ 了解运算符重载✅ 重点第一个参数是 cls,操作类本身✅ 理解不需要 self/cls,就是个普通函数。

chouchuang的博客 238

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

python学习-day3

示例如下:# 生成一个列表, 里面有 100 个数是[1, 4, 9, 16, 25, ...]# 用 for 语句实现L =[]forxin range(1, 101):L.appendx ** 2printL​# 用列表推导式L2 = [x ** 2for x inrange1, 101)]print(L2)​L3 = []for x inrange1, 101):L3.appendx ** 2​1, 101。

alb3117149013的博客 599

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

猫哥教你写爬虫 027--模块介绍

time模块 import time # 时间对象转美式时间字符串 print(time.asctime()) # Wed May 29 09:25:07 2019 print(time.asctime((2019, 5, 4, 12, 8, 23,0,0,0))) # Mon May 4 12:08:23 2019 # 时间戳转美式字符串 print(time.ctime()) # Wed...

weixin_34310369的博客 184

python学习之老男孩python全栈第九期_day027知识点总结——反射、类的内置方法

一. 反射 ''' # isinstance class A:pass class B(A):pass a = A() print(isinstance(a,A)) # 判断对象和类的关系 print(issubclass(B,A)) # 判断子类和父类的关系 print(issubclass(A,B)) ''' #-------------------...

weixin_33905756的博客 64

Day027: 列表的排序算法:归并排序

在数据结构与算法的学习中,排序算法是基础且重要的一部分。归并排序作为排序算法中的一种,以其高效的时间复杂度和稳定性,成为实际应用中常用的排序算法之一。本文将详细介绍归并排序算法的原理、实现方法、性能分析以及应用场景,帮助读者全面掌握这一经典算法。

u014481728的博客 1409

python学习笔记-Day027 - 算法的复杂度

算法是处理问题的步骤(就像错菜的菜谱)算法的时间复杂度 和空间复杂度合成为算法的复杂度时间复杂度首先 提到一个 时间频度 T(n),一个算法中语句的执行次数 称为时间频度 也叫 语句频度 。 一个算法执行所耗费的时间,理论上说是能算出来的,必须上级测试才可以得到,但是没必要对所有个的算法都上机测试,我们只要知道哪个算法耗费的时间多,哪个算法耗费的时间少就可以了。在一个算法中,...

weixin_33806509的博客 263

Day01

要找target在numstarget在nums列表中存在target;target在nums列表中不存在target;或者。只剩第一种情况,我们需要利用两次二分法来确定左右边界,确定边界的二分法与普通二分法不同,如确定左边界:当时,程序不返回mid而是继续将区间向左压缩,所以是;相反,确定右边界时,当时,执行。两者这么做的原因是:当找到target时,不一定是最左或者最右的target,需要进一步查找。

javaLEIYU的博客 391

PYTHON 基础-DAY2 20210401

目录014 链式赋值、系列解包赋值、常量015 内置数据类型-基本算术运算符016 整数017 浮点数018 时间表示019 多点坐标020 布尔值021同一运算符-整数缓存问题022-029 字符串022 unicode字符集、三种创建字符串方式、len()023 转义字符、字符拼接、字符串复制、input()输入024 str()、[]提取字符、replace()替换、内存分析025 切片slice操作、逆序026 split()分隔、jion()合并、join()效率测试027 驻留机制、内存分析、字

weixin_47442524的博客 172

Day027 - 线程池与进程池

线程池与进程池 线程队列 queue模块中的队列 只能保存一般数据或者多线程中产生的数据,多用于多线程(自带线程安全) 不能用来存储多进程中产生的数据 队列数据结构:容器型先进先出 if __name__ == '__main__': # 1. 队列基本用法 # 1.1 创建队列对象:Queue() q = Queue() # 1.2 添加数据(进):队列对象.put(数据) q.put(100) q.put(200) prin

qq_20814305的博客 308

python基础_027__pycharm使用技巧

1、新建文件时,自动生成代码,一般用于设置文件头注释 1、设置路径: File→settings→editor→file and code templates,选择python script 2、在编辑框内可以任意编辑,完成后点击ok,以后创建的py文件都会自动生成文件头注释 3、 以下是我在输入框输入的信息,记得要加#号哦 # -*- coding: utf-8 -*- # @File : ${NAME}.py # @Project : ${PROJECT_NAME} # @Software:..

qq_38604637的博客 337

day 17

day 17 time datetime random hashlib hmac typing requests re模块 01.time模块;提供了三种不同类型的时间(时间戳)。三种不同类型的时间可以互相转换 import time time.time() # 获取当前时间节点 time.sleep(1) # 暂停一秒钟 时间戳 print(time.time()) # 打印当前距1...

banshe6026的博客 203
上一篇: python(day026——异常2)
下一篇: python(day028——面向对象1)
王总总
博客等级 码龄8年 2粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值