头歌实践平台(Educoder):python练习十 字典练习

第1关 股票交易金额

f1=open("test/股票信息.csv","r",encoding="utf8")
gpzd={}
x=input("股票代码")
y=eval(input("股数"))
#代码开始
for line in f1:
    parts = line.strip().split(',')
    gpzd[parts[0]] = float(parts[2])
if x in gpzd:
    amount = gpzd[x] * y
    commission = round(amount * 0.003, 2)
    print(f"金额{amount:.2f}佣金{commission:.2f}")
else:
    print("代码错误")
#代码结束
f1.close() 

第2关 超市销售计算

txm=input("条形码")
sl=eval(input("数量"))
f1=open("test/超市商品.csv","r",encoding="utf8")
#代码开始
spzd = {}
next(f1)
for line in f1:
    parts = line.strip().split(',')
    spzd[parts[0]] = float(parts[5])
if txm in spzd:
    total_amount = round(spzd[txm] * sl, 2)
    print(f"金额{total_amount:.2f}")
else:
    print("条形码错误")
f1.close()
#代码结束

第3关 银行种类统计

f1=open("test/银行信息.csv","r",encoding="utf8")
#代码开始
category_count = {}
next(f1)
for line in f1:
    parts = line.strip().split(',')
    category = parts[-1]
    if category in category_count:
        category_count[category] += 1
    else:
        category_count[category] = 1
f1.close()
yhlb = sorted(category_count.items(), key=lambda item: item[1],reverse=True)
#代码结束
n=eval(input())
for x in yhlb[:n]:
    print(x[0],x[1])

第4关 国债收益计算

import csv
gzbm=input("国债编号")
je=eval(input("金额"))
f1=open("test/国债信息.csv","r",encoding="utf8")
#代码开始
bond_rates = {}
csv_reader = csv.reader(f1)
next(csv_reader)
for row in csv_reader:
    bond_id = row[0]
    rate = float(row[3]) / 100 
    bond_rates[bond_id] = rate
f1.close()
if gzbm in bond_rates:
    income = je * bond_rates[gzbm]
    print(f"年收益{income:.2f}")
else:
    print("国债编号错误")
#代码结束

第5关 十二钗的出场次数

f1=open("test/红楼梦.txt","r",encoding='utf-8')
xm=["黛玉","宝钗","元春","探春","湘云","妙玉","迎春","惜春","凤姐","巧姐","李纨","可卿"]
#代码开始
content=f1.read()
count_dict = {}
for name in xm:
    count_dict[name] = content.count(name)
sorted_count = sorted(count_dict.items(), key=lambda x: x[1], reverse=True)
for name, count in sorted_count[:5]:
    print(name, count)
#代码结束
f1.close()

第6关 计算蛋白质质量

dbz=input("输入蛋白质字符串")
f1=open("test/dbzzl.txt") 
#代码开始
if not dbz.isalpha() or not dbz.isupper():
    print("输入错误")
else:
    mass_dict = {}
    for line in f1:
        parts = line.split()
        if len(parts) == 2: 
            mass_dict[parts[0]] = float(parts[1])
    try:
        total_mass = 0.0
        for protein in dbz:
            total_mass += mass_dict[protein]
        print(f"质量{total_mass:.3f}")
    except KeyError:
        print("输入错误")
f1.close()
#代码结束

第7关 班级成绩统计

xsxx=[]
def srsj():   
    sj=input("")
    while(len(sj)>0):
        x=sj.split(",")
        xsxx.append([x[0],x[1],eval(x[2]),eval(x[3]),eval(x[4])])
        sj=input("")
srsj()        
#代码开始
bjcj={}
for info in xsxx:
    average=sum(info[2:])/3
    bj=info[0]
    bjcj[bj]=bjcj.get(bj,0)+average
#代码结束
for x in bjcj:
    print("班级{}\t{:.2f}".format(x,bjcj[x]))

第8关 出现次数最多的数

#代码开始
# 初始化一个空字典来存储每个数字及其出现的次数
count_dict = {}
# 读取输入直到0出现
while True:
    num = int(input())
    if num == 0:
        break
    if num in count_dict:
        count_dict[num] += 1
    else:
        count_dict[num] = 1
# 找出出现次数最多的数字。如果次数相同,则选择最小的数字
most_frequent = None
max_count = 0

for num in count_dict:
    if count_dict[num] > max_count or (count_dict[num] == max_count and num < most_frequent):
        most_frequent = num
        max_count = count_dict[num]

