用户:
嗯哼君 渠源查看:0 回复:4 评论:0 创建时间:2018-10-13T12:07:00
上期回顾:1、最简单的数据形式——变量 :https://www.codemao.cn/community/166342
今天,我们来借助上次的massage.py来学习一个难点——字符串、整数与浮点数
要知道,就算是小佬这三个东西恐怕也会出错,所以现在需要你好好地——听、思考、记!
现在开始,就是真实的嗯哼君の讲课速度了,跟不上的可以Q我(1162971013)
三者的官方定义一大堆,全是很难理解的词语。简单地说,可以这么理解:
字符串:文字或符号连接起来的一个整体
整数:没有小数点的数字(其实这个是不可能的,至于为何我会在数字处理那里解释一下)
浮点数:带有小数点的数字
即使是.0,系统仍然会将他认定为浮点数——这个0很重要的,因此可能会引起一系列的错误比如“TypeError”。
所以,别乱加什么小数点。
字符串两边需要引号,且语法突出为绿色。而整数和浮点数则不需加引号,且语法突出为紫色。
你可能想将两个变量结合起来,我们称这个为“合并”。
继续上次的错误,我们直接把数字的那个massage改成masage,这样就成了两个独立的变量——一个代表着字符串“hello”,另一个代表着整数37(因为他没有小数点)
在print语句中的合并很简单,可以直接用逗号分隔。也可以用合并法——+。
注意了:and不是合并,所以别闹出“print(x and y)”之类的闹剧了
还有一个要点:print函数中可以直接用“,”来分隔合并,但是这样合并出来的语句中间可能会有空格,“+”则没有。
我们想将massage和masage合起来,说“hello37”,因此有两种方法
#方法一
message = "hello"
mesage = 32
print(message + mesage)①
#方法二
message = "hello"
mesage = 32
messages = message + mesage②
print(messages)③
开头是#的句子是注释,是为了提醒你的。python会自动忽视开头是#的句子,他的语法突出为橙色。注释可以帮你在很长时间后仍然能想起当时的思路,合作编写时用途更大——他能让你知道别人编写这个代码时是怎么想的。
这是个必定TypeError的句子,但是当前我们只需要理解合并的工作原理。
合并可以直接在函数内合并,亦或者在函数外合并。但是前者有些函数可能不适用,所以嗯哼君建议在函数外合并好后再用
我们先来看方法一:直接在函数内合并。
我们先创建了两个变量,接着在①处我们在print中直接合并了,所以这是正常的。
方法二我们先在②处将message和mesage都合并成了messages,接着我们直接打印messages就行了。(见③)
若你现在运行,系统会报错。这将会是我们将要接触的第二个错误类型:TypeError(类型错误)
什么是类型错误呢?就是将上面的三种数据形式搞混了,将其合并,就会导致TypeError。
不懂是不是?让我们来以python的视角来捋一下:
他接受了一个字符串与一个整数,接着你想让python把他们俩合起来。
但是Python不懂你的意思:他不知道32到底是“3”与“2”组成的字符串,还是“32”这个数字,所以他会不知所措。
我们继续用比喻的方法来理解三种数据形式的合并方法,了解完原理之后你就知道为何python会迷糊了。
字符串我们可以理解为一条线把好几个字母或符号穿起来了,比如“hello”。
若我们想合并字符串,python就直接把两个串连在一块,比如把“hello”串与“world”串穿起来,系成一条线。
接着系统就会输出“helloworld”,若要空格可以在两个串里面提前加上亦或者直接用print里的“,”合并。
而整数的合并就是加法,比如3 + 5系统会输出“8”,而不是“35”。但若想输出35怎么办呢?这个我们等会讲。
浮点数与整数看似相近,若有着天壤之别。他无法直接3.5 + 6,浮点数只能和浮点数相加。
若我们要将浮点数与整数相加,只有一种方法——把整数变为浮点数。
float函数可以将整数变为浮点数而不改变其数值。比如上面的“3.5 + 6”就可以变成“3.5 + 6.0”,这样就可以正常啦
除此之外,也可以转换为整数(int)与字符串(str),具体用法为:str()在括号里加上要改变的值
我们现在来解决上述的“整数合并”问题,思路是这样的:将两个数值都改为字符串,合并后再改成整数
代码(三个函数的语法突出均为红色):
print(int("3" + "5"))
这样系统就会输出“35”啦
若我们没有将其转换成相同的数据形式,系统就会TypeError。
现在我们将上面的message.py修改成这下面这个样子,系统就能正常运行啦
#方法一
message = "hello"
mesage = 32
print(message + str(mesage))①
#方法二
message = "hello"
mesage = 32
messages = message + str(mesage)②
print(messages)
在①处,我们将mesage转换成了字符串的类型,所以系统将32视为“3”与“2”,因此输出了“hello32”
在②处我们也将mesage改成了字符串的形式,因此messages就是字符串“hello”与字符串“32”的结合体。
好了,本节课就到这里了,大家下节再见吧!
下节预告:3、数据类型的运用
PS:提前露个底,下一章将会学对字符串进行修改(大小写、去除空白等)以及数据的运用(运算)等欧~~~