1. 程式人生 > >python學習筆記(四)-數據類型

python學習筆記(四)-數據類型

rand 兩個 urn 浪費 line 平年 randint .com .cn

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學習筆記(四)-數據類型