4+5的值是python_课时5:闲聊之Python的数据类型

目录:

一、引言

二、数据类型

>整型

>浮点型

>布尔类型

三、类型转换

四、获得关于类型的信息

五、课时05课后习题及答案

***********

一、引言

***********

大家还记得‘520’和520的区别吗?

没错,带了引号的,无论是单引号还是双引号或者是三引号,都是字符串;但不带引号的,就是数字。字符串相加叫作拼接。

>>> "520"+'1314'

'5201314'

>>> 520+1314

1834

今天来介绍一些Python的数据类型,包括整型、浮点型、布尔类型、复数类型等。

****************

二、数据类型

****************

1、整型

整型说白了,就是平时所见的整数,Python3的整数已经与长整型进行了无缝的结合,现在的Python3的整型类似于Java的BigInteger类型,它的长度不受限制。                                                        如果说非要有个限制,那只限于计算机的虚拟内存总数。所以用Python3很容易进行大数的计算。

2、浮点型

浮点型就是平时所说的小数。Python区分整型和浮点型的唯一方式,就是看有没有小数点。

谈到浮点型,不得不提E记法,E记法就是平常所说的科学记数法,用于表示特别大和特别小的数。

>>> a=0.000000000000000000025

>>>a2.5e-20

>>> 150000000000

150000000000

>>> 1.5e11

150000000000.0

这个E的意思是指数,指底数为10,E后边的数字是10的多少次幂。

3、布尔类型

布尔类型事实上是特殊的整型,True相当于整数值1,False相当于整数值0.

>>> True +False1

>>> True +True2

>>> True/False

Traceback (most recent call last):

File"", line 1, in True/False

ZeroDivisionError: division by zero

当然把True和False当成1和0来参与这种运算的这种做法是不妥的。

***************

三、类型转换

***************

接下来介绍几个跟数据类型紧密相关的函数:int()、float()、str().

1、int()的作用就是将一个字符串或浮点数转换为一个整数

>>> a = '520'

>>> b =int(a)>>>a,b

('520', 520)>>> c = 5.99

>>> d =int(c)>>>c,d

(5.99, 5)

注意了,如果是浮点数转换为整数,那么Python会采取”截断“处理,就是把小数点后的数据直接砍掉,注意不是四舍五入哦。

补充:

>>> a = int("小甲鱼")

Traceback (most recent call last):

File"", line 1, in a= int("小甲鱼")

ValueError: invalid literalfor int() with base 10: '小甲鱼'

”小甲鱼“是一个字符串,但不是一个表示数字的字符串,它是一个编码,编码跟数字没有关系。所以会报错。

2、float()的作用是将一个字符串或整型转换成一个浮点数(就是小数)

>>> a = "520"

>>> b =float(a)>>>a,b

('520', 520.0)>>> c = 520

>>> d =float(c)>>>c,d

(520, 520.0)

3、str()的作用是将一个数或任意其他类型转换成一个字符串

>>> a = 5.99

>>> b =str(a)>>>a,b

(5.99, '5.99')>>> c = str(5e15)>>>c'5000000000000000.0'

>>> d = str(15)>>>d'15'

>>> c = str(5e19)

>>> c

'5e+19'

****************************

四、获得关于类型的信息

****************************

Python提供了一个函数,可以明确的告诉我们变量的类型,这就是type函数:

>>> type("520")

>>> type(5.20)

>>> type(520)

>>>type(true)

Traceback (most recent call last):

File"", line 1, in type(true)

NameError: name'true' is notdefined>>>type(True)

我们更建议使用isinstance()这个BIF来确定变量的类型。这个BIF有两个参数:第一个是待确定类型的数据;第二个是指定一个数据类型。

>>>type(True)

>>> a = "小甲鱼"

>>>isinstance(a,str)

True>>> isinstance(520,float)

False>>> isinstance(520,int)

True

*******************************

五、课时05课后习题及答案

*******************************

测试题:

0. 在 Python 中,int 表示整型,那你还记得 bool、float 和 str 分别表示什么吗?

1. 你知道为什么布尔类型(bool)的 True 和 False 分别用 1 和 0 来代替吗?

2. 使用 int() 将小数转换为整数,结果是向上取整还是向下取整呢?

3. 我们人类思维是习惯于“四舍五入”法,你有什么办法使得 int() 按照“四舍五入”的方式取整吗?

4. 取得一个变量的类型,视频中介绍可以使用 type() 和

isinstance(),你更倾向于使用哪个?

5. Python3 可以给变量命名中文名,知道为什么吗?

动动手:

0. 针对视频中小甲鱼提到的小漏洞,再次改进我们的小游戏:当用户输入错误类型的时候,及时提醒用户重新输入,防止程序崩溃。

如果你尝试过以下做法,请举下小手:

temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")#这种想法是因为type(1)会返回,如果type(temp)返回结果一致说明输入是整数。

while type(temp) != type(1):print("抱歉,输入不合法,", end='')

