<From Zero to Hero>零基础学习Python基础语法【数据类型与转换】

目录

数据类型

字符串

整数

浮点数

数据的应用

四则运算

字符串的拼接

数据类型的查询——type函数

数据转换

str()

int()

float()

小练习:

凯文.凯利以预测科技发展趋势而出名,在90年代里,他曾在他的著作《失控》中提及了云计算、物联网、虚拟现实等概念。他预言人类的未来是镜像世界。

奇异博士利用魔法制造了镜像世界进行战斗,减少对现实世界的破坏;我们人类用代码程序也创造了一个镜像世界,在镜像世界里面高效地解决现实世界里的繁琐任务。

其实呀,python世界可以看作部分现实世界的【镜像】,部分现实世界的东西、概念都可在python世界里找到对应,比如:现实世界中最常见的数字,文字,符号在Python世界就是:【数据】。

不同类型的数据呀,『长相』不一样,各司其职。只有认清各类型数据的『长相』,了解它们的功能,才能在镜像世界里完成现实世界的任务。

 

数据类型

在现实世界的镜像——Python里,最常用的数据类型有三种——字符串(str)、整数(int)和浮点数(float)。

字符串

首先,我们来认识一下字符串,字符串英文string,简写str。其实我们在上一关就见过它:

name='千寻'

print("Let's play")

字符串的识别方式非常简单——有层名为【引号】的皮,只要是被【单/双/三引号】这层皮括起来的内容,不论那个内容是中文、英文、数字甚至火星文。只要是被括起来的,就表示是字符串类型。

在这组代码里,【'千寻'】、【"Let's play"】都属于字符串类型。

Chinese = '琅琊榜'
English = "Lang Ya Rank"
number = "666"
symbol = '''世界第一A!@'''
mixture = '琅琊榜Lang Ya Rank666世界第一A!@'

print(Chinese)
print(English)
print(number)
print(symbol)
print(mixture)

琅琊榜
Lang Ya Rank
666
世界第一A!@
琅琊榜Lang Ya Rank666世界第一A!@

怎么样,字符串的使用是不是很简单?

字符串,顾名思义,就是由一个个字符串起来的组合,字符可以是一个数字、一个字母、一个文字,甚至是一个符号。字符串可以表达现实世界里的词、语句、表达式等。

 

关于字符串,一定要记得:字符串类型必须有【引号】的辅助。不然字符串就只能被报错,无尽地呻吟~

下面来小结一下字符串的知识点。

 

 

整数

可是有的时候,某些数据它脱了【引号】的马甲,也照样能打印出来。例如在上一关我们见过的【print(520)】。

这就是我们要介绍的,常见数据类型中的第二种:整数整数英文为integer,简写做int。Python世界的整数其实和现实世界数学中定义的一样:是正整数、负整数和零的统称,是没有小数点的数字。

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

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

整数其实是一个不带小数点的数字,可以不穿名为引号的马甲,直接跟print()函数组团搞输出。

我们已经知道了字符串有【引号】的保护,可以和符号及其他文字类数据,譬如中文、英文随意组合。

整数脱掉了【引号】马甲,只能『单独行动』。一旦碰上符号及其他文字类数据,譬如中文、英文,立马被报错秒杀。

比如像这样:

#注意,以下是错误代码

print(6真实)
print(6virtual)
SyntaxError: invalid syntax

 整数是不是很简单,它其实就是数学意义的整数。下面,我们来总结一下整数这部分的知识点:

 

浮点数

那数学意义上的小数在python中怎么表示呢?它就是我们常见三种数据类型中的最后一种:【浮点数】。

浮点数非常好识别,它比整数多了一个小数点『.』,比如下列代码中的数字都是浮点数

1.0
3.14159
-0.33

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

浮点数可能让你有点眩晕,这是因为,与【整数运算结果永远精确】的特点不同,计算机里浮点数的运算是不精确的,会有四舍五入的误差。这什么意思呢?

下面,请你先心算一道题【0.55+0.3】

然后我们再让Python算一下,答案:

0.8500000000000001

哎?为什么不是【0.85】,而尾巴多了一个【1】呢?这是因为,Python计算浮点数时,会先把0.550.3转化成二进制数【注:二进制数由0和1表示,逢二进一】,如下:

# 进制转换
0.55(十进制) = 0.1000110011001100110011001100110011001100110011001101(二进制)
0.3(十进制) = 0.0100110011001100110011001100110011001100110011001101(二进制)

 

而在这个转化过程中存在误差,这样,就造成了我们与程序计算结果的差异。

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

浮点数这部分的主要知识:

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

 

数据的应用

认识了字符串整数浮点数,掌握了它们的初级使用,下面来学以致用一下。

四则运算

Python里的整数、浮点数和数学意义的整数、小数是一样的,它最重要的作用是与运算符号结合,进行数学计算

但是Python世界的算数运算符,和我们平时在纸上写的运算符号有相同点,也有不同点。

Python世界的运算符:

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

Python世界的运算优先级,和我们平时的计算优先级是一样的。

 

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

 290194

351.0

字符串的拼接

如何将不同的词组合成一句话?

有以下几个零碎的『词语』——变量,然后想合成这样一句话:我是珠穆朗玛峰登山成员007

hero = '我'
organization = '珠穆朗玛峰'
identity = '登山成员'
action = '是'
ID = '007'

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

比如,上面的例子,可以这么写:

