课时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 >>> 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 可以给变量命名中文名,知道为什么吗?
动动手:
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的数据类型相关推荐
- Python的零基础超详细讲解(第四天)-Python的数据类型
Python 基本数据类型 Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型&q ...
- python的数据类型和变量
python的数据类型和变量 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种 ...
- python核心数据类型_Python核心数据类型-列表
Python核心数据类型-列表 关于列表的重要属性 列表是任意对象的有序集合,列表中可以包含任何种类的对象,数字 字符串 或者是其他列表 列表可以通过偏移来读取其中的元素,也可以通过分片读取列表中的某 ...
- python判断数据类型type_Python 判断数据类型有type和isinstance
Python 判断数据类型有type和isinstance 基本区别在于: type():不会认为子类是父类 isinstance():会认为子类是父类类型 执行结果如下: 用isinstance判断 ...
- Python基础数据类型之set集合
Python基础数据类型之set集合 一.set数据类型介绍 二.set集合演示 三.set集合中hash介绍 1.哈希定义 2.数据类型的hash和不可hash 3.set中hash示例 四.set ...
- Python基础数据类型之字符串(二)
Python基础数据类型之字符串(二) 一.字符串的常规操作 二.字符串的大小写转换 1.首字母大写 2. 每个单词首字母大写 3.大写转化为小写 4.所有字母变成大写字母 二.验证码忽略大小写 三. ...
- Python基础数据类型之字符串(一)
Python基础数据类型之字符串(一) 一.字符串格式化 1.字符串占位符 2.字符串格式化操作 二.f-string格式化 三.字符串的索引 四.字符串的切片 1.常规切片使用方法 3.步长的介绍 ...
- 好好学python·基本数据类型
好好学Python的第一天 基本用法 注释 输出 变量 命名规范 变量的定义方式 python的数据类型 数据类型分类 字符串类型 数字类型 List列表类型 tuple 元组类型的定义 Dict字典 ...
- python元组类型_什么是python元组数据类型
什么是python元组数据类型 发布时间:2020-08-25 11:46:29 来源:亿速云 阅读:68 这篇文章运用简单易懂的例子给大家介绍什么是python元组数据类型,代码非常详细,感兴趣的小 ...
最新文章
- Linux从mysql中读取数据_linux shell中读写操作mysql数据库
- rails小重构:将图片加入产品Model
- 死脑筋要活用(我只放贴图)01
- JS_Java_Oracle_MySQL截取字符串的函数
- 高中必背88个数学公式_高中数学:必修+选修全部知识点精华!附高考必背203个公式...
- jQuery源码分析 整体框架部分及部分常用方法
- You do not have permission to get URL ‘/’ from this server解决方案
- flash将文本呈现为html,flash中的静态文本、动态文本、输入文本
- excel教程自学网_超实用!良心推荐15个神级自学网站,内容全面质量又高
- windows下用linux系统,如何在Windows下使用Linux操作系统
- 计算机图形学 之 直线裁剪算法
- html 表格输出excel,html中导出excel表格
- 常见图片格式及其区别小结
- android脚本模拟器,android运行模拟器脚本(批处理)
- 西门子PLC学习笔记十-(计数器)
- 深入剖析 redis 事件驱动
- java 鉴黄_真香,我把百万鉴黄服务源码开源了
- 用python编阶层
- Linux修改网络支持巨型帧,RAC私网使用巨型帧 Solaris虚拟化环境修改MTU
- 小技巧——如何为foxmail中的文字编辑超链接