005 Python的数值类型

BIF    指的是内置函数,一般不作为变量命名。如 input,while,if,else,float,等等。
整型:整数。(python3.0版本把整型和长整型结合在一起,长度不受限制)
浮点型:小数点。如3.1415
python 区分整型和浮点型数值最直观的方式是看有无小数点。
e记法,科学计数法。 如
 >>> a =0.0000000000000000000000000000000000054
>>> a
5.4e-36
>>> 
 >>> 150000000000
150000000000
>>> 1.5e11#e表示10,后面的11表示10的11次方
150000000000.0
>>> 

 >>> 1.5e4
15000.0
>>> 
布尔类型(true/false)
true=1
false=0
是可以用于计算的

>>> True +True
2
>>> True + False
1
>>> False + False
0
>>> 
注意,True和False的首字母必须得大写。不然python不识别为布尔类型 
PS: 把布尔类型当成是1和0用来计算的这种做法是不妥的。仅作了解,实际应用中不能这样做。

整数与浮点数和字符串数值间的转换:
整数 int()       将一个字符串、浮点数转化为一个整数。

例如:

>>> a = '520'
>>> b = int(a)
>>> b
520

>>> 
 >>> b = int('飞鱼')#飞鱼 属于文本,不是数值,因此会报错。

Traceback (most recent call last):
  File "<pyshell#13>", line 1, in <module>
    b = int('飞鱼')
ValueError: invalid literal for int() with base 10: '飞鱼'
>>> 
 >>> a = 5.99
>>> c = int(a)
>>> c
5#注意,如果是浮点数转化为整数,python为了效率高会采取截断处理,直接把小数点后面的数字砍掉。
>>>

浮点数float()        将字符串或者整数转化为浮点数。
 如:

>>> a = '520'
>>> b = float(a)
>>> b
520.0

>>>

>>> a = 520
>>> b = float(a)
>>> b
520.0

>>>

字符串str()         将一个数值或者任何其他类型转化为字符串
如: 
 >>> a = 5.99

>>> b = str(a)
>>> b
'5.99'            #注意这里有引号,表示字符串
>>>

>>> c = str(5e19)       # 注意,这里的5e19是上面所提到的e记法,就是科学计算法,19是正19,因此转化为字符串的时候有个+号
>>> c
'5e+19'

>>>  
获得关于类型的信息
在上节课的作业中,如果我们输入的不是数字,会出现什么情况?如下图

直接报错崩溃。那么应该如何改进这个源代码?
获得关于类型的信息有两种函数:
type()
用法:

>>> a = '520'
>>> type(a)
<class 'str'>
>>> type(5.2)
<class 'float'>
>>> type(True)
<class 'bool'>
>>> type(5e19)
<class 'float'>
>>> type(52)
<class 'int'>

>>>

isinstance()        #python建议我们使用这个函数来确定数据类型。
如:

>>> isinstance (a,str)
True
>>> isinstance (a,int)
False
>>> isinstance (320,int)
True
>>> isinstance (320.25,float)
True
>>> isinstance (320.25,bool)
False
>>> 

拓展:

 
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
 

课后测试
0. 在 Python 中,int 表示整型,那你还记得 bool、float 和 str 分别表示什么吗? 
答:bool布尔类型,float浮点型,str字符串 
1. 你知道为什么布尔类型(bool)的 True 和 False 分别用 1 和 0 来代替吗?
2. 使用 int() 将小数转换为整数,结果是向上取整还是向下取整呢?
答:直接去掉小数点后面的数字向下取整。
3. 我们人类思维是习惯于“四舍五入”法,你有什么办法使得 int() 按照“四舍五入”的方式取整吗?
int() 固然没那么“聪明”,但机器是死的,鱼油是活的!
5.4 “四舍五入”结果为:5,int(5.4+0.5) == 5
5.6 “四舍五入”结果为:6,int(5.6+0.5) == 6
4. 取得一个变量的类型,视频中介绍可以使用 type() 和 isinstance(),你更倾向于使用哪个?
答:无所谓,但既然python帮助文档建议我们使用isinstance(),那就这个吧。
5. Python3 可以给变量命名中文名,知道为什么吗?  
答:难道是无所不能的兼容性?反正我是不会用中文命名的。
Pyhton3 源码文件默认使用utf-8编码(支持中文),这就使得以下代码是合法的: 
>>> 小甲鱼 = '我爱你'  
>>> print(小甲鱼)
>>> 我爱你
6. 【该题针对零基础的鱼油】你觉得这个系列教学有难度吗?
答:10分满分的话,难度系数大概在6左右吧。可以接受。但得好好消化。

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

 
import random 
secret = random.randint (1,10)
print('猜字谜')
temp = input ('猜猜我心里想的是什么数字?')
guess = 0
while guess != secret: 
    while not temp.isdigit():
        temp = input('输入错误,请再次输入:')
    temp = input ('错了错了错了!!')
    guess = int (temp)
    if guess == secret:
        print('wtf,你是我心里的蛔虫吗?')
    else:
        if guess > secret:
            print('大了大了!!')
        else:
            print('小了小了!!')
