半灵桑 发表于 2025-5-25 14:34:27

课里教的方法未被定义怎么办

如题,这个其实在另一区发过,但是最佳回答不小心设早了()只能再问一遍了()我真的没有在水帖()
{:10_266:}

字符串(I)的作业
原文有防复制乱码,只能贴图了()
https://s21.ax1x.com/2025/05/25/pVSKt4H.jpg

结果报错了,我python3.12

代码
s = "FishCcCode"
s_list = []

for load in s:
    s_list.append(load)
   
for j in range(0 , len(s) - 2):
    if s_list == lower(s_list) and s_list == upper(s_list) or s_list == upper(s_list) and s_list == lower(s_list):
              s_list.remove(s)
              s_list.remove(s)
             
print(s_list)

报错信息
/data/data/org.qpython.qpy/files/bin/
qpython3.sh "/storage/emulated/0/Android/
data/org.qpython.qpy/files/PythonWorks/整
理字符串.py" && exit
Traceback (most recent call last):
File "/storage/emulated/0/Android/data/org.qpython.qpy/files/PythonWorks/整理字 符串.py", line 8, in <module>
    if s_list == lower(s_list) and s_list == upper(s_list) or s_list == upper(s_list) and s_list == lower(s_list):
                  ^^^^^
NameError: name 'lower' is not defined
/ $

FishC 发表于 2025-5-25 14:35:50

问题分析及解决方案

你的代码存在三个主要问题:


[*]s_list未初始化:第二行代码 s_list = 未完成
[*]函数名使用错误:lower()/upper()是字符串方法,不是独立函数
[*]逻辑判断错误:条件判断对象是列表而非单个字符


修正后的代码

s = "FishCcCode"
s_list = list(s)# 正确初始化列表

i = 0
while i < len(s_list)-1:
    # 检查相邻字符是否符合大小写配对关系
    current = s_list
    next_char = s_list
   
    if (current.islower() and next_char == current.upper()) or \
       (current.isupper() and next_char == current.lower()):
      # 删除这对字符
      del s_list
      i = max(0, i-1)# 回退索引防止漏检
    else:
      i += 1

print(''.join(s_list))


代码说明
1. 使用 list(s) 将字符串转为列表
2. 使用 islower()/isupper() 判断字符大小写状态
3. 采用 while循环 动态处理列表长度变化
4. 使用 del 批量删除连续元素
5. 处理完字符对后回退索引,避免漏检新生成的相邻字符

输出结果:FishCode(成功删除中间的cC配对)

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

半灵桑 发表于 2025-5-25 16:37:18

我怎么这么蠢()
页: [1]
查看完整版本: 课里教的方法未被定义怎么办