【Python oj编程时的输入问题】_oj input().split()出错-程序员宅基地

技术标签: 算法  python  

Python oj编程时的输入问题

不同于力扣,码题集在刷题过程中需要自己编写程序的输入,在面对一些比较复杂的输入时,时常忘记怎么编写,这里做一个简单的记录,对一些常见的输入编写做一个陈列。

常见输入

一般的数字型输入:

# 输入两个数字,以空格分开,以整型形式保存
n, m = map(int, input().split())

# 输入一行数字,以空格分开,以列表形式保存
arr1 = [int(num) for num in input().split()]   # 方法一
arr2 = list(map(int, input().split()))  # 方法二,内嵌函数代替for循环,相比方法一更快

# 输入m行,n列的数字矩阵,以空格分开,以列表形式保存(m、n已知)
str1 = [[0]*n]*m
for i in range(m):
    str1[i] = [int(num) for num in input().split()]
# 其中for循环嵌套的for循环可以更改为
for i in range(m):
    str1[i] = list(map(int, input().split()))

以上需要注意的是map函数的运用。

输入一个二维数组,但是行数未知

直观地,whie循环可以用来解决该问题

s1 = input()
    str1 = []
    while s1 != "":
        str1.append(s1)
        s1 = input()

如在本地运行,你会发现,当输入的一行为空,再按下enter键,则完成输入。但是输入到oj中,会出现EOFError,因为oj不同本地输入,没有内键输入,此时需要用到try except语句来处理异常错误。

s1 = input()
str1 = []
try:
    while s1 != "":
        str1.append(s1)
        s1 = input()
    except EOFError:
        pass #这里输入你的代码

我一开始想到的是用终止符做循环终止条件,但python不同于C语言,字符串没有终止符,只能用try except语句处理这样的输入。

特殊形式的输入

输入含有括号、逗号,如何提取关键数据信息?
如:
在这里插入图片描述
方法一:使用正则式

import re
str1 = input()
str2 = input()
number = re.findall("\d+",str1)
number1 = re.findall("\d+",str2)
number=list(map(int, number))
number1=list(map(int, number1))

方法二:replace函数去除多余符号

str1 = input()
str1= str1.replace(" ",",")  # 两坐标之间的饿空格用逗号代替
str1= str1.replace("(","")  # 去除左括号
str1= str1.replace(")","")
str1=str1.split(",")    # 字符之间以逗号分隔,此时输入的数字还是字符形式
str1=list(map(int, str1))  # 将列表中的字符化为整型数字

小结

学会使用map函数、split函数、try except语句、replace函数。

ps:oj过程中python常有超时情况,运行速度远不如C语言。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_45060170/article/details/125886120

智能推荐

java毕业设计球馆预约管理系统mybatis+源码+调试部署+系统+数据库+lw-程序员宅基地

文章浏览阅读446次。java毕业设计球馆预约管理系统mybatis+源码+调试部署+系统+数据库+lw。JSP基于JAVA的邮件过滤系统的设计与实现sqlserver。springboot基于SpringBoot的自助旅游导航系统。ssh基于java的网上手机销售管理系统的开发与实现mysql。jsp本科生实习管理系统的设计与实现sqlserver。JSP酒店餐饮管理系统的设计与实现sqlserver。JSP宠物食品店系统的设计与实现sqlserver。基于SSM框架的校园爱心公益平台的设计与实现。

iOS应用沙盒机制浅析_inhouse app sandbox-程序员宅基地

文章浏览阅读1.9k次。iOS应用程序只能在为该程序创建的文件系统中读取文件,不可以去其他地方访问,此区域被称为沙盒。所有的非代码文件都要保存在此,例如图像,图标,声音,属性列表(plist文件),文本文件等。沙盒机制作为一种安全体系,核心内容是:沙盒对应用程序执行各种操作的权限限制。(1)每个应用程序都有自己的存储空间;(2)应用程序不能翻过自己的围墙去访问别的存储空间的内容;(3)应用程序请求的数据都要通_inhouse app sandbox

eclipse 连接 mysql-程序员宅基地

文章浏览阅读4.5k次,点赞4次,收藏33次。连接时报错:Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the dri...

目标检测数据集:摄像头镜头缺陷检测数据集_摄像头遮挡检测数据集-程序员宅基地

