简单数据类型

news2024/11/16 17:36:00

目录

前言

一.变量

       1.1 变量命名

        2.1 变量定义

二.类型

        2.1 字符串

        2.1.1 定义

        2.1.2 操作

        2.1.3 python2中的print语句

         2.2 整数

        2.2.1 运算

         2.2.2 浮点数

        2.2.3 str()函数

         2.3 列表

         2.3.1 访问和使用列表元素

         2.3.2 在列表中添加元素

         2.3.3 从列表中删除元素

        2.3.4 组织列表

         2.3.5 创建数值列表

         2.3.6 列表解析

        2.3.7 复制列表

         2.4 元组


前言

        python中的变量相当于是C++中的对象,里面有各种方法,可供程序员使用。

        python中还有各种内置函数比如str(),sort()等函数,可供程序员来操作不同对象。

        python的注释是使用"#"

        window中如果没有安装python可以到python官网下载安装。

        一般在linux中会自动安装python解释器。

         可以编写python文件,注意需要以.py结尾(实际linux文件属性不以文件后缀时决定,而是创建时决定,如何创建的)。使用python解释器来执行。

         也可以使用python终端来编写python代码,执行。python终端使用exit()或者Ctrl+d退出。

        Python之禅:

一.变量

       1.1 变量命名

        python变量命名和C语言的变量命名类似。

  • 只能包含字母,数字,下划线。变量名可以字母或下划线大头,不能以数字大头。
  • 变量名不能包含空格,可以使用下划线分隔其中单词。
  • 不要将python关键字和函数名用作变量名。即不要使用python保留用于特殊用途的单词。

        2.1 变量定义

        python变量定义不需要指定类型,直接定义即可。

二.类型

        2.1 字符串

        2.1.1 定义

        在python中用引号括起来的都是字符串,其中引号可以是单引号,也可以是双引号。并且支持转义符号。

        这种灵活性可以让你能够在字符串中包含双引号和单引号。

    python中的字符串是不可变的,这意味着一旦创建一个字符串无法直接修改其中的字符。只能通过新建字符串来修改来间接修改其中的内容。

        2.1.2 操作

  • 以首字母大写的方式显示每一个单词。 title()方法。

  •  全部转为大写upper(),全部转为小写lower()

  •  拼接字符串,'+'或'+='

  •  删除空格。strip()删除两端空格,rstrip()删除右边空格,lstrip()删除左边空格。

  • 拆分字符串。利用字符串split()方法实现将字符串按照指定字符拆分成字符串列表。

  • 拼接字符串。使用join()函数,将字符串列表,按照指定字符连接起来。 

        2.1.3 字符串比较

  • ==和!=:

        ==比较的时两个字符串值是否相同,!=和==相反。两比较方式区分大小写。

  •  >, <, >=和<=:

        字符串比较大小是按照字符的字典顺序进行比较的,区分大小写。

  • is:

        用来比较两字符串是否完全相同。不仅仅是值,还有地址。

  • 区分大小写比较字符串 

       将需要比较的字符串全部转化为大写或者小写再进行比较。

        或者使用str.casefold()方法,也是将字符大写转化为小写,但是lower只局限于存在ascll中的字符,casefold不局限于存在ascll中的。

        2.1.4 python2中的print语句

        在python2中无需将要打印的内容加在括号内。从技术上来说,python3的print是一个噶不是故意没所以括号必不可少。但是有些python2的print语句有的也包含括号,而行为与python3稍有不同。 

         2.2 整数

        2.2.1 运算

        在python中,可对整数进行加(+)减(-)乘(*)除(/),乘方(**),取余(%)运算。

         使用括号修改运算次序。

         2.2.2 浮点数

        python将大小数点的称为的浮点数。也支持运算。但是运算结果的小数位数是不确定的,所有的语言在表示浮点数时都存在这个问题,原因是鉴于计算机内部表示数字的方式。

        2.2.3 str()函数

        str()函数可以将非字符串值表示为字符串。

         2.3 列表

        列表由一系列按照特定顺序排列的元素组成。里面可以包含字符串,数字,列表等,列表中可以包含任何没有关系的元素。

        在python中使用方括号([])来表示列表。并用逗号来分隔元素:

        使用print打印列表,会将列表中所有的元素打印,包括方括号。

         2.3.1 访问和使用列表元素

        可以使用索引来访问元素。和C语言一样,列表的索引也是从0开始的。这与列表操作的底层实现相关。

