Python IDE 3中输入提示不显示问题求助(附字符串分组代码)
解决输入提示不显示问题并修正字符串分组代码
先解决输入提示不显示的问题
如果你用的是Python IDE 3(比如早期版本的IDLE),大概率是输入窗口没被注意到:运行脚本后,IDE会弹出一个独立的控制台窗口,输入提示其实显示在这个窗口里,而不是编辑器的输出面板。你可以检查一下桌面有没有弹出新窗口,切换过去就能输入内容了。
如果是其他IDE,你可以看看运行设置里是否有“保持控制台打开”或者“交互式运行”的选项,开启后就能正常看到输入提示并输入了。
然后修正你的字符串分组代码
你的代码里存在几个语法和逻辑错误,我帮你梳理并修正:
原代码的问题点:
- 变量名不匹配:你定义的是
code_skip,但调用函数时写了code_shift,会直接抛出NameError; - 语法错误:
if i = shift:是赋值语句,判断相等应该用==; - 索引逻辑错误:单个字符调用
e.index()的用法不对,应该用enumerate遍历索引和字符; - 分组逻辑错误:当前的group循环只执行一次,无法生成多个分组,字符选取的逻辑也不符合需求。
修正后的完整代码
# 获取用户输入 code_text = input('Text: ').lower() try: code_skip = int(input('Shift length: ')) except ValueError: print("请输入有效的数字作为间隔长度") exit() # 定义分组函数 def count_skip(text, shift): groups = [] # 处理间隔为0或负数的情况 if shift <= 0: groups.append(text) return groups # 每个组对应一个起始索引,从0到shift-1 for start_idx in range(shift): # 用切片语法快速获取分组:从start_idx开始,每隔shift个字符取一个 current_group = text[start_idx::shift] groups.append(current_group) return groups # 调用函数并输出结果 result = count_skip(code_text, code_skip) for group_num, group_content in enumerate(result, 1): print(f"第{group_num}组: {group_content}")
代码说明:
- 加入了输入异常处理,如果用户输入的不是数字,会给出提示并退出;
- 使用Python的切片语法
text[start_idx::shift],非常简洁地实现了你的分组需求:比如输入ABCDEFGHIJKL和间隔3时,text[0::3]就是adgj,text[1::3]是behk,完全符合你的要求; - 处理了间隔为0或负数的边界情况,避免程序报错。
测试一下:输入ABCDEFGHIJKL和3,输出会是:
第1组: adgj 第2组: behk 第3组: cfil
内容的提问来源于stack exchange,提问作者 Cari Berry
相关产品推荐
相关产品推荐

