python 语法(1)

目录

  • print
  • input
  • ord
  • chr
  • len
  • 字节与字符

print

打印的作用

python 语法(1)

同样的不同类型加在一起也是可以打印的,结果为1+2= 3.注意逗号为空格。

python 语法(1)

如果要打印多行数据可以用下面这种语法

python 语法(1)

 其中在一个打印字符串中,如果有转定义符想让它不转定义,要在前面加入r

python 语法(1)

打印结果。一个是加了r一个没加r

python 语法(1)python 语法(1)

 

input

python 语法(1)

 

ord和chr

ord:把字符转化为十进制数

chr:把十进制数转化为字符

如果知道字符的整数编码,还可以用十六进制写进str

python 语法(1)

 python 语法(1)

 

len

查看字符的长度,这里显示为7

python 语法(1)

len()函数计算的是str的字符数,如果换成bytes,len()函数就计算字节数

python 语法(1)

 python 语法(1)

 

字节与字符

由于python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干字节,如果在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes.

python对bytes类型的数据用带b前缀的单引号或双引号表示

以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)

python 语法(1)

 python 语法(1)

反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes.就要把bytes变为str。就需要用decode()方法

>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
上一篇:php urlencode是否与java urlencode相同?


下一篇:Python编解码器错误除外?