Python每日一题(6)

Python每日一题 2025.3.26

一、前期回顾

今天做了个题目,用的python的idle写的,用起来不是很舒服感觉。题目提交pta的话,总会出问题,显示的大意应该是非0返回值好像,感觉比较奇怪。我后面自定义了一个main()函数并return0之后,还是不行。另外python的输入输出对比c++来看,有一定区别的。c++做题,不论是一边循环一边输入,只需要将待输入值全部放进去就行,而python如果循环输入,只能一个一个回车敲,如果全部输入进去就会报错,不知道问题出现在哪里。另外还有输出问题,循环输出的话,每一个print()就会添加个回车,提交之后都不知道是否可行。python可能更倾向于将所有输入存储到列表里,然后对列表进行操作,分开来弄,输出也是,将所有输出存储到列表中,然后再对输出操作。而对于循环输入输出,可能会存在问题。

二、题目

回忆一下题目,是栈类型题目,一开始输入整数n,接下来输入n个整数,其中非零整数代表入栈,0代表出栈,如果出栈栈为空的话,则输出"EMPTY",最后输出完数据后,第二行再输出栈内剩余元素。注意输出格式。

三、自己源代码

自己用idle做的时候,用循环输入输出做的,感觉非常丑陋,一点没有pythonic的感觉。想通过' '.join(map(str,l))来控制输出格式,不知道哪里存在问题,报错了,我自己觉得应该没问题。感觉对idle使用不是很熟练,没有自动补全、显示等功能,还需要将对应函数名、类名记全。

python 复制代码
import sys
import pdb
n=int(input())
line=sys.stdin.readline()
l=list(map(int,line.strip().split()))
# pdb.set_trace()
#此时l存储了所有的输入输出
#接下来需要将对应数据分开存储。
#没有储存输入输出的实例,我这里就给出来吧
#输入:
# 12
# 1 2 3 0 0 -1 0 0 0 4 5 0
#输出
#3 2 -1 1 "EMPTY" 5
#4
#接下来遍历列表,然后再pop,
stack=[]
result1=[]
result2=[]
for i in l:
    if i:
        stack.append(i)
    elif not i and stack:
        result1.append(stack.pop())
    elif not i and not stack:
        result1.append("EMPTY")

if stack:
    result2.extend(stack)
print(' '.join(map(str,result1)))
print(' '.join(map(str,result2)))

输入输出:

从输入输出角度来看,最好还是用双列表来存储,之后再去整理,因为不知道用循环输入输出,在oj、pta等编译器中编译的情况是什么,如果可以正常运行的话,可以使用循环输入输出。我这里.join()写的没问题啊,为什么在idle中弄的时候会报错呢?

四、deepseek答案

python 复制代码
n = int(input())
ops = list(map(int, input().split()))
stack = []
output = []

for num in ops:
    if num != 0:
        stack.append(num)
    else:
        if not stack:
            output.append('"EMPTY"')
        else:
            output.append(str(stack.pop()))

# 输出第一行
print(' '.join(output))
# 输出第二行
print(' '.join(map(str, stack)) if stack else '')

输出结果

五、源代码与ai分析

逻辑上一样,但是相比我的则更加简洁,感觉不用多说什么。我一开始自己写的是循环输入输出,很C化的写法,但是在idle中,只能一个一个输出,输出也是一个跳着一个出,在C中没问题,但是在pta中我不确定,因为也是第一次传入题目。不过整体的输入输出还是建议按照上面的。

相关推荐
lyrhhhhhhhh3 分钟前
Spring 模拟转账开发实战
java·后端·spring
言之。4 分钟前
Makefile 在 Go 项目中的实践
开发语言·elasticsearch·golang
banzhenfei6 分钟前
xp_cmdshell bcp 导出文件
java·数据库·sql
Nobkins7 分钟前
2023CCPC河南省赛暨河南邀请赛个人补题ABEFGHK
开发语言·数据结构·c++·算法·图论
带刺的坐椅9 分钟前
SpringBoot3 使用 SolonMCP 开发 MCP
java·ai·springboot·solon·mcp
南部余额12 分钟前
Python 类变量与实例变量完全指南:区别、使用场景及常见陷阱
开发语言·python
yunvwugua__20 分钟前
Python训练营打卡 Day26
前端·javascript·python
满怀101528 分钟前
【Django全栈开发实战】从零构建企业级Web应用
前端·python·django·orm·web开发·前后端分离
胡斌附体40 分钟前
微服务调试问题总结
java·微服务·架构·调试·本地·夸微服务联调
半路_出家ren43 分钟前
python处理异常,JSON
python·json·异常处理