轉自:http://blog.csdn.net/kjing/article/details/7450146
Python input和raw_input的區別
使用input和raw_input都可以讀取控制台的輸入,但是input和raw_input在處理數字時是有區別的
純數字輸入
當輸入為純數字時
input返回的是數值類型,如int,float
raw_inpout返回的是字符串類型,string類型
輸入字符串為表達式
input會計算在字符串中的數字表達式,而raw_input不會。
如輸入 “57 + 3”:
input會得到整數60
raw_input會得到字符串”57 + 3”
python input的實現
看python input的文檔,可以看到input其實是通過raw_input來實現的,原理很簡單,就下面一行代碼:
def input(prompt):
return (eval(raw_input(prompt)))
Python raw_input 讀取輸入值
下面介紹了python raw_input的用法,
使用raw_input 能夠很方便的從控制台讀入數據。
1.輸入字符串
#!/usr/bin/env python # -*- coding:utf-8 -*-
if __name__ == '__main__': # 13222319810101****
nID = ''
while 1: nID = raw_input("Input your id :") if len(nID) != len("13222319810101****"): print 'wring length of id,input again'
else: break
print 'your id is %s' % (nID)
結果:
2.輸入整數
#!/usr/bin/env python # -*- coding:utf-8 -*-
if __name__ == '__main__': nAge = int(raw_input("input your age :\n")) if nAge > 0 and nAge < 120: print 'thanks!'
else: print 'bad age'
print 'your age is %d\n' % nAge
結果:
3.輸入浮點型
#!/usr/bin/env python # -*- coding:utf-8 -*-
if __name__ == '__main__': fWeight = 0.0 fWeight = float(raw_input("input your weight\n")) print 'your weight is %f' % fWeight
結果:
4.輸入16進制數據
#!/usr/bin/env python # -*- coding:utf-8 -*-
if __name__ == '__main__': nHex = int(raw_input('input hex value(like 0x20):\n'), 16) print 'nHex = %x,nOct = %d\n' % (nHex, nHex)
結果:
5.輸入8進制數據
#!/usr/bin/env python # -*- coding:utf-8 -*-
if __name__ == '__main__': nOct = int(raw_input('input oct value(like 020):\n'), 8) print 'nOct = %o,nDec = %d\n' % (nOct, nOct)
結果: