python练习题:程序员问卷调查

任务描述

题目文件中保存来自约60000条程序员的问卷调查记录(部分数据),数据来源:2020 Stack Overflow Developer Survey‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

调查问题为:

 

文件中数据格式为: 每行数据分为两部分,调查编号和工作描述 题目提供一个fopen函数打开该文件,将数据存入列表并返回。

  1. #不允许修改。fopen函数打开文件,并返回包含文件数据一个列表ls,
  2. def fopen(name):
  3. ls=[]
  4. with open(name,'r',encoding = 'UTF-8') as f:
  5. for i in f.readlines()[1:]:
  6. ls.append(i.strip().split(','))
  7. return ls
  8. def fun(t): #自定义函数完成相关功能,函数名或形参或函数数量可自行修改
  9. ... ...
  10. ... ...
  11. def ...
  12. lt = fopen('survey.csv') #不允许修改,打开题目文件,并将返回的数据列表赋值给lt

返回列表形式为: [['1', 'I am a developer by profession'], ['2', 'I am a developer by profession'], ['3', 'I code primarily as a hobby'], ['4', 'I am a developer by profession'], ['5', '"I used to be a developer by profession', ' but no longer am"'], ... ...] 请输入下列分类,统计问卷数据中下列各项分类的记录条数:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

分类 回答 程序员 ‘I am a developer by profession’ 程序爱好者 ‘I code primarily as a hobby’ 程序初学者 ‘I am a student who is learning to code’ 编程相关者 ‘"I am not primarily a developer, but I write code sometimes as part of my work"’ 非程序员 ‘"I used to be a developer by profession, but no longer am"’ 空白 ‘NA’ 如果输入为'记录',输出所有记录条数‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

如果不是以上的输入,则输出‘错误输入’

输入输出示例‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输入输出示例仅为格式示例,与实际测试数据无关

输入输出
示例 1成员错误输入
示例 2程序爱好者程序爱好者:23457条
示例 3记录总计:66887条
示例 4空白空白:4567条

#不允许修改。fopen函数打开文件,并返回包含文件数据一个列表ls,
def fopen(name):
    ls=[]
    with open(name,'r',encoding = 'UTF-8') as f:
       for i in f.readlines()[1:]:
           ls.append(i.strip().split(','))
    return ls
lt = fopen('survey.csv')   #不允许修改,打开题目文件,并将返回的数据列表赋值给lt

def fun(ls):
    person_no_hair=0
    like_no_hair=0
    new_no_hair=0
    rele_no_hair=0
    no_no_hair=0
    kong=0
    for i in ls:
        if i[1]=='I am a developer by profession':#程序员
            person_no_hair+=1
        elif i[1]=='I code primarily as a hobby':#程序爱好者
            like_no_hair+=1
        elif i[1]=='I am a student who is learning to code':#程序初学者
            new_no_hair+=1
        elif i[1]=='"I am not primarily a developer':#编程相关者
            rele_no_hair+=1
        elif i[1]=='"I used to be a developer by profession':#非程序员
            no_no_hair+=1
        elif i[1]=='NA':
            kong+=1
    return [person_no_hair, like_no_hair, new_no_hair, rele_no_hair, no_no_hair,kong]

s=input()
l=fun(lt)
if(s=='程序员'):
    print(f"程序员:{l[0]}条")
elif(s=='程序爱好者'):
    print(f"程序爱好者:{l[1]}条")
elif(s=='程序初学者'):
    print(f"程序初学者:{l[2]}条")
elif(s=='编程相关者'):
    print(f"编程相关者:{l[3]}条")
elif(s=='非程序员'):
    print(f"非程序员:{l[4]}条")
elif(s=='空白'):
    print(f"空白:{l[5]}条")
elif(s=='记录'):
    print(f"总计:{sum(l)}条")
else:
    print("错误输入")

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值