已有字符串形式的函數名稱,那么如何調用這個函數呢?
創(chuàng)新互聯-專業(yè)網站定制、快速模板網站建設、高性價比全椒網站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式全椒網站制作公司更省心,省錢,快速模板網站建設找我們,業(yè)務覆蓋全椒地區(qū)。費用合理售后完善,十年實體公司更值得信賴。
通過調用內置函數locals()和globals()返回的字典對象,就可以可以獲得名稱與對象的映射關系。其中,locals()僅在全局范圍內調用時可以獲得函數對象。 我們來看以下的例子。
需要注意的是,使用上述方法通過字符串調用函數時,為了系統的安全,防止執(zhí)行任意函數,需要對函數名做一些處理,也就是使用統一的前綴為這些函數命名。例如在上述例子中,使用前綴cmd_+函數名的形式定義函數(cmd_help,cmd_sum)。
在傳入函數名字符串時,只傳入函數名的后半部分(如"help","sum"),由程序添加前綴后組成完整的函數名,再調用該函數。
對于類的成員函數,則可以使用getattr()獲得類成員函數。
上述代碼通過字符串調用了類成員函數,與前一段代碼執(zhí)行的結果相同。
此外,還可以使用字典將字符串與函數對應起來調用,缺點就是每增加一個函數需要相應在字典對象中添加相應的鍵值,增加代碼維護工作量。
以上代碼在Python 3.6以上運行通過。
python string函數是什么?一起來看下吧:
python string函數包括:
1、str.capitalize:將原字符串內的首字母轉成大寫,其他部分小寫,再返回新字符串
print("s.capitalize()?=?{function}" s.capitalize()?=?Abcada?a
2、str.lower:將原字符串的字母轉為小寫
print("s.lower()?=?{function}".format(function?=?s.lower())) s.lower()?=?abcada?a
3、str.upper:將原字符串的字母轉為大寫
print("s.upper()?=?{function}".format(function?=?s.upper())) s.upper()?=?ABCADA?A
4、str.swapcase:將原字符串的大寫小寫反轉
print("s.swapcase()?=?{function}".format(function?=?s.swapcase())) s.swapcase()?=?ABCAdA?A
5、str.title:原字符串內如果有特殊字符(包括數字)連接字母,則將特殊字符后的首個英文字母轉化為大寫形態(tài),并返回新字符串
print("s2.title()?=?{function}".format(function?=?s2.title())) s2.title()?=?123A?Abc?Abcsaa?S
6、str.center:str.center(寬度,填充字符) 將字符串以居中的格式返回,若寬度值比len(s)小則返回原字符串,填充以從左到右為規(guī)則,填充字符的默認值為空格,值可以自己更改
print("s2.center()?=?{function}".format(function?=?s2.center(19,''))) print("s2.center()?=?{function}".format(function?=?s2.center(20,''))) #s2?=?123a?abc?ABCSAa?s s2.center()?=?123a?abc?ABCSAa?s? s2.center()?=?123a?abc?ABCSAa?s?
7、str.expandtabs:str.expandtabs(tabsize = 8) 將原字符串中 以前的字符補滿8位(默認),tabsize的值從0-7即8位,在0-7中任意取值則默認tabsize = 8,此后往上+1,就相當于增加一個空格
print("s3.expandtabs?={function}".format(function?=?s3.expandtabs())) print("s3.expandtabs?={function}".format(function?=?s3.expandtabs(0))) print("s3.expandtabs?={function}".format(function?=?s3.expandtabs(5))) print("s3.expandtabs?={function}".format(function?=?s3.expandtabs(8))) print("s3.expandtabs?={function}".format(function?=?s3.expandtabs(9)))#s3?=?" as? b123" s3.expandtabs?=????????as??????????????b123 s3.expandtabs?=as?b123 s3.expandtabs?=?????as????????b123 s3.expandtabs?=????????as??????????????b123 s3.expandtabs?=?????????as
除了上述舉例的,string函數還有許多實用的函數。
在寫python程序時,常能用到一些函數和方法,總結一下,保存起來,方便查詢。
一、內置函數
# abs()獲取數字絕對值
# chr(i)數字轉換為字符類型
# divmod() 獲取兩個數值的商和余數
# enumerate() 將可遍歷序列組合為索引序列
# float()轉換為浮點數
# format() 格式化字符串
# int()轉換為整數?
# input() 接受用戶輸入內容
# len() 計算元素個數
# max() 返回最大值
# min() 返回最小值
# math.ceil() 返回指定數值的上舍整數
# open()打開文件并返回文件對象
# pow() 冪運算
# print()打印輸出?
# range() 生成器
# reversed()反轉所有元素
# round()四舍五入求值
# sorted()對可迭代對象進行排序?
# str() 轉換為字符串
# sum() 求和
# set() 創(chuàng)建集合
# tuple() 將序列轉換為元組
# zip()將可迭代對象打包成元組
二、方法
# append() 添加列表元素
# capitalize()首字母轉換為大寫?
# count()字符出現次數
# close() 關閉文件
# decode() 解碼字符串
# dict.keys() 獲取字典所有的鍵
# find()字符串首次出現的索引
# f.read() 讀取文件內容
# dict.update()更新字典
# dict.items() 獲取字典鍵/值對
# dict.get() 返回指定鍵的值
# encode() 編碼字符串
# list.sort() 排序列表元素
# index() 元素首次出現的索引
# isdigit() 判斷字符串是否只由數字組成
# isupper() 是否所有字母都為大寫
# isnum() 判斷字符串是否由字母和數字組成
# islower() 是否所有字母都為小寫
# isdecimal() 檢查字符串是否只包含十進制字符
# isalpha() 檢測字符串是否為純字母
# random.shuffle()隨機排序
# random.sample()返回無重復隨機數列表
# random.choice() 返回一個隨機元素
# random.randint() 生成指定范圍的隨機整數
# random.randrange() 生成指定范圍的指定遞增基數隨機整數
# pop() 刪除列表中的元素
# remove()刪除列表中的指定元素
# strip()去除空格
# lstrip()去除左側空格
# rstrip() 去除右側空格
# readline() 讀取單行內容
# root.after() Tkinter中等待一段時間后再執(zhí)行命令
# str.isnumeric() 驗證字符串是否為數字(適用于Unicode)
# split()分割字符串
# ord() 將字符轉換為整數
# replace() 字符串替換
# ljust() 左對齊填充
# rjust() 左對齊填充
# readlines() 讀取所有行內容
# datetime.datetime.now() 返回指定時區(qū)的本地日期時間
# datetime.datetime.today() 獲取當前本地日期的date對象
# datetime.utcnow() 返回當前UTC時間的datetime對象
# time.strptime()把時間字符串解析為元組
# time.time()返回當前時間的時間戳
# time.sleep()暫停指定秒數
# time.strftime() 返回指定格式的日期字符串
# time.mktime() 接收時間元組并返回時間戳
# os.getcwd() 獲取當前工作目錄
# os.listdir() 獲取指定路徑下的目錄和文件列表
# os.makedirs() 遞歸創(chuàng)建目錄
# os.rename() 重命名目錄或文件
# os.path.exists() 判斷路徑是否存在
# upper() 全部轉換為大寫字母
# lower()? 全部轉換為小寫字母
# sys.stdout.write() 標準輸出打印
# sys.stdout.flush()刷新輸出?
# shutil.copy() 復制單個文件到另一文件或目錄
# write() 寫入文件內容
# winsound.Beep() 打開電腦揚聲器
# zfill() 在字符串前面填充0
三、循環(huán)語句
# break終止當前循環(huán)
# continue 終止本循環(huán)進入下一次循環(huán)
# with open() as file 以with語句打開文件(數據保存)
四、轉義字符
\ 行尾續(xù)行符
\' 單引號?
\'' 雙引號
\a 響鈴
\e 轉義
\n 換行
\t 橫向制表符
\f 換頁
\xyy 十六進制yy代表的字符
\\反斜杠符號
\b 退格
\000 空
\v 縱向制表符
\r 回車
\0yy 八進制yy代表的字符
\other 其他的字符以普通格式輸出