【从0到1学Python】第二讲:Python中的各种“量”(一)

news2024/11/15 3:40:09

        也许你知道学习一门语言的第一件事就是在屏幕上输出"Hello world!"。

        但是请别着急!在本系列文章中,我希望在讲如何输出之前,先谈谈Python中的各种量。因为,输出、输入语句也是基于各种“量”来完成的。我想,如果连“变量名”“字符串”都没有搞清楚,那么print()啊input()啊之类的语句里面的参数、赋值就无从谈起了。

        不过也不用担心!本系列文章中的第一个程序仍然会是Hello world。这也就意味着在这几讲中,我们不会接触到上手搓代码的实操。我想要先讲讲一些“理论”。

Python中的量

        编程是基于对各种“量”的调用、运算等操作完成的。我相信,每一种编程语言都和“量”脱离不开关系——这些不同语言中的“量”既有个性,也有通性。在这里,我们只谈Python中的、初学者用得到的、常见的各种“量”。

        在Python下,有各种类型的量。不同类型的量都有各自的特点。比如说整数型(int),用于表示整数;浮点型(float),用于表示实数;字符型(str),用于表示单个或一串字符,等等。在接下来的几讲中,我们接下来将会了解到以下几种常见的量:

Python中常见的量的类型
类型名称类型对应的量
整数型(int)正负整数、零
浮点型(float)实数
字符型(str)单个字符以及字符串
布尔型(bool)真、假
列表(list)有序存储各类型的变量
字典(dict)无序(根据键值对)存储各类型的变量

        每一种类型的量都有常量、变量之分。常量在我们写代码的时候是看得见、摸得着的。例如,15是整数型常量,1.75是浮点型常量,"Hello world!"是字符型常量。而变量在我们写代码的时候是看不见、摸不着的,我们用一个变量名来表示这个量,就像我们用不同的名字称呼不同的人一样。

        在开始分类讲不同的类型之前,我们不妨先了解一下我们可以用什么样的名字称呼不同的变量。

给Python中的变量命名

基本规则

        给一个变量起名字有点像注册账号的时候给自己起一个昵称或者角色名。在Python中,命名并不是随心所欲的;命名变量,需要遵守以下几个基本规则:

  1. 变量名只能由英文字母(区分大小写)、数字以及下划线组成。
  2. 变量名不能以数字开头。
  3. 变量名不能与Python中的关键字重复。

        根据以上几点规则,我们就能够知道哪些变量名是合法的,哪些变量名是非法的【注:这里指的“合法”“非法”是相对于编程而言的;如果你在写代码时“非法”命名了一个变量,并不会招致被起诉之类的事情发生。】如果你看不明白,没关系,我们来看几个命名的例子:

        张三;a;is_legal;cnt;Cnt;__name__;1student;student1;class;very good。

  1. 根据第一条命名规则,我们可以确认“张三”不是一个合法的变量名,因为张三不属于英文字母,也不属于数字或者下划线。同样,包含了一个空格的“very good”也不是一个合法的变量名。
  2. 根据第二条命名规则,我们可以确认“1student”不是一个合法的变量名,因为它以数字“1”开头。
  3. 根据第三条命名规则,我们可以确定“class”不是一个合法的变量名,因为它与Python中的关键字冲突。
  4. 另外,根据第一条命名规则中的“区分大小写”,我们可以知道cnt和Cnt表示的是两个不同的变量。

        可能你不知道Python中的关键字是什么意思,现在给你一个比较简单粗暴但初级的判断方式:在IDLE中打代码的时候,如果你的变量名变色了,那么这个变量名八成是和关键字冲突了。就像这样:

只有两个合法变量名

非法变量名的修改

        如果我的变量名是非法的,或者和其他变量名产生了重复,那么该如何做修改?接下来介绍几个比较常用的方法。

  1. 大小写更换。例如变量名class修改为Class。
  2. 添加下划线。例如变量名very good修改为very_good。
  3. 数字移至末尾。例如变量名1student修改为student1。
  4. 添加修饰词。例如变量名sum修改为my_sum。

