python核心编程课后习题解答第二章
2–1. 變量, print 和字符串格式化運算符。啟動交互式解釋器。給一些變量賦值(字
符串,數值等等)并通過輸入變量名顯示它們的值。再用 print 語句做同樣的事。這二者有
何區別? 也嘗試著使用字符串格式運算符 %, 多做幾次, 慢慢熟悉它。
忽略
2–2. P 程序輸出, 閱讀下面的Python 腳本:
#!/usr/bin/env python
1 + 2 * 4
(a) 你認為這段腳本是用來做什么的?
(b) 你認為這段腳本會輸出什么?
(c) 輸入以上代碼,并保存為腳本,然后運行它。它所做的與你的預期一樣嗎?為什么一
樣/不一樣?
(d) 這段代碼單獨執行和在交互解釋器中執行有何不同?試一下,然后寫出結果
(e) 如何改進這個腳本, 以便它能和你想像的一樣工作?
答(b)(c):什么都不會輸出,也不會報錯。(d)解析器中執行會輸出結果
(e)
#!/usr/bin/env python
print 1 + 2 * 4
2–3. 數值和運算符
啟動交互解釋器,使用Python對兩個數值(任意類型)進行加、減、乘、除運算。然后使
用取余運算符來得到兩個數相除的余數, 最后使用乘方運算符求A 數的B 次方。
忽略
2–4. 使用raw_input()函數得到用戶輸入
(a) 創建一段腳本使用 raw_input() 內建函數從用戶輸入得到一個字符串,然后顯示這個
用戶剛剛鍵入的字符串。
(b) 添加一段類似的代碼,不過這次輸入的是數值。將輸入數據轉換為一個數值對象,(使
用int()或其它數值轉換函數) 并將這個值顯示給用戶看。(注意,如果你用的是早于1.5的版
本,你需要使用string.ato*() 函數執行這種轉換)
? 1 #!/usr/bin/env python
? 2 m=raw_input('please input a string(0~999):')
? 3 print 'The string becomed a number:',int(m)
運行結果:
******@*****:~/python$ python myinfo.py
please input a string(0~999):444
The string becomed a number: 444
2–5. 循環和數字
分別使用while 和for 創建一個循環:
(a) 寫一個while 循環,輸出整數從0 到10。(要確保是從0 到10, 而不是從0 到9 或
從1 到10)
(b) 做同 (a) 一樣的事, 不過這次使用 range() 內建函數。
答(a):
>>> for i in [0,1,2,3,4,5,6,7,8,9,10]:
...???? print i
...
0
1
2
3
4
5
6
7
8
9
10
答(b):
>>> for i in range(0,11):
...???? print i
...
0
1
2
3
4
5
6
7
8
9
10
2–6. 條件判斷 判斷一個數是正數,還是負數, 或者等于0. 開始先用固定的數值,然
后修改你的代碼支持用戶輸入數值再進行判斷。
? 1 #!/usr/bin/env python
? 2 n=raw_input('please input a number:')
? 3 try:
? 4???????? m=int(n)
? 5 except ValueError:
? 6???????? print 'wrong!! not a number!'
? 7???????? exit()
? 8 if m>0:
? 9???????? print 'your number is positive number'
?10 elif m<0:
?11???????? print 'your number is negative number'
?12 elif m==0:
?13???????? print 'your number is egg!'
2–7.循環和字串 從用戶那里接受一個字符串輸入,然后逐字符顯示該字符串。先用while 循
環實現,然后再用 for 循環實現。
2–1. 變量, print 和字符串格式化運算符。啟動交互式解釋器。給一些變量賦值(字
符串,數值等等)并通過輸入變量名顯示它們的值。再用 print 語句做同樣的事。這二者有
何區別? 也嘗試著使用字符串格式運算符 %, 多做幾次, 慢慢熟悉它。
忽略
2–2. P 程序輸出, 閱讀下面的Python 腳本:
#!/usr/bin/env python
1 + 2 * 4
(a) 你認為這段腳本是用來做什么的?
(b) 你認為這段腳本會輸出什么?
(c) 輸入以上代碼,并保存為腳本,然后運行它。它所做的與你的預期一樣嗎?為什么一
樣/不一樣?
(d) 這段代碼單獨執行和在交互解釋器中執行有何不同?試一下,然后寫出結果
(e) 如何改進這個腳本, 以便它能和你想像的一樣工作?
答(b)(c):什么都不會輸出,也不會報錯。(d)解析器中執行會輸出結果
(e)
#!/usr/bin/env python
print 1 + 2 * 4
2–3. 數值和運算符
啟動交互解釋器,使用Python對兩個數值(任意類型)進行加、減、乘、除運算。然后使
用取余運算符來得到兩個數相除的余數, 最后使用乘方運算符求A 數的B 次方。
忽略
2–4. 使用raw_input()函數得到用戶輸入
(a) 創建一段腳本使用 raw_input() 內建函數從用戶輸入得到一個字符串,然后顯示這個
用戶剛剛鍵入的字符串。
(b) 添加一段類似的代碼,不過這次輸入的是數值。將輸入數據轉換為一個數值對象,(使
用int()或其它數值轉換函數) 并將這個值顯示給用戶看。(注意,如果你用的是早于1.5的版
本,你需要使用string.ato*() 函數執行這種轉換)
? 1 #!/usr/bin/env python
? 2 m=raw_input('please input a string(0~999):')
? 3 print 'The string becomed a number:',int(m)
運行結果:
******@*****:~/python$ python myinfo.py
please input a string(0~999):444
The string becomed a number: 444
2–5. 循環和數字
分別使用while 和for 創建一個循環:
(a) 寫一個while 循環,輸出整數從0 到10。(要確保是從0 到10, 而不是從0 到9 或
從1 到10)
(b) 做同 (a) 一樣的事, 不過這次使用 range() 內建函數。
答(a):
>>> for i in [0,1,2,3,4,5,6,7,8,9,10]:
...???? print i
...
0
1
2
3
4
5
6
7
8
9
10
答(b):
>>> for i in range(0,11):
...???? print i
...
0
1
2
3
4
5
6
7
8
9
10
2–6. 條件判斷 判斷一個數是正數,還是負數, 或者等于0. 開始先用固定的數值,然
后修改你的代碼支持用戶輸入數值再進行判斷。
? 1 #!/usr/bin/env python
? 2 n=raw_input('please input a number:')
? 3 try:
? 4???????? m=int(n)
? 5 except ValueError:
? 6???????? print 'wrong!! not a number!'
? 7???????? exit()
? 8 if m>0:
? 9???????? print 'your number is positive number'
?10 elif m<0:
?11???????? print 'your number is negative number'
?12 elif m==0:
?13???????? print 'your number is egg!'
2–7.循環和字串 從用戶那里接受一個字符串輸入,然后逐字符顯示該字符串。先用while 循
環實現,然后再用 for 循環實現。
2–1. 變量, print 和字符串格式化運算符。啟動交互式解釋器。給一些變量賦值(字
符串,數值等等)并通過輸入變量名顯示它們的值。再用 print 語句做同樣的事。這二者有
何區別? 也嘗試著使用字符串格式運算符 %, 多做幾次, 慢慢熟悉它。
忽略
2–2. P 程序輸出, 閱讀下面的Python 腳本:
#!/usr/bin/env python
1 + 2 * 4
(a) 你認為這段腳本是用來做什么的?
(b) 你認為這段腳本會輸出什么?
(c) 輸入以上代碼,并保存為腳本,然后運行它。它所做的與你的預期一樣嗎?為什么一
樣/不一樣?
(d) 這段代碼單獨執行和在交互解釋器中執行有何不同?試一下,然后寫出結果
(e) 如何改進這個腳本, 以便它能和你想像的一樣工作?
答(b)(c):什么都不會輸出,也不會報錯。(d)解析器中執行會輸出結果
(e)
#!/usr/bin/env python
print 1 + 2 * 4
2–3. 數值和運算符
啟動交互解釋器,使用Python對兩個數值(任意類型)進行加、減、乘、除運算。然后使
用取余運算符來得到兩個數相除的余數, 最后使用乘方運算符求A 數的B 次方。
忽略
2–4. 使用raw_input()函數得到用戶輸入
(a) 創建一段腳本使用 raw_input() 內建函數從用戶輸入得到一個字符串,然后顯示這個
用戶剛剛鍵入的字符串。
(b) 添加一段類似的代碼,不過這次輸入的是數值。將輸入數據轉換為一個數值對象,(使
用int()或其它數值轉換函數) 并將這個值顯示給用戶看。(注意,如果你用的是早于1.5的版
本,你需要使用string.ato*() 函數執行這種轉換)
? 1 #!/usr/bin/env python
? 2 m=raw_input('please input a string(0~999):')
? 3 print 'The string becomed a number:',int(m)
運行結果:
******@*****:~/python$ python myinfo.py
please input a string(0~999):444
The string becomed a number: 444
2–5. 循環和數字
分別使用while 和for 創建一個循環:
(a) 寫一個while 循環,輸出整數從0 到10。(要確保是從0 到10, 而不是從0 到9 或
從1 到10)
(b) 做同 (a) 一樣的事, 不過這次使用 range() 內建函數。
答(a):
>>> for i in [0,1,2,3,4,5,6,7,8,9,10]:
...???? print i
...
0
1
2
3
4
5
6
7
8
9
10
答(b):
>>> for i in range(0,11):
...???? print i
...
0
1
2
3
4
5
6
7
8
9
10
2–6. 條件判斷 判斷一個數是正數,還是負數, 或者等于0. 開始先用固定的數值,然
后修改你的代碼支持用戶輸入數值再進行判斷。
? 1 #!/usr/bin/env python
? 2 n=raw_input('please input a number:')
? 3 try:
? 4???????? m=int(n)
? 5 except ValueError:
? 6???????? print 'wrong!! not a number!'
? 7???????? exit()
? 8 if m>0:
? 9???????? print 'your number is positive number'
?10 elif m<0:
?11???????? print 'your number is negative number'
?12 elif m==0:
?13???????? print 'your number is egg!'
2–7.循環和字串 從用戶那里接受一個字符串輸入,然后逐字符顯示該字符串。先用while 循
環實現,然后再用 for 循環實現。
2–1. 變量, print 和字符串格式化運算符。啟動交互式解釋器。給一些變量賦值(字
符串,數值等等)并通過輸入變量名顯示它們的值。再用 print 語句做同樣的事。這二者有
何區別? 也嘗試著使用字符串格式運算符 %, 多做幾次, 慢慢熟悉它。
忽略
2–2. P 程序輸出, 閱讀下面的Python 腳本:
#!/usr/bin/env python
1 + 2 * 4
(a) 你認為這段腳本是用來做什么的?
(b) 你認為這段腳本會輸出什么?
(c) 輸入以上代碼,并保存為腳本,然后運行它。它所做的與你的預期一樣嗎?為什么一
樣/不一樣?
(d) 這段代碼單獨執行和在交互解釋器中執行有何不同?試一下,然后寫出結果
(e) 如何改進這個腳本, 以便它能和你想像的一樣工作?
答(b)(c):什么都不會輸出,也不會報錯。(d)解析器中執行會輸出結果
(e)
#!/usr/bin/env python
print 1 + 2 * 4
2–3. 數值和運算符
啟動交互解釋器,使用Python對兩個數值(任意類型)進行加、減、乘、除運算。然后使
用取余運算符來得到兩個數相除的余數, 最后使用乘方運算符求A 數的B 次方。
忽略
2–4. 使用raw_input()函數得到用戶輸入
(a) 創建一段腳本使用 raw_input() 內建函數從用戶輸入得到一個字符串,然后顯示這個
用戶剛剛鍵入的字符串。
(b) 添加一段類似的代碼,不過這次輸入的是數值。將輸入數據轉換為一個數值對象,(使
用int()或其它數值轉換函數) 并將這個值顯示給用戶看。(注意,如果你用的是早于1.5的版
本,你需要使用string.ato*() 函數執行這種轉換)
? 1 #!/usr/bin/env python
? 2 m=raw_input('please input a string(0~999):')
? 3 print 'The string becomed a number:',int(m)
運行結果:
******@*****:~/python$ python myinfo.py
please input a string(0~999):444
The string becomed a number: 444
2–5. 循環和數字
分別使用while 和for 創建一個循環:
(a) 寫一個while 循環,輸出整數從0 到10。(要確保是從0 到10, 而不是從0 到9 或
從1 到10)
(b) 做同 (a) 一樣的事, 不過這次使用 range() 內建函數。
答(a):
>>> for i in [0,1,2,3,4,5,6,7,8,9,10]:
...???? print i
...
0
1
2
3
4
5
6
7
8
9
10
答(b):
>>> for i in range(0,11):
...???? print i
...
0
1
2
3
4
5
6
7
8
9
10
2–6. 條件判斷 判斷一個數是正數,還是負數, 或者等于0. 開始先用固定的數值,然
后修改你的代碼支持用戶輸入數值再進行判斷。
? 1 #!/usr/bin/env python
? 2 n=raw_input('please input a number:')
? 3 try:
? 4???????? m=int(n)
? 5 except ValueError:
? 6???????? print 'wrong!! not a number!'
? 7???????? exit()
? 8 if m>0:
? 9???????? print 'your number is positive number'
?10 elif m<0:
?11???????? print 'your number is negative number'
?12 elif m==0:
?13???????? print 'your number is egg!'
2–7.循環和字串 從用戶那里接受一個字符串輸入,然后逐字符顯示該字符串。先用while 循
環實現,然后再用 for 循環實現。
2–1. 變量, print 和字符串格式化運算符。啟動交互式解釋器。給一些變量賦值(字
符串,數值等等)并通過輸入變量名顯示它們的值。再用 print 語句做同樣的事。這二者有
何區別? 也嘗試著使用字符串格式運算符 %, 多做幾次, 慢慢熟悉它。
忽略
2–2. P 程序輸出, 閱讀下面的Python 腳本:
#!/usr/bin/env python
1 + 2 * 4
(a) 你認為這段腳本是用來做什么的?
(b) 你認為這段腳本會輸出什么?
(c) 輸入以上代碼,并保存為腳本,然后運行它。它所做的與你的預期一樣嗎?為什么一
樣/不一樣?
(d) 這段代碼單獨執行和在交互解釋器中執行有何不同?試一下,然后寫出結果
(e) 如何改進這個腳本, 以便它能和你想像的一樣工作?
答(b)(c):什么都不會輸出,也不會報錯。(d)解析器中執行會輸出結果
(e)
#!/usr/bin/env python
print 1 + 2 * 4
2–3. 數值和運算符
啟動交互解釋器,使用Python對兩個數值(任意類型)進行加、減、乘、除運算。然后使
用取余運算符來得到兩個數相除的余數, 最后使用乘方運算符求A 數的B 次方。
忽略
2–4. 使用raw_input()函數得到用戶輸入
(a) 創建一段腳本使用 raw_input() 內建函數從用戶輸入得到一個字符串,然后顯示這個
用戶剛剛鍵入的字符串。
(b) 添加一段類似的代碼,不過這次輸入的是數值。將輸入數據轉換為一個數值對象,(使
用int()或其它數值轉換函數) 并將這個值顯示給用戶看。(注意,如果你用的是早于1.5的版
本,你需要使用string.ato*() 函數執行這種轉換)
? 1 #!/usr/bin/env python
? 2 m=raw_input('please input a string(0~999):')
? 3 print 'The string becomed a number:',int(m)
運行結果:
******@*****:~/python$ python myinfo.py
please input a string(0~999):444
The string becomed a number: 444
2–5. 循環和數字
分別使用while 和for 創建一個循環:
(a) 寫一個while 循環,輸出整數從0 到10。(要確保是從0 到10, 而不是從0 到9 或
從1 到10)
(b) 做同 (a) 一樣的事, 不過這次使用 range() 內建函數。
答(a):
>>> for i in [0,1,2,3,4,5,6,7,8,9,10]:
...???? print i
...
0
1
2
3
4
5
6
7
8
9
10
答(b):
>>> for i in range(0,11):
...???? print i
...
0
1
2
3
4
5
6
7
8
9
10
2–6. 條件判斷 判斷一個數是正數,還是負數, 或者等于0. 開始先用固定的數值,然
后修改你的代碼支持用戶輸入數值再進行判斷。
? 1 #!/usr/bin/env python
? 2 n=raw_input('please input a number:')
? 3 try:
? 4???????? m=int(n)
? 5 except ValueError:
? 6???????? print 'wrong!! not a number!'
? 7???????? exit()
? 8 if m>0:
? 9???????? print 'your number is positive number'
?10 elif m<0:
?11???????? print 'your number is negative number'
?12 elif m==0:
?13???????? print 'your number is egg!'
2–7.循環和字串 從用戶那里接受一個字符串輸入,然后逐字符顯示該字符串。先用while 循
環實現,然后再用 for 循環實現。
2–1. 變量, print 和字符串格式化運算符。啟動交互式解釋器。給一些變量賦值(字
符串,數值等等)并通過輸入變量名顯示它們的值。再用 print 語句做同樣的事。這二者有
何區別? 也嘗試著使用字符串格式運算符 %, 多做幾次, 慢慢熟悉它。
忽略
2–2. P 程序輸出, 閱讀下面的Python 腳本:
#!/usr/bin/env python
1 + 2 * 4
(a) 你認為這段腳本是用來做什么的?
(b) 你認為這段腳本會輸出什么?
(c) 輸入以上代碼,并保存為腳本,然后運行它。它所做的與你的預期一樣嗎?為什么一
樣/不一樣?
(d) 這段代碼單獨執行和在交互解釋器中執行有何不同?試一下,然后寫出結果
(e) 如何改進這個腳本, 以便它能和你想像的一樣工作?
答(b)(c):什么都不會輸出,也不會報錯。(d)解析器中執行會輸出結果
(e)
#!/usr/bin/env python
print 1 + 2 * 4
2–3. 數值和運算符
啟動交互解釋器,使用Python對兩個數值(任意類型)進行加、減、乘、除運算。然后使
用取余運算符來得到兩個數相除的余數, 最后使用乘方運算符求A 數的B 次方。
忽略
2–4. 使用raw_input()函數得到用戶輸入
(a) 創建一段腳本使用 raw_input() 內建函數從用戶輸入得到一個字符串,然后顯示這個
用戶剛剛鍵入的字符串。
(b) 添加一段類似的代碼,不過這次輸入的是數值。將輸入數據轉換為一個數值對象,(使
用int()或其它數值轉換函數) 并將這個值顯示給用戶看。(注意,如果你用的是早于1.5的版
本,你需要使用string.ato*() 函數執行這種轉換)
? 1 #!/usr/bin/env python
? 2 m=raw_input('please input a string(0~999):')
? 3 print 'The string becomed a number:',int(m)
運行結果:
******@*****:~/python$ python myinfo.py
please input a string(0~999):444
The string becomed a number: 444
2–5. 循環和數字
分別使用while 和for 創建一個循環:
(a) 寫一個while 循環,輸出整數從0 到10。(要確保是從0 到10, 而不是從0 到9 或
從1 到10)
(b) 做同 (a) 一樣的事, 不過這次使用 range() 內建函數。
答(a):
>>> for i in [0,1,2,3,4,5,6,7,8,9,10]:
...???? print i
...
0
1
2
3
4
5
6
7
8
9
10
答(b):
>>> for i in range(0,11):
...???? print i
...
0
1
2
3
4
5
6
7
8
9
10
2–6. 條件判斷 判斷一個數是正數,還是負數, 或者等于0. 開始先用固定的數值,然
后修改你的代碼支持用戶輸入數值再進行判斷。
? 1 #!/usr/bin/env python
? 2 n=raw_input('please input a number:')
? 3 try:
? 4???????? m=int(n)
? 5 except ValueError:
? 6???????? print 'wrong!! not a number!'
? 7???????? exit()
? 8 if m>0:
? 9???????? print 'your number is positive number'
?10 elif m<0:
?11???????? print 'your number is negative number'
?12 elif m==0:
?13???????? print 'your number is egg!'
2–7.循環和字串 從用戶那里接受一個字符串輸入,然后逐字符顯示該字符串。先用while 循
環實現,然后再用 for 循環實現。
? 1 #!/usr/bin/env python
? 2 n=raw_input('please input a string:')
? 3 i=0
? 4 print '-----------while Circulation-------'
? 5 while i<len(n):
? 6???????? print n[i]
? 7???????? i+=1
? 8 print '-----------for Circulation-------'
? 9 for j in range(len(n)):
?10???????? print n[j]
2–8. 循環和運算符 創建一個包含五個固定數值的列表或元組,輸出他們的和。然后修
改你的代碼為接受用戶輸入數值。 分別使用while 和for 循環實現。
#while
print('Enter five number')
v=[]
i=0
s=0
while i<5 :??? ?
??? a=input('n%d=' % (i+1))
??? v.extend([int(a)])??? ?
??? s=s+v[i]??? ?
??? i+=1
print v
print 'sum=%d' % s
#for
print('Enter five number')
v=[]
s=0
for i in range(5):??? ?
??? a=input('n%d=' % (i+1))?????????? ?
??? v.extend([int(a)])??? ?
??? s=s+v[i]??? ?
print(v)
print('sum=%d' % s)
2–9.
循環和運算符 創建一個包含五個固定數值的列表或元組,輸出他們的平均值。本練習的難
點之一是通過除法得到平均值。 你會發現整數除會截去小數,因此你必須使用浮點除以得到更
精確的結果。 float()內建函數可以幫助你實現這一功能。
#!/usr/bin/env python
a=[]
print('Enter five number')
for i in range(5):
??? b=input('n%d='%(i+1))
??? a.extend([b])
print a
print 'The average value is:',float(sum(a))/len(a)
2–10.
帶循環和條件判斷的用戶輸入 使用raw_input()函數來提示用戶輸入一個1 和100 之間的
數,如果用戶輸入的數滿足這個條件,顯示成功并退出。否則顯示一個錯誤信息然后再次提示
用戶輸入數值,直到滿足條件為止。
#!usr/bin/env python
a=raw_input('please input a number(1-100)')
b=float(a)
while b<1 or b>100 :
??? print 'you had input wrong,please input again.'
??? a=raw_input('please input a number(1-100)')
??? b=float(a)
print 'you had input right It\'s',b
2–11.
帶文本菜單的程序 寫一個帶文本菜單的程序,菜單項如下(1)取五個數的和 (2) 取五個
數的平均值....(X)退出。由用戶做一個選擇,然后執行相應的功能。當用戶選擇退出時程序
結束。這個程序的有用之處在于用戶在功能之間切換不需要一遍一遍的重新啟動你的腳本。(這
對開發人員測試自己的程序也會大有用處)
#!usr/bin/env python
print 'Please input five number:'
array=[]
i=0
while i<5:
??? a=input('n%d=' % (i+1))
??? i+=1
??? array.append(float(a))
Sum=sum(array)
print 'Please select a function to run:'
select=raw_input('''
??? (1)Sum
??? (2)Avertage value
??? (3)Exit
??????????????? ''')
while 1:
??? if select=='1':
??????? print 'You had select \'Sum\', The Sum is: ',Sum
??????? print 'Please select a function to run:'
??????? select=raw_input('''
(1)Sum
(2)Avertage value
(3)Exit????? '''
)
??????? continue
??? elif select=='2':
??????? print 'You had slect \'Avertage value\',The avertage value is: ',Sum/len(array)
??????? print 'Please select a function to run:'
??????? select=raw_input('''
(1)Sum
(2)Avertage value
(3)Exit????? '''
)
??????? continue
??? elif select=='3':
??????? break
??? else:
??????? print 'Input wrong,please input again.'
??????? print 'Please select a function to run:'
??????? select=raw_input('''
(1)Sum
(2)Avertage value
(3)Exit????? '''
)
??????? continue
?
?
2–12. dir()內建函數
(a) 啟動Python 交互式解釋器, 通過直接鍵入dir()回車以執行 dir()內建函數。你看到
什么? 顯示你看到的每一個列表元素的值,記下實際值和你想像的值
(b) 你會問, dir()函數是干什么的?我們已經知道在dir 后邊加上一對括號可以執行dir()
內建函數, 如果不加括號會如何? 試一試。 解釋器返回給你什么信息? 你認為這個信息表
示什么意思 ?
(c) type() 內建函數接收任意的Python 對象做為參數并返回他們的類型。 在解釋器中鍵
入 type(dir), 看看你得到的是什么?
(d) 本練習的最后一部分, 我們來瞧一瞧 Python的文檔字符串。 通過 dir.__doc__ 可
以訪問dir()內建函數的文檔字符串。print dir.__doc__可以顯示這個字符串的內容。 許多內建
函數,方法,模塊及模塊屬性都有相應的文檔字符串。我們希望你在你的代碼中也要書寫文檔
字符串, 它會對使用這些代碼的人提供及時方便的幫助。
dir(【obj】)顯示對象的屬性,如果沒有提供參數,則顯示全局變量的名字
?
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__']
>>> dir
<built-in function dir>
>>> type(dir)
<type 'builtin_function_or_method'>
>>> dir.__doc__
"dir([object]) -> list of strings\n\nIf called without an argument, return the names in the current scope.\nElse, return an alphabetized list of names comprising (some of) the attributes\nof the given object, and of attributes reachable from it.\nIf the object supplies a method named __dir__, it will be used; otherwise\nthe default dir() logic is used and returns:\n? for a module object: the module's attributes.\n? for a class object:? its attributes, and recursively the attributes\n??? of its bases.\n? for any other object: its attributes, its class's attributes, and\n??? recursively the attributes of its class's base classes."
>>> print dir.__doc__
dir([object]) -> list of strings
If called without an argument, return the names in the current scope.
Else, return an alphabetized list of names comprising (some of) the attributes
of the given object, and of attributes reachable from it.
If the object supplies a method named __dir__, it will be used; otherwise
the default dir() logic is used and returns:
? for a module object: the module's attributes.
? for a class object:? its attributes, and recursively the attributes
??? of its bases.
? for any other object: its attributes, its class's attributes, and
??? recursively the attributes of its class's base classes.
2–13. 利用 dir() 找出 sys 模塊中更多的東西。
(a) 啟動Python 交互解釋器, 執行dir()函數, 然后鍵入 import sys 以導入 sys 模塊。
再次執行dir()函數以確認sys 模塊被正確的導入。 然后執行 dir(sys) , 你就可以看到sys
模塊的所有屬性了。
(b) 顯示 sys 模塊的版本號屬性及平臺變量。記住在屬性名前一定要加 sys. ,這表示
這個屬性是sys 模塊的。其中 version變量保存著你使用的Python解釋器版本, platform
屬性則包含你運行Python 時使用的計算機平臺信息。
(c) 最后, 調用 sys.exit() 函數。 這是一種熱鍵之外的另一種退出Python 解釋器的方
式 。
此題忽略
2–14. 重寫2.4小節中 print 語句里的算術表達式, 試著在這個表達式中添加合適的
括號以便它能正常工作。
?
>>> print(-2*4+3**2)
1
2–15. 元素排序
(a)讓用戶輸入三個數值并將分別將它們保存到3個不同的變量中。不使用列表或排序算法,
自己寫代碼來對這三個數由小到大排序。(b)修改(a)的解決方案,使之從大到小排序
從大到小排序:
#!usr/bin/env python
a1=input('Please input a1: ')
a2=input('Please input a2: ')
a3=input('Please input a3: ')
if a1<a2:
??????? t=a1
??????? a1=a2
??????? a2=t
if a1<a3:
??????? t=a1
??????? a1=a3
??????? a3=t
if a2<a3:
??????? t=a2
??????? a2=a3
??????? a3=t
print a1,a2,a3
2–16. 文件
鍵入2.15 節的文件顯示的代碼, 然后運行它, 看看能否在你的系統上正常工作,然后試
一下其它的輸入文件。
忽略
轉載于:https://www.cnblogs.com/forwhy/archive/2012/10/07/2713718.html
總結
以上是生活随笔為你收集整理的python核心编程课后习题解答第二章的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: metasploit 使用search报
- 下一篇: ipython和jupyter_IPyt