【Pythonr入门第二讲】你好,世界

"Hello, World!" 是一种传统的编程入门示例,通常是程序员学习一门新编程语言时编写的第一个程序。这个程序的目标非常简单:在屏幕上输出 "Hello, World!" 这个字符串。尽管它非常简单,但具有重要的象征意义和实际价值。

Python介绍

学了Python你能做什么

请在此添加图片描述

数据分析与挖掘

  1. Kaggle入门:泰坦尼克号幸存者 - 分析泰坦尼克号乘客数据,预测乘客是否生存。
  2. 电影人物关系提取 - 通过分析电影剧本,提取人物之间的关系网络。
  3. 出租车与网约车调度 - 利用实时数据优化出租车和网约车的调度策略。
  4. 租房问题 - 分析租房市场数据,找到最佳租房策略。
  5. NBA比赛结果预测 - 基于历史比赛数据,使用机器学习模型预测NBA比赛结果。

机器学习与深度学习

  1. 人脸识别 - 使用深度学习模型实现人脸识别系统。
  2. K-近邻算法实现手写数字识别 - 利用机器学习算法(K-近邻)实现手写数字的自动识别。
  3. 中文错别字高亮系统 - 基于自然语言处理,设计一个中文错别字检测与高亮系统。
  4. 街边字符识别 - 利用计算机视觉技术,识别街边标识上的字符信息。

网络开发

  1. Django搭建个人博客 - 使用Django框架建立个人博客,实现文章发布、用户管理等功能。
  2. Flask实现简易聊天室 - 利用Flask框架创建一个简易的实时聊天室。
  3. 信息管理系统 - 使用异步框架(如Toronto)搭建一个信息管理系统,用于数据的存储和检索。

爬虫

  1. 微信好友信息批量获取 - 利用爬虫技术批量获取微信好友的相关信息。
  2. 微博热搜 - 爬取微博热搜榜单,分析热门话题。
  3. 爬取知乎图片 - 通过爬虫程序获取知乎上的图片资源。
  4. 爬取天气预报 - 从天气网站获取实时天气信息,用于天气预报应用。
  5. 网易云音乐 - 利用爬虫获取网易云音乐的歌曲、歌手信息等。

这些实际任务展示了Python在不同领域的灵活应用。学习Python后,我们能够处理数据、实现机器学习算法、进行网络开发以及使用爬虫技术获取互联网数据。这种多领域的适用性是Python开发的一大优势。

新建项目

  • 新建项目

请在此添加图片描述

请在此添加图片描述项目

请在此添加图片描述

Python 解释器

Python 解释器是执行 Python 代码的软件组件,它将你编写的 Python 脚本翻译成计算机能够理解的机器语言,然后执行代码。

虚拟环境: virtualenv、pipenv、poetry、conda

请在此添加图片描述

什么是Python环境

Python 环境通常指的是 Python 解释器、相关的库、工具和设置。Python 环境可以是全局环境,也可以是虚拟环境。

全局 Python 环境:

  • 全局环境是安装在计算机系统上的 Python 解释器和相关库的集合。这是你计算机上默认的 Python 环境。
  • 安装 Python 后,你可以在命令行或终端中运行 Python 解释器,执行 Python 脚本。全局环境中的库和工具对所有项目都是可用的。
  • 但在开发中,全局环境的一个问题是可能会出现版本冲突或库之间的不兼容性。为了解决这个问题,可以使用虚拟环境。

虚拟环境:

  • 虚拟环境是一个独立的 Python 环境,用于隔离不同项目的依赖关系。每个虚拟环境都有自己的 Python 解释器和库,与全局环境和其他虚拟环境相互隔离。
  • 虚拟环境允许你在同一台机器上的不同项目中使用不同版本的 Python 解释器和第三方库,以避免冲突。
  • 通过虚拟环境,你可以确保每个项目都拥有其独立的 Python 环境,使得项目之间的开发更加灵活和可维护。

什么是虚拟环境

虚拟环境(Virtual Environment)是 Python 中的一个工具,用于创建独立的、隔离的 Python 运行环境。它允许在同一台机器上的不同项目中使用不同版本的 Python 解释器和第三方库,以避免项目之间的依赖冲突。使用虚拟环境,你可以为每个项目创建一个独立的环境,保持项目之间的依赖关系隔离,确保项目的独立性和可维护性。

