#筛选法求素数 4-4.py
primes =[1]*300;
primes[0:2]=[0,0]for i inrange(2,300):if primes[i]==1:for j inrange(i+1,300):if primes[j]!=0and j % i ==0:
primes[j]=0print("300以内的素数包括,")for i inrange(2,300):if primes[i]:print(i , end ="")
#二分查找 4-5.py
ls =[34,64,67,72,73,82,83,85,87,88,90,91,96,98]
x =int(input('请输入待查的数:'))
low =0
high =len(ls)-1while low < high:
mid =(low + high)//2if ls [mid]< x:
low = mid +1elif ls[mid]> x:
high = mid -1else:print('找到{},索引为{}!'.format(x,mid));break;else:print("没有找到{}".format(x))
#模拟掷两个骰子100000次,统计2~12各点数出现的概率 4-7.pyfrom random import*
seed()
faces =[0]*13for i inrange(100000):
face1 =int(random()*100)%(6-1+1)+1
face2 =int(random()*100)%(6-1+1)+1
faces[face1+face2]+=1print("模拟掷两个骰子100000次结果如下:")for i inrange(2,13):
rate = faces[i]/100000print('点数{}出现了{})次'.format(i,faces[i]),end=",")print('出现概率{:.2%}'.format(rate))
#武功属性评分统计 4-9.py
attrs =["筋骨","敏捷","气势","反应","技巧","内力"]
tables =[['萧峰',20,17,20,20,18,19],['杨过',18,19,17,20,18,18],['令狐冲',12,17,14,20,19,13],['张无忌',20,17,15,14,20,20],['郭靖',19,18,19,18,19,20]]#提取大侠的名字列表names
names =[item[0]for item in tables]#提取评分列表scores
scores =[item[1:]for item in tables]#生成各大侠的总分列表totals
totals =[sum(item)for item in scores]#生成各个属性怕平均分列表avgs
avgs =[]for j inrange(6):
avgs.append(sum([scores[i][j]for i inrange(5)])/5)#输出五位大侠的总分print('\n位大侠的总分是:')for i inrange(5):print('{:<6}:{:>4}'.format(names[i],totals[i]))#输出不同属性的平均分print('\n不同属性的平均分是:')for i inrange(6):print('{:<8}:{:>4}'.format(attrs[i],avgs[i]))#输出得分最高的大侠的名字print('\n总分最高的大侠的名字是:',end='---')print(names[totals.index(max(totals))])
2.字典与集合
sentence ="Life is short,we need Python."
sentence = sentence.lower()
counts={}for c in sentence:if c in counts:
counts[c]= counts[c]+1else:
counts[c]=1print(counts)
dicAres ={'Russia':1707.5,'Canada':997.1,'China':960.1}
ls =sorted(dicAres)for country in ls:print(country,dicAres[country])
dicAres ={'Russia':1707.5,'Canada':997.1,'China':960.1}
lsVK=[(v,k)for k,v in dicAres.items()]
lsVK.sort()
lsVK=[(v,k)for v,k in lsVK]print(lsVK)
dicAres ={'俄罗斯':1707.5,'加拿大':997.1,'中国':960.1,'美国':936.4,'巴西':854.7}
dicCapitals ={'俄罗斯':'莫斯科','加拿大':'渥太华','中国':'北京','美国':'华盛顿','巴西':'巴西利亚'}
dicCountries={}for key in dicAres.keys():
dicCountries[key]=[dicAres[key],dicCapitals[key]]for item in dicCountries.items():print(item)
《Python语言程序设计教程》赵璐 课堂练习课堂练习课堂练习#筛选法求素数 4-4.pyprimes = [1] * 300;primes[0:2] = [0,0]for i in range(2 , 300): if primes[i]==1: for j in range (i+1,300): if primes[j] != 0 and j % i == 0: primes[j] = 0