跳至主要內容

嘉兴大学Python函数专项练习

AI悦创原创Python 一对一教学嘉兴大学PythonPython 一对一教学嘉兴大学Python大约 4 分钟...约 1285 字

先做题,全部思考好了,写完了。再看答案。

1. 题目

  1. 平方函数

    定义一个函数,接收一个整数列表,然后返回一个新列表,其中包含原列表中每个元素的平方。

  2. 回文检测

    创建一个函数,接收一个字符串,返回这个字符串是否是回文(即正读反读都一样的字符串)。abccba

  3. 素数检测

    编写一个函数,接收一个正整数,返回这个数字是否是素数。

    素数是一个自然数,大于1的情况下,只有1和它自身两个正因数。换句话说,如果一个数不能被任何比它小且大于1的数整除,那么它就是素数。

    例如,2,3,5,7,11,13,17等都是素数。这是因为除了1和它们自身之外,没有其他数可以整除它们。但是,6就不是素数,因为它可以被2和3整除。

  4. 斐波那契序列

    定义一个函数,接收一个整数 n,返回斐波那契序列的第n项。

  5. 列表元素的平均值

    创建一个函数,接收一个数字列表,返回这个列表元素的平均值。

2. Answer

2.1 平方函数

1
def square_list(nums):
    new_lst = []
    for i in nums:
        r = i ** 2
        new_lst.append(r)
    return new_lst


nums = [1, 2, 3, 4]
over_lst = square_list(nums)
print(over_lst)

这个函数首先检查输入是否为列表。如果是,它使用列表推导式返回一个新列表,其中每个元素都是原列表中相应元素的平方。如果输入不是列表,它会抛出一个 TypeError。

2.2 回文检测

def is_palindrome(s):
    if isinstance(s, str):
        return s == s[::-1]
    else:
        raise TypeError("Input should be a string.")

这个函数首先检查输入是否为字符串。如果是,它会检查这个字符串是否与其反转相同(使用切片操作[::-1]进行反转)。如果两者相同,函数返回 True,否则返回 False。如果输入不是字符串,它会抛出一个 TypeError。

2.3 素数检测

def is_prime(n):
    if isinstance(n, int) and n > 1:
        for i in range(2, int(n**0.5) + 1):
            if n % i == 0:
                return False
        return True
    else:
        raise ValueError("Input should be an integer greater than 1.")

这个函数首先检查输入是否为大于 1 的整数。如果是,它会检查从 2 到 n 的平方根(+1以保证闭区间)的所有整数是否能够整除n。如果找到一个这样的数字,函数返回 False,否则返回 True。如果输入不是大于1的整数,函数会抛出一个 ValueError。

2.4 斐波那契序列

def fibonacci(n):
    if isinstance(n, int) and n >= 0:
        if n == 0:
            return 0
        elif n == 1:
            return 1
        else:
            a, b = 0, 1
            for _ in range(n - 1):
                a, b = b, a + b
            return b
    else:
        raise ValueError("Input should be a non-negative integer.")

这个函数首先检查输入是否为非负整数。如果是,它返回斐波那契序列的第 n 项(假设第 0 项为 0,第 1 项为 1)。这个函数使用一个简单的循环,每次迭代都更新 a 和 b 的值,直到得到所需的项。如果输入不是非负整数,函数会抛出一个 ValueError。

2.5 列表元素的平均值

def average(nums):
    if isinstance(nums, list) and nums:
        return sum(nums) / len(nums)
    else:
        raise ValueError("Input should be a non-empty list.")

这个函数首先检查输入是否为非空列表。如果是,它返回列表中所有数字的平均值(

使用 sum 函数计算总和,然后除以列表的长度)。如果输入不是非空列表,函数会抛出一个 ValueError。

这些函数都具有清晰的输入验证和错误处理,以便在输入不满足预期条件时给出有用的反馈。

公众号:AI悦创【二维码】

AI悦创·编程一对一

AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发、Web、Linux」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh

C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh

方法一:QQopen in new window

方法二:微信:Jiabcdefh

上次编辑于:
贡献者: AndersonHJB
你认为这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度