虚拟环境的主要目的是:

  1. 依赖隔离: 每个虚拟环境都有自己的 Python 解释器和第三方库,与全局 Python 环境和其他虚拟环境相互隔离。这意味着你可以为每个项目选择特定版本的库,而不受其他项目的影响。
  2. 版本管理: 你可以在不同的虚拟环境中使用不同版本的 Python 解释器。这对于确保项目在特定 Python 版本下运行非常有用。
  3. 简化依赖安装: 在虚拟环境中,你可以通过简单的命令安装项目所需的依赖,而不会影响到全局 Python 环境。

Virtualenv、Pipenv、Poetry、Conda 如何选择

选择使用 virtualenvpipenvpoetry 还是 conda 取决于项目需求、工作流程以及个人偏好:

virtualenv****:

  • 适用场景:
    - 轻量级虚拟环境管理,适合小型项目和快速原型。
    - 当你只需要创建和激活虚拟环境,而不涉及依赖管理时。
  • 优点:
    - 简单,是 Python 标准库的一部分。
    - 易于使用,适合初学者
    - 与 pip 配合使用,可以灵活管理依赖。
  • 缺点:
    - 不提供依赖管理的高级功能。
    - 不能锁定依赖版本。

pipenv****:

  • 适用场景:
    - 依赖管理和虚拟环境创建。
    - 适用于中小型项目,支持开发和部署的一体化。
  • 优点:
    - 自动创建和管理虚拟环境。
    - 提供 Pipfile 和 Pipfile.lock 文件,用于确定依赖关系和版本。
    - 支持环境变量自动加载。
  • 缺点:
    - 有时可能较慢,对于大型项目可能不是最佳选择。

poetry****:

  • 适用场景:
    - 管理 Python 项目的全部生命周期,包括依赖管理、构建、发布等。
    - 适用于中大型项目,强调项目整体性。
  • 优点:
    - 提供全方位的项目管理,包括构建、依赖管理、发布等。
    - 简化了 setup.pyrequirements.txt 的使用。
    - 支持 pyproject.toml 文件。
  • 缺点:
    - 在某些情况下可能需要额外配置。
    - 对于简单项目,可能会感觉过于复杂。

conda****:

  • 适用场景:
    - 用于科学计算、数据分析、机器学习等领域。
    - 跨平台支持和包管理。
  • 优点:
    - 能够管理 Python 包和非 Python 包。
    - 跨平台,适用于 Windows、macOS、Linux。
    - 提供一个独立的环境,可以包含不同版本的 Python。
  • 缺点:
    - 包的体积相对较大。
    - 可能与一些纯 Python 包的依赖产生冲突。

如何选择

  • 如果喜欢 Python 标准库的简单性,项目较小,只需虚拟环境管理,那么选择 virtualenv
  • 如果希望更全面地管理项目的依赖关系,包括创建虚拟环境、锁定依赖版本等,那么选择 pipenv
  • 如果需要一个更全面的项目管理工具,涵盖了构建、发布等方面,那么选择 poetry
  • 如果项目涉及到科学计算、数据分析等,并且需要管理非 Python 包的依赖关系,那么选择 conda

你好,世界

我们以Python解释器:新 Virtualenv 环境为例;新建一个StudyPython的项目。创建hello_world.py文件。

请在此添加图片描述

请在此添加图片描述

双击hello_world.py文件,写入如下代码:

print("Hello Python world!")

控制台输出:

请在此添加图片描述

Python都做了些什么呢

运行hello_world.py时, Python都做了些什么呢?下面来深入研究一下。实际上,即便是运行简单的程序, Python所做的工作也相当多:

  1. 指定解释器: 在运行文件时,文件末尾的 .py 扩展名告诉操作系统这是一个 Python 程序。编辑器将使用 Python 解释器来执行这个程序。
  2. 文件读取: Python 解释器读取整个 hello_world.py 文件的内容。
  3. 词法分析(Lexical Analysis): 解释器对文件内容进行词法分析,将代码分解为词汇单元(token),例如关键字、标识符、运算符等。
  4. 语法分析(Syntax Analysis): 解释器根据词法分析的结果,建立语法树,确定代码结构和语法是否合法。
  5. 执行代码: 解释器按照语法树执行代码。对于 hello_world.py,它会执行 print("Hello Python world!") 这行代码。
  6. 执行 print 函数: 解释器知道 print 是一个内置函数,于是执行这个函数。它将括号中的内容,即字符串 “Hello Python world!”,打印到屏幕。

