Python学习(6) ----- Python2和Python3的区别
Python2 和 Python3 是两个主要版本的 Python 编程语言,它们之间有许多重要的区别。Python3 是对 Python2 的一次重大升级,不完全兼容旧版本。以下是它们的主要区别:
🧵 基本语法差异
1. 打印语法
-
Python2:
print
是一个语句print "Hello, world"
-
Python3:
print()
是一个函数print("Hello, world")
2. 整数除法
-
Python2:两个整数相除默认是整数除法
print 5 / 2 # 输出 2
-
Python3:两个整数相除默认是浮点除法
print(5 / 2) # 输出 2.5
Python2 中想要浮点除法需使用
from __future__ import division
。
3. Unicode 处理
- Python2:字符串默认是 ASCII 编码,
str
类型是字节串,unicode
类型才是 Unicode。 - Python3:字符串默认是 Unicode,
str
类型是 Unicode,bytes
类型是字节串。
📦 标准库和内建函数
4. range()
和 xrange()
-
Python2:
range()
返回列表xrange()
返回生成器(更节省内存)
-
Python3:只有
range()
,行为类似 Python2 的xrange()
5. input()
函数
- Python2:
input()
相当于eval(raw_input())
,不安全;推荐用raw_input()
- Python3:
input()
相当于 Python2 的raw_input()
,始终返回字符串
🔧 语言特性
6. 异常语法
-
Python2:
try:pass except Exception, e:print e
-
Python3:
try:pass except Exception as e:print(e)
7. 类的定义
-
Python2:有旧式类和新式类(需继承
object
)class MyClass: # 旧式类pass class MyClass(object): # 新式类pass
-
Python3:所有类都是新式类,统一继承自
object
🧪 其他重要差异
8. 字典方法的返回值
-
Python2:
d = {'a': 1} print d.keys() # 返回 list
-
Python3:
d = {'a': 1} print(d.keys()) # 返回 dict_keys 对象(可迭代视图)
9. 编码声明
-
Python2 源码需声明编码(默认 ASCII):
# -*- coding: utf-8 -*-
-
Python3 默认 UTF-8,可以不写编码声明(推荐保留)
✅ 总结
特性 | Python2 | Python3 |
---|---|---|
打印语法 | print 语句 | print() 函数 |
除法行为 | 整除(除非引入 future) | 浮点除法 |
字符串默认类型 | ASCII (str ) | Unicode (str ) |
range() | 列表 | 可迭代对象(生成器) |
input() | eval(raw_input()) | 字符串 |
类定义 | 有旧式和新式类 | 统一为新式类 |
异常写法 | except Exception, e | except Exception as e |
❗ Python2 已停止官方支持
自 2020 年 1 月 1 日 起,Python2 已停止维护,不再接收安全更新或 bug 修复。新项目建议全面使用 Python3。
相关文章:
Python学习(6) ----- Python2和Python3的区别
Python2 和 Python3 是两个主要版本的 Python 编程语言,它们之间有许多重要的区别。Python3 是对 Python2 的一次重大升级,不完全兼容旧版本。以下是它们的主要区别: 🧵 基本语法差异 1. 打印语法 Python2:print 是一…...

零基础安装 Python 教程:从下载到环境配置一步到位(支持 VSCode 和 PyCharm)与常用操作系统操作指南
零基础安装 Python 教程:从下载到环境配置一步到位(支持 VSCode 和 PyCharm)与常用操作系统操作指南 本文是一篇超详细“Python安装教程”,覆盖Windows、macOS、Linux三大操作系统的Python安装方法与环境配置,包括Pyt…...

SAP学习笔记 - 开发18 - 前端Fiori开发 应用描述符(manifest.json)的用途
上一章讲了 Component配置(组件化)。 本章继续讲Fiori的知识。 目录 1,应用描述符(Descriptor for Applications) 1), manifest.json 2),index.html 3),Component.…...
分类与逻辑回归 - 一个完整的guide
线性回归和逻辑回归其实比你想象的更相似 😃 它们都是所谓的参数模型。让我们先看看什么是参数模型,以及它们与非参数模型的区别。 线性回归 vs 逻辑回归 线性回归:用于回归问题的线性参数模型。逻辑回归:用于分类问题的线性参数模型。参数回归模型: 假设函数形式 模型假…...

