随机数
随机数的模块名称是random
,使用随机数模块之前需要先导入这个模块
import random
获取0-1的随机数
import random
print(random.random())
注意:这里获取随机数的范围是:[0,1)
如果想要获得[0,n)
的随机数就只需要random.random()*n
即可。
获取随机整数
import random
num = random.randint(1,6)
print(num)
randint
用于返回两个参数之间的任一随机整数,注意这里的随机数的范围是**[1,6]**
。
获取指定范围内的随机小数
import random
num = int(random.uniform(0,6))
print(num)
uniform
用于返回两个参数之间随机小数,包括下限不包括上限,这里也就是[0,6)
。
随机获取列表中的数
import random
lists = [1,2,3,4,5,6]
num =random.choice(lists)
print( num)
choice
函数后面传入需要随机获取的列表即可。
一看就懂哈,肥肠简单,也没有什么上下限的问题,就不解释了。
随机获取列表中指定数量的元素
import random
lists = [1,2,3,4,5,6]
num = random.sample(lists,1)
print(num)
sample
函数的第一个参数就是所需要获取的列表,后面的参数就是指定获取的元素的数量。
注意这里无论是不是数量取1,返回的都是一个子列表。
随机打乱列表
import random
lists = [1,2,3,4,5,6]
random.shuffle(lists)
print(lists)
注意:这里的shuffle
是会改变原数组的。
时间处理
datetime获取时间
获取完整时间
from datetime import datetime
print(datetime.now())
获取特定时间单位信息
from datetime import datetime
print(datetime.now().year) # 获取当前时间的年份
print(datetime.now().month) # 获取当前时间的月份
print(datetime.now().day) # 获取当前时间的日期
print(datetime.now().hour) # 获取当前时间的小时部分
print(datetime.now().minute) # 获取当前时间的分钟部分
print(datetime.now().second) # 获取当前时间的秒数部分
print(datetime.now().weekday()) # 获取星期,从0开始表示星期一
print(datetime.now().isoweekday()) # 获取星期,从1开始表示星期一
print(datetime.now().isocalendar()) # 获取当前年的第几周的星期几
获取其他时间
from datetime import datetime
print(datetime(2020,10,1,9,10,20))
# 2020-10-1 09:10:20
datetime
当中更多参数分别代表的是年月日,时分秒
time获取时间
与上面类似:
import time
print(time.asctime()) # 获取本地时间
print(time.ctime()) # 跟上面类似,也是获取本地时间
print(time.localtime()) # 跟上面类似,也是获取本地时间,但是采用的是时间元组的形式
print(time.gmtime( )) # 返回格林威治时间
print(time.asctime().tm_year) # 返回本地时间的年份
时间戳
时间戳是一个整数
利用与1970年1月1日0点之间总共的秒数来表达当前时间
获取当前的时间戳
import time
print(time.time())
时间戳转换为标准格式的时间
import time
from datetime import datetime
print(datetime.fromtimestamp(time.time()))
标准格式时间转换为时间戳
from datetime import datetime
print(datetime(2020,10,1,9,10,20 ).timestamp())
calendar日历类
import calendar
print( calendar.month(2021,2))
返回的就是2021年2月的日历:
February 2021
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
定义特定格式输出
from datetime import datetime
import time
today = datetime.now()
print(today.strftime('%Y/%m/%d %H:%M:%S'))
today = time.localtime( )
print(time.strftime('%Y-%m-%d %H:%M:%S',today))
# 2021/02/26 10:01:11
# 2021-02-26 10:01:11
字符解释如下:
Y
:年m
:月d
:日H
:小时M
:分钟S
:秒前面加上百分比%就可以使得相应的数据代入到字符串中,其余分布都是自定义的。
窗体绘图
作为出现在各个营销号中著名的小海龟龟画图,我感觉没什么实际用处,画图有更专业的库,所以这个有兴趣的自己看下面的链接吧:
python上手—玩转Turtle
文本处理
英文分词
普通分词
strs = 'to be or not to be'
print(strs.split())
# ['to', 'be', 'or', 'not', 'to', 'be']
strs = 'to|be|or|not|to|be'
print(strs.split("|"))
# ['to', 'be', 'or', 'not', 'to', 'be']
split
函数用于给字符串进行分词,分词的依据就是括号里面的参数。
默认情况下不传入参数,分词的依据就是空格。
比如前两句的分词符号就是" "
,后两句的分词符号就是"|"
。
正则方法分词
import re
strs = 'He said:to be or not to be '
print(re.split( '[^a-zA-Z]',strs))
[^a-zA-Z]
表示所有大小写字母以外的其他任意字符。
注意这里导入的re
模块。
详细的正则化参见:
正则表达式(选修)
中文分词
中文的分词就需要使用jieba
模块。jieba
是需要通过pip
命令下载的:
pip install jieba
lcut精确模式
import jieba
strs ='南京市长江大桥欢迎你'
print(jieba.lcut(strs))
# ['南京市','长江大桥','欢迎','你']
lcut全模式
import jieba
strs = '南京市长江大桥欢迎你'
print(jieba.lcut(strs, cut_all=True))
# ['南京','南京市','京市','市长','长江','长江大桥','大桥','欢迎','你']
lcut_for_serach折中模式
import jieba
strs = '南京市长江大桥欢迎你'
print(jieba.lcut_for_search(strs))
# ['南京','京市','南京市','长江','大桥','长江大桥','欢迎','你']
折中模式也叫搜索模式,会对较长的单词再次细分。
jieba分词的详解参见:
jieba分词详解
词云展示
这里需要安装wordcloud
库,参见:
wordcloud库的安装及简单使用
代码部分:
import jieba
import wordcloud
import matplotlib.pyplot as plt
strs ='南京市长江大桥欢迎你'
words = jieba.lcut(strs) # 使用jieba分词
words = ' '.join(words) # 使用join使用空格组合分词
img = plt.imread( 'heart.jpg') # 加载词云图片
wc = wordcloud.WordCloud(background_color='white',font_path="msyh.ttc", mask=img)#设置生成图片的形状
wc.generate(words) # 传入生成图云所需要的句子
wc.to_file( "img.png" ) # 生成图云图片
WordCloud
函数有三个参数:
background_color
:设置图云背景色font_path
:设置字体- 微软雅黑:
msyh.ttc
- 宋体:
simsun.ttc
- 楷体:
simkai.ttf
- 黑体:
simhei.ttf
- 微软雅黑:
mask
:图云的形状图云的形状可以不设置。