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. PS Studio打包程序 .net版本依赖

    PS Studio打包好的程序(Win7下),拿到Windows Server 2003(PS2.0),如果提示”.Net framework初始化错误“,则需要安装 .net 3.0 如果是PS3. ...

  2. 机器人api(图灵机器人)

    图灵机器人,是基于自然语言解析的智能机器人,已经免费开放了机器人api接口,有需求的同学能够去试试. 图灵机器人官网:http://www.tuling123.com 图灵机器人体验:http://w ...

  3. cocos2d-x增加控制台程序代码

    #include "main.h" #include "AppDelegate.h" #include "CCEGLView.h" USIN ...

  4. Android开发之玩转FlexboxLayout布局

    在这之前,我曾认真的研究过鸿洋大神的Android 自定义ViewGroup 实战篇 -> 实现FlowLayout,按照大神的思路写出了一个流式布局,所有的东西都是难者不会会者不难,当自己能自 ...

  5. Android(java)学习笔记164:Relativelayout相对布局案例

    我们看看案例代码,自己心领神会: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout ...

  6. android夸项目调用

    将工程A做成android library project. 设置工程A,右键->Properties->Android,将Is library项选中,然后Apply.设置工程B,右键-& ...

  7. IEnumerable 和 IQueryable

    共有两组 LINQ 标准查询运算符,一组在类型为 IEnumerable<T> 的对象上运行,另一组在类型为 IQueryable<T> 的对象上运行.构成每组运算符的方法分别 ...

  8. Java并发——使用Condition线程间通信

    线程间通信 线程之间除了同步互斥,还要考虑通信.在Java5之前我们的通信方式为:wait 和 notify.Condition的优势是支持多路等待,即可以定义多个Condition,每个condit ...

  9. 利用javascript实现文本的自动输出

    主要利用了setTimeout(),递归和String.substring(); 做出的效果就像是有一个打字员在打字. <!doctype html> <html lang=&quo ...

  10. Unity3D 之UGUI 滑动条(Slider)

    这里来讲解下UGUI 滑动条(Slider)的用法 控件下面有三个游戏对象 Background -->背景 Fill Area --> 前景区域 Handle Slide Area -- ...