栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python实例练习

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python实例练习

1.温度转换实例:
#实例1:温度转换:#需求分析-->代码编写'''需求分析:    摄氏度:以1标准大气压下水结冰点为0度,沸点为100度,将温度进行刻画    华氏度:以1标准大气压下水结冰点为32度,沸点为212度,将温度镜像刻画'''#TempConvert.pyTempStr = input("请输入带有符号的温度值: ")if TempStr[-1] in ['F', 'f']:
    C = (eval(TempStr[0:-1]) - 32)/1.8
    print("转换后的温度是{:.2f}C".format(C))elif TempStr[-1] in ['C', 'c']:
    F = 1.8*eval(TempStr[0:-1]) + 32
    print("转换后的温度是{:.2f}F".format(F)) #{:.2f} 表示保留小数点2位else:
    print("输入格式错误")#评估函数eval():去掉参数最外侧引号并执行以下语句的函数
2.日志文件分析:
#实例2:日志分析:#需求分析-->代码编写#SensorReader.py#2018-02-28 01:03:16.33393 19.3024 38.4629 45.08 2.68742try:
    f = open('sensor-date-no-exist.txt', 'r', encoding='UTF-8')
    avg, cnt = 0, 0
    for line in f:
        ls = line.split() #split()方法可以将每个字符串按照空格分隔字符串
        cnt += 1
        avg += eval(ls[2]) #取出日志温度的部分
    print("平均温度值是:{:.2f}".format(avg / cnt))
    f.close()except:
    print("文件打开错误")
3.文本统计关键词:
#输入2019年政府一号文件,输出出现次数超过50的词语,不包括换行import jiebatry:
    f = open('txt/2019年中央一号文件.txt','r',encoding="GBK")
    txt = f.read()
    f.close()
    ls = jieba.lcut(txt)
    d = {}
    for w in ls:
        d[w] = d.get(w, 0) + 1
    for k in d:
        if d[k] >= 50 and k !="n":
            print('"{}"出现{}次'.format(k,d[k]))except:
    print("文件打开错误")
4.星期转换:
#数字转星期weekStr = "星期一星期二星期三星期四星期五星期六星期日"weekId = eval(input("请输入星期数字(1-7):"))pos = (weekId - 1) * 3print(weekStr[pos: pos + 3])
5.自然常数处理:
#自然常数处理1:(原数学公式e=极限x趋近于无穷大时(1+1/x)的x次方 )x = 1024*1024*1024*1024  #假设x无穷大可以乘以很多的1024print(pow(1+1/x,x))#pow和下面的表达式等价代表(1+1/x)的x次方print((1+1/x)**x)#自然常数处理2:from random import *DARTS = 1024*1024count = 0for i in range(DARTS):
    x = uniform(1,2)
    y = uniform(0,1)
    if x*y < 1:
        count +=1e = pow(2,DARTS/count)print("{}".format(e))
5.文本清洗及统计:
#(1)这儿分析中国MOOC大学(分析网页HTML结构的方式)'''文本清洗及统计。统计在中国参与慕课mooc的大学有多少所学堂在线:http://www.xuetangx.com/partners中国大学:https://www.icourse163.org/university/view/all.htm好大学在线:https://www.cnmooc.org/school/view/list.mooc查看各网页html代码并保存在某个文本文件中'''fi = open('txt/中国慕课大学2019_3_24.txt', 'r', encoding='UTF-8') #打开文件ls=[] #声明空列表for line in fi: #在每行中遍历
    if "alt" in line: #研究html代码我们可以发现,大学名称在alt中,所以去判断html文本代码有alt的部分
        tokens = line.split('"') #html代码中任何一个大学名称都是有引号的,那我们可以通过"进行分隔成多段
        uname = tokens[-2]  #我们发现大学名称会出现在倒数第二个位置上出现,提取列表中['t                        n']
        # 初步数据清洗部分
        if "大学生" in uname:
            continue         #研究html代码我们会发现有些是大学生联盟不是高校就需要跳过
        if "大学" in uname or "学院" in uname:
            ls.append(uname) #判断名称是否包含 大学、学院,若包含就保存在ls列表中print(" ".join(ls))          #将所有大学名称以空格为分割打印出来print(len(ls))fi.close()#(2)这儿分析学堂在线(因为是直接在页面全选复制的,所以需要分析)'''文本清洗及统计。统计在中国参与慕课mooc的大学有多少所02学堂在线:http://www.xuetangx.com/partners'''fi = open('txt/学堂在线2019_3_25.txt', 'r', encoding='gbk') #打开文件u=set() #声明空集合'''注意:①这儿由于数据来源不像html源码那样的结构化就不考虑使用列表了②集合本身无序就意味着集合不可出现重复值,这就达到了去重的目的'''for line in fi: #在每行中遍历
    if "慕课" in line:
        continue
    if "大学" in line or "学院" in line:  #含有该行值的名称被增加到集合中
        u.add(line.strip("n "))  #strip("n")是去掉每行行尾换行符、空格等的干扰print(" ".join(u))print(len(u))fi.close()#(3)好大学在线:https://www.cnmooc.org/school/view/list.moocfi = open("txt/好大学在线2019_3_25.txt","r",encoding="utf-8")U=set()for line in fi:
    if "大学" in line or "学院" in line:
        U.add(line.strip("n"))print(" ".join(U))print(len(U))fi.close()

