保研考研机试攻略:python笔记(2)

news2024/11/22 21:17:46

🐨🐨🐨宝子们好呀,今天我们继续来学习N诺提供的python笔记,fighting!( •̀ ω •́ )✧

对这个系列感兴趣的宝子欢迎关注保研考研机试攻略专栏哦 ~

目录

🐨🐨🐨4进制转换

🐼x进制转十进制

🐼十进制转x进制

🐨🐨🐨5python逆序

🐼逆序通常方法

🐼reverse用法

🐨🐨🐨6负进制转换方法

🐨🐨🐨7初始化长度为N的字符串

🐨🐨🐨8datatime类使用

🐼创建日期对象

🐼strftime()方法

🐼 时间差——datetime.timedelta类

🐼 字符串与datatime类型互转 

🐶1.datetime对象转换成字符串

🐶2.字符串转换成datetime对象

🐨🐨🐨9字符串只读不写

🐨🐨🐨10字典类

🐼字典排序

🐶根据字典的key排序

🐶根据字典的value值排序

🐼元组创建字典

🐼setdefault使用

🐼字典删除元素

🐼set使用

🐶判断set值是否存在

🐶set 集合中添加元素

🐶set集合中删除元素

🐼set集合做交集、并集、差集运算


🐨🐨🐨4进制转换

🐼x进制转十进制

a = input()#字符串 
print(int(a,x))

🐼十进制转x进制

将十进制decimal system转换成二进制binary system

print(bin(10))
'{0:b}'.format(10)

将十进制decimal system转换成八进制Octal

print(oct(10))
'{:o}'.format(10)

将十进制decimal system转换成十六进制Hexadecimal

print(hex(10))
'{:x}'.format(10)

🐨🐨🐨5python逆序

🐼逆序通常方法

x[::-1]#x可为string or list

🐼reverse用法

# reverse 只对list作用,对string无效
x = ['1','2','3'] 
x.reverse()
x #输出['3','2','1']

#reversed返回list逆序的迭代器
[a for a in reversed(x)]#输出['1','2','3'],x为list

🐨🐨🐨6负进制转换方法

方法与二进制一致

def baseNeg2(N): 
    res = ''
    while N:
        # N, k = -(N // 2), N % 2
        N, k = -(N >> 1), N % 2 #此处相比正进制多了负号,因为存在奇偶正负问题 
        res = str(k) + res
    return res if res else '0'

🐨🐨🐨7初始化长度为N的字符串

print(3*"1")
#"333"

🐨🐨🐨8datatime类使用

🐼创建日期对象

如需创建日期,我们可以使用 datetime 模块的 datetime() 类(构造函数)。 datetime() 类需要三个参数来创建日期:年、月、日。

datatime对象间可以相加减,比较大小。

但对于时间信号,利用字符串比大小机制也能得出结果:

'2007-02-17 19:22:53,315'>'2007-01-27 19:22:53,315'# True
datetime.datetime(2007, 2, 17, 19, 22, 53, 315000)>datetime.datetime(2007, 1, 27, 19, 22, 53, 315000)# True

实例:创建日期对象

import datetime
x = datetime.datetime(2020, 5, 17) 
print(x)#2020-05-17 00:00:00

🐼strftime()方法

datetime 对象拥有把日期对象格式化为可读字符串的方法。

该方法称为 strftime() ,并使用一个 format 参数来指定返回字符串的格式:

实例:显示月份的名称

import datetime

x = datetime.datetime(2019, 10, 1)

print(x.strftime("%B"))#October
from datetime import datetime

date_string = "1 October, 2020"
print("date_string =", date_string)

date_object = datetime.strptime(date_string, "%d %B, %Y") 
print("date_object =", date_object)

🐼 时间差——datetime.timedelta类

from datetime import datetime, date

t1 = date(year = 2018, month = 7, day = 12)  
t2 = date(year = 2017, month = 12, day = 23) 
t3 = t1 - t2
print("t3 =", t3)# t3 = 201 days, 0:00:00 
print(t3.days) # 201

t4 = datetime(year = 2018, month = 7, day = 12, hour = 7, minute = 9, second = 33)
t5 = datetime(year = 2019, month = 6, day = 10, hour = 5, minute = 55, second = 13)
t6 = t4 - t5
print("t6 =", t6)# t6 = -333 days, 1:14:20

print("type of t3 =", type(t3)) # type of t3 = <class 'datetime.timedelta'> 
print("type of t6 =", type(t6)) # type of t6 = <class 'datetime.timedelta'>

data_a = datetime.datetime(2022,1,1)
data_b = data_a+datetime.timedelta(days=61)# timedelta可用于datatime的计算
print("{:d}-{:02d}-{:02d}".format(data_b.year,data_b.month,data_b.day))# 2022- 03-02

