iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python3学习(1)
  • 389
分享到

python3学习(1)

2023-01-31 08:01:29 389人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

判断编码格式 import chardetchardet.detect("abc迭代".encode("gbk"))#需要加encode{'encoding': 'ISO-8859-1', 'confidence': 0.73, 'l

判断编码格式

import chardet
chardet.detect("abc迭代".encode("gbk"))#需要加encode
{'encoding': 'ISO-8859-1', 'confidence': 0.73, 'language': ''}

python2 和python3文件处理字符编码区别
py2:
1 文件要存为utf-8
2 文件第一行声明为:#encoding=utf-8
#coding=utf-8
#coding:utf-8
#_coding:UTF-8_
3 所有的中文前面加u,表示unicode

py3:
1 文件要存为utf-8
2 声明可以不加,加上也没问题
3 中文前面不用加u,加了也没事。

1 保存为ANSI
2 文件头声明为#encoding=gbk
3 中文前面不加u,加了应该也没事

py3示例:

#coding=gbk
s = "中国"
print(s) #按照gbk转换到unicode
文件保存的是ANSI

s = "中国"
print(s)
这个在文件里面,默认是用utf8的,但是保存的又是ANSI

E:\Python>py -3 a.py
File "a.py", line 1
SyntaxError: Non-UTF-8 code starting with '\xd6' in file a.py on line 1, but no encoding declared; s
ee Http://python.org/dev/peps/pep-0263/ for details

#coding=utf-8
s = "中国"
print(s)
文件保存为utf-8,#coding=utf-8这个可写可不写,默认是按照utf是转换到unicode的

示例:
py2:存为utf-8,文件第一行也声明为utf-8
str1="我们" 类型:str
#str1.decode() 默认是:ascii解码
str1.decode("utf-8")
str1.decode("utf-8")==u"我们"
str1.decode("utf-8").encode("utf-8")==str1

py2:存为ansi,文件第一行也声明为gbk
str1="我们" 类型:str
#str1.decode() 默认是:ascii
str1.decode("gbk")==u"我们"
str1.decode("gbk").encode("gbk")== str1

python2 和python3 decode 、encode区别
str2=u"我们"  类型:unicode

py2:str类型等价于py3的bytes类型
py2:str类型例子: s ="中国"
py2的Unicode类型例子:s =u"中国"

p3:str类型等价于py2的unicode类型
py3 的str类型:s = "中国"
py3 的bytes类型: s= "中国".encode("utf-8")

encode:
不管是2还是3,只能对unicode对象来用
在py2:将unicode类型的对象,转换为str类型
在py3:将 str类型的对象,转换为了bytes类型

decode:
不管是2还是3,只能对非unicode对象使用
在py2:将str类型的对象,转换为unicode类型
在py3:将bytes类型的对象,转换为了unicode类型

Py3中如:

s = "中户任命施蒂利克积分洛杉矶的方式"
print(s.encode("gbk").decode("gbk"))
中户任命施蒂利克积分洛杉矶的方式

分析:
其中s本身str类型,即是unicode编码在内存中保存,分两步:
1、s.encode("gbk")是把unicode编码成gbk,在内存中是bytes类型保存;
2、s.encode("gbk").decode("gbk") 是把上一步得到的结果解码成gbk编码,在内存中用unicod保存,才可以在终端中展示;

只有在unicode下才能将utf-8与gbk互转

py3时:
a="中国" 和a=u"中国" 是一个意思,都表示str类型unicode存储类型
c=b"Good" 表示str类型bytes存储类型

py2时:
a="中国" 和a=b"中国" 是一个意思,表示str类型bytes存储类型
a=u"中国" 表示str类型unicode存储类型

unicode是在内存中使用
bytes在文件存储和网络数据传输中使用。

