Python基础一编码的转换
一、排重习题:(面试必考)
练习题:一个列表,排重,不能用set,也不能用字典。
算法:
1、 生成一个空列表result,存储排重后的元素
2、 遍历列表的每一个元素,判断是否在result列表
3、 如果在,则不做任何动作
4、 最后打印result列表
l=[1,2,3,2,2,1,3,2,1]
result=[]
for i in l:
if i not in result:
result.append(i)
print(result)
遍历的时候,有时候会将改变元素列表。
Python特点简介:
Python的类别:
Cpython
Jpython
Ironpython
标准的是用Cpython
Python的代码,可以在各个平台无缝移植。
如何执行python:
执行平台:windows\linux\mac
交互模式:每一行到吗执行后,均输出结果
文件模式:代码写在文件中,然后执行
常用的编译器:Eclipse+pydev\pycharm\sublime\notepad++\写字板
>>> ord("a")
97
>>> chr(97)
'a'
>>> chr(10000)
'✐'
>>> chr(12000)
'⻠'
>>> ord("我")
25105
>>> chr(25106)
'戒'
>>> chr(25107)
'戓'
>>> import time
>>> for i in range(30000):
... print(chr(i))
>>> import time
>>> for i in range(30000):
... print(chr(i))
... time.sleep(0.2)
引入包查看具体字符:
>>> import string
>>> dir(string)
['Formatter', 'Template', '_ChainMap', '_TemplateMetaclass', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_re', '_string', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'capwords', 'digits', 'hexdigits', 'octdigits', 'printable', 'punctuation', 'whitespace']
>>> string.punctuation
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
>>>
1-128是可见字符,128-256是不可见字符
>>> s=""
>>> for i in range(48,58):
... s+=chr(i)
...
>>> print(s)
0123456789
小写字母比大些字母大,字母比数字大。
练习题:
1、 生成所有的小写字母
>>> s1=""
>>> for i in range(97,123):
... s1+=chr(i)
...
>>> s1
'abcdefghijklmnopqrstuvwxyz'
2、所有的大写字母
>>> s2=""
>>> for i in range(65,91):
... s2+=chr(i)
...
>>> s2
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
3、所有的大小写字母
>>> s3=""
>>> for i in range(65,123):
... s3+=chr(i)
...
>>> s3
'ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz'
4、所有的大小写字母和数字
>>> s4=""
>>> for i in range(48,123):
... s4+=chr(i)
...
>>> s4
'0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz'
>>> for i in range(10):
... s3+=str(i)
...
>>> s3
'ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz0123456789'
练习题:
生成字符串:a1b2c3d4、、、j10
result = ""
first_letter_ascill_code = 97
for i in range(1,11):
result+=chr(first_letter_ascill_code+i-1 )+str(i)
print(result)
生成字符串a1B2c3D4、、、、J10
输出奇数字母和偶数字母到两个列表中(小写字母):
odd_ascii_code_lower_cases = []
even_ascii_code_lower_cases = []
for i in range(97,123):
if i%2 ==0:
even_ascii_code_lower_cases.append(chr(i))
else:
odd_ascii_code_lower_cases.append(chr(i))
print(odd_ascii_code_lower_cases)
print(even_ascii_code_lower_cases)
Py -3 -m pip install chardet
Import chardet
Print(chardet.detect(“dsbh ”.encode(“gbk”)))
>>> s="我们"
>>> type(s)
<class 'str'>
>>> type(s)
<class 'str'>
>>> s.encode("gbk")
b'\xce\xd2\xc3\xc7'
>>> print(s.encode("gbk"))
b'\xce\xd2\xc3\xc7'
>>> print(s.encode("gbk").decode("gbk"))
我们
>>>
Unicode只是一个编码,UTF-8是字符。1-4个字节表示一个字符。
Py2:
1、文件要存为utf-8
2、文件第一行声明为:#encoding = utf-8
#coding=utf-8
#coding:utf-8
#coding:UTF-8
3所有的中文面前加u,表示unicode
Python3:
1、 文件要存为utf-8
2、 声明可以不加,加上也没有问题
3、 中文面前不用加u,加了也没事
#encoding=gbk
s=“中国”
print(s)
1、 保存为ansi
2、 文件头声明为#encoding=gbk
3、 中文前面不加u,加了应该没事