一键试衣,6G显存可跑
发现一个好玩的一键换衣的工作流,推荐给大家。 https://github.com/chflame163/ComfyUI_CatVTON_Wrapper 作者参考的是开源项目,做成了工作流形式。 https://github.com/Zheng-Chong/CatVTON 先来看下效果,使用动画人物也可换衣ÿ…...
跟着deepseek浅学分布式事务(2) - 两阶段提交(2PC)
文章目录 一、核心角色二、流程详解三、关键示例四、致命缺点五、改进方案六、适用场景七、伪代码1. 参与者(Participant)2. 协调者(Coordinator)3. 模拟运行(Main Class)4. 关键问题模拟 八、待改进问题总…...
【仿生机器人软件架构】通过整合认知系统实现自主精神性——认知系统非常具有可执行性
来自Claude 4.0 pro深度思考 仿生机器人软件架构:通过整合认知系统实现自主精神性 要创建具有真正情感深度的、完全自主的仿生机器人,需要超越基于规则的系统,转向能够实现涌现行为、自适应个性和类似意识处理的架构。根据截至2024年初的现…...

20250602在Ubuntu20.04.6下修改压缩包的日期和时间
rootrootrootroot-X99-Turbo:~$ ll -rwxrwxrwx 1 rootroot rootroot 36247187308 5月 23 10:23 Android13.0地面站.tgz* rootrootrootroot-X99-Turbo:~$ touch 1Android13.0地面站.tgz rootrootrootroot-X99-Turbo:~$ ll -rwxrwxrwx 1 rootroot rootroot 36247187308 6月…...
Fullstack 面试复习笔记:项目梳理总结
Fullstack 面试复习笔记:项目梳理总结 之前的笔记: Fullstack 面试复习笔记:操作系统 / 网络 / HTTP / 设计模式梳理Fullstack 面试复习笔记:Java 基础语法 / 核心特性体系化总结 这篇笔记主自用,系统地梳理一下最近…...

星闪开发之Server-Client 指令交互控制OLED灯案例
系列文章目录 星闪开发之Server-Client 指令交互控制OLED灯案例 文章目录 系列文章目录前言一、核心流程服务端客户端 二、图片资源三、源代码四、在Hispark Studio中配置将sle_oled-master文件夹下的相sle_oled放在peripheral文件夹下。peripheral目录下的 Kconfig文件中添加…...

MySQL补充知识点学习
书接上文:MySQL关系型数据库学习,继续看书补充MySQL知识点学习。 1. 基本概念学习 1.1 游标(Cursor) MySQL 游标是一种数据库对象,它允许应用程序逐行处理查询结果集,而不是一次性获取所有结果。游标在需…...
《前端面试题:CSS有哪些单位!》
CSS单位大全:从像素到容器单位的前端度量指南 精通CSS单位是构建响应式、灵活布局的关键技能,也是面试中的必考知识点 一、CSS单位的重要性与分类 在网页设计中,CSS单位是控制元素尺寸、间距和定位的基础。不同的单位提供了不同的计算方式和…...

[ctfshow web入门] web80
信息收集 过滤了php和data if(isset($_GET[file])){$file $_GET[file];$file str_replace("php", "???", $file);$file str_replace("data", "???", $file);include($file); }else{highlight_file(__FILE__); }解题 大小写…...

【设计模式-4.5】行为型——迭代器模式
说明:本文介绍设计模式中,行为型设计模式之一的迭代器模式。 定义 迭代器模式(Iterator Pattern),也叫作游标模式(Cursor Pattern),它提供一种按顺序访问集合/容器对象元素的方法&…...

