您的位置:首页 > 编程语言 > Python开发

python学习笔记

2016-08-04 21:45 239 查看
1、如果字符串内部既包含
'
又包含
"
怎么办?可以用转义字符
\
来标识,比如:
'I\'m \"OK\"!'
表示的字符串内容是:
I'm "OK"!
如果字符串内部有很多换行,用
\n
写在一行里不好阅读,为了简化,Python允许用
'''...'''
的格式表示多行内容,可以自己试试:
>>> print('''line1
... line2
... line3''')
line1
line2
line3
上面是在交互式命令行内输入,注意在输入多行内容时,提示符由
>>>
变为
...
,提示你可以接着上一行输入。如果写成程序,就是:
print('''line1
line2
line3''')
理解变量在计算机内存中的表示也非常重要。当我们写:
a = 'ABC'
时,Python解释器干了两件事情:在内存中创建了一个
'ABC'
的字符串;在内存中创建了一个名为
a
的变量,并把它指向
'ABC'
。解释一下整数的除法为什么也是精确的。在Python中,有两种除法,一种除法是
/
>>> 10 / 3
3.3333333333333335
/
除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数:
>>> 9 / 3
3.0
还有一种除法是
//
,称为地板除,两个整数的除法仍然是整数:
>>> 10 // 3
3
你没有看错,整数的地板除
//
永远是整数,即使除不尽。要做精确的除法,使用
/
就可以。因为
//
除法只取结果的整数部分,所以Python还提供一个余数运算,可以得到两个整数相除的余数:
>>> 10 % 3
1
无论整数做
//
除法还是取余数,结果永远是整数,所以,整数运算结果永远是精确的。单个字符的编码,Python提供了
ord()
函数获取字符的整数表示,
chr()
函数把编码转换为对应的字符:
>>> ord('A')
65
>>> ord('中')
20013
>>> chr(66)
'B'
>>> chr(25991)
'文'
如果知道字符的整数编码,还可以用十六进制这么写
str
>>> '\u4e2d\u6587'
'中文'
两种写法完全是等价的。由于Python的字符串类型是
str
,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把
str
变为以字节为单位的
bytes
。Python对
bytes
类型的数据用带
b
前缀的单引号或双引号表示:
x = b'ABC'
要注意区分
'ABC'
b'ABC'
,前者是
str
,后者虽然内容显示得和前者一样,但
bytes
的每个字符都只占用一个字节。以Unicode表示的
str
通过
encode()
方法可以编码为指定的
bytes
,例如:
>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
>>> '中文'.encode('ascii')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
纯英文的
str
可以用
ASCII
编码为
bytes
,内容是一样的,含有中文的
str
可以用
UTF-8
编码为
bytes
。含有中文的
str
无法用
ASCII
编码,因为中文编码的范围超过了
ASCII
编码的范围,Python会报错。在
bytes
中,无法显示为ASCII字符的字节,用
\x##
显示。反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是
bytes
。要把
bytes
变为
str
,就需要用
decode()
方法:格式化整数和浮点数还可以指定是否补0和整数与小数的位数:
>>> '%2d-%02d' % (3, 1)
' 3-01'
>>> '%.2f' % 3.1415926
'3.14'
如果你不太确定应该用什么,
%s
永远起作用,它会把任何数据类型转换为字符串:
>>> 'Age: %s. Gender: %s' % (25, True)
'Age: 25. Gender: True'
有些时候,字符串里面的
%
是一个普通字符怎么办?这个时候就需要转义,用
%%
来表示一个
%
>>> 'growth rate: %d %%' % 7
'growth rate: 7 %'

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 学习笔记