实验4 字典和集合习题解析

question

  1. 建立一个月份与天数的字典monthdays,月份为’Jan’、‘Feb’、‘Mar’、‘Apr’、‘May’、‘Jun’、‘Jul’、‘Aug’、 ‘Sep’、‘Oct’、‘Nov’、‘Dec’,每个月的天数为31、28、31、30、31、30、31、31、30、31、30、31,并完成以下操作:
    (1)显示字典monthdays的键序列;
    (2)显示字典monthdays的值序列;
    (3)显示字典monthdays的键值对序列;
    (4)获取键’Mar’对应的值;
    (5)获取键’Abc’对应的值,没有则显示“No Found!";
    (6)修改键’Feb’的值为29;
    (7)创建一个新的字典x={‘a1’:21,‘a2’:34},并将其包含的键值对追加到字典monthdays里;
    (8)删除键为‘a1’的键值对。
  2. 集合a和b中存放着两组文件名的集合,两个集合中有相同的文件名也有不同的文件名,请写出实现如下功能的表达式,要求分别用运算符和集合相应方法实现:
    a={“Tom.py”, “Mike.py”,“Anne.py”,“Denny.py”,“Jack.py”,“Fan.py”}
    b={“Tom.py”, “Lily.py”, “Anne.py”, “Richard.py”,“Jack.py”}
    (1)求a中存在b中不存在的文件;
    (2)求a中存在的与b中相同的文件;
    (3)求两个文件夹中互不相同的文件;
    (4)求两个文件夹中包括的所有文件。
  3. 歌唱比赛进行海选活动,歌手分为两组,按序号进行投票,第一组歌手的编号为1、2、3、4、5,第二组歌手的编号为6、7、8、9、10,投票编号为4、7、9、1、2、2、6、2、2、1、6、9、7、4、5、5、7、9、5、5、4,请对投票数据进行分析,完成以下问题:
    (1)求获得了选票的全部歌手的序号;
    (2)求第一组获得选票的歌手;
    (3)求第二组没有获得选票的歌手;
    (4)为第二组增加一名歌手,序号为11;
    (5)对任意给定的歌手编号,判断其是否获得投票。
    4.编写程序读取三角形的三条边长,如果输入是合法(三角形任意两边之和大于第三边)的则计算它的周长和面积,如果输入是非法的则输出错误信息。
  4. BMI是世界公认的一种评定肥胖程度的分级方法,世界卫生组织(WHO)也以BMI来对肥胖或超重进行定义。它的定义如下:
    体质指数(BMI)=体重(kg)÷身高^2(m)
    例如:70kg÷(1.75×1.75)=22.86
    当BMI指数为18.5~23.9时属正常。请输入你或同伴的体重和身高计算BMI值,并输出胖瘦判断的结果。
  5. 编写一个程序请用户输入美元与人民币之间的货币汇率,而后提示用户输入“0”表示将美元转换为人民币,输入“1”表示将人民币转换为美元,并将用户输入的美元数或人民币数分别转换为人民币或美元,若输入其他数值则提示输入错误。以下为运行示例:
    Enter the exchange rate from dollars to RMB: 6.81
    Enter 0 to convert dollars to RMB and 1 vice versa: 0
    Enter the dollar amount: 100
    $100.0 is 681.0 yuan

    Enter the exchange rate from dollars to RMB: 6.81
    Enter 0 to convert dollars to RMB and 1 vice versa: 1
    Enter the RMB amount: 1000
    1000.0 yuan is $146.84

    Enter the exchange rate from dollars to RMB: 6.81
    Enter 0 to convert dollars to RM and 1 vice versa: 5
    Incorrect input

answer

1.
dic={'jan':31,'feb':28,'mar':31,'apr':30,'may':31,'jun':30,'jul':31,'aug':31,'sep':30,'oct':31,'nov':30,'dec':31}
dic.keys()
dic.values()
dic.items()
dic.get('mar')
dic.get('abc','no found')
dicx={'a1':21,'a2':34}
dic.update(dicx)
dic.pop('a1')#也可以通过del
dicy={'feb':29}#直接可以dic['feb']=修改
dic.update(dicy)
2.
a={"Tom.py", "Mike.py","Anne.py","Denny.py","Jack.py","Fan.py"}
b={"Tom.py", "Lily.py", "Anne.py", "Richard.py","Jack.py"}#这创建的是字典
aa=set(a)
bb=set(b)#好像这个字典可以直接搞上去
aa-bb
Out[66]: {'Denny.py', 'Fan.py', 'Mike.py'}
aa&bb
Out[67]: {'Anne.py', 'Jack.py', 'Tom.py'}
aa^bb
Out[68]: {'Denny.py', 'Fan.py', 'Lily.py', 'Mike.py', 'Richard.py'}
aa|bb
Out[69]: 
{'Anne.py',
 'Denny.py',
 'Fan.py',
 'Jack.py',
 'Lily.py',
 'Mike.py',
 'Richard.py',
 'Tom.py'}
3.
import math
x=eval(input())
y=eval(input())
z=eval(input())
if x+y>z and x+z>y and y+z>x:
    print('周长:',x+y+z)
    i=(x+y+z)/2
    print('面积:',math.sqrt(i*(i-a)*(i-b)*(i-c)))
else:
    print('invalid input')#这里会报错,今后继续更
4.
s1={1,2,3,4,5}
s2={6,7,8,9,10}
s={4,7,9,1,2,2,6,2,2,1,6,9,7,4,5,5,7,9,5,5,4}
print(s)
print(s&s1)
print(s2-s)
s2.add(11)
x=int(input())
x in s
5.
m=eval(input())
h=eval(input())
bmi=m/h**2
if 18.5<bmi<23.9:
    print('ok')
else:
    print('oh mad')
6.
hui=eval(input('Enter the exchange rate from dollars to RMB:'))
zhiling=eval(input('Enter 0 to convert dollars to RMB and 1 vice versa:'))
money=eval(input('Enter the dollar amount:'))
if zhiling==0:
    qian=money*hui
    print('${} is {}yuan'.format(money,qian))
elif zhiling==1:
    qian=money/hui
    print('{}yuan is ${}'.format(money,qian))
else:
    print('incoorect input')

字典和集合也就是这些啦,还有一个题没有搞好,下次再更啦!

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页