保研考研机试攻略:python笔记(2)
🐨🐨🐨宝子们好呀,今天我们继续来学习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} |
好啦,今天我们先学到这里,学完的同学们都太棒了,我们下一篇见 ~ 👋👋👋
有什么问题我们随时评论区见哦 ~ 🌹🌹🌹