Python:ASCII字母切片和拼接

2024-04-19 15:25:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着从字母表的开始处剪下3个字母,然后放在最后,但是我得到了一个奇怪的结果。这是我目前的密码。。。你知道吗

import string

upper = string.ascii_uppercase
upperNew = upper[:3] + upper[3:]
print upperNew

a = upper[:3]
b = upper[3:]
c = b+a
print c

运行此代码将获得:

ABCDEFGHIJKLMNOPQRSTUVWXYZ
DEFGHIJKLMNOPQRSTUVWXYZABC

为什么print upperNew不能产生与print c相同的结果?你知道吗


Tags: 代码import密码string字母asciiupper字母表
2条回答

我的代码中的愚蠢错误:

upperNew = upper[:3] + upper[3:]

应该是。。。你知道吗

upperNew = upper[3:] + upper[:3]

感谢Fourtheye等人

我想你误解了列表的“:”符号。你知道吗

  • upper[:3]给出第一个3个字符
  • upper[3:]给出了整个列表,但给出了前3个字符。你知道吗

最终你会得到:

upperNew = upper[:3] + upper[3:]  
         = 'ABC'     + 'DEFGHIJKLMNOPQRSTUVWXYZ'

当你把它们和成upperNew时,你就得到了字母表。你知道吗

ab中第二次发生同样的事情,但是你以相反的顺序连接它们,所以你得到'DEFGHIJKLMNOPQRSTUVWXYZ' + 'ABC'+,这可能就是你看起来很困惑的原因。你知道吗

如果你想upperNew得到同样的结果,你必须这样做:

upperNew = upper[3:] + upper[:3] # Note I switched the right part  
print upperNew

然后'DEFGHIJKLMNOPQRSTUVWXYZABC'按预期打印。你知道吗

相关问题 更多 >