python补充基础知识

这篇博客详细介绍了Python的基础知识,包括isinstance用法、多行字符串、字符计数、日期和时间处理、元组、列表的各种操作如排序和切片、字典的创建和更新、正则表达式的使用、匿名函数、迭代器、生成器、错误和异常处理,以及文件操作等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 是不是某类型?isinstance

a = 1
b = 0.5
isinstance(a, int)
True
isinstance(b, int)
False
isinstance(b, (int, float))
True

2. 多行字符串——三引号

  • 换行占字符

3. 计算某字符个数 c.count(‘a’)

'12345654321'.count('3')
2

4. 转义符

print('\\\\\\')
\\\

5. 时期和日期

  • %Y 四位年

  • %y 两位年

  • %m 月

  • %d 日

  • %H 24小时制的时

  • %I 12小时制

  • %M 两位分钟

  • %S 秒

  • %w 星期几

  • %U 一年中的第几个星期,星期天是每周第一天

  • %W 一年中的第几个星期,星期一是每周第一天

  • %z UTC时区

  • %F 按照‘200-11-17’格式

  • %d 按照‘04/18/12’(m/d/y)

  • 改变日期格式,注意大小些分别代表啥

  • 把字符串改变成日期对象

  • 计算两个时间相差多久

import datetime
from datetime import datetime, date, time
# Y m d - H M S
dt = datetime(2000, 11, 17, 3, 46, 23)
dt
datetime.datetime(2000, 11, 17, 3, 46, 23)
dt.day
17
dt.minute
46
dt.date()
datetime.date(2000, 11, 17)
dt.time()
datetime.time(3, 46, 23)
# 改变格式,注意大小些分别代表啥
dt.strftime(r'%m/%d/%Y %H:%M:%S')
'11/17/2000 03:46:23'
# 把字符串改变成日期对象
datetime.strptime('2012:03:17', '%Y:%m:%d')
datetime.datetime(2012, 3, 17, 0, 0)
dt = dt.replace(minute = 0, second = 0)
dt
datetime.datetime(2000, 11, 17, 3, 0)
# 计算两个时间相差多久
dt1 = datetime(2000, 11, 17, 3, 46, 23)
dt2 = datetime(2012, 3, 17, 11, 46, 23)
delta = dt2 - dt1
delta
datetime.timedelta(days=4138, seconds=28800)

6. 元组

  • 转换其他类型到元组
  • 元组可加,必须加最后一个逗号
  • 元组乘法
  • 元组查个数
# 转换其他类型到元组
tuple('abcde')
('a', 'b', 'c', 'd', 'e')
# 元组可加,如果元素只有一个,那么就需要加逗号
test = (4, None, 'mdx') + (5, True) + ('lby',)
test
(4, None, 'mdx', 5, True, 'lby')
# 元组乘法
test * 2
(4, None, 'mdx', 5, True, 'lby', 4, None, 'mdx', 5, True, 'lby')
# 元组查个数
test.count(4)
1

7. 列表

列表一次添加多个元素

x = [5, False, 'hhh']
# 列表一次添加多个元素
x.extend((7, 8, [2, 3]))
x
[5, False, 'hhh', 7, 8, [2, 3]]

列表排序

列表按字符长度排序

sorted可以排序字符串,可以直接变字符串转数组

# 列表按字符长度排序
x = ['a', 'bb', 'yyy', '01']
x.sort(key = len)
print(x)
['a', 'bb', '01', 'yyy']
# sorted可以排序字符串,可以直接变字符串转数组
sorted('I love Hongkong!')
[' ',
 ' ',
 '!',
 'H',
 'I',
 'e',
 'g',
 'g',
 'k',
 'l',
 'n',
 'n',
 'o',
 'o',
 'o',
 'v']
# 这个就不行
'I love u'.sort()
---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

/var/folders/9l/fdqtn9lj3mqd1mr7rsbr_qlc0000gn/T/ipykernel_41485/288801555.py in <module>
      1 # 这个就不行
----> 2 'I love u'.sort()


AttributeError: 'str' object has no attribute 'sort'
arr = list('Iloveu')
p = arr.sort()
p

列表二分搜索和已排序列表的维护

import bisect
c = [1, 2, 2, 2, 3, 4, 7]

c中,2这个数字应该放到第几位,不会真的插,只返回位置

bisect.bisect(c, 2)
4

把元素插入第几位,真的插进去了

print(bisect.insort(c, 6))
c
None





[1, 2, 2, 2, 3, 4, 6, 6, 7]

切片

利用切片进行数组反转

c[::
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值