第一个Python程序

1、python与java的区别

Python和Java是两种不同的编程语言,它们具有以下一些主要区别:

  1. 语法:Python的语法相对简洁和可读性高,使用缩进来表示代码块;而Java的语法更为严格,使用花括号来表示代码块。

  2. 类型系统:Python是一种动态类型语言,变量的类型不需要事先声明;而Java是一种静态类型语言,变量的类型需要在编译时进行声明。

  3. 性能:Java通常比Python运行速度更快,因为Java是编译执行的,而Python是解释执行的。

  4. 应用领域:Python在数据分析、机器学习、人工智能等领域有广泛应用;Java在企业级开发、Web开发、游戏开发和Android应用开发方面应用广泛。

  5. 生态系统:Java拥有庞大的生态系统和丰富的第三方库和框架,而Python的生态系统同样庞大且有丰富的库和框架。

Python和Java都是非常流行和有用的编程语言,在各自领域发挥都非常出色,最主要的差异还是编程语言静态与动态的区别,选择哪种语言取决于具体的项目需求和个人偏好。

2、python开发环境

2.1、python2与python3的区别

Python2和Python3是Python语言的两个主要版本。以下是它们之间的一些主要区别:

  1. 语法差异:Python3引入了一些语法改进,例如打印函数不再是一个语句而是一个函数调用(print()),以及增加了新的关键字(例如,as、nonlocal等)。

  2. 字符串处理:在Python3中,字符串默认使用Unicode编码,而在Python2中,默认使用ASCII编码。这导致在Python2中处理非ASCII字符需要更多的处理工作。

  3. 整数除法:在Python2中,整数除法返回的是一个整数结果,而在Python3中,整数除法会返回一个浮点数结果。

  4. 异常处理:在Python2中,raise语句可以用的非常灵活,可以用于抛出任何对象。而在Python3中,raise语句只能用于抛出类的实例。

  5. 异常处理的语法:Python3中移除了as关键字,用于对异常进行别名处理,而是使用内置的exception()函数。

  6. xrange函数:在Python2中,xrange()函数返回的是一个迭代器,用于循环遍历一个范围。而在Python3中,range()函数返回的是一个迭代器,而不是一个列表。

  7. 兼容性:Python3的设计目标是与Python2不兼容,以解决语言中的一些设计缺陷。这意味着Python2的一些特殊用法和库可能无法在Python3中正常工作。

2.2、python集成开发环境(IDE)

Python常用的开发环境包括:

  1. Anaconda: 一个基于Python的科学计算环境,包含了Python解释器以及众多科学计算、数据分析和机器学习的常用库。

  2. Jupyter Notebook: 一个交互式的笔记本环境,可以在浏览器中编写和运行Python代码,并且可以在代码中插入文档、图片和其他多媒体内容。

  3. PyCharm: 一个功能强大的Python集成开发环境(IDE),提供了代码编辑、调试、版本控制等一系列开发工具。

  4. Visual Studio Code: 一个轻量级的代码编辑器,通过插件可以支持Python的语法高亮、代码补全、调试等功能。

  5. Sublime Text: 另一个轻量级的代码编辑器,也可以通过插件支持Python的开发。

本人是JetBrains的忠实粉丝(不购买正版的假粉丝),不管什么编程语言,总会先找下JetBrains 有没有相应的产品。对于Java而言,大学时代用的是官方的NetBeans,刚开始工作用的是鼎鼎大名的Eclipse,直到遇到了Idea,从此欲罢不能。

对于Python,本人同样选择JetBrans的PyCharm,信仰的选择。

这里,我选择的是社区版,无谓正版盗版的区别了。

下载地址--》 PyCharm官网下载

选择社区版

3、程序入口

3.1、java程序入口

在Java中,程序的入口是通过public static void main(String[] args)方法来确定的。任何一个类文件,只要包含该方法,即可作为程序入口。当我们运行一个Java程序时,虚拟机会寻找并执行这个方法。

main方法必须满足以下要求:

  1. 方法必须声明为public,以便其他类可以访问它。
  2. 方法必须声明为static,以便在没有创建对象的情况下调用它。
  3. 方法的参数是一个String类型的数组,通常命名为args,用于接收命令行参数。
  4. 方法的返回类型是void,即没有返回值。
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello, world!");
    }
}
 

