跳至主要內容

嘉兴大学Python期末冲刺01

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

Question 1

在考生目录下,要求程序 PROG1.P 的功能是:

根据下面的公式,求 s 的值。

s=14+19+116+...+1100100s = \frac{1}{4} + \frac{1}{9} + \frac{1}{16}+...+\frac{1}{100*100}

部分源程序存在文件 PROGI.PYopen in new window 中,请将运算结果存入变量 s 中。

1. Answer

s = 0
for i in range(2, 101):  # 开始是 2,结束在 100
    s += 1/(i*i)
print(s)

2. 思路

  1. 理解问题:我们的任务是求出数列 s=14+19+116+...+1100100s = \frac{1}{4} + \frac{1}{9} + \frac{1}{16}+...+\frac{1}{100*100} 的和。可以看出这个数列实际上是每一项都是前一个整数的平方的倒数,从 2 的平方开始,直到 100 的平方。是不是不理解?我接下来好好给你解释:

    在这个问题中,我们有一个数列 s=14+19+116+...+1100100s = \frac{1}{4} + \frac{1}{9} + \frac{1}{16}+...+\frac{1}{100*100} 。你可以看到,每一项(也就是每一个加法的部分)都是一个整数的平方的倒数。"倒数"就是 1 除以那个数。比如 4 的倒数就是 14\frac{1}{4} ,9 的倒数就是 19\frac{1}{9}

    当我们说每一项是一个整数的平方的倒数时,我们是指:

    • 第一项 14\frac{1}{4} 是 2 的平方(即 4)的倒数。
    • 第二项 19\frac{1}{9} 是 3 的平方(即 9)的倒数。
    • 第三项 116\frac{1}{16} 是 4 的平方(即 16)的倒数。

    以此类推,直到最后一项 1100100\frac{1}{100*100},它是 100 的平方(即 100*100)的倒数。

    我们需要计算所有这些项的总和。这就是我们用循环来做的原因:我们可以从 2 开始,一直循环到 100,对每个整数,我们计算它的平方的倒数,然后加到总和上。

  2. 设计算法:我们可以使用一个循环来求解这个问题。我们初始化一个变量 s,这个变量将用于保存我们的结果。然后,我们遍历从 2 到 100 的所有整数。对于每一个整数,我们计算它的平方的倒数,然后加到 s 上。

  3. 编写代码

# 初始化结果变量
s = 0

# 从2到100(包括100),遍历每一个整数
for i in range(2, 101):
    # 对每一个整数,我们计算它的平方的倒数
    term = 1/(i*i)
    
    # 然后我们把这个结果加到s上
    s += term

# 打印结果
print(s)
  1. 运行代码和检查结果:运行你的代码,检查输出是否正确。如果你看到一个浮点数,那就是 ss 的值。

3. 涉及知识点

在 Python 中,for 循环是一种非常重要的控制结构。它可以让你对一系列元素进行相同的操作。下面是一个基本的 for 循环的结构:

for 变量 in 序列:
    代码块

这个循环将会遍历序列中的每一个元素,并将每一个元素赋值给变量,然后执行一次代码块。序列可以是任何可迭代的对象,例如列表(list)、元组(tuple)或者字符串(str)等等。

举个例子,比如我们有一个列表,里面存储了一些数字:

numbers = [1, 2, 3, 4, 5]

我们可以用 for 循环来遍历这个列表,打印出每一个元素:

for number in numbers:
    print(number)

这个程序将会输出:

1
2
3
4
5

在每一次循环中,number 变量都会被赋值为 numbers 列表中的一个元素,然后执行 print(number) 代码行。所以输出的就是列表中的每一个元素。

对于 for 循环,还有一个常用的用法是和 range() 函数一起使用。range() 函数可以生成一系列的数字。比如,range(5) 会生成一个包含 0, 1, 2, 3, 4 的序列。

比如我们要打印出 0 到 4 这 5 个数字:

for i in range(5):
    print(i)

这个程序将会输出:

0
1
2
3
4

希望这些基本的例子能帮助你理解 Python 中的 for 循环。请你试着编写一些简单的 for 循环,以加深理解。有任何问题,都欢迎继续提问!

4. 类似题

根据下面的公式,求 s 的值。

s=122+132+142+...+1502s = \frac{1}{2^2} + \frac{1}{3^2} + \frac{1}{4^2}+...+\frac{1}{50^2}

部分源程序存在文件 PROGI.PYopen in new window 中,请将运算结果存入变量 s 中。