C语言数组索引为什么从0开始?

        C语言的数组以内存地址的偏移量来表示。比如arr[0] <=> arr + 0,arr为数组的起始地址,加0为第一个元素。arr[1] <=> arr+1,起始地址加1,实际为arr起始地址加元素类型的大小,访问到第二个元素。

         在python中还提供了一种特殊语法。通过将索引指定为-1,可以返回列表的最后一个元素,这种约定也适用于其他负数索引,比如:索引-2返回倒数第二个列表元素,以此类推。

         使用列表元素,也可以通过索引来访问,并赋值修改。

         2.3.2 在列表中添加元素

  • 在列表末尾添加一个元素,使用列表的append方法。

  • 在列表末尾添加多个元素,使用extend()方法或者使用'+='或'+'。

  •  在列表中插入元素,使用insert(),可以在列表中任何位置添加新元素。你需要为此指定新元素索引和元素。

         2.3.3 从列表中删除元素

        元素被删除了,就不能使用了。

  • 使用del删除元素,需要知道元素在列表中的位置(索引)。

比如要删除"redline"元素,它的索引为2。

  •  使用列表方法pop(),来删除元素,并且可以使用变量来获取该元素。

        pop()不传参时,表示最后一个元素,传参表示对应删除元素的索引。

  •  根据值来删除元素。使用remove()方法。

 注意:方法remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要

使用循环来判断是否删除了所有这样的值。

        2.3.4 组织列表

  • 使用列表的sort()方法对列表进行永久性排序

         向sort()方法传递参数reverse=True可以实现按照首字母字典序相反的顺序永久性排序。

         由于排序需要进行比较,所以列表的sort()方法需要列表元素相同。

        当列表一个元素也包含多个元素时,可以自定义函数来获取比较的元素。

  •  使用sorted()函数对列表进行临时排序,不会修改原来的列表

  •  反转列表,使用列表的reverse()方法。

  •  获取列表长度。使用len()函数

  • 使用for循环,遍历整个列表

         2.3.5 创建数值列表

  • 使用range()函数可以生成一系列数字。

        range()第一个参数是一些列数字的最小值,第二个参数是最大值(不包含),第三个参数是步长。

        range()函数还可以设置第三个参数来指定步长。默认步长是1。

 

  •  使用range()函数创建数字列表。

        使用list()函数,或者使用列表append()方法。

  •  对数字列表进行简单的统计计算。求最大值,最小值和总和。

         2.3.6 列表解析

        列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。

        要使用这种语法,首先需要指定一个描述性的列表名,然后在方括号中定义表达式,用于生成你要存储到列表的值。

        表达式可以这样理解,元素值 + 元素集合 + 条件

         python中还有其他类型的解析:

  • 如果使用的是中括号,表示列表解析
  • 如果使用的是大括号,表示集合解析
  • 如果使用的是大括号,且里面的元素是key:value模式,表示字典解析

        2.3.7 复制列表

        我们可以使用切片来进行列表的复制,对于列表中不带有可变长的类型元素时,我们可以得到一个新的列表。如果带有可变长的类型元素,由于切片复制时浅拷贝,新得到的列表该元素拷贝的时原来列表该元素的引用,两元素执行同一个列表。

         不使用切片来复制列表,使用直接赋值的方式,并不能得到一个新的列表,而是获取到列表的引用,两个列表实际共用一个空间。

         2.4 元组

        使用圆括号括起来的元素定义的对象被称为元组。你可以使用索引来访问元素,但是元组中的元素是不可以修改的。

         虽然说元组中的元素不能修改的,但是元组变量是可以修改的。

        当元组中包含可变长类型元素时,可以对可变长元素进行修改:

  • 遍历元组

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

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

相关文章

LangChain源码逐行解密之LLMs(二)