在编写程序时,编辑器通常会提供语法高亮和代码提示等功能。例如,它知道 print 是一个函数,将其显示为蓝色;而字符串 “Hello Python world!” 不是 Python 代码,所以将其显示为橙色。这种功能称为语法突出,有助于程序员更容易地阅读和理解代码。

结语

"Hello, World!" 是一个简单而经典的起点,标志着程序员的编程之旅的开始。它象征着学习和探索编程世界的第一步,是一个传统而重要的示范。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

「OpenCV交叉编译」ubuntu to arm64

Ubuntu x86_64 交叉编译OpenCV 为 arm64OpenCV4.5.5、cmake version 3.16.3交叉编译器 gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu 可在arm或linaro官网下载所需版本,本文的交叉编译器可点击链接跳转下载 Downloads | GNU-A Downloads – Arm Developer L…

PointNet++项目分析

好的,下面是每个文件和目录的详细说明: - **E:\Pointnet_Pointnet2_pytorch\-p**:这看起来像是命令行中的一个参数,而不是实际的文件,可能是误列。 - **E:\Pointnet_Pointnet2_pytorch\.gitattributes**:定…

聚焦 AUTO TECH 2025华南展:探索新能源汽车发展新趋势

随着“新四化”浪潮的推进,汽车行业正经历前所未有的变革。中国新能源汽车正逐渐走向世界。国内汽车制造巨头如比亚迪、吉利、奇瑞、长安等,已经将出口提升至核心战略地位。中国新能源汽车的发展,不仅推动了全球汽车产业的电动化转型&#xf…

JavaEE-网络编程(2)

目录 1. TCP的socket api 1.1 ServerSocket 1.2 Socket 1.3 关于连接 2. 写一个TCP回显服务器 代码的基本结构 2.1.建立连接 2.2 使用 try catch 语法 2.3 对操作流进行封装 2.4 使用 flush() 冲刷缓冲区 2.5 用 close() 关闭对客户端的连接 2.6 println 和 hasnex…

2.5D视觉——Aruco码定位检测

目录 1.什么是Aruco标记2.Aruco码解码说明2.1 Original ArUco2.2 预设的二维码字典2.3 大小Aruco二维码叠加 3.函数说明3.1 cv::aruco::detectMarkers3.2 cv::solvePnP 4.代码注解4.1 Landmark图说明4.2 算法源码注解 1.什么是Aruco标记 ArUco标记最初由S.Garrido-Jurado等人在…

云厂商双十一,无新可拉

失去意义的促销秀。 作者|文昌龙 编辑|杨舟 与电商平台双十一的“低价诱惑”和套路满满不同,云市场的双十一更像是一个买方市场,客户牢牢掌握主导权,厂商不得不低头争抢每一位潜在客户。 电商平台「双11」的本质,初始来看&…

Spring Boot出现java: 错误: 无效的源发行版:16的解决方式

第一步: 修改为SDK的目标字节码版本 第二步:CtrlShiftAltS进入项目结构 第三步:pom.xml文件中 在网上搜索和自己SDK适配的Springboot版本,1.8对应的是2.7.1(可以用) 修改Java版本为1.8 最后的最后&a…

删除k8s 或者docker运行失败的脚本

vi delete_exited_containers.sh#!/bin/bash# 列出所有停止的容器并存储到数组 list_exited_containers() {echo -e "\nStopped containers:"containers()# 获取停止的容器信息并存入数组while IFS read -r line; docontainers("$line")done < <(do…

Java之Spring MVC篇三

​​​​​​​ 目录 响应 返回静态页面 RestController 和 Controller的区别和联系 返回数据ResponseBody 关于ResponseBody 返回HTML代码片段 返回JSON 设置状态码 设置Header 设置Content-Type 没设置Content-Type之前 设置Content-Type之后 响应 返回静态页面…