文章浏览阅读746次。摄像头镜头缺陷数据集用于缺陷检测项目_摄像头遮挡检测数据集

JS+ES6新增字符串操作方法大汇总,共四十七种方法_js es6 字符串填充-程序员宅基地

文章浏览阅读2.2k次,点赞69次,收藏4次。让我为大家介绍一下字符串的操作方法吧,你知道与不知道的大部分都在这!_js es6 字符串填充

多线程实现多客户端通信_用多线程模拟多个客户端吗-程序员宅基地

文章浏览阅读731次。在Java Socket(下)中写了服务器端和客户端进行通信的例子,但是在实际应用当中,不是这样的一对一通信,通常都是一台服务器,对应着很多很多客户端进行通信,可以通过多线程来实现多客户端与服务器端进行通信。 (注:只是根据所学知识点写一个小例子,线程安全暂未考虑进去)首先是Server端的代码段:import java.io.IOException;import java.net.InetAd_用多线程模拟多个客户端吗

随便推点

pycharm中import caffe/caffe2-程序员宅基地

文章浏览阅读1.1w次。pycharm中import caffe/caffe2_import caffe

[AIGC] ComfyUI 节点解释_comfyui节点介绍-程序员宅基地

文章浏览阅读1.4k次,点赞2次,收藏4次。我们如何了解实际发生的情况以便我们可以创建和修改工作流程?要了解节点,我们必须了解一些稳定扩散的工作原理。让我们看一下默认的工作流程。如果您没有使用默认工作流程,或者您一直在搞乱界面,请单击右侧边栏上的“Load Default”。_comfyui节点介绍

C/C++:计算N的N次方的个位数(巧用快速幂与模运算性质)_用c++计算n的n次方-程序员宅基地

文章浏览阅读3k次,点赞6次,收藏18次。题目描述(源自杭电OJ):相关数学知识一:取模运算的性质a乘b的结果对p取模等于a对p取模的结果乘b对p取模的结果再整体取模于p,详见下图证明过程如下:相关数学知识二:快速幂运算 以求a的b次方为例,由于要乘b次a,此时的时间复杂度为O(b);如果要求a的的平方的b/2次,只需要乘b/2次(如果b是奇数,要再乘一个a),时间复杂度减半,以此类推,直到b=1时,此时的时间复杂度变成了log以2位到的b的对数,运算次数实现了最小化,时间复杂度为O(log以2为..._用c++计算n的n次方

(附源码)springboot+mysql+基于JAVA的学员代言人评选投票系统设计与实现 毕业设计161825_基于springboot的在线投票系统的源码有5000字代码吗-程序员宅基地

文章浏览阅读67次。学员代言人评选投票系统主要功能模块包括管理员、首页、站点管理(轮播图、公告栏)用户管理(管理员、普通用户、企业用户)内容管理(投票资讯、资讯分类)更多管理(主题类别、投票信息、用户投票、投票结果)采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用java技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。_基于springboot的在线投票系统的源码有5000字代码吗

【AI绘画】Stablediffusion必不可少的使用方法之关键词(2)_stablediffusion添加关键词-程序员宅基地

文章浏览阅读803次,点赞21次,收藏14次。我相信很多已经下载好Stablediffusion或者midjourney软件的朋友,第一反应都是看着满屏看不懂的各种选项发懵吧,而当你稳住心神,准备在文生图或者图生图这两块基础操作力大显身手,想创造出属于自己的艺术设计之时,难免会对着下面这个框框陷入两难:我应该填什么呢?我应该如何描述呢?_stablediffusion添加关键词

服务器文档检索,知识库文档快速检索方法、应用服务器计算机可读存储介专利_专利查询 - 天眼查...-程序员宅基地

文章浏览阅读243次。1. 一种知识库文档快速检索方法,应用于应用服务器,其特征在于,所述方法包括步 骤: 接收用户输入的检索信息; 对所述检索信息进行分析、处理以获取查询词; 根据所述查询词对知识库中的文档进行搜索,并根据搜索匹配度对搜索结果进行排 序; 通过摘要生成模型及关键词生成模型获得各文档的摘要及关键词;及 输出排序后的搜索结果,并对应输出目标文档的所述摘要及关键词。2. 如权利要求1所述的知识库文档快速检索..._产品知识库快速查询

推荐文章

热门文章

相关标签