PTA第02章练习题

本篇内容所用到的函数概览:

函数 作用
split() 空格内为空白默认以空格分割,(,)以逗号分割
map(a,b) 将括号内的第二项作为自变量,第一项作为函数做映射
ceil() 返回数字的上入整数
floor() 返回数字的下入整数
strip() 用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列
eval() 用来执行一个字符串表达式,并返回表达式的值
list() 转换为列表
print("",end="") 取消换行
zip() 将对象打包成元组
math.sin(math.radians(35)) 计算sin(35°)
math.log(7) 计算ln(7)

1 计算 11+12+13+…+m

题目:

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

输入格式:

在一行输入一个正整数m。

输出格式:

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

解题代码:

m=int(input())
sum=0
for i in range(11,m+1):sum+=i
print("sum =",sum)

2 阶梯电价

题目:

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

输入格式:

一行中输入某用户的月用电量(单位:千瓦时)和电价上调的X值(单位:元),中间用空格分开。

输出格式:

在一行中输出该用户应支付的电费(元),结果保留两位小数,格式如:“cost = 应付电费值”。

解题代码:

a, x = map(float, input().split())
if a < 0:print("Invalid Value!")
elif a <= 50:print("cost = {:.2f}".format(a*0.53))
else:print("cost = {:.2f}".format(50*0.53+(a-50)*(0.53+x)))

split()函数:空格内为空白默认以空格分割,(,)以逗号分割

map():将括号内的第二项作为自变量,第一项作为函数做映射。
例如map(float, input().split())等价于float(input().split())


3 求奇数分之一序列前N项近似和

题目:

编写程序,计算序列 1 + 1/3 + 1/5 + … 的前N项近似和(提示:用ceil函数)。

输入格式:

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

输出格式:

在一行中按照“sum ≈ S”的格式输出近似和S。S是大于序列和的最小整数。

解题代码:

import math
n = int(input())
sm = 0
d = 1
for i in range(n):sm = sm + 1/dd = d+2
print("sum ≈ %d" % math.ceil(sm))

range:遵循左闭右开的原则,如果只有一个数,则区间下沿为0。

常用操作:
range(0, 30, 5) (0,30] 步长为5

->[0, 5, 10, 15, 20, 25]

ceil():返回数字的上入整数(本意天花板,很好记,使用注意引入math库)


4 求交错序列前N项和

题目:

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

输入格式:

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

输出格式:

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

解题代码:

n = int(input())
sum = 0
a = 1
b = 1
for i in range(n):if a % 2 == 0:sum -= a / belse:sum += a / ba += 1b += 2
print("%.3f" % sum)

5 产生每位数字相同的n位数

题目:

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

输入格式:

在一行中输入A和B。

输出格式:

在一行中输出整数AA…A,一共B个A。

解题代码:

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

strip() 方法:用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。


6 转换函数使用

题目:

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

输入格式:

在一行输入整数和进制。

输出格式:

在一行十进制输出结果。

解题代码:

a,b=input().split(",")
b=eval(b)
c=int(a,b)
print(c)

eval() 函数:用来执行一个字符串表达式,并返回表达式的值。


7 比较大小

题目:

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

输入格式:

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

输出格式:

在一行中将3个字母按ASCII码值从小到大输出,其间以“<”相连。

解题代码:

numlist=sorted(list(map(eval,input().split())))
print("{:c}<{:c}<{:c}".format(numlist[0],numlist[1],numlist[2]))

list():转换为列表

sorted():默认从小到大排序


8 输出摄氏-华氏温度转换表

题目:

输入2个正整数lower和upper(-20<=lower<=upper<=50),表示摄氏范围。请输出一张取值范围为[lower,upper]、 且每次增加2摄氏度的摄氏-华氏温度转换表。温度转换的计算公式: F=C×1.8+32 其中:C表示摄氏温度,F表示华氏温度。

输入格式:

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

输出格式:

第一行输出:“celsius□□□□fahr”

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

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

解题代码:

lower,upper=map(eval,input().split())
if -20<= lower<= upper<=50:print("celsius    fahr")i = lowerwhile i <= upper:print("{:d}{:>14.1f}".format(i, i * 1.8 + 32))i = i + 2
else:print("Invalid.")

format中:^<>分别表示居中、左对齐、右对齐,后面带宽度

“>14”:右对齐,占据14个字符位置


9 偶数位特殊序列和

题目:

给定不超过9的正整数a,给定正整数n,n是偶数,4<=n<=18,要求编写程序求aa+aaaa+aaaaaa+⋯+aa⋯a(n个a)之和。

输入格式:

在一行中给出不超过9的正整数a和n。

输出格式:

在一行中输出对应的和。

解题代码:

a,b=input().split()
a=int(a)
b=int(b)
k=a
sum=0
for i in range(2,b+1):a=a*10+kif(i%2==0):sum+=a
print(sum)

10 分段计算居民水费

题目:

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

输入格式:

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

输出格式:

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

解题代码:

f=lambda x:4*x/3 if x<15 else 2.5*x-17.5
print("{:.2f}".format(f(eval(input()))))

匿名函数 lambda:变量+简单表达式


11 输出指定图形

题目:

输入正整数(1<=n<=7),输出指定图形。(提示:用*运算符)

输入格式:

输入正整数n。

输出格式:

输出有n行的图形。

解题代码:

