0. 在 Python 中的数据类型详解

http://www.cnblogs.com/scios/p/8026576.html

1. 为什么布尔类型(bool)的 True 和 False 分别用 1 和 0 来代替吗?

计算机只认识二进制数,所以所有的编程语言最终都会转换成简单的二进制序列给CPU按照一定的规则解析。 由于二进制只有两个数:0 和 1,因此用 0 和 1 来表示False和True再适合不过了,因为不用浪费资源在转换的过程上!

2. 使用int()将小数转换为整数,结果是向上取整还是向下取整呢?

小数取整会采用比较暴力的截断方式,即向下取整。(注:5.5向上取整为6,向下取整为5)

3. 我们人类思维是习惯于“四舍五入”法,你有什么办法使得int()按照“四舍五入”的方式取整吗?

int() 固然没那么“聪明”,但机器是死的,人是活的!

5.4 “四舍五入”结果为:5,int(5.4+0.5) == 5

5.6 “四舍五入”结果为:6,int(5.6+0.5) == 6

大家看明白了吗?

4. 获取一个变量的类型,可以使用 type()和isinstance(),你更倾向于使用哪个?

type()与isinstance()的区别

共同点:两者都可以判断对象类型

不同点:对于一个 class 类的子类对象类型判断,type就不行了,而 isinstance 可以。

例如:

class A:
pass
class B(A):
pass isinstance(A(), A) # returns True
type(A()) == A # returns True isinstance(B(), A) # returns True
type(B()) == A # returns False

综上,推荐使用 isinstance 判断对象类型。

5. Python3 可以给变量命名中文名,知道为什么吗?

Pyhton3 源码文件默认使用utf-8编码(支持中文),这就使得以下代码是合法的:

我和你 = '我爱你'
print(我和你)
6. 针对第三节课中的猜数字游戏,再次改进:当用户输入错误类型的时候,及时提醒用户重新输入,防止程序崩溃。
import random
times = 3
secret = random.randint(1,10)
print('------------------游戏开始------------------')
guess = 0
print("不妨猜一下我现在心里想的是哪个数字:", end=" ")
while (guess != secret) and (times > 0):
temp = input()
while not temp.isdigit():
temp = input("抱歉,您的输入有误,请输入一个整数:")
guess = int(temp)
if guess == secret:
print("你是俺心里的蛔虫吗?!")
print("哼,猜中了也没有奖励!")
break
else:
if guess > secret:
print("哥,大了大了~~~")
else:
print("嘿,小了,小了~~~")
times = times - 1 # 用户每输入一次,可用机会就-1
if times > 0:
print("再试一次吧:", end=" ")
else:
print("机会用光咯T_T")
print("游戏结束,不玩啦^_^")
7. 写一个程序,判断给定年份是否为闰年。

闰年应能被4整除(如2004年是闰年,而2001年不是闰年), 但不是所有被4整除的年份都是闰年。在能被100整除的年份中, 又同时能被400整除的年份才是闰年(如2000年是闰年), 能被100整除而不能被400整除的年份(如1800、1900、2100)不是闰年。 这是国际公认的规则。

temp=input('输入需要判断的年份:')
while not temp.isdigit():
print("您的输入有误,请输入一个数字!")
temp=input()
year=int(temp)
i=year%400
j=year%100
if i==0 and j==0:
print(temp+'是闰年!')
else:
print(temp+'是平年')

