0基础学习python之数据类型和数据操作

大家都知道,我们python的强大功能之一就是处理数据,所以我们今天就来探讨一下python中的一些数据类型和他们之间的操作吧。

先来回顾学过知识,上图:

忘记的小猿们可以回头去看看哦。

好了进入正题,简单来讲,计算机的本质就是一个做计算的机器,它的主要任务就是处理各种数据,而这些数据的类型,就是计算机的语言类型。

在Python的世界,最常用的数据类型有三种——字符串(str)、整数(int)和浮点数(float),他们三者分别具有不同的属性:

数据类型

字符串

首先,我们要讲的就是代码届的“坦克”——字符串:

字符串英文string,简写str。作为Python届的坦克,此数据类型组团必备随处可见,皮糙肉厚战斗力爆表。作为最常用的数据类型,字符串的识别方式非常简单——有层名为【引号】的皮。

只要是被【单/双/三引号】这层皮括起来的内容,不论那个内容是中文、英文、数字甚至火星文。只要是被括起来的,就表示是字符串类型。(这句话划重点要考)

比如哪些呢

print("我的名字叫柯,我是一名编程老师,我的身高181cm,不够帅,喜欢运动,更喜欢和你们一起学编程")

print("Let's go")

这些print()方法中括号里面的,有“引号”这层皮的,就叫做字符串。

大家打开编辑器试试以下的代码:

message1 = "别离,为了更美妙的重逢"
message2 = "周日被我射熄火了,所以今天是周一"
message3 = "以陛下的名义,你被捕了。"
message4 = "弱小,并非服从恐惧的理由!"
message5 = "行动和欲望 决定未来"
print("公孙离:",message1)
print("后羿:",message2)
print("狄仁杰:",message3)
print("虞姬:",message4)
print("马可波罗:",message5)

是不是从这里能发现柯很喜欢打射手?

开个玩笑哈,能发现我们的字符串很简单了吧,就是认准驰名商标,引号!!!!!!

整数

常见数据类型中的第二种:代码届的刺客——整数。

整数英文为integer,简写做int。代码世界的整数,和我们数学课本中定义的一样:是正整数、负整数和零的统称,是没有小数点的数字。

比如在下面的代码框中,赋值语句中的数字都是整数:

a = 10
b = -60
c = 6841
d = 0

可我为什么说整数是代码届的刺客呢?其实,就本质来讲,整数和刺客一样,是一个灵活多变、可攻可受的脆皮英雄。

首先,整数可以不穿名为引号的马甲,直接跟print()函数组团搞输出,比如下列代码:

print(666)

打印结果:

但是由于没有引号这层皮的保护,整数只能单独“行动”。一旦碰上其他文字类数据,譬如中文、英文。整数这个脆皮刺客,立马被报错秒杀。

比如这样的:

print(6小灵童)
print(6skr)

程序立马就invalid syntax直接报语法错误了

其次,整数的“灵活多变”又体现在它的用处上,它单独行动的时候,不仅可以脱离引号被直接打印,还可以和运算符号结合,进行数学计算。

接下来实践以下跑代码:

print(499*561+10620-365)
print((5025-525)/100+18*17)

结果:

是不是把你写的式子的运算结果直接搞出来了呢,不信你可以拿计算机验证一下。也可以尝试自己练练打出其他的式子,康康是不是都一样的呢。

代码届的刺客——【整数】的直接“输出”,以及计算功能是不是很强大?

不过说到计算,肯定要使用运算符了。Python世界的算数运算符,和我们平时在纸上写的运算符号有相同点,也有不同点。

首先,我们来看看不同的部分——样式:Python的运算符在写法上,与我们平时使用的运算符稍微有点区别。

不说了上图:

不过,对于这么多的算术运算符,建议你先看一遍,有个大致的印象就行。你可以先把这张图保存上,等用的时候再找出来,对应着查阅就可以。

那么,说了不一样的,咱们再说说一样的——运算优先级:Python世界的运算优先级,和我们平时的计算优先级是一样的。

比方说刚刚那串代码【print((5025-525)/100+18*17)】,他的运算顺序是从左到右:最先计算括号里的【5025-525】。

然后将【5025-525】的结果除以100,第三步则计算【18*17】,最后将除法和乘法的结果相加。

到现在为止,我们已经知道了字符串和整数,这两种数据类型长啥样。

浮点数

大家也看到了那么大的两个字,对了,它就是我们常见三种数据类型中的最后一种:代码届自带眩晕技能的法师——浮点数。

整数是不带小数点的数字,那么相对的,带小数点的数字,就是浮点数。非常好识别,比如下列代码中的数字都是浮点数。

