PTA中提交Python3程序的一些套路
2017-11-15 11:20
253 查看
0. FAQ
0.1 提交后提示“答案错误”或者“格式错误”
PTA检查答案正确与否是通过字符串匹配实现的。所以可能有以下几种原因:格式错误:程序的输出要与题目中的样例输出格式一样(输出内容根据运行结果不同而变化),程序输出的结果多一个空格、少一个空格,都不行。
比如输出样例为1 + 2 = 3,你的输出却是1+2=3 ,错误原因分析:在
+与
=两边少了相应的空格,在
3后面却多了空格。
在
input()中填写了提示信息
不要在input中填写提示信息!需要获取输入的地方只要
input()就可以了。以下代码是错误的,
x = input("请输入"),请改为'x = input()'
你的答案真的错了(请仔细对比,包括大小写、空格等)或者题目错了(小概率)。
0.2 提交后提示"非零返回"
代码有语法错误针对这种问题,请先在IDLE中把程序调试好以后再提交。
代码中多出不必要的input()
多写了
input(),但却没有相应的输入,就会产生错误。比如样例输入只要求输入1行,但代码中却有2个
input()。
0.3 其他要注意的
PTA中的Python3无法正确处理中文字符,所以任何时候,提交的代码中都不要出现中文。新建题时不要在输入、输出文件包含中文。
1.处理输出
1.1 直接使用print函数
print('你要输出的内容')
1.2 使用Python中字符串的format
函数,比如:
a = 1.111 b = 2.222 print('{} + {} = {:.2f}'.fromat(a,b,a+b))
输出:
1.111 + 2.222 = 3.33
注1:这里的
{:.2f}为保留两位小数。
注2:这里面的输出
+与
=两旁均有空格。
1.3 换行或者不换行
print函数直接换行,如果想不换行要加上end=""
print("1", end="") print("2", end="") print("3") print("4")
输出:
123 4
另一种处理方式:
line = "a" line = line + "b" #也可以line.append("b") line = line + "\r\n" #加一个回车换行 line = line + "cde" #也可以使用line += "cde" print(line)
输出:
ab cde
2.处理输入
2.1 获取字符串并转化为数值
在python中统一使用line = input()来处理输入,line为输入的一行字符串。
如果想要将其转换为数值类型,可以使用
int,float,eval函数,比如:
line = input() x = int(line) #将line转化为整数类型 y = float(line) #将line转化为浮点数类型 z = eval(line) #将line转化为表达式类型并运算 #也可简写为如下形式 x = int(input(line))
2.2 获取多行数据
有如下输入样例:3 10 5 -10
第一行的3代表下面要输入3行,每行放一个数,如何获取每行的值呢
n = int(input()) #从第一行获取`3`这个字符串然后转化为整数赋值给n for i in range(n): #循环n次 x = int(input()) print(x+1)
2.3 如何将字符串中以空格或多个空格分割的字符串取出来呢?
使用字符串的split()函数
比如输入1 22 33 5,如何获得其中的
1 22 33 5这几个数?例子:
line = input() #用户输入"1 22 33 5" nums = line.split() print(nums[0],nums[1],nums[2],nums[3])
输出:
1 22 33 5
注意:
现在nums中存放的元素均是字符串,如果要进行数值计算必须先转换。
例题:
从控制台读入两个数,然后将其相加输出。 输入: 1 2 输出: 3
处理方法1:
nums = input().split() #将一行字符串中以1个或多个空格分隔的元素取出放入列表。 print(int(nums[0])+int(nums[1])) #int将字符转化为整数
处理方法2:
ls = [int(x) for x in input().split()] #列表推导式 print(sum(ls))
split函数还可以指定分隔符,比如要将1,2,3,4,56中以
,分隔的字符串取出来?可以使用如下代码:
strs = '1,2,3,4,56'.split(",") print(strs)
2.3 处理不确定行数的输入
例题:下面有若干行(具体几行不确定),每行代表一个整数。 编写一个程序,将所有的数相加,然后输出结果。 输入: 1 2 3 输出: 6
处理方法
x = 0 while True: try: x += int(input()) except: break print(x)
如何在IDLE中测试上述程序?
运行程序以后,在每一行输入对应的数字,按
Ctrl+D结束输入。
其他
Python3小练习PTA分享码:1A831B0E3A855FFE,老师可通过此分享码在自建题集中将题目导入。
其他PTA相关文章:
相关文章推荐
- PTA中提交Java程序的一些套路
- python 字符编码 调用其他程序 的一些问题记录
- Windows 上面搭建 Spark + Pycharm/idea scala/python 本地编写Spark程序,测试通过后再提交到Linux集群上
- 收集的一些python程序,实用并且有趣
- 一个可以套路别人的python小程序~
- cx_Freeze发布Python程序的一些经验
- html webform 提交到 php/python等程序
- Python程序调试的一些体会
- Python学习笔记2_一些小程序
- Python 写程序的中一些细节
- 提交到PTA的套路
- 一起学Python 2.1 开始加一些python的基本数据类型进入你的程序
- Python程序中一些语法整理
- python的一些小程序
- 一些关于提高python程序语言实时性的思考
- [转贴][Python]收集的一些python程序,实用并且有趣
- Python写WEB日志分析程序的一些思路
- 对于Python的框架中一些会话程序的管理
- Python 常见的的一些让你程序 crash 的17个运行错误
- 【Python学习系列四】Python程序通过hadoop-streaming提交到Hadoop集群执行MapReduce