我的问题是我想用oe,ae,ue改变õ,ö,ä,ü(我的语言中使用的字符)。我导入了包含文本的文件:Ööülikooli siserännak
(这只是一个示例),我想回来OEOEUELIKOOLI SISERAENNAK
。
我的代码如下所示:
failname = input("Insert the fail name: ")
fail = open(failname, encoding = "UTF-8")
for line in fail:
if char == "õ":
print("oe".upper(), end = "")
elif char == "ö":
print("oe".upper(), end = "")
elif char == "ä":
print("ae".upper(), end = "")
elif char == "ü":
print("ue".upper(), end = "")
else:
print(char.upper(), end = "")
结果是:
Insert the fail name: example.txt
ÖOEUELIKOOLI SISERAENNAK
所以我的问题是,为什么第一个角色不会改变?我也尝试过其他例子,但总是第一个保持不变。
答案 0 :(得分:1)
用这个代替比较:
if char.lower() == "ö"
您也可以更新其他人,以便您可以替换大写和小写
警告:char
变量似乎未定义
答案 1 :(得分:1)
尝试使用它:
failname = input("Insert the fail name: ")
fail = open(failname, encoding = "UTF-8")
for line in fail:
for char in line:
if char.lower() == "õ":
print("oe".upper(), end = "")
elif char.lower() == "ö":
print("oe".upper(), end = "")
elif char.lower() == "ä":
print("ae".upper(), end = "")
elif char.lower() == "ü":
print("ue".upper(), end = "")
else:
print(char.upper(), end = "")
print("\n")
答案 2 :(得分:0)
我不认为Ö和ö是相同的角色,就像A和a有不同的ascii值Ö和ö有不同的utf-8值尝试添加
if char == 'Ö':
# what you want to change it to
答案 3 :(得分:0)
下次,请务必将您的代码显示为Minimal, Complete, and Verifiable Example。它包含许多小而大的错误,例如,整个文件读取部分与您的问题无关。还要想一个更具描述性的标题。
执行以下操作,而不是一次使用大量if
s来决定一个字符:
string = "Ööülikooli siserännak"
string = string.upper()
for find,replace in [['Ö','OE'], ['Ü', 'UE'], ['Ä', 'AE']]:
string = string.replace (find,replace)
print (string)
这样,您可以根据需要轻松添加更多字符对。请注意,我执行upper()
作为第一步,因此您只需检查大写字母 - 这是您在代码中忘记的内容。