a=1.0
b=3.14159
c=-0.33

浮点数的英文名是float,与整数(int)和字符串(str)不同,浮点数没有简写。

那我为什么说浮点数能让你眩晕呢?虽然浮点数识别起来非常简单,但是其运算却晦涩难懂、让人头秃。

正如世界级C++大佬Herb Sutter说的:“世上的人可以分为3类:一种是知道自己不懂浮点运算的;一种是以为自己懂浮点运算的;最后一种是极少的专家级人物,他们想知道自己是否有可能,最终完全理解浮点运算。”

所以,浮点运算没有你想的那么简单。那么现在,请大家跟我通过一道题,来感受一下浮点数的“眩晕技能”:

请你先心算一道题【0.55+0.3】,结果是不是【0.85】?下面我们让Python算一下


print(0.55+0.3)

没有跟着实际操作的同鞋呢,就看看运行效果。

看到没,程序算出来的结果,是不是多了很多0,在末尾还有一个1?那这一长串“尾巴”是怎么出来的?

这是因为,Python计算浮点数的方式与我们不一样。Python计算浮点数时,会先把0.55和0.3转化成二进制数【注:二进制数由0和1表示,逢二进一】,如下:

0.55(十进制) = 0.1000110011001100110011001100110011001100110011001101(二进制)

0.3(十进制) = 0.0100110011001100110011001100110011001100110011001101(二进制)

然后,这俩二进制数通过二进制法则运算后,再通过复杂的计算公式,将二进制结果转成十进制小数。

经过这两次转换,小数点后面就产生了多余的“尾巴”。这样,就造成了我们与程序计算结果的差异。

不过对于浮点数,你也不用太担心,因为在前期我们很少会涉及浮点数运算。而在后期,随着学习的深入,你会接触到更多的相关知识,辅助你对浮点数的进一步理解。

你只要先记住浮点数就是带着小数点的数就可以啦

以上,就是我们最常接触的三种数据类型:坦克字符串、刺客整数、法师浮点数的全部内容了。

数据拼接

你也看到了标题,接下来我们就讲数据操作中的数据拼接。

数据拼接的方法可简单了,就是利用数据拼接符号【+】,将需要拼接的变量连在一起就行了。

比如呢:

hero = '亚瑟'
enemy = '敌方'
action = '团灭'
gain = '获得'
achieve = 'ACE称号'print(hero+action+enemy+gain+achieve)

运行结果:

有了拼接符号,我不仅可以输出亚瑟团灭敌方获得ACE称号,还可以调整变量的拼接顺序,输出不同的内容。

学会了数据拼接,就能让我们的数据整合更为灵活,组合出任意我们想要的内容。

那么,为了输出结果【亚瑟秒杀5敌方英雄获得Penta Kill】,我们是不是可以把代码写成这样?

hero = '亚瑟'
enemy = '敌方'
action = '秒杀'
gain = '获得'
number = 5
achieve = 'Penta Kill'
​
print(hero+action+number+enemy+gain+achieve)

理想很美好,现实很骨感:

程序立马报错:must be str ,not int

也是就这些数据必须都是str字符串类型,不能是整数int型

虽然通过报错提示,我知道了错误来源于print()函数内,数据类型的拼接错误。但是到底是哪个数据类型不对呢?我们要怎么查看数据类型呢?

拿刚刚那段报错代码来说,由于变量是由我们定义的,所以我们可以用人眼查找错误源。

但是在未来,当我们学会了更为复杂的命令,可以用代码对其他人提问,收集其他人的答案时。我们无法确定他们回复你的内容,是用什么数据类型写的。

所以,我们要学会善用Python的魔法,使用Python中一个已有的,既简单又实用的函数,来帮助我们查询不确定数据的类型。而这个函数,就是type()函数。

那么,这个type()函数要怎么使用呢?答案就是:只需把查询的内容放在括号里就行。

只要你把内容写在括号里,type()函数就会立即将它的类型查询出来。下面,请你用刚才的代码来试一下。

hero = '亚瑟'
enemy = '敌方'
action = '秒杀'
gain = '获得'
number = 5
achieve = 'Penta Kill'
print(type(hero))
print(type(enemy))
print(type(action))
print(type(gain))
print(type(number))
print(type(achieve))

运行结果:

终端里出现的结果,是不是除了5个<class 'str'>,还有1个<class 'int'>?

在type()函数的帮助下,我们知道了:原来字符串里面出了一个“奸细”整数。难怪当时在终端区会给我报错说:数据类型不同呢。

可是为什么不同类型的数据不能拼接在一起呢?一句话:圈子不同不相融。

