Zeratullll 2022-11-17 17:52 采纳率: 100%
浏览 153
已结题

《五个python基础的问题》(学校布置的zy,只剩这几个不会了,来人看一下)



```python


1.字典翻转】用户输入一个字典格式的字符串,利用eval()函数将字符串转换为字典,然后反转其中键值对输出。‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬即,读入字典key:value模式,输出value:key模式。如果输入不正确,提示输入错误。(try…except…)‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬

【2. 游戏编程】很多人都玩过"石头-剪子-布"的猜拳游戏,它又叫"Rochambeau"。规则是:你和你的对手在同一刻做出特定的手势,这个手势必须是石头、剪子、布中的一种手势。当满足以下规则时产生胜者。
布包石头.
石头砸剪子,
剪子剪破布.
现分别使用两个List:
(1)guess_list = ["石头", "剪刀", "布"]
(2)win_combination = [["布", "石头"], ["石头", "剪刀"], ["剪刀", "布"]]
其中,guess_list包括猜拳的种类,win_combination包含获胜规则。
请你编程操纵这两个list,实现“人-机”猜拳游戏。用户输入一个选项,计算机给出一个随机选项,然后由程序来判断谁是胜利者或者平手。

【3.】用水量文件“water.txt”的第一列为账号,后面是每个月的用水量(后一个数-前一个数),共12个月。每立方米需付1.05元。一行代表一户一年的数据。编程计算每户一年的水费。
(写出程序源码,并粘贴运行结果截图)
提示:1、先打开文件(用with…as…方式),用for…in…方式遍历文件中的每一行(逐行遍历,逐行处理的方式);2、每行内容构成一个字符串,利用strip函数去掉字符串末尾的’\n’字符,利用split函数将字符串分隔为列表;3、设置变量sum1=0,利用for循环,依次求两个相邻数据(注意:需要进行类型转换)的差,并将其叠加到sum1上,遍历结束后sum1存储的是某用户今年用水总量;4、用水总量*1.05求出需要交的水费。

【4.】文件data.txt中有若干整数,所有整数之间使用英文逗号分隔,编写程序读取所有整数,将其按升序排序后再写入文本文件data_asc.txt中。(写出程序源码,并粘贴运行结果截图)
提示:1、先打开文件(用with…as…方式),建立空列表lst,用于将每一行处理后的内容添加进去;2、用for…in…方式遍历文件中的每一行(逐行遍历,逐行处理的方式),每行内容构成一个字符串,利用strip函数去掉字符串末尾的’\n’字符,利用split函数将字符串分隔为列表;3、将每行处理产生的列表添加到已建立的列表lst中(思考使用extend还是append);4、将列表lst中的每个元素由字符串类型转换为整型;5、对列表lst排序;6、用join函数将列表中的每个元素用‘,’连接成一个字符串(用join函数连接列表中每个元素时,列表元素必须为字符串类型,因此需要将列表中的每个元素由整型转换为字符串);7、将连接好的字符串利用write函数写入文件data_asc.txt中。

【5.】请统计hamlet.txt文件中出现的英文单词情况,统计并输出出现最多的10个单词,注意:‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬(1) 单词不区分大小写;‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬(2) 请在文本中剔除如下特殊符号:!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~;(3) 输出出现最多的10个单词,每个单词一行;‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬(4) 将统计结果再写入文本文件hamlet_data.txt中。‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬
提示:1、先打开文件(用with…as…方式),利用read函数将文件中的内容读到一个大字符串中;2、利用lower函数将大字符串中的所有字符改为小写;3、利用replace函数将字符串中的特殊字符替换掉(替换为空格或者空字符串);4、利用split函数将字符串分隔为列表;5、建立空字典,遍历列表,统计每个单词出现的次数;6、利用sorted函数对列表进行排序;7、输出出现最多的10个单词;8、将统计结果写入文本文件hamlet_data.txt中。
  • 写回答

2条回答 默认 最新

  • honestman_ 2022-11-17 18:20
    关注

    第一题:

    try:
        dic = eval(input())
        dic_s = {value: key for key, value in dic.items()}
        print(dic_s)
    except:
        print('输入错误')
    
    

    第二题:

    import random
    guess_list = ["石头", "剪刀", "布"]
    win_combination = [["布", "石头"], ["石头", "剪刀"], ["剪刀", "布"]]
    while 1:
        inp = input("请猜拳:")
        com = random.choice(guess_list)
        if inp == com:
            print("平手")
        elif [inp, com] in win_combination:
            print('你赢了')
        else:
            print('你输了')
    

    第三题:

    with open("water.txt", 'r') as f:
        for line in f.readlines():
            data_list = line.strip().split(',')  # 这里逗号为分割两列的字符,我看不到文件不知道是啥,是啥改成啥就行了
            sum1 = 0
            for num in data_list[1:]:
                sum1 += int(num)
            print(sum1 * 1.05)
    
    
    

    四五

    # 第四题
    with open('data.txt', 'r') as f:
        nums = [int(temp) for temp in f.read().split(',')]
        nums = sorted(nums, reverse=False)
        nums = [str(temp) for temp in nums]
    with open('data_asc.txt', 'w') as f:
        f.write(','.join(nums))
    
    
    # 第五题
    with open('hamlet.txt', 'r') as f:
        data = f.read().lower()
    s = '!"#$%&()*+,-./:;<=>?@[]^_‘{|}'
    for t in s:
        data = data.replace(t, ' ')
    
    data_list = data.split()
    dic = {}
    for word in data_list:
        dic[word] = dic.get(word, 0) + 1
    dic = sorted(dic.items(), key=lambda x:x[1], reverse=True)
    with open('hamlet_data.txt', 'w') as f:
        for i in dic[:10]:
            print(i)
            f.write(str(i) + '\n')
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月26日
  • 已采纳回答 11月18日
  • 创建了问题 11月17日

悬赏问题

  • ¥20 蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