hero = '我'
organization = '珠穆朗玛峰'
identity = '登山成员'
action = '是'
ID = '007'

print(hero+action+organization+identity+ID)

 我是珠穆朗玛峰登山成员007

 有了拼接符号,我不仅可以输出【我是风变编程学员007】,还可以调整变量的拼接顺序,输出不同的内容。

hero = '我'
organization = '珠穆朗玛峰'
identity = '登山成员'
action = '是'
ID = '007'

print(hero+action+organization+identity+ID)
print(organization+identity+ID+action+hero)

我是珠穆朗玛峰登山成员007

珠穆朗玛峰登山成员007是我 

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

 

下面的这段代码有bug:

who = '我的'
action = '是'
destination = '镜像世界'
number = 153
code = '通行密码'


print(who+destination+code+action+number)

TypeError:can only concatenate str (not "int") to str

 通过报错提示,我知道了错误来源于print()函数内,数据类型的拼接错误。

观察上面代码里变量的值,发现了【number = 153】中的【153】没有【引号】和【小数点】,是一个整数,原来『奸细』就是它。难怪当时在终端区会给我报错说:数据类型不同呢。

但是,由于变量是由我们定义的,所以我们可以用人眼查找错误源。

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

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

数据类型的查询——type函数

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

who = '我的'
action = '是'
destination = '镜像世界'
number = 153
code = '通行密码'

type(who)
type(action)
type(destination)
type(number)
type(code)

哎?怎么什么都没出现呢?刚刚不是说过,只要按照type(需要查询的数据)这个格式写对了,就能出现数据的类型吗?

其实,什么都没有就对了。对于Python来说,你只是下了一个命令——给我查询类型哟~然后Python就老老实实地查询了类型,再然后……就没有了。

在你的命令里,并没有告诉Python:“你查到以后,记得告诉我这个类型的结果啊~”所以,异常老实的Python就把查询到的数据类型……存起来了,没告诉你。

所以,我们要结合print()函数打印出结果。下面,请你再实操一下,补全代码,运用print()函数,将查询函数的结果打印出来。例如:print(type(hero))

 

who = '我的'
action = '是'
destination = '镜像世界'
number = 153
code = '通行密码'

print(type(who))
print(type(action))
print(type(destination))
print(type(number))
print(type(code))

<class 'str'>
<class 'str'>
<class 'str'>
<class 'int'>
<class 'str'>

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

str代表字符串,全称为string,整数的英文简称为int,全称为integer

在type()函数的帮助下,我们知道也可以查找出字符串里面出现的『奸细』——整数。

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

我打个比方,这就类似我饭阿森纳,你饭热刺。虽说咱俩都是足球粉丝,但喜欢的球队却是死对头,所以根本没办法交朋友,没法把咱俩放在一起。

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

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

数据转换

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

str()

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

who = '我的'
action = '是'
destination = '镜像世界'
number = 153
code = '通行密码'

print(who+destination+code+action+str(number))

 我的镜像世界通行密码是153

还有一种转换成字符串的方法, 那就是借用【引号】的帮助

who = '我的'
action = '是'
destination = '镜像世界'
number = 153
code = '通行密码'

print(who+destination+code+action+'153')

 我的镜像世界通行密码是153

可能有人会在心里吐槽:既然引号用着这么麻烦,那我直接用str()呗~你看这多省事。

其实,要明白一种编程思维——条条大路通罗马。

代码的世界千变万化,同一个结果可能有千百万种答案,如果我们只心安理得地,局限在一种思维模式下。那这个思维定势一定会阻挡你的进步,阻止你成为真·大佬。

小结一下str()函数部分的知识点。

int()

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

number1 = '6'
number2 = '1'

print(int(number1)+int(number2))

7

不过对于int()函数的使用,要注意一点:只有符合整数规范的字符串类数据,才能被int()强制转换。

别看它虽然只有一句话,但它其实带有三层含义:首先,整数形式的字符串比如'6'和'1',可以被int()函数强制转换。

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

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

# 这是错误代码

print(int('3.8'))

ValueError:invalid literal for int() with base 10: '3.8'

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

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

 

print(int(3.8))

 3

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

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

小结一下int()函数的知识点。

 

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

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

 

float()

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

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

 

height = 188.0
weight = 180.0
age = '89'

print(float(height))
print(float(weight))
print(float(age))

188.0
180.0
89.0

在上题中,height与weight变量已经是浮点类型,age是字符串类型(可以用type(变量)来查看数据类型),因此打印前对将age进行float(age)转化即可。

小结一下这三个函数:

 

本文总结:

 

小练习:

请运用所给变量,使用数据转换str()int()float()及数据拼接符号+,打印一句话: 脸黑怪我咯7张蓝票一个SSR都没有

其中,变量会在【书写代码】提供,请直接【复制粘贴】:
slogan = '脸黑怪我咯'
number = '7.8'
unit = '张'
sentence = '蓝票一个SSR都没有'

步骤讲解:

  • 使用float()函数将小数形式的字符串变量转换
  • 使用int()函数取整
  • 使用str()函数将数据转换为字符串形式
  • 使用+进行数据拼接

【注意】不要忘了先对变量赋值哦!

slogan = '脸黑怪我咯'
number = '7.8'
unit = '张'
sentence = '蓝票一个SSR都没有'

print(slogan+str(int(float(number)))+unit+sentence)

脸黑怪我咯7张蓝票一个SSR都没有

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值