实验3
task1.py
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(s)
问题1:random.randint(1,100)生成的随机整数范围是?能否取到100?
1~100,能取到
问题2:利用list(range(5))生成的有序序列范围是?是否包括5?利用list(range(1,5))生成的有序序列范围是?是否包括5?
0~4,不包括5,1~4,不包括5
问题3:使用line8生成的集合s1,len(s1)一定是5吗?
一定是5
问题4:使用line12-14生成的集合s2,len(s2)一定是5吗?
一定是5
task2.py
datas = {'2049777001': ['篮球', '羽毛球', '美食', '漫画'], '2049777002': ['音乐', '旅行'], '2049777003': ['马拉松', '健身', '游戏'], '2049777004': [], '2049777005': ['足球', '阅读'], '2049777006': ['发呆', '闲逛'], '2049777007': [], '2049777008': ['书法', '电影'], '2049777009': ['音乐', '阅读', '电影', '漫画'], '2049777010': ['数学', '推理', '音乐', '旅行'] } dict={} for k in datas.values(): for i in k: dict[i] = dict.get(i, 0) + 1 a=sorted(dict.items(),key=lambda x:x[1],reverse=True) for key,value in a: print(f'{key}:{value}')
task3.py
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']] min_list=[] max_list=[] a=0 c=0 for i in temperatures: min_list.append(i[2]) max_list.append(i[3]) for j in range(len(min_list)): a=a+int(min_list[j]) b=a/len(min_list) for k in range(len(max_list)): c=c+int(max_list[k]) d=c/len(max_list) print('未来一周最低气温:',min(min_list),'℃') print('未来一周最高气温:',max(max_list),'℃') print('未来一周平均气温区间:',int(b),'℃~',int(d),'℃')
task4.py
import random print('猜猜2022年5月哪一天会是你的lucky day : -)') n=random.randint(1,31) s='你有三次机会,猜吧(1~31):' i=3 while i !=0: num=int(input(s)) if n==num: print('哇,猜中了:-)') break elif num<n : print('猜早啦,你的lucky day还没到呢') elif num>n: print('猜晚啦,你的lucky day已经过啦') i-=1 s='再猜(1~31):' if i==0: print('次数用光啦.') print(f'偷偷告诉你,5月你的lucky day是{n}号.good luck : -)')
task5.py
num, n = eval(input("输入十进制整数x和要转换的进制n(2或8或16):"))
a = []
b = num//n
a.append(num%n)
while b :
a.append(b%n)
b = b//n
print(f"{num}的{n}进制是:", end = '')
for i in a[::-1]:
if 10<=i<=16:
print(chr(55+i), end = '')
else :
print(i, end = '')