3.2、python程序入口

Python程序的入口是指程序开始执行的地方。在Python中,程序的入口是通过特殊的全局变量__name__来确定的。

当我们直接运行一个.py文件时,Python解释器会首先解析该文件,并将文件中的代码逐行执行。而当Python解释器执行到全局作用域的时候,会默认定义一个特殊的全局变量__name__,并将其值设置为__main__

所以,我们可以通过判断__name__的值,来确定程序的入口。

如果一个.py文件被当作模块导入到其他文件中使用时,__name__的值就不再是__main__,而是模块的名称。这时,我们可以在该文件中定义一些函数、类等,供其他文件调用,但不会执行文件中的代码。

下面是一个示例:

# 定义一个函数
def main():
    print("Hello, world!")

# 判断是否在主模块中
if __name__ == '__main__':
    # 调用main函数
    main()
 

当我们直接运行这个文件时,__name__的值就是__main__,所以会执行main()函数,并输出"Hello, world!"。而当该文件被其他文件导入时,__name__的值就不是__main__,所以不会执行main()函数。这样就可以避免一些不必要的代码被执行。

3、python模块内置属性。

上面的__main__属于python模块内置的属性。以下是一些常用的内置属性。

  1. __name__:表示模块的名称。当模块直接被执行时,其值为__main__;当模块作为导入模块使用时,其值为模块的实际名称。

  2. __doc__:表示模块的文档字符串。可以通过help(模块名)来查看模块的文档字符串。

  3. __file__:表示模块的源文件路径。如果模块是内置模块或没有对应的源文件,此属性值为None。

  4. __dict__:一个包含模块命名空间中的变量的字典,其中键是变量名,值是对应的变量对象。

  5. __builtins__:一个包含Python内置函数和异常的字典。

对于上面的简单demo,通过程序断点调试,可以看到这些内置属性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/560792.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

后端-MySQL-week11 事务

事务 简介 操作 有两种方式,一种是设置为手动提交——不执行“commit”不进行变更;另一种是手动开启一个事务,用开启事务的代码(SQL语句)来创建一个需要“commit”才能进行变更的事务 1.第一种方式 2.第二种方式 四…

会声会影2023序列号免费和激活下载(附注册机keygen下载)

安装前准备 1、会声会影2023的安装需要在保证电脑联网的状态下进行。请您确保安装过程中有良好的网络环境,并且在安装过程中不可断网。 2、安装之前,请先退出、关闭360、电脑管家以及杀毒软件。 会声会影2023安装和下载 1、选择您下载版本对应的会声会…

配置使用IPsec安全框架保护RIPng报文

正文共:999 字 11 图,预估阅读时间:1 分钟 前面我们简单介绍了IPv6的基本概念(IPv6从入门到精通),也做了动态路由协议的相关介绍(IS-ISv6配置),还做了一个综合性比较强的…

抓取内网windows密码和利用hash横向及相关问题

目录 实验准备 用msf拿到shell 抓取hash和明文密码 相关问题 问题1.通过hashdump抓取所有用户的密文为什么分成两个模块,这两个模块分别代表什么 ? 问题2.为什么第一个模块 永远是一样的aad3? 问题3.这两个模块的加密算法有什么不同&a…

Android Jetpack学习系列——Room

关于Room: Room是Android Jetpack组件之一,旨在为Android应用程序提供一种简单、强大且易于使用的本地数据库访问解决方案。 关键特性: 1.基于SQLite封装:Room是基于SQLite数据库引擎构建的,提供了面向对象的API来与…

Postgres数据库中的死锁是如何产生的,如何避免和解决?

文章目录 死锁的产生原因如何避免死锁如何解决死锁示例代码查询死锁信息终止事务 在Postgres数据库中,死锁是一种特殊的情况,其中两个或多个事务相互等待对方释放资源,从而导致它们都无法继续执行。这种情况通常发生在多个事务尝试以不同的顺…

Clark Transform的FPGA代码实现讲解

