大家好,我是 星源,19岁自学Python的编程小白 🤓。 字符串操作的神通广大,绝对超乎你的想象!今天,咱们接着深挖字符串的宝藏功能,瞅瞅那些实用到飞起的技巧,顺便把习题大阅兵给搞定,稳稳地把知识点收入囊中!冲鸭!🚀


📌 今日学习内容

👉 “剪贴板操作、文本对齐、字符串替换,玩转字符串的隐藏技能!”


✨ 知识点讲解

1️⃣ 删除空白字符

  • 方法strip()rstrip()lstrip()

  • 示例

    >>> spam = '    Hello World     '
    >>> spam.strip()
    'Hello World'
    >>> spam.lstrip()
    'Hello World     '
    >>> spam.rstrip()
    '    Hello World'
    >>> spam = 'SpamSpamBaconSpamEggsSpamSpam'
    >>> spam.strip('ampS')
    'BaconSpamEggs'

2️⃣ pyperclip 模块

  • 功能:与系统剪贴板交互,实现文本的复制和粘贴。

  • 安装pip install pyperclip

  • 示例

    >>> import pyperclip
    >>> pyperclip.copy('Hello world!')
    >>> pyperclip.paste()
    'Hello world!'

3️⃣ 项目:口令保管箱

  • 目标:创建一个简单的口令管理器,将口令复制到剪贴板。

  • 代码

    #!python3
    # pw.py - An insecure password locker program.
    PASSWORDS = {'email': 'F7minlBDDuvMJuxESSKHFhTxFtjVB6', 'blog': 'VmALvQyKAxiVH5G8v01if1MLZF3sdt', 'luggage': '12345'}
    import sys, pyperclip
    if len(sys.argv) < 2:
        print('Usage: py pw.py [account] - copy account password')
        sys.exit()
    account = sys.argv[1]
    if account in PASSWORDS:
        pyperclip.copy(PASSWORDS[account])
        print('Password for ' + account + ' copied to clipboard.')
    else:
        print('There is no account named ' + account)

4️⃣ 项目:在 Wiki 标记中添加无序列表

  • 目标:从剪贴板读取文本,为每行添加星号,再复制回剪贴板。

  • 代码

    #!python3
    # bulletPointAdder.py - Adds Wikipedia bullet points to the start of each line of text on the clipboard.
    import pyperclip
    text = pyperclip.paste()
    lines = text.split('\n')
    for i in range(len(lines)):
        lines[i] = '* ' + lines[i]
    text = '\n'.join(lines)
    pyperclip.copy(text)

5️⃣ 表格打印项目

  • 目标:将列表的列表打印为整齐的表格。

  • 代码

    def printTable(tableData):
        colWidths = [0] * len(tableData)
        for i in range(len(tableData)):
            colWidths[i] = len(max(tableData[i], key=len))
        for rowIndex in range(len(tableData[0])):
            for colIndex in range(len(tableData)):
                print(tableData[colIndex][rowIndex].rjust(colWidths[colIndex]), end=' ')
            print()
    ​
    tableData = [['apples', 'oranges', 'cherries', 'banana'], ['Alice', 'Bob', 'Carol', 'David'], ['dogs', 'cats', 'moose', 'goose']]
    printTable(tableData)

✨ 课后习题

  1. 转义字符是带倒斜杠的字符,如 \n 表示换行。

  2. \n 是换行符,\t 是制表符。

  3. 在字符串中放入一个倒斜杠字符 \,需要用 \\

  4. 字符串 "Howl's Moving Castle" 中的单引号没有转义却没问题,是因为字符串用双引号包裹。

  5. 使用三重引号 ''' 可以写一个带有换行的字符串。

  6. 表达式求值:

    • 'Hello world!'[1]'e'

    • 'Hello world!'[0:5]'Hello'

    • 'Hello world!'[:5]'Hello'

    • 'Hello world!'[3:]'lo world!'

  7. 表达式求值:

    • 'Hello'.upper()'HELLO'

    • 'Hello'.upper().isupper()True

    • 'Hello'.upper().lower()'hello'

  8. 表达式求值:

    • 'Remember,remember,the fifth of November.'.split()['Remember,remember,the', 'fifth', 'of', 'November.']

    • '-'.join('There can be only one.'.split())'There-can-be-only-one.'

  9. 字符串方法 rjust()ljust()center() 分别用于右对齐、左对齐和居中。

  10. 删除字符串开始或末尾的空白字符用 strip()


✅ 总结

  1. 删除空白字符有 strip()rstrip()lstrip()

  2. pyperclip 模块能操作剪贴板,实现跨程序的文本传递。

  3. 口令保管箱项目展示了剪贴板操作和字典的结合应用。

  4. Wiki 标记项目中,split()join() 是文本批量处理的核心工具。

  5. 表格打印项目综合运用了字符串方法和列表操作,实现复杂数据的格式化输出。


📢 互动提问

👉 “第一次用 strip() 时,有没有忘记它不会修改原字符串,导致拼命调试?” 留言晒出你的“天真瞬间”,一起笑对未来! 😄

更多推荐