python学习笔记
1:raw_input和input区别:
raw_input:将所有输入作为字符串看待,返回字符串类型
input:Equivalent to eval(raw_input(prompt))可以看出input把输入的当成表达式,输入需要是合法的表达式。
例如:
假如未定义zz
>>> raw_input()
zz
'zz'
>>> input()
zz
Traceback (most recent call last):
File "<pyshell#63>", line 1, in <module>
input()
File "<string>", line 1, in <module>
NameError: name 'zz' is not defined
input 转化为:eval(raw_input())->eval('zz')->表达式zz,zz未定义错误。
2:数值转换为字符串的三种形式:str/repr/``
>>> temp = 100000000000
>>> "hi:" + str(temp)
'hi:100000000000'
>>> "hi:" + repr(temp)
'hi:100000000000L'
>>> "hi:" + `temp`
'hi:100000000000L'
str 转换为合理的用户可理解的字符串,repr创建一个python表达式表示值的字符串,``等同于repr
3:原始字符串:
使用原始字符串(字符串前加r)可以避免特殊字符的处理比如'\'等:
>>> path = "C:\Python27\ncc.txt" \\ \n被转换为换行符
>>> open(path,'w')
Traceback (most recent call last):
File "<pyshell#99>", line 1, in <module>
open(path,'w')
IOError: [Errno 22] invalid mode ('w') or filename: 'C:\\Python27\ncc.txt'
>>> path = r"C:\Python27\ncc.txt"
>>> open(path,'w')
<open file 'C:\Python27\ncc.txt', mode 'w' at 0x02075EE8>
4:定义字节流
buffer = b'\x18\x01\x00'
转换为字符串:
Str1 = buffer.decode('ASCII')
分割字符串:
Str1.split('\x01')
>>> type(b'\x18\x01\x00')
<class 'bytes'>
>>> type((b'\x18\x01\x00').decode('ASCII'))
<class 'str'>