🐼 字符串与datatime类型互转 

🐶1.datetime对象转换成字符串

利用str或者strftime方法可以将datetime对象转换成字符串

from datetime import datetime # 导入datetime模块
stamp = datetime(2017, 10, 7) # 生成一个datetime对象 
str(stamp) # 转换  #结果显示: '2017-10-07 00:00:00'

🐶2.字符串转换成datetime对象

datetime.strptime可以用这些格式化编码将字符串转换成日期

from datetime import datetime 
value = '2017/10/7'
datetime.strptime(value, '%Y/%m/%d')
#datetime.datetime(2017, 10, 7, 0, 0)

🐨🐨🐨9字符串只读不写

Python中,字符串是不可变类型,即无法直接修改字符串的某一位字符。

直接修改会报错: 'str'object does not support item assignment

#报错
#s = '312141' 
#s[0] = '0'

#正确方法
s = '312141'
t = list(s)
t[0] = '0'
s = ''.join(t)

🐨🐨🐨10字典类

🐼字典排序

🐶根据字典的key排序

#  单独打印出排序后的key值
new_sys = sorted(sys) 
print(new_sys)

new_sys = sorted(sys.keys()) 
print(new_sys)

#对于set可直接sorted就行
a ={'3', '2', '2', '1', '5'}
print(a)#{'2', '1', '5', '3'}
sorted(a)# ['1', '2', '3', '5']

# 根据key的升序排列,把key value都打印出来
new_sys1 = sorted(sys.items(), key=lambda d: d[0], reverse=False) 
print(new_sys1)

#python sorted自带稳定排序
new_sys1 = sorted(sys.items(), reverse=False) 
print(new_sys1)

'''
['age', 'gender', 'name'] 
['age', 'gender', 'name']
[('age', '十八 '), ('gender', 'man'), ('name', '张三 ')] 
[('age', '十八 '), ('gender', 'man'), ('name', '张三 ')]
'''

🐶根据字典的value值排序

# 单独打印出排序后的value值
new_sys1 = sorted(sys.values()) 
print(new_sys1)

# 打印出根据value排序后的键值对的具体值
new_sys2 = sorted(sys.items(),  key=lambda d: d[1], reverse=False)
print(new_sys2)
'''
['man', '十八 ', '张三 ']
[('gender', 'man'), ('age', '十八 '), ('name', '张三 ')]
'''

🐼元组创建字典

dict.fromkeys

#!/usr/bin/python
# -*- coding: UTF-8 -*-

seq = ('Google', 'Runoob', 'Taobao')

# 不指定默认的键值,默认为 None
thisdict = dict.fromkeys(seq)
print ("新字典为 : %s" %  str(thisdict))

