实验内容
实验任务1
1 def task1(): 2 import random 3 4 print('用列表存储随机整数: ') 5 ls = [random.randint(1, 100) for i in range(5)] 6 print(ls) 7 8 print('\n用集合存储随机整数: ') 9 s1 = {random.randint(1,100) for i in range(5)} 10 print(s1) 11 12 print('\n用集合存储随机整数: ') 13 s2 = set() 14 while(len(s2)<5): 15 s2.add(random.randint(1,100)) 16 print(s2)
Q:
问题1: random.randint(1,100) 生成的随机整数范围是?能否取到100?
A:[1,100]内的整数。能取到100。
问题2:利用 list(range(5)) 生成的有序序列范围是?是否包括5? 利用 list(range(1,5)) 生成的有序序列范围是?是否包括5?
A:[0,1,2,3,4].不包括5.
[1,2,3,4].不包括5.
问题3:使用line8生成的集合s1,len(s1)一定是5吗?
A:不一定。
问题4:使用line12-14生成的集合s2,len(s2)一定是5吗?
A:一定。
实验任务2
1 def task2(): 2 datas = { 3 '2049777001': ['篮球', '羽毛球', '美食', '漫画'], 4 '2049777002': ['音乐', '旅行'], 5 '2049777003': ['马拉松', '健身', '游戏'], 6 '2049777004': [], 7 '2049777005': ['足球', '阅读'], 8 '2049777006': ['发呆', '闲逛'], 9 '2049777007': [], 10 '2049777008': ['书法', '电影'], 11 '2049777009': ['音乐', '阅读', '电影', '漫画'], 12 '2049777010': ['数学', '推理', '音乐', '旅行'] 13 } 14 hobbys={} 15 for users in datas.values(): 16 for hobby in users: 17 if hobbys.get(hobby): 18 hobbys[hobby]+=1 19 else: 20 hobbys.setdefault(hobby,1) 21 hobbys_list=[(x,y) for x,y in hobbys.items()] 22 for i in range(len(hobbys_list)): 23 for j in range(i,len(hobbys_list)): 24 if hobbys_list[i][1]<hobbys_list[j][1]: 25 hobbys_list[i],hobbys_list[j]=hobbys_list[j],hobbys_list[i] 26 for i in hobbys_list: 27 print("%s:%s"%(i[0],i[1]))
实验任务3
1 def task3(): 2 temperatures= [['2022-04-18', '星期一', '10', '22'], 3 ['2022-04-19', '星期二', '10', '22'], 4 ['2022-04-20', '星期三', '12', '25'], 5 ['2022-04-21', '星期四', '13', '28'], 6 ['2022-04-22', '星期五', '16', '31'], 7 ['2022-04-23', '星期六', '19', '31'], 8 ['2022-04-24', '星期日', '19', '27'] 9 ] 10 min_t=eval(temperatures[0][2]);max_t=eval(temperatures[0][3]) 11 for i in range(len(temperatures)): 12 if min_t>=eval(temperatures[i][2]): 13 min_t=eval(temperatures[i][2]) 14 if max_t<=eval(temperatures[i][3]): 15 max_t=eval(temperatures[i][3]) 16 summin=[eval(temperatures[i][2]) for i in range(len(temperatures))] 17 summax=[eval(temperatures[i][3]) for i in range(len(temperatures))] 18 avemin=sum(summin)/len(summin) 19 avemax=sum(summax)/len(summax) 20 print("Minimun temperature for the coming week:%d°C"%(min_t)) 21 print("Maximun temperature for the coming week:%d°C"%(max_t)) 22 print("Average temperature range for the coming week:%d°C~%d°C"%(avemin,avemax))
实验任务4
1 def task4(): 2 import random 3 luckyday=random.randint(1,31) 4 print("You have 3 chances to guess which day is your lucky day:-)") 5 for i in range(1,4): 6 if i==1: 7 num=eval(input("Just guess(1~31):")) 8 elif i in range(2,4): 9 num=eval(input("And guess again:")) 10 if num not in range(1,32): 11 raise ValueError 12 else: 13 if num==luckyday: 14 print("Wow!You get it!");break 15 elif num>=luckyday: 16 print("Too late, boy. Your lucky day has passed.") 17 elif num<=luckyday: 18 print("Too early, boy. Your lucky day hasn't arrived yet.") 19 else: 20 if i==3: 21 print("Your chance is over.\nBetween you and me, your lucky day in May is %d.Good luck!"%(luckyday))
实验任务5
def task5(): n=input("Enter a decimal integer and the system you need(Binary,Octal or Hexadecimal):") num,sys=n.split(",");num=eval(num);sys=eval(sys) if not(type(num)==int and (sys in (2,8,16))): raise ValueError else: nums=[];num1=num while(num1!=0): nums.insert(0,num1%sys) num1=num1//sys if (sys==16): for i in range(len(nums)): if (nums[i] == 10): nums[i]="A" elif(nums[i]==11): nums[i]="B" elif(nums[i]==12): nums[i]="C" elif(nums[i]==13): nums[i]="D" elif(nums[i]==14): nums[i]="E" elif(nums[i]==15): nums[i]="F" print("%d in %d system is:"%(num,sys),end="") for j in nums: print(j,end="")