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):passisinstance(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("哼,猜中了也沒有獎勵!")breakelse:if guess > secret:print("哥,大了大了~~~")else:print("嘿,小了,小了~~~")times = times - 1 # 用戶每輸入一次,可用機會就-1if 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学习笔记(四)-数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2. Dubbo和Zookeeper的关
- 下一篇: Python 学习笔记 -- 继承与多态