0. FAQ

0.1 提交后提示“答案错误”或者“格式错误”

PTA检查答案正确与否是通过字符串匹配实现的。所以可能有以下几种原因:

  1. 格式错误:程序的输出要与题目中的样例输出格式一样(输出内容根据运行结果不同而变化),程序输出的结果多一个空格、少一个空格,都不行。

    比如输出样例为1 + 2 = 3,你的输出却是**1+2=3 **,错误原因分析:在+=两边少了相应的空格,在3后面却多了空格。
  2. input()中填写了提示信息

    不要在input中填写提示信息!需要获取输入的地方只要input()就可以了。以下代码是错误的,x = input("请输入"),请改为x = input()
  3. 你的答案真的错了(请仔细对比,包括大小写、空格等)或者题目错了(小概率)。

0.2 提交后提示"非零返回"

  1. 代码有语法错误

    针对这种问题,请先在IDLE中把程序调试好以后再提交。
  2. 代码中多出不必要的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}'.format(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,老师可通过此分享码在自建题集中将题目导入。

或者直接在题库中搜索jmu-python,就可以找到我们创建的python题目。

其他PTA相关文章:

PTA中提交Java程序的一些套路

PTA分享码-Java

PTA程序设计类实验辅助教学平台

PTA中提交Python3程序的一些套路的更多相关文章

  1. PTA中提交Java程序的一些套路

    201708新版改版说明 PTA与2017年8月已升级成新版,域名改为https://pintia.cn/,官方建议使用Firefox与Chrome浏览器. 旧版 PTA 用户首次在新版系统登录时,请 ...

  2. PTA中如何出Java题目?

    PTA中如何出Java题目? 很多第一次出题的老师,不知道Java在PTA中是如何处理输入的.写一篇文章供大家参考.比如以下这样的一个题目: 从控制台读入两个数,然后将其相加输出. 对于该题可以有如下 ...

  3. PTA中如何出Java编程题?

    很多第一次出Java编程题的老师,不知道Java在PTA中是如何处理输入的.写一篇文章供大家参考. 有多种类型输入的编程题: 类型1:固定数量输入 从控制台读入**两个**数,然后将其相加输出. 对于 ...

  4. YARN 中的应用程序提交

    YARN 中的应用程序提交 本节讨论在应用程序提交到 YARN 集群时,ResourceManager.ApplicationMaster.NodeManagers 和容器如何相互交互.下图显示了一个 ...

  5. Windows下Eclipse提交MR程序到HadoopCluster

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 欢迎转载,转载请注明出处. 以前Eclipse上写好的MapReduce项目经常是打好包上传到Hadoop测试集 ...

  6. 【原】spark-submit提交应用程序的内部流程

    我们经常通过spark-submit来提交spark应用程序,那么让我们一起看一下这里面到底发生了什么吧. 知识点: 1.CLI命令行界面启动Spark应用程序 Unix有两种方式:1)spark-s ...

  7. 4 weekend110的textinputformat对切片规划的源码分析 + 倒排索引的mr实现 + 多个job在同一个main方法中提交

    好的,现在,来weekend110的textinputformat对切片规划的源码分析, Inputformat默认是textinputformat,一通百通. 这就是今天,weekend110的te ...

  8. ASP.NET Core中实现单体程序的事件发布/订阅

    标题:ASP.NET Core中实现单体程序的事件发布/订阅 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p/10468058.html 项目源代码: ...

  9. docker~在centos容器中安装新程序

    上一篇我们使用了阿里加速器安装了centos镜像,然后创建了一个新容器,运行了这个镜像,这一讲我们来为这个镜像添加一些应用程序,然后再保存容器,push容器到仓储,大家就可以直接pull我生产的容器了 ...

随机推荐

  1. Python_fullstack_test1

    1.执行Python脚本的两种方式 使用交互式的带提示符的解释器或使用源文件 2.简述位.字节的关系 位是计算机中最小计量单位,用bit表示 字节是计算机中最小存储单位,用Byte表示 1字节=8位, ...

  2. 框架学习笔记之Mybatis(二)

    一.动态sql 通过mybatis提供的标签,实现sql语句的拼接. 1.where <select id="findUserList" parameterType=&quo ...

  3. JDK1.8源码(七)——java.util.HashMap 类

    本篇博客我们来介绍在 JDK1.8 中 HashMap 的源码实现,这也是最常用的一个集合.但是在介绍 HashMap 之前,我们先介绍什么是 Hash表. 1.哈希表 Hash表也称为散列表,也有直 ...

  4. JAVA如何实现深拷贝

    protected 域(或方法)微妙的规则 protected 域(或方法)对本包内的所有类可见(当然包括子类),那么,子类可以获得访超类受保护域(或方法)的权利,但是,若子类和超类不在同一个包下,就 ...

  5. ES6 继续 变量的解构赋值

    春节放假这几天,感觉跟梦一样,瞬间就过去了.现在上班的前几天,都感觉有点不真实,不过看到口袋里的钱,就知道,是真真实实的度过了这个假期. 现在得开始重新工作了: 变量的解构赋值 ES6 允许按照一定模 ...

  6. Goldwell平台官网简介-欢迎咨询经理罗琪

    Goldwell平台官网简介-欢迎咨询经理罗琪1: Goldwell官网是一家国际衍生品的经纪公司.它对柬埔寨金融市场和客户绝对的承诺,在SECC的监管和保护下,提供了更加多元化的金融交易工具. Go ...

  7. 如何降低移动APP的开发成本

    在当下竞争激烈的商业世界中,移动APP开发是您业务的有利补充.移动APP可通过吸引新客户和保留现有客户,帮助公司成功开展业务.定制一个属于自己公司的移动APP扮演着重要角色,手机APP可以说通过轻松处 ...

  8. javaIO操作之字节输入流--InputStream

    /** *<li> InputStream类中定义的方法: * <li>读取的数据保存在字节数组中,返回读取的字节数组的长度:public int read(byte[] b) ...

  9. 使用redis,zookeeper实现分布式锁

    1.分布式锁 分布式锁一般用在分布式系统或者多个应用中,用来控制同一任务是否执行或者任务的执行顺序.在项目中,部署了多个tomcat应用,在执行定时任务时就会遇到同一任务可能执行多次的情况,我们可以借 ...

  10. bzoj 4870: [Shoi2017]组合数问题

    Description Solution 考虑这个式子的组合意义: 从 \(n*k\) 个球中取若干个球,使得球的数量 \(\%k=r\) 的方案数 可以转化为 \(DP\) 模型,设 \(f[i][ ...