关于HackerRank的Day 8 的思考——input
Day 8 主要是对字典的一些基本用法做操作。
题干大概是:给定一个 n ,建立一个包含 n 个人的电话簿,然后有一个查询功能。当然,很简单,但是在我对搜索词的输入时,它提示我:EOF when reading a line
查了资料之后,我发现大概是因为参数的输入的问题(其实我觉得应该是字符串输入的问题),网上基本上是在sublime测试中出现的问题,所以方法也是对sublime适用的,我就不再赘述了。
我讲讲通过代码的方法来解决这个问题,顺便讲讲input的用法
import sys
# Read input and assemble Phone Book
n = int(input())
phoneBook = {}
for i in range(n):
contact = input().split(' ')
phoneBook[contact[0]] = contact[1]
# Process Queries
lines = sys.stdin.readlines()
for i in lines:
name = i.strip()
if name in phoneBook:
print(name + '=' + str( phoneBook[name] ))
else:
print('Not found')
我们通过引入sys库的.stdin.readlines方法。(sys模块提供了一系列有关Python运行环境的变量和函数。)

至于为什么没有改变message,我相信大家都知道(我一开始还以为是因为字符串不可变),但是并不是,如下图:
其实很简单,因为这里是 readline ,也就是只会读取一行,那怎么读取多行输入呢,是的,用 readlines 就可以了
但是在IDLE中用的时候我们会发现,输入无法停止,因为 enter 不再是输入结束的标志了,查资料之后,
只需要一个 Ctrl + D 就OK了,实在不行,可以试试 Ctrl + z (+ enter)。
讲完了问题,我们再来看一看这个函数,sys.stdin是一个标准化输入的方法,其中默认输入的格式是字符串,如果是int,float类型则需要强制转换。
二. input 的方法:
因为 python 3 和 python 2 的变化,就导致了 input 的不同,在 python 3 中,input 可以接受一个标准输入,但是在 python 2 中,input只能用来获取输入。具体的不同大概是输入字符串时 python 2 要加引号,而 3 不用,2 的 input 就相当于 eval(raw_input()),在 3 中,input 就相当于整合了 2 的 input 和 raw_ input。
1.首先讲讲限制输入,也就是只能输入数字,字符串等等:
import re
num=input("请输入鸡的数量:")
while not re.findall('[0-9]',num):
num=input("数量只能为数字,请重新输入:")
print(num)
通过 re.findall 就可以实现限制输入的功能了,如果想改成限制小写字母,可以把 [ 0 - 9 ] 改成 [a - z] ,除此之外,还可以设置字母和数字混合型之类的( [0 - 9] [a - z] )
2.其次,讲讲input可调用的方法:
还记得我们上面讲过的 2 和 3 的区别吗,因为 input 是返回的是一个 str 型的数据,所以只要是字符串能用的方法,input 基本上都能用,例如:strip,rstrip,split等等
差不多到此结束了,如有疑问欢迎留言,我也还是个小白!
附:限制输入:https://blog.csdn.net/qq_24726509/article/details/80464713
关于HackerRank的Day 8 的思考——input的更多相关文章
- 从一个input点击引起的思考
一个input或者select标签都是有属于自己的disabled属性的,这个属性很少被使用,但是我们在项目实际开发的过程中也会遇到,比如我选择之后就让他置灰不可以变动了,那么久可利用js动态设置.对 ...
- 【腾讯Bugly干货分享】微信小程序开发思考总结——腾讯“信用卡还款”项目实践
本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/58212d0fa7a7574c4f4cc3c5 作者:peggy 小程序概述 1 ...
- web移动端fixed布局和input等表单的爱恨情仇 - 终极BUG,完美解决
[问题]移动端开发,ios下当fixed属性和输入框input(这里不限于input,只要可以调用移动端输入法的都包括,如:textarea.HTML5中contenteditable等),同时存在的 ...
- React.js入门笔记(续):用React的方式来思考
本文主要内容来自React官方文档中的"Thinking React"部分,总结算是又一篇笔记.主要介绍使用React开发组件的官方思路.代码内容经笔者改写为较熟悉的ES5语法. ...
- Spark的Straggler深入学习(2):思考Block和Partition的划分问题——以论文为参考
一.partition的划分问题 如何划分partition对block数据的收集有很大影响.如果需要根据block来加速task的执行,partition应该满足什么条件? 参考思路1:range ...
- 《ODAY安全:软件漏洞分析技术》学习心得-----shellcode的一点小小的思考
I will Make Impossible To I'm possible -----------LittleHann 看了2个多星期.终于把0DAY这本书给看完了,自己动手将书上的实验一个一个实现 ...
- HackerRank Extra long factorials
传送门 今天在HackerRank上翻到一道高精度题,于是乎就写了个高精度的模板,说是模板其实就只有乘法而已. Extra long factorials Authored by vatsalchan ...
- 自定义表单input
我想实现下面这个效果?应该怎么写最方便呢?最有效,兼容性最好呢 我使用<p>标签套lable,加input的组合,p标签绝对定位,input标签铺满,用padding填充. 主要css . ...
- input绑定datapicker控件后input再绑定blur或者mouseout等问题
input绑定datapicker控件后input再绑定blur或者mouseout等问题 问题描述:今天在修改一个东西的时候需要给一个input输入域绑定blur事件,从而当它失去焦点后动态修改其中 ...
随机推荐
- other#apache-commons
if you want to be a better javaer, you should spent time on apache commons.
- Java笔记--网络编程
1.IP地址:InetAddress类 --唯一的标识Internet上的计算机 --本地回环地址(hostAddress)127.0.0.1 主机名(hostName):localhost //根据 ...
- css调试与样式优先级
如何查看一个标签的当前css样式 如上图所示 先用标签选择器选择某个标签 然后在elements区域就会自动找到该标签 然后在右侧的styles区域整个区域都是该标签的样式,从上到下是显示的优先级,被 ...
- 066、Java面向对象之以分步的方式实例化对象
01.代码如下: package TIANPAN; class Book { // 定义一个新的类 String title; // 书的名字 double price; // 书的价格 public ...
- JavaScript 的一些SAO操作
IE判断检测 jQuery 在 1.9 版本之前,提供了一个浏览器对象检测的属性 .browser 的替代方案.于是各种利用 IE bug 的检测方法被搜了出来: // IE 678 最短方法 var ...
- MFC 状态栏的使用 CstatusBar
你在源文件头文件声明一下 CStatusBar zhuangtailan; 然后在窗口初始化添加以下代码 zhuangtailan.Create(this);//意思是在本窗口创建 UINT id ...
- POJ 2823 滑动窗口 单调队列模板
我们从最简单的问题开始: 给定一个长度为N的整数数列a(i),i=0,1,...,N-1和窗长度k. 要求: f(i) = max{a(i-k+1),a(i-k+2),..., a(i)},i = 0 ...
- LeetCode1046 最后一块石头的重量(贪心—Java优先队列简单应用)
题目: 有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块最重的石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下: 如果 x == ...
- UVA - 225 Golygons (黄金图形)(回溯)
题意:平面有k个障碍点.从(0,0)出发,第一次走1个单位,……,第n次走n个单位,恰好回到(0,0),每次必须转弯90°,图形可以自交,但不能经过障碍点.按字典序输出所有移动序列,并输出序列总数. ...
- 操作数据库的SqlHelper类
public static class SqlHelper { public static readonly string connstr = ConfigurationManager.Connect ...