PY题目列表

  • 7-1 计算 11+12+13+...+m (30 分)
  • 7-2 计算分段函数[1] (10 分)
  • 7-3 阶梯电价 (15 分)
  • 7-4 特殊a串数列求和 (20 分)
  • 7-5 求奇数分之一序列前N项和 (15 分)
  • 7-6 求交错序列前N项和 (15 分)
  • 7-7 产生每位数字相同的n位数 (30 分)
  • 7-8 转换函数使用 (30 分)
  • 7-9 比较大小 (10 分)
  • 7-10 输出华氏-摄氏温度转换表 (15 分)
  • 7-11 求平方与倒数序列的部分和 (15 分)
  • 7-12 输出三角形面积和周长 (15 分)
  • 7-13 分段计算居民水费 (10 分)
  • 7-14 求整数段和 (15 分)

7-1 计算 11+12+13+…+m (30 分)

输入一个正整数m(20<=m<=100),计算 11+12+13+…+m 的值。

输入格式:
在一行输入一个正整数m。

输出格式:
在一行中按照格式“sum = S”输出对应的和S.

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

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

sum = 4040

思路:
这题很简单,直接把输入的数放到range中,然后从11开始通过for循环往上累加就行了,不过需要注意,因为range是右边不包括的,所以需要进行加一,不然会缺少一个数据

代码区:

sum = 0
m = int(input())#得到输入的数
for i in range(11, m + 1):#要加一,不然会缺少一个sum += i;
print("sum = {:d}".format(sum))

7-2 计算分段函数[1] (10 分)

本题目要求计算下列分段函数f(x)的值:

公式

输入格式:
输入在一行中给出实数x。

输出格式:
在一行中按“f(x) = result”的格式输出,其中x与result都保留一位小数。

输入样例1:
10
输出样例1:
f(10.0) = 0.1
输入样例2:
0
输出样例2:
f(0.0) = 0.0

思路:
同样很简单,来一个if语句判断就行了,如果等于0就输出0如不等于0就返回1 / n
注意,这里的输入需要用float()转化一下,因为是实数,最后输出一位小数

代码区:

def run(n):if(n == 0):return 0.0else:return 1 / n
n = float(input())
print("f({:.1f}) = {:.1f}".format(n, run(n)))

7-3 阶梯电价 (15 分)

为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。请编写程序计算电费。

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

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

输入样例1:
10
输出样例1:
cost = 5.30
输入样例2:
100
输出样例2:
cost = 55.50

思路:
和上一题一样,没什么花里胡哨的,就是简单用if进行判断就行了.(这里有深深的怨念!!错误输入的输出Invalid我给写成Invaid了,错了好多次就是看不出来哪里错了…)

代码区:

n = int(input())
price = 0
if(n >= 50):price = 0.53 * 50 + 0.58 * (n - 50)print("cost = {:.2f}".format(price))
elif n >= 0:price = 0.53 * nprint("cost = {:.2f}".format(price))
else:print("Invalid Value!")

7-4 特殊a串数列求和 (20 分)

给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。

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

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

输入样例:
2 3
输出样例:
s = 246

思路:
在python里面我们可以直接把字符乘上次数就可以实现这个效果了.

代码区:

a, n = input().split()
n = int(n)# 将n从字符转化为整型
sum = 0
for i in range(1, n + 1):# n要加一,才能包括nsum += int(a * i)#因为是字符串所以需要转化为整型相加
print("s = {:d}".format(sum))

7-5 求奇数分之一序列前N项和 (15 分)

本题要求编写程序,计算序列 1 + 1/3 + 1/5 + … 的前N项之和。

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

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

输入样例:
23
输出样例:
sum = 2.549541

思路:
我们可以使用列表推导式来进行简化,通过for循环到2*n(因为每次是加2的)然后if判断是奇数就把1 / i放入列表中
最后对列表求和就行了

代码区:

n = int(input())
res =  [1 / i for i in range(2 * n) if i % 2 == 1]
sumN = sum(res)
print("sum = {:.6f}".format(sumN))

7-6 求交错序列前N项和 (15 分)

本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+… 的前N项之和。

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

输出格式:
在一行中输出部分和的值,结果保留三位小数。

