随机数

随机数的模块名称是random,使用随机数模块之前需要先导入这个模块

  1. import random

获取0-1的随机数

  1. import random
  2. print(random.random())

注意:这里获取随机数的范围是:[0,1)
如果想要获得[0,n)的随机数就只需要random.random()*n即可。

获取随机整数

  1. import random
  2. num = random.randint(1,6)
  3. print(num)

randint用于返回两个参数之间的任一随机整数,注意这里的随机数的范围是**[1,6]**

获取指定范围内的随机小数

  1. import random
  2. num = int(random.uniform(0,6))
  3. print(num)

uniform用于返回两个参数之间随机小数,包括下限不包括上限,这里也就是[0,6)

随机获取列表中的数

  1. import random
  2. lists = [1,2,3,4,5,6]
  3. num =random.choice(lists)
  4. print( num)

choice函数后面传入需要随机获取的列表即可。
一看就懂哈,肥肠简单,也没有什么上下限的问题,就不解释了。

随机获取列表中指定数量的元素

  1. import random
  2. lists = [1,2,3,4,5,6]
  3. num = random.sample(lists,1)
  4. print(num)

sample函数的第一个参数就是所需要获取的列表,后面的参数就是指定获取的元素的数量

注意这里无论是不是数量取1,返回的都是一个子列表

随机打乱列表

  1. import random
  2. lists = [1,2,3,4,5,6]
  3. random.shuffle(lists)
  4. print(lists)

注意:这里的shuffle是会改变原数组的。


时间处理

datetime获取时间

获取完整时间

  1. from datetime import datetime
  2. print(datetime.now())

注意这里导入的是datetime模块内部的一个部分

获取特定时间单位信息

  1. from datetime import datetime
  2. print(datetime.now().year) # 获取当前时间的年份
  3. print(datetime.now().month) # 获取当前时间的月份
  4. print(datetime.now().day) # 获取当前时间的日期
  5. print(datetime.now().hour) # 获取当前时间的小时部分
  6. print(datetime.now().minute) # 获取当前时间的分钟部分
  7. print(datetime.now().second) # 获取当前时间的秒数部分
  8. print(datetime.now().weekday()) # 获取星期,从0开始表示星期一
  9. print(datetime.now().isoweekday()) # 获取星期,从1开始表示星期一
  10. print(datetime.now().isocalendar()) # 获取当前年的第几周的星期几

获取其他时间

  1. from datetime import datetime
  2. print(datetime(2020,10,1,9,10,20))
  3. # 2020-10-1 09:10:20

datetime当中更多参数分别代表的是年月日,时分秒

time获取时间

与上面类似:

  1. import time
  2. print(time.asctime()) # 获取本地时间
  3. print(time.ctime()) # 跟上面类似,也是获取本地时间
  4. print(time.localtime()) # 跟上面类似,也是获取本地时间,但是采用的是时间元组的形式
  5. print(time.gmtime( )) # 返回格林威治时间
  6. print(time.asctime().tm_year) # 返回本地时间的年份

时间戳

时间戳是一个整数
利用与1970年1月1日0点之间总共的秒数来表达当前时间

获取当前的时间戳

  1. import time
  2. print(time.time())

时间戳转换为标准格式的时间

  1. import time
  2. from datetime import datetime
  3. print(datetime.fromtimestamp(time.time()))

标准格式时间转换为时间戳

  1. from datetime import datetime
  2. print(datetime(2020,10,1,9,10,20 ).timestamp())

calendar日历类

  1. import calendar
  2. print( calendar.month(2021,2))

返回的就是2021年2月的日历:

  1. February 2021
  2. Mo Tu We Th Fr Sa Su
  3. 1 2 3 4 5 6 7
  4. 8 9 10 11 12 13 14
  5. 15 16 17 18 19 20 21
  6. 22 23 24 25 26 27 28

定义特定格式输出

  1. from datetime import datetime
  2. import time
  3. today = datetime.now()
  4. print(today.strftime('%Y/%m/%d %H:%M:%S'))
  5. today = time.localtime( )
  6. print(time.strftime('%Y-%m-%d %H:%M:%S',today))
  7. # 2021/02/26 10:01:11
  8. # 2021-02-26 10:01:11

字符解释如下:

  • Y:年
  • m:月
  • d:日
  • H:小时
  • M:分钟
  • S:秒

    前面加上百分比%就可以使得相应的数据代入到字符串中,其余分布都是自定义的。


窗体绘图

作为出现在各个营销号中著名的小海龟龟画图,我感觉没什么实际用处,画图有更专业的库,所以这个有兴趣的自己看下面的链接吧:
python上手—玩转Turtle


文本处理

英文分词

普通分词

  1. strs = 'to be or not to be'
  2. print(strs.split())
  3. # ['to', 'be', 'or', 'not', 'to', 'be']
  4. strs = 'to|be|or|not|to|be'
  5. print(strs.split("|"))
  6. # ['to', 'be', 'or', 'not', 'to', 'be']

split函数用于给字符串进行分词,分词的依据就是括号里面的参数
默认情况下不传入参数,分词的依据就是空格
比如前两句的分词符号就是" ",后两句的分词符号就是"|"

正则方法分词

  1. import re
  2. strs = 'He said:to be or not to be '
  3. print(re.split( '[^a-zA-Z]',strs))

[^a-zA-Z]表示所有大小写字母以外的其他任意字符
注意这里导入的re模块。
详细的正则化参见:
正则表达式(选修)

中文分词

中文的分词就需要使用jieba模块。
jieba是需要通过pip命令下载的:

  1. pip install jieba

lcut精确模式

  1. import jieba
  2. strs ='南京市长江大桥欢迎你'
  3. print(jieba.lcut(strs))
  4. # ['南京市','长江大桥','欢迎','你']

lcut全模式

  1. import jieba
  2. strs = '南京市长江大桥欢迎你'
  3. print(jieba.lcut(strs, cut_all=True))
  4. # ['南京','南京市','京市','市长','长江','长江大桥','大桥','欢迎','你']

简单来讲全模式就是把所有有可能的词汇分割出来。

lcut_for_serach折中模式

  1. import jieba
  2. strs = '南京市长江大桥欢迎你'
  3. print(jieba.lcut_for_search(strs))
  4. # ['南京','京市','南京市','长江','大桥','长江大桥','欢迎','你']

折中模式也叫搜索模式,会对较长的单词再次细分。

jieba分词的详解参见:
jieba分词详解

词云展示

这里需要安装wordcloud库,参见:
wordcloud库的安装及简单使用
代码部分:

  1. import jieba
  2. import wordcloud
  3. import matplotlib.pyplot as plt
  4. strs ='南京市长江大桥欢迎你'
  5. words = jieba.lcut(strs) # 使用jieba分词
  6. words = ' '.join(words) # 使用join使用空格组合分词
  7. img = plt.imread( 'heart.jpg') # 加载词云图片
  8. wc = wordcloud.WordCloud(background_color='white',font_path="msyh.ttc", mask=img)#设置生成图片的形状
  9. wc.generate(words) # 传入生成图云所需要的句子
  10. wc.to_file( "img.png" ) # 生成图云图片

WordCloud函数有三个参数:

  • background_color:设置图云背景色
  • font_path:设置字体
    • 微软雅黑:msyh.ttc
    • 宋体:simsun.ttc
    • 楷体:simkai.ttf
    • 黑体:simhei.ttf
  • mask:图云的形状

    图云的形状可以不设置。