鱼C论坛

 找回密码
 立即注册
查看: 1312|回复: 5

小甲鱼课后题目的大问题

[复制链接]
发表于 2023-11-9 20:13:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
temp = input('请输入:')
l = len(temp)
i = 0
a = ord('a')
b = [ ]
while i < l:
    if temp[i].isalpha():
     b.append(temp[i])
    else:
        num = a.index(temp[i-1])
        num2 = (num + temp[i])%26
        b.append(a.pop(num2 + 1))
    i += 1
print(b)

# 给定的字符串 s 是按照如下规则存放的:它的偶数下标为小写英文字母,奇数下标为正整数.
# 题目要求:编写代码,将奇数下标的数字转换为相对于上一个字母偏移后的字母。
我这道题的思路是利用下标来进行转换但是不知道为什么没有想要的效果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-9 20:14:07 | 显示全部楼层
问题出在这一行代码上:
num2 = (num + temp[ i])%26

这里的 temp[ i] 是一个字符串类型,而 num 是一个整数类型。在Python中,字符串和整数不能直接相加。所以你需要将 temp[ i] 转换为整数类型。

你可以使用 int() 函数将字符串转换为整数,修改代码如下:
num2 = (num + int(temp[ i])) % 26

这样就可以得到你期望的效果了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-9 20:42:32 | 显示全部楼层
temp , b = input('请输入:') . strip() , ''
for k in range(0 , len(temp) , 2) :
    x = (ord(temp[k]) - ord('a') + int(temp[k + 1])) % 26
    b = b + temp[k] + chr(ord('a') + x)
print(b)
    运行实况:
D:\[exercise]\Python>python xx.py
请输入:a1a2a3
abacad

D:\[exercise]\Python>

点评

哥,我第一行看不懂 为什么一堆逗号他就可以代替等于了我应该搜什么可以学到这个东西  发表于 2023-11-10 16:34
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-10 16:26:12 | 显示全部楼层
isdkz 发表于 2023-11-9 20:14
问题出在这一行代码上:

谢谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-10 16:27:36 | 显示全部楼层

你这个好厉害,我琢磨一下,感觉都看过但放在一起,这种排列形式我没见过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 04:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表