我打个比方,这就类似我饭公孙离,你饭马可波罗。虽说咱俩都玩射手,但却要对线,所以根本没办法交朋友,没法把咱俩放在一起。

但是,在某些时候,咱俩总得有低头不见抬头见,在一个峡谷操作的时候。那么这时候要怎么办呢?要如何把两个不同类型的数据拼在一起呢?

这就涉及到了我们这关最后一个知识点:数据转换。

数据转换

负责转换数据类型的函数一共有3种:str()、int()和float()。

下面,我们先来学习一下,能帮我们解决刚才的代码Bug,拿到五杀的str()函数。

str()函数

str()函数能将数据转换成其字符串类型,不管这个数据是中文、数字、标点还是火星文,只要放到括号里。这个数据就能摇身一变,成为字符串类型。

接下来用刚才的代码,我来给你们试验一下:

hero = '亚瑟'
enemy = '敌方'
action = '秒杀'
gain = '获得'
number = 5
achieve = 'Penta Kill'
print(hero+action+str(number)+enemy+gain+achieve)

运行结果:

是不是挺简单的?我们只需通过str(number)一个步骤,便可以将整数类型的5转化为字符串类型的5 。成功完成数据拼接,拿到五杀。

整数转换字符串类型的方法是不是很方便?那如果我告诉你,还有一种转换成字符串的方法,而且这种方法你已经学会了呢?

那就是借用引号的帮助,直接把5加上引号

hero = '亚瑟'
enemy = '敌方'
action = '秒杀'
gain = '获得'
number = '5'
achieve = 'Penta Kill'
print(hero+action+number+enemy+gain+achieve)

运行结果:

既然整数类型能转换为字符串,那字符串类型能转换为整数吗?

那必须的。

int()函数

将数据转换为整数类型的方法也很简单,就是int()函数。其使用方法同str()一样,将你需要转换的内容放在括号里就行,像这样:int(转换的内容)。

我们来写一下

a = '666'
b = '0'
print(a+b)

运行结果:

嗯?哪里不对劲。

这是搞字符串的拼接,不是在计算,兄弟!

搞错了,再来

a = '666'
b = '0'
print(int(a)+int(b))

搞定了。

不过对于int()函数的使用,大家要注意:

①只有符合整数规范的字符串类数据,才能被int()强制转换。

②其次,文字形式,比如中文、火星文或者标点符号,不可以被int()函数强制转换。

③最后,小数形式的字符串,由于Python的语法规则,也不能使用int()函数强制转换。

比如:

print(int('3.8'))

运行结果(报错):

这是不是意味着,浮点数不能转换成整数类型了?

不,虽然浮点形式的字符串,不能使用int()函数。但浮点数是可以被int()函数强制转换的。

比如:

print(int(3.8))

上方的代码串,就是一条将浮点数3.8强制转换的语句。但是,为什么输出的结果是3呢?

你看,int()函数的本质是将数据转换为整数。所以对于浮点数,int()函数会做取整处理。但是,同我们平时对小数四舍五入的处理方法不同,int()函数会直接抹零,直接输出整数部分。

可是,如果遇到这种情况:字符串就是小数形式,比如'3.8'这种。我不想让它变为整数3,想让它保持小数形式的3.8,那我要怎么做呢?

这就涉及到了我们这关,最后一个知识点——float()函数。

float()函数

首先float()函数的使用,也是将需要转换的数据放在括号里,像这样:float(数据)。

其次,float()函数也可以将整数和字符串转换为浮点类型。但同时,如果括号里面的数据是字符串类型,那这个数据一定得是数字形式。

那么,经过之前str()和int(),float()函数是不是好懂了一些?

操作类似,我就上个代码演示一下就好啦

height = 183.5
weight = 79
age = '30'
print(float(height))
print(float(weight))
print(float(age))

运行结果:

那么今天的数据类型和基本操作的语法就讲到这里啦,在这里柯说声抱歉,前段实践太忙,没有及时更新,希望各位大老爷大小姐海涵~

最后上图你们自己转成X-mind吧

不会问我:X-mind是什么吧?

