浙大Python程序设计(MOOC)习题答案

章节

第一章

7-1 从键盘输入两个数,求它们的和并输出

a=int(input())
b=int(input())
print(a+b)

7-2 从键盘输入三个数到a,b,c中,按公式值输出

在同一行依次输入三个值a,b,c,用空格分开,输出 b*b-4*a*c的值

a,b,c=input().split()
a,b,c=int(a),int(b),int(c)
print(b*b-4*a*c)

7-3 输出“人生苦短,我学Python”

print("人生苦短,我学Python")

7-4 写字母H

用*编写程序,输出H

for i in range(1,6):
    if i==3:
        print("*****")
    else:
        print("*   *")

第二章

7-1 计算 11 + 12 + 13 + ⋯ + m 11+12+13+\dots+m 11+12+13++m

输入一个正整数 m ( 20 ≤ m ≤ 100 ) m(20\le m\le100) m(20m100),计算 11 + 12 + 13 + ⋯ + m 11+12+13+\dots+m 11+12+13++m的值。
输出格式:
在一行中按照格式 “ s u m = S ” “sum = S” sum=S输出对应的和 S S S

m=int(input())
S=0
for i in range(11,m+1):
    S=S+i
print("sum = {}".format(S))

7-2 计算分段函数

计算下列分段函数的值:
g ( x ) = { 0 x = 0 1 2 x x ! = 0 g(x)=\begin{cases}0\quad x=0\\\frac{1}{2x}\quad x!=0\end{cases} g(x)={ 0x=02x1x!=0
输出格式:
在一行中按 “ g ( x ) = r e s u l t ” “g(x) = result” g(x)=result的格式输出,其中 x x x r e s u l t result result都保留 3 3 3位小数。

x=float(input())
if x!=0:
    result=1/(2*x)
else:
    result=0
print("g({0:.3f}) = {1:.3f}".format(x,result))

7-3 阶梯电价

居民用户电价分为两个“阶梯”:月用电量 50 50 50千瓦时(含 50 50 50千瓦时)以内的,电价为 0.53 0.53 0.53元/千瓦时;超过 50 50 50千瓦时的,超出部分的用电量,电价上调 X X X元/千瓦时。
输入格式:
一行中输入某用户的月用电量(单位:千瓦时)和电价上调的 X X X值(单位:元),中间用空格分开。
输出格式:
在一行中输出该用户应支付的电费(元),结果保留两位小数,格式如:“cost = 应付电费值”。

power,x=input().split()
power=int(power)
x=float(x)
if power<=50:
    cost=0.53*power
else:
    cost=0.53*50+(power-50)*(x+0.53)
print("cost = {:.2f}".format(cost))

7-4 求奇数分之一序列前N项近似和

计算序列的前 N N N项近似和 1 + 1 / 3 + 1 / 5 + ⋯ 1+1/3 + 1/5 + \cdots 1+1/3+1/5+ 输出格式:
在一行中按照 “ s u m ≈ S ” “sum ≈ S” sumS的格式输出近似和 S S S S S S是大于序列和的最小整数

import math
N=int(input())
s=0
for i in range(1,N+1,2):
    a=float(1/i)
    s=s+a
S=math.ceil(s)
print("sum ≈ {}".format(S))

7-5 求交错序列前N项和

计算交错序列的前 N N N项之和 1 − 2 / 3 + 3 / 5 − 4 / 7 + 5 / 9 − 6 / 11 + ⋯ 1-2/3+3/5-4/7+5/9-6/11+\cdots 12/3+3/54/7+5/96/11+

N=int(input())
s=0
for i in range(1,N+1):
    if i%2==1:
        s=s+i/(2*i-1)
    else:
        s=s-i/(2*i-1)
print("{:.3f}".format(s))

7-6 产生每位数字相同的n位数

读入 2 2 2个正整数 A A A B B B 1 ≤ A ≤ 9 , 1 ≤ B ≤ 10 1\le A\le9, 1\le B\le10 1A9,1B10,产生数字AA…A,一共B个A

a,b=input().split(",")
a,b=int(a),int(b)
for i in range(1,b+1):
    print(a,end='')

7-7 转换函数使用

输入一个整数和进制,转换成十进制输出

a,b=input().split(",")
a,b=int(a),int(b)
c=(a//10)*b+(a%10)
print(c)

7-8 比较大小

输入 3 3 3个不同整数,这 3 3 3个整数分别对应 3 3 3个字母的ASCII码值,把这 3 3 3个字母按它的ASCII码值从小到大输出。

a,b,c=input().split()
a,b,c=int(a),int(b),int(c)
i,j,k=chr(a),chr(b),chr(c)
if a>b:
    i,j=j,i
if a>c:
    i,k=k<
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值