更好的变量名

        在实际编程中,对于机器而言,变量名的选取是无所谓的;但是对于编写程序和阅读代码的人而言,变量名的选取对于一段代码的可读性有着相当重要的影响。如果通篇代码只有a,b,c之类的不明所以的变量名,那么这段代码的可读性大概率是不高的。因此,我们追求更加标准、美观的变量命名。

        我当然不会告诉你,在实际考试中,如果看不懂一个程序在干什么,通过看变量名也可以猜出个七七八八。

        先来了解一下几种常用的命名方式:下划线命名法、小驼峰命名法、大驼峰命名法。

        下划线命名法:顾名思义,就是通过下划线代替空格,将几个词语连接在一起组成一个合法的变量名。例如is_legal,my_class,day_of_week。

        小驼峰命名法:对于一组单词,去掉空格,将除了第一个单词的其余单词的首字母大写处理,其余字母均小写。例如getElementById,myClass,isLegal。

        大驼峰命名法:和小驼峰命名法类似,唯一的区别就是第一个单词也要首字母大写。例如MyClass,DayOfMonth,StudentName。

        除了以上命名方式以外,还有一些常用的(或曾在考卷中出现过的)变量命名方式。虽然不一定要像下面这样命名,但是如此命名已是约定俗成。使用这类名称的变量基本上都有特定的用途。请看:

        i、j、k:计数变量。多用于循环结构中用于计数,判断什么时候跳出循环。

        cnt:计数变量。单词count的缩写。与i、j、k一类不同,名为cnt的变量计得的数通常会用于进一步处理。例如计算1至100中有几个质数,就可以用cnt来存储计数结果。

        sumn、total:总和。例如计算1至1000的和,就可以利用sumn、total名称的变量来存储加和结果。

        maxn、minn:最大值、最小值。

        res:用于存储结果。单词result的缩写。名为res的变量用途广泛,可能会出现在代码的任何角落。

        ind:索引(下标)。单词index的缩写。名为ind的变量常用于记录目标位置对应的索引(关于什么是“索引”,这点在后续会讲到)。

        tmp、temp:临时用的变量。单词temporary的缩写。名为tmp、temp的变量通常在一个特定的范围内起量的中转作用(例如交换两个变量的值的场合),然而在该范围之外就没有什么作用了。

        st、ed:开始、结束。单词start、end的缩写。

        l、r:左(端点)、右(端点)。单词left、right的首字母。

        mid:中值。单词middle的缩写。

        除此之外,如果你在考试当中也可以采用拼音首字母的方法来猜测一个变量的功能或者含义(例如xs表示“学生”,ls表示“老师”,bh表示“编号”等等)。

        至此,你已经基本掌握了:

  1. 如何判断一个变量名是否合法;
  2. 如何合法地命名一个变量;
  3. 如何将变量名变得更加易懂、直观;
  4. 一些常见用途变量的命名方式。

        讲这些规则是为了后续演示时的方便,以及实操时代码的规范。在下一篇文章:《第二讲:Python中的各种“量”(二)》中,我们将对于文章开头表格中列出的不同类型的变量进行简要讲解。

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

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

相关文章

基于springboot+vue的宠物领养系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 背景及意…

Three.JS教程1 环境搭建、场景与相机

