deft1_2(a_list=None):if a_list isNone:
a_list =[1,2,3,4,5,6,7,8,9,10,11,12]
b_list =[a_list[i:i +2]for i inrange(4,len(a_list),6)]# 先从a_list中每隔4个元素提取出2各元素组成一个二维列表
b_list =[i for j in b_list for i in j]# 把二维列表转换成一维列表print('1-2: b_list = ', b_list)
deft1_5():
d ={1:'一',2:'二',3:'三'}
a =int(input("请输入要查询的键: "))if a notinlist(d.keys()):print('用户的键不存在')else:print(f'字典中{a}键对应的值为{d.get(a)}')
1-6 输入两个集合A和B,分别输出它们的交集、并集和差集。
deft1_6():
A =set(input('请输入集合A: '))
B =set(input('请输入集合B: '))
b = A | B # 并集
j = A & B # 交集
c = A - B # A - B 差集
cc = B - A # B - A 差集print('1-6: ','\n交集: ', j,'\n并集: ', b,'\nA - B 差集: ', c,'\nB - A 差集: ', cc)
1-7 编写程序,实现删除列表重复元素的功能。
deft1_7(a=None):if a isNone:
a =[1,1,1,2,2,2,3,3,3]
a =set(a)# 强制类型转换成集合
a =list(a)# 强制类型转换成列表print('1-7: ', a)
deft1_8():
d =str(input("请输入有由英文字母组成的字符串:")).lower()# 输入一串字符串,并全部转换成小写字母的形式
c =dict(zip([i for i in d],[0for i inrange(len(d))]))# 创建一个原来字符串中含有字母的字典,初始次数都是0。for st_r in d:
c[st_r]+=1print(c)
deft2_2(year):if(year %4==0and year %100!=0)or year %400==0:print("这是闰年!")else:print("这不是闰年!")
2-3 编写程序,分别用while循环和for循环计算整数1至100的和。
deft2_3():# while循环
i =0sum=0while i <100:
i = i +1sum=sum+ i
print('t2_3 : while循环的值',sum)# for循环
j =0for i inrange(1,101):
j = j + i
print('t2_3 : for循环的值', j)
2-4 编写程序,通过输入某个整数n(n>0),分别用while循环和for循环计算n!。
deft2_4():
n =int(input("请输入一个整数:"))sum=1for i inrange(1, n +1):sum*= i
print("t2-4: for循环的阶乘:",sum)sum=1
i =1while(i <= n):sum*= i
i = i +1print("t2-4: while循环的阶乘:",sum)
2-5 编写程序,计算Sn=2-4+6-8+10-12+…。
deft2_5():
s =0for i inrange(1,51):if i %2==0:
s = s -2* i
else:
s = s +2* i
print('t2-5: Sn = ', s)
2-6 编写程序,通过输入a,b,c三个系数的值,计算一元二次方程ax^2+bx+c=0的解。
deft2_6():import math
a =int(input('请输入a的值: '))
b =int(input('请输入b的值: '))
c =int(input('请输入c的值: '))
delta = b * b -4* a * c # 求deltaif delta >=0:
x1 =(-b + math.sqrt(delta))/(2* a)
x2 =(-b - math.sqrt(delta))/(2* a)if x1 == x2:print(f"t2_6: 该方程的解为: x1 = x2 = {x1}")else:print(f"t2_6: 该方程的解为: x1 = {x1} x2 = {x2}")else:print("t2_6: 该方程的无解!")
deft2_8():
i =int(input('请输入一个三位数: '))
b = i //100# 百位数字
s = i //10%10# 十位数字
g = i %10# 个位数字if b * b * b + s * s * s + g * g * g== i:print('t2_8: 这是水仙花数!')else:print('t2_8: 这不是水仙花数!')
deft2_10():
num =int(input('请输入一个小于200的数: '))
x =1
flag =Truewhile num >1and num <200:print(f"t2-10: {num} = ", end='')while num !=1:
x +=1while num % x ==0:
num /= x
if flag:
flag =Falseprint(x, end='')else:print(f' * {x}', end='')
deft2_12():
a =2.0
b =1.0
s =0for i inrange(1,20+1):
s += a / b
a, b = a + b, a # 按照斐波那契数列递归往下取数。print("t2-12: 前20项和为:", s)
2-13 编写程序,求1+2!+3!+ ….+20!的和。
deft2_13():
s =0
t =1for n inrange(1,21):
t *= n
s += t
print(f't2-13: 1+2!+3!+ ….+20! 的值为: {s}')
2-14 编写程序,输入一个不多于五位的正整数,计算它是几位数,并逆序打印出各位数字。
deft2_14():
x =int(input('请输入一个小于5位的数: '))
a = x //10000
b = x %10000//1000
c = x %1000//100
d = x %100//10
e = x %10if a !=0:print('t2-14: 该数是五位数, 其倒序为: '+str(e)+str(d)+str(c)+str(b)+str(a))elif b !=0:print('t2-14: 该数是四位数, 其倒序为: '+str(e)+str(d)+str(c)+str(b))elif c !=0:print('t2-14: 该数是三位数, 其倒序为: '+str(e)+str(d)+str(c))elif d !=0:print('t2-14: 该数是二位数, 其倒序为: '+str(e)+str(d))else:print('t2-14: 该数是个位数, 其倒序为: '+str(e))