python编码的转换

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,加了应该没事

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值