用Python分析新冠疫情数据

代码部分

#建立一个省/市的类
class Province :
    def __init__(self,Name,New,Diagnosis,Cured,Dead):#双下划线
            self.Name=Name
            self.New=New
            self.Diagnosis=Diagnosis
            self.Cured=Cured
            self.Dead=Dead
    def input(self):
            self.Name=input()
            self.New,self.Diagnosis,self.Cured,self.Dead=map(int,input().split())
            
#用字典建立多个对象
d={}

def nation():
    print("请录入34个省级行政区的疫情信息:\n省 新增 确诊 治愈 死亡")
    for i in range(34):
        d[i]=Province("省份",0,0,0,0)    
    total=0
    total1=0
    total2=0
    total3=0
    for i in range(34):
        d[i].input()
        total=total+d[i].Diagnosis
        total1=total1+d[i].Cured
        total2=total2+d[i].Dead
        total3=total3+d[i].New
    print("---------------------------------------------------------------")
    print("全国\n新增:",total3,"\n确诊:",total,"\n治愈:",total1,"\n死亡:",total2)
    print("---------------------------------------------------------------")
    print("省\t新增\t确诊\t治愈\t死亡\t占比\t治愈率\t死亡率")
    for i in range(0,34):
        a='{:.2%}'.format(d[i].Diagnosis/total)
        b='{:.2%}'.format(d[i].Cured/d[i].Diagnosis)
        c='{:.2%}'.format(d[i].Dead/d[i].Diagnosis)
        #c=round(d[i].Dead/total2*100,2)
        print(d[i].Name,d[i].New,d[i].Diagnosis,d[i].Cured,d[i].Dead,a,b,c,sep='\t')
    print("---------------------------------------------------------------")
    j=(total1-d[0].Cured)/(total-d[0].Diagnosis)
    k=(total2-d[0].Dead)/(total-d[0].Diagnosis)
    e='{:.2%}'.format((total-d[0].Diagnosis)/total)
    f='{:.2%}'.format(j)
    g='{:.2%}'.format(k)
    print("除湖北",(total3-d[0].New),total-d[0].Diagnosis,total1-d[0].Cured,total2-d[0].Dead,e,f,g,sep='\t')
    
def hubei():
    print("请录入17个市的疫情信息:\n市 新增 确诊 治愈 死亡")
    for i in range(18):
        d[i]=Province("市",0,0,0,0)     
    total=0
    total1=0
    total2=0
    total3=0 
    for i in range(18):
        d[i].input()
        total=total+d[i].Diagnosis
        total1=total1+d[i].Cured
        total2=total2+d[i].Dead
        total3=total3+d[i].New
    print("---------------------------------------------------------------")
    print("湖北\n新增:",total3,"\n确诊:",total,"\n治愈:",total1,"\n死亡:",total2)
    print("---------------------------------------------------------------")
    print("市\t新增\t确诊\t治愈\t死亡\t占比\t治愈率\t死亡率")
    for i in range(0,18):
        a='{:.2%}'.format(d[i].Diagnosis/total)
        b='{:.2%}'.format(d[i].Cured/d[i].Diagnosis)
        c='{:.2%}'.format(d[i].Dead/d[i].Diagnosis)
        #c=round(d[i].Dead/total2*100,2)
        print(d[i].Name,d[i].New,d[i].Diagnosis,d[i].Cured,d[i].Dead,a,b,c,sep='\t')
    print("---------------------------------------------------------------")
    j=(total1-d[0].Cured)/(total-d[0].Diagnosis)
    k=(total2-d[0].Dead)/(total-d[0].Diagnosis)
    e='{:.2%}'.format((total-d[0].Diagnosis)/total)
    f='{:.2%}'.format(j)
    g='{:.2%}'.format(k)
    print("除武汉",(total3-d[0].New),total-d[0].Diagnosis,total1-d[0].Cured,total2-d[0].Dead,e,f,g,sep='\t')
    
#main函数
print("---------------------------------------------------------------")
print("新冠肺炎疫情分析系统\n1)全国分析\n2)湖北分析\n请选择要进行的操作:")
case=input()
print(case)
if case=="1":#双引号  
    nation()
else:
    hubei()

用户界面

数据来源及数据处理

数据来源:百度-最新疫情地图实时数据报告

数据处理:在文本文档中将tab替换为空格,然后将“-”替换为“0”,复制粘贴即可。

数据展示

2月23日数据

总结

1.无需对类的各种属性进行声明

2.构造函数__init__()是双下划线,不是单下划线。

3.self相当于C++的this指针,类的成员函数第一个参数必须是self

4.Python没有结构体,可以用类来代替。难点是创建多个类的对象。

总不能一个一个手动创建吧,那多麻烦。可以用字典来存放。

字典键(key)存放对象名,字典值(value)存放对象。

5.由于Python是传对象引用,函数外数字类型的total是按值传递,函数不能改变

函数外部的全局变量total的值,所以只能在函数内部换用局部变量。

6.字符串用双引号

7.Python的for循环和C++的不同

//Python
for i in range(34)
//C++
for(int i=0;i<34;i++)

8.Python用缩进代替了C++的括号,并且省略了分号,编写时要特别注意。

9.括号过多时,可以把其中一部分整体取出来用字母替代。

10.输出一行数据时,各数据的间隔可以用空格也可以用tab,设置方法:print()函数中末尾加sep='\t'或sep' '。

11.输出百分数的格式:

a='{:.2%}'.format(一个小数)//控制在小数点后两位

12.Python没有Switch-Case结构。

13.还好昨天复习了一下C++的类和对象,不然都忘记了。不过,这个程序好像不一定要用类来写吧,可能我写复杂了。

已标记关键词 清除标记
92讲视频课+16大项目实战+源码+¥800元课程礼包+讲师社群1V1答疑+社群闭门分享会=99元   为什么学习数据分析?       人工智能、大数据时代有什么技能是可以运用在各种行业的?数据分析就是。       从海量数据中获得别人看不见的信息,创业者可以通过数据分析来优化产品,营销人员可以通过数据分析改进营销策略,产品经理可以通过数据分析洞察用户习惯,金融从业者可以通过数据分析规避投资风险,程序员可以通过数据分析进一步挖掘出数据价值,它和编程一样,本质上也是一个工具,通过数据来对现实事物进行分析和识别的能力。不管你从事什么行业,掌握了数据分析能力,往往在其岗位上更有竞争力。    本课程共包含五大模块: 一、先导篇: 通过分析数据分析师的一天,让学员了解全面了解成为一个数据分析师的所有必修功法,对数据分析师不在迷惑。   二、基础篇: 围绕Python基础语法介绍、数据预处理、数据可视化以及数据分析与挖掘......这些核心技能模块展开,帮助你快速而全面的掌握和了解成为一个数据分析师的所有必修功法。   三、数据采集篇: 通过网络爬虫实战解决数据分析的必经之路:数据从何来的问题,讲解常见的爬虫套路并利用三大实战帮助学员扎实数据采集能力,避免没有数据分析的尴尬。   四、分析工具篇: 讲解数据分析避不开的科学计算库Numpy、数据分析工具Pandas及常见可视化工具Matplotlib。   五、算法篇: 算法是数据分析的精华,课程精选10大算法,包括分类、聚类、预测3大类型,每个算法都从原理和案例两个角度学习,让你不仅能用起来,了解原理,还能知道为什么这么做。
©️2020 CSDN 皮肤主题: 点我我会动 设计师:白松林 返回首页