输入样例:
5
输出样例:
0.917

思路:
这题比上一题复杂一点但是不离其宗.本来想用列表推导式的,但是嫌麻烦懒得写就搞成普通的形式了,嘿嘿.
设置一个flag变量用来达到一加一减的效果
分子为1,2,3,4一步步加上去,分母为2*i-1,然后每次对应一个i就把flag取反乘进去.然后进行相加.

代码区:

n = int(input())
flag = 1
sum = 0.0
for i in range(1, n + 1):sum += flag * i / (2 * i - 1)flag = - flag
print("{:.3f}".format(sum))

7-7 产生每位数字相同的n位数 (30 分)

读入2个正整数A和B,1<=A<=9, 1<=B<=10,产生数字AA…A,一共B个A

输入格式:
在一行中输入A和B。

输出格式:
在一行中输出整数AA…A,一共B个A

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

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

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

    3  ,4

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

3333

思路:
因为输入中有空格,所以我们需要首先把空格给去除,在py里可以使用strip()方法来完成.最后用split(’,’)来把一行字符串以,来进行分割
最后将a字符乘上整型b就可以了

代码区:

a, b = input().strip().split(",")
b = int(b)
print(a * b)

7-8 转换函数使用 (30 分)

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

输入格式:
在一行输入整数和进制

输出格式:
在一行十进制输出结果

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

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

37

思路:
我们要首先把输入的数进行反转才能进行权重相乘得到新的进制数,(具体可以自行百度一下).我们用reversed函数来进行反转字符串.
通过for循环来取出每一位的数,然后转化成整型之后乘上我们需要转化的进制数的i次方.将值累加到res中就可以实现进制转化.

代码区:

a, b = input().split(",")
b = int(b)
res = 0
re = list(reversed(a))
for i in range(len(re)):res += int(re[i]) * b ** i
print(res)

7-9 比较大小 (10 分)

本题要求将输入的任意3个整数从小到大输出。

输入格式:
输入在一行中给出3个整数,其间以空格分隔。

输出格式:
在一行中将3个整数从小到大输出,其间以“->”相连。

输入样例:
4 2 8
输出样例:
2->4->8

思路:
我的想法是先把输入的数存到列表中然后进行排序,然后按大小顺序输出
(不过我这的做法有点麻烦,可以用列表推导式简单一点)
代码区:

nums = input().split()
newNums = []
for num in nums:newNums.append(int(num))
newNums.sort()
print("{:d}->{:d}->{:d}".format(newNums[0], newNums[1], newNums[2]))

7-10 输出华氏-摄氏温度转换表 (15 分)

输入2个正整数lower和upper(lower≤upper≤100),请输出一张取值范围为[lower,upper]、且每次增加2华氏度的华氏-摄氏温度转换表。

温度转换的计算公式:C=5×(F−32)/9,其中:C表示摄氏温度,F表示华氏温度。

输入格式:
在一行中输入2个整数,分别表示lower和upper的值,中间用空格分开。

输出格式:
第一行输出:“fahr celsius”

接着每行输出一个华氏温度fahr(整型)与一个摄氏温度celsius(占据6个字符宽度,靠右对齐,保留1位小数)。

若输入的范围不合法,则输出"Invalid."。

输入样例1:
32 35
输出样例1:
fahr celsius
32 0.0
34 1.1
输入样例2:
40 30
输出样例2:
Invalid.

思路:
首先定义一个函数来完成华氏度和摄氏度的转化,这个就是按照转化方程写就完事了.
我们先对输入值进行有效判断,如果lower大于upper或者两者有大于100的就输出无效值.
如果符合输入条件,就以步长为2的range来输出两个温度
注意格式因为要靠右对齐所以要用>
代码区:

def trans(f):c = (f - 32) / 9 * 5return c
lower, upper = input().split()
lower = int(lower)
upper = int(upper)
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, trans(i)))

7-11 求平方与倒数序列的部分和 (15 分)

本题要求对两个正整数m和n(m≤n)编写程序,计算序列和

输入格式:
输入在一行中给出两个正整数m和n(m≤n),其间以空格分开。

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

输入样例:
5 10
输出样例:
sum = 355.845635

