Python每日一题(6)

server/2025/3/30 4:59:29/

Python每日一题 2025.3.26

  • 一、前期回顾
  • 二、题目
  • 三、自己源代码
  • 四、deepseek答案
  • 五、源代码与ai分析

一、前期回顾

  今天做了个题目,用的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中我不确定,因为也是第一次传入题目。不过整体的输入输出还是建议按照上面的。


http://www.ppmy.cn/server/179501.html

相关文章

使用ros_gz_bridge将gz topic转换成ros2 topic

使用ros_gz_bridge将gz topic转换成ros2 topic 理解ros_gz_bridge 使用以下语法定义话题映射来源 命令写法 理解 ros_gz_bridge 使用以下语法定义话题映射 <gazebo_topic><ros_message_type><gazebo_message_type><gazebo_topic>&#xff1a;Gazebo …

MySQL 8.0.41源码目录深度解析:探索数据库内核的架构蓝图

文章目录 MySQL 8.0.41源码目录深度解析&#xff1a;探索数据库内核的架构蓝图一、MySQL 8.0.41 目录结构总览1.1 安装目录核心子目录1.2 数据目录关键组件 二、核心源码模块剖析2.1 SQL 引擎核心&#xff08;sql / 目录&#xff09;2.1.1 核心组件2.1.2 架构亮点 2.2 存储引擎…

K8S学习之基础四十八:通过kibana查看fluentd收集存放在es中的日志

通过kibana查看fluentd收集存放在es中的日志 接下来就可以过滤有效字段查看日志了

远程医疗的现状如何?

随着信息技术的快速发展和全球化的加速&#xff0c;远程医疗逐渐成为现代医疗服务体系中不可或缺的一部分。借助互联网、通信技术等先进手段&#xff0c;它将医疗服务从传统的面对面模式转变为跨越时空的远程模式&#xff0c;为患者提供更便捷、更高效的医疗服务体验。本文将详…

vue3项目使用 python +flask 打包成桌面应用

server.py import os import sys from flask import Flask, send_from_directory# 获取静态文件路径 if getattr(sys, "frozen", False):# 如果是打包后的可执行文件base_dir sys._MEIPASS else:# 如果是开发环境base_dir os.path.dirname(os.path.abspath(__file…

Linux的一些常见指令

一、ls指令 语法&#xff1a; ls (选项) 功能&#xff1a; ls可以查看当前目录下的所有文件和目录。 常用选项&#xff1a; -a:列出目录下的所有文件&#xff0c;包括以点&#xff08;.&#xff09;开头的隐含文件 。-d:将目录像文件一样显示&#xff0c;不显示其下的文件。…

【大模型学习】什么是离身智能

目录 一、技术背景与历史发展 二、什么是离身智能&#xff1f; 三、技术要点及具体实现细节 四、架构 五、实际应用案例 一、技术背景与历史发展 虽然“离身智能”这个概念不如具身智能那样广为人知&#xff0c;但它代表了一种专注于数据处理和分析的人工智能发展方向。早期…

ngx_http_compile_complex_value

定义在 src\http\ngx_http_script.c ngx_int_t ngx_http_compile_complex_value(ngx_http_compile_complex_value_t *ccv) {ngx_str_t *v;ngx_uint_t i, n, nv, nc;ngx_array_t flushes, lengths, values, *pf, *pl, *pv;n…