# 指定默认的键值
thisdict = dict.fromkeys(seq, 10)
print ("新字典为 : %s" %  str(thisdict)

🐼setdefault使用

用法:给定一组(key val)和一个字典dict dict.setdefault(key,val)dict内含有key,则返回对于 key的值,否则加入新的(key val

word = 'abc'
for i in word:
    tree = tree.setdefault(i, {})
# tree 值一直为{}

🐼字典删除元素

pop() 删除字典给定键key所对应的值, 返回被删除的值

dict = {'name': 'jesse', 'age': 18, 'sex': 'male'} 
name = dict.pop('name')  #
print(name)  # 

🐼set使用

set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

🐶判断set值是否存在

a={1,2,3}
print(4 in a)#False

🐶set 集合中添加元素

使用 set 类型提供的 add() 方法实现

使用 add() 方法添加的元素,只能是数字、字符串、元组或者布尔类型(True False)值,不能添加列表、字典、集合这类可变的数据,否则 Python 解释器会报 TypeError 错误。例如:

a = {1,2,3}  
a.add((1,2)) 
print(a)
a.add([1,2]) 
print(a)

运行结果:

{(1, 2), 1, 2, 3}
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\1.py", line 4, in <module>
a.add([1,2])
TypeError: unhashable type: 'list'

🐶set集合中删除元素

使用 remove() 方法 discard() 方法

需要注意的是,使用remove() 如果被删除元素本就不包含在集合中,则此方法会抛出 KeyError 错误, 例如:

a = {1,2,3} 
a.remove(1) 
print(a)
a.remove(1) 
print(a)
#a.discard(1) 此方法不会抛出异常 
#print(a)

运行结果:

{2, 3}
Traceback (most recent call last):
 File "C:\Users\mengma\Desktop\1.py", line 4, in <module>
  a.remove(1) 
KeyError: 1

🐼set集合做交集、并集、差集运算

集合最常做的操作就是进行交集、并集、差集以及对称差集运算。

上图有 2 个集合,分别为 set1={1,2,3} set2={3,4,5},它们既有相同的元素,也有不同的元素。以这 两个集合为例,分别做不同运算的结果如表所示。

运算操

Python 算符

含义

例子

交集

&

取两集合公共的元素

>>> set1 & set2 {3}

并集

|

取两集合全部的元素

>>> set1 | set2 {1,2,3,4,5}

差集

-

取一个集合中另一集合没有的 元素

>>> set1 - set2 {1,2} >>> set2 - set1 {4,5}

对称差

^

取集合 A B 中不属于 A&B 的元素

>>> set1 ^ set2 {1,2,4,5}

好啦,今天我们先学到这里,学完的同学们都太棒了,我们下一篇见 ~ 👋👋👋

有什么问题我们随时评论区见哦 ~ 🌹🌹🌹
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2231766.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【动手学电机驱动】 STM32-FOC(2)STM32 导入和创建项目

STM32-FOC&#xff08;1&#xff09;STM32 电机控制的软件开发环境 STM32-FOC&#xff08;2&#xff09;STM32 导入和创建项目 STM32-FOC&#xff08;3&#xff09;STM32 互补 PWM 输出 STM32-FOC&#xff08;4&#xff09;IHM03 电机控制套件介绍 STM32-FOC&#xff08;5&…

【力扣专题栏】字母异词分组,如何利用强大的容器(unordered_map)解决该问题?

题解目录 1、题目描述解释2、算法原理解析3、代码编写 1、题目描述解释 2、算法原理解析 3、代码编写 class Solution { public:vector<vector<string>> groupAnagrams(vector<string>& strs) {//创建哈希表unordered_map<string,vector<string&g…

vscode clangd for cuda 插件配置

这里写目录标题 1. 下载插件clangd,并且安装server到host2. 配置3. 安装调试插件 1. 下载插件clangd,并且安装server到host 步骤 extension下载 altshiftp, 下服务&#xff0c;如果下不下来请考虑用&#x1fa9c; 下载好后check一下&#xff0c;检查是否正常 正常的标志 注意…

Oracle 11g DataGuard GAP处理

1 说明 在Oracle Data Guard中&#xff0c;GAP是指在备库无法接收到一个或多个来自主库的归档日志文件时发生的情况&#xff0c;会导致数据保护和实时数据复制的能力受到影响。 Oracle Data Guard架构日志同步有三个阶段&#xff1a; 日志发送&#xff1b;日志接收&#xff…

2023年编程语言排行榜

随着编程语言的不断发展&#xff0c;跟踪哪些语言处于领先地位至关重要。在这两部分中&#xff0c;我们将深入研究 2023 年排名前 40 的编程语言&#xff0c;并分析它们脱颖而出的原因。 40 种顶级 TIOBE 编程语言 1. Python 受欢迎程度&#xff1a;非常高学习难度&#xff1…

ELK之路第四步——整合!打通任督二脉

ELK之路第四步——整合&#xff01;打通任督二脉 前言1.架构2.下载资源3.整合开始1.分别启动三个es2.启动kibana3.新建filebeat_logstash.yml配置文件4.修改logstash的启动配置文件5.启动logstash6.启动filebeat7.Kibana查看 4.结语 前言 在开始本篇之前&#xff0c;你需要用到…

Verilog实现的莫尔斯电码发生器

莫尔斯或者摩尔斯电码(Morse Code)&#xff0c;发明于1837年(另有一说是1836年)&#xff0c;通过不同的排列顺序来表达不同的英文字母、数字和标点符号&#xff0c;在这里作一简单处理&#xff0c;仅产生点(Dit)和划(Dah)&#xff0c;时长在0.25秒之内为点&#xff0c;超过为划…

vue3 封装aixos

1. Vue3 封装 aixos 并且 使用 aixos 请求数据 npm install axios # 或者 yarn add axios 2. Vue3 封装 aixos 并且 使用 aixos 请求数据 封装 axios可以帮助我们更好地管理 HTTP 请求&#xff0c;例如添加统一的基础URL、请求头、拦截器等功能。 下面是封装 axios的一个示…

在美团外卖上抢券 Python来实现

在美团外卖上抢券的 Python 实现 在如今的互联网时代&#xff0c;自动化脚本已经成为了许多用户生活中不可或缺的工具。尤其是在购物、抢券等场景中&#xff0c;自动化脚本能够帮助我们节省大量的时间和精力。今天&#xff0c;我们将一起探索如何使用 Python 编写一个简单的脚…

【学术论文投稿】探索嵌入式硬件设计:揭秘智能设备的心脏

【IEEE出版】第六届国际科技创新学术交流大会暨通信、信息系统与软件工程学术会议&#xff08;CISSE 2024&#xff09;_艾思科蓝_学术一站式服务平台 更多学术会议论文投稿请看&#xff1a;https://ais.cn/u/nuyAF3 目录 引言 嵌入式系统简介 嵌入式硬件设计的组成部分 设…

宝藏虚拟化学习资料大全

最近发现了关于虚拟化的宝藏资料&#xff0c;瑞斯拜&#xff01;原文链接如下&#xff1a; 500篇关于虚拟化的经典资料&#xff0c;含CPU虚拟化&#xff0c;磁盘虚拟化&#xff0c;内存虚拟化&#xff0c;IO虚拟化。 目录 &#x1fa90; 虚拟化基础 &#x1f343; 虚拟化分类&…

qt QStatusBar详解

1、概述 QStatusBar是Qt框架提供的一个小部件&#xff0c;用于在应用程序窗口底部显示状态信息。它可以显示一些固定的文本和图标&#xff0c;并且可以通过API动态更新显示内容。QStatusBar通常是一个水平的窗口部件&#xff0c;能够显示多行文本内容&#xff0c;非常适合用于…

即插即用显著位置注意力spab,涨点起飞

题目&#xff1a;Salient Positions based Attention Network for Image Classification 论文地址&#xff1a;https://arxiv.org/pdf/2106.04996 创新点 提出了基于显著位置的注意力机制&#xff1a;论文提出了一种名为SPAblock的显著位置选择算法(SPS)&#xff0c;通过在注…

R语言贝叶斯:INLA下的贝叶斯回归、生存分析、随机游走、广义可加模型、极端数据的贝叶斯分析

原文链接&#xff1a;R语言贝叶斯&#xff1a;INLA下的贝叶斯回归、生存分析、随机游走、广义可加模型、极端数据的贝叶斯分析https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247625527&idx8&snba4e50376befd94022519152609ee8d0&chksmfa8daad0cdfa23c6…

C++设计模式结构型模式———外观模式

文章目录 一、引言二、外观模式三、总结 一、引言 外观模式是一种结构型设计模式&#xff0c; 能为程序库、 框架或其他复杂类提供一个简单的接口。也就是说&#xff0c;该模式的目的用于隔离接口&#xff0c;换句话说&#xff0c;就是扮演中间层的角色&#xff0c;把本来结合…

物流公司出货单据模板下载软件 佳易王物流单管理系统操作使用教程

一、概述 【软件资源文件下载可以点文章最后信息卡片】 物流公司出货单据模板下载软件物流单管理系统操作使用教程 ‌软件功能‌&#xff1a; ‌记录管理‌&#xff1a;记录运费、垫付货款、代收货款、保险费等。‌打印模式‌&#xff1a;支持空白单、卷纸、印刷好的单子等多…

谷粒商城のsentinelzipkin

文章目录 前言一、Sentinel1、什么是Sentinel2、项目配置3、使用案例3.1、流控3.2、降级3.3、黑白名单设置 二、Zipkin1、什么是Zipkin2、项目配置3、整合案例 前言 本篇介绍Spring Cloud Ali的sentinel组件&#xff0c;用于对微服务的熔断降级&#xff0c;以及链路追踪zipkin的…

WPF+MVVM案例实战(十九)- 自定义字体图标按钮的封装与实现(EF类)

文章目录 1、案例效果1、按钮分类2、E类按钮功能实现与封装1.文件创建与代码实现2、样式引用与封装 3、F类按钮功能实现与封装1、文件创建与代码实现2、样式引用与封装 3、按钮案例演示1、页面实现与文件创建2、运行效果如下 4、源代码获取 1、案例效果 1、按钮分类 在WPF开发…

keepalived + nginx 实现网站高可用性(HA)

keepalive 一、keepalive简介二、实现步骤1. 环境准备2. 安装 Keepalived3. 配置 Keepalived 双机主备集群架构4. 配置 Nginx5. 启动Keepalived6. 测试高可用性7. 配置keepalived 双主热备集群架构 一、keepalive简介 目前互联网主流的实现WEB网站及数据库服务高可用软件包括&a…

破局智能制造:难点分析与对策

一、 智能制造过程中可能遇到难点: 1. --概念和技术繁多--: - 智能制造领域涉及众多概念和技术,如工业4.0、CPS、工业互联网等,让企业难以选择和应用。 2. --缺乏经验和成功案例--: - 企业在推进智能制造时缺乏经验,存在信息孤岛、自动化孤岛等问题,缺乏统一规划和系统推…