思路:
我们可以观察式子,是i的次方加上1/i组成
我们可以用列表推导式来实现
然后将列表求和

代码区:

m, n = input().split()
m = int(m)
n = int(n)
sum1 = 0
res = [i ** 2 + 1 / i for i in range(m, n + 1)]
sum1 = sum(res)
print("sum = {:.6f}".format(sum1))

7-12 输出三角形面积和周长 (15 分)

本题要求编写程序,根据输入的三角形的三条边a、b、c,计算并输出面积和周长。注意:在一个三角形中, 任意两边之和大于第三边。三角形面积计算公式:


,其中s=(a+b+c)/2。

输入格式:
输入为3个正整数,分别代表三角形的3条边a、b、c。

输出格式:
如果输入的边能构成一个三角形,则在一行内,按照

area = 面积; perimeter = 周长
的格式输出,保留两位小数。否则,输出

These sides do not correspond to a valid triangle
输入样例1:
5 5 3
输出样例1:
area = 7.15; perimeter = 13.00
输入样例2:
1 4 1
输出样例2:
These sides do not correspond to a valid triangle

思路;
对于输入的数都转化成整型,可以用map来快速解决.
对于三角形我们要进行判断是否是一个正确的三角形,即任意两边之和大于第三边.所以我用最大值和全部和减去最大值进行比较可以可以进行判断了.
代码区:

import math
a, b, c = map(int, input().split())
area = 0
perimeter = 0
if(max(a, b, c) >= a + b + c - max(a, b, c)):print("These sides do not correspond to a valid triangle")
else:s = (a + b + c) / 2area = math.sqrt(s * (s - a) * (s - b) * (s - c))perimeter = a + b + cprint("area = {:.2f}; perimeter = {:.2f}".format(area, perimeter))

7-13 分段计算居民水费 (10 分)

为鼓励居民节约用水,自来水公司采取按用水量阶梯式计价的办法,居民应交水费y(元)与月用水量x(吨)相关:当x不超过15吨时,y=4x/3;超过后,y=2.5x−17.5。请编写程序实现水费的计算。

输入格式:
输入在一行中给出非负实数x。

输出格式:
在一行输出应交的水费,精确到小数点后2位。

输入样例1:
12
输出样例1:
16.00
输入样例2:
16
输出样例2:
22.50

思路:
同样,简单的if判断题

代码区:

n = int(input())
y = 0.0
if(n <= 15):y = 4 * n / 3
else:y = 2.5 * n - 17.5
print("{:.2f}".format(y))

7-14 求整数段和 (15 分)

给定两个整数A和B,输出从A到B的所有整数以及这些数的和。

输入格式:
输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。

输出格式:
首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X的格式输出全部数字的和X。

输入样例:
-3 8
输出样例:
-3 -2 -1 0 1
2 3 4 5 6
7 8
Sum = 30

思路:
使用map来进行字符到整型的转化
按照格式每五个进行换行,所以需要进行个数累加
因为输出是在同一行,所以需要用end = ''来进行不换行输出
注意,在最后输出结果的时候如果不换行就会导致结果输出在旧行后面,所以需要进行判断如果不是旧行已满就换行.

代码区;

a, b = map(int, input().split())
cnt = 0
sum = 0
for i in range(a, b + 1):sum += iprint("{:>5d}".format(i), end = '')# 不换行输出cnt += 1if cnt % 5 == 0:# 每5个进行换行print()
if(cnt % 5 != 0):# 如果个数不是5的倍数就输出换行print()
print("Sum = {:d}".format(sum))

新手上路,解答可能不是最优解,见谅。有错请指正;

