浅谈Python数据类型(只说值得注意的地方,没有C基础的朋友可能会看不明白)
整形:Python3中长度不受限制(能算多少取决于计算机的虚拟内存),Python2要加L表示才能表示长整型
浮点型:python区分整形和浮点型就看有没有小数点
科学计数法:用e\E表示,输出都会以浮点型输出!!
布尔类型:布尔类型是特殊的整形,他们可以做基本运算
数据类型之间的类型转换(要记住是整数,浮点数,他们后面都带“数”,本质是数)
例:
注意:只能转换存放数字的字符串,如果a=’abcdefg’,这样转换就会报错
浮点型转为整形,小数点后面的全部都会被舍弃(不存在四舍五入)
其他类型转换为浮点型
任何数据类型都能转换为字符串类型(5e19表示5*10的正19次幂)
特殊情况:BIF当做变量被赋值
Python会用最新的身份来替换以前的身份
查看Python变量的数据类型
1.用type()这个内置函数就可以,具体用法看图
2.用isinstance函数,第一个参数是要比较的变量或者常量,第二个参数是比较的类型
返回值为bool类型
习题
0. 你知道为什么布尔类型(bool)的 True 和 False 分别用 1 和 0 来代替吗?
你可能听说过计算机是很“笨”的,究其根本是因为它只认识二进制数,所以所有的编程语言最终都会转换成简单的二进制序列给CPU按照一定的规则解析。
由于二进制只有两个数:0 和 1,因此用 0 和 1 来表示 False 和 True 再适合不过了,因为不用浪费资源在转换的过程上!
1. 取得一个变量的类型, type() 和 isinstance(),你更倾向于使用哪个?
建议使用 isinstance(),因为它的返回结果比较直接,另外 type() 其实并没有你想象的那么简单,后边会讲到。
2. Python3 可以给变量命名中文名,知道为什么吗?
Pyhton3 源码文件默认使用utf-8编码(支持中文),这就使得以下代码是合法的:
>>> 哈哈哈 = '我爱你'
>>> print(哈哈哈)
>>> 我爱你
学过这一课就可以给猜数字小游戏加一个用户输入判断,这样当用户输入错误类型的时候,及时提醒用户重新输入,防止程序崩溃。
如果你尝试过以下做法:
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 YOU'
>>> s.isupper()
>>> True
改进之后的小游戏