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. Android开发环境搭建(windows OS)之补充

    这几天搭建了个安卓开发环境,也想玩玩安卓开发.在查询CSDN,CNBLOG,视频网站之后终于把开发环境搭建起来了,发现所有的指导都比较离散,比如有些只说安装方法,有些只说下载方法.本文来个集大成,算是 ...

  2. 总结swift语言常见的20个问题和回答

    1.假设我是个刚入门的iOS开发人员,选swift学习呢,还是选objective-c学习,还是两个都学? 这个能够依据两种情况来决定:1.我想进入公司担任iOS开发的职位    2.我仅仅想做个独立 ...

  3. jQuery -&gt; 获取/设置/删除DOM元素的属性

    jQuery的属性操作很easy,以下以一个a元素来说明属性的获取/设置/删除操作 <body> <a>jquery.com</a> </body> 加 ...

  4. c#中cookies的存取操作

    在客户端创建一个username的cookies,其值为gjy,有效期为1天. 方法1: Response.Cookies["username"].Value="zxf& ...

  5. int 0x13中断的參数传递

    int 0x13中断向量所指向的中断服务程序实质上就是磁盘服务程序. 用途:将指定扇区的代码载入到内存的指定位置. 因此,在使用int 0x13中断时要将參数传递给服务程序: 比如:将指定扇区和载入的 ...

  6. Thread和Runnable、run和start的区别

    多线程可以通过两种方式来创建: 一.通过继承Thread类. 二.通过实现Runnable接口. 那么中两种方式到底有什么区别呢?那种方式更好些呢? 先看看几个简单的Demo: Demo1 publi ...

  7. 命令行修改weblogic用户名和密码

    语法为:java weblogic.security.utils.AdminAccount <NewAdminUserName> <NewAdminPassword>  dir ...

  8. linux安全加固

    1 . BIOS 你应该总是在系统启动的时候设置一个BIOS 密码和禁用从CD-ROM 和软盘引导,这将可以防止一些人未经允许访问你的系统和更改BIOS 设置 2 .sshd 服务 SSH 是一个协议 ...

  9. Hessian

    一.远程通讯协议的基本原理 网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络 IO 来实现,其中传输协议比较出名的有 http . tcp . udp 等等, http . ...

  10. (转)asp.net 高质量缩略图

    原文地址:http://www.cnblogs.com/Fooo/archive/2009/06/19/1506381.html using System.Drawing; ------------- ...