将上面在三大平台分析的结果用在下面这段统计代码中:

# coding=utf-8#将三大平台的高校数据粘贴到这ic='''北京大学 南京大学 浙江大学 复旦大学 北京航空航天大学 武汉大学 北京理工大学 中国农业大学 北京师范大学 中央民族大学 南开大学 天津大学 大连理工大学 吉林大学 哈尔滨工业大学 东北大学 同济大学 上海交通大学 华东师范大学 中国人民大学 东南大学 北京林业大学 中国科学技术大学 厦门大学 山东大学 中国海洋大学 华中科技大学 湖南大学 中南大学 国防科技大学 中山大学 华南理工大学 四川大学 重庆大学 电子科技大学 西安交通大学 西北工业大学 西北农林科技大学 兰州大学 台湾新竹“清华大学” 台湾新竹“交通大学” 台北医学大学 慈济大学 中原大学 广州大学 北京交通大学 北京工业大学 北京科技大学 北京化工大学 中国传媒大学 北京邮电大学 北京协和医学院 首都经济贸易大学 北京中医药大学 首都师范大学 首都体育学院 北京外国语大学 北京体育大学 北京语言大学 中央财经大学 对外经济贸易大学 国际关系学院 中央音乐学院 中国音乐学院 中国政法大学 华北电力大学 华北电力大学(保定) 中国石油大学(北京) 天津师范大学 河北科技大学 河北师范大学 保定学院 山西大学 太原理工大学 内蒙古大学 沈阳工业大学 大连海事大学 中国医科大学 渤海大学 沈阳师范大学 东北财经大学 东北师范大学 通化师范学院 黑龙江大学 哈尔滨工程大学 哈尔滨师范大学 上海大学 东华大学 华东理工大学 上海对外经贸大学 上海外国语大学 上海财经大学 上海体育学院 苏州大学 南京航空航天大学 南京理工大学 南京邮电大学 河海大学 南京农业大学 南京中医药大学 中国药科大学 中国人民解放军陆军工程大学 南京师范大学 江苏大学 杭州电子科技大学 浙江工业大学 浙江理工大学 杭州师范大学 温州大学 宁波大学 浙江工商大学 华侨大学 福州大学 福建农林大学 集美大学 福建师范大学 南昌大学 华东交通大学 江西师范大学 江西财经大学 中国石油大学(华东) 青岛科技大学 郑州大学 山东中医药大学 河南大学 武汉科技大学 中国地质大学(武汉) 武汉理工大学 华中农业大学 华中师范大学 湖北大学 中南财经政法大学 湖北汽车工业学院 湖南农业大学 湖南师范大学 衡阳师范学院 长沙师范学院 暨南大学 华南师范大学 广东技术师范大学 深圳大学 桂林电子科技大学 桂林理工大学 南宁师范大学 广西民族大学 西南交通大学 西南石油大学 成都信息工程大学 成都中医药大学 西南大学 四川师范大学 西华师范大学 西南财经大学 西南政法大学 成都工业学院 昆明理工大学 云南师范大学 西北大学 西安理工大学 西安电子科技大学 西安工业大学 陕西科技大学 西安工程大学 长安大学 陕西师范大学 西安外国语大学 第四军医大学 西安邮电大学 兰州交通大学 河西学院 上海工程技术大学 浙江万里学院 长沙学院 成都大学 中国人民警察大学 大连大学 中国矿业大学(北京) 北京联合大学 浙江财经大学 湖北经济学院 山东工商学院 重庆工商大学 湖南第一师范学院 南昌工学院 台湾云林科技大学 国家开放大学 中国社会科学院大学 贵州理工学院 温州医科大学 大连工业大学 北京现代音乐研修学院 长江大学 上海师范大学 湘潭大学 河北机电职业技术学院 杭州科技职业技术学院 内蒙古艺术学院 青海交通职业技术学院 新余学院 天津医科大学 天津职业大学 中国计量大学 中国矿业大学 金陵科技学院 南京特殊教育师范学院 南京审计大学 江苏师范大学 安阳工学院 河南中医药大学 河南科技大学 河南农业大学 郑州轻工业大学 河北工业大学 浙江大学城市学院 青海大学 海南师范大学 西安科技大学 海南经贸职业技术学院 河北医科大学 长春师范大学 广西大学 内蒙古民族大学 大连海洋大学'''xt='''德克萨斯大学奥斯汀分校 河北工业大学 哈佛大学 北京林业大学 东京大学 云南农业大学 中国人民解放军理工大学 哈尔滨工程大学 香港科技大学 中国石油大学(北京) 韦尔斯利大学 大叶大学 北京服装学院 台湾大叶大学 西南交通大学 西安交通大学 北京交通大学 河北师范大学 清华大学 台北艺术大学 首都师范大学 昆明医科大学 浙江金融职业学院 电子科技大学 河南科技大学 台湾云林科技大学 国防科技大学 昆明理工大学 北京语言大学 武汉理工大学 贵阳中医学院 哥伦比亚大学 南京理工大学 加州大学伯克利分校 香港理工大学 苏黎士联邦理工大学 长安大学 乔治城大学 昆士兰大学 麦吉尔大学 莱斯大学 集美大学 中国人民解放军边防学院 华中科技大学 瑞士洛桑联邦理工学院 瑞典卡罗林斯卡学院 福建农林大学 辽宁对外经贸学院 浙江纺织服装职业技术学院 暨南大学 宁波大学 加州理工学院 麻省理工学院 深圳职业技术学院 北京体育大学 黑龙江大学 台湾宜兰大学 贵州中医药大学 达特茅斯学院 北京师范大学 台湾师范大学 中南财经政法大学 印度理工学院孟买分校 台湾慈济大学 多伦多大学 国际关系学院 浙江农林大学 波士顿大学 西安工程大学 云南大学 郑州大学 华盛顿大学 北京大学 华东理工大学 宁波城市职业技术学院 南昌大学 中国人民解放军陆军工程大学 防灾科技学院 北京航空航天大学 山东大学 西安电子科技大学 武汉大学 北京邮电大学 温州大学 荷兰代尔夫特理工大学 同济大学 台湾静宜大学 中国农业大学 吉林大学 南京大学 伯克利音乐学院 复旦大学 邢台学院 陕西工业职业技术学院 浙江大学 鲁汶大学 云南民族大学 洛阳理工学院 中国科学技术大学 京都大学 江苏大学 兰州大学 慕尼黑工业大学 台湾清华大学 咸阳师范学院 中国人民大学 哈尔滨工业大学 瓦赫宁根大学 湖北大学 库伯联盟学院 台湾中原大学 美国戴维森学院 斯坦福大学 东北大学 燕山大学 中国传媒大学 重庆电子工程职业学院 宁波大红鹰学院 香港大学 康奈尔大学 东南大学 广州中医药大学 贵州理工学院 澳洲国立大学 中央民族大学 北京理工大学 南开大学 英属哥伦比亚大学 红河学院 重庆大学 人民大学 陆军边海防学院 苏州大学 华东师范大学 大连海事大学 华南理工大学 芝加哥大学 台湾交通大学 阿德莱德大学 台湾空中大学 石河子大学 中南大学 首尔国立大学 西北工业大学 中国创业学院 青海师范大学 青海大学 北京工业大学 湖州师范学院'''cm='''哈尔滨工程大学 牡丹江大学 国家开放大学 百度云智学院 上海应用技术大学 宁夏大学新华学院 南通大学 海德堡大学孔子学院 台湾宜兰大学 华侨大学 江苏大学 大连交通大学 香港中文大学  墨尔本大学 郑州大学 海南大学 华南理工大学软件学院 上海财经大学 温州大学 上海立信会计学院 广东工业大学 上海政法学院 上海科技大学 安徽建筑大学 西安理工大学 贵州大学 华东理工大学 成均馆大学 北京语言大学 复旦大学 枣庄学院 上海对外经贸大学 东北师范大学信息与软件工程学院 江苏开放大学 示范性软件学院联盟 新竹清华大学 香港城市大学 云林科技大学 呼伦贝尔学院 云南财经大学中华职业学院 金陵科技学院 西安交通大学 长春工业大学 华东师范大学 北京大学 黑龙江东方学院 湖南师范大学 辽宁何氏医学院 同济大学 广州中医药大学 暨南大学 安徽新华学院 齐齐哈尔大学 兰州大学 云南财经大学 桃园中原大学 宁夏大学 黑龙江外国语学院 重庆大学城联盟 华南师范大学 上海工程技术大学 哈尔滨工业大学 上海师范大学 云南中医学院 东华大学 长春大学 上海戏剧学院 海南医学院 东北农业大学 云南农业大学 太原科技大学 哈尔滨石油学院 曲靖师范学院 黑龙江大学 上海商学院 重庆护理职业学院 广州大学 中国石油大学(华东) 陕西科技大学 华南理工大学 上海交通大学 华东政法大学 中国科学技术大学 对外经济贸易大学 新竹交通大学 淡江大学 中国高水平大学慕课联盟官方网站  香港中文大学 上海音乐学院 昆明医科大学 上海交通大学慕课研究院 台北医学大学 青岛理工大学 宁波大学 上海中医药大学 上海第二工业大学 华北科技学院 新疆农业大学 黑龙江工程学院 长江大学'''U = set() #创建集合U |=set(ic.split()) #使用split()方法将字符串分割形成列表U |=set(xt.split())U |=set(cm.split())ls = list(U)ls.sort() #根据字符关系进行有序排序print(" ".join(ls))print(len(ls))
6.Python文件操作:
#输出并打印文件内容
fo = open("output.txt","w+")
ls = ["中国","法国","美国"]
fo.writelines(ls)
fo.seek(0) #当fo.writelines(ls)执行后文件已经输出且此时指针在文件末尾,需要使用seek(0)将指针调到开头位置
for line in fo:  #指针被调整到开始位置后,使用for ···进行逐行遍历
    print(line)
