6–1.字串.string 模組中是否有一種字串方法或者函式可以幫我鑑定一下乙個字元是否是另乙個大字串的一部分?
#可以使用dir(sting),來檢視所有的方法和屬性
s='sbcdefg'
s.find('cde')
s.find('cde',0)
s.find('cde',0,len(s))
6–2.字串識別符號.修改例 6-1 的 idcheck.py 指令碼,使之可以檢測長度為一的識別符號,並且可以識別 python 關鍵字,對後乙個要求,你可以使用 keyword 模組(特別是 keyword.kelist)來幫你.# -*- coding:utf-8 -*-
# -*- coding:utf-8 -*-
""" idcheck.py 判斷檔名的合法性1.以下劃線字母開頭 2.可以乙個字元作為識別符號 3.不能是關鍵字"""
import keyword as kw
import string
import sys
def idcheck(s):
startwith=string.letters+'_'
othersymbol=string.letters+'_'+string.digits
if len(s)>0:
if len(s)==1:
print '輸入為1個字元長度'.decode('utf-8').encode('gbk')
if s in startwith:
print '單個字元符號命名規則'.decode('utf-8').encode('gbk')
else:
print '單個字元不符合命名規則'.decode('utf-8').encode('gbk')
sys.exit()
else:
if s in kw.kwlist:
print '輸入的字元是關鍵字,請重新輸入'.decode('utf-8').encode('gbk')
else:
if s[0] not in startwith:
print '首字元不符合命名規則'.decode('utf-8').encode('gbk')
sys.exit()
else:
for i in s[1:]:
if i not in othersymbol:
print '其它字元不是合法識別符號,請重新輸入'.decode('utf-8').encode('gbk')
else:
print '其它字元是合法識別符號'.decode('utf-8').encode('gbk')
else:
print '請輸入乙個長度大於等於1個字元的關鍵字'.decode('utf-8').encode('gbk')
if __name__=='__main__':
s=raw_input('enter a file name:').strip()
idcheck(s)
6–3.排序
(a) 輸入一串數字,從大到小排列之.
(b) 跟 a 一樣,不過要用字典序從大到小排列之.
# -*- coding:utf-8 -*-
""" 排序"""
import keyword as kw
import string
import sys
def f_sort(s):
elist=list(s)
elist.sort()
print elist
s=raw_input('enter row number:')
f_sort(s)
9.轉換。為練習5-13寫乙個姊妹函式,接受分鐘數,返回小時數和分鐘數。總時間不變,並且要求小時數盡可能大。···``# -*- coding:utf-8 -*-
""" 輸入分鐘數,轉換成小時和分鐘"""
def f_swaptime(s):
num=int(s)
hour,min=num/60,num%60
print '%d hours:%d mins'%(hour,min)
s=raw_input('enter row number:')
f_swaptime(s)
6-10 字串。寫乙個函式,返回乙個跟輸入字串相似的字串,要求字串的大小寫翻轉。比如,輸入「mr.ed」,應該返回「mr.ed」作為輸出# -*- coding:utf-8 -*-
""" swapcase()"""
def f_swapcase(s):
s=s.swapcase()
print s
s=raw_input('enter row number:')
f_swapcase(s)
習題:6-11轉換內容
(a)建立乙個整型到ip位址的轉換程式
(b)更新你的程式內容,使之可以逆向轉換過來內容
# -*- coding:utf-8 -*-
""" ip和整數之間的相互轉換"""
def convert_ip(num):
#bin開0b開頭
num_bin=bin(int(num))[2:]
str_bin=str(num_bin).zfill(32)
b1=str_bin[0:8]
b2=str_bin[8:16]
b3=str_bin[16:24]
b4=str_bin[24:32]
b_out=b4+'.'+b3+'.'+b2+'.'+b1
print b_out
return b_out
num=raw_input('enter row number:')
s=convert_ip(num)
[參考文章] 《Python核心程式設計(第二版)》 導讀
歡迎走進python核心程式設計 我們很高興能幫你盡快並盡可能深入地學習python。掌握語法是本書的乙個目標,不管怎樣,我們都堅信,哪怕是乙個初學者,只要他能掌握python的運作機理,他就不再僅僅是用python 編寫 而是能開發出更高效的python應用程式。但是你知道,並不是掌握了一門語言的...
python核心程式設計(第二版) 課後習題
python核心程式設計課後習題 第二版 部分課後習題 這些都是自己寫的,有兩個或三個檔案沒有完成,不想寫了 其中x.x.py是書中的例子習題 書中有很多錯誤,在我的檔案中都已經修改除錯好了 x x.py是課後習題 第乙個x是章節,第二個x是編號,有的也有檔名 檔案列表 5 10.py 5 11.p...
Python核心程式設計第二版程式14 1改寫
生成乙個迴圈程式。使用python 3改寫,並將輸入lower處理,避免輸入大小寫對判斷的影響。這裡面有個知識點是將寫好的命令用exec執行 usr bin env python dashes n 50 dashed line dashes用於做格式化輸出 exec dict def main lt...