1、编码:
ASCII:最早的编码 有效位7位,最左边的第八位位0
Unicode:目前有两个版本:1)两个字节(16位)表示一个字符,2)四个字节(32位)表示一个字符。
python2与python3 的一些差异:
utf-8:用最少位数表示一个字符,比如说英文只有一个字节表示。
gbk:我国出产的编码,两个字节表示一个字符。
2、字符串
2.1字符串与bool值的转化
非空字符串转化为bool值 位True
空字符串转化为bool值为False
>>> bool('')
False
>>> bool('1')
True
>>> bool(' ')
True
用str()转换比较,逻辑运算时注意先内部运算完在输出
>>> str(1 and 1)
'1'
>>> str(1>2)
'False'
2.2字符串的索引和切片
查找一个字符串中的单个字符索引如下:
str[开始位置:结束位置:步距]
假如默认开始位置小于结束位置,如果结束位置大于开始位置步距一定要小于0否则系统虽然不会出错但是不会输出。
s = 'pythonabcdef'
#
print(s[:]) #打印全部
print(s[len(s)::-1]) #反向打印
print(s[:6]) #打印python
print(s[-1:-6:-2]) #打印fdb
print(s[-5:]) #不报错 也不打印结果
结果:
pythonabcdef
fedcbanohtyp
python
fdb
bcdef
2.3字符串的方法
str.capitalize()将首字母大写,其余都变成小写返回。
>>> s = 'this is a try'
>>> s.capitalize()
'This is a try'
>>> s = 'this IS a Try'
>>> s.upper()
'THIS IS A TRY'
>>> s.lower()
'this is a try'
str.title()使字符变为标题化字符即每个单词首字母大写
>>> s
'this IS a Try'
>>> s.title()
'This Is A Try'
>>> s
'this IS a Try'
>>> s.count('s')
1
>>> s.count('A')
0
>>> s.find('s')
3
>>> s.find('Q')
-1
>>> s.index('s')
3
>>> s.index('D')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
str.strip()(两边开始查找) , str.lstrip()(从左开始查找),str.rstrip()(从右边开始查找),去除相应字符为填入即去除空格。
s = ' asldfkjafa '
print(s.strip())
结果:asldfkjafa
s = 'asldfkjafa'
print(s.strip('as'))
结果:ldfkjaf
s = 'asldfkjafa'
print(s.strip('salf'))
结果:dfkj
s = 'asldfkjafa'
print(s.split('a'))
结果:['', 'sldfkj', 'f', '']
如果第一个就剪切,第一个位空字符