fo.close()
7.Python脚本实现自动安装第三方库:
#BatchInstall.pyimport oslibs = {"numpy","matplotlib","pillow","sklearn","requests",        "jieba","beautifulsoup4","wheel","networkx","sympy",        "pyinstaller","django","flask","werobot","pyqt5",        "pandas","pyopengl","pypdf2","docopt","pygame"}try:
    for lib in libs:
        os.system("pip install " + lib)#利用os库函数启动pip命令进行安装,将pip install换为pip download就变成下载不安装了
    print("Successful")except:
    print("Failed Somehow")
8.词云的使用:
#基础版词云import jiebaimport wordcloudtxt = "程序设计语言是计算机能够理解和识别用户操作意图的一种交互体系,它按照特定规则组织计算机指令,使计算机能够自动进行各种运算处理。"w = wordcloud.WordCloud( width=1000,    font_path="msyh.ttc",height=700) #设置词云的参数,这里有宽度、字体、高度w.generate(" ".join(jieba.lcut(txt))) #用jieba统计词语在以空格分开w.to_file("pywcloud.png") #输出词云图片

三大名著转换为词云:

# for WordCloudimport jieba #导入三方jieba库import wordcloud #导入三方worldcloud库names = {"txt/红楼梦.txt", "txt/三国演义.txt", "txt/水浒传.txt", "txt/西游记.txt"}for name in names:
    f = open(name, "r", encoding="utf-8") #读取全文
    t = f.read() #将文本读入到程序
    f.close()  
    ls = jieba.lcut(t)  #精确模式
    txt = " ".join(ls) 按空格对文本进行添加
    w = wordcloud.WordCloud(font_path = "msyh.ttc",                            width = 1000, height = 700     )
    w.generate(txt) 
    w.to_file(name.split(".")[0] + ".png")