Three.JS教程1 环境搭建、场景与相机 一、Three.JS简介二、环境搭建1. 开发准备2. 安装 three.js3. 新建文件index.htmlmain.js 4. 关于附加组件5. 启动 三、创建场景1. 场景的概念2. 相机的概念3. 相机的几个相关概念(1)视点(Position&#…

【机器学习】四大类监督学习_模型选择与模型原理和场景应用_第03课

监督学习中模型选择原理及场景应用 监督学习应用场景 文本分类场景: o 邮件过滤:训练模型识别垃圾邮件和非垃圾邮件。 o 情感分析:根据评论或社交媒体内容的情感倾向将其分类为正面、负面或中性评价。 o 新闻分类:将新闻文章自动…

第一篇【传奇开心果】Vant 开发移动应用:从helloworld开始

传奇开心果系列博文 博文系列目录Vant of Vue 开发移动应用示例博文目录一、从helloworld开始二、添加几个常用组件三、添加组件事件处理四、添加页面和跳转切换路由五、归纳总结知识点六、知识点示例代码 博文系列目录 Vant of Vue 开发移动应用示例 博文目录 一、从hellow…

二、简单控件

二、简单控件 #mermaid-svg-TR8KwIeb54zOjfmt {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-TR8KwIeb54zOjfmt .error-icon{fill:#552222;}#mermaid-svg-TR8KwIeb54zOjfmt .error-text{fill:#552222;stroke:#55222…

45 mount 文件系统

前言 在 linux 中常见的文件系统 有很多, 如下 基于磁盘的文件系统, ext2, ext3, ext4, xfs, btrfs, jfs, ntfs 内存文件系统, procfs, sysfs, tmpfs, squashfs, debugfs 闪存文件系统, ubifs, jffs2, yaffs 文件系统这一套体系在 linux 有一层 vfs 抽象, 用户程序不用…

1.php开发-个人博客项目文章功能显示数据库操作数据接收

(2022-day12) #知识点 1-php入门,语法,提交 2-mysql 3-HTMLcss ​ 演示案例 博客-文章阅读功能初步实现 实现功能: 前端文章导航,点入内容显示,更改ID显示不同内容 实现步骤&#xff1…

04 MyBatisPlus之逻辑删除+锁+防全表更新/删除+代码生成插件

1 逻辑删除 1. 1 什么是逻辑删除 , 以及逻辑删除和物理删除的区别? 逻辑删除,可以方便地实现对数据库记录的逻辑删除而不是物理删除。逻辑删除是指通过更改记录的状态或添加标记字段来模拟删除操作,从而保留了删除前的数据,便于后续的数据…

P1059 [NOIP2006 普及组] 明明的随机数————C++、Python

目录 [NOIP2006 普及组] 明明的随机数题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示 解题思路Code——CCode——Python运行结果 [NOIP2006 普及组] 明明的随机数 题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性&#xff0…

uniapp的IOS证书(.p12)和描述文件(.mobileprovision)申请 2024年最新教程

文章目录 准备环境登录 iOS Dev Center 下面我们从头开始学习一下如何申请开发证书、发布证书及相对应的描述文件。首先需要申请苹果 App ID (App的唯一标识)生成证书请求文件申请开发(Development)证书和描述文件申请开发(Development)证书添加调试设备…

免费200万Tokens 用科大讯飞API调用星火大模型服务

简介 自ChatGPT火了之后,国内的大模型发展如雨后春笋。其中的佼佼者之一就是科大讯飞研发的星火大模型,现在大模型已经更新到V3 版本,而且对开发者也是相当友好,注册就送200万tokens,讯飞1tokens 约等于 1.5 个中文汉字 或者 0.8 个英文单词…

spring data mongo 在事务中,无法自动创建collection

spring data mongo 在事务中,无法自动创建collection org.springframework.dao.DataIntegrityViolationException: Write operation error on server xxx:30001. Write error: WriteError{code=263, message=Cannot create namespace xxx.xxxin multi-document transaction.…

Visual Studio 设置编辑框(即代码编辑器)的背景颜色

在Visual Studio 中设置编辑框(即代码编辑器)的背景颜色,可以按照以下步骤进行: 打开Visual Studio。在菜单栏上找到并点击“工具”(Tools)选项。在下拉菜单中选择“选项”(Options)。在“选项”对话框中,导航至“环境…

【鸿蒙4.0】详解harmonyos开发语言ArkTS

文章目录 一.什么是ArkTS?1.ArkTS的背景2.了解js,ts,ArkTS的演变js(Javascript)Javascript的简介Javascript的特点 ts(Typescript)ArkTS 二. ArkTS的特点 一.什么是ArkTS? 1.ArkTS的背景 如官方文档所描述,ArkTS是基…

Android Matrix绘制PaintDrawable设置BitmapShader,手指触点为圆心scale放大原图,Kotlin(二)

Android Matrix绘制PaintDrawable设置BitmapShader,手指触点为圆心scale放大原图,Kotlin(二) 在 Android Matrix绘制PaintDrawable设置BitmapShader,手指触点为圆心scale放大原图,Kotlin-CSDN博客 基础上&…

esp32-cam 视频查看教程

一、环境配置 查看以前教程 环境配置 建议使用1.0.6 二、安装基于esp32 cam的代码 资料地址: https://pan.baidu.com/s/1Y9-rLLmAKPYzBDcrEyuGMw 提取码:2022 下载后打开文件下的程序 下载程序 三、获取视频url 在arduino 看不到串口打印的信息&a…

Android studio 简单登录APP设计

一、登录界面: 二、xml布局设计: <LinearLayoutandroid:id="@+id/linearLayout"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:layout_editor_absoluteX="…

assignment1——KNN

KNN 整体思路 加载数据集CIFAR10并随机展示部分数据构建KNearestNeighbor分类器&#xff0c;计算测试集每张图片的每个像素点与训练集每张图片的每个像素点的距离。将图片转化为数组。在测试集使用compute_distances_one_loop&#xff0c;compute_distances_no_loops&#xf…

挑战杯参赛总结-时间序列预测

参赛任务&#xff1a; 目标&#xff1a;针对中国各个市区的不同年份二氧化碳排放量&#xff0c;预测未来年份的二氧化碳排放量。 不同与之前我学习过的波士顿房价预测机器学习-波士顿房价预测-CSDN博客 房价预测是通过学习与房价有关的很多特征&#xff0c;训练出一个模型来预…

UV胶水粘接尼龙聚酰胺类聚合物PA有哪些优势呢?

使用UV胶水&#xff08;紫外线固化胶水&#xff09;粘接尼龙聚酰胺类聚合物&#xff08;PA&#xff09;具有一些优势&#xff0c;这些优势包括&#xff1a; 1.快速固化&#xff1a; UV胶水是一种紫外线固化的胶水&#xff0c;它可以在短时间内迅速固化。这使得粘接过程非常快速…