# 输出出现次数最多的数字
print(most_frequent)
#代码结束

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 元组和字典都是Python中常用的数据结构。 元组是一种不可变的序列,用小括号()表示,元素之间用逗号隔开。元组可以存储不同类型的数据,也可以嵌套其他元组或列表。元组的元素不能被修改、删除或添加,但可以通过索引访问元素。 字典是一种可变的键值对集合,用大括号{}表示,每个键值对之间用逗号隔开。字典中的键必须是唯一的且不可变,值可以是任意类型的数据。字典中的元素可以通过键来访问、修改、删除或添加。 在Python中,元组和字典都是非常常用的数据结构,可以用于存储和处理各种类型的数据。 ### 回答2: Python中元组和字典都是常用的数据结构,本篇将从定义、创建、方法等方面详细介绍它们的使用。 一、元组 1.定义:Python中的元组(tuple),是一种不可变的序列,通常包含一组具有任意类型的数据。 2.创建元组:利用括号或者tuple()函数可以创建元组。比如a = (1,2,3) 或者 b = tuple([4,5,6])。 3.访问元素:元组对象使用索引操作符[],下表从0开始,用于访问元素。比如a[0],访问元组的第一个元素。此外,元组也支持切片操作,即获取其中的某个子元组。 4.方法和运算符:元组支持的方法和运算符也较为简单,例如count()方法用于返回元组中指定元素出现的次数,index()方法用于返回指定元素第一次出现的位置。另外,+操作符可以将两个元组拼接在一起,*操作符则是将元组复制多次。元组不支持元素的增删改操作。 二、字典 1.定义:Python中的字典(dict)是一种用于存储键值对的可变数据结构,其键和值可以是任意类型的数据。 2.创建字典:利用花括号{}或者dict()函数可以创建字典。比如a = {'name': 'Tom', 'age': 20} 或者 b = dict([('name', 'Jack'), ('age', 22)])。 3.访问字典字典对象也使用索引操作符[],但这里的索引是键名。比如a['name'],访问字典中键名为name的值。另外,字典也支持列表、元组等数据类型作为键名。 4.方法和运算符:字典支持多种方法和运算符,如keys()方法用于返回字典中所有的键名,values()方法用于返回字典中所有的值,items()方法用于返回字典中所有的键值对等。此外,in操作符可以判断指定的键名是否在字典中,而del关键字可以用于删除字典中的键值对。 综上所述,元组和字典都是Python中比较常用的数据结构,各有其独特的应用场景和特点。在实际编程过程中,需要根据具体需求来选择最合适的数据结构,使得程序更加高效、简洁易懂。 ### 回答3: Python中有很多不同的数据结构,其中包括元组和字典。这两种数据结构都分常用,我们需要掌握它们的使用方法。 首先,我们来看元组。元组是不可变的序列,也就是说,一旦创建好一个元组,就不能再修改它。元组使用小括号(())表示,其中的元素可以是任意类型,不同的元素之间用逗号(,)分隔开。我们可以用索引(下标)来访问元组中的元素,索引从0开始,如元组名[0]表示访问第一个元素。 元组的创建和访问如下所示: ``` tup1 = ('physics', 'chemistry', 1997, 2000) tup2 = (1, 2, 3, 4, 5, 6, 7 ) tup3 = "a", "b", "c", "d" tup4 = () # 空元组,是一个元组而不是一个集合 {} tup5 = (50,) # 元组中只包含一个元素时,需要在元素后面添加逗号 print "tup1[0]: ", tup1[0] # 输出元组中第一个元素 print "tup2[1:5]: ", tup2[1:5] # 输出元组中第二个到第五个(不包括)的元素 ``` 接下来,我们来看字典字典是一种可变的无序容器,在其中存储的是键值对(key-value)。字典使用大括号({})表示,其中每个键值对之间用逗号分隔开,键和值之间用冒号(:)分隔开。我们可以使用字典中的键来访问对应的值,也可以使用in关键字来检查一个键是否存在于字典中。 字典的创建和访问如下所示: ``` dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} print "dict['Name']: ", dict['Name'] # 输出字典中键为'Name'的值 print "dict['Age']: ", dict['Age'] # 输出字典中键为'Age'的值 dict['Age'] = 8 # 修改字典中的值 dict['School'] = "RUNOOB" # 添加字典中的键值对 print "dict['Age']: ", dict['Age'] # 输出字典中键为'Age'的值 print "dict['School']: ", dict['School'] # 输出字典中键为'School'的值 ``` 总之,元组和字典都是分重要的数据结构。掌握它们的使用方法,可以让我们更加方便地进行编程。同时,需要注意的是,元组是不可变的,而字典是可变的。在进行代码实现时,需要根据具体需求来选择使用它们。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值