temp= input("请输入一个整数:")

或者可能这样:

temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")#not操作符的作用是将布尔类型的结果翻转:即取反的意思,not True == Flase

while notisinstance(temp, int):print("抱歉,输入不合法,", end='')

temp= input("请输入一个整数:")

以上方法的思路是正确的,不过似乎忽略了一点儿:就是input()的返回值始终是字符串,所以type(temp)永远是!

其实有蛮多的做法可以实现的,不过就目前我们学习过的内容来看,还不足够。

所以,在让大家动手完成这道题之前,小甲鱼介绍一点新东西给大家!

s为字符串

s.isalnum() 所有字符都是数字或者字母,为真返回 Ture,否则返回 False。

s.isalpha() 所有字符都是字母,为真返回 Ture,否则返回 False。

s.isdigit() 所有字符都是数字,为真返回 Ture,否则返回 False。

s.islower() 所有字符都是小写,为真返回 Ture,否则返回 False。

s.isupper() 所有字符都是大写,为真返回 Ture,否则返回 False。

s.istitle() 所有单词都是首字母大写,为真返回 Ture,否则返回 False。

s.isspace() 所有字符都是空白字符,为真返回 Ture,否则返回 False。

例如:>>> s = 'I LOVE FISHC'

>>>s.isupper()>>> True

好了,文字教程就到这里,大家赶紧趁热打铁,改造我们的小游戏吧!

1. 写一个程序,判断给定年份是否为闰年。(注意:请使用已学过的 BIF 进行灵活运用)

这样定义闰年的:能被4整除但不能被100整除,或者能被400整除都是闰年。

答案:

测试题答案:

0. 在 Python 中,int 表示整型,那你还记得 bool、float 和 str 分别表示什么吗?

bool 表示布尔类型

float 表示浮点型

str 表示字符串

1.你知道为什么布尔类型(bool)的

True 和 False 分别用 1 和 0 来代替吗?

你可能听说过计算机是很“笨”的,究其根本是因为它只认识二进制数,所以所有的编程语言最终都会转换成简单的二进制序列给CPU按照一定的规则解析。

由于二进制只有两个数:0 和 1,因此用 0 和 1 来表示 False 和 True 再适合不过了,因为不用浪费资源在转换的过程上!

2.使用 int() 将小数转换为整数,结果是向上取整还是向下取整呢?

我们可爱的小甲鱼说了,小数取整会采用比较暴力的截断方式,即向下取整。(注:5.5向上取整为6,向下取整为5)

3.我们人类思维是习惯于“四舍五入”法,你有什么办法使得 int() 按照“四舍五入”的方式取整吗?

int() 固然没那么“聪明”,但机器是死的,鱼油是活的!

5.4 “四舍五入”结果为:5,int(5.4+0.5) == 5

5.6 “四舍五入”结果为:6,int(5.6+0.5) == 6

大家看明白了吗?

4.取得一个变量的类型,视频中介绍可以使用 type() 和 isinstance(),你更倾向于使用哪个?

建议使用 isinstance(),因为它的返回结果比较直接,另外 type() 其实并没有你想象的那么简单,我们后边会讲到。

5. Python3可以给变量命名中文名,知道为什么吗?

Pyhton3 源码文件默认使用utf-8编码(支持中文),这就使得以下代码是合法的:

>>> 小甲鱼 = '我爱你'

>>> print(小甲鱼)

>>> 我爱你

动动手答案:

0.针对视频中小甲鱼提到的小漏洞,再次改进我们的小游戏:当用户输入错误类型的时候,及时提醒用户重新输入,防止程序崩溃。需要注意的地方在代码中已经注释!

1 importrandom2 times = 3

3 secret = random.randint(1,10)4 print('------------------我爱鱼C工作室------------------')5 guess =06 print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")7 while (guess != secret) and (times >0):8 temp =input()9 while nottemp.isdigit():10 temp = input("抱歉,您的输入有误,请输入一个整数:")11 guess =int(temp)12 times = times - 1 #用户每输入一次,可用机会就-1

13 if guess ==secret:14 print("我草,你是小甲鱼心里的蛔虫吗?!")15 print("哼,猜中了也没有奖励!")16 else:17 if guess >secret:18 print("哥,大了大了~~~")19 else:20 print("嘿,小了,小了~~~")21 if times >0:22 print("再试一次吧:", end=" ")23 else:24 print("机会用光咯T_T")25 print("游戏结束,不玩啦^_^")

1.写一个程序,判断给定年份是否为闰年。

1 temp = input('请输入一个年份:')2 while nottemp.isdigit():3 temp = input("抱歉,您的输入有误,请输入一个整数:")4

5 year =int(temp)6 if year/400 == int(year/400):7 print(temp + '是闰年!')8 else:9 if (year/4 == int(year/4)) and (year/100 != int(year/100)):10 print(temp + '是闰年!')11 else:12 print(temp + '不是闰年!')

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值