PTA Python3 常见问题

PTA Python3 常见问题

卑微小白的真实感受:

实践出真知!!!!!

实践出真知!!!!!

实践出真知!!!!!

重要的事情说三遍啦!-_-进入主题,帮你解决小问题喽!

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

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

1)格式错误:程序的输出要与题目中的样例输出格式一样(输出内容根据运行结果不同而变化),程序输出的结果多一个空格、少一个空格,都不行。
比如输出样例为1 + 2 = 3,你的输出却是1+2=3 ,错误原因分析:在+与=两边少了相应的空格,在3后面却多了空格。
2)在 input() 中填写了提示信息
不要在input中填写提示信息!需要获取输入的地方只要input()就可以了。以下代码是错误的,x = input(“请输入”),请改为**‘x = input()’**

提交后提示"非零返回"

1)代码有语法错误
针对这种问题,请先在IDLE中把程序调试好以后再提交。
2)代码中多出不必要的input()
多写了input(),但却没有相应的输入,就会产生错误。比如样例输入只要求输入1行,但代码中却有2个input()。

还要注意

PTA中的Python3无法正确处理中文字符,所以任何时候,提交的代码中都不要出现中文。
新建题时不要在输入、输出文件包含中文。

做题时会遇到的小问题(我遇到的)

1)调用库

import sqrt
math.sqrt(x)

2)保留小数点后两位

print("{:.2f}".format(3.1415926))

3)输入

x = int(input())  --将输入转化为整型
x = float(input())  --将输入转化为浮点型
x = eval(input())   --将输入转化为表达式类型

4)一行输入多个数据,并用逗号(空格)隔开

--方法一:
a,b,c = map(int,input().split())
a,b,c = map(int,input().split(','))
--方法二:
a,b,c = (int(x) for x in input().split())
a,b,c = (int(x) for x in input().split(','))
--需要说明的是:
我们常用的第一种,简单,但要注意的是,map()里的参数必须是两个,
那当你遇到一行的输入不是同一种数据类型(比如:int)的时候应该怎么做呢?
我是这样解决的,比如说输入的三个数中,你的数据是:a,b为整数,c为浮点数
a,b,c = map(str,input().split())
a = int(a)
b = int(b)
c = float(c)
这样子就可以解决了

5)获取多行数据

第一行表示要输入几组数据,下面的第N+1行输入相应的数据
n = int(input())
for i in range(n):   #循环n次
	x = int(input())
	i += 1      #注意!!注意!!注意!!这里不能用i++ 或i--,Python中是没有这个运算符的,
				#如果用,就会报错

6)输出的空格

--对比下列两行代码
--看到差别了吗?第二行的is前面多了一个空格,这将直接影响你的输出结果(PTA很看重啊)
--意味着,像如下代码的输出,a后面会自带一个空格
--第一行输出:a  is prime
--第二行输出:a is prime
print(a,"is prime")
print(a," is prime")

7)print输出

print函数直接换行,如果想不换行要加上 end = ""

print("1",end="")
print("2",end="")
print("3")
print("4")
这段代码的输出结果为:
123
4

8)判断回文数

大多数人这样做!!!(我就是大多数人之一)
n = input()
flag = 1
for i in range(len(n)//2):
	if n[i] == n[n-i-1]:
		i += 1
	else:
		flag = 0
		break
if flag == 0:
	print("no")
if flag == 1:
	print("yes")
少数人这样做!!!
n = input()
if n == n[::-1]:
	print("yes")
else:
	print("no")
发布了32 篇原创文章 · 获赞 3 · 访问量 1361

猜你喜欢

转载自blog.csdn.net/weixin_44270855/article/details/93371677