Clark 变换是坐标转换,将输入的三相电流转换到两相直角坐标下电流,如下图为坐标表示方法。 根据坐标的投影我们可以得到 从而可以推知: 上述公式为最终代码中实现的计算公式。 在FPGA中实现时,由于FPGA中不擅长浮点数计算&#xf…

Leetcode刷题-(26~35)-Java

算法是码农的基本功,也是各个大厂必考察的重点,让我们一起坚持写算法题吧。 遇事不决,可问春风,春风不语,即是本心。 我们在我们能力范围内,做好我们该做的事,然后相信一切都事最好的安排就可…

数据结构之排序了如指掌(三)

目录 题外话 正题 快速排序 Hoare法 Hoare法思路 Hoare法代码详解 挖坑法 挖坑法思路 挖坑法代码 前后指针法 前后指针法思路 前后指针法代码 小结 题外话 我们接着把没有写完的排序内容完成,快速排序其实大同小异,大家好好把思路整理一下 正题 快速排序 快速排序一…

WideDeep

这里写目录标题 1. 背景2. 贡献3 模型结构(1)任务定义(2)The Wide Component(3)The Deep Component(4)联合训练Wide和Deep Model 4. 参考 1. 背景 (1) 广义线性回归通常被用于推荐模…

树莓派+Openwrt连接校园网,打破校园网设备限制

前言 因为本校学生校园网只允许最多三个设备登录,对于同时拥有多个联网设备的我十分不友好,而且大多单片机如esp32的wifi模块是只允许一般的WPA/WPA2认证的,是不支持校园网的portal认证。所以我决定搞一个路由器。 然后我上网买了一个TP-Li…

Android Studio 新建Android13 代码提示Build Tools revision XX is corrupted无法编译解决

Android Studio 新建Android13 代码提示Build Tools revision XX is corrupted无法编译解决 文章目录 Android Studio 新建Android13 代码提示Build Tools revision XX is corrupted无法编译解决一、前言二、分析解决1、原因分析2、解决方法 三、其他1、Android13 新项目无法编…

采用matplotlib可视化kitti

配置kitti_object_vis没成功,用kitti_object_vis的一些函数加上matplotlib进行可视化 import numpy as np import matplotlib.pyplot as pltimport numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D def roty(t):"&quo…

JavaWeb-登录校验

会话技术 浏览器使用的是http协议,多次请求间数据是不能共享的,例如我们要去访问用户数据的接口,但这时候用户是否已经登入了呢?是不知道的,为了解决这个问题,于是引入了会话跟踪技术。 会话:…

05—js对象

一、初识对象 JavaScript是面向对象编程(Object Oriented Programming,OOP)语言。 面对象是一种复合值:它将很多值集合在一起,可通过名字访问这些值。对象也可看做一种无序的数据集合,由若干个“键值对”…

iced 入门一

📕作者简介: 过去日记,致力于Java、GoLang,Rust等多种编程语言,热爱技术,喜欢游戏的博主。 📘相关专栏Rust初阶教程、go语言基础系列、spring教程等,大家有兴趣的可以看一看 📙Jav…

基于ssm的企业在线培训系统论文

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装企业在线培训系统软件来发挥其高效地信息处理的作用&#x…

每日一题

腐烂的苹果_牛客题霸_牛客网 思路分析:广度优先遍历,找到所有腐烂的苹果同时向四方扩散,就是第一轮把所有腐烂的苹果加入队列中,这就跟MQ的消息队列的原理差不多,第一次记录队列的长度,广度遍历一次,长度--…

第一个STM32F767IGT6核心板

一. 制作原因 起先是因为参加计算机设计大赛准备的板子,其作用是连接OV5640摄像头来识别车牌号,主要外设有摄像头,SDRAM,网口等。 二. 原理图和PCB 原理图 PCB 三. 测试 1. 测试SDRAM功能 按下按键我们可以在串口中看到内存…

【基础IO】谈谈动静态库(怒肝7000字)

文章目录 前言实验代码样例静态库生成一个静态库归档工具ar静态库的链接 动态库创建动态库加载动态库 动静态链接静态链接动态链接动静态链接的优缺点 前言 在软件开发中,库(Library)是一种方式,可以将代码打包成可重用的格式&…