三大名著转词云图片模板:

# for WordCloudimport jiebaimport wordcloudfrom scipy.ndimage import imreadmask = imread("img/sun.png")  #添加图片模型names = {"txt/红楼梦.txt", "txt/三国演义.txt", "txt/水浒传.txt", "txt/西游记.txt"}for name in names:
    f = open(name, "r", encoding="utf-8")
    t = f.read()
    f.close()
    ls = jieba.lcut(t)
    txt = " ".join(ls)
    w = wordcloud.WordCloud(font_path = "msyh.ttc",                            width = 1000, height = 700,mask = mask     )
    w.generate(txt)
    w.to_file(name.split(".")[0] + "2.png")
9.使用QRcode库让字符串转图片实例
#安装pip install pipenv#使用import qrcodeimg = qrcode.make('leo')img.save("leoblog.png")
10.简要分析写作风格
#词频角度分析作者风格(用词上):字频+词频
作者最喜欢用什么子,什么词

#将文件名装入列表
fnames = {"飞狐外传", "雪山飞狐", "连城诀", "天龙八部", "射雕英雄传", "白马啸西风", "鹿鼎记", 
"笑傲江湖", "书剑恩仇录", "神雕侠侣", "侠客行", "倚天屠龙记", "碧血剑", "鸳鸯刀"}
def PrintJYChars(fname):  #输出频率高的前二十个字符
    txt = open(fname, "r").read() #读取文件
    d = {} ; cnt = 0 ; rst = "" #采用字典统计
    for w in txt: #遍历字符
        cnt += 1
        d[w] = d.get(w, 0) + 1
    for w in ",。“”:?n 「」∶": #去掉标点,避免del删去不存在的键值报错使用try-catch方法
        try:
            del d[w]
        except:
            pass
    ls = list(d.items())
    ls.sort(key=lambda x:x[1], reverse=True) #将字典变为二元元组列表展开
    for i in range(20): #将前二十个数提取出来形成字符串
        word, count = ls[i]
        rst += word
    print(rst)
    return rst

