zoukankan      html  css  js  c++  java
  • python学习笔记(四)-数据类型

    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 subprocess方法
    Python hashlib、hmac加密模块
    mysql binlog详解
    Nginx 关键字详解
    账号笔记
    Python configparser模块
    Python yaml处理
    Linux && 与 ||
    spring boot 学习(十一)使用@Async实现异步调用
    spring boot 学习(十)SpringBoot配置发送Email
  • 原文地址:https://www.cnblogs.com/scios/p/8027073.html
Copyright © 2011-2022 走看看