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的輸入,是怎么解包的
先看一下會出的錯誤:
錯誤例1
這種情況就是不清楚input 得到的東西是什么形式,在py3里面,input返回的都是string類型的
也就是說,輸入1,2,3 其實是返回的字符串‘1,2,3’
那么久顯而易見了,這個時候
其實就是:
前面是三個變量,而后面是一個字符串,那么后面自然就要解包,把字符串解包成一個個字符
但是‘1,2,3’解包之后是 '1' ',' '2' ',' '3' 五個字符,所以當然會報錯
然后,下面就簡單了
一次輸入多個值,用空格分隔:
其實就是對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
總結
以上是生活随笔為你收集整理的input python_python input 详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python递归详解_Python理解递
- 下一篇: spark的python开发安装方式_P