• 单词记忆系统二:音标字符输入(re从字符串中提取音标字符;依序打印音标字符;输入对应序号;替换序号。-> 完成“音标输入”)




    (re从字符串中提取音标字符;依序打印音标字符;)
    音标字符输入
    (输入对应序号;替换序号。-> 完成“音标输入”)


    目 录


    一、音标字符准备

    网络搜索的含音标字符的字符串段落


    2.48个国际音标字符
    2.1. 20个元音
    /ɑ:/ /ʌ/ /ɔ:/ /ɒ/ /ə/ /ɜ:/ /i:/ /ɪ/ /u:/ /ʊ/ /e/ /æ/ /eɪ/ /aɪ/ /ɔɪ/ /ɪə/ /eə/ /ʊə/ /əʊ/ /aʊ/

    2.2. 28个辅音
    /p/ /b/ /t/ /d/ /k/ /g/ /f/ /v/ /s/ /z/ /θ/ /ð/ /ʃ/ /ʒ/ /tʃ/ /dʒ/ /tr/ /dr/ /ts/ /dz/ /m/ /n/ /ŋ/ /h/ /l/ /r/ /j/ /w/


    从字符串段落中提取的48个音标字符

    ɑ: ʌ ɔ: ɒ ə ɜ: i: ɪ u: ʊ e æ eɪ aɪ ɔɪ ɪə eə ʊə əʊ aʊ p b t d k g f v s z θ ð ʃ ʒ tʃ dʒ tr dr ts dz m n ŋ h l r j w

    Python提取音标详细代码

    #!/usr/bin/nve python
    # coding: utf-8
    
    '''
    filename = 'add_new_word.py'
    author = 'dream efl'
    time = '2022-08-09'
    '''
    
    import re
    
    def find_symbol(re_s, s):
        symbol = re.findall(re_s, s) # re从字符串段落中提取音标字符。可能是我的re版本已经默认忽略\n,可以隔行搜索匹配,都不用加re.M参数了。😋
        return ' '.join(symbol)
    
    if __name__ == '__main__':
        s = '''2. 48个国际音标字符
    2.1. 20个元音
    /ɑ:/ /ʌ/ /ɔ:/ /ɒ/ /ə/ /ɜ:/ /i:/ /ɪ/ /u:/ /ʊ/ /e/ /æ/ /eɪ/ /aɪ/ /ɔɪ/ /ɪə/ /eə/ /ʊə/ /əʊ/ /aʊ/
    
    2.2. 28个辅音
    /p/ /b/ /t/ /d/ /k/ /g/ /f/ /v/ /s/ /z/ /θ/ /ð/ /ʃ/ /ʒ/ /tʃ/ /dʒ/ /tr/ /dr/ /ts/ /dz/ /m/ /n/ /ŋ/ /h/ /l/ /r/ /j/ /w/'''
        symbol = find_symbol(r"/(\w*[\:]*)/", s)
        print(f"\n从字符串段落中提取的{len(symbol.split()):>3} 个音标字符:\n{symbol}\n")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    提取音标字符代码运行效果截屏图
    在这里插入图片描述

      可能是我的Python 3.10.2 环境re 2.2.1版本已经默认忽略\n,可以隔行搜索匹配,都不用加re.M参数了。😋
    在这里插入图片描述


    回面首

    打印音标字符“表”方法代码

    
        def symbol_show(self):
            print(f"\n{self.color(' 音标表 '.center(47, '~'), 92)}\n{'':>10}", end='')
            for k,i in enumerate(self.symbol.split()):
                print(f"{k:>2}.{self.color(f'{i:>2}', 92)}", end=' ')
                if (k+1)%5 == 0: print(f"\n{'':>10}", end='')
            print()
            
            print(self.color(' 请输入对应的数字 '.center(42, '~'), 32))
            print(self.color('如:21 14 (bɔɪ)'.center(48), 100, 7, 30))
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    替换序号成音标字符方法代码

    
        def replace_symbol(self, nums):
            ''' 从音标字符序号还原音标字符 '''
            tem = []
            symbol = self.symbol.split()
            for i in nums:
                tem.append(symbol[int(i)])
            
            return ''.join(tem)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    单词信息打印方法代码

    
        def word_show(self, word):
            ''' 单词信息列印 '''
            for m,n in zip(self.field.split(), word):
                if not n: continue
                if m == '音标': n = f"英/{n}/"
                print(f"{'':>6}{m}:{n}")
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    变量及色彩控制打印工具准备

        
        def __init__(self):
            from lib.mypycolor import Color
            self.color = Color().set_color # 设置色彩控制打印工具方法别名。
            self.field = '单词 复数 音标 词性+释义一 词性+释义二 词性+释义三 词性+释义四'
            self.demo = 'boy boys bɔɪ n.男孩;儿子;小伙子,家伙; interj. 好家伙(表示激动、羡慕等情感);'
            self.symbol = "ɑ: ʌ ɔ: ɒ ə ɜ: i: ɪ u: ʊ e æ eɪ aɪ ɔɪ ɪə eə ʊə əʊ aʊ p b t d k g f v s z θ ð ʃ ʒ tʃ dʒ tr dr ts dz m n ŋ h l r j w \'"
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    回面首

    代码实现效果截屏图
    在这里插入图片描述
    在这里插入图片描述

      非常遗憾,重音符号在Python环境显示有些怪异:

    在这里插入图片描述

      因此我就用英文单引号(ord("’")=39)做读音节,舍弃了次重读符号。因为712、716在我的手机上显示“怪异”,次重读音节用英文逗号“,”,也不太好看,虽然有不少人是这么干的。

    上面截屏图片代码

    print(chr(int('2c8', 16)), chr(int('2cc',   16)))
    print(f"ˈ -> {ord('ˈ')},ˌ -> {ord('ˌ')}")
    print("'", '->', ord("'"))
    
    • 1
    • 2
    • 3

    在这里插入图片描述

  • 相关阅读:
    基于javaweb的企业员工绩效工资管理系统(java+springboot+freemarker+mysql)
    Spark集群环境搭建(standalone模式)
    STC8H_硬件IIC
    计组--中央处理器
    k8s部署问题及解决方法
    c++与c 的知识点
    闲话Python编程-数组
    知识图谱-KGE(Knowledge Graph Embedding):概述【将知识图谱中的实体、关系进行Embedding表示】
    vue3 setup(基础版)
    安全技术和防火墙(二)
  • 原文地址:https://blog.csdn.net/m0_57158496/article/details/126293898