成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python編程技巧:那些年后悔沒有早知道String模塊的這些寶藏功能

開發 前端
盡管 string 模塊提供的內容相對簡單,但這些工具非常適合與 Python 中的其他功能相結合,創建更復雜的文本處理解決方案。這種模塊化的方法不僅保持代碼的簡潔性,也提高了開發效率。

剛學習Python的時候,你是否遇到過這樣的練習?

  • 打印英文字母表(26個連續字母)
  • 打印所有數字(0-9)
  • ...

比如前兩個,當時只能老老實實的逐個手動輸入“abcdefghijklmnopkrstuvwxyz”和“0123456789”給 print 函數,向下面這樣:

print('abcdefghijklmnopkrstuvwxyz')
print('0123456789')
# abcdefghijklmnopkrstuvwxyz
# 0123456789

今天看書才發現一個更省事的方法,Python的 string 模塊里面定義一些常用的常量,就包括字母表、數字等等,只需要調用相關的常量屬性就可以實現,代碼既簡潔又高效。從此告別傻傻地手動輸入。

本文,我將向大家介紹 string 模塊的一些寶藏功能,讓你寫出更高效、更優雅的代碼。

話不多說,開始上課!注意~~前方高能,美女助教引領大家快速進入狀態,還在打瞌睡的請打起精神??????

內置string模塊

內置,意味著我們不需要單獨安裝它,只需要在腳本頂部導入它即可使用。該模塊包括下面這些很有用的魔法屬性:

1.string.ascii_lowercase

一次性輸出所有26個小寫字母,再也不用一個個手動輸入啦!

import string

print(f'Alphabet by lowercase: {string.ascii_lowercase}')
# Alphabet by lowercase: abcdefghijklmnopqrstuvwxyz

2.string.ascii_uppercase

與 ascii_lowercase 相反,這個屬性用于一次性輸出所有大寫字母:

print(f'Alphabet by uppercase: {string.ascii_uppercase}')
# Alphabet by uppercase: ABCDEFGHIJKLMNOPQRSTUVWXYZ

3.string.whitespace

這個屬性可以一次性輸出所有空格類型(白色空格、制表符、換行符等),注意,為了看到效果,請將結果轉換為列表后輸出,否則直接打印的話會是一片空白:

print(f'All whitespaces: {[string.whitespace]}')
# All whitespaces: [' \t\n\r\x0b\x0c']

4.string.punctuation

這個屬性可用于一次性輸出所有標點符號:

print(f'All punctuations: {string.punctuation}')
# All punctuations: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

5.string.digits

一次性打印出所有數字:

print(f'All numbers: {string.digits}')
# All numbers: 0123456789

6.string.ascii_letters

這個屬性是 ascii_lowercase 和 ascii_uppercase 的組合,即一次性打印出所有大小寫字母:

print(f'Alpabet letters: {string.ascii_letters}')
# Alpabet letters: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

7.string.hexdigits

這個屬性可以輸出代表十六進制數字的所有字符:

print(f'Hex digits: {string.hexdigits}')
# Hex digits: 0123456789abcdefABCDEF

8.string.octdigits

這個屬性則用于輸出代表八進制的所有字符,與 string.digits 的輸出結果相比,少了“89”:

print(f'Octal digits: {string.octdigits}')
# Octal digits: 01234567

這些預定義的字符串常量可以用于多種場景,例如數據驗證、數據清洗、字符分類和更多。例如,使用 string.digits 可以快速檢查或過濾出字符串中的數字,或者使用 string.punctuation 來移除文本中的所有標點符號。

string 模塊本身主要提供的是這些預定義常量,而不提供特殊的方法或函數。但這些常量在結合正則表達式或其他字符串處理功能時,可以讓你的代碼更簡潔和優雅,更加 Pythonic。

例如,如果需要檢查一個字符串是否只包含字母和數字,可以結合使用 string.ascii_letters 和 string.digits 來創建一個檢查用的集合:

import string

allowed_chars = set(string.ascii_letters + string.digits)

def is_alphanumeric(s):
    return set(s).issubset(allowed_chars)

test_str = 'I love Python programming, 666!'
print(is_alphanumeric(test_str))
# False

進階用法

在Python標準庫的 string 模塊中,我已經列出了主要的預定義字符串常量,這些常量基本涵蓋了模塊的核心功能。這些常量主要用于提供方便的字符集,幫助程序員在處理文本數據時避免手動鍵入這些常見的字符列表。

