我做了一个杂烩。它很有效而且很简单。我做了一个是为了好玩,我觉得代码太长了。它有1000多行长而且很简单。我只想把它缩短一点。 我是这样做的:
wordorg = raw_input("Enter a word here: ")
## Checking if what you typed is correct
if len(wordorg) <= 10 and len(wordorg) > 1 and wordorg.isalpha():
## Comparison (JESUS THIS IS A LONG PIECE OF CODE)
print "Your original word was: " + wordorg
word = wordorg.lower()
if len(word) >= 1:
if word[0] == "a":
one = a
if word[0] == "b":
one = b
if word[0] == "c":
布拉布拉布拉布拉,你明白了,就这样。当它到达Z时
if word[0] == "z":
one = z
if len(word) >= 2:
if word[1] == "a":
而且还在继续。我的问题是,如何缩短代码?你知道吗
编辑: 整数a,b,c的定义如下:
a = 2
b = 3
c = 5
等等。你知道吗
您可以使用dict将行数除以26:
现在,您只需要一个dict查找,而不是26
if
:您可以替换
1
,2
。。。值定义为a
,b
。。。在你的代码里。你知道吗如果你想对每个字母都这样做,只需使用一个列表:
您现在有了一个整数列表,可以进一步处理了!你知道吗
我不知道你从你给出的代码片段中到底去了哪里,但我建议你从以下几点开始:
ord
是返回字符(a=97、b=98等)的ascii码的函数。因此1+ord(chr)-ord('a')
将返回1表示“a”,2表示“b”,等等在哈希函数中不使用字典似乎更有趣,因为字典本身就是一个哈希表。你知道吗
我想这正是你想要的。我所做的是建立一个循环,运行在你的话,所以它可以比较一个字母一个字母。第二个循环遍历字母表中的字母,如果您的单词字母有匹配项,则存储在数组结果中。此数组统计每个字母的出现次数。如果需要,可以将print语句替换为写入文件。也没有必要再限制你的代码在短词上运行了。你知道吗
相关问题 更多 >
编程相关推荐