1、编写一个Python函数,接受一个字符串作为参数,判断一个字符串是不是回文字符串,返回值是一个布尔类型。
# 第一个解题方法
def fun_1(s):
if s[::] == s[::-1]:
return True
else:
return False
print(fun_1("abccba"))
# 第二个解题方法
def fun_1(s):
for i in range(len(s)):
if s[i] != s[-i-1]:
return False
else:
return True
print(fun_1("abccba"))
# 第三个解题方法
def fun_1(s):
if len(s) <= 1:
return True
elif s[0] != s[-1]:
return False
else:
return fun_1(s[1:-1])
print(fun_1("abccba"))
2、编写一个Python程序,解决以下问题:现在有三个数,分别为a,b,c,它们之间的和为19,取值范围1-9(包括9),但是a,b,c之间不相等,求出能组成多少个互不相同并且不重复的数字?
count = 0
for a in range(1, 10):
for b in range(1, 10):
c = 19 - a - b
if a != b != c != a:
print(100*a+10*b+c, end=' ')
count += 1
if count % 5 == 0:
print()
3、编写一个Python程序,使用列表推导式创建一个包含1到20之间所有平方数的列表。
# 第一种方法
n_list = [i**2 for i in range(1, 21)]
print(n_list)
# 第二种方法
ls = [x*x for x in range(1, 21)]
print(ls)
4、编写一个递归函数,求n的阶乘。
def rec(n:int):
if n == 1:
return 1
else:
return n * rec(n-1)
print(rec(5))
# 以下是非递归函数写法:
def fun_4(n):
jc = 1
for i in range(1, n+1):
jc *= i
return jc
print(fun_4(5))
5、编写一个python函数,计算并返回100到200之间所有的素数列表。
def fun_5():
ls = []
for i in range(100, 201):
for j in range(2, int(i**0.5)+1):
if i % j == 0:
break
else:
ls.append(i)
return ls
print(fun_5())
6、编写一个python函数,可接收一个数字列表,并返回其中的最大值和最小值, 要求:不可以在自定义函数内调用python内置函数。
def fun_6(ls:list):
max1 = ls[0]
min1 = ls[0]
for i in ls:
if i > max1:
max1 = i
if i < min1:
min1 = i
return max1, min1
l = [5, 6, 2, 3, 10, 15, 26, 69, 19]
print(fun_6(l))
7、编写一个python函数,可接收一个列表和要查找的值key,使用顺序查找法,输出key在列表中的下标,找不到的话,输出-1,要求:不可以在定义函数内调用python内置方法。
def fun_7(ls:list, key):
for i in range(len(ls)):
if key == ls[i]:
return i
else:
return -1
l = [5, 2, 6, 8, 21, 35, 61, 32]
print(fun_7(l, 8))
8、编写一个递归函数,返回第n项斐波那契数列的值。
def fun_8(n:int):
if n==1 or n==2:
return 1
else:
return fun_8(n-1) + fun_8(n-2)
print(fun_8(6))
9、使用列表推导式,生成包含10个范围在[10, 30]之间随机数的列表。
import random
ls = [random.randint(10,30) for i in range(10)]
print(ls)
10、编写一个python函数,接收一个整型变量n为参数,输出n行的九九乘法表。
def fun_10(n:int):
for i in range(1, n+1):
for j in range(1, i+1):
print(f"{i}*{j}={i*j:<2d}", end=' ')
print()
print(fun_10(5))
11、编写一个python函数,接收一个整型变量n为参数,输出n行的杨辉三角形。
def fun_11(n:int):
ls = [[1]*i for i in range(1, n+1)]
for i in range(n):
for j in range(i+1):
if j==0 or j==i:
pass
else:
ls[i][j] = ls[i-1][j] + ls[i-1][j-1]
print(ls)
fun_11(6)