除了前面提到的常量,string 模塊沒有提供其他的內置方法或屬性。它的設計主要是為了提供簡便的、預定義的字符集,這些字符集經常在文本處理中使用。

進階使用

雖然 string 模塊本身功能相對簡單,但可以與Python的其他文本處理功能如正則表達式 (re 模塊)、文本轉換和編碼等結合使用來實現更復雜的功能。這里是一些實用的示例,展示如何利用 string 模塊來處理更高級的文本問題:

  • 生成隨機字符串:使用string模塊中的字符集合,結合random模塊,可以輕松生成隨機密碼或標識符。
import string
import random

def get_random_string(length=10):
    return ''.join(random.choice(string.ascii_letters  + string.digits) for _ in range(length))

print(f'Random password: {get_random_string()}')
print(f'Random identifier: {get_random_string(length=12)}')
# Random password: wc7m5wD2KM
# Random identifier: SHrea9RchD4A
  • 清洗字符串:移除字符串中的特定字符集,比如所有標點符號。
import string

def remove_punctuation(s):
    return s.translate(str.maketrans('', '', string.punctuation))

test_str = 'My email is myname@example.com!'
print(f'Removed punctuation: {remove_punctuation(test_str)}')
# Removed punctuation: My email is mynameexamplecom
  • 字符分類:可以使用string模塊來快速分類字符串中的字符,如分離字母和數字。
import string

def classify_chars(s):
    letters = [ch for ch in s if ch in string.ascii_letters]
    digits = [ch for ch in s if ch in string.digits]
    return letters, digits

結論

盡管 string 模塊提供的內容相對簡單,但這些工具非常適合與 Python 中的其他功能相結合,創建更復雜的文本處理解決方案。這種模塊化的方法不僅保持代碼的簡潔性,也提高了開發效率。

好啦,今天分享就到此結束啦!趕緊去用起來吧!

責任編輯:武曉燕 來源: 數據派探險家
相關推薦

2020-01-09 12:11:02

Python 開發編程語言

2020-04-27 09:21:25

Android谷歌功能

2020-07-16 08:46:50

Python 開發編程語言

2019-12-29 23:40:38

Python編程語言代碼

2025-01-26 09:28:09

2015-06-04 17:35:45

融合媒體云華為

2015-11-09 12:54:55

Build 10586手機版Windows 10

2016-02-19 11:51:47

Windows 10RedStoneBuild 14267

2021-10-13 22:01:12

手機設備疾病

2015-08-28 10:31:20

Windows 10預覽版更新

2015-08-10 09:53:10

Windows 10隱私

2018-04-26 08:37:00

Java EE 8人工智能PowerApps

2015-08-07 12:33:12

Java新特性編程

2017-09-29 10:33:53

互聯網

2016-01-15 09:46:16

開源DJMixxx 2.0

2015-03-23 10:20:04

程序員精英程序員程序員忠告

2021-07-27 12:45:07

NaaS網絡網絡即服務

2018-03-22 19:03:34

2013-02-26 09:42:14

奧斯卡小金人微軟
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产大片黄色 | 午夜国产 | 亚洲精品91 | 性一交一乱一伦视频免费观看 | 久久视频免费看 | 波多野结衣一区二区三区在线观看 | 欧美一区二区三区四区在线 | 久久伊人一区 | 国产真实精品久久二三区 | 一区二区三区四区在线 | 欧美理论片在线 | 人人人艹 | 蜜臀久久99精品久久久久久宅男 | 欧美国产精品一区二区三区 | 日本午夜网站 | 国产成人精品免费视频大全最热 | 天堂成人国产精品一区 | 欧美一区二区三区视频 | 成人a视频 | 天天干天天色 | 日本福利片 | 欧美一区二 | 成人在线免费观看视频 | 黄色在线免费观看视频 | 人人色视频| 欧美一级大片 | 日韩国产免费 | 午夜成人在线视频 | 精品久久久久久 | 精品国产一区二区三区观看不卡 | 九九色综合 | 久久精品小视频 | 中文字幕在线观看精品 | 欧美黑人体内she精在线观看 | 国产91亚洲精品一区二区三区 | 亚洲视频精品在线 | 国产一级免费视频 | 四虎影院免费在线播放 | 久久亚洲天堂 | 91精品免费| 日韩福利|