Revisiting Prompt Engineering via Declarative Crowdsourcing

文章目录 题目摘要简介LLMS 和众包声明式提示工程讨论结论 题目 通过声明式众包重新审视快速工程 论文地址&#xff1a;https://arxiv.org/abs/2308.03854 摘要 大型语言模型 (LLM) 在理解和生成文本形式的数据方面非常强大&#xff0c;但很脆弱且容易出错。出现了以所谓的提…

数据库概述

1.为什么要使用数据库 使用数据库有以下几个重要原因&#xff1a; 数据的集中管理&#xff1a;数据库可以集中管理和存储大量的数据&#xff0c;而不需要将数据分散保存在不同的文件中。这样可以方便地对数据进行访问、修改和更新。 数据的持久化存储&#xff1a;数据库通过将…

嵌入式驱动开发详解1(系统调用)

文章目录 符设备驱动架构read函数详解用户层read函数内核层read函数 具体实现用户层代码 内核层代码细节分析 符设备驱动架构 如上图所示&#xff0c;应用层程序直接用系统提供的API函数即可调用驱动层相应的函数&#xff0c;中间的具体过程都是由linux内核实现的&#xff0c;…

开源 - Ideal库 - 枚举扩展设计思路及实现难点(三)

今天想和大家分享关于枚举扩展设计思路和在实现过程中遇到的难点。 01、设计思路 设计思路说起来其实也很简单&#xff0c;就是通过枚举相关信息&#xff1a;枚举值、枚举名、枚举描述、枚举项、枚举类型&#xff0c;进行各种转换&#xff0c;通过一个信息获取其他信息。比如通…

学习笔记021——Ubuntu 安装 MySQL 5.7版本

本文通过是Ubuntu自带的apt安装的。 目录 1、查看可安装 MySQL 版本 2、安装 3、设置密码、开启远程访问 4、修改 sql_mode 和 设置 不区分大小写。&#xff08;根据自己需求来定&#xff09; 5、改端口等设置&#xff1a; 6、启动命令 7、验证 1、查看可安装 MySQL 版…

IDE配置tomcat

1.导航到 Tomcat 安装目录 E:\apache-tomcat-9.0.95-windows-x64\apache-tomcat-9.0.95 2.启动 Tomcat 服务&#xff1a;bin\startup.bat

STL关联式容器之平衡二叉搜索树

平衡二叉搜索树 在STL关联式容器介绍-CSDN博客中对二叉搜索树做了简要的描述&#xff1b;但是因为没有对二叉搜索树对数的深度及插入后树的结构进行调整&#xff0c;二叉搜索树可能失去平衡&#xff0c;造成搜寻效率低落的情况。如下所示&#xff1a; 所谓树形平衡与否&#xf…

集群聊天服务器(13)redis环境安装和发布订阅命令

目录 环境安装订阅redis发布-订阅的客户端编程环境配置客户端编程 环境安装 sudo apt-get install redis-server 先启动redis服务 /etc/init.d/redis-server start默认在6379端口上 redis是存键值对的&#xff0c;还可以存链表、数组等等复杂数据结构 而且数据是在内存上存…

微信小程序 最新获取用户头像以及用户名

一.在小程序改版为了安全起见 使用用户填写来获取头像以及用户名 二.代码实现 <view class"login_box"><!-- 头像 --><view class"avator_box"><button wx:if"{{ !userInfo.avatarUrl }}" class"avatorbtn" op…

视频智能分析软件LiteAIServer视频智能分析平台玩手机打电话检测算法

在当今这个数字化时代&#xff0c;智能手机已成为我们日常生活中不可或缺的一部分&#xff0c;它极大地便利了我们的沟通与学习。然而&#xff0c;当这份便利被不恰当地带入到如工厂生产线、仓库以及学校课堂等特定的工作和学习环境中时&#xff0c;其潜在的危害便逐渐显露出来…

【pytest】pytest注解使用指南

前言&#xff1a;在 pytest 测试框架中&#xff0c;注解&#xff08;通常称为装饰器&#xff09;用于为测试函数、类或方法提供额外的信息或元数据。这些装饰器可以影响测试的执行方式、报告方式以及测试的组织结构。pytest 提供了多种内置的装饰器&#xff0c;以及通过插件扩展…