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 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 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】