作业-列表,字典操作实例

'''
练习一:编写名为collatz(number)的函数;实现的功能:参数为偶数时,打印number//
2;参数为奇数时,打印3*number + 1
'''
def collatz(number):
##    if number%2==0:
##        print(number//2)
##    else:
##        print(3*number+1)
        rel=number//2 if number%2==0 else number*3+1
        print(rel)       

##number=int(input("请输入一个整数:"))
##collatz(number)

'''
练习二:使用for循环,对列表元素的类型进行更改
'''

s = '51 5000 10000'
a,b,c = [int(i)  for i in s.split(" ")]     ## 使用空格进行分割
print( a,b,c)
#输出结果:51 5000 10000

new=list()
a=['1','2','3']
for i in a:
    new.append(int(i))
print(new)
#输出结果:[1, 2, 3]
new1=[int(i) for i in a]
print(new1)
#输出结果:[1, 2, 3]

'''
练习三: 找出1-10之间的所有偶数,并且返回一个列表(包含以这个偶数为半径的圆的面积)

        找出1-10之间的所有奇数,并且返回一个列表(转换奇数为字符串)
'''
import math
list1=[math.pi*r*r for r in range(2,11,2)]
list2=[str(i) for i in range(1,10,2)]
print(list1)
print(list2)

'''
练习四:找出1-100之间的所有质数(除了1和本身没有其他因数)
解析: 首先定义一个判断质数的函数;返回0代表不是素数,返回1代表时素数
'''
#方法一:
i=j=2   
for i in range(2,100): # 取i从2开始,2 最小的质数
    for j in range(2,i):  #j在i的范围内取,range区间取不到i,看i是否有其他因数
        if (i%j==0):
            break
    else:
         print(i,end='')
         
#方法二:
num=[];
i=2
for i in range(2,100):
   j=2
   for j in range(2,i):
      if (i%j==0):
         break
   else:
      num.append(i)
print(num)

#方法三:
def isprime(num):
    for i in range(2,num):
        if num%i==0:
            return 0
    else:
        return 1
li=[]
for x in range(2,101):
    if isprime(x):
        li.append(x)
print(li)

'''
练习一: 假设有20个学生,成绩在60-100之间,筛选出成绩在90分以上的学生

解析: 随机生成60-100之间的学生和成绩;然后在生成的字典中选择输出
'''
import random
#方法一:
stuInfo={ }
for i in range(20):
    name='stu'+str(i)
    score=random.randint(60,100)
    stuInfo[name]=score
print("所有人的成绩为:\n",stuInfo)

highscore={}
for name,score in stuInfo.items():
    if score > 90:
        highscore[name]=score
print("90分以上的成绩为:\n",highscore)

#方法二:
stuInfo = {'student' + str(i):random.randint(60,100) for i in range(20)} 
print("所有人的成绩为:\n",stuInfo)
print("90分以上的成绩为:\n",{name:score for  name,score in stuInfo.items()  if score > 90} )

'''
练习二: 将字典中的key值和value值调换
'''
dic1= {'a':1,'b':2,'c':3}
dic2={ b:a for a,b in dic1.items()}
print(dic2)
print({ b:a.upper() for a,b in dic1.items()})
#输出结果为:{1: 'a', 2: 'b', 3: 'c'}   {1: 'A', 2: 'B', 3: 'C'}

'''
练习三:大小写合并,Key值最终全部为小写
'''
d = {'a':1,'b':2,'c':3,'A':5}
print( {k.lower():d.get(k.upper(),0)+d.get(k.lower(),0) for k,v in d.items()} )

 

posted @ 2019-08-31 18:26  Andhui  阅读(594)  评论(0编辑  收藏  举报