這篇文章主要介紹“Python函數(shù)和字符串的應(yīng)用”,在日常操作中,相信很多人在Python函數(shù)和字符串的應(yīng)用問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”P(pán)ython函數(shù)和字符串的應(yīng)用”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
創(chuàng)新互聯(lián)公司一直秉承“誠(chéng)信做人,踏實(shí)做事”的原則,不欺瞞客戶(hù),是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶(hù)多一個(gè)朋友!為您提供網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站、成都網(wǎng)頁(yè)設(shè)計(jì)、小程序設(shè)計(jì)、成都網(wǎng)站開(kāi)發(fā)、成都網(wǎng)站制作、成都軟件開(kāi)發(fā)、重慶App定制開(kāi)發(fā)是成都本地專(zhuān)業(yè)的網(wǎng)站建設(shè)和網(wǎng)站設(shè)計(jì)公司,等你一起來(lái)見(jiàn)證!
說(shuō)明:驗(yàn)證碼由數(shù)字和英文大小寫(xiě)字母構(gòu)成。
import random
ALL_CHARS =
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'def generate_code(code_len=4):
"""生成指定長(zhǎng)度的驗(yàn)證碼
:param code_len: 驗(yàn)證碼的長(zhǎng)度(默認(rèn)4個(gè)字符)
:return: 由大小寫(xiě)英文字母和數(shù)字構(gòu)成的隨機(jī)驗(yàn)證碼字符串
"""
code =
''
for _
in range(code_len):
# 產(chǎn)生0到字符串長(zhǎng)度減1范圍的隨機(jī)數(shù)作為索引
index = random.randrange(0, len(ALL_CHARS))
# 利用索引運(yùn)算從字符串中取出字符并進(jìn)行拼接
code += ALL_CHARS[index]
return code
我們用下面的代碼生成10組隨機(jī)驗(yàn)證碼來(lái)測(cè)試上面的函數(shù)。
for _ in
range(10):
print(generate_code())
上面的函數(shù)其實(shí)還有一種更為簡(jiǎn)單的寫(xiě)法,直接利用random模塊的隨機(jī)抽樣函數(shù)從字符串中取出指定數(shù)量的字符,然后利用字符串的join方法將選中的那些字符拼接起來(lái)。此外,可以利用Python標(biāo)準(zhǔn)庫(kù)中的string 模塊來(lái)獲得數(shù)字和英文字母的字面常量。
import random
import string
ALL_CHARS = string.digits + string.ascii_letters
def generate_code(code_len=4):
"""生成指定長(zhǎng)度的驗(yàn)證碼
:param code_len: 驗(yàn)證碼的長(zhǎng)度(默認(rèn)4個(gè)字符)
:return: 由大小寫(xiě)英文字母和數(shù)字構(gòu)成的隨機(jī)驗(yàn)證碼字符串
"""
return ''.join(random.choices(ALL_CHARS, k=code_len))
說(shuō)明:random模塊的sample和choices函數(shù)都可以實(shí)現(xiàn)隨機(jī)抽樣,sample實(shí)現(xiàn)無(wú)放回抽樣,這意味著抽樣取出的字符是不重復(fù)的;choices實(shí)現(xiàn)有放回抽樣,這意味著可能會(huì)重復(fù)選中某些字符。這兩個(gè)函數(shù)的第一個(gè)參數(shù)代表抽樣的總體,而參數(shù)k代表抽樣的數(shù)量。
說(shuō)明:文件名通常是一個(gè)字符串,而文件的后綴名指的是文件名中最后一個(gè).后面的部分,也稱(chēng)為文件的擴(kuò)展名,它是某些操作系統(tǒng)用來(lái)標(biāo)記文件類(lèi)型的一種機(jī)制,例如在Windows系統(tǒng)上,后綴名exe表示這是一個(gè)可執(zhí)行程序,而后綴名txt表示這是一個(gè)純文本文件。需要注意的是,在Linux和macOS系統(tǒng)上,文件名可以以.開(kāi)頭,表示這是一個(gè)隱藏文件,像.gitignore這樣的文件名,.后面并不是后綴名,這個(gè)文件沒(méi)有后綴名或者說(shuō)后綴名為''。
def get_suffix(filename):
"""獲取文件名的后綴名
:param filename: 文件名
:return: 文件的后綴名
"""
# 從字符串中逆向查找.出現(xiàn)的位置
pos = filename.rfind('.')
# 通過(guò)切片操作從文件名中取出后綴名
return filename[pos + 1:] if pos > 0 else ''
可以用下面的代碼對(duì)上面的函數(shù)做一個(gè)簡(jiǎn)單的測(cè)驗(yàn)。
print(get_suffix('readme.txt')) #
txt
print(get_suffix('readme.txt.md')) #
md
print(get_suffix('.readme')) #
print(get_suffix('readme.')) #
print(get_suffix('readme')) #
上面的get_suffix函數(shù)還有一個(gè)更為便捷的實(shí)現(xiàn)方式,就是直接使用os.path模塊的splitext函數(shù),這個(gè)函數(shù)會(huì)將文件名拆分成帶路徑的文件名和擴(kuò)展名兩個(gè)部分,然后返回一個(gè)二元組(下節(jié)課會(huì)講到元組),二元組中的第二個(gè)元素就是文件的后綴名(包含.),如果要去掉后綴名中的.,可以做一個(gè)字符串的切片操作,代碼如下所示。
from os.path import splitext
def get_suffix(filename):
return splitext(filename)[1][1:]
說(shuō)明:實(shí)現(xiàn)跑馬燈文字的原理非常簡(jiǎn)單,把當(dāng)前字符串的第一個(gè)字符放到要輸出的內(nèi)容的最后面,把從第二個(gè)字符開(kāi)始后面的內(nèi)容放到要輸出的內(nèi)容的最前面,通過(guò)循環(huán)重復(fù)這個(gè)操作,就可以看到滾動(dòng)起來(lái)的文字。兩次循環(huán)之間的間隔可以通過(guò)time模塊的sleep函數(shù)來(lái)實(shí)現(xiàn),而清除屏幕上之前的輸出可以使用os模塊的system函數(shù)調(diào)用系統(tǒng)清屏命令來(lái)實(shí)現(xiàn)。
import os
import time
content =
'北 京 歡 迎 你 為 你 開(kāi) 天 辟 地 '
while True:
# Windows清除屏幕上的輸出
#
os.system('cls')
# macOS清除屏幕上的輸出
os.system('clear')
print(content)
# 休眠0.2秒(200毫秒)
time.sleep(0.2)
content = content[1:] + content[0]
提示:我們之前建議大家暫時(shí)用VS Code來(lái)編寫(xiě)Python代碼,如果你已經(jīng)提前開(kāi)始使用PyCharm了,需要提醒大家,PyCharm的運(yùn)行窗口無(wú)法用上面的方式做清屏處理。建議在“命令行提示符”或“終端”(PyCharm中的“Terminal”相當(dāng)于就是Windows系統(tǒng)的“命令行提示符”或macOS系統(tǒng)的“終端”)中運(yùn)行該程序。
到此,關(guān)于“Python函數(shù)和字符串的應(yīng)用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
網(wǎng)站欄目:Python函數(shù)和字符串的應(yīng)用
當(dāng)前鏈接:http://www.2m8n56k.cn/article8/jcgeop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷(xiāo)推廣、定制網(wǎng)站、網(wǎng)站改版、App設(shè)計(jì)、網(wǎng)站制作、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)