[英]Coding a language translator
我正在尝试将一种语言翻译器从任何一种语言转换为一种胡言乱语,在这种情况下,每个辅音将被相同的辅音加上o替换,然后再替换为辅音。
b = bob
d = dod
f = fof
因此文字“嗨,我的名字是x”将变成“ Hohi momy nonamome isos xox”
我的问题是转换部分。
关于如何进行的任何提示?
哦,顺便说一句,我正在使用python 3
我得到了这么远。
#Welcom text
print ("Gibberish translator!")
#get stentence
original = raw_input("Give a sentence: ")
#Check so that it is a correct sentence
if len(original) > 0:
print ("")
else:
print ("give a real sentence..: ")
#convert
gibberish = ""
for i in original:
if i == "b,c,d,f,g,h,j,k,l,m,n,p,q,r,s,t,v,w,x,z":
i = i + "0" + i
gibberish.append(i)
elif i == "a,o,u,e,i,y":
gibberish.append(i)
#print out the gibberish
print (gibberish)
是啊! 我认为我可以很好地工作。
# -*- coding: cp1252 -*-
#Repeat
while True :
#Welcom text
print ("Gibberish translator!")
#get stentence
original = raw_input("Give a sentence: ")
#Check so that it is a correct sentence
if len(original) > 0:
print ("")
else:
print ("Give a real sentence..: ")
#convert
gibberish = ""
for i in original:
if i in "bcdfghjklmnpqrstvwxzBCDFGHJKLMNPQRSTVWXZ":
i = i + "o" + i
gibberish = gibberish + i
elif i in "aoueiyåäö AOUEIYÅÄÖ":
gibberish = gibberish + i
#print out the gibberish
print (gibberish)
print ("\n")
我愿意提出建议以使其“更好”
问题是您正在将字符i
与字符串"b,c,d,f,g,h,j,k,l,m,n,p,q,r,s,t,v,w,x,z"
。 两者永远不会平等。
您要做的是使用in
运算符。
if i in 'bcdfghjklmnpqrstvwxz':
另外,字符串没有.append()
方法,只有列表有。
您可以通过执行''.join(my_list)
从字符串列表中创建一个字符串
if和in语句不能那样工作。 这实际上是一个非常常见的错误,因此无需担心。 当您到达if i == "b,c,d,f,g,h,j,k,l,m,n,p,q,r,s,t,v,w,x,z":
python将其读取为“如果我是该字符串的全部(包含所有辅音的字符串)。现在除非您在句子中的确切位置输入该字符串,否则python会认为“没有这样的字符串”并跳过它您的元音语句也有同样的问题。
对于最快的修复程序:
if i in "bcdfghjklmnpqrstvwxz": #note the removal of commas, don't want them getting "o'd" #rest of your code for consonants else: #having an else is often very good practice, or else you may not get a result. #what to do if its not a consonant
该函数检查它是否是小写的元音(可能要为大写字母添加内容),然后如果不是,则检查是否是一个字母句点。 在使用字符串时,string非常有用。 您应该看一下docs 。
最后,您需要将append更改为仅将+
与字符串一起使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.