SDUT:Python实验七——文件 主观题(参考答案)

7-1.有一个英文文件"example.txt".编写一个程序把大写字母变小写,小写字母变大写,其他字符不变. 结果写入文件"result.txt"。@程序压缩后(zip)以文件形式上传!

example.txt格式:

ABx,CJacj@ghbNCBlBbxbNCqqk

result.txt格式:

abX,cjACJ@GHBncbLbBXBncQQK
x=""
with open("example.txt","r") as f:
    while 1:
        s = f.readline()
        if not s: break
        for i in s:
            if i.isupper():
                x += i.lower()
            elif i.islower():
                x += i.upper()
            else: x += i
with open("result.txt","w") as g:
    g.write(x)
print("成功")

7-2.统计文本文件"letter.txt"中各类字符个数:分别统计字母( 大小写不区分),数字及其他字符的个数。@程序压缩后(zip)以文件形式上传!

lrtter.txt格式:

12scn3p@vniuy8#

输出:

9 4 2

num1,num2,j=0,0,0
with open("letter.txt","r") as f:
    while 1:
        s=f.readline()
        if not s:break
        for i in s:
            j+=1
            if i.isalpha(): num1+=1
            elif i.isdigit(): num2+=1
print(num1,num2,j-(num1+num2))

7-3.编程实现词汇表,计算每一个单词出现的次数,大小写不区分,输出到"dic.txt" 文件保存。
程序压缩后(zip)以文件形式上传!

dic={}
fo = open("dic.txt","w")
with open("freedom.txt","r",encoding="utf-8") as f:
    while 1:
        s=f.readline()
        if not s:break
        s=s.lower()
        for i in s:
            if i.isalpha()==False:
                s=s.replace(i," ")
        s=list(s.split())
        for i in s:
            if i in dic:
                dic[i]+=1
            else:
                dic[i]=1
for k,v in dic.items():
    l=k+":"+str(v)+"\n"
    fo.write(l)

7-4. 用水量文件"water.txt"的第一列为账号,下面是每个月的用水量(后一个数-前一个数),共十二个月。每立方米需付1.05元。编程计算每户一年的水费,结果保存在fee.txt文件中。程序和结果文件压缩后(zip格式)以文件形式上传!

water.txt格式如下:
0000359333 772 789 806 847 880 901 950 991 1022 1043 1064 1089 1114
0000359305 121 132 145 156 168 179 192 206 219 230 246 258 273
0000359708 1008 1046 1102 1167 1209 1255 1311 1362 1407 1453 1512 1563 1604
0000359504 541 567 590 622 651 689 701 732 758 775 796 814 847
0000359209 401 412 441 466 479 490 508 522 541 572 603 637 666

fee.txt格式如下(保留2位小数):
0000359333 359.10
0000359305 159.60
0000359708 625.80
0000359504 321.30
0000359209 278.25

dic={}
fo = open("fee.txt","w")
with open("water.txt","r") as f:
    while 1:
        num=0
        s=f.readline()
        if not s:break
        x=s[0:10]
        s=s.split()
        for i in range(1,len(s)-1):
            num+=int(s[i+1])-int(s[i])
        num*=1.05
        num=round(num,2)
        dic.update({x:num})
with open("fee.txt","w") as g:
    for k, v in dic.items():
        print("%s %.2f"%(k,v),file=g)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值