1.1 定义一个is_leap(year)函数,该函数可判断year是否为闰年。若是闰年,则返回True;否则返回False。
def is_leap(year):
if int(year)% 100 != 0 and int(year) % 4 == 0:
return True
else:
return False
data = input("请输入年份:")
if is_leap(data):
print("是闰年")
else:
print("不是闰年")
1.2 定义一个函数cubic(n),该函数返回1~n的立方和。
def cubic(n):
sum = 0;
for i in range(0,n):
sum = sum + i**2
return sum;
num = input("请输入一个数字:")
result = cubic(num)
print("这个数字的立方和是:"+str(result))
1.3定义一个函数,该函数返回n项的阶乘和,即为1!+2!+…+n!。
def jiecheng(n):
result = 1
for i in range(1,int(n)+1):
result = result * i
if result == 1:
return 1
else:
return result + jiecheng(int(n)-1)
num = input("请输入一个数字:")
print("这个数的阶乘和为:"+str(jiecheng(num)))
1.4 定义一个函数prime§,该函数返回素数,当用户传入参数p为素数时返回True,否则返回False。
def prime(p):
if p == 1:
return True;
for i in range(2,int(p/2)+1):
if(p%i == 0):
return False
return True
number = input("请输入一个数字:")
if prime(number):
print("这个数字是素数")
else:
print("这个数字不是素数")
1.5 定义一个函数show_prime(),将题目1.4中的函数封装成模块,在本题中导入该模块,并显示从1到100中的所有素数。
import moudle
def show_prime():
for i in range(1,100):
if moudle.prime(i) == True:
print(str(i) + "是素数")
show_prime()
1.6 定义一个函数,该函数接受一个列表list作为参数,用于去除list中重复的元素。
def distinct(temp_list):
list_len = len(temp_list);
for i in range(0,list_len):
for j in range(0,list_len)[::-1]:
try:
if temp_list[i] == temp_list[j] and i != j:
temp_list.remove(temp_list[j])
list_len = list_len -1
except:
pass
return temp_list
temp_list = [1,2,3,4,3,2,8,4,8,1,5,2]
print("原列表",end=':')
print(temp_list)
temp_list = distinct(temp_list)
print("新列表",end=":")
print(temp_list)
1.7 编写一个函数change(str1),其功能是对参数str1进行大小写转换,将大写字母转换为小写字母;小写字母转换为大写字母;非英文字符不转换。
注意:该功能类似于str对象中的swapcase()方法
def change(str1):
new_str = ""
for item in str1:
if item >= 'a' and item <='z':
item = chr(ord(item) - 32)
elif item >='A' and item <= 'Z':
item = chr(ord(item) + 32);
new_str = new_str + item
return new_str
item = input("请输入一段字符串:")
change_str = change(item)
print("转换后的字符串是:"+str(change_str))
2.1 定义一个函数,要求输出n行n列的矩阵,以及其转置形式。
例如,当参数为3时,先输出①,再输出②
① ②
def print_martix(n):
print("martix 1:")
for i in range(1,n**2+1):
if i % n == 0:
print(i)
else:
print(i,end='\t')
print("martix 2:")
for i in range(n):
for j in range(n):
print(' %2d ' % (j * n + i + 1), end="")
print()
num = int(input("请输入一个数字:"))
print_martix(num)
2.2 实现一个函数funcos,用下列公式cos(x)近似值,精确到最后一项的绝对值小于eps(绝对值小于eps的项不要加,例如最后一项如果小于eps=0.0001,则不将其加进来):cos (x) = x^0 / 0! - x^2 / 2! + x^4 / 4! - x^6 / 6! + ?
函数接口定义:funcos(eps,x),其中用户输入的参数为eps和x;函数funcos应返回用给定公式计算出来,保留小数4位。
def jc(n):
sum = 1
if n == 0 :
sum = 1
for i in range(1,n+1):
sum *= i
return sum
def funcos(eps,x):
key = 1
v = 0
sum = 0
while True:
if abs(x**v/jc(v)) < eps:
break
else:
sum = sum + (key)*(x**v/jc(v))
v += 2
key = key * (-1)
return sum
eps = float(input("请输入eps的值:"))
x = float(input("请输入x的值:"))
print(funcos(eps,x))