C++_核心编程_继承中的对象模型
继承中的对象模型 **问题:**从父类继承过来的成员,哪些属于子类对象中? * 结论: 父类中私有成员也是被子类继承下去了,只是由编译器给隐藏后访问不到 */ class Base { public:int m_A; protected:int m_B; private:int…...

使用cephadm离线部署reef 18版并配置对接openstack
源 curl --silent --remote-name --location https://download.ceph.com/rpm-squid/el9/noarch/cephadm chmod x cephadm./cephadm add-repo --release reef监视节点 离线下载 apt-get --download-only install ceph ceph-mon ceph-mgr ceph-commonmkdir /reef/mon mv /var/…...
Redis最佳实践——性能优化技巧之缓存预热与淘汰策略
Redis在电商应用中的缓存预热与淘汰策略优化 一、缓存预热核心策略 1. 预热数据识别方法 热点数据发现矩阵: 维度数据特征发现方法历史访问频率日访问量>10万次分析Nginx日志,使用ELK统计时间敏感性秒杀商品、新品上线运营数据同步关联数据购物车关…...

2024年数维杯国际大学生数学建模挑战赛D题城市弹性与可持续发展能力评价解题全过程论文及程序
2024年数维杯国际大学生数学建模挑战赛 D题 城市弹性与可持续发展能力评价 原题再现: 中国人口老龄化趋势的加剧和2022年首次出现人口负增长,表明未来一段较长时期内我国人口将呈现下降趋势。这一趋势必将影响许多城市的高质量和可持续发展,…...
3D Gaussian splatting 06: 代码阅读-训练参数
目录 3D Gaussian splatting 01: 环境搭建3D Gaussian splatting 02: 快速评估3D Gaussian splatting 03: 用户数据训练和结果查看3D Gaussian splatting 04: 代码阅读-提取相机位姿和稀疏点云3D Gaussian splatting 05: 代码阅读-训练整体流程3D Gaussian splatting 06: 代码…...

QT聊天项目DAY13
1. 重置密码 重置密码label也要实现浮动和点击效果,所以将忘记密码这个标签提升为ClickedLabel 1.1 ClickedLabel的复用 由于样式表(.qss) 文件中可以写入多个控件的状态UI,所以为了ClickedLabel能够复用,将成员变量的初始化方式修改为函数…...

Web3如何重塑数据隐私的未来
在这个信息爆炸的时代,数据隐私已成为我们不得不面对的严峻问题。Web3,作为下一代互联网的代表,以其去中心化、用户主权和数据安全等特点,正在重塑数据隐私的未来。它不仅仅是技术的革新,更是对个人隐私保护理念的一次…...

【鸿蒙】HarmonyOS NEXT之如何正常加载地图组件
1、不支持模拟器,需要真机! 2、Map地图需要在AGC上申请权限,需要在AGC上创建对应的项目 地址: AppGallery Connect 2.1 AGC中项目创建 2.1.1 添加项目 2.1.2 起个名字 2.1.3 添加应用: 2.1.4 选择HarmonyOS APP&…...

前端框架进化史
本内容是对 You’ll Never Manually Update the DOM Again // Here’s Why 内容的翻译与整理。 你再也不需要手工更新DOM, 以下是原因 现代 JavaScript 框架,如 React、Vue、Svelte、Solid、Quick,以及本周推出的其他 786 个框架,都试图做一些…...
“轻量应用服务器” vs. “云服务器CVM”:小白入门腾讯云,哪款“云机”更适合你?(场景、配置、价格对比解析)
更多云服务器知识,尽在hostol.com 当你第一次踏入腾讯云这个“数字百货大楼”,面对琳琅满目的“云产品”,是不是有点眼花缭乱,特别是看到“轻量应用服务器”和“云服务器CVM”这两位都号称能帮你“安家落户”的“云主机”时&…...
day63—回溯—全排列(LeetCode-46)
题目描述 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2: 输入&#x…...

(二)stm32使用4g模块(移远ec800k)连接mqtt
下面代码是随手写的,没有严谨测试仅供参考测试 uint8_t msgBuf[200]{"msg from mcu"}; uint8_t txBuf[250]{0}; uint16_t msgid0; uint16_t mqttTaskState0; uint16_t t100msCount0; uint8_t sendFlag10; uint8_t sendFlag20; void t100msTask1(void) { …...

防火墙iptables项目实战
目录 一、网络规划 三、环境准备与检测 1、firewall (1)配置防火墙各大网卡ip并禁用firewalld和selinux (2)打开firewall路由转发 2、PC1(内网) (1)配置ip并禁用firewalld和s…...

webpack继续学习
认识PostCSS工具 PostCSS是一个通过JS来转换样式的工具,这个工具可以帮助我们进行一些CSS的转换和适配,比如自动添加浏览器前缀,css样式的重置 实现这些功能需要借助于PostCSS对应的插件 自动添加浏览器前缀需要: npm install…...

Scrapy爬虫框架Spiders爬虫脚本使用技巧
我们都知道Scrapy是一个用于爬取网站数据、提取结构化数据的Python框架。在Scrapy中,Spiders是用户自定义的类,用于定义如何爬取某个(或某些)网站,包括如何执行爬取(即跟踪链接)以及如何从页面中…...

PowerBI企业运营分析—全动态盈亏平衡分析
PowerBI企业运营分析—全动态盈亏平衡分析 欢迎来到Powerbi小课堂,在竞争激烈的市场环境中,企业运营分析平台成为提升竞争力的核心工具。 该平台通过整合多源数据,实现关键指标的实时监控,从而迅速洞察业务动态,精准…...