1-1 用python代码实现使用列表推导式,要求生成包含10个数字6的列表。
def t1_1():
print('1-1: list = ', [6 for i in range(10)])
1-2 用python代码实现列表a_list中每隔4个元素取2个,并将提取到的元素组成新列表b_list。
def t1_2(a_list=None):
if a_list is None:
a_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
b_list = [a_list[i:i + 2] for i in range(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)
1-3 编写程序,将列表num=[1,2,3,4,5,6,7,8,9]中的偶数变成它的平方,奇数保持不变。
def t1_3():
num = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in range(len(num)):
if num[i] % 2 == 0:
num[i] = num[i] * num[i]
print('1-3: num = ', num)
1-4 编写程序,有一列表num=[11,22,33,44,55,66,77,88,99,90],将其中所有大于66的数保存至字典的第一个键k1所对应的值中,将小于66的数保存至第二个键k2的值中。
def t1_4():
num = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
dic = {}
list_1 = [] # 大于66的数
list_2 = [] # 小于66的数
for i in num:
if i > 66:
list_1.append(i)
elif i < 66:
list_2.append(i)
dic.setdefault('k1', list_1)
dic.setdefault('k2', list_2)
print('1-4: dic = ', dic)
1-5 编写程序,设计一个字典,将用户输入内容作为“键”,输出字典中对应的“值”,如果用户输入的“键”不存在,则提示“您输入的键不存在!”。
def t1_5():
d = {1: '一', 2: '二', 3: '三'}
a = int(input("请输入要查询的键: "))
if a not in list(d.keys()):
print('用户的键不存在')
else:
print(f'字典中{a}键对应的值为{d.get(a)}')
1-6 输入两个集合A和B,分别输出它们的交集、并集和差集。
def t1_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 编写程序,实现删除列表重复元素的功能。
def t1_7(a=None):
if a is None:
a = [1, 1, 1, 2, 2, 2, 3, 3, 3]
a = set(a) # 强制类型转换成集合
a = list(a) # 强制类型转换成列表
print('1-7: ', a)
1-8 编写程序,统计字符串中每个字母的出现次数(字母忽略大小写),并输出成一个字典。例如{‘a’:4,‘b’:2}。
def t1_8():
d = str(input("请输入有由英文字母组成的字符串:")).lower() # 输入一串字符串,并全部转换成小写字母的形式
c = dict(zip([i for i in d], [0 for i in range(len(d))])) # 创建一个原来字符串中含有字母的字典,初始次数都是0。
for st_r in d:
c[st_r] += 1
print(c)
1-9 已知字符串 a = “aAsmr3idd4bgs7Dlsf9eAF”,要求如下
- (1)将a字符串的数字取出,并输出成一个新的字符串。
- (2)去除a字符串多次出现的字母,仅留最先出现的一个。例’abcabb’,经过去除后,输出 ‘abc’。
- (3)将a字符串反转并输出。例:‘abc’的反转是’cba’。
- (4)输出a字符串出现频率最高的字母。
def t1_9():
a = "aAsmr3idd4bgs7Dlsf9eAF"
# (1)将a字符串的数字取出,并输出成一个新的字符串。
def fun1():
new_str = ""
for i in a:
if i.isdecimal(): # 判断单个字符是否为数字。
new_str += i
print('t1_9: (1) ', new_str)
# (2)去除a字符串多次出现的字母,仅留最先出现的一个。例'abcabb',经过去除后,输出 'abc'。
def fun2():
a_list = list(a)
set_list = list(set(a_list))
set_list.sort(key=a_list.index) # 根据原来的列表的索引进行排序。
print('t1_9: (2) ', ''.join(set_list)) # 把去重后的列表进行拼接成新的字符串
# (3)将a字符串反转并输出。例:'abc'的反转是'cba'。
def fun3():
print('t1_9: (3) ', a[::-1]) # 使用字符串的切片操作把,步长设置为-1就可以,使字符串倒数输出
# (4)输出a字符串出现频率最高的字母。
def fun4():
p = ([(x, a.count(x)) for x in set(a)]) # 作为列表形式统计每个字符出现次数,列表中的元素都是以元组的形式存储着。
p.sort(key=lambda k: k[1], reverse=True) # 使用匿名函数lambda使,列表中,都以元组中的第二个值来进行排序。
print('t1_9: (4) ', p[0][0])
fun1()
fun2()
fun3()
fun4()
2-1 编写程序,计算分段函数:f(x)={2x+1 x≥1 4x⁄(x-1) x<1)}
def t2_1(x):
if x >= 1:
return 2 * x + 1
else:
return 4 * x / (x - 1)
2-2 众所周知,闰年的条件是能被4整除但不能被100整除,或者能被400整除,请编程判断某一年是否为闰年。
def t2_2(year):
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
print("这是闰年!")
else:
print("这不是闰年!")
2-3 编写程序,分别用while循环和for循环计算整数1至100的和。
def t2_3():
# while循环
i = 0
sum = 0
while i < 100:
i = i + 1
sum = sum + i
print('t2_3 : while循环的值', sum)
# for循环
j = 0
for i in range(1, 101):
j = j + i
print('t2_3 : for循环的值', j)
2-4 编写程序,通过输入某个整数n(n>0),分别用while循环和for循环计算n!。
def t2_4():
n = int(input("请输入一个整数:"))
sum = 1
for i in range(1, n + 1):
sum *= i
print("t2-4: for循环的阶乘:", sum)
sum = 1
i = 1
while (i <= n):
sum *= i
i = i + 1
print("t2-4: while循环的阶乘:", sum)
2-5 编写程序,计算Sn=2-4+6-8+10-12+…。
def t2_5():
s = 0
for i in range(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的解。
def t2_6():
import math
a = int(input('请输入a的值: '))
b = int(input('请输入b的值: '))
c = int(input('请输入c的值: '))
delta = b * b - 4 * a * c # 求delta
if 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: 该方程的无解!")
2-7 编写程序,通过输入一行字符,分别统计出其中的数字、英文字母、空格和其他字符的个数。
def t2_7():
import re
put_in = input('请输入一行字符串: ')
str_list = re.findall('[a-zA-z]', put_in) # 用正则表达式来对字符串查找内容,返回为列表。
num_list = re.findall('[0-9]', put_in)
space_list = re.findall(' ', put_in)
other_list = re.findall('[^a-zA-z 0-9]', put_in)
print(f't2-7: \n英文字母的个数为: {len(str_list)}\n空格的个数为: {len(space_list)}\n其它字符个数为: {len(other_list)}\n数字的个数为: {len(num_list)}')
2-8 “水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个:“水仙花数”,1^3 + 5^3 + 3^3 = 153。请编写程序输出3位水仙花数。(可使用math模块中的pow()方法)
def t2_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: 这不是水仙花数!')
2-9 编写程序计算鸡兔同笼问题,设鸡、兔共有40只,脚90只,请计算鸡、兔各有多少只。
def t2_9():
for j in range(0, 41):
if 2 * j + (40 - j) * 4 == 90:
print(f't2-9: 鸡有: {j} 个, 兔有: {40-j} 个')
2-10 编写程序,输入一个小于200的整数,对其进行因式分解。例如,10=2*5。
def t2_10():
num = int(input('请输入一个小于200的数: '))
x = 1
flag = True
while num > 1 and num < 200:
print(f"t2-10: {num} = ", end='')
while num != 1:
x += 1
while num % x == 0:
num /= x
if flag:
flag = False
print(x, end='')
else:
print(f' * {x}', end='')
2-11 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再次落下,请编写程序计算第10次落地时,共经过多少米?
def t2_11():
h = 100 # 高度为100米
s = 0
i = 1
while i < 10:
s += h + h / 2
h /= 2
i += 1
print(f't2-11: 高度为: {s}')
2-12 有一分数序列:2/1,3/2,5/3,8/5,13/8/,21/13….,编写程序求出这个数列的前20项之和。
def t2_12():
a = 2.0
b = 1.0
s = 0
for i in range(1, 20 + 1):
s += a / b
a, b = a + b, a # 按照斐波那契数列递归往下取数。
print("t2-12: 前20项和为:", s)
2-13 编写程序,求1+2!+3!+ ….+20!的和。
def t2_13():
s = 0
t = 1
for n in range(1, 21):
t *= n
s += t
print(f't2-13: 1+2!+3!+ ….+20! 的值为: {s}')
2-14 编写程序,输入一个不多于五位的正整数,计算它是几位数,并逆序打印出各位数字。
def t2_14():
x = int(input('请输入一个小于5位的数: '))
a = x // 10000
b = x % 10000 // 1000
c = x % 1000 // 100
d = x % 100 // 10
e = x % 10
if 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))
2-15 编写程序,输入一个五位数,判断它是不是回文数。回文数是指个位与万位相同,十位与千位相同,如12321是回文数。
def t2_15():
s = input('请输入一个五位数: ')
if s[0] == s[4] and s[1] == s[3]:
print('t2-15: 该数是回文数!')
else:
print('t2-15: 该数不是回文数!')
主函数代码如下,主要是测试以上的代码,运行结果是否符合要求。
if __name__ == '__main__':
# t1_1()
# t1_2()
# t1_3()
# t1_4()
# t1_5()
# t1_6()
# t1_7()
# t1_8()
# t1_9()
# t2_3()
# t2_4()
# t2_6()
# t2_5()
# t2_7()
# t2_8()
# t2_9()
# t2_10()
# t2_11()
# t2_12()
# t2_13()
# t2_14()
# t2_15()
pass
版权声明:本文为qq_52553510原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。