浙大python习题超详细思路

浙大python习题超详细思路,第1张

人生苦短,我用python
https://pintia.cn/problem-sets/1111652100718116864/problems/type/7

题源来自pta 没有读者验证码,只是验证了一些数据
本文适合新手小白,需要看pat原题的可以登录上面的网站看,后面的习题在持续更新中…

浙大python习题\第2章\1.求很多数相加.py
#20
m=int(input())
s=(11+m)*(m-11+1)//2   #通项公式,//表示普通除法
print(f'sum={s}')
浙大python习题\第2章\2.分段函数.py
#当x=0时,f(x)=0,x不=0时,f(x)=1/x
x=float(input())    #把x变成小数
y=1/x if x else 0
print(f'f({x:.1f})={y:.1f}')
#{}里表示变量,.1f表示取一位小数,输出f(x)=y
浙大python习题\第2章\3.阶梯电价.py
#为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分
# 为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;
# 超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。请编写程序计算电费。

#输入格式:
#输入在一行中给出某用户的月用电量(单位:千瓦时)。

#输出格式:
#在一行中输出该用户应支付的电费(元),结果保留两位小数,格式如:“cost = 应付电费值”;
#若用电量小于0,则输出"Invalid Value!"。



x=int(input())
if(x<0):
    print("Invalid Value!")  #输入数小于0,表示输入错误
elif(x<=50):
    cost=0.53*x
    print(f'cost={cost:.2f}')  
else:
    cost=26.5+(x-50)*0.58     #26.5是50度电的钱
    print(f'cost={cost:.2f}')



浙大python习题\第2章\4.a数列求和.py
#给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。

#输入格式:
#输入在一行中给出不超过9的正整数a和n。

#输出格式:
#在一行中按照“s = 对应的和”的格式输出

a,n=input().split()   #a,n都是字符串类型
y=0
for i in range(1,int(n)+1):  #把n化为整数,i去遍历1到n+1
    y+=int(a*i)             #累加,int用于把字符串转换成数字,a*i用于构造a,aa,aaa....
print(f's={y}')
浙大python习题\第2章\5.奇数分之一求和.py
#计算序列 1 + 1/3 + 1/5 + … 的前N项之和。
n=int(input())
y=0
for i in range(n):
    y+=1/(2*i+1)    #如果是2*i-1,i就从1开始遍历
print(f'sum={y:.6f}') 
浙大python习题\第2章\6.交错数列求和.py
#计算交错序列 1-2/3+3/5-4/7+5/9-6/11+… 的前N项之和
n=int(input())
y=0
for i in range(n):
    y+=((-1)**i)*(i+1)/(2*i+1)   #**表示次方,(i+1)/(2*i+1)是通项公式
print(f'sum={y:.3f}')


浙大python习题\第2章\7.每位数字相同的n位数.py
#读入2个正整数A和B,1<=A<=9, 1<=B<=10,产生数字AA…A,一共B个A
a,n=map(int,input().split(','))#把列表内每个值都变成int型
print(str(a)*n)  #把a强制转换成字符类型,输出n个a,
#首先输入的a和n是整数 ,是把a转换成字符在乘以n这个整数
浙大python习题\第2章\8.任意进制转十进制.py
#输入一个整数和进制,转换成十进制输出
a,b=input().split(',')     #输入a,b两个数
y=int(a,int(b))   #int函数的用法,把a的b进制转换成十进制
print(y)
浙大python习题\第2章\9.三个整数比大小.py
#本题要求将输入的任意3个整数从小到大输出。
l=list(map(int,input().split()))  #都转换成整数存在列表里
l.sort()                          #sort表示使l表中的数升序
print(*l,sep='->')           #*加序列l,表示可以遍历l里的数,sep表示分隔
浙大python习题\第2章\10.华氏和摄氏温度转化.py
#输入2个正整数lower和upper(lower≤upper≤100),请输出一张取值范围为[lower,upper]、
# 且每次增加2华氏度的华氏-摄氏温度转换表。
#温度转换的计算公式:C=5×(F−32)/9,其中:C表示摄氏温度,F表示华氏温度。
lower,upper=map(int,input().split())
print("Invalid."if lower > upper else "fahr celsius")
#输入正确就显示fahr celsius,输入不正确就显示Invalid
for i in range(lower,upper + 1,2):  #进行间隔为2的遍历
    c=5*(i-32)/9
    print(f'{i}{c:>6.1f}')
    #>表示输出的数字靠右对齐,6表示占6个字符
浙大python习题\第2章\11.平方和倒数序列.py
#本题要求对两个正整数m和n(m≤n)编写程序,计算序列和
#m^2+1/m+(m+1)^2+1/(m+1)+...+n^2+1/n
m,n=map(int,input().split())
s=0.0
for i in range(m,n+1):
    s+=i**2+1/i    #通项公式
print(f'sum={s:.6f}')

浙大python习题\第2章\12.求三角形面积和周长.py
#本题要求编写程序,根据输入的三角形的三条边a、b、c,计算并输出面积和周长.
# 注意:在一个三角形中, 任意两边之和大于第三边。三角形面积计算公式:
#area=\sqrt{​s(s−a)(s−b)(s−c)}​​ ,其中s=(a+b+c)/2。
a,b,c=map(int,input().split())
if 2 * max(a,b,c)<a+b+c:    #只用比较两个小边之和大于第三边就是三角形
    s=(a+b+c)/2
    area=(s*(s-a)*(s-b)*(s-c))**0.5
    print(f'area={area:.2f};perimeter={s*2:.2f}')
else:
    print('These sides do not correspond to a valid triangle')
浙大python习题\第2章\13.求水费.py
#为鼓励居民节约用水,自来水公司采取按用水量阶梯式计价的办法,
# 居民应交水费y(元)与月用水量x(吨)相关:
# 当x不超过15吨时,y=4x/3;超过后,y=2.5x−17.5。
x=int(input())
y=4*x/3 if x<15 else 2.5*x-17.5 #用分段函数
print(f'sum={y:.2f}')  #题目要求保留两位小数
浙大python习题\第2章\14.输出区间内整数及其和.py
#给定两个整数A和B,输出从A到B的所有整数以及这些数的和。
a,b = map(int,input().split())
for i in range(a,b+1):
    print(f'{i:>5}',end="" if (i-a+1)%5 and i!=b else "\n" )
    #设置输出格式,每个数字占5个字符,5个数字之后输出回车,i=b时也要回车让sum显示在下一行
    y=(a+b)*(b-a+1)/2   #求和
print(f'sum={y}') 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/741657.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存