《Python基础教程》笔记(ch0-1)

在这里插入图片描述

前言

在Python生态系统中,各种包轮番登场,各种编码实践大行其道后又日渐式微。

引言

Python是什么?为何要使用它?官方宣传说:Python是一种面向对象的解释性高级编程语言,具有动态语义

这句话的要点在于,Python是一种知道如何不妨碍你编写程序的编程语言。它让你能够毫无困难地实现所需的功能,还让你能够编写出清晰易懂的程序。

Python广泛用于完成系统管理任务(例如,它是多个Linux发行版的重要组成部分),也被用来向新手介绍编程。

本书是为有志于学习Python编程的人写的,适合从编程门外汉到计算机高手的各种读者阅读。如果你没有任何编程经验,应从第1章开始阅读,阅读到看不懂的内容后,开始动手编写一些程序。等到条件成熟后,再回过头来继续阅读更复杂的内容。

参考实验环境

硬件环境:阿里云主机
操作系统:Ubuntu 22.04(一种Linux稳定发行版)
代码仓库:待开源

第1章 快速上手:基础知识

1.1 交互式解释器

如果你使用的是macOS或Linux,请打开终端,输入python并按回车键。你将看到一条欢迎消息,如下图所示。
在这里插入图片描述
具体的安装步骤视使用的操作系统和安装方式而异,但最简单的方法是访问www.python.org,其中有下载页面的链接。

这是一个交互式Python解释器。请尝试像下面这样做,以核实它是否管用:
在这里插入图片描述
如果你熟悉其他计算机语言,可能习惯了在每行末尾都加上分号。在Python中无需这样做,因为在Python中,一行就是一行

你可能不知道>>>是什么。在Python解释器中,>>>提示符,可在它后面输入一些内容。解释器对其进行处理后,会输出一些反馈信息,然后你可以继续输入。因此,Python解释器就是初学者学习Python最好的老师,因为编程的实践性很强,交互对话式学习是最好的学习方式。

如果随便输入一些东西呢?请看下图。
在这里插入图片描述
显然,解释器没有看懂。解释器还指出了问题出在什么地方,下面逐行解释。

>>> The Spanish Inquisition  ----- 你的输入File "<stdin>", line 1  ----- 问题出在输入的第一行The Spanish Inquisition ----- 用^标出出错的具体位置^^^^^^^
SyntaxError: invalid syntax ----- 语法错误:无效语法

显然,问题在于语法错误。正如人讲话需要遵循一定的逻辑,与计算机交流也需要遵循一定的语法。

程序运行出错是很正常的事情,对此需要一分为二地看待:计算机的优点在于能提供即时反馈,程序出错会带来挫败感,修复错误的过程具有挑战性,使用计算机成功解决问题很有成就感

1.2 算法是什么

简而言之,计算机编程就是告诉计算机如何做。计算机多才多艺,但不太善于独立思考,我们必须提供详尽的细节,使用它们能够明白的语言将算法提供给它们。算法只不过是流程或菜谱的时髦说法,详尽地描述了如何完成某项任务。正如烹饪需要各种原料和步骤,算法也需要用各种原料和步骤来描述。

下面首先介绍一些非常简单的Python原料,看看可以对它们做些什么。以下表格中的“输入”和“输出”都是相对于Python解释器而言的。

1.3 数和表达式

运算符输入输出
/1/20.5
/1/11.0
//1//20
//1//11
//5.0//2.42.0
%1%21
%10%31
%9%30
%2.75%0.50.25
**2 ** 38
**-3 ** 2-9
**(-3) ** 29

在以上的表格中,斜杠/为实数除,双斜杠//为整除(相当于实数除再去尾),百分号%为取余,**为幂运算。注意,以上运算存在优先级:括号内>幂>乘除>加减。在运算符前后加上空格是很好的编程习惯,有时候适当添加括号可以使语义更加清晰。

有时候我们需要用到十六进制数、八进制数和二进制数,如以下表格所示。

进制前缀输入输出
十六0x0xAF175
0o0x108
0b0b1011010010722

在这里插入图片描述

1.4 变量

变量是表示(或指向)特定值的名称。下面举例说明。

上图中,x=3为赋值语句,x*2为运算表达式。

在这里插入图片描述

不同于其他一些语言,使用Python变量前必须给它赋值,因为Python变量没有默认值。这里体现的原则是:先赋值,后使用

【注意】在Python中,**名称(标识符)**只能由字母、数字和下划线(_)构成,且不能以数字打头。因此Plan9
是合法的变量名,而9Plan不是。

1.5 语句

表达式是一些东西,而语句做一些事情。例如,2*2的结果是4,而print(2 * 2)打印4。表达式和语句的行为很像,因此它们之间的界线可能并非那么明确。
在这里插入图片描述
在交互式解释器中执行时,这两段代码的结果没有任何差别,但这是因为解释器总是将表达式的值打印出来。然而,在Python中,情况并非都是这样的。本章后面将介绍如何创建无需交互式解释器就能运行的程序。仅将诸如2 * 2
等表达式放在程序中不会有任何作用,但在程序中包含print(2 * 2)将打印结果4。

