Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 表示字符串,就像它是在不同的键盘布局中编写的一样_Python 2.7_Replace_Keyboard - Fatal编程技术网

Python 2.7 表示字符串,就像它是在不同的键盘布局中编写的一样

Python 2.7 表示字符串,就像它是在不同的键盘布局中编写的一样,python-2.7,replace,keyboard,Python 2.7,Replace,Keyboard,我试图用不同的键盘布局来表示输入字符串 例如: 投入:kak中小企业 输出:kak sme、ааааааа、ааааа 当输入是拉丁文时,一切都正常,但当输入是西里尔文时,输出与输入相同 我的代码 def mreplace(s, chararray, newchararray): slist=list(s) dlist=list(chararray) rlist=list(newchararray) for x in range(0, len(slist)): charitem=sli

我试图用不同的键盘布局来表示输入字符串 例如: 投入:kak中小企业 输出:kak sme、ааааааа、ааааа

当输入是拉丁文时,一切都正常,但当输入是西里尔文时,输出与输入相同

我的代码

def mreplace(s, chararray, newchararray):
slist=list(s)
dlist=list(chararray)
rlist=list(newchararray)

for x in range(0, len(slist)):
    charitem=slist[x]
    if charitem in dlist:
        index=dlist.index(charitem)
        try:
            slist[x]=rlist[index]
        except ValueError:
            pass

return ''.join(slist)


def RetJ(input):
a = []
temp_arr = []

keymap = [];
#US
keymap.append(["q","w","e","r","t","y","u","i","o","p","[","]","a","s","d","f","g","h","j","k","l",";","\"","\\","z","x","c","v","b","n","m",",",".","/"])
#BG
keymap.append([",","у","е","и","ш","щ","к","с","д","з","ц",";","ь","я","а","о","ж","г","т","н","в","м","ч","„","ю","й","ъ","э","ф","х","п","р","л","б"])
#BG Phonetic
keymap.append(["ч","ш","е","р","т","ъ","у","и","о","п","я","щ","а","с","д","ф","г","х","й","к","л",";","\"","ь","з","ж","ц","в","б","н","м",",",".","/"])
#BG Tradic Phonetic
keymap.append(["я","в","е","р","т","ъ","у","и","о","п","ш","щ","а","с","д","ф","г","х","й","к","л",";","\"","ю","з","ь","ц","ж","б","н","м",",",".","/"])
#BG Typewriter
keymap.append([",","у","е","и","ш","щ","к","с","д","з","ц",";","ь","я","а","о","ж","г","т","н","в","м","ч","(","ю","й","ъ","э","ф","х","п","р","л","б"])


temp = ''

for map1 in keymap:
    for map2 in keymap:
        temp = mreplace(input,map1,map2)
        if temp not in temp_arr:
            temp_arr.append(temp)
            a.append({"value":"2", "n":temp, "p":"ppp"})

#a = [{"o1":'1'},{"o2":'2'},{"o3":'3'},{"o4":'4'}]
return a;

嗨,我终于找到了工作的方法 这是代码

# -*- coding: utf-8 -*- import string import array def mreplace(s, chararray, newchararray): if type(s) == type(u''): slist = s else: slist = unicode(s, "utf-8") dlist=list(chararray) rlist=list(newchararray) new_s = '' for x in range(0, len(slist)): i = 0 is_replace = False; for och in dlist: if slist[x] == unicode(och, "utf-8"): new_s = new_s + rlist[i] is_replace = True; i = i + 1 if is_replace == False: new_s = new_s + slist[x].encode("utf-8") return unicode(new_s, "utf-8") def rj(input): a = [] keymap = []; #US keymap.append(["q","w","e","r","t","y","u","i","o","p","[","]","a","s","d","f","g","h","j","k","l",";","\"","\\","z","x","c","v","b","n","m",",",".","/"]) #BG keymap.append([",","у","е","и","ш","щ","к","с","д","з","ц",";","ь","я","а","о","ж","г","т","н","в","м","ч","„","ю","й","ъ","э","ф","х","п","р","л","б"]) #BG Phonetic keymap.append(["ч","ш","е","р","т","ъ","у","и","о","п","я","щ","а","с","д","ф","г","х","й","к","л",";","\"","ь","з","ж","ц","в","б","н","м",",",".","/"]) #BG Tradic Phonetic keymap.append(["я","в","е","р","т","ъ","у","и","о","п","ш","щ","а","с","д","ф","г","х","й","к","л",";","\"","ю","з","ь","ц","ж","б","н","м",",",".","/"]) #BG Typewriter keymap.append([",","у","е","и","ш","щ","к","с","д","з","ц",";","ь","я","а","о","ж","г","т","н","в","м","ч","(","ю","й","ъ","э","ф","х","п","р","л","б"]) for map1 in keymap: for map2 in keymap: temp = mreplace(input,map1,map2) if temp not in a: a.append(temp) return a input = u'гс пщ хьпе ся хсндвьс ьха счп оидп фквжьись' output = rj(input) print(output) 如果我们想写,但我们在保加利亚键盘布局,我们写 hi my name is гс пщ хьпе ся 当我们调用rj时,其中一个输出将

гс пщ хьпе ся hi my name is 如果我们尝试更正用户输入,那就很好了

对于每个需要php版本的人 这里

;
非常有趣的概念;赞成这个问题!然而,这个问题有一个问题。这不是一个问题。试着更具体地描述你想要达到的目标,也就是说,不仅仅是西里尔文,我们会更容易回答。嗨,我的英语很差,对我来说很难准确地描述问题。这个概念是,如果你在错误的键盘布局上尝试搜索某个东西,那么搜索不是针对你键入的内容,而是针对你使用的每一个键盘变体,这看起来对你有帮助吗? function keymap($str) { $keymap = array(); //US $keymap[] = array('q','w','e','r','t','y','u','i','o','p','[',']','a','s','d','f','g','h','j','k','l',';','\'','\\','z','x','c','v','b','n','m',',','.','/'); //BG $keymap[] = array(',','у','е','и','ш','щ','к','с','д','з','ц',';','ь','я','а','о','ж','г','т','н','в','м','ч','„','ю','й','ъ','э','ф','х','п','р','л','б'); //BG Phonetic $keymap[] = array('ч','ш','е','р','т','ъ','у','и','о','п','я','щ','а','с','д','ф','г','х','й','к','л',';','\'','ь','з','ж','ц','в','б','н','м',',','.','/'); //BG Tradic Phonetic $keymap[] = array('я','в','е','р','т','ъ','у','и','о','п','ш','щ','а','с','д','ф','г','х','й','к','л',';','\'','ю','з','ь','ц','ж','б','н','м',',','.','/'); //BG Typewriter $keymap[] = array(',','у','е','и','ш','щ','к','с','д','з','ц',';','ь','я','а','о','ж','г','т','н','в','м','ч','(','ю','й','ъ','э','ф','х','п','р','л','б'); $out = array(); $temp = ''; foreach($keymap as $map1) { foreach($keymap as $map2) { $temp = str_replace($map1, $map2, $str); if (!in_array($temp, $out)) { $out[] = $temp; } } } return $out; } echo "<pre>"; print_r(keymap('гс пщ хьпе ся хсндвьс')); echo "</pre>";