首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中转换英文字符而不是任何其他字符

如何在python中转换英文字符而不是任何其他字符
EN

Stack Overflow用户
提问于 2021-06-27 10:51:14
回答 1查看 50关注 0票数 0

我试着把每个英文字符都移2,但把其他字符(如!,*,^等)都保留在原来的方式上。然而,我的代码一直在移动所有字符,为什么?

这是我的密码:

代码语言:javascript
复制
sample = 'abcdefghijklmn-op+qr!stuvwxyz'

shift = 2

result = []

for i in range(len(sample)):
    print(f'ascii code of {sample[i]} is: {ord(sample[i])}')

print('#######################################')
ascii_code = 97

for j in range(len(sample)):
    if 96 < ord(sample[i]) < 123:
        ascii_code = ord(sample[j])
        ascii_code += shift
        if ascii_code > 122:
            ascii_code = ascii_code - 25 - 1
        
        print(f'Converted value: {chr(ascii_code)}')

预期输出

代码语言:javascript
复制
ascii code of a is: 97
ascii code of b is: 98
ascii code of c is: 99
ascii code of d is: 100
ascii code of e is: 101
ascii code of f is: 102
ascii code of g is: 103
ascii code of h is: 104
ascii code of i is: 105
ascii code of j is: 106
ascii code of k is: 107
ascii code of l is: 108
ascii code of m is: 109
ascii code of n is: 110
ascii code of - is: 45
ascii code of o is: 111
ascii code of p is: 112
ascii code of + is: 43
ascii code of q is: 113
ascii code of r is: 114
ascii code of ! is: 33
ascii code of s is: 115
ascii code of t is: 116
ascii code of u is: 117
ascii code of v is: 118
ascii code of w is: 119
ascii code of x is: 120
ascii code of y is: 121
ascii code of z is: 122
#######################################
Converted value: c
Converted value: d
Converted value: e
Converted value: f
Converted value: g
Converted value: h
Converted value: i
Converted value: j
Converted value: k
Converted value: l
Converted value: m
Converted value: n
Converted value: o
Converted value: p
Converted value: -
Converted value: q
Converted value: r
Converted value: +
Converted value: s
Converted value: t
Converted value: !
Converted value: u
Converted value: v
Converted value: w
Converted value: x
Converted value: y
Converted value: z
Converted value: a
Converted value: b

码输出

代码语言:javascript
复制
ascii code of a is: 97
ascii code of b is: 98
ascii code of c is: 99
ascii code of d is: 100
ascii code of e is: 101
ascii code of f is: 102
ascii code of g is: 103
ascii code of h is: 104
ascii code of i is: 105
ascii code of j is: 106
ascii code of k is: 107
ascii code of l is: 108
ascii code of m is: 109
ascii code of n is: 110
ascii code of - is: 45
ascii code of o is: 111
ascii code of p is: 112
ascii code of + is: 43
ascii code of q is: 113
ascii code of r is: 114
ascii code of ! is: 33
ascii code of s is: 115
ascii code of t is: 116
ascii code of u is: 117
ascii code of v is: 118
ascii code of w is: 119
ascii code of x is: 120
ascii code of y is: 121
ascii code of z is: 122
#######################################
Converted value: c
Converted value: d
Converted value: e
Converted value: f
Converted value: g
Converted value: h
Converted value: i
Converted value: j
Converted value: k
Converted value: l
Converted value: m
Converted value: n
Converted value: o
Converted value: p
Converted value: /
Converted value: q
Converted value: r
Converted value: -
Converted value: s
Converted value: t
Converted value: #
Converted value: u
Converted value: v
Converted value: w
Converted value: x
Converted value: y
Converted value: z
Converted value: a
Converted value: b

我怎么才能解决这个问题?对我来说很奇怪,代码如何改变-,+,!不管条件如何。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-27 11:27:47

你的条件应该是这样的:

代码语言:javascript
复制
sample = 'abcdefghijklmn-op+qr!stuvwxyz'

shift = 2

result = []

for i in range(len(sample)):
    print(f'ascii code of {sample[i]} is: {ord(sample[i])}')

print('#######################################')
ascii_code = 97

for j in range(len(sample)):
    ascii_code = ord(sample[j])
    if 64 < ascii_code < 91 or 96 < ascii_code < 123:
        ascii_code += shift
    if ascii_code > 122:
        ascii_code = ascii_code - 25 - 1
      
    print(f'Converted value: {chr(ascii_code)}')

您不应该增加任何字符的值,除非它是英文字符--它的标识范围为64到91 (大写字母),或范围为96至123 (用于小写字母)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68150367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档