实验三
task1
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:整数范围是1-100,取得到100
问题2:有序序列范围是0-4,不包含5
有序序列范围是1-4,不包含5
问题3:len(s1)不一定是5,因为randint有可能取到相等的值,所以在集合中则显示一次
问题4:一定是5
task2
datas = {'2049777001': ['篮球', '羽毛球', '美食', '漫画'], '2049777002': ['音乐', '旅行'], '2049777003': ['马拉松', '健身', '游戏'], '2049777004': [], '2049777005': ['足球', '阅读'], '2049777006': ['发呆', '闲逛'], '2049777007': [], '2049777008': ['书法', '电影'], '2049777009': ['音乐', '阅读', '电影', '漫画'], '2049777010': ['数学', '推理', '音乐', '旅行'] } a = [x for i in datas.values() for x in i] counts = [(a.count(x),x) for x in set(a)] counts.sort(reverse=True) for i in counts: print(f"{i[1]}:{i[0]}")
task3
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']] tem_low = [int(each[2]) for each in temperatures] tem_high =[int(each[3]) for each in temperatures] print(f"未来一周最低气温:{min(tem_low)}℃") print(f"未来一周最高气温:{max(tem_high)}℃") print(f"未来一周平均气温区间:{sum(tem_low)//len(tem_low)}℃ ~ {sum(tem_high)//len(tem_high)}℃")
task4
import random day = int(input("猜猜2022年5月哪一天会是你的lucky day:-)\n你有三次机会,猜吧(1~31):")) lucky_day = random.randint(1,31) for i in range(3): # 其实这边用while应该会更好 if i == 2: print("次数用光啦") print(f"偷偷告诉你, 5月你的lucky day是{lucky_day}号. good luck:-)") break elif day > lucky_day : print("猜晚啦, 你的lucky day已经过啦") elif day < lucky_day : print("猜早啦, 你的lucky day 还没到呢") elif day == lucky_day: print("哇, 猜中啦:-)") break day = int(input("再猜(1~31):"))
task5
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 = '')