练习题6:
py2 :声明str类型变量和unicode变量
将unicode变量变为2个str变量(gbk,utf-8各一次)
将utf-8编码的str类型,转换为gbk
#coding=utf-8
str1 = "水电费了会计师福建省来访接待室浪费空间"
str2 = u"中国了空间乱收费的健康"
print str2.encode("utf-8")#这个编码成utf-8会展示乱码,因为终端是gbk编码
print str2.encode("gbk")

print str1.decode("utf-8").encode("gbk")

交互模式:

s = "迭代"
s.decode("gbk")#因为默认是gbk展示的
u'\u8fed\u4ee3'
print s.decode("gbk")
迭代

查看python使用的默认编码

import sys
sys.getdefaultencoding
<built-in function getdefaultencoding>
sys.getdefaultencoding()
'utf-8'
"胜多负少计费".encode().decode()#这里默认都是使用utf-8进行编码和解码的
'胜多负少计费'
"胜多负少计费".encode("utf-8").decode("utf-8")
'胜多负少计费'

常量:
const.py
class _const:
class ConstError(TypeError):pass
def setattr(self, name, value):#赋值时候该函数会被自动调用
if name in self.dict:
raise self.ConstError
self.dict[name]=value

import sys
#name代表当前模块,把const类注册到sys.modules这个全局字典中。
sys.modules[name] = _const()
print(name)

print(_const())

b.py
import const
const.magic = 23
print(const.magic)
const.magic = 33

使用sys.modules[name]可以获取一个模块对象,并可以通过该对象获取模块的属性,这儿使用了sys.modules向系统模块字典中注入了一个_const对象从而实现了在执行import const时实际获取了一个_const实例的功能;

其他模块执行import const 导入const模块时候sys.modules[name] = _const()会被执行(所有顶格写的代码都会被执行)系统模块字典中就注入了一个_const类的实例对象;而其他模块就可以使用该队形的方法和属性了;

type(10)
<class 'int'>
type(10.2)
<class 'float'>
type(10+4j)
<class 'complex'>
isinstance(2,(int,float,complex))
True

字符串拼方式:

"a" + "b" + "c"#效率低
'abc'

"".join(["a","b","c"])
'abc'

"%s" %50
'50'

True False可以作为常量相加
True 1 False 0

True +1
2
False + 2
2

True 1 False 0

bool()函数
判断True 或者 False

bool({})
False

--结束END--

本文标题: python3学习(1)

