2022/6/19——Python之string、random、datetime
1、string模块
字符串常量:
import string print(string.ascii_lowercase) #小写字母:'abcdefghijklmnopqrstuvwxyz' print(string.ascii_uppercase) #大写字母:'ABCDEFGHIJKLMNOPQRSTUVWXYZ' print(string.ascii_letters) #所有字母:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ print(string.digits) print(string.digits) #十进制数字:'01234567' print(string.hexdigits) #十六进制数字:'0123456789abcdefABCDEF' print(string.octdigits) #字符串 ‘01234567’,八进制数字:'01234567'
常用方法:
str = "my name is lily" print(str.capitalize()) #将字符串首字母大写:My name is lily print(str.center(20)) #将字符串用空格填充成一个长度为width的字符串,原字符串内容居中 print(str.count('i')) #返回字符串串i在str中出现的次数 print(str.endswith("lily")) #True print(str.find('i')) #返回字符串i在字符串str中的位置索引,没有则返回-1 print(str.index('i')) #返回字符串i在字符串str中的位置索引,如果不在于str中会抛出异常 print(str.rfind('i')) #输出结果为12,从右边开始查找,与find函数类似 print(str.rindex('i')) #从右边开始查找,与index()函数类似 print(str.isalnum()) #如果str至少有一个字符并且都是字母或者数字则返回True,否则返回False。 print(str.isalpha()) #如果str至少有一个字符并且都是字母则返回True,否则返回False print(str.isdigit()) #如果str只包含数字则返回True,否则返回False print(str.islower()) #如果str存在区分大小写的字符,并且都是小写则返回True,否则返回False print(str.isupper()) #如果str存在区分大小写的字符,并且都是大写则返回True,否则返回False print(str.istitle()) #如果str是标题化的(单词首字母大写)则返回True,否则返回Flase。 print(str.title()) #将str标题化(将所有单词变为首字母大写,其余字母小写)。 print(str.ljust(width)) #返回一个原字符串左对齐并使用空格填充至长度width的新的字符串。 print(str.rjust(width)) #返回一个原字符串右对齐并使用空格填充至长度width的新的字符串 print(str.lower()) #将字符串str中所有大写字符变为小写。 print(str.upper()) #将字符串str中所有小写字符变为大写 print(str.lstrip()) #去掉str左边不可见字符 print(str.rstrip()) #去掉str右边不可见字符 print(str.partition(s)) #用s将字符串str分成三个值 print(str.rpartition(s)) #从右边开始,用s将字符串str分成三个值,与partition()类似 print(str.replace(a,b)) #将字符串str中的a替换成b print(str.split(s)) #以s为分隔符切片str print(str.startswith(s)) #检查字符串str是否是以s开头,是则返回True,否则返回Flase print(str.strip()) #去掉左右两边不可见字符 print(str.zfill(width)) #返回长度为width的字符串,原字符串右对齐,前面填充0
2、random模块
random.random()随机生成0到1之间的浮点数[0.0,1.0)。注意的是返回的随机数可能会是0但不可能为1,即左闭右开的区间。
import random
print(random.random()) #0.7009970270567074
random.randint(a,b):随机生成a与b之间的整数[a,b],a<=n<=b,随机整数不包含b时[a,b)可以使用random.randrange()方法。
import random print(random.randint(0,100)) #22
random.randrange(start,stop,step):按步长step随机在上下范围内取一个随机数,start<=n<stop
import random print(random.randrange(0,100,10)) #20
random.uniform(a,b):随机生成a与b之间的浮点数[a,b],a<=n<=b
print("uniform: ",random.uniform(5,10)) #uniform: 5.119790163375776
random.choice()从列表中随机取出一个元素,比如列表、元祖、字符串等。注意的是,该方法需要参数非空,否则会抛出 indexerror 的错误。
print("choice: ",random.choice("www.yuanxiao.net")) #choice: y
random.shuffle(items) 把列表 items 中的元素随机打乱。注意的是,如果不想修改原来的列表,可以使用 copy 模块先拷贝一份原来的列表。
num = [1, 2, 3, 4, 5] random.shuffle(num) print("shuffle: ",num) #shuffle: [1, 3, 5, 4, 2]
random.sample(items, n)从列表 items 中随机取出 n 个元素。
num = [1, 2, 3, 4, 5] print("sample: ",random.sample(num, 3)) #sample: [4, 1, 5]
3、日期时间
获取当前时间戳
import time t = time.time() millis1 = int(t) print('10位时间戳:{}'.format(millis1)) millis2 = int(t * 1000) print('13位时间戳:{}'.format(millis2))
打印结果:
10位时间戳:1594800086
13位时间戳:1594800086816
格式化时间:
import time now = time.strftime("%Y-%m-%d %H:%M:%S") print('当前时间格式化:{}'.format(now)) now2 = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(1594368331)) print('指定时间格式化:{}'.format(now2))
打印结果:
当前时间格式化:2020-07-15 16:08:57
指定时间格式化:2020-07-10 16:05:31
格式化符号表:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
格式化时间转时间戳:
import time str = '2020-07-10 16:05:31' ts = time.mktime(time.strptime(str,"%Y-%m-%d %H:%M:%S")) print('格式化时间转时间戳:{}'.format(int(ts)))
获取今天的日期:
import time import datetime today1 = time.strftime("%Y-%m-%d") print(today1) today2 = datetime.date.today() print(today2)
时间转日期格式:
import time import datetime d1 = time.strftime('%Y-%m-%d',time.localtime(1594804107)) print('时间戳转日期:{}'.format(d1)) d2 = datetime.date.fromtimestamp(1594804107) print('时间戳转日期:{}'.format(d2))
两个日期相差天数:
import datetime a = datetime.date(2020, 7, 1) b = datetime.date(2020, 7, 15) print('b的日期减去a的日期:{}'.format(b.__sub__(a).days)) print('a的日期减去b的日期:{}'.format(a.__sub__(b).days))
更多请参考:https://www.cnblogs.com/fengyumeng/p/13529277.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!