'''
练习一:编写名为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()} )