1、 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
# 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
numerator_lst = [2, 3]
denominator_lst = [1, 2]
sum_fraction = 0
for i in range(2, 21):
numerator_lst.append(numerator_lst[i-1] + numerator_lst[i-2])
denominator_lst.append(denominator_lst[i-1] + denominator_lst[i-2])
for j in range(21):
sum_fraction += numerator_lst[j] / denominator_lst[j]
tip_str = str('有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…这个数列的前20项之和')
print('{}:{}'.format(tip_str, sum_fraction))
# 题目:求1+2!+3!+…+20!的和。
def cal_factorial(number):
if number == 1:
return number
else:
return number*cal_factorial(number-1)
if __name__ == '__main__':
sum_factorial = 0
for i in range(1, 21):
sum_factorial += cal_factorial(i)
print('1+2!+3!+…+20!的和:{}'.format(sum_factorial))
运行结果:
3、题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
# 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
print('请输出一个不多于5位数的正整数:')
var = 1
number_lst = []
while var:
number_input = str(input())
if number_input.isdigit() is not True:
print('输入非正整数,请重新输入一个不多于5位数的正整数:')
elif len(number_input) > 5:
print('输入的正整数大于5位数,请重新输入一个不多于5位数的正整数:')
elif number_input[0] == '0':
print('输入的正整数首位不能为0,请重新输入一个不多于5位数的正整数:')
else:
break
for i in number_input:
number_lst.append(i)
number_lst.sort()
number_lst.reverse()
print('输入的正整数为{}位数'.format(len(number_input)))
print('输入的正整数各数字逆序排序为:')
for j in number_lst:
print(j, end=' ')
运行结果:
4、题目:输入位数为奇位数的数字(例如:12321),判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
# 题目:输入位数为奇位数的数字(例如:12321),判断它是不是回文数。
# 即12321是回文数,个位与万位相同,十位与千位相同
print('请输出一个奇位数的数字:')
flag = True
while True:
number_input = str(input())
if number_input.isdigit() is not True:
print('输入非全部数字,请重新输出一个奇位数的数字:')
elif len(number_input) % 2 == 0:
print('输入的非奇位数的数字,请重新输出一个奇位数的数字:')
elif number_input[0] == '0':
print('输入的正整数首位不能为0,请重新输出一个奇位数的数字:')
else:
break
for i in range(len(number_input)//2):
if number_input[i] == number_input[len(number_input)-1-i]:
pass
else:
flag = False
break
if flag is True:
print('输入的数字{}是回文数!'.format(number_input))
else:
print('输入的数字{}非回文数!'.format(number_input))
运行结果:
5、题目:输入一个字符串,输入指定的分割字符,输出该字符串根据分割字符切分的列表。例如:输入的字符为:‘123fhfa264631321’,输入的分割字符为:‘2’,则输出为:[‘1’,‘3fhfa’,‘646313’,‘1’]
# 题目:输入一个字符串,输入指定的分割字符,输出该字符串根据分割字符切分的列表。
# 例如:输入的字符为:‘123fhfa264631321’,输入的分割字符为:‘2’,则输出为:[‘1’,‘3fhfa’,‘646313’,‘1’]
print('请输入任意一个字符串:')
input_str = str(input())
print('请输入指定的分割字符:')
split_lst = []
while True:
split_str = str(input())
if split_str not in input_str:
print('指定的分割字符不在输入的字符串中,请重新输入指定的分割字符:')
else:
break
split_len = len(split_str)
for i in range(input_str.count(split_str)):
split_lst.append(input_str[0:input_str.find(split_str)])
input_str = input_str[input_str.find(split_str)+split_len:]
split_lst.append(input_str)
print(split_lst)
6、题目:求一个3*3矩阵主对角线元素之和。
# 题目:求一个3*3矩阵主对角线元素之和。
import random
def cal_matrix(row, column):
matrix_list = []
sum_matrix = 0
for i in range(row):
row_list = []
for j in range(column):
row_list.append(random.randrange(1, 100))
matrix_list.append(row_list)
for k in range(row):
sum_matrix += matrix_list[k][k]
return matrix_list, sum_matrix
if __name__ == '__main__':
print('请输入正整数N,系统将随机生成N*N矩阵:')
while True:
number_input = input()
if number_input.isdigit() is True:
number = int(number_input)
break
else:
print('输入非正整数,请重新输入')
matrix, sum_mat = cal_matrix(number, number)
print('系统随机生成{}*{}矩阵如下:'.format(number, number))
for m in range(number):
print('|', end='')
for n in range(number):
print(str(matrix[m][n]).rjust(3), end=' ')
print('|')
print('系统随机生成{}*{}矩阵主对角线元素之和:{}'.format(number, number, sum_mat))
运行结果:
7、题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
# 题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
original_list = [1, 3, 5, 7, 9]
print('有一个已经排好序的数组{}'.format(original_list))
print('请输入要插入的数:')
while True:
number_input = input()
if number_input.isdigit() is True:
number = int(number_input)
break
else:
print('输入的字符不合法,请重新输入!')
sum_cmp = 0
for i in range(len(original_list)):
if original_list[i] >= number:
original_list.insert(i, number)
break
else:
sum_cmp += 1
if sum_cmp == len(original_list):
original_list.append(number)
else:
pass
print('插入输入的数字后,原数组变为{}'.format(original_list))