LangChain源码逐行解密之LLMs(二) 18.3 base.py源码逐行剖析 现在我们要聚焦于源代码中的大语言模型部分。如图18-3所示,LangChain提供了许多语言模型的选择。 Gavin大咖微信:NLP_Matrix_Space 图18- 3 LangChain的llms目录 如图18-4所示,整个LangChain的模块化设计非常出…

最小花费 c++详解

最小花费 c详解 最小花费题目描述输入格式输出格式样例样例输入样例输出 提示 解法代码 最小花费 题目描述 在 n n n 个人中&#xff0c;某些人的银行账号之间可以互相转账。这些人之间转账的手续费各不相同。给定这些人之间转账时需要从转账金额里扣除百分之几的手续费&…

如何实现电子合同管理系统与其他企业应用的无缝对接?

电子合同管理系统是一种利用信息技术来管理和执行合同的系统。随着企业数字化转型的推进&#xff0c;电子合同管理系统已经成为许多企业必备的工具之一。然而&#xff0c;要实现电子合同管理系统与其他企业应用的无缝对接&#xff0c;并不是一件容易的事情。 实现电子合同管理…

深度解读|一站式ABI平台 Smartbi Insight V11 能力再升级

纵观过去&#xff0c;我们发现汽车和BI的发展有异曲同工之妙。 100来年&#xff0c;汽车的动力从蒸汽到燃油再到新能源&#xff0c;汽车的操控方式从手动到自动再到智能无人驾驶。而在BI领域&#xff0c;自1958年BI的概念提出后&#xff0c;底层数据准备从报表开发、Cube多维模…

图像的缩放之c++实现(qt + 不调包)

1.基本原理 图像的缩放一般使用插值算法&#xff0c;而本章将介绍两种常用插值算法&#xff1a;最临近插值法和双线性插值法 1.最临近插值法 将浮点数的位置坐标&#xff0c;进行四舍五入找到原图像的整型坐标即可&#xff0c;具体操作可见下面的公式&#xff0c;其中原图像坐标…

MES系统在机器人行业生产管理种的运用

机器人的智能水平也伴随技术的迭代不断攀升。 2021年的春晚舞台上&#xff0c;来自全球领先工业机器人企业abb的全球首款双臂协作机器人yumi&#xff0c;轻松自如地表演了一出写“福”字&#xff0c;赢得了全国观众的赞叹。 在汽车装配领域&#xff0c;一台机器人可以自主完成一…

【笔记】线段树

【笔记】线段树 目录 简介定义建树更新例题1: 单点修改&#xff0c;区间查询单点修改区间查询本题完整代码 例题2: 区间修改&#xff0c;单点查询思路本题完整代码 例题3: 区间修改&#xff0c;区间查询懒标记基本思想应用 区间修改本题完整代码 简介 线段树是一棵二叉树。如果…

带团队后的日常思考

一、日常问题 1&#xff09;补充产品文档 最近版本迭代&#xff0c;其中涉及一块举报流程的优化&#xff0c;其实会涉及管理后台发送站内信。 刚开始&#xff0c;大家都没怎么在意这个需求&#xff0c;但是在执行时才发现有许多细节没有考虑到。 管理后台的举报页面是在 2018 …

【C++技能树】一文看懂模板匹配

Halo&#xff0c;这里是Ppeua。平时主要更新C&#xff0c;数据结构算法&#xff0c;Linux与ROS…感兴趣就关注我bua&#xff01; 文章目录 0.泛型编程1.模板2 函数模板:2.1函数模板的特化 3. 类模板3.1 非类型模板参数3.2 类的模板刻画3.2.1 全特化3.2.2 偏特化 0.泛型编程 假…

在Microsoft SQL Server 2008中,语法生成错误“并行数据仓库(PDW)功能未启用“

案例&#xff1a; 原表有两列&#xff0c;分别为月份、月份销售额&#xff0c;而需要一条 SQL 语句实现统计出每个月份以及当前月以前月份销售额和 sql 测试数据准备&#xff1a; DECLARE Temp Table ( monthNo INT, --- 月份 MoneyData Float --- 金额 ) insert INTO TEM…

