浙大版《Python 程序设计》题目集第二章答案(自用)


第2章-1 计算 11+12+13+…+m (30分)
number = int(input())
result = 0
for i in range(11,number+1):
    result += i
print("sum = {0}".format(result))

这里一开始格式错了 漏了 空格

第2章-2 计算分段函数[1] (10分)
number = float(input())
result = 0
if number != 0:
    result = 1/number
else:
    result = 0
print("f({0:.1f}) = {1:.1f}".format(number,result))

第一行如果用int答案是部分正确 不知道为什么

第2章-3 阶梯电价 (15分)
number = int(input())
result = 0
price1 = 0.53
price2 = 0.05 + price1
if number < 0:
    print("Invalid Value!")
else:
    if number <= 50:
        result = number * price1
    else:
        result = 50 * price1 + (number - 50)*price2
    print("cost = {0:.2f}".format(result))
第2章-4 特殊a串数列求和 (20分)
list1 = input().split()
result = 0
number1 = list1[0]
number2 = list1[1]
for i in range(1,int(number2)+1):
    result += int(i*number1)
print("s = {0}".format(result))
第2章-5 求奇数分之一序列前N项和 (15分)
number = int(input())
result = 0.0
num = 1
for index in range (0,number):
    result += 1/num
    num += 2
print("sum = {0:6f}".format(result))
第2章-6 求交错序列前N项和 (15分)
number = int(input())
result = 0
up = 1
down = 1
for index in range(1,number+1):
    if index % 2 != 0:
        result += index/down
    else:
        result -= index/down
    down += 2
print("{0:.3f}".format(result))
第2章-7 产生每位数字相同的n位数 (30分)
a,b= input().split(',')
a = str(int(a))
b = int(b)
result = ''
for i in range(b):
    result += a
print(result)
第2章-8 转换函数使用 (30分)
a,b= input().split(',')
print(int(a,int(b)))

int(‘45’,8) = 37

第2章-9 比较大小 (10分)
list1 = input().split()
list2 = []
for i in list1:
    list2.append(int(i))
list2.sort()
str1 = ""
str1 += str(list2[0]) + "->"
str1 += str(list2[1]) + "->"

str1 += str(list2[2])
print(str1)
第2章-10 输出华氏-摄氏温度转换表 (15分)
string1 = input()
list1 = string1.split()
lower = int(list1[0])
upper= int(list1[1])
if lower > upper or lower > 100 or upper > 100:
    print("Invalid.")
else:
    print("fahr celsius")
    for i in range(lower,upper+1,2):
        print("{:d}{:>6.1f}".format(i,5*(i-32)/9))

第2章-11 求平方与倒数序列的部分和 (15分)
a,b = input().split()
result = 0
for i in range(int(a), int(b)+1):
    result += i*i + 1/i
print("sum = {0:.6f}".format(result))
第2章-12 输出三角形面积和周长 (15分)
import math
a,b,c = input().split()
a = int(a)
b = int(b)
c = int(c)
result = 0
s = (a + b + c)/2

if a + b <= c or a + c <= b or b + c <= a:
    print("These sides do not correspond to a valid triangle")
else:
    print("area = {0:.2f}; perimeter = {1:.2f}".format(math.sqrt(s*(s-a)*(s-b)*(s-c)),s*2))
第2章-13 分段计算居民水费 (10分)
x = int(input())
result = 0
if x <= 15:
    result = 4*x/3
else:
    result = 2.5*(x)-17.5
print("{0:.2f}".format(result))
数字 格式 输出 描述
3.1415926 {:.2f} 3.14 保留小数点后两位
3.1415926 {:+.2f} +3.14 带符号保留小数点后两位
-1 {:+.2f} -1.00 带符号保留小数点后两位
2.71828 {:.0f} 3 不带小数
5 {:0>2d} 05 数字补零 (填充左边, 宽度为2)
5 {:x<4d} 5xxx 数字补x (填充右边, 宽度为4)
10 {:x<4d} 10xx 数字补x (填充右边, 宽度为4)
1000000 {:,} 1,000,000 以逗号分隔的数字格式
0.25 {:.2%} 25.00% 百分比格式
1000000000 {:.2e} 1.00e+09 指数记法
13 {:>10d} 13 右对齐 (默认, 宽度为10)
13 {:<10d} 13 左对齐 (宽度为10)
13 {:^10d} 13 中间对齐 (宽度为10)
第2章-14 求整数段和 (15分)
m, n = input().split()
m = int(m)
n = int(n)
summ = 0
count = 0
for i in range(m,n+1):
    summ += i
    count += 1    
    print("{:>5d}".format(i),end="")
    if count % 5 == 0 or i == n:
        print("")

    
print("Sum = {:d}".format(summ))


发布了21 篇原创文章 · 获赞 0 · 访问量 487

猜你喜欢

转载自blog.csdn.net/qq_39901722/article/details/104546748