【python】py课后作业程序题1「PTA」相关推荐

  1. 【python】py课后作业程序题5「PTA」

    py字典合集 7-1 Python猜数游戏 7-2 jmu-python-分段函数 7-3 循环求e的近似值(高教社,<Python编程基础及应用>习题6-7) 7-4 jmu-pytho ...

  2. 北理 嵩天老师 Python程序设计 课后作业易错题总结

    Python程序设计课后作业易错题总结 最近小c君在学习北理的嵩天老师在中国大学MOOC上发布的,<Python程序设计>课程. 下面是我总结该课程课后作业的易错题,分享给大家.同时非常推 ...

  3. c语言第一次作业程序题pta,c语言第一次作业程序题pta

    c语言第一次作业程序题pta 5-1 统计学生平均成绩与及格人数 (15 分)本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于 60 分)的人数.题目保证输入与输出均在整型范围内.输入格 ...

  4. 从国企到互联网,一个初入职场将近一年半工作经验程序员的「得」与「失」

    写在前面 2020 年 7 月 29 日,我只身一人来到北京,开始人生中的第一份工作,在一家国企从事软件开发工作. 2021 年 6 月底,我从国企离职,然后进入了一家互联网公司,从事软件开发工作. ...

  5. 开源的恶果,程序员正在「自掘坟墓」

    大家好,我是校长. 最近开源社区里发生了一件大事,在 IT 圈引起了轰动,那就是:faker.js 开源项目的作者删除了该项目的所有代码. 01 事情是这样的 作为一个著名的 nodejs 工具库,F ...

  6. 程序员与「中台」的爱恨交错

    大家好,我是Z哥. 这篇文章比较长,有5200+字,不过希望你能耐心看完,特别是程序员. 中台这个词,最近两年特别火,它的爆发源于2015年张勇在阿里发出的内部信中提到的"大中台,小前台&q ...

  7. 8个月打磨,一份送给程序员的「分布式系统」合集

    这里是Z哥的个人公众号 每周五早8点 按时送达 当然了,也会时不时加个餐- 我的第「75」篇原创敬上 整理好的文章目录在文末,可直接拉到最后 是的,这份礼物最佳受众是程序员.但是,如果你不是程序员,相 ...

  8. 从国企到互联网,一个六年程序员的「得」与「失」

    程序员,六年,四段工作经历,这也许是一份会被很多 HR 刷掉的简历. 从学生时代至今,我经历了两次大的方向转型和一次大的技术转型:从偏理论推导的数学学科到重工程实践的计算机学科:从「安稳固化」的国企到 ...

  9. 2019年更多优质小程序将有「冒泡」机会

    小程序到底是不是一个值得 all in 的风口? 刚刚过去的 2018 年,众多创业团队做出了不同选择,有人在发力,有人在观望,有人则选择逃离,不少开发者抱怨微信太过「克制」,小团队担心难以生存. 不 ...

最新文章

  1. 2017-6-3 jQuery 事件 DOM操作
  2. 【Python】self是干啥的?
  3. sql 2012中获取表的信息,包含字段的描述
  4. Tensorflow 梯度下降实例
  5. LeetCode之Next Greater Element I
  6. 01串(51Nod-1391)
  7. c++ map 修改value_哈希表:其实需要哈希的地方都能找到map的身影
  8. 为什么有科学家怀疑太阳系是被设计出来的
  9. layer自动补全 select
  10. Java中String、StringBuffer、StringBuilder的区别详解
  11. Microsoft SQL Server 2005简体中文开发版下载说明
  12. mt管理器显示java_真正免root的MT管理器详细使用教程
  13. Java软件开发技术交流群
  14. 如何解决百度识图中图片被限制百度防盗链破解方法
  15. OpenCV之图像锐化
  16. 导入tkinter出错
  17. Lucky Kat LAND — NFT 系列发售
  18. 网络编程之端口与套接字
  19. 浙江海盐已经试行“核供暖”,南方到底该不该供暖?南方人顶起~
  20. 微信小程序云开发使用mysql数据库

热门文章

  1. 到广州一定要去的地道美食店!
  2. linux rm 不释放_【Linux简单实用小命令002】rm -rf,删了文件空间却没释放?教你解锁4种姿势!...
  3. 平面广告公司电脑应用配置需求分析
  4. 几美元激动了她的心,天真的小学生
  5. 肠道有害菌——脱硫弧菌属(Desulfovibrio)
  6. scala-模式匹配(字符串、数组、元组、集合、类、偏函数)
  7. 激光溶脂效果好吗安全吗,肚子抽脂肪对身体有害吗
  8. svchost进程的浅析
  9. apply-register-acl 参数允许FreeSWITCH分机注册/拨打不验证密码
  10. 关于0基础跨行业入编程开发