python数据类型

字符串是以单引号'或双引号"括起来的任意文本如果'本身也是一个字符,那就可以用""括起来

'I\'m \"OK\"!'

表示的字符串内容是:

I'm "OK"!

用\进行转义的处理

print('\\\n\\')
\
\

两个\\表示\

r''表示''内部的字符串默认不转义

>>> print('\\\t\\')
\       \
>>> print(r'\\\t\\')
\\\t\\

'''...'''的格式表示多行内容

print('''line1
... line2
... line3''')
line1
line2
line3

...为提示符,并不是你输入的


对于变量,加上int则为静态的整型,不能再变为char字符型

另外,还有BOOL类型,and,or,not,大于小于等用于判断条件的

int(x),对x保留整数,round(x),对x四舍五入

对于运算,除法/为浮点数,//为取整,%取余
3.0
>>> 9//3
3
>>> 10/3
3.3333333333333335
>>> 10//3
3
>>> 10%3

1


字符串

ord('some') ''里面的内容转化为相应的整型,chr()则把编码转化为字符

>>> ord('A')
65
>>> ord('中')
20013
>>> chr(66)
'B'
>>> chr(25991)

'文'

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

这种方式用于编码保存,因为要以bytes存储到磁盘当中,注意中文不能用ASCII来保存

‘some’.encode('some')

>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'

相对应解码也如此

>>> b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore')
'中'

忽略错误的编码

1个中文字符经过UTF-8编码后通常会占用3个字节,而1个英文字符只占用1个字节。

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

>>> len(b'ABC')
3
>>> len(b'\xe4\xb8\xad\xe6\x96\x87')
6
>>> len('中文'.encode('utf-8'))
6
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

文件开头写上指定中文保存为utf_8

格式化 如列子,注意%占位符

'hi,i\'m %s,you have %d to wait'%('liu',88)

"hi,i'm liu,you have 88 to wait"

另外可以format()

>>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)
'Hello, 小明, 成绩提升了 17.1%'
>>> '%s,you are good,your grade up to %2.1f %%' %('xiaoming',(85-72)/72)
'xiaoming,you are good,your grade up to 0.2 %'


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值