gpt4 book ai didi

python - 用一个键在 Python 中旋转一个单词

转载 作者:太空宇宙 更新时间:2023-11-03 15:51:30 24 4
gpt4 key购买 nike

Write a function called rotate_word() that takes a string and an integer as parameters, and returns a new string that contains the letters from the original string rotated by the given amount. Rotate_word('cheer',7) == 'jolly', Rotate_word('melon', -10) = 'cubed',**

我的 Python 代码是:

def Rotate_word(str_, num_):
result = ''
for i in str_:
i = chr(ord(i) + num_)
result = result + i
return (result)

str_ =input("Enter a string: ")
num_ = int(input("Enter rotate number: "))
print (Rotate_word(str_,num_))

输出如下:

Enter a string: cheer  
Enter rotate number: 7
jolly

哪个是正确的。

Enter a string: melon  
Enter rotate number: -10
c[bed

这是错误的,正确答案是 cubed

我做错了什么,我该如何解决?

最佳答案

问题是在低于 'a' 时您需要“环绕”或以上 'z' .

但是不是使用 chrord你可以简单地使用 str.translatestr.maketrans :

import string

def Rotate_word(str_, num_):
# Create a translation table from lowercase characters to shifted lowercase chars
tab = str.maketrans(string.ascii_lowercase,
string.ascii_lowercase[num_:] + string.ascii_lowercase[:num_])
return str_.translate(tab)

str_ =input("Enter a string: ")
num_ = int(input("Enter rotate number: "))
print(Rotate_word(str_,num_))

要使它也能处理大写字母,还需要一些额外的工作。但它会为 'melon' 生成正确的输出和 -10'cheer'7 .

关于python - 用一个键在 Python 中旋转一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46428685/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com