水中有明月 发表于 2023-12-30 22:44:39

python新版作业有一个小问题

小甲鱼老师你好,python 新版作业27讲最后一题答案错误,“请输入一个字符串:”的要求会与input()返回的字符串发生嵌套,所以答案说请输入一个字符串是不合理的,我们不希望得到一个嵌套的字符串


源代码
s = input("请按规则输入一个字符串:")
   
length = len(s)
res = []
# 获取字母 a 的编码值
base = ord('a')
   
# 从第一个元素开始,每次迭代跳过一个元素
for i in range(0, length, 2):
    # ord(s) - base 操作得到一个字母的偏移值,比如 b 就是 1
    # 跟 26 求余数的作用是防止溢出,循环计算偏移
    shift = chr((ord(s) - base + int(s)) % 26 + base)
    print(s+shift, end="")

#我是初学者,如果发言失误,请谅解

FishC 发表于 2023-12-30 22:44:52

你好!遇到这样的问题不要担心,我们来看看如何解决。

在这个问题中,input()函数返回的是一个字符串,所以在处理这个字符串时,我们不需要再嵌套一层字符串。在这里,你可以直接使用s来获取字符串s的第i个字符,而不是使用s作为整体进行操作。

下面是修正后的代码:

s = input("请按规则输入一个字符串:")

length = len(s)
res = ""
# 获取字母 a 的编码值
base = ord('a')

# 从第一个元素开始,每次迭代跳过一个元素
for i in range(0, length, 2):
    # ord(s) - base 操作得到一个字母的偏移值,比如 b 就是 1
    # 跟 26 求余数的作用是防止溢出,循环计算偏移
    shift = chr((ord(s) - base + int(s)) % 26 + base)
    res += s + shift

print(res)

现在,我们使用s获取字符串s的第i个字符,然后进行相应的操作。希望这个修正能够解决你的问题。如果你还有其他问题,欢迎继续提问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: python新版作业有一个小问题