美文网首页
python input 详解

python input 详解

作者: ketchup | 来源:发表于2017-04-25 19:53 被阅读0次

解决问题:

  • input 得到的数据到底是什么类型
  • 多个参数接收input的输入,是怎么解包的
  • 如果输入的个数不确定,怎么处理
  • 要判断输入的是不是float 类型
  • 要对输入的参数格式输出,规定参数只能是str或者int 或者float类型

1__input 得到的数据到底是什么类型

1.1在python 3 里,一切input的得到的东西,都是str类型
In [1]: a = input('.....:')
.....:123

In [2]: a 
Out[2]: '123'

In [3]: type(a)
Out[3]: str

In [4]: b = input('....:')
....:{'a':1, 'b':2}

In [5]: b
Out[5]: "{'a':1, 'b':2}"

In [6]: type(b)
Out[6]: str
1.2在python2 里 有input 和raw_input
  • raw_input 得到的都是str类型
  • input 会根据输入数据的类型自动生成类型
In [4]: b = raw_input('...:')
...:345

In [5]: b
Out[5]: '345'

In [6]: type(b)
Out[6]: str

==============================================

In [1]: a = input('....:')
....:123

In [2]: a
Out[2]: 123

In [3]: type(a)
Out[3]: int

------


In [7]: c = input('...:')
...:{'a':1,'b':2}

In [8]: c
Out[8]: {'a': 1, 'b': 2}

In [9]: type(c)
Out[9]: dict

<以下讲解基于python3>

2___多个参数接收input的输入,是怎么解包的

先看一下会出的错误:

错误例1

这种情况就是不清楚input 得到的东西是什么形式,在py3里面,input返回的都是string类型的
也就是说,输入1,2,3 其实是返回的字符串‘1,2,3’
那么久显而易见了,这个时候


其实就是:


前面是三个变量,而后面是一个字符串,那么后面自然就要解包,把字符串解包成一个个字符
但是‘1,2,3’解包之后是 '1' ',' '2' ',' '3' 五个字符,所以当然会报错

然后,下面就简单了

    1. 一次输入多个值,用空格分隔:

其实就是对string ‘11 22 33’ 的split分割

  • . 如果输入的个数不确定
    比如要求几个数的平均数,但是有几个数字不确定
    那么可以直接把输入都扔到list里面:
  • . 要判断输入的是不是float 类型

当输入的是float的时候,把string 转换成float的时候是不报错的,所以如果报错的话,那么这个输入就不是float类型

所以就可以用try except 来解决

a = input('...:')
try:
      float(a)
except :
    isFloat = False
else:
    isFloat = True

同理,对其他类型的判断也是如此

若果要对输入的参数格式化输出,规定参数只能是str或者int 或者float类型

def f(a, b, c):
    type_list = [int, float, str]
    if a in type_list and b in type_list and c in type_list:
        #do_something
    else:
        #ERROR

相关文章

  • python input 详解

    解决问题: input 得到的数据到底是什么类型多个参数接收input的输入,是怎么解包的如果输入的个数不确定,怎...

  • Linux Input

    Linux input子系统详解 Linux input系统数据上报流程

  • APP自动化测试之ADB妙用

    本节大纲 ADB简介及安装 ADB命令及input命令详解 Python+ADB实现App自动化测试实战 为什么称...

  • Python基础

    python2 :input() 会当做代码执行 用raw_input() python3: input(...

  • python3输入输出练习

    input()[https://www.runoob.com/python3/python3-func-input...

  • 3.输入

    3.1 python2中 raw_input() 等价于python3中的 input()input()其接受的输...

  • python元编程详解

    注:采转归档,自己学习查询使用 python元编程详解(1)python元编程详解(2)python元编程详解(3...

  • 2018-01-26

    python3中input和python2中的raw_input效果是一样的,在python2中的input是将输...

  • python2的内建函数raw_input()在python3中

    python2中的raw_input()函数,在python3中调整为input()函数。

  • Python中如何实现一行输入多个值

    Python 2 的 raw_input()以及 Python 3 的 input()获取的是整行的字符串。 那么...

网友评论

      本文标题:python input 详解

      本文链接:https://www.haomeiwen.com/subject/ecfbzttx.html