第6课.数据类型及其转换

浅谈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

 

改进之后的小游戏

 

猜你喜欢

转载自blog.csdn.net/qq_41917908/article/details/84000229