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+'是平年')
  • 相关阅读:
    topcoder srm 445 div1
    topcoder srm 440 div1
    topcoder srm 435 div1
    topcoder srm 430 div1
    topcoder srm 400 div1
    topcoder srm 380 div1
    topcoder srm 370 div1
    topcoder srm 425 div1
    WKWebView强大的新特性
    Runtime那些事
  • 原文地址:https://www.cnblogs.com/scios/p/8027073.html
Copyright © 2011-2022 走看看