目录:

一、引言

二、数据类型

  >整型

  >浮点型

  >布尔类型

三、类型转换

四、获得关于类型的信息

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

***********

一、引言

***********

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

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

>>> "520"+'1314'
'5201314'
>>> 520+1314
1834

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

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

二、数据类型

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

1、整型

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

2、浮点型

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

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

>>> a=0.000000000000000000025
>>> a
2.5e-20
>>> 150000000000
150000000000
>>> 1.5e11
150000000000.0

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

3、布尔类型

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

>>> True + False
1
>>> True + True
2
>>> True/False
Traceback (most recent call last):File "<pyshell#17>", line 1, in <module>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 "<pyshell#21>", line 1, in <module>a = int("小甲鱼")
ValueError: invalid literal for 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")
<class 'str'>
>>> type(5.20)
<class 'float'>
>>> type(520)
<class 'int'>
>>> type(true)
Traceback (most recent call last):File "<pyshell#3>", line 1, in <module>type(true)
NameError: name 'true' is not defined
>>> type(True)
<class 'bool'>

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

>>> type(True)
<class 'bool'>
>>> 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)会返回<class 'int'>,如果type(temp)返回结果一致说明输入是整数。
while type(temp) != type(1):print("抱歉,输入不合法,", end='')temp = input("请输入一个整数:")

或者可能这样:

temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
# not操作符的作用是将布尔类型的结果翻转:即取反的意思,not True == Flase
while not isinstance(temp, int):print("抱歉,输入不合法,", end='')temp = input("请输入一个整数:")

以上方法的思路是正确的,不过似乎忽略了一点儿:就是input()的返回值始终是字符串,所以type(temp)永远是<class 'str'>!  
其实有蛮多的做法可以实现的,不过就目前我们学习过的内容来看,还不足够。
所以,在让大家动手完成这道题之前,小甲鱼介绍一点新东西给大家!

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 import random
 2 times = 3
 3 secret = random.randint(1,10)
 4 print('------------------我爱鱼C工作室------------------')
 5 guess = 0
 6 print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")
 7 while (guess != secret) and (times > 0):
 8     temp = input()
 9     while not temp.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 not temp.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 + ' 不是闰年!')

转载于:https://www.cnblogs.com/DC0307/p/9364467.html

课时5:闲聊之Python的数据类型相关推荐

  1. Python的零基础超详细讲解(第四天)-Python的数据类型

    Python 基本数据类型 Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型&q ...

  2. python的数据类型和变量

    python的数据类型和变量 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种 ...

  3. python核心数据类型_Python核心数据类型-列表

    Python核心数据类型-列表 关于列表的重要属性 列表是任意对象的有序集合,列表中可以包含任何种类的对象,数字 字符串 或者是其他列表 列表可以通过偏移来读取其中的元素,也可以通过分片读取列表中的某 ...

  4. python判断数据类型type_Python 判断数据类型有type和isinstance

    Python 判断数据类型有type和isinstance 基本区别在于: type():不会认为子类是父类 isinstance():会认为子类是父类类型 执行结果如下: 用isinstance判断 ...

  5. Python基础数据类型之set集合

    Python基础数据类型之set集合 一.set数据类型介绍 二.set集合演示 三.set集合中hash介绍 1.哈希定义 2.数据类型的hash和不可hash 3.set中hash示例 四.set ...

  6. Python基础数据类型之字符串(二)

    Python基础数据类型之字符串(二) 一.字符串的常规操作 二.字符串的大小写转换 1.首字母大写 2. 每个单词首字母大写 3.大写转化为小写 4.所有字母变成大写字母 二.验证码忽略大小写 三. ...

  7. Python基础数据类型之字符串(一)

    Python基础数据类型之字符串(一) 一.字符串格式化 1.字符串占位符 2.字符串格式化操作 二.f-string格式化 三.字符串的索引 四.字符串的切片 1.常规切片使用方法 3.步长的介绍 ...

  8. 好好学python·基本数据类型

    好好学Python的第一天 基本用法 注释 输出 变量 命名规范 变量的定义方式 python的数据类型 数据类型分类 字符串类型 数字类型 List列表类型 tuple 元组类型的定义 Dict字典 ...

  9. python元组类型_什么是python元组数据类型

    什么是python元组数据类型 发布时间:2020-08-25 11:46:29 来源:亿速云 阅读:68 这篇文章运用简单易懂的例子给大家介绍什么是python元组数据类型,代码非常详细,感兴趣的小 ...

最新文章

  1. Linux从mysql中读取数据_linux shell中读写操作mysql数据库
  2. rails小重构:将图片加入产品Model
  3. 死脑筋要活用(我只放贴图)01
  4. JS_Java_Oracle_MySQL截取字符串的函数
  5. 高中必背88个数学公式_高中数学:必修+选修全部知识点精华!附高考必背203个公式...
  6. jQuery源码分析 整体框架部分及部分常用方法
  7. You do not have permission to get URL ‘/’ from this server解决方案
  8. flash将文本呈现为html,flash中的静态文本、动态文本、输入文本
  9. excel教程自学网_超实用!良心推荐15个神级自学网站,内容全面质量又高
  10. windows下用linux系统,如何在Windows下使用Linux操作系统
  11. 计算机图形学 之 直线裁剪算法
  12. html 表格输出excel,html中导出excel表格
  13. 常见图片格式及其区别小结
  14. android脚本模拟器,android运行模拟器脚本(批处理)
  15. 西门子PLC学习笔记十-(计数器)
  16. 深入剖析 redis 事件驱动
  17. java 鉴黄_真香,我把百万鉴黄服务源码开源了
  18. 用python编阶层
  19. Linux修改网络支持巨型帧,RAC私网使用巨型帧 Solaris虚拟化环境修改MTU
  20. 小技巧——如何为foxmail中的文字编辑超链接

热门文章

  1. 如何规范你的Git commit?
  2. 和你谈谈数据分析报告
  3. 像素游戏制作大师MV新手教程(二):素材的载入
  4. 做过《战神》《死亡搁浅》的光子动捕专家,怎么理解动捕?
  5. 用行为树的方式思考:任务系统设计
  6. 《炉石传说》架构设计赏析(2):Scene管理
  7. 好书推荐——CSDN《新程序员》
  8. ubuntu 命令行命令历史记录存储在哪个文件夹
  9. 第一章 SDN介绍 (附件2)【SDNNFV基础、云计算】
  10. 学习MongoDB 十一: MongoDB聚合(Aggregation Pipeline基础篇上)(三)