浙大版《Python 程序设计》题目集第4章-7——第4章-11

  • 第4章-7 统计学生平均成绩与及格人数
  • 第4章-8 求分数序列前N项和
  • 第4章-9 查询水果价格
  • 第4章-10 最大公约数和最小公倍数
  • 第4章-11 判断素数

第4章-7 统计学生平均成绩与及格人数

本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。

输入格式:
输入在第一行中给出非负整数N,即学生人数。第二行给出N个非负整数,即这N位学生的成绩,其间以空格分隔。

输出格式:
按照以下格式输出:

average = 成绩均值
count = 及格人数
其中平均值精确到小数点后一位。

输入样例:

5
77 54 92 73 60

输出样例:

average = 71.2
count = 4

答案样例:

i = int(input())
if i == 0:
    print('average = 0.0')
    print('count = 0')
else:
    s = list(map(int,input().split()))
    s1 = [j for j in s if j >= 60]  
    print('average = {:.1f}'.format(sum(s)/len(s)))
    print('count = {}'.format(len(s1)))

第4章-8 求分数序列前N项和

本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+… 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。

输入格式:
输入在一行中给出一个正整数N。

输出格式:
在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。

输入样例:

20

输出样例:

32.66

答案样例:

a = int(input())
s =0
x = 1
y = 1
for i in range(a):
    x,y = y,x+y
    s += y/x
print('{:.2f}'.format(s))

第4章-9 查询水果价格

给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄(grape),单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。

首先在屏幕上显示以下菜单:

[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
用户可以输入编号1~4查询对应水果的单价。当连续查询次数超过5次时,程序应自动退出查询;不到5次而用户输入0即退出;输入其他编号,显示价格为0。

输入格式:
输入在一行中给出用户连续输入的若干个编号。

输出格式:
首先在屏幕上显示菜单。然后对应用户的每个输入,在一行中按格式“price = 价格”输出查询结果,其中价格保留两位小数。当用户连续查询次数超过5次、或主动输入0时,程序结束。

输入样例1:

3 -1 0 2

输出样例1:

[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
price = 4.10
price = 0.00

输入样例2:

1 2 3 3 4 4 5 6 7 8

输出样例2:

[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
price = 3.00
price = 2.50
price = 4.10
price = 4.10
price = 10.20

答案样例:

s = map(int,input('').split())
count = 0
print('[1] apple\n[2] pear\n[3] orange\n[4] grape\n[0] exit')
for i in s:
    if count == 5:
        break
    if i == 1:
        print('price = {:.2f}'.format(3))
        count += 1
    elif i == 2:
        print('price = {:.2f}'.format(2.5))
        count += 1
    elif i == 3:
        print('price = {:.2f}'.format(4.1))
        count += 1
    elif i == 4:
        print('price = {:.2f}'.format(10.2))
        count += 1
    elif i == 0:
        break
    else:
        print('price = {:.2f}'.format(0))

第4章-10 最大公约数和最小公倍数

本题要求两个给定正整数的最大公约数和最小公倍数。

输入格式:
输入在一行中给出两个正整数M和N(≤1000)。

输出格式:
在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。

输入样例:

511 292

输出样例:

73 2044

答案样例:

a,b = list(map(int,input().split()))
min1 = min(a,b)
max1 = max(a,b)
while True:
    if a % min1 == 0 and b % min1 == 0:
        break
    min1 -= 1
while True:
    if max1 % a == 0 and max1 % b== 0:
        break
    max1 += 1
print('{} {}'.format(min1,max1))

第4章-11 判断素数

判断一个给定的正整数是否素数

输入格式:
输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于1000000 的需要判断的正整数

输出格式:
对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No

输入样例:
在这里给出一组输入。例如:

2
11
111

输出样例:
在这里给出相应的输出。例如:

Yes
No

答案样例:

n = int(input())
for i in range(n):
    a = int(input())
    for j in range(2,int(a**0.5)+1):
        if a % j == 0:
            print('No')
            break
    else:
        print('Yes')

你可能感兴趣的:(浙大版《Python,程序设计》题目集解答,python)