Python123(字典)5.13

Python字典


用户转账


描述

以用户登陆的程序作为基础,让我们来模拟用户之间的转账。‪‪‪‪‪‫‪‪‪‪‪‫‫‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‪

本题默认已使用合法的用户名 “aaa” 登陆,请将对应账户内的金额转给其他合法用户。‪‪‪‪‪‫‪‪‪‪‪‫‫‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‪

要求模拟过程(需求):‪‪‪‪‪‫‪‪‪‪‪‫‫‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‪

1. 输入目标账号和转账金额,如果目标用户存在,判断转账金额是否大于账户原始金额,完成转账"Tranfer Success"或者余额不足“Insufficient Funds”。‪‪‪‪‪‫‪‪‪‪‪‫‫‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‪

2. 如果目标用户不存在,给出信息提示"Wrong User"。‪‪‪‪‪‫‪‪‪‪‪‫‫‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‪

3. 作为模拟程序,如果转账成功后我们需要输出两个用户的账户金额来查看是否转账成功。‪‪‪‪‪‫‪‪‪‪‪‫‫‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‪

账户 密码 初始余额

aaa 123456  10000

bbb 888888  5000

ccc 333333  3000

dic={"aaa":["123456",10000],"bbb":["888888",5000],"ccc":["333333",3000]}


输入

输入目标账号和转账金额


‪‪‪‪‪‫‪‪‪‪‪‫‫‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‪

代码

复制代码
dic={"aaa":["123456",10000],"bbb":["888888",5000],"ccc":["333333",3000]} #题目中给出的字典
ls = ['bbb','ccc'] #定义一个储存非aaa用户的列表
counter = input() #输入转入的用户
if counter not in ls:
    print('Wrong User')#判断是否是转账给'aaa' or 'bbb'
else:
    zz = int(input()) #转账金额必须在判断用户名是否存在后输入
    if zz > 10000 or zz < 0: # if zz > dic['aaa']:
        print('Insufficient Funds')#判断转账金额是否超过'aaa'账户的金额或者为负数,此题判断负数的步骤可有可无
    else:
        print('Tranfer Success')
        print('aaa:{}'.format(10000-zz))
        if counter == 'bbb':
            print('bbb:{}'.format(dic[counter][1]+zz))
        elif counter == 'ccc':
            print('ccc:{}'.format(dic[counter][1] + zz))#注意:可以使用format进行输出,也可以使用其他简单暴力的方式
复制代码

 

 

用字典来统计词频


描述

使用freqDict = eval(input()) 读入单词词频字典,再读入一段英文,更新词频字典后输出。


‪‪‪‪‪‫‪‪‪‪‪‫‫‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‪

输入格式

输入为两行,第一行是一个字典,形如{'hello': 12, 'world': 10},其中存储初始的词频数据。第二行是一段英文文本。


‪‪‪‪‪‫‪‪‪‪‪‫‫‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‪

输出格式

输出一行,直接打印输出更新后的字典。


代码

复制代码
freqDict = eval(input()) #输入一个初始字典
sen = input().split() #用split()将字符串以空格分开,并转化为列表 注意:不能使用split(' ')
if sen == []: #判断输入的字符串是否为空
    print(freqDict)
else:
    for i in sen: #遍历列表sen里的每一个元素
        if i in freqDict: 
            freqDict[i]+= 1#如果i在原字典里,则原字典i对应的值+1
        else:
            freqDict[i] = 1#否则加入i,并为i对应的值赋值1
  print(freqDict)
复制代码

 

唯一字符


‪‪‪‪‪‫‪‪‪‪‪‫‫‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‪

描述

给定一个字符串,找到它的第一个不重复的字符,输出它的索引。如果不存在这种字符或空串,则返回 -1。‪‪‪‪‪‫‪‪‪‪‪‫‫‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‪

本题字符串中只包含小写字母。


‪‪‪‪‪‫‪‪‪‪‪‫‫‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‪


输入

python


‪‪‪‪‪‫‪‪‪‪‪‫‫‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‪


输出

0


代码

复制代码
from collections import * #引用collections
str1 = input()
ls = list(str1)
Counter = Counter(ls) #用Counter(collections中的函数)将ls中的元素统计在字典Counter中
if str1 == '':
    print(-1)#判断字符串是否为空
else:
    for i in range (len(str1)):  #循环str1的长度次数
        if Counter[ls[i]] == 1:
            print(i)
            break#如果在字典Counter中,str1的i个元素对应的值为1,则输出i,然后跳出循环
    else:
        print(-1)
复制代码

 

 (关于collections的介绍  https://www.cnblogs.com/Atsuhiro/p/14779204.html

 

排序输出字典中数据


描述

有两个字典数据如下:

dic1 = {'Tom':21,'Bob':18,'Jack':23,'Ana':20}

dic2 = {'李雷':21,'韩梅梅':18,'小明':23,'小红':20}‪‪‪‪‪‫‪‪‪‪‪‫‫‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‪

请将dic1 按键的大小升序排序,将dic2按值的大小升序排序,输出dic1的前n个键的内容,输出dic2前n个键值对。当n大于元素个数时,按实际元素数量输出。


‪‪‪‪‪‫‪‪‪‪‪‫‫‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‪

输入格式

输入一个正整数n


‪‪‪‪‪‫‪‪‪‪‪‫‫‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‪

输出格式

输出指定个数的排序后的元素


代码

复制代码
dic1 = {'Tom':21,'Bob':18,'Jack':23,'Ana':20}
dic2 = {'李雷':21,'韩梅梅':18,'小明':23,'小红':20}
dic1 = dict(sorted(dic1.items(),key = lambda x:x[0])) #给dic1中的关键词(key)排序,再将转化后的列表转化为字典
list_dic2 = sorted(dic2.items(),key = lambda x:x[1]) #给dic2中的数据排序,结果为字典
n = int(input())
ls = []
for i in dic1.keys(): #遍历dic1中的关键词(key)
    ls.append(i)
print(ls[:n])
print(list_dic2[:n])
复制代码

(用到匿名函数,参见 https://www.cnblogs.com/Atsuhiro/p/14718783.html)

 

走马灯数


走马灯数那题 直接999999/7就好了

 

代码不唯一,仅供参考,有疑问欢迎批评指正


__EOF__

本文作者柏木カケル
本文链接https://www.cnblogs.com/kakeru-kashihagi/p/14765649.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   柏木カケル  阅读(1180)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示