利用AIGC,零成本靠谱副业,每天半小时,挣个生活费不成问题,亲测,省时省力攻略

文章目录 背景为什么是写作如何操作申请各大创作平台的账号吸引人关注&#xff0c;增加粉丝利用AIGC来创作 看看其他好友分享的收入情况 背景 最近&#xff0c;尝试利用AIGC在头条号、微信公众号上开始写文章&#xff0c;并且通过这个机会赚取了一笔的外快。这个经历让我深刻认…

最强整理,HttpRunner接口自动化框架-hook机制实战,一篇上高速...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 对于使用 Python结…

谷歌广告(Google ads)如何投放?新手必看的超全教程

Google是公认的全球最大的搜索引擎&#xff0c;同时&#xff0c;Google还通过旗下的 YouTube、Gmail、Google Play、Android等产品&#xff0c;汇集了海量的海外用户。对于跨境出海商家来说&#xff0c;谷歌广告是提高销售额、提高产品流量、拓展全球市场的重要推广渠道。 那么…

从0开始搭建一个Monorepo模版,基于Turborepo+pnpm+changesets+dumi

Monorepo 前言开始一、使用turborepo初始化项目二、调整目录结构及文件1. 调整package.json文件2. 调整app目录3. 调整eslint包4. 调整ui包5. 调整eslint配置6. 调整.npmrc7. 使用commitizen规范代码提交8. 使用commitlinthusky进行 commit提交信息校验9. 使用husky进行commit前…

vue3 - 使用reactive定义响应式数据进行列表赋值时,视图没有更新的解决方案

文章目录 1&#xff0c;问题2&#xff0c;原因3&#xff0c;解决方案一、再封装一层数据&#xff0c;即定义属性名&#xff0c;在后期赋值的时候&#xff0c;对此属性进行直接赋值三、使用数组的splice来直接更改原数组三、使用 ref 来定义数据 1&#xff0c;问题 在Vue 3.0 中…

pythonocc进阶学习:投影projection

1.点 到 线, 直线,曲线,等上的投影 staticmethod # 点到Lin的投影 def Project_Pnt_To_Lin(p: gp_Pnt, lin: gp_Lin):Edge BRepBuilderAPI_MakeEdge(lin).Edge()curve BRep_Tool.Curve(Edge)proPnt GeomAPI_ProjectPointOnCurve(p, curve[0])NearestPoint proPnt.Nearest…

JVM虚拟机篇

JVM组成 面试题1&#xff1a;什么是程序计数器&#xff1f; 面试题2&#xff1a;你能给我详细的介绍Java堆吗? 面试题3&#xff1a;什么是虚拟机栈&#xff1f; 面试题4&#xff1a;垃圾回收是否涉及栈内存&#xff1f; 垃圾回收主要指就是堆内存&#xff0c;当栈帧弹栈以后…

全开源国外购物商城手机APP页面装修功能开发

搭建一个全开源国外购物商城手机APP页面装修功能开发需要以下步骤&#xff1a; 1. 确定需求&#xff1a;首先&#xff0c;需要明确页面装修功能的具体需求。例如&#xff0c;是否需要支持自定义布局、颜色、字体等&#xff1b;是否需要支持多种商品展示方式&#xff08;列表、…

misc学习(1)Bugku-社工-进阶收集

新手一枚&#xff0c;参考文献如下&#xff1a; Bugku&#xff1a;社工-进阶收集_bugku 社工 进阶收集_FW_ENJOEY的博客-CSDN博客 照片如图所示&#xff1a; 线索线&#xff1a; 1.百度识图 发现是大雁塔 2.主角家距离大雁塔一共有七站地铁&#xff0c;其中要进行中转。 同时…

噼里啪啦 图像分类篇

1. LeNet初始化权重的问题 由于我使用的是torch 1.10.0的版本&#xff0c;其Conv2d的init是使用asqrt(5) 我将这里的torch默认初始化改为a1之后&#xff0c;acc的对比如下&#xff1a;可以看出&#xff1a;更改初始化之后&#xff0c;5个epoch&#xff0c;acc提高了3个点。改为…