本文链接: https://www.lsjlt.com/news/193030.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python3学习(1)
    判断编码格式 import chardetchardet.detect("abc迭代".encode("gbk"))#需要加encode{'encoding': 'ISO-8859-1', 'confidence': 0.73, 'l...
    99+
    2023-01-31
  • python3学习笔记(1)----基
    一、python3的基本语法 1、缩进统一(1个tab或者4个空格)。 for i in range(10): print (i) 2、标识符的第一个字母必须是字母(大小写字母)或者下划线,其他部分可以有字母和...
    99+
    2023-01-31
    学习笔记
  • Python学习 (1)
    一、基本语法: import 与 from...import 在 python中 用import 或者from...import 来导入相应的模块。 将整个模块(somemodule)导入,格式为:import somemodule 从...
    99+
    2023-01-30
    Python
  • python学习1
    python:    模块导入:    from 模块名 import 方法名        变量    a = 100    s = 'hello world'    d = 1.99    b = True    if 条件 :    ...
    99+
    2023-01-31
    python
  • Python3学习(2)
    字符串赋值引用特性同一个字符串赋值给不同的变量,所有变量都是同一个对象 s = "abc"s1 = "abc"id(s)34707248 id(s1)34707248 id("abc")34707248 s is s1True ...
    99+
    2023-01-31
  • python3学习(3)
    练习题:1. 26个字母大小写成对打印,例如:Aa,Bb.... for i in range(65,91): print(chr(i)+chr(i+32)+",",end="") 2、一个list包含10个数字,然后生成新的lis...
    99+
    2023-01-31
  • 一篇文章带你学习Python3的高级特性(1)
    目录1.切片2.迭代3.列表生成式总结1.切片 # 切片:取list或tuple的部分元素 nameList = ["Willard","ChenJD","ChenBao","Che...
    99+
    2024-04-02
  • python3学习之练习题
    题目来自老男孩培训:作业1:信用卡程序功能要求(必须):1.额度15000,不可超额透支(用户ID,账号,密码,额度写入文件中)2.可以提现,手续费5%3.每月最后一天出账单(每月30天),写入文件(交易日,交易摘要,人民币金额,手续费)4...
    99+
    2023-01-31
    练习题
  • python3学习之print
    %[(name)][flags][width].[precision]typecode● (name)        可选,用于选择指定的key● flags            可选,可供选择的值有:    ●  +  右对齐    ●...
    99+
    2023-01-31
    print
  • python3学习之random
    import random print(random.random()) #随机取值 print(random.randint(1,4)) #随机从1到4去一个整数,包含1和4 print(random.choice([1,2,3,4...
    99+
    2023-01-31
    random
  • python3学习案例
    """ 请打印出 1024 * 768 = *** """ shu = 1024 * 768 print("1024 * 768 = %d" %shu) """ 请打印出以下变量的值: # -*- coding: utf-8 -*- n ...
    99+
    2023-01-31
    案例
  • python3 学习笔记
    本人很少写 python 代码, 一般都是用 go 的, 去年时用 python 写过一些收集系统信息的工具, 当时是边看手册边写的. 如今又要用 python 来写一个生成 xlsx 的工具, 就又需要查看手册了, 至于为什么不用 g...
    99+
    2023-01-31
    学习笔记
  • postgresql学习-Part 1
    1. 错误, 允许本地连接: -bash-4.1$ psql mydb psql: FATAL:  no pg_hba.conf entry for host "[local]", user "p...
    99+
    2024-04-02
  • python3学习笔记
    好久不用python,努力捡起来ing python3语法 字符串 repr()把其他类型变量转换为字符串 ord()把单个字符转换为相应的ascii码 int()把其他进制的“字符串”转换为十进制 int(str,n...
    99+
    2023-01-31
    学习笔记
  • Python学习笔记(1)
    Python开发框架:       a.Python基础;       b.网络编程;       c.WEB框架;       d.设计模式+算法;       e.项目阶段; 开发:   开发语言:       高级语言:Python...
    99+
    2023-01-30
    学习笔记 Python
  • python 学习总结1
    计算机与程序设计 一、计算机的概念   1.计算机是根据指令操作数据的设备。   2.计算机主要包括两个功能性一个是功能性另一个是计算性   功能性是对数据的操作,表现为数据计算,输入输出处理和结果存储   可编程性是根据一系列指令自动的...
    99+
    2023-01-30
    python
  • python学习之路(1)
    今天刚入门python,对于有c和java基础的我,学习起来还是比较容易的,我并没有用PyCharm写,而是最基础的IDLE,学习python比java容易的地方就是不要写分号,不要打包,不要定义等等,可能是我还学习的不够深入吧。 今天的...
    99+
    2023-01-31
    之路 python
  • python学习笔记(1
    关于随笔 python随笔只是个人笔记,可能会有遗漏或错误,仅供参考 学习文档地址 https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e5...
    99+
    2023-01-30
    学习笔记 python
  • Python学习笔记(1)
    1 def sum_args(*args): 2 return sum(args)) 3 4 def run_with_positional_args(func, *args): 5 return func(*...
    99+
    2023-01-31
    学习笔记 Python
  • python模块学习(1)
    模块让你能够有逻辑地组织你的Python代码段。把相关的代码分配到一个 模块里能让你的代码更好用,更易懂。模块也是Python对象,具有随机的名字属性用来绑定或引用。简单地说,模块就是一个保存了Python代码的文件。模块能定义函数,类和变...
    99+
    2023-01-31
    模块 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作