[英]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.