print('游戏结束,又被坑了吧!!')
 注意红色部分,guess = 0表示必须先赋值给guess这个变量,while not temp.isdigit():表示 当temp.isdigit()返回值为False的时候(not temp.isdigit()表示为not True)
改进部分:

 
import random
times = 3
secret = random.randint (1,10)#随机函数
print('猜字谜')
#先给出guess赋值(赋一个绝对不等于secret的值)
guess = 0
#print()默认是打印完字符串会自动添加一个换行符,end=" "参数告诉print()用空格代替换行
print ('猜猜我心里想的是什么数字?', end = ' ')
while (guess != secret) and (times > 0):
    temp = input ()
    while not temp.isdigit():
        temp = input('输入错误,请再次输入:')
    guess = int (temp)
    times = times - 1#每输入一次,可用机会就-1
    if guess == secret:
        print('wtf,你是我心里的蛔虫吗?')
    else:
        if guess > secret:
            print('大了大了!!')
        else:
            print('小了小了!!')
        if times > 0:
            print ('再试一次吧:', end = ' ')
        else:
            print('机会用完了,退下吧。')
print('游戏结束,又被坑了吧!!')
 
 ps:该部分需重点消化!!!

1. 写一个程序,判断给定年份是否为闰年。(注意:请使用已学过的 BIF 进行灵活运用)
这样定义闰年的:能被4整除但不能被100整除,或者能被400整除都是闰年。

 
a = input('请输入一个年份:')
while not a.isdigit():#判断temp.isdigit()是否为真
    a = input('这是年份吗?再输入一次!')
year = int(a)#给变量year赋值:整型
if year/400 == int(year/400):
    print(a + '是闰年!')
else:
    print(a +'不是闰年!')
加入输入次数限制,并在说出闰年的同时终止循环:

i = 5
while i > 0:
    a = input('请输入一个闰年年份:')
    while not a.isdigit():#判断temp.isdigit()是否为真
        a = input('这是年份吗?再输入一次!')
    year = int(a)#给变量year赋值:整型
    if year/400 == int(year/400):#闰年计算方法,能够被400或者4整除
        print('恭喜你答对了'+ a + '是闰年!')
        print('good job')
        break#当条件成熟时终止循环
    else:
        print(a +'不是闰年!')
        i = i - 1
        if i > 0:
            print('try again')
        else:
            print('no chance,bye')
运行效果如下:

>>> 
请输入一个闰年年份:65
65不是闰年!
try again
请输入一个闰年年份:65
65不是闰年!
try again
请输入一个闰年年份:800
恭喜你答对了800是闰年!
good job
>>> 
 思路如下: 
i = 5
while i > 0:#添加循环
    a = input('请输入一个闰年年份:')
    while not a.isdigit():#判断temp.isdigit()是否为真
        a = input('这是年份吗?再输入一次!')
    year = int(a)#给变量year赋值:整型
    if year/400 == int(year/400):#闰年计算方法,能够被400或者4整除
        print('恭喜你答对了'+ a + '是闰年!')
        print('good job')
        break#当条件成熟时终止循环
    else:
        print(a +'不是闰年!')
        i = i - 1
        if i > 0:
            print('try again')
        else:
            print('no chance,bye')
 在代码中红字部分是添加循环部分,这点参考了上节课的内容,尝试了很多遍,后来灵机一动,我们要循环的语句是年份的判断

,那么我直接把年份判断的代码放到while框架里,结构如下:
while循环
年份判断
    真:是闰年
    假:不是闰年
循环结束
在循环语句的编写方面,由于我是0基础,只能参考上节课的作业和内容,当运行成功时那种成就感是油然而生!!其中看到红字部分的break这个bif我是通过百度查找出来的。目前教程还没讲到。 

课时小结:

