War*_*ers 0 python arrays string python-3.x
我正在为学校创建一个简单的加密项目.我正在使用Python.
目标:用户输入字符串,例如hello world!
我必须将其转换为数组:space=0, a=1, b=2, ... z=26, .=27, ,=28, ?=29 and !=30
我用字典:
dict = {' ': 0, 'a': 1, 'b': 2, 'c': 3,...}
Run Code Online (Sandbox Code Playgroud)
我的代码
def messageToCode(message):
xarray = [None]
length = len(message)
ctr = 0
while not ctr == length:
xarray.append = dict[message.charAt(ctr)]
ctr = ctr + 1
return xarray
Run Code Online (Sandbox Code Playgroud)
这不行.有什么建议?
有一些严重的问题:
xarray应该是空的,所以只是[].你写的是一个包含单个元素的列表:None.None是一个实际值,就像5或"a",你不希望它在你的最终结果中.=用于赋值,因此xarray.append = ...为方法赋值append,这是您不想要的.你想调用这个函数,即xarray.append(...)..charAt来自Java和其他语言.要从字符串中获取字符,您可以将其编入索引,就像列表或字典一样,即使用方括号:message[ctr].还有一些不太严肃的事情:
not ctr == length写的更好ctr != length.想象一下!=是≠.在这种情况下,更好的说法ctr < length是因为这就是意图的真实含义:message[ctr]只有在ctr < length(和ctr >= 0)时才有效,而不仅仅是在何时ctr != length.如果将代码更改为ctr每次迭代增加2次或更多并ctr跳过,则也不希望循环永远继续length.ctr = ctr + 1写得更好ctr += 1,所以你不必两次写变量.对代码进行这些更改,确保它有效,将其编辑到您的问题中,然后我会一点一点地告诉您如何进一步改进它.最终,我们将在另一个答案中得到最佳版本.
| 归档时间: |
|
| 查看次数: |
440 次 |
| 最近记录: |