首页 > Python资料 博客日记

PTA中关于python的非零返回和格式错误

2024-10-30 20:00:07Python资料围观6

这篇文章介绍了PTA中关于python的非零返回和格式错误,分享给大家做个参考,收藏Python资料网收获更多编程知识

1.关于非零返回

这是官方给出的结果,但其实python中是不会有这种关于0的返回要求,出现非零返回其实很有可能是写出的代码无法运行其中的某个案例,可能是数组溢出,也可能是产生了非法的运算,总而言之可以简单理解就是代码无法执行完案例便有了报错

例如这个pta中打印沙漏的这个题目

 开始我写的代码是:

n,s=input().split()
n=int(n)
s=str(s)
arr=[]
num=3
if n==0:
    print(0)
elif n==1:
    print(s)
    print(0)
elif n==2:
    print(s)
    print(1)
else:
    if n % 2 == 1:
        half = (n - 1) // 2
        left = 0
    else:
        half = (n - 2) // 2
        left = 1
    while half >= num:
        half -= num
        arr.append(str(s) * num)
        num += 2
    l = len(arr)
    ll = len(arr[l - 1])
    for i in range(l - 1, -1, -1):
        if i == l - 1:
            print(arr[i])
        else:
            print(" " * (l - 1 - i), end='')
            print(arr[i])
    print(" " * ((ll - 1) // 2),end='')
    print(s)
    for i in range(l):
        if i == l - 1:
            print(arr[i])
        else:
            print(" " * (l - 1 - i),end='')
            print(arr[i])
    print(left + 2 * half)











里面有一个案例便是非零返回,原因很简单当我的n在3到6直接如果有案例的话,我的arr数组里面不会有值,但是我还是用arr的长度去进行for循环了,所以自然的程序无法运行就会产生非零返回,有时候也可能是语法错误,但是大家一般都是在外部编译器运行后才把代码复制到pta上所以产生非零返回很有可能就是这种情况,案例考虑不完全导致的错误

2.关于格式错误

也是上一个题目,它要求我们打印

*****
 ***
  *
 ***
*****

我使用

print(" " * (l - 1 - i), s)

会显示格式错误,但是我用

print(" " * (l - 1 - i), end='')
print(arr[i])

就运行成功了,俩个代码运行结果是一样的,这可能跟里面内置函数运行的结果有关系,目前还不知道是为什么

所以遇见这种情形可以多尝试几种方式去打印结果


版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