1、python的数值类型及其转换:整型(整数)int();浮点型(小数点)float();布尔型(bool)True or False;字串符str()
2、 while循环语句的加深理解。
3、 .isdigit()的含义

005 Python的数值类型的更多相关文章

  1. python基础--数值类型和序列类型

    Python中数值类型:int(整数),float(浮点数),True/False(布尔值,首字母必须大写) int:1    #任意整数 float:2.3   #小数 python赋值: a = ...

  2. Python:数值类型

    数值类型的组成 数值类型可以直接使用的有:整数.浮点数.复数 Python3的整型,可以自动调整大小,当做long使用 整数 int 整数的进制表示 表示形式: 二进制:0b... 八进制:0o... ...

  3. Python数据类型---数值类型

    一.整数(Integer)简称Int,又称整型,由正整数.负整数.0构成,不包括小数,分数. a,b=1,2 #一种赋值方法,此时a=1,b=2 print(a+b) #加法 3 print(a-b) ...

  4. Python从零开始——数值类型

  5. Python数值类型

    数值类型 python的数值类型包括常规的类型:整数(没有小数部分的数字).浮点数(通俗地说,就是有小数部分的数字)以及其它数值类型(复数.分数.有理数.无理数.集合.进制数等).除了十进制整数,还有 ...

  6. python基础之数据类型和数值类型

    python3的六大数据类型: 1.tuple元组 2.number数字 3.string字符串 4.set集合 5.list列表 6.dictionary字典 其中不可变数据3个:tuple.num ...

  7. Python黑帽编程2.2 数值类型

    Python黑帽编程2.2  数值类型 数值类型,说白了就是处理各种各样的数字,Python中的数值类型包括整型.长整型.布尔.双精度浮点.十进制浮点和复数,这些类型在很多方面与传统的C类型有很大的区 ...

  8. Python 四种数值类型(int,long,float,complex)区别及转换

    Python支持四种不同的数值类型,包括int(整数)long(长整数)float(浮点实际值)complex (复数), 数字数据类型存储数值.他们是不可改变的数据类型,这意味着改变数字数据类型的结 ...

  9. python 四种数值类型(int,long,float,complex)介绍

    Python支持四种不同的数值类型,包括int(整数)long(长整数)float(浮点实际值)complex (复数),本文章向码农介绍python 四种数值类型,需要的朋友可以参考一下. 数字数据 ...

随机推荐

  1. 读取xml格式文件

    $v = [xml]get-content d:\vmconfig.xml $v.Domain.Computer.Name =========================== $v.GetElem ...

  2. android FakeWindow的小应用大用途

    android FakeWindow的小应用大用途 在windowmanager里面有一个FakeWindow,细致一看也就是一个透明的应用覆盖到屏幕的最前端,这样有什么优点呢?首先我们还是从应用的需 ...

  3. UDID

    大多数应用都会用到苹果设备的UDID号,UDID通常有以下两种用途: 1)用于一些统计与分析目的:[第三方统计工具如友盟,广告商如ADMOB等] 2)将UDID作为用户ID来唯一识别用户,省去用户名, ...

  4. UNIX下的环境变量--转载

    所有环境变量名都是大写小写,系统会当作shell script自定义变量,而不会当作环境变量 [root@mac-home macg]# echo $path                      ...

  5. google DNS

    DNS 8.8.8.8 然后 C:\Windows\System32\drivers\etc\hosts 108.111.1.1  www.s.com

  6. mac 终端中添加tree命令显示文件目录结构

      在Ubuntu下,通过 sudo apt-get install tree 可以使用tree命令,显示文件目录列表,如图所示: 在mac OS X系统下怎么使用呢? 在终端输入: cd $home ...

  7. HTML左边和右边是固定的宽度但是中间是自动的布局方式

    对于这个布局方式我们可以是用绝对定位的方式来实现这个效果 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...

  8. Java json设置时间格式,Jackson设置时间格式,json设置单引号

    Java json设置时间格式,Jackson设置时间格式,json设置单引号 >>>>>>>>>>>>>>> ...

  9. angular下H5上传图片(可多张上传)

    最近做的项目中用到了angular下上传图片功能,在做的过程中遇到了许多问题,最终都得以解决 angular上传时和普通上传时过程差不多,只不过是要不一些东西转化为angular的东西. 1.ng-f ...

  10. .net System.TypeInitializationException 类型初始值设定项引发异常

    错误原因:静态字段连接数据库内容错误(应为Integrated Security=True) 果然解决! 来自:http://blog.csdn.net/zhang1597116/article/de ...