随机数
随机数的模块名称是random,使用随机数模块之前需要先导入这个模块
import random
获取0-1的随机数
import randomprint(random.random())
注意:这里获取随机数的范围是:[0,1)
如果想要获得[0,n)的随机数就只需要random.random()*n即可。
获取随机整数
import randomnum = random.randint(1,6)print(num)
randint用于返回两个参数之间的任一随机整数,注意这里的随机数的范围是**[1,6]**。
获取指定范围内的随机小数
import randomnum = int(random.uniform(0,6))print(num)
uniform用于返回两个参数之间随机小数,包括下限不包括上限,这里也就是[0,6)。
随机获取列表中的数
import randomlists = [1,2,3,4,5,6]num =random.choice(lists)print( num)
choice函数后面传入需要随机获取的列表即可。
一看就懂哈,肥肠简单,也没有什么上下限的问题,就不解释了。
随机获取列表中指定数量的元素
import randomlists = [1,2,3,4,5,6]num = random.sample(lists,1)print(num)
sample函数的第一个参数就是所需要获取的列表,后面的参数就是指定获取的元素的数量。
注意这里无论是不是数量取1,返回的都是一个子列表。
随机打乱列表
import randomlists = [1,2,3,4,5,6]random.shuffle(lists)print(lists)
注意:这里的shuffle是会改变原数组的。
时间处理
datetime获取时间
获取完整时间
from datetime import datetimeprint(datetime.now())
获取特定时间单位信息
from datetime import datetimeprint(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 datetimeprint(datetime(2020,10,1,9,10,20))# 2020-10-1 09:10:20
datetime当中更多参数分别代表的是年月日,时分秒
time获取时间
与上面类似:
import timeprint(time.asctime()) # 获取本地时间print(time.ctime()) # 跟上面类似,也是获取本地时间print(time.localtime()) # 跟上面类似,也是获取本地时间,但是采用的是时间元组的形式print(time.gmtime( )) # 返回格林威治时间print(time.asctime().tm_year) # 返回本地时间的年份
时间戳
时间戳是一个整数
利用与1970年1月1日0点之间总共的秒数来表达当前时间
获取当前的时间戳
import timeprint(time.time())
时间戳转换为标准格式的时间
import timefrom datetime import datetimeprint(datetime.fromtimestamp(time.time()))
标准格式时间转换为时间戳
from datetime import datetimeprint(datetime(2020,10,1,9,10,20 ).timestamp())
calendar日历类
import calendarprint( calendar.month(2021,2))
返回的就是2021年2月的日历:
February 2021Mo Tu We Th Fr Sa Su1 2 3 4 5 6 78 9 10 11 12 13 1415 16 17 18 19 20 2122 23 24 25 26 27 28
定义特定格式输出
from datetime import datetimeimport timetoday = 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 restrs = '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 jiebastrs ='南京市长江大桥欢迎你'print(jieba.lcut(strs))# ['南京市','长江大桥','欢迎','你']
lcut全模式
import jiebastrs = '南京市长江大桥欢迎你'print(jieba.lcut(strs, cut_all=True))# ['南京','南京市','京市','市长','长江','长江大桥','大桥','欢迎','你']
lcut_for_serach折中模式
import jiebastrs = '南京市长江大桥欢迎你'print(jieba.lcut_for_search(strs))# ['南京','京市','南京市','长江','大桥','长江大桥','欢迎','你']
折中模式也叫搜索模式,会对较长的单词再次细分。
jieba分词的详解参见:
jieba分词详解
词云展示
这里需要安装wordcloud库,参见:
wordcloud库的安装及简单使用
代码部分:
import jiebaimport wordcloudimport matplotlib.pyplot as pltstrs ='南京市长江大桥欢迎你'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:图云的形状图云的形状可以不设置。