txt = PrintJYChars("天龙八部" + ".txt")
A = set(txt.split("n")[-1])
for fname in fnames: #遍历文件
    txt = PrintJYChars(fname + ".txt")
    A &= set(txt.split("n")[-1]) #将天龙八部与其他作品进行交操作
print(A)


词频统计:

#飞雪连天射白鹿 笑书神侠倚碧鸳
import jieba
fnames = {"飞狐外传", "雪山飞狐", "连城诀", "天龙八部", "射雕英雄传", "白马啸西风", "鹿鼎记", 
          "笑傲江湖", "书剑恩仇录", "神雕侠侣", "侠客行", "倚天屠龙记", "碧血剑", "鸳鸯刀"}

def PrintJYWords(fname):
    txt = open(fname, "r").read()
    d = {}
    cnt = 0
    rst = ""
    for w in jieba.lcut(txt):
        cnt += 1
        if len(w) == 1:
            continue
        d[w] = d.get(w, 0) + 1
    ls = list(d.items())
    ls.sort(key=lambda x:x[1], reverse=True)
    for i in range(50):
        word, count = ls[i]
        rst += word + ","
    return rst

txt = PrintJYWords("天龙八部" + ".txt")
A = set(txt.strip(",").split(","))
for fname in fnames:
    txt = PrintJYWords(fname + ".txt")
    A &= set(txt.split(","))
print(A)

11.以时间为名称创建txt文件

#coding=utf-8
import os
import time
#获取时间
def getTime():
    return time.strftime("%Y%m%d%H%M%S",time.localtime())
#判断文件夹是否存在
def ifExists(Boolean):
    Boolean = os.path.exists("D:\pythonFileDemo\")
    if Boolean:
        print("文件夹存在哦!")
    else:
        os.mkdir("D:\pythonFileDemo\")
#生成文件:
def makeFile(num):
    for i in range(num):
        filename = "D:\pythonFileDemo\" + getTime()+ ".txt"
        f = open(filename,'w')
        f.write(filename)
        f.close()
        time.sleep(1)

number = int(input("请输入创建文件的个数"))
makeFile(number)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/219582.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号