input python_python input 详解

解决问题:

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的输入,是怎么解包的

先看一下会出的错误:

2ebed22d3497

错误例1

2ebed22d3497

这种情况就是不清楚input 得到的东西是什么形式,在py3里面,input返回的都是string类型的

也就是说,输入1,2,3 其实是返回的字符串‘1,2,3’

那么久显而易见了,这个时候

2ebed22d3497

其实就是:

2ebed22d3497

前面是三个变量,而后面是一个字符串,那么后面自然就要解包,把字符串解包成一个个字符

但是‘1,2,3’解包之后是 '1' ',' '2' ',' '3' 五个字符,所以当然会报错

2ebed22d3497

然后,下面就简单了

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

2ebed22d3497

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

. 如果输入的个数不确定

比如要求几个数的平均数,但是有几个数字不确定

那么可以直接把输入都扔到list里面:

2ebed22d3497

. 要判断输入的是不是float 类型

2ebed22d3497

当输入的是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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值