Question 2

输入一组数(以逗号分隔),去掉一个最大值和一个最小值,求剩余值的平均值。

例如输入:1,2,3,4,5

输出结果为:3.0

1. Answer

def average_exclude_max_min():
    nums = input("请输入一组数(以逗号分隔):")
    num_list = [int(num) for num in nums.split(",")]
    
    # 去除一个最大值和一个最小值
    num_list.remove(max(num_list))
    num_list.remove(min(num_list))
    
    # 计算剩余数值的平均值
    avg = sum(num_list) / len(num_list)
    print("去掉一个最大值和一个最小值后的平均值为:", avg)

average_exclude_max_min()

2. 思路

  1. 获取并处理输入:这个问题要求你输入一组以逗号分隔的数。在 Python 中,可以使用 input() 函数来获取用户输入的字符串。然后你需要把这个字符串转换为一个包含数的列表。可以先使用字符串的 split() 方法来得到一个包含字符串形式的数的列表,然后使用列表推导式来把这个列表中的每一个元素转换为整数。

  2. 找出并去除最大值和最小值:一旦你有了这个整数列表,你就可以使用 Python 的 max()min() 函数来找到列表中的最大值和最小值。然后使用列表的 remove() 方法来去除这两个值。这个方法会删除列表中第一个出现的指定值。

  3. 计算剩余值的平均值:最后,你可以使用 Python 的 sum() 函数和列表的 len() 方法来计算剩余值的平均值。把列表中所有值的和除以列表中值的数量,就可以得到平均值。

现在你应该对如何解决这个问题有了更清晰的理解。我会给你提供一个详细的 Python 代码示例,以帮助你更好地理解这个过程:

# 步骤1:获取并处理输入
nums_str = input("请输入一组数(以逗号分隔):")  # 获取输入的字符串
nums_str_list = nums_str.split(',')  # 把字符串转换为字符串列表
nums_int_list = [int(i) for i in nums_str_list]  # 把字符串列表转换为整数列表

# 步骤2:找出并去除最大值和最小值
max_value = max(nums_int_list)  # 找到最大值
min_value = min(nums_int_list)  # 找到最小值
nums_int_list.remove(max_value)  # 去除最大值
nums_int_list.remove(min_value)  # 去除最小值

# 步骤3:计算剩余值的平均值
avg = sum(nums_int_list) / len(nums_int_list)  # 计算平均值

# 打印结果
print("去掉一个最大值和一个最小值后的平均值为:", avg)

Question 3

統计字符串中的所有小写字母的个数并输出:

例如,当字符串为 “This Is a Python Program”

输出:16

1. Answer

def count_lowercase_letters(input_string):
    count = 0
    for char in input_string:
        if char.islower():
            count += 1
    return count

input_string = "This Is a Python Program"
print(count_lowercase_letters(input_string))

2. 思路

我们将按照以下步骤来统计一个字符串中的小写字母数量:

  1. 创建一个变量 count,初始值为0,用于保存小写字母的数量。
  2. 遍历输入字符串中的每一个字符。
  3. 检查当前字符是否为小写字母,如果是,就让 count 的值增加1。
  4. 遍历完成后,count 的值就是字符串中的小写字母数量。

下面是详细注释的代码:

# 定义一个函数,输入参数是一个字符串
def count_lowercase_letters(input_string):
    # 初始化一个变量count为0,用来计数小写字母的数量
    count = 0

    # 对字符串中的每一个字符进行遍历
    for char in input_string:
        # 如果当前字符是小写字母
        if char.islower():
            # count值加1
            count += 1

    # 遍历完成后,返回小写字母的数量
    return count

# 测试的字符串
input_string = "This Is a Python Program"

# 调用上面定义的函数,并将结果打印出来
print(count_lowercase_letters(input_string))

Question 4

输入一个正整数,求其质因子,输出的质因子间隔 2 个空格。

例如:

输入一个正整数:

90

该数的质因子有:

2 3 3 5

1. 先搞清楚定义

质数是一个自然数,它大于 1 且除了 1 和它自身以外,不能被其他自然数整除。换句话说,质数只有两个因子,1 和它自身。

例如,数字 2,3,5,7,11,13,17,19,23,29,31等都是质数。

例如,我们来看看 7,它只能被 1 和 7 整除,无法被 2-6 之间的任何数字整除,所以它是质数。

公众号: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
评论
  • 按正序
  • 按倒序
  • 按热度