涉及赋值时,语句和表达式的差别更明显:鉴于赋值语句不是表达式,它们没有可供交互式解释器打印的值。
在这里插入图片描述
执行赋值语句后,交互式解释器只是再次显示提示符,但发生了一些变化:有一个名为x的新变量,与值3相关联。可以说,这是所有语句的一个根本特征:执行修改操作。例如,赋值语句改变变量,而print语句改变屏幕的外观。变量就像是临时“存储区”(类似于菜谱中的锅碗瓢盆),其真正威力在于无需知道它们存储的值就能操作它们

例如,即便根本不知道x和y是什么,你也知道x * y的结果为x和y的乘积。因此,编写程序时,你能以各种方式使用变量,而无需知道程序运行时它们将存储(指向)的值。

1.6 获取用户输入

你编写的程序可能供他人使用,无法预测用户会向程序提供什么样的值。

下面看看很有用的函数input。
在这里插入图片描述
下面是一个更有趣的示例。
在这里插入图片描述
对于上述在Python提示符(>>>)下输入的语句,可将其放在完整的程序中,并让用户提供所需的值(34和42)。这样,这个程序将打印结果1428,即前述两个数的乘积。

【注意】将程序存储在独立的文件中,让其他用户能够执行时,这种获取输入的方式将有用得多。1.8节将介绍如何这样做。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

监控易DEMO功能深度解析:运维行业的智能化转型新助力

在数字化转型的浪潮中&#xff0c;运维行业正面临着前所未有的变革与挑战。为了应对日益复杂的IT架构和不断提升的运维需求&#xff0c;监控易的集中式跨平台一体化监控软件不断升级优化&#xff0c;以适应新的运维环境。本文将对监控易DEMO的功能进行深度解析&#xff0c;探讨…

简单介绍冯诺依曼体系

现代的计算机, 大多遵守冯诺依曼体系结构 CPU中央处理器&#xff1a;进行算术运算和逻辑判断。存储器&#xff1a;分为外存和内存&#xff0c;用于存储数据&#xff08;使用二进制方式存储&#xff09;。输入设备&#xff1a;用户给计算机发号施令。输出设备&#xff1a;计算机…

Hadoop生态圈三大组件:HDFS的读写流程、MapReduce计算流程、Yarn资源调度

文章目录 1. HDFS的读写流程1.1 HDFS读流程1.2 HDFS写流程 2. MapReduce计算流程3. Yarn资源调度一、客户端请求资源二、Resource Manager处理请求三、任务资源计算与申请四、Resource Manager分配资源五、Node Manager执行任务六、任务执行与监控 1. HDFS的读写流程 1.1 HDFS…

沃德商协会管理系统小程序源码

商协会管理系统小程序&#xff0c;作为新一代数字化商协会运营管理的先锋工具&#xff0c;其核心围绕“智慧化会员体系、智敏化内容运营、智能化活动构建”三大核心板块精心构建。这一系统通过智慧化会员体系&#xff0c;实现了会员信息的精准管理与高效互动&#xff0c;不仅简…

2024_E_100_连续字母长度

连续字母长度 题目描述 给定一个字符串&#xff0c;只包含大写字母&#xff0c;求在包含同一字母的子串中&#xff0c;长度第 k 长的子串的长度&#xff0c;相同字母只取最长的那个子串。 输入描述 第一行有一个子串(1<长度<100)&#xff0c;只包含大写字母。 第二行为…

Rancher2.6管理k8s1.23

Rancher2.6管理k8s1.23 简介Rancher和k8s的区别 安装rancher初始化实验环境新增hosts文件条目安装docker 安装Rancher登录Rancher平台 通过Rancher仪表盘管理k8s集群&#xff1a;部署tomcat服务创建Ingress资源创建ingress规则 简介 Rancher是一个开源的企业级多集群Kubernete…

HarmonyOS 开发知识总结

1. HarmonyOS 开发知识总结 1.1. resources->base->media中不可以新建文件夹&#xff1f; 项目图片路径resources->base->media中不可以新建文件夹&#xff0c;图片全平级放里面&#xff0c;查找图片不方便&#xff0c;有没有什么其他的办法解决这个难点&#xff…

Scala入门基础(12)抽象类

抽象类&#xff0c;制定标准&#xff0c;不要求去具体实现 包含了抽象方法的类就是抽象类。抽象方法只是有方法名&#xff0c;没有具体方法体的方法 定义抽象类要用abstract&#xff08;抽象&#xff09;关键字 用智能驾驶技术举例&#xff1a;演示&#xff09…

