如何用Python实现输入字符串、指定删除位置后输出无该字符的新字符串
Python 字符串指定位置字符删除实现
首先给出可直接运行的完整代码:
# 获取用户输入字符串 input_str = input('Enter a String: ') # 判空处理 if not input_str: print('Empty Input') else: try: # 获取待删除位置并转换为整数 del_pos = int(input('Enter the position of the string to be removed: ')) # 若用户习惯从1开始计数,取消注释下一行即可 # del_pos -= 1 # 校验位置合法性 if 0 <= del_pos < len(input_str): # 切片拼接实现字符删除 new_str = input_str[:del_pos] + input_str[del_pos + 1:] print('New string is: ', new_str) else: print(f'Position out of range, valid range is 0 to {len(input_str) - 1}') except ValueError: print('Please enter a valid integer for position')
核心实现说明
- 空输入判断直接使用
if not input_str即可,input()函数的返回值永远是字符串类型,原代码中type(x) != str的判断逻辑无效,无法识别空输入 - 用户输入的位置默认是字符串类型,需要转换为整数才能作为索引使用,添加
try-except块可以捕获非整数输入的异常,避免程序崩溃 - Python 字符串为不可变类型,不能直接通过减法删除字符,标准实现方案为切片拼接:前半段取到待删除位置的前一位,后半段从待删除位置的后一位开始,拼接后即为删除后的字符串
- 增加位置合法性校验,避免索引越界报错
原代码错误点整理
- 字符串类型判断逻辑错误,无法识别空输入
- 未对位置输入做类型转换,无法直接当索引用
- 错误使用字符串减法操作,不符合Python语法
range x(start, end)写法不符合语法规则,删除指定位置字符不需要循环遍历
内容的提问来源于stack exchange,提问作者user4466931
相关产品推荐
相关产品推荐