0编程基础学python之数据类型和数据操作相关推荐

  1. 有编程基础学python怎么赚点小钱?

    1.爬虫 很多人入门Python的必修课之一就是web开发和爬虫.但是这两项想要赚钱的话,就必须知道开发什么爬什么数据才能赚钱.如果你都不知道的话问题也不大的,可以开个网店,或者猪八戒做服务外包. 这 ...

  2. 学python怎么赚钱-有编程基础学python怎么赚点小钱?

    800左右算是要求很低了,光一项爬虫,做好开发抓一些新闻证券的信息基本上月入就3-5k了.渠道自己可以去淘宝上找,或者让是猪八戒找一些兼职.具体的下文说,这是之前回答过的一个问题:python精通后能 ...

  3. 零编程基础学python-如果是一个纯0编程基础的小白,如何学Python

    Python 可用的地方非常多.无论是从入门级选手(爬虫.前端.后端.自动化运维)到专业级数据挖掘.科学计算.图像处理.人工智能,Python 都可以胜任.或许是因为这种万能属性,周围好更多的小伙伴都 ...

  4. 0基础小白学python好学吗-如果是一个纯0编程基础的小白,如何学Python

    Python 可用的地方非常多.无论是从入门级选手(爬虫.前端.后端.自动化运维)到专业级数据挖掘.科学计算.图像处理.人工智能,Python 都可以胜任.或许是因为这种万能属性,周围好更多的小伙伴都 ...

  5. 0基础学python看什么书-编程语言学python必看这三本书,少走一半弯路

    非常喜欢python 我非常喜欢python,在前面5年里,它一直是我热衷使用并不断研究的语言,迄今为止,python都非常友好并且易于学习! 它几乎可以做任何事,从简单的脚本创建.web,到数据可视 ...

  6. 0基础学python看什么书-零基础学python编程需要看什么书?

    原标题:零基础学python编程需要看什么书? 随着互联网迅速发展,python也呈现出水涨船高的态势.近年来,python在编程语言中一直名列前茅.编程初学者纷纷选择Python作为第一语言.Pyt ...

  7. list选取多个元素 python_【幼儿园级】0基础学python一本通(上)——AI未来系列1...

    在未来面前,每个人都是学生 江海升月明,天涯共此时,关注江时! 引 子 本篇为AI未来系列第一篇.为什么要研究学习python?python是未来屠龙的屠龙宝刀,再辅助以我们的高中数学基础(足够用的屠 ...

  8. 【python教程入门学习】学python要多久,0基础学python有多难

    学python要多久,0基础学python有多难,这是很多想学习python语言同学绕不开的问题,都害怕花完钱最终没有应有的回报!对于毫无经验0基础的同学来说学习python什么最重要,方向选对坚持下 ...

  9. 0基础学Python,要报班吗?

    0基础学Python,要报班学习吗? 首先呢,你零基础,那么就意味着你一切都要从头开始.我们知道,有句话叫万事开头难,所以你一定要做好心理准备.半途而废就没意思啦,千万不能遇到问题就打退堂鼓,否则你最 ...

最新文章

  1. LCLFramework框架之Service模式
  2. 磁盘格式化、磁盘挂载、手动增加swap空间
  3. STM32 基础系列教程 10 - 单线串口(半双工)
  4. FreeMarker学习2
  5. 向量外积_解析几何 -向量
  6. 正则表达式:匹配非0的整数和小数Double
  7. 避免Castle Windsor引起的内存泄露
  8. c语言春考题目,PAT 2017年春考乙级真题(1066. 图像过滤)(C语言)
  9. 【笔记3】二维码扫码数据埋点
  10. 陈丽琳:如何以大数据助力商场运营
  11. 谷歌停止中国版搜索引擎;李楠宣布离职魅族;微软用 Rust 替代 C/C++ | 极客头条...
  12. 问题六十八:着色模型(shading model)(1)——反射模型(reflection model)(2.2)——高光反射(specular reflection)
  13. oracle mysql认证考试流程_报考oraclemysql认证考试流程有些什么步骤
  14. 【能量检测】基于认知无线电的能量检测算法的matlab仿真
  15. 修改斐讯k3天气服务器,夏天了,给斐讯K3换智能调温套件降降温
  16. 《Java从入门到放弃》框架入门篇:SpringBoot+mybatis搭建三层架构项目
  17. 统计学原理 数值型数据的整理与展示
  18. 手把手带你学python自动化测试(一)——自动化测试环境搭建
  19. 液晶显示器常见故障维修方法
  20. python 实现简单画板_python 画板示例源码(可做签名/涂鸦)

热门文章

  1. 【Microsoft Azure 的1024种玩法】二十九.基于Azure VM快速实现网络入侵检测 (IDS) 及网络安全监视 (NSM)
  2. 【数理知识】极坐标与笛卡尔坐标转换
  3. 实现iframe嵌套页面通信
  4. 默认python3版本,python2没有pip2模块,解决方案
  5. Phoenix修改表名
  6. ArcGIS教程:将支持页面插入地图册
  7. html输入框是一条横线,html把输入的文本框变成一个下横线css样式
  8. 006-云E办首页页面
  9. SAP MM01 创建物料主数据 [关注公众号后回复MM01获取更多资料]
  10. 不同周期m序列(伪随机序列)的matlab详细生成方法