1. 实验任务1
import random print('用列表存储随机整数: ') ls = [random.randint(1, 100) for i in range(5)] print(ls) print('\n用集合存储随机整数: ') s1 = {random.randint(1,100) for i in range(5)} print(s1) print('\n用集合存储随机整数: ') s2 = set() while(len(s2)<5): s2.add(random.randint(1,100)) print(s2)
问题1: random.randint(1,100) 生成的随机整数范围是?能否取到100?
答:1<=x<100,不含100
问题2:利用 list(range(5)) 生成的有序序列范围是?是否包括5? 利用 list(range(1,5)) 生成的有序序列范围是?是否包括5?
答:0,1,2,3,4不含5;1,2,3,4不含5
问题3:使用line8生成的集合s1,len(s1)一定是5吗?回答并说明你的理由。
答:使用line8生成的集合s1,len(s1)不一定是5,字典去掉重复元素。
问题4:使用line12-14生成的集合s2,len(s2)一定是5吗?回答并说明你的理由。
答:len(s2)一定是5,while的循环条件是len(s2)达到5才会。
2. 实验任务2
datas = {'2049777001': ['篮球', '羽毛球', '美食', '漫画'], '2049777002': ['音乐', '旅行'], '2049777003': ['马拉松', '健身', '游戏'], '2049777004': [], '2049777005': ['足球', '阅读'], '2049777006': ['发呆', '闲逛'], '2049777007': [], '2049777008': ['书法', '电影'], '2049777009': ['音乐', '阅读', '电影', '漫画'], '2049777010': ['数学', '推理', '音乐', '旅行'] }
a = list(datas.values()) b=[] for m in a : for x in m: b.append(x) c = {} for i in b: c[i] = b.count(i) d = list(c.items()) e = sorted(d, key=lambda x: x[1], reverse=True) for m, n in e: print(f'{m}:{n}')
3. 实验任务3
temperatures= [['2022-04-18', '星期一', '10', '22'], ['2022-04-19', '星期二', '10', '22'], ['2022-04-20', '星期三', '12', '25'], ['2022-04-21', '星期四', '13', '28'], ['2022-04-22', '星期五', '16', '31'], ['2022-04-23', '星期六', '19', '31'], ['2022-04-24', '星期日', '19', '27']]
a=[] b=[] for i in range(len(temperatures)): a.append(int(temperatures[i][3])) b.append(int(temperatures[i][2])) h=max(a) l=min(b) m=sum(a)//7 n=sum(b)//7 print(f'未来一周最低气温:{l}℃\n未来一周最高气温:{h}℃\n未来一周平均气温区间{n}℃-{m}℃')
4. 实验任务4
import random as r def k(x): if x>a:return "猜晚啦,你的lucky day已经过啦\n再猜(1~31):" elif x<a:return "猜早啦,你的lucky day还没到呢\n再猜(1~31):" else:return "哇,猜中了:-)" a=r.randint(1,32) b=int(input("猜猜2022年5月那一天会是你的lucky day:-)\n你有三次机会,猜吧(1~31):")) i=0 m="哇,猜中了:-)" while i<2: b=int(input(k(b))) m=k(b) i+=1 if m=="哇,猜中了:-)":print(m) if i ==2: print(f"次数用光了\n偷偷告诉你,5月你的lucky day是{a}号,good luck:—)")
5. 实验任务5
x,n=eval(input('输入十进制整数x和要转换的进制n:')) y=0 list=[] dict={'10':'A','11':'B','12':'C','13':'D','14':'E','15':'F'} while x//n!=0: y=x%n x=x//n list.append(str(y)) list.append(str(x)) list.reverse() if n==16: list=[dict[i] if i in dict else i for i in list] print(''.join(list))