b = []
i = 0
a = 'programmer'
for a in a:
if a[i] != 'a' or 'e' or 'y' or 'o' or 'u' or 'i':
del a[i]
else:
b = a[i]
i+=1
print(b)
b = []
i = 0
a = 'programmer'
for a in a:
if a[i] != 'a' or 'e' or 'y' or 'o' or 'u' or 'i':
del a[i]
else:
b = a[i]
i+=1
print(b)
要查找给定文本中出现的一组拉丁元音:
该示例也适用于连字,例如
fi
如果没有调用
.casefold()
,那么结果是:i
,y
没有找到。根据 Unicode 规范化,带重音符号的字母可以由一个或多个字符表示。字符串可能以不同的规范化进入程序(例如,在 Mac 上,文件名以接近 NFD 的形式呈现。而在 Linux 上,NFC 可能更常见)。这可能会导致与人眼看起来相同的字符串被计算机视为不同。为了解决这种情况,可以使用 D145 中Unicode 标准第 3.13 节中定义的“规范无大小写匹配” :
结果与之前的不同:
此外,
'u'
找到了'o'
字母(因为这些带重音的字母在 NFD 中由两个字符表示——其中一个是拉丁字母)——这对于给定输入是否可取取决于所考虑的特定情况。NFD 在 D145 中应用了两次,以解决极其罕见的边缘情况,例如 U+0345(对于拉丁元音可以省略)。