|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
如题,这个其实在另一区发过,但是最佳回答不小心设早了()只能再问一遍了()我真的没有在水帖()
字符串(I)的作业
原文有防复制乱码,只能贴图了()
结果报错了,我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[j] == lower(s_list[j]) and s_list[j + 1] == upper(s_list[j]) or s_list[j] == upper(s_list[j]) and s_list[j + 1] == lower(s_list[j]):
- s_list.remove(s[j])
- s_list.remove(s[j + 1])
-
- 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[j] == lower(s_list[j]) and s_list[j + 1] == upper(s_list[j]) or s_list[j] == upper(s_list[j]) and s_list[j + 1] == lower(s_list[j]):
- ^^^^^
- NameError: name 'lower' is not defined
- / $
复制代码
问题分析及解决方案
你的代码存在三个主要问题:
- s_list未初始化:第二行代码 s_list = 未完成
- 函数名使用错误:lower()/upper()是字符串方法,不是独立函数
- 逻辑判断错误:条件判断对象是列表而非单个字符
修正后的代码
- s = "FishCcCode"
- s_list = list(s) # 正确初始化列表
- i = 0
- while i < len(s_list)-1:
- # 检查相邻字符是否符合大小写配对关系
- current = s_list[i]
- next_char = s_list[i+1]
-
- if (current.islower() and next_char == current.upper()) or \
- (current.isupper() and next_char == current.lower()):
- # 删除这对字符
- del s_list[i:i+2]
- 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 小助理,如未能正确解答您的问题,请继续追问。
|
|