python学习笔记(四)-数据类型的更多相关文章

  1. Python学习笔记 - day3 - 数据类型及运算符

    Python的数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同 ...

  2. Python学习笔记---数 数据类型 运算

    python的四种数类型: 整数 int 浮点型 float 布尔 boolen 复数 complex >>> type(5)<class 'int'>>>& ...

  3. Python学习笔记3_数据类型

    Python数据类型:数字.字符串.列表.元祖.字典 一.数字类型:(整型.长整型.浮点型.复数型) 1.整型(int):表示范围-2,147,483,648到2,147,483,647 2.长整型( ...

  4. python学习笔记(四):生成器、内置函数、json

    一.生成器 生成器是什么?其实和list差不多,只不过list生成的时候数据已经在内存里面了,而生成器中生成的数据是当被调用时才生成呢,这样就节省了内存空间. 1. 列表生成式,在第二篇博客里面我写了 ...

  5. python学习笔记:数据类型——列表/数组(list)

    Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素.通过下标访问列表中的元素(又称索引.角标),下标从0开始计数.list定义,使用中括号[]. l ...

  6. python学习笔记:数据类型——数字、字符串、元祖、字典

    计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定义不同的数 ...

  7. python学习笔记之数据类型(二)

    上一篇博客,小波介绍了python的入门和简单流程控制,这次写python的数据类型和各种数据类型的内置方法. 一.数据类型是何方神圣? 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当 ...

  8. python学习笔记二 数据类型(基础篇)

    Python基础 对于Python,一切事物都是对象,对象基于类创建         不同类型的类可以创造出字符串,数字,列表这样的对象,比如"koka".24.['北京', '上 ...

  9. Python学习笔记四--字典与集合

    字典是Python中唯一的映射类型.所谓映射即指该数据类型包含哈希值(key)和与之对应的值(value)的序列.字典是可变类型.字典中的数据是无序排列的. 4.1.1字典的创建及赋值 dict1={ ...

  10. Python学习笔记(四)Python函数的参数

    Python的函数除了正常使用的必选参数外,还可以使用默认参数.可变参数和关键字参数. 默认参数 基本使用 默认参数就是可以给特定的参数设置一个默认值,调用函数时,有默认值得参数可以不进行赋值,如: ...

随机推荐

  1. python用户管理系统

    学Python这么久了,第一次写一个这么多的代码(我承认只有300多行,重复的代码挺多的,我承认我确实垃圾),但是也挺不容易的 自定义函数+装饰器,每一个模块写的一个函数 很多地方能用装饰器(逻辑跟不 ...

  2. 【hdu5419】Victor and Toys

    求求求 搞搞搞 搞法例如以下:考虑每一个数w[i]w[i]对答案的贡献,呃. . .首先答案一定是 ∑[...](m3) \sum [...]\over {m\choose 3}的形式,仅仅须要搞分子 ...

  3. Scala并发编程react、loop代码实战具体解释

    演示样例代码及凝视: //scala并发编程中的react和loop,共同特点: //通过线程存用的方式让性能有所提升. //Actor本身的运行,被actor子系统管理的时候,会有一个或者多个远程的 ...

  4. C语言可变长參数实现原理

    微博:http://weibo.com/u/2203007022             (1)      C语言可变參数 我们能够从C语言的printf得出可变參数的作用.printf函数的原型例如 ...

  5. mapreduce作业reduce被大量kill掉

    之前有一段时间.我们的hadoop2.4集群压力非常大.导致提交的job出现大量的reduce被kill掉.同样的job执行时间比在hadoop0.20.203上面长了非常多.这个问题事实上是redu ...

  6. Java加密与解密笔记(四) 高级应用

    术语列表: CA:证书颁发认证机构(Certificate Authority) PEM:隐私增强邮件(Privacy Enhanced Mail),是OpenSSL使用的一种密钥文件. PKI:公钥 ...

  7. CoreJava逻辑思维-顺时针打印自定义矩阵

    CoreJava逻辑思维-顺时针打印自定义矩阵 这两天回顾了一下刚入Java时的一些比较有意思的逻辑题,曾经也费劲脑汁的思考过的一些问题,比如百钱百鸡最简单的算法啦之类的,而今天博主想说的是一个循环打 ...

  8. 把项目放到码云上,通过git 进行项目管理

    1.在码云上新建一个项目 把使用 Readme文件初始化这个项目这个勾选去掉  项目生成后会看到 码云的git 简易的命令行入门教程: Git 全局设置: git config --global us ...

  9. 「mysql优化专题」90%程序员没听过的存储过程和存储函数教学(7)

    一.MYSQL储存过程简介(技术文): 储存过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时 ...

  10. redis设置开机启动

    方式一 1.设置redis.conf中daemonize为yes,确保守护进程开启,也就是在后台可以运行.(设置为yes后,启动时好像没有redis的启动界面,不知道为什么) #vi编辑redis安装 ...