Python基础教程--阶段编程考试题

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值