干货|基于Taro框架开发微信小程序如何配置实现自动格式化和代码规范

下面实例是基于 Taro框架使用React开发微信小程序的实现自动格式化和代码规范的配置教程 安装 ESLint 和 Prettier 插件&#xff1a; 在微信开发者工具的插件市场中搜索并安装 ESLint 和 Prettier 插件。 配置 .eslintrc.js 文件&#xff1a; 确保项目根目录下有一个 .eslint…

简单介绍$listeners

$listeners 它可以获取父组件传递过来的所有自定义函数&#xff0c;如下&#xff1a; // 父组件 <template><div class"a"><Child abab"handleAbab" acac"handleAcac"/></div> </template><script> impor…

on hold 的SSCI期刊,一般多久会解除?

SSCI期刊“On Hold”状态解析及其解除时间概览 在学术研究的广阔领域中&#xff0c;发表论文不仅是知识分享的重要途径&#xff0c;也是衡量研究成果影响力的关键指标之一。对于社会科学领域的学者而言&#xff0c;SSCI&#xff08;Social Sciences Citation Index&#xff09…

分布式机器学习模式 精彩试读

近年来&#xff0c;机器学习取得了巨大进步&#xff0c;但大规模机器学习仍然面临挑战。 以 模型训练为例&#xff0c;由于 TensorFlow、PyTorch 和 XGBoost 等机器学习框架具有多 样性&#xff0c;从而使得在分布式 Kubernetes 集群上自动化训练机器学习模型的过程并 不简单。…

力扣动态规划基础版(斐波那契类型)

70. 爬楼梯https://leetcode.cn/problems/climbing-stairs/ 70.爬楼梯 方法一 动态规划 考虑转移方程和边界条件&#xff1a; f&#xff08;x&#xff09; f&#xff08;x -1&#xff09; f&#xff08;x - 2&#xff09;;f&#xff08;1&#xff09; 1&#xff1b;f&…

NeRF三维重建—神经辐射场Neural Radiance Field(二)体渲染相关

NeRF三维重建—神经辐射场Neural Radiance Field&#xff08;二&#xff09;体渲染相关 粒子采集部分 粒子采集的部分我们可以理解为&#xff0c;在已知粒子的情况下&#xff0c;对图片进行渲染的一个正向的过程。 空间坐标(x,y,z&#xff09;发射的光线通过相机模型成为图片上…

Jmeter性能测试之阶梯式场景、波浪式场景

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1 阶梯式场景&#xff08;负载测试&#xff09;  该场景主要应用在负载测试里面&#xff0c;通过设定一定的并发线程数&#xff0c;给定加压规则&#xff0c;…

windows 上面交叉编译 适合arm架构上的linux内核系统的qt 版本,源码编译

1. 在机器上确认系统信息 cat /proc/cpuinfomodel name : ARMv7 Processor rev 5 (v7l) arm 32位 BogoMIPS : 57.14 Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 CPU implementer : 0x41 CPU architecture: 7 …

实战华为AC6508无线控制器+华为无线AP上线配置(AirEngine5762S-12+AirEngine5760-10)+无线WIFI配置

一、适用场景 1、适用于企业环境、校园环境、大户型家庭多层楼环境。 2、对于无线网络需要集中管理和监测的环境&#xff0c;无线wifi覆盖范围面积大&#xff0c;适用本实例。 3、当无线WIFI需要从一个区域到另一个区域无缝漫游时&#xff0c;确保应用不掉线&#xff0c;可使用…

MS41929双通道超低噪声 256 细分微步进低压电机驱动

MS41929 是一款双通道 5V 低压步进电机驱动芯片&#xff0c;通过 具有电流细分的电压驱动方式以及扭矩纹波修正技术&#xff0c;实现了 超低噪声微步进驱动。 芯片另外内置一个直流电机驱动器&#xff0c;上下开关的电阻之和 低至 1.1Ω 。 MS41929 内置了晶振放大模…

WPF实现类似网易云音乐的菜单切换

这里是借助三方UI框架实现了&#xff0c;感兴趣的小伙伴可以看一下。 深色模式&#xff1a;​ 浅色模式&#xff1a; ​这里主要使用了以下三个包&#xff1a; MahApps.Metro&#xff1a;UI库&#xff0c;提供菜单导航和其它控件​​​​​​​ 实现步骤&#xff1a;1、使用B…

【KEIL那些事 4】CMSIS缺失!!!!导致不能编译!!!!软件自带芯片下载缓慢!!!!!!快速下载芯片包!!!!!

安装了keli发现emmm&#xff0c;CMSIS缺失&#xff01;&#xff01;&#xff01;&#xff01;不能编译&#xff0c;&#xff0c;&#xff0c;自带下载芯片缓慢&#xff0c;&#xff0c;&#xff0c;官网下载emmm&#xff0c;竟然不带动的&#xff01;&#xff01;&#xff01;&…