n = int(input())
for i in range(1, n+1):if i == 1:print("* ",end="")if i == 2: print("\n* * ",end="")if i == 3: print("\n* * * ",end="")if i == 4: print("\n* * * * ",end="")if i == 5: print("\n* * * * * ",end="")if i == 6: print("\n* * * * * * ",end="")if i == 7: print("\n* * * * * * * ",end="")

这题主要考格式

冷门知识点:print默认换行,print("",end="")取消换行


最后:记录一个实际问题

元组的相减:

a =(1,2)
b =(3,4)
c =()
for i,j in zip(a,b):summ= j-ic = c + (summ,)
print(c)

zip()函数:将对象打包成元组

将元组与第一个值相减,并换行写入文件:

    with open(pts1_path, 'w') as f:for i in pts1:i = subtract(pts1[0], i)s = ''.join(str(i).strip()) + "\n"f.write(s)

PTA第02章练习题(Python)相关推荐

  1. 《Python自然语言处理(第二版)-Steven Bird等》学习笔记:第02章 获得文本语料和词汇资源

    第02章 获得文本语料和词汇资源 2.1 获取文本语料库 古腾堡语料库 网络和聊天文本 布朗语料库 路透社语料库 就职演说语料库 标注文本语料库 在其他语言的语料库 文本语料库的结构 载入你自己的语料 ...

  2. 《Python编程:从入门到实践》第二章练习题

    <Python编程:从入门到实践>第二章练习题 <Python编程:从入门到实践>第二章练习题 1-1 简单消息 2-2 多条简单消息 2-3 个性化消息 2-4 调整名字的大 ...

  3. 《Python编程:从入门到实践》第七章练习题

    <Python编程:从入门到实践>第七章练习题 <Python编程:从入门到实践>第七章练习题 7-1 汽车租赁 7-2 餐馆订位 7-3 10的整数倍 7-4 比萨配料 7- ...

  4. 第02章 PyTorch基础知识

    文章目录 第02章 Pytorch基础知识 2.1 张量 2.2 自动求导 2.3 并行计算简介 2.3.1 为什么要做并行计算 2.3.2 CUDA是个啥 2.3.3 做并行的方法 补充:通过股票数 ...

  5. 零基础学Python--------入门篇 第1章 初始Python

    入门篇 第1章  初始Python 1.1  Pyhton 概述 1.1.1 了解 Python Python,本义是指"蟒蛇".1989年,荷兰人Guido van Rossum ...

  6. Python快速编程入门#学习笔记01# |第一章 :Python基础知识 (Python发展历程、常见的开发工具、import模块导入)

    全文目录 ==先导知识== 1 认识Python 1.1.1 Python的发展历程 1.1.2 Python语言的特点 2. Python解释器的安装与Python程序运行 1.2.1 安装Pyth ...

  7. Python快速编程入门#学习笔记03# |第二章 :Python基础(代码格式、标识符关键字、变量和数据类型、数字类型以及运算符)

    全文目录 ==先导知识== 学习目标: 2.1 代码格式 2.1.1 注释 2.1.2 缩进 2.1.3 语句换行 2.2 标识符和关键字 2.2.1 标识符 2.2.2 关键字 2.3 变量和数据类 ...

  8. 入门篇 第1章 初始Python

    入门篇 第1章 初始Python 入门篇 第1章  初始Python 1.1  Pyhton 概述 1.1.1 了解 Python Python,本义是指"蟒蛇".1989年,荷兰 ...

  9. 《Pandas Cookbook》第02章 DataFrame基本操作

    第01章 Pandas基础 第02章 DataFrame运算 第03章 数据分析入门 第04章 选取数据子集 第05章 布尔索引 第06章 索引对齐 第07章 分组聚合.过滤.转换 第08章 数据清理 ...

最新文章

  1. 枚举类能继承吗?能被继承吗?
  2. HDU 1404 Digital Deletions(博弈 + SG函数打表)
  3. 腾讯云COS对象存储图片文件API的详细步骤过程
  4. 大整数减法c语言_3.2 C语言运算符和表达式
  5. WPF实现Win10汉堡菜单
  6. java中拦截器 过滤器 监听器都有什么区别
  7. python——异常except语句用法与引发异常
  8. 关于博客改版:我的一些想法与初衷
  9. c++中的Debug版本和Release版本的区别
  10. Codeforces 1062E 题解
  11. 程序开发——开源软件库
  12. 网狐荣耀代码通读一----登录服务器
  13. IceGrid应用 配置手册
  14. 欠采样临界采样matlab,信号临界采样、过采样、欠采样实验报告.doc
  15. 在Arcscene绘制管线三维横断面(AE绘制三维点阵文字)
  16. 试验设计与方差分析的基本原理——以单因素试验为例
  17. 爬虫--雪球网爬取(requests 和 request 的两种方法)
  18. 王玉迪 150206305
  19. css文字超过两行溢出隐藏
  20. java useragent 360 遨游 火狐_Chrome与火狐修改浏览器User Agent教程

热门文章

  1. 【技术分享】使用opencv进行火焰分割
  2. 榜单发布!国产智能驾驶域控制器市场竞争力TOP10供应商
  3. 打印服务进程spoolsv 导致电脑变慢
  4. 电脑变慢,4K对齐来解决
  5. openstack搭建教程
  6. ​燕东微科创板上市:市值276亿 亦庄国投与京东方是股东
  7. ROS学习记录(二)玩转海龟——海龟保姆级教程
  8. C#语言中的重要知识详细介绍
  9. LearnOpenGL 光照—多光源
  10. 决策树CART、ID3、C4.5原理梳理