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运行环境的变量和函数。)

首先,在IDLE方法下:

至于为什么没有改变message,我相信大家都知道(我一开始还以为是因为字符串不可变),但是并不是,如下图:

其实很简单,因为这里是 readline ,也就是只会读取一行,那怎么读取多行输入呢,是的,用 readlines 就可以了

但是在IDLE中用的时候我们会发现,输入无法停止,因为 enter 不再是输入结束的标志了,查资料之后,

只需要一个 Ctrl + D 就OK了,实在不行,可以试试 Ctrl + z (+ enter)。

讲完了问题,我们再来看一看这个函数,sys.stdin是一个标准化输入的方法,其中默认输入的格式是字符串,如果是int,float类型则需要强制转换。

 还有就是,sys.stdin.readline( )会将输入全部获取,包括末尾的'\n',因此用len计算长度时是把换行符'\n'算进去了的,但是input( )获取输入时返回的结果是不包含末尾的换行符'\n'的。

二. 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的更多相关文章

  1. 从一个input点击引起的思考

    一个input或者select标签都是有属于自己的disabled属性的,这个属性很少被使用,但是我们在项目实际开发的过程中也会遇到,比如我选择之后就让他置灰不可以变动了,那么久可利用js动态设置.对 ...

  2. 【腾讯Bugly干货分享】微信小程序开发思考总结——腾讯“信用卡还款”项目实践

    本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/58212d0fa7a7574c4f4cc3c5 作者:peggy 小程序概述 1 ...

  3. web移动端fixed布局和input等表单的爱恨情仇 - 终极BUG,完美解决

    [问题]移动端开发,ios下当fixed属性和输入框input(这里不限于input,只要可以调用移动端输入法的都包括,如:textarea.HTML5中contenteditable等),同时存在的 ...

  4. React.js入门笔记(续):用React的方式来思考

    本文主要内容来自React官方文档中的"Thinking React"部分,总结算是又一篇笔记.主要介绍使用React开发组件的官方思路.代码内容经笔者改写为较熟悉的ES5语法. ...

  5. Spark的Straggler深入学习(2):思考Block和Partition的划分问题——以论文为参考

    一.partition的划分问题 如何划分partition对block数据的收集有很大影响.如果需要根据block来加速task的执行,partition应该满足什么条件? 参考思路1:range ...

  6. 《ODAY安全:软件漏洞分析技术》学习心得-----shellcode的一点小小的思考

    I will Make Impossible To I'm possible -----------LittleHann 看了2个多星期.终于把0DAY这本书给看完了,自己动手将书上的实验一个一个实现 ...

  7. HackerRank Extra long factorials

    传送门 今天在HackerRank上翻到一道高精度题,于是乎就写了个高精度的模板,说是模板其实就只有乘法而已. Extra long factorials Authored by vatsalchan ...

  8. 自定义表单input

    我想实现下面这个效果?应该怎么写最方便呢?最有效,兼容性最好呢 我使用<p>标签套lable,加input的组合,p标签绝对定位,input标签铺满,用padding填充. 主要css . ...

  9. input绑定datapicker控件后input再绑定blur或者mouseout等问题

    input绑定datapicker控件后input再绑定blur或者mouseout等问题 问题描述:今天在修改一个东西的时候需要给一个input输入域绑定blur事件,从而当它失去焦点后动态修改其中 ...

随机推荐

  1. other#apache-commons

    if you want to be a better javaer, you should  spent time on apache commons.

  2. Java笔记--网络编程

    1.IP地址:InetAddress类 --唯一的标识Internet上的计算机 --本地回环地址(hostAddress)127.0.0.1 主机名(hostName):localhost //根据 ...

  3. css调试与样式优先级

    如何查看一个标签的当前css样式 如上图所示 先用标签选择器选择某个标签 然后在elements区域就会自动找到该标签 然后在右侧的styles区域整个区域都是该标签的样式,从上到下是显示的优先级,被 ...

  4. 066、Java面向对象之以分步的方式实例化对象

    01.代码如下: package TIANPAN; class Book { // 定义一个新的类 String title; // 书的名字 double price; // 书的价格 public ...

  5. JavaScript 的一些SAO操作

    IE判断检测 jQuery 在 1.9 版本之前,提供了一个浏览器对象检测的属性 .browser 的替代方案.于是各种利用 IE bug 的检测方法被搜了出来: // IE 678 最短方法 var ...

  6. MFC 状态栏的使用 CstatusBar

    你在源文件头文件声明一下 CStatusBar   zhuangtailan; 然后在窗口初始化添加以下代码 zhuangtailan.Create(this);//意思是在本窗口创建 UINT id ...

  7. 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 ...

  8. LeetCode1046 最后一块石头的重量(贪心—Java优先队列简单应用)

    题目: 有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块最重的石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下: 如果 x == ...

  9. UVA - 225 Golygons (黄金图形)(回溯)

    题意:平面有k个障碍点.从(0,0)出发,第一次走1个单位,……,第n次走n个单位,恰好回到(0,0),每次必须转弯90°,图形可以自交,但不能经过障碍点.按字典序输出所有移动序列,并输出序列总数. ...

  10. 操作数据库的SqlHelper类

    public static class SqlHelper { public static readonly string connstr = ConfigurationManager.Connect ...