zoukankan      html  css  js  c++  java
  • 关于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')
    View Code

    我们通过引入sys库的.stdin.readlines方法。(sys模块提供了一系列有关Python运行环境的变量和函数。)

    首先,在IDLE方法下:

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

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

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

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

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

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

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

  • 相关阅读:
    WebAPP与原生APP的交互设计区别
    [Asp.net]常见word,excel,ppt,pdf在线预览方案,有图有真相,总有一款适合你!
    [Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!
    Spark On YARN
    Spark Runtime概述
    Spark内核概述
    Spark Streaming 官网上提到的几点调优
    Spark RDD(Resilient Distributed Dataset)
    Spark 中的 checkpoint
    Spark HA 配置中spark.deploy.zookeeper.url 的意思
  • 原文地址:https://www.cnblogs.com